From ddecae80dda82787be0409a576f7f317c464956d Mon Sep 17 00:00:00 2001 From: Andrey Sobolev Date: Sat, 27 Jul 2024 22:04:21 +0700 Subject: [PATCH] Move services to public (#6156) Signed-off-by: Andrey Sobolev --- .github/workflows/main.yml | 167 +- .gitignore | 8 + common/config/rush/command-line.json | 76 +- common/config/rush/pnpm-lock.yaml | 6256 +- desktop-package/.env | 3 + desktop-package/config/rig.json | 5 + desktop-package/entitlements.mac.plist | 14 + desktop-package/package.json | 97 + desktop-package/readme.md | 9 + desktop-package/scripts/notarize.js | 19 + desktop-package/scripts/publish-version.sh | 12 + desktop-package/src/AppIcon.icns | Bin 0 -> 1143504 bytes desktop-package/src/AppIcon.ico | Bin 0 -> 210558 bytes desktop-package/src/AppIcon.png | Bin 0 -> 820303 bytes desktop/.env | 2 + desktop/.env-dev | 2 + desktop/.eslintrc.js | 7 + desktop/config/rig.json | 5 + desktop/contextBridge.svg | 1 + desktop/declarations.d.ts | 1 + desktop/package.json | 218 + desktop/postcss.config.js | 5 + desktop/public/AppIcon.png | Bin 0 -> 820303 bytes desktop/readme.md | 12 + desktop/src/main/args.ts | 33 + desktop/src/main/menu.ts | 46 + desktop/src/main/permissions.ts | 84 + desktop/src/main/start.ts | 397 + desktop/src/main/updater.ts | 42 + desktop/src/ui/index.ejs | 14 + desktop/src/ui/index.ts | 77 + desktop/src/ui/notifications.ts | 205 + desktop/src/ui/platform.ts | 340 + desktop/src/ui/preload.ts | 113 + desktop/src/ui/screenShare.ts | 126 + desktop/src/ui/types.ts | 79 + desktop/tests/fixtures/deep-link.html | 58 + desktop/tsconfig.json | 16 + desktop/webpack.config.js | 342 + dev/branding.json | 34 + dev/doc-import-tool/.eslintrc.js | 7 + dev/doc-import-tool/config/rig.json | 4 + dev/doc-import-tool/esbuild.js | 9 + dev/doc-import-tool/jest.config.js | 7 + dev/doc-import-tool/package.json | 71 + dev/doc-import-tool/src/__start.ts | 19 + dev/doc-import-tool/src/commands.ts | 18 + dev/doc-import-tool/src/config.ts | 17 + dev/doc-import-tool/src/convert/convert.ts | 52 + dev/doc-import-tool/src/extract/common.ts | 6 + dev/doc-import-tool/src/extract/container.ts | 100 + dev/doc-import-tool/src/extract/extract.ts | 68 + dev/doc-import-tool/src/extract/meta.ts | 85 + dev/doc-import-tool/src/extract/nodes.ts | 266 + dev/doc-import-tool/src/extract/sections.ts | 89 + dev/doc-import-tool/src/extract/types.ts | 230 + dev/doc-import-tool/src/helpers.ts | 60 + dev/doc-import-tool/src/import.ts | 355 + dev/doc-import-tool/src/index.ts | 105 + dev/doc-import-tool/toc.json | 52 + dev/doc-import-tool/tsconfig.json | 10 + dev/docker-compose.yaml | 169 +- dev/prod/.env | 8 +- dev/prod/.env-prod | 3 + dev/prod/.gitignore | 2 +- dev/prod/config.json | 6 +- dev/prod/package.json | 62 +- dev/prod/public/branding.json | 100 +- dev/prod/public/config.json | 14 +- .../public/{platform => huly}/favicon.ico | Bin .../public/{platform => huly}/favicon.svg | 0 .../public/{platform => huly}/icon-1024.png | Bin .../public/{platform => huly}/icon-1600.png | Bin .../public/{platform => huly}/icon-192.png | Bin .../public/{platform => huly}/icon-256.png | Bin .../public/{platform => huly}/icon-512.png | Bin .../{platform => huly}/site.webmanifest | 1 + dev/prod/public/tracex/favicon.ico | Bin 0 -> 4286 bytes dev/prod/public/tracex/favicon.png | Bin 0 -> 16988 bytes dev/prod/public/tracex/favicon.svg | 38 + dev/prod/public/tracex/favicon_16.png | Bin 0 -> 848 bytes dev/prod/public/tracex/favicon_192.png | Bin 0 -> 33269 bytes dev/prod/public/tracex/favicon_32.png | Bin 0 -> 2103 bytes dev/prod/src/analytics.ts | 20 + dev/prod/src/analytics/analyticsCollector.ts | 111 + dev/prod/src/analytics/posthog.ts | 34 + dev/prod/src/analytics/sentry.ts | 46 + dev/prod/src/app-integration-tools.ts | 43 + dev/prod/src/index.ejs | 4 +- dev/prod/src/main-dev.ts | 3 +- dev/prod/src/platform.ts | 112 +- dev/prod/webpack.config.js | 140 +- models/all/package.json | 20 +- models/all/src/index.ts | 37 +- models/all/src/migration.ts | 61 +- models/analytics-collector/.eslintrc.js | 7 + models/analytics-collector/.npmignore | 4 + models/analytics-collector/config/rig.json | 5 + models/analytics-collector/package.json | 43 + models/analytics-collector/src/index.ts | 34 + models/analytics-collector/src/plugin.ts | 21 + models/analytics-collector/tsconfig.json | 10 + models/desktop-preferences/.eslintrc.js | 7 + models/desktop-preferences/.npmignore | 4 + models/desktop-preferences/config/rig.json | 5 + models/desktop-preferences/package.json | 38 + models/desktop-preferences/src/index.ts | 46 + models/desktop-preferences/tsconfig.json | 10 + models/love/package.json | 2 +- models/print/package.json | 2 +- models/time/package.json | 2 +- packages/analytics-service/.eslintrc.js | 7 + packages/analytics-service/.npmignore | 4 + packages/analytics-service/config/rig.json | 4 + packages/analytics-service/jest.config.js | 7 + packages/analytics-service/package.json | 52 + packages/analytics-service/src/index.ts | 19 + packages/analytics-service/src/logging.ts | 135 + packages/analytics-service/src/sentry.ts | 49 + packages/analytics-service/tsconfig.json | 10 + packages/analytics/src/index.ts | 1 - .../analytics-collector-assets/.eslintrc.js | 7 + .../config/rig.json | 5 + .../analytics-collector-assets/jest.config.js | 7 + .../analytics-collector-assets/lang/en.json | 13 + .../analytics-collector-assets/lang/es.json | 13 + .../analytics-collector-assets/lang/pt.json | 13 + .../analytics-collector-assets/lang/ru.json | 13 + .../analytics-collector-assets/package.json | 40 + .../src/__tests__/lang.test.ts | 21 + .../analytics-collector-assets/src/index.ts | 14 + .../analytics-collector-assets/tsconfig.json | 11 + plugins/analytics-collector/.eslintrc.js | 7 + plugins/analytics-collector/.npmignore | 4 + plugins/analytics-collector/config/rig.json | 4 + plugins/analytics-collector/jest.config.js | 7 + plugins/analytics-collector/package.json | 46 + plugins/analytics-collector/src/index.ts | 46 + plugins/analytics-collector/src/plugin.ts | 26 + plugins/analytics-collector/src/types.ts | 35 + plugins/analytics-collector/src/utils.ts | 18 + plugins/analytics-collector/tsconfig.json | 10 + plugins/controlled-documents/package.json | 2 +- .../desktop-preferences-assets/.eslintrc.js | 7 + .../assets/icons.svg | 7 + .../config/rig.json | 5 + .../desktop-preferences-assets/jest.config.js | 7 + .../desktop-preferences-assets/lang/en.json | 11 + .../desktop-preferences-assets/lang/ru.json | 11 + .../desktop-preferences-assets/package.json | 39 + .../src/__tests__/lang.test.ts | 6 + .../desktop-preferences-assets/src/index.ts | 22 + .../desktop-preferences-assets/tsconfig.json | 11 + .../.eslintrc.js | 4 + .../desktop-preferences-resources/.prettierrc | 22 + .../config/rig.json | 5 + .../jest.config.js | 7 + .../package.json | 49 + .../postcss.config.js | 5 + .../DesktopPreferencesPresenter.svelte | 81 + .../src/index.ts | 25 + .../src/plugin.ts | 19 + .../src/utils.ts | 28 + .../svelte.config.js | 5 + .../tsconfig.json | 9 + plugins/desktop-preferences/.eslintrc.js | 7 + plugins/desktop-preferences/.npmignore | 4 + plugins/desktop-preferences/config/rig.json | 4 + plugins/desktop-preferences/jest.config.js | 7 + plugins/desktop-preferences/package.json | 45 + plugins/desktop-preferences/src/index.ts | 80 + plugins/desktop-preferences/tsconfig.json | 10 + plugins/diffview-assets/.eslintrc.js | 7 + plugins/diffview-assets/assets/icons.svg | 2 + plugins/diffview-assets/config/rig.json | 5 + plugins/diffview-assets/jest.config.js | 7 + plugins/diffview-assets/lang/en.json | 14 + plugins/diffview-assets/lang/ru.json | 14 + plugins/diffview-assets/package.json | 39 + .../src/__tests__/lang.test.ts | 6 + plugins/diffview-assets/src/index.ts | 14 + plugins/diffview-assets/tsconfig.json | 11 + plugins/diffview-resources/.eslintrc.js | 4 + plugins/diffview-resources/.prettierrc | 22 + plugins/diffview-resources/config/rig.json | 5 + plugins/diffview-resources/jest.config.js | 7 + plugins/diffview-resources/package.json | 53 + plugins/diffview-resources/postcss.config.js | 5 + .../src/components/DiffView.svelte | 62 + .../components/DiffViewModeDropdown.svelte | 38 + .../src/components/FileDiffContent.svelte | 228 + .../src/components/FileDiffHeader.svelte | 121 + .../src/components/FileDiffView.svelte | 151 + .../src/components/InlineDiffView.svelte | 48 + .../src/components/theme/github-dark.scss | 94 + .../src/components/theme/github.scss | 94 + .../src/highlight/highlight.ts | 59 + .../diffview-resources/src/highlight/index.ts | 17 + .../src/highlight/languages/svelte-hljs.ts | 48 + .../src/highlight/render.ts | 86 + plugins/diffview-resources/src/index.ts | 24 + plugins/diffview-resources/src/parser.ts | 103 + plugins/diffview-resources/src/plugin.ts | 28 + plugins/diffview-resources/src/utils.ts | 37 + plugins/diffview-resources/svelte.config.js | 5 + plugins/diffview-resources/tsconfig.json | 9 + plugins/diffview/.eslintrc.js | 7 + plugins/diffview/.npmignore | 4 + plugins/diffview/config/rig.json | 4 + plugins/diffview/jest.config.js | 7 + plugins/diffview/package.json | 44 + plugins/diffview/src/index.ts | 59 + plugins/diffview/src/types.ts | 123 + plugins/diffview/tsconfig.json | 10 + plugins/love-assets/package.json | 2 +- plugins/love/package.json | 2 +- plugins/print-assets/package.json | 2 +- plugins/print/package.json | 2 +- plugins/sign/package.json | 2 +- plugins/time-assets/package.json | 2 +- plugins/time-resources/package.json | 2 +- plugins/time/package.json | 2 +- pods/account/package.json | 4 +- pods/account/src/__start.ts | 52 +- pods/backup/package.json | 4 +- pods/backup/src/index.ts | 48 +- pods/collaborator/package.json | 4 +- pods/collaborator/src/__start.ts | 36 +- pods/front/Dockerfile | 1 + pods/front/package.json | 6 +- pods/front/src/__start.ts | 53 +- pods/server/Dockerfile | 8 +- pods/server/package.json | 27 +- pods/server/src/__start.ts | 65 +- qms-tests/docker-compose.yaml | 9 - rush.json | 165 + .../.eslintrc.js | 7 + .../analytics-collector-resources/.npmignore | 4 + .../.prettierignore | 1 + .../config/rig.json | 4 + .../jest.config.js | 7 + .../package.json | 48 + .../src/index.ts | 19 + .../src/utils.ts | 57 + .../tsconfig.json | 10 + .../analytics-collector/.eslintrc.js | 7 + server-plugins/analytics-collector/.npmignore | 4 + .../analytics-collector/config/rig.json | 4 + .../analytics-collector/jest.config.js | 7 + .../analytics-collector/package.json | 45 + .../analytics-collector/src/index.ts | 18 + .../analytics-collector/tsconfig.json | 10 + server/core/src/plugin.ts | 1 - .../pod-analytics-collector/.eslintrc.js | 7 + .../pod-analytics-collector/.npmignore | 4 + .../pod-analytics-collector/Dockerfile | 8 + .../pod-analytics-collector/config/rig.json | 4 + .../pod-analytics-collector/jest.config.js | 7 + .../pod-analytics-collector/package.json | 104 + .../pod-analytics-collector/src/account.ts | 21 + .../pod-analytics-collector/src/collector.ts | 173 + .../pod-analytics-collector/src/config.ts | 46 + .../pod-analytics-collector/src/error.ts | 39 + .../pod-analytics-collector/src/format.ts | 400 + .../pod-analytics-collector/src/index.ts | 20 + .../pod-analytics-collector/src/loaders.ts | 60 + .../pod-analytics-collector/src/main.ts | 55 + .../pod-analytics-collector/src/platform.ts | 22 + .../pod-analytics-collector/src/server.ts | 172 + .../src/workspaceClient.ts | 131 + .../pod-analytics-collector/tsconfig.json | 10 + services/calendar/pod-calendar/.eslintrc.js | 7 + services/calendar/pod-calendar/.npmignore | 4 + services/calendar/pod-calendar/Dockerfile | 9 + .../calendar/pod-calendar/config/rig.json | 4 + services/calendar/pod-calendar/jest.config.js | 7 + services/calendar/pod-calendar/package.json | 79 + services/calendar/pod-calendar/src/base64.ts | 26 + .../calendar/pod-calendar/src/calendar.ts | 1259 + .../pod-calendar/src/calendarController.ts | 140 + services/calendar/pod-calendar/src/client.ts | 22 + services/calendar/pod-calendar/src/config.ts | 72 + services/calendar/pod-calendar/src/error.ts | 23 + services/calendar/pod-calendar/src/index.ts | 20 + services/calendar/pod-calendar/src/jwt.ts | 21 + services/calendar/pod-calendar/src/main.ts | 153 + .../calendar/pod-calendar/src/rateLimiter.ts | 34 + services/calendar/pod-calendar/src/server.ts | 68 + services/calendar/pod-calendar/src/storage.ts | 36 + services/calendar/pod-calendar/src/types.ts | 103 + services/calendar/pod-calendar/src/utils.ts | 251 + .../pod-calendar/src/workspaceClient.ts | 603 + services/calendar/pod-calendar/tsconfig.json | 10 + services/github/github-assets/.eslintrc.js | 7 + .../github/github-assets/assets/icons.svg | 28 + services/github/github-assets/config/rig.json | 5 + services/github/github-assets/jest.config.js | 7 + services/github/github-assets/lang/en.json | 90 + services/github/github-assets/lang/pt.json | 90 + services/github/github-assets/lang/ru.json | 90 + services/github/github-assets/lang/sp.json | 90 + services/github/github-assets/package.json | 38 + .../github-assets/src/__tests__/lang.test.ts | 6 + services/github/github-assets/src/index.ts | 16 + services/github/github-assets/tsconfig.json | 11 + services/github/github-resources/.eslintrc.js | 4 + services/github/github-resources/.prettierrc | 22 + .../github/github-resources/config/rig.json | 5 + .../github/github-resources/jest.config.js | 7 + services/github/github-resources/package.json | 71 + .../github/github-resources/postcss.config.js | 5 + .../src/components/AuthenticationCheck.svelte | 42 + .../src/components/Configure.svelte | 8 + .../src/components/Connect.svelte | 174 + .../src/components/ConnectApp.svelte | 116 + .../src/components/ConnectProject.svelte | 160 + .../src/components/EditPullRequest.svelte | 15 + .../src/components/GithubIcon.svelte | 14 + .../src/components/GithubIntegerations.svelte | 56 + .../src/components/GithubIssueHeader.svelte | 99 + .../src/components/GithubIssueInfo.svelte | 21 + .../components/GithubIssueInfoHeader.svelte | 203 + .../src/components/GithubPersonProfile.svelte | 146 + .../src/components/GithubRepositories.svelte | 317 + .../components/MarkdownDescriptionDiff.svelte | 61 + .../src/components/PullRequestDiff.svelte | 141 + .../components/PullRequestMergeState.svelte | 44 + .../src/components/PullRequests.svelte | 84 + .../src/components/PullRequestsView.svelte | 95 + .../src/components/RepositoryPresenter.svelte | 60 + .../components/RepositoryPresenterRef.svelte | 33 + .../RepositoryPresenterRefEditor.svelte | 128 + .../src/components/RepositorySelector.svelte | 111 + .../src/components/languageColors.ts | 200 + .../presenters/GithubIssuePresenter.svelte | 27 + .../presenters/GithubReviewPresenter.svelte | 112 + .../GithubReviewThreadPresenter.svelte | 190 + .../presenters/MergeableValuePresenter.svelte | 16 + .../PullRequestNotificationPresenter.svelte | 42 + .../presenters/PullRequestPresenter.svelte | 29 + ...RequestReviewDecisionValuePresenter.svelte | 52 + .../PullRequestStateValuePresenter.svelte | 18 + .../presenters/RepositoryPresenter.svelte | 17 + .../presenters/ReviewCommentPresenter.svelte | 58 + .../presenters/TitlePresenter.svelte | 21 + .../github-resources/src/components/utils.ts | 111 + .../github-resources/src/configuration.ts | 6 + services/github/github-resources/src/index.ts | 90 + .../github/github-resources/src/plugin.ts | 101 + .../github/github-resources/svelte.config.js | 5 + .../github/github-resources/tsconfig.json | 9 + services/github/github.graphql | 59647 ++++++++++++++++ services/github/github/.eslintrc.js | 7 + services/github/github/.npmignore | 4 + services/github/github/config/rig.json | 4 + services/github/github/jest.config.js | 7 + services/github/github/package.json | 53 + services/github/github/src/index.ts | 605 + services/github/github/tsconfig.json | 10 + services/github/model-github/.eslintrc.js | 7 + services/github/model-github/.npmignore | 4 + services/github/model-github/config/rig.json | 5 + services/github/model-github/package.json | 62 + services/github/model-github/src/index.ts | 1068 + services/github/model-github/src/migration.ts | 336 + services/github/model-github/src/plugin.ts | 68 + services/github/model-github/tsconfig.json | 10 + services/github/pod-github/.eslintrc.js | 7 + services/github/pod-github/.gitignore | 1 + services/github/pod-github/.npmignore | 4 + services/github/pod-github/Dockerfile | 16 + services/github/pod-github/Readme.md | 101 + services/github/pod-github/config/rig.json | 4 + services/github/pod-github/jest.config.js | 7 + services/github/pod-github/package.json | 173 + services/github/pod-github/src/account.ts | 24 + services/github/pod-github/src/client.ts | 50 + .../github/pod-github/src/collaborator.ts | 17 + services/github/pod-github/src/config.ts | 124 + services/github/pod-github/src/index.ts | 59 + services/github/pod-github/src/loaders.ts | 96 + .../src/markdown/__tests__/markdown.json.gz | Bin 0 -> 8251842 bytes .../src/markdown/__tests__/markup.test.ts | 112 + .../markdown/__tests__/testMarkdowns.test.ts_ | 81 + .../src/markdown/__tests__/textmodel.test.ts | 964 + .../pod-github/src/markdown/extensions.ts | 77 + .../github/pod-github/src/markdown/index.ts | 83 + .../github/pod-github/src/notifications.ts | 48 + services/github/pod-github/src/platform.ts | 973 + services/github/pod-github/src/server.ts | 173 + .../github/pod-github/src/sync/comments.ts | 557 + .../github/pod-github/src/sync/githubTypes.ts | 873 + services/github/pod-github/src/sync/guest.ts | 78 + .../github/pod-github/src/sync/issueBase.ts | 1275 + services/github/pod-github/src/sync/issues.ts | 1089 + .../github/pod-github/src/sync/projects.ts | 1150 + .../pod-github/src/sync/pullrequests.ts | 1539 + .../github/pod-github/src/sync/repository.ts | 327 + .../pod-github/src/sync/reviewComments.ts | 581 + .../pod-github/src/sync/reviewThreads.ts | 565 + .../github/pod-github/src/sync/reviews.ts | 494 + .../github/pod-github/src/sync/syncConfig.ts | 10 + services/github/pod-github/src/sync/users.ts | 268 + services/github/pod-github/src/sync/utils.ts | 413 + services/github/pod-github/src/types.ts | 208 + services/github/pod-github/src/utils.ts | 31 + services/github/pod-github/src/worker.ts | 1558 + services/github/pod-github/tsconfig.json | 10 + services/github/readme.md | 17 + .../github/server-github-model/.eslintrc.js | 7 + .../github/server-github-model/.npmignore | 4 + .../server-github-model/config/rig.json | 5 + .../github/server-github-model/package.json | 41 + .../github/server-github-model/src/index.ts | 24 + .../github/server-github-model/tsconfig.json | 10 + .../server-github-resources/.eslintrc.js | 7 + .../github/server-github-resources/.npmignore | 4 + .../server-github-resources/config/rig.json | 4 + .../server-github-resources/jest.config.js | 7 + .../server-github-resources/package.json | 49 + .../server-github-resources/src/index.ts | 242 + .../server-github-resources/tsconfig.json | 10 + services/github/server-github/.eslintrc.js | 7 + services/github/server-github/.npmignore | 4 + services/github/server-github/config/rig.json | 4 + services/github/server-github/jest.config.js | 7 + services/github/server-github/package.json | 47 + services/github/server-github/src/index.ts | 31 + services/github/server-github/tsconfig.json | 10 + services/gmail/pod-gmail/.eslintrc.js | 7 + services/gmail/pod-gmail/.npmignore | 4 + services/gmail/pod-gmail/Dockerfile | 9 + services/gmail/pod-gmail/config/rig.json | 4 + services/gmail/pod-gmail/jest.config.js | 7 + services/gmail/pod-gmail/package.json | 79 + services/gmail/pod-gmail/src/base64.ts | 26 + services/gmail/pod-gmail/src/client.ts | 23 + services/gmail/pod-gmail/src/config.ts | 76 + services/gmail/pod-gmail/src/error.ts | 24 + services/gmail/pod-gmail/src/gmail.ts | 895 + .../gmail/pod-gmail/src/gmailController.ts | 120 + services/gmail/pod-gmail/src/index.ts | 21 + services/gmail/pod-gmail/src/jwt.ts | 22 + services/gmail/pod-gmail/src/main.ts | 135 + services/gmail/pod-gmail/src/rateLimiter.ts | 34 + services/gmail/pod-gmail/src/server.ts | 69 + services/gmail/pod-gmail/src/storage.ts | 37 + services/gmail/pod-gmail/src/types.ts | 70 + services/gmail/pod-gmail/src/utils.ts | 65 + .../gmail/pod-gmail/src/workspaceClient.ts | 353 + services/gmail/pod-gmail/tsconfig.json | 10 + services/love/.eslintrc.js | 7 + services/love/.npmignore | 4 + services/love/Dockerfile | 10 + services/love/config/rig.json | 4 + services/love/jest.config.js | 7 + services/love/package.json | 73 + services/love/src/client.ts | 23 + services/love/src/config.ts | 80 + services/love/src/index.ts | 21 + services/love/src/jwt.ts | 21 + services/love/src/main.ts | 241 + services/love/src/workspaceClient.ts | 78 + services/love/tsconfig.json | 10 + services/print/pod-print/.eslintrc.js | 7 + services/print/pod-print/.npmignore | 4 + services/print/pod-print/Dockerfile | 23 + services/print/pod-print/config/rig.json | 4 + services/print/pod-print/jest.config.js | 7 + services/print/pod-print/package.json | 66 + services/print/pod-print/src/config.ts | 29 + services/print/pod-print/src/convert.ts | 8 + services/print/pod-print/src/error.ts | 40 + services/print/pod-print/src/index.ts | 21 + services/print/pod-print/src/main.ts | 36 + services/print/pod-print/src/print.ts | 115 + services/print/pod-print/src/server.ts | 232 + services/print/pod-print/tsconfig.json | 10 + services/rekoni/.eslintrc.js | 7 + services/rekoni/Dockerfile | 39 + services/rekoni/config/rig.json | 4 + services/rekoni/demo/hh_err1.pdf | Bin 0 -> 164104 bytes services/rekoni/demo/pdf1.pdf | Bin 0 -> 130669 bytes services/rekoni/demo/pdf1.txt | 418 + services/rekoni/demo/pdf2.pdf | Bin 0 -> 370602 bytes services/rekoni/demo/pdf3.pdf | Bin 0 -> 528401 bytes services/rekoni/demo/pdf4.pdf | Bin 0 -> 422030 bytes services/rekoni/demo/pdf5.pdf | Bin 0 -> 587948 bytes services/rekoni/demo/pdf6.pdf | Bin 0 -> 448298 bytes .../rekoni/demo/Резюме Власова Анатолия.docx | Bin 0 -> 11674 bytes services/rekoni/docker_tag.sh | 18 + services/rekoni/esbuild.js | 12 + services/rekoni/jest.config.js | 7 + services/rekoni/package.json | 86 + services/rekoni/src/__tests__/demo.test.ts | 84 + .../rekoni/src/__tests__/extractor.test_.ts | 43 + services/rekoni/src/__tests__/hh.test.ts | 31 + services/rekoni/src/config.ts | 50 + services/rekoni/src/error.ts | 23 + services/rekoni/src/extractors/doc.ts | 55 + services/rekoni/src/extractors/docx.ts | 38 + services/rekoni/src/extractors/html.ts | 28 + services/rekoni/src/extractors/index.ts | 39 + services/rekoni/src/extractors/pdf.ts | 42 + services/rekoni/src/extractors/rtf.ts | 42 + services/rekoni/src/extractors/types.ts | 4 + services/rekoni/src/extractpdf.ts | 194 + services/rekoni/src/find-skills.ts | 89 + services/rekoni/src/generic.ts | 84 + services/rekoni/src/headhunter.ts | 152 + services/rekoni/src/index.ts | 20 + services/rekoni/src/jwt.ts | 21 + services/rekoni/src/linkedin.ts | 152 + services/rekoni/src/podborio.ts | 145 + services/rekoni/src/process.ts | 79 + services/rekoni/src/server.ts | 246 + services/rekoni/src/skills.ts | 40 + services/rekoni/src/types.ts | 72 + services/rekoni/src/utils.ts | 60 + services/rekoni/tsconfig.json | 10 + services/ses/pod-ses/.eslintrc.js | 7 + services/ses/pod-ses/.npmignore | 4 + services/ses/pod-ses/Dockerfile | 8 + services/ses/pod-ses/build.sh | 19 + services/ses/pod-ses/config/rig.json | 4 + services/ses/pod-ses/jest.config.js | 7 + services/ses/pod-ses/package.json | 68 + services/ses/pod-ses/src/config.ts | 54 + services/ses/pod-ses/src/error.ts | 23 + services/ses/pod-ses/src/index.ts | 18 + services/ses/pod-ses/src/main.ts | 76 + services/ses/pod-ses/src/server.ts | 68 + services/ses/pod-ses/src/ses.ts | 65 + services/ses/pod-ses/src/types.ts | 38 + services/ses/pod-ses/tsconfig.json | 10 + services/sign/pod-sign/.eslintrc.js | 7 + services/sign/pod-sign/.npmignore | 4 + services/sign/pod-sign/Dockerfile | 9 + services/sign/pod-sign/config/rig.json | 4 + services/sign/pod-sign/debug/branding.json | 18 + services/sign/pod-sign/debug/certificate.p12 | Bin 0 -> 2803 bytes services/sign/pod-sign/jest.config.js | 7 + services/sign/pod-sign/package.json | 75 + services/sign/pod-sign/src/branding.ts | 31 + services/sign/pod-sign/src/client.ts | 24 + services/sign/pod-sign/src/config.ts | 43 + services/sign/pod-sign/src/error.ts | 40 + services/sign/pod-sign/src/index.ts | 21 + services/sign/pod-sign/src/main.ts | 37 + services/sign/pod-sign/src/server.ts | 116 + services/sign/pod-sign/src/sign.ts | 128 + services/sign/pod-sign/src/signController.ts | 74 + services/sign/pod-sign/src/token.ts | 72 + services/sign/pod-sign/tsconfig.json | 10 + services/telegram/pod-telegram/.eslintrc.js | 7 + services/telegram/pod-telegram/.npmignore | 4 + services/telegram/pod-telegram/Dockerfile | 9 + .../telegram/pod-telegram/config/rig.json | 4 + services/telegram/pod-telegram/jest.config.js | 7 + services/telegram/pod-telegram/package.json | 80 + services/telegram/pod-telegram/src/config.ts | 103 + services/telegram/pod-telegram/src/error.ts | 12 + .../telegram/pod-telegram/src/escaping.ts | 10 + services/telegram/pod-telegram/src/index.ts | 6 + services/telegram/pod-telegram/src/jwt.ts | 6 + services/telegram/pod-telegram/src/main.ts | 203 + services/telegram/pod-telegram/src/markup.ts | 192 + .../telegram/pod-telegram/src/platform.ts | 104 + services/telegram/pod-telegram/src/queue.ts | 45 + services/telegram/pod-telegram/src/server.ts | 50 + services/telegram/pod-telegram/src/storage.ts | 16 + .../telegram/pod-telegram/src/telegram.ts | 417 + services/telegram/pod-telegram/src/types.ts | 64 + services/telegram/pod-telegram/src/utils.ts | 164 + .../telegram/pod-telegram/src/workspace.ts | 844 + services/telegram/pod-telegram/tsconfig.json | 10 + tests/.env | 3 +- tests/docker-compose.yaml | 7 +- 578 files changed, 109084 insertions(+), 390 deletions(-) create mode 100644 desktop-package/.env create mode 100644 desktop-package/config/rig.json create mode 100644 desktop-package/entitlements.mac.plist create mode 100644 desktop-package/package.json create mode 100644 desktop-package/readme.md create mode 100644 desktop-package/scripts/notarize.js create mode 100755 desktop-package/scripts/publish-version.sh create mode 100644 desktop-package/src/AppIcon.icns create mode 100644 desktop-package/src/AppIcon.ico create mode 100644 desktop-package/src/AppIcon.png create mode 100644 desktop/.env create mode 100644 desktop/.env-dev create mode 100644 desktop/.eslintrc.js create mode 100644 desktop/config/rig.json create mode 100644 desktop/contextBridge.svg create mode 100644 desktop/declarations.d.ts create mode 100644 desktop/package.json create mode 100644 desktop/postcss.config.js create mode 100644 desktop/public/AppIcon.png create mode 100644 desktop/readme.md create mode 100644 desktop/src/main/args.ts create mode 100644 desktop/src/main/menu.ts create mode 100644 desktop/src/main/permissions.ts create mode 100644 desktop/src/main/start.ts create mode 100644 desktop/src/main/updater.ts create mode 100644 desktop/src/ui/index.ejs create mode 100644 desktop/src/ui/index.ts create mode 100644 desktop/src/ui/notifications.ts create mode 100644 desktop/src/ui/platform.ts create mode 100644 desktop/src/ui/preload.ts create mode 100644 desktop/src/ui/screenShare.ts create mode 100644 desktop/src/ui/types.ts create mode 100644 desktop/tests/fixtures/deep-link.html create mode 100644 desktop/tsconfig.json create mode 100644 desktop/webpack.config.js create mode 100644 dev/branding.json create mode 100644 dev/doc-import-tool/.eslintrc.js create mode 100644 dev/doc-import-tool/config/rig.json create mode 100644 dev/doc-import-tool/esbuild.js create mode 100644 dev/doc-import-tool/jest.config.js create mode 100644 dev/doc-import-tool/package.json create mode 100644 dev/doc-import-tool/src/__start.ts create mode 100644 dev/doc-import-tool/src/commands.ts create mode 100644 dev/doc-import-tool/src/config.ts create mode 100644 dev/doc-import-tool/src/convert/convert.ts create mode 100644 dev/doc-import-tool/src/extract/common.ts create mode 100644 dev/doc-import-tool/src/extract/container.ts create mode 100644 dev/doc-import-tool/src/extract/extract.ts create mode 100644 dev/doc-import-tool/src/extract/meta.ts create mode 100644 dev/doc-import-tool/src/extract/nodes.ts create mode 100644 dev/doc-import-tool/src/extract/sections.ts create mode 100644 dev/doc-import-tool/src/extract/types.ts create mode 100644 dev/doc-import-tool/src/helpers.ts create mode 100644 dev/doc-import-tool/src/import.ts create mode 100644 dev/doc-import-tool/src/index.ts create mode 100644 dev/doc-import-tool/toc.json create mode 100644 dev/doc-import-tool/tsconfig.json rename dev/prod/public/{platform => huly}/favicon.ico (100%) rename dev/prod/public/{platform => huly}/favicon.svg (100%) rename dev/prod/public/{platform => huly}/icon-1024.png (100%) rename dev/prod/public/{platform => huly}/icon-1600.png (100%) rename dev/prod/public/{platform => huly}/icon-192.png (100%) rename dev/prod/public/{platform => huly}/icon-256.png (100%) rename dev/prod/public/{platform => huly}/icon-512.png (100%) rename dev/prod/public/{platform => huly}/site.webmanifest (90%) create mode 100644 dev/prod/public/tracex/favicon.ico create mode 100644 dev/prod/public/tracex/favicon.png create mode 100644 dev/prod/public/tracex/favicon.svg create mode 100644 dev/prod/public/tracex/favicon_16.png create mode 100644 dev/prod/public/tracex/favicon_192.png create mode 100644 dev/prod/public/tracex/favicon_32.png create mode 100644 dev/prod/src/analytics.ts create mode 100644 dev/prod/src/analytics/analyticsCollector.ts create mode 100644 dev/prod/src/analytics/posthog.ts create mode 100644 dev/prod/src/analytics/sentry.ts create mode 100644 dev/prod/src/app-integration-tools.ts create mode 100644 models/analytics-collector/.eslintrc.js create mode 100644 models/analytics-collector/.npmignore create mode 100644 models/analytics-collector/config/rig.json create mode 100644 models/analytics-collector/package.json create mode 100644 models/analytics-collector/src/index.ts create mode 100644 models/analytics-collector/src/plugin.ts create mode 100644 models/analytics-collector/tsconfig.json create mode 100644 models/desktop-preferences/.eslintrc.js create mode 100644 models/desktop-preferences/.npmignore create mode 100644 models/desktop-preferences/config/rig.json create mode 100644 models/desktop-preferences/package.json create mode 100644 models/desktop-preferences/src/index.ts create mode 100644 models/desktop-preferences/tsconfig.json create mode 100644 packages/analytics-service/.eslintrc.js create mode 100644 packages/analytics-service/.npmignore create mode 100644 packages/analytics-service/config/rig.json create mode 100644 packages/analytics-service/jest.config.js create mode 100644 packages/analytics-service/package.json create mode 100644 packages/analytics-service/src/index.ts create mode 100644 packages/analytics-service/src/logging.ts create mode 100644 packages/analytics-service/src/sentry.ts create mode 100644 packages/analytics-service/tsconfig.json create mode 100644 plugins/analytics-collector-assets/.eslintrc.js create mode 100644 plugins/analytics-collector-assets/config/rig.json create mode 100644 plugins/analytics-collector-assets/jest.config.js create mode 100644 plugins/analytics-collector-assets/lang/en.json create mode 100644 plugins/analytics-collector-assets/lang/es.json create mode 100644 plugins/analytics-collector-assets/lang/pt.json create mode 100644 plugins/analytics-collector-assets/lang/ru.json create mode 100644 plugins/analytics-collector-assets/package.json create mode 100644 plugins/analytics-collector-assets/src/__tests__/lang.test.ts create mode 100644 plugins/analytics-collector-assets/src/index.ts create mode 100644 plugins/analytics-collector-assets/tsconfig.json create mode 100644 plugins/analytics-collector/.eslintrc.js create mode 100644 plugins/analytics-collector/.npmignore create mode 100644 plugins/analytics-collector/config/rig.json create mode 100644 plugins/analytics-collector/jest.config.js create mode 100644 plugins/analytics-collector/package.json create mode 100644 plugins/analytics-collector/src/index.ts create mode 100644 plugins/analytics-collector/src/plugin.ts create mode 100644 plugins/analytics-collector/src/types.ts create mode 100644 plugins/analytics-collector/src/utils.ts create mode 100644 plugins/analytics-collector/tsconfig.json create mode 100644 plugins/desktop-preferences-assets/.eslintrc.js create mode 100644 plugins/desktop-preferences-assets/assets/icons.svg create mode 100644 plugins/desktop-preferences-assets/config/rig.json create mode 100644 plugins/desktop-preferences-assets/jest.config.js create mode 100644 plugins/desktop-preferences-assets/lang/en.json create mode 100644 plugins/desktop-preferences-assets/lang/ru.json create mode 100644 plugins/desktop-preferences-assets/package.json create mode 100644 plugins/desktop-preferences-assets/src/__tests__/lang.test.ts create mode 100644 plugins/desktop-preferences-assets/src/index.ts create mode 100644 plugins/desktop-preferences-assets/tsconfig.json create mode 100644 plugins/desktop-preferences-resources/.eslintrc.js create mode 100644 plugins/desktop-preferences-resources/.prettierrc create mode 100644 plugins/desktop-preferences-resources/config/rig.json create mode 100644 plugins/desktop-preferences-resources/jest.config.js create mode 100644 plugins/desktop-preferences-resources/package.json create mode 100644 plugins/desktop-preferences-resources/postcss.config.js create mode 100644 plugins/desktop-preferences-resources/src/components/DesktopPreferencesPresenter.svelte create mode 100644 plugins/desktop-preferences-resources/src/index.ts create mode 100644 plugins/desktop-preferences-resources/src/plugin.ts create mode 100644 plugins/desktop-preferences-resources/src/utils.ts create mode 100644 plugins/desktop-preferences-resources/svelte.config.js create mode 100644 plugins/desktop-preferences-resources/tsconfig.json create mode 100644 plugins/desktop-preferences/.eslintrc.js create mode 100644 plugins/desktop-preferences/.npmignore create mode 100644 plugins/desktop-preferences/config/rig.json create mode 100644 plugins/desktop-preferences/jest.config.js create mode 100644 plugins/desktop-preferences/package.json create mode 100644 plugins/desktop-preferences/src/index.ts create mode 100644 plugins/desktop-preferences/tsconfig.json create mode 100644 plugins/diffview-assets/.eslintrc.js create mode 100644 plugins/diffview-assets/assets/icons.svg create mode 100644 plugins/diffview-assets/config/rig.json create mode 100644 plugins/diffview-assets/jest.config.js create mode 100644 plugins/diffview-assets/lang/en.json create mode 100644 plugins/diffview-assets/lang/ru.json create mode 100644 plugins/diffview-assets/package.json create mode 100644 plugins/diffview-assets/src/__tests__/lang.test.ts create mode 100644 plugins/diffview-assets/src/index.ts create mode 100644 plugins/diffview-assets/tsconfig.json create mode 100644 plugins/diffview-resources/.eslintrc.js create mode 100644 plugins/diffview-resources/.prettierrc create mode 100644 plugins/diffview-resources/config/rig.json create mode 100644 plugins/diffview-resources/jest.config.js create mode 100644 plugins/diffview-resources/package.json create mode 100644 plugins/diffview-resources/postcss.config.js create mode 100644 plugins/diffview-resources/src/components/DiffView.svelte create mode 100644 plugins/diffview-resources/src/components/DiffViewModeDropdown.svelte create mode 100644 plugins/diffview-resources/src/components/FileDiffContent.svelte create mode 100644 plugins/diffview-resources/src/components/FileDiffHeader.svelte create mode 100644 plugins/diffview-resources/src/components/FileDiffView.svelte create mode 100644 plugins/diffview-resources/src/components/InlineDiffView.svelte create mode 100644 plugins/diffview-resources/src/components/theme/github-dark.scss create mode 100644 plugins/diffview-resources/src/components/theme/github.scss create mode 100644 plugins/diffview-resources/src/highlight/highlight.ts create mode 100644 plugins/diffview-resources/src/highlight/index.ts create mode 100644 plugins/diffview-resources/src/highlight/languages/svelte-hljs.ts create mode 100644 plugins/diffview-resources/src/highlight/render.ts create mode 100644 plugins/diffview-resources/src/index.ts create mode 100644 plugins/diffview-resources/src/parser.ts create mode 100644 plugins/diffview-resources/src/plugin.ts create mode 100644 plugins/diffview-resources/src/utils.ts create mode 100644 plugins/diffview-resources/svelte.config.js create mode 100644 plugins/diffview-resources/tsconfig.json create mode 100644 plugins/diffview/.eslintrc.js create mode 100644 plugins/diffview/.npmignore create mode 100644 plugins/diffview/config/rig.json create mode 100644 plugins/diffview/jest.config.js create mode 100644 plugins/diffview/package.json create mode 100644 plugins/diffview/src/index.ts create mode 100644 plugins/diffview/src/types.ts create mode 100644 plugins/diffview/tsconfig.json create mode 100644 server-plugins/analytics-collector-resources/.eslintrc.js create mode 100644 server-plugins/analytics-collector-resources/.npmignore create mode 100644 server-plugins/analytics-collector-resources/.prettierignore create mode 100644 server-plugins/analytics-collector-resources/config/rig.json create mode 100644 server-plugins/analytics-collector-resources/jest.config.js create mode 100644 server-plugins/analytics-collector-resources/package.json create mode 100644 server-plugins/analytics-collector-resources/src/index.ts create mode 100644 server-plugins/analytics-collector-resources/src/utils.ts create mode 100644 server-plugins/analytics-collector-resources/tsconfig.json create mode 100644 server-plugins/analytics-collector/.eslintrc.js create mode 100644 server-plugins/analytics-collector/.npmignore create mode 100644 server-plugins/analytics-collector/config/rig.json create mode 100644 server-plugins/analytics-collector/jest.config.js create mode 100644 server-plugins/analytics-collector/package.json create mode 100644 server-plugins/analytics-collector/src/index.ts create mode 100644 server-plugins/analytics-collector/tsconfig.json create mode 100644 services/analytics-collector/pod-analytics-collector/.eslintrc.js create mode 100644 services/analytics-collector/pod-analytics-collector/.npmignore create mode 100644 services/analytics-collector/pod-analytics-collector/Dockerfile create mode 100644 services/analytics-collector/pod-analytics-collector/config/rig.json create mode 100644 services/analytics-collector/pod-analytics-collector/jest.config.js create mode 100644 services/analytics-collector/pod-analytics-collector/package.json create mode 100644 services/analytics-collector/pod-analytics-collector/src/account.ts create mode 100644 services/analytics-collector/pod-analytics-collector/src/collector.ts create mode 100644 services/analytics-collector/pod-analytics-collector/src/config.ts create mode 100644 services/analytics-collector/pod-analytics-collector/src/error.ts create mode 100644 services/analytics-collector/pod-analytics-collector/src/format.ts create mode 100644 services/analytics-collector/pod-analytics-collector/src/index.ts create mode 100644 services/analytics-collector/pod-analytics-collector/src/loaders.ts create mode 100644 services/analytics-collector/pod-analytics-collector/src/main.ts create mode 100644 services/analytics-collector/pod-analytics-collector/src/platform.ts create mode 100644 services/analytics-collector/pod-analytics-collector/src/server.ts create mode 100644 services/analytics-collector/pod-analytics-collector/src/workspaceClient.ts create mode 100644 services/analytics-collector/pod-analytics-collector/tsconfig.json create mode 100644 services/calendar/pod-calendar/.eslintrc.js create mode 100644 services/calendar/pod-calendar/.npmignore create mode 100644 services/calendar/pod-calendar/Dockerfile create mode 100644 services/calendar/pod-calendar/config/rig.json create mode 100644 services/calendar/pod-calendar/jest.config.js create mode 100644 services/calendar/pod-calendar/package.json create mode 100644 services/calendar/pod-calendar/src/base64.ts create mode 100644 services/calendar/pod-calendar/src/calendar.ts create mode 100644 services/calendar/pod-calendar/src/calendarController.ts create mode 100644 services/calendar/pod-calendar/src/client.ts create mode 100644 services/calendar/pod-calendar/src/config.ts create mode 100644 services/calendar/pod-calendar/src/error.ts create mode 100644 services/calendar/pod-calendar/src/index.ts create mode 100644 services/calendar/pod-calendar/src/jwt.ts create mode 100644 services/calendar/pod-calendar/src/main.ts create mode 100644 services/calendar/pod-calendar/src/rateLimiter.ts create mode 100644 services/calendar/pod-calendar/src/server.ts create mode 100644 services/calendar/pod-calendar/src/storage.ts create mode 100644 services/calendar/pod-calendar/src/types.ts create mode 100644 services/calendar/pod-calendar/src/utils.ts create mode 100644 services/calendar/pod-calendar/src/workspaceClient.ts create mode 100644 services/calendar/pod-calendar/tsconfig.json create mode 100644 services/github/github-assets/.eslintrc.js create mode 100644 services/github/github-assets/assets/icons.svg create mode 100644 services/github/github-assets/config/rig.json create mode 100644 services/github/github-assets/jest.config.js create mode 100644 services/github/github-assets/lang/en.json create mode 100644 services/github/github-assets/lang/pt.json create mode 100644 services/github/github-assets/lang/ru.json create mode 100644 services/github/github-assets/lang/sp.json create mode 100644 services/github/github-assets/package.json create mode 100644 services/github/github-assets/src/__tests__/lang.test.ts create mode 100644 services/github/github-assets/src/index.ts create mode 100644 services/github/github-assets/tsconfig.json create mode 100644 services/github/github-resources/.eslintrc.js create mode 100644 services/github/github-resources/.prettierrc create mode 100644 services/github/github-resources/config/rig.json create mode 100644 services/github/github-resources/jest.config.js create mode 100644 services/github/github-resources/package.json create mode 100644 services/github/github-resources/postcss.config.js create mode 100644 services/github/github-resources/src/components/AuthenticationCheck.svelte create mode 100644 services/github/github-resources/src/components/Configure.svelte create mode 100644 services/github/github-resources/src/components/Connect.svelte create mode 100644 services/github/github-resources/src/components/ConnectApp.svelte create mode 100644 services/github/github-resources/src/components/ConnectProject.svelte create mode 100644 services/github/github-resources/src/components/EditPullRequest.svelte create mode 100644 services/github/github-resources/src/components/GithubIcon.svelte create mode 100644 services/github/github-resources/src/components/GithubIntegerations.svelte create mode 100644 services/github/github-resources/src/components/GithubIssueHeader.svelte create mode 100644 services/github/github-resources/src/components/GithubIssueInfo.svelte create mode 100644 services/github/github-resources/src/components/GithubIssueInfoHeader.svelte create mode 100644 services/github/github-resources/src/components/GithubPersonProfile.svelte create mode 100644 services/github/github-resources/src/components/GithubRepositories.svelte create mode 100644 services/github/github-resources/src/components/MarkdownDescriptionDiff.svelte create mode 100644 services/github/github-resources/src/components/PullRequestDiff.svelte create mode 100644 services/github/github-resources/src/components/PullRequestMergeState.svelte create mode 100644 services/github/github-resources/src/components/PullRequests.svelte create mode 100644 services/github/github-resources/src/components/PullRequestsView.svelte create mode 100644 services/github/github-resources/src/components/RepositoryPresenter.svelte create mode 100644 services/github/github-resources/src/components/RepositoryPresenterRef.svelte create mode 100644 services/github/github-resources/src/components/RepositoryPresenterRefEditor.svelte create mode 100644 services/github/github-resources/src/components/RepositorySelector.svelte create mode 100644 services/github/github-resources/src/components/languageColors.ts create mode 100644 services/github/github-resources/src/components/presenters/GithubIssuePresenter.svelte create mode 100644 services/github/github-resources/src/components/presenters/GithubReviewPresenter.svelte create mode 100644 services/github/github-resources/src/components/presenters/GithubReviewThreadPresenter.svelte create mode 100644 services/github/github-resources/src/components/presenters/MergeableValuePresenter.svelte create mode 100644 services/github/github-resources/src/components/presenters/PullRequestNotificationPresenter.svelte create mode 100644 services/github/github-resources/src/components/presenters/PullRequestPresenter.svelte create mode 100644 services/github/github-resources/src/components/presenters/PullRequestReviewDecisionValuePresenter.svelte create mode 100644 services/github/github-resources/src/components/presenters/PullRequestStateValuePresenter.svelte create mode 100644 services/github/github-resources/src/components/presenters/RepositoryPresenter.svelte create mode 100644 services/github/github-resources/src/components/presenters/ReviewCommentPresenter.svelte create mode 100644 services/github/github-resources/src/components/presenters/TitlePresenter.svelte create mode 100644 services/github/github-resources/src/components/utils.ts create mode 100644 services/github/github-resources/src/configuration.ts create mode 100644 services/github/github-resources/src/index.ts create mode 100644 services/github/github-resources/src/plugin.ts create mode 100644 services/github/github-resources/svelte.config.js create mode 100644 services/github/github-resources/tsconfig.json create mode 100644 services/github/github.graphql create mode 100644 services/github/github/.eslintrc.js create mode 100644 services/github/github/.npmignore create mode 100644 services/github/github/config/rig.json create mode 100644 services/github/github/jest.config.js create mode 100644 services/github/github/package.json create mode 100644 services/github/github/src/index.ts create mode 100644 services/github/github/tsconfig.json create mode 100644 services/github/model-github/.eslintrc.js create mode 100644 services/github/model-github/.npmignore create mode 100644 services/github/model-github/config/rig.json create mode 100644 services/github/model-github/package.json create mode 100644 services/github/model-github/src/index.ts create mode 100644 services/github/model-github/src/migration.ts create mode 100644 services/github/model-github/src/plugin.ts create mode 100644 services/github/model-github/tsconfig.json create mode 100644 services/github/pod-github/.eslintrc.js create mode 100644 services/github/pod-github/.gitignore create mode 100644 services/github/pod-github/.npmignore create mode 100644 services/github/pod-github/Dockerfile create mode 100644 services/github/pod-github/Readme.md create mode 100644 services/github/pod-github/config/rig.json create mode 100644 services/github/pod-github/jest.config.js create mode 100644 services/github/pod-github/package.json create mode 100644 services/github/pod-github/src/account.ts create mode 100644 services/github/pod-github/src/client.ts create mode 100644 services/github/pod-github/src/collaborator.ts create mode 100644 services/github/pod-github/src/config.ts create mode 100644 services/github/pod-github/src/index.ts create mode 100644 services/github/pod-github/src/loaders.ts create mode 100644 services/github/pod-github/src/markdown/__tests__/markdown.json.gz create mode 100644 services/github/pod-github/src/markdown/__tests__/markup.test.ts create mode 100644 services/github/pod-github/src/markdown/__tests__/testMarkdowns.test.ts_ create mode 100644 services/github/pod-github/src/markdown/__tests__/textmodel.test.ts create mode 100644 services/github/pod-github/src/markdown/extensions.ts create mode 100644 services/github/pod-github/src/markdown/index.ts create mode 100644 services/github/pod-github/src/notifications.ts create mode 100644 services/github/pod-github/src/platform.ts create mode 100644 services/github/pod-github/src/server.ts create mode 100644 services/github/pod-github/src/sync/comments.ts create mode 100644 services/github/pod-github/src/sync/githubTypes.ts create mode 100644 services/github/pod-github/src/sync/guest.ts create mode 100644 services/github/pod-github/src/sync/issueBase.ts create mode 100644 services/github/pod-github/src/sync/issues.ts create mode 100644 services/github/pod-github/src/sync/projects.ts create mode 100644 services/github/pod-github/src/sync/pullrequests.ts create mode 100644 services/github/pod-github/src/sync/repository.ts create mode 100644 services/github/pod-github/src/sync/reviewComments.ts create mode 100644 services/github/pod-github/src/sync/reviewThreads.ts create mode 100644 services/github/pod-github/src/sync/reviews.ts create mode 100644 services/github/pod-github/src/sync/syncConfig.ts create mode 100644 services/github/pod-github/src/sync/users.ts create mode 100644 services/github/pod-github/src/sync/utils.ts create mode 100644 services/github/pod-github/src/types.ts create mode 100644 services/github/pod-github/src/utils.ts create mode 100644 services/github/pod-github/src/worker.ts create mode 100644 services/github/pod-github/tsconfig.json create mode 100644 services/github/readme.md create mode 100644 services/github/server-github-model/.eslintrc.js create mode 100644 services/github/server-github-model/.npmignore create mode 100644 services/github/server-github-model/config/rig.json create mode 100644 services/github/server-github-model/package.json create mode 100644 services/github/server-github-model/src/index.ts create mode 100644 services/github/server-github-model/tsconfig.json create mode 100644 services/github/server-github-resources/.eslintrc.js create mode 100644 services/github/server-github-resources/.npmignore create mode 100644 services/github/server-github-resources/config/rig.json create mode 100644 services/github/server-github-resources/jest.config.js create mode 100644 services/github/server-github-resources/package.json create mode 100644 services/github/server-github-resources/src/index.ts create mode 100644 services/github/server-github-resources/tsconfig.json create mode 100644 services/github/server-github/.eslintrc.js create mode 100644 services/github/server-github/.npmignore create mode 100644 services/github/server-github/config/rig.json create mode 100644 services/github/server-github/jest.config.js create mode 100644 services/github/server-github/package.json create mode 100644 services/github/server-github/src/index.ts create mode 100644 services/github/server-github/tsconfig.json create mode 100644 services/gmail/pod-gmail/.eslintrc.js create mode 100644 services/gmail/pod-gmail/.npmignore create mode 100644 services/gmail/pod-gmail/Dockerfile create mode 100644 services/gmail/pod-gmail/config/rig.json create mode 100644 services/gmail/pod-gmail/jest.config.js create mode 100644 services/gmail/pod-gmail/package.json create mode 100644 services/gmail/pod-gmail/src/base64.ts create mode 100644 services/gmail/pod-gmail/src/client.ts create mode 100644 services/gmail/pod-gmail/src/config.ts create mode 100644 services/gmail/pod-gmail/src/error.ts create mode 100644 services/gmail/pod-gmail/src/gmail.ts create mode 100644 services/gmail/pod-gmail/src/gmailController.ts create mode 100644 services/gmail/pod-gmail/src/index.ts create mode 100644 services/gmail/pod-gmail/src/jwt.ts create mode 100644 services/gmail/pod-gmail/src/main.ts create mode 100644 services/gmail/pod-gmail/src/rateLimiter.ts create mode 100644 services/gmail/pod-gmail/src/server.ts create mode 100644 services/gmail/pod-gmail/src/storage.ts create mode 100644 services/gmail/pod-gmail/src/types.ts create mode 100644 services/gmail/pod-gmail/src/utils.ts create mode 100644 services/gmail/pod-gmail/src/workspaceClient.ts create mode 100644 services/gmail/pod-gmail/tsconfig.json create mode 100644 services/love/.eslintrc.js create mode 100644 services/love/.npmignore create mode 100644 services/love/Dockerfile create mode 100644 services/love/config/rig.json create mode 100644 services/love/jest.config.js create mode 100644 services/love/package.json create mode 100644 services/love/src/client.ts create mode 100644 services/love/src/config.ts create mode 100644 services/love/src/index.ts create mode 100644 services/love/src/jwt.ts create mode 100644 services/love/src/main.ts create mode 100644 services/love/src/workspaceClient.ts create mode 100644 services/love/tsconfig.json create mode 100644 services/print/pod-print/.eslintrc.js create mode 100644 services/print/pod-print/.npmignore create mode 100644 services/print/pod-print/Dockerfile create mode 100644 services/print/pod-print/config/rig.json create mode 100644 services/print/pod-print/jest.config.js create mode 100644 services/print/pod-print/package.json create mode 100644 services/print/pod-print/src/config.ts create mode 100644 services/print/pod-print/src/convert.ts create mode 100644 services/print/pod-print/src/error.ts create mode 100644 services/print/pod-print/src/index.ts create mode 100644 services/print/pod-print/src/main.ts create mode 100644 services/print/pod-print/src/print.ts create mode 100644 services/print/pod-print/src/server.ts create mode 100644 services/print/pod-print/tsconfig.json create mode 100644 services/rekoni/.eslintrc.js create mode 100644 services/rekoni/Dockerfile create mode 100644 services/rekoni/config/rig.json create mode 100644 services/rekoni/demo/hh_err1.pdf create mode 100644 services/rekoni/demo/pdf1.pdf create mode 100644 services/rekoni/demo/pdf1.txt create mode 100644 services/rekoni/demo/pdf2.pdf create mode 100644 services/rekoni/demo/pdf3.pdf create mode 100644 services/rekoni/demo/pdf4.pdf create mode 100644 services/rekoni/demo/pdf5.pdf create mode 100644 services/rekoni/demo/pdf6.pdf create mode 100644 services/rekoni/demo/Резюме Власова Анатолия.docx create mode 100755 services/rekoni/docker_tag.sh create mode 100644 services/rekoni/esbuild.js create mode 100644 services/rekoni/jest.config.js create mode 100644 services/rekoni/package.json create mode 100644 services/rekoni/src/__tests__/demo.test.ts create mode 100644 services/rekoni/src/__tests__/extractor.test_.ts create mode 100644 services/rekoni/src/__tests__/hh.test.ts create mode 100644 services/rekoni/src/config.ts create mode 100644 services/rekoni/src/error.ts create mode 100644 services/rekoni/src/extractors/doc.ts create mode 100644 services/rekoni/src/extractors/docx.ts create mode 100644 services/rekoni/src/extractors/html.ts create mode 100644 services/rekoni/src/extractors/index.ts create mode 100644 services/rekoni/src/extractors/pdf.ts create mode 100644 services/rekoni/src/extractors/rtf.ts create mode 100644 services/rekoni/src/extractors/types.ts create mode 100644 services/rekoni/src/extractpdf.ts create mode 100644 services/rekoni/src/find-skills.ts create mode 100644 services/rekoni/src/generic.ts create mode 100644 services/rekoni/src/headhunter.ts create mode 100644 services/rekoni/src/index.ts create mode 100644 services/rekoni/src/jwt.ts create mode 100644 services/rekoni/src/linkedin.ts create mode 100644 services/rekoni/src/podborio.ts create mode 100644 services/rekoni/src/process.ts create mode 100644 services/rekoni/src/server.ts create mode 100644 services/rekoni/src/skills.ts create mode 100644 services/rekoni/src/types.ts create mode 100644 services/rekoni/src/utils.ts create mode 100644 services/rekoni/tsconfig.json create mode 100644 services/ses/pod-ses/.eslintrc.js create mode 100644 services/ses/pod-ses/.npmignore create mode 100644 services/ses/pod-ses/Dockerfile create mode 100755 services/ses/pod-ses/build.sh create mode 100644 services/ses/pod-ses/config/rig.json create mode 100644 services/ses/pod-ses/jest.config.js create mode 100644 services/ses/pod-ses/package.json create mode 100644 services/ses/pod-ses/src/config.ts create mode 100644 services/ses/pod-ses/src/error.ts create mode 100644 services/ses/pod-ses/src/index.ts create mode 100644 services/ses/pod-ses/src/main.ts create mode 100644 services/ses/pod-ses/src/server.ts create mode 100644 services/ses/pod-ses/src/ses.ts create mode 100644 services/ses/pod-ses/src/types.ts create mode 100644 services/ses/pod-ses/tsconfig.json create mode 100644 services/sign/pod-sign/.eslintrc.js create mode 100644 services/sign/pod-sign/.npmignore create mode 100644 services/sign/pod-sign/Dockerfile create mode 100644 services/sign/pod-sign/config/rig.json create mode 100644 services/sign/pod-sign/debug/branding.json create mode 100644 services/sign/pod-sign/debug/certificate.p12 create mode 100644 services/sign/pod-sign/jest.config.js create mode 100644 services/sign/pod-sign/package.json create mode 100644 services/sign/pod-sign/src/branding.ts create mode 100644 services/sign/pod-sign/src/client.ts create mode 100644 services/sign/pod-sign/src/config.ts create mode 100644 services/sign/pod-sign/src/error.ts create mode 100644 services/sign/pod-sign/src/index.ts create mode 100644 services/sign/pod-sign/src/main.ts create mode 100644 services/sign/pod-sign/src/server.ts create mode 100644 services/sign/pod-sign/src/sign.ts create mode 100644 services/sign/pod-sign/src/signController.ts create mode 100644 services/sign/pod-sign/src/token.ts create mode 100644 services/sign/pod-sign/tsconfig.json create mode 100644 services/telegram/pod-telegram/.eslintrc.js create mode 100644 services/telegram/pod-telegram/.npmignore create mode 100644 services/telegram/pod-telegram/Dockerfile create mode 100644 services/telegram/pod-telegram/config/rig.json create mode 100644 services/telegram/pod-telegram/jest.config.js create mode 100644 services/telegram/pod-telegram/package.json create mode 100644 services/telegram/pod-telegram/src/config.ts create mode 100644 services/telegram/pod-telegram/src/error.ts create mode 100644 services/telegram/pod-telegram/src/escaping.ts create mode 100644 services/telegram/pod-telegram/src/index.ts create mode 100644 services/telegram/pod-telegram/src/jwt.ts create mode 100644 services/telegram/pod-telegram/src/main.ts create mode 100644 services/telegram/pod-telegram/src/markup.ts create mode 100644 services/telegram/pod-telegram/src/platform.ts create mode 100644 services/telegram/pod-telegram/src/queue.ts create mode 100644 services/telegram/pod-telegram/src/server.ts create mode 100644 services/telegram/pod-telegram/src/storage.ts create mode 100644 services/telegram/pod-telegram/src/telegram.ts create mode 100644 services/telegram/pod-telegram/src/types.ts create mode 100644 services/telegram/pod-telegram/src/utils.ts create mode 100644 services/telegram/pod-telegram/src/workspace.ts create mode 100644 services/telegram/pod-telegram/tsconfig.json diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index aaf7c6269e..6c2c23868c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -22,22 +22,23 @@ on: env: CacheFolders: | common - deploy + desktop + desktop-package dev models packages plugins pods - products server server-plugins templates + services tests qms-tests rush.json .prettierrc tools - + # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" @@ -47,7 +48,7 @@ jobs: steps: - uses: actions/checkout@v4 with: - fetch-depth: 0 + fetch-depth: 0 filter: tree:0 - uses: actions/setup-node@v4 with: @@ -74,7 +75,7 @@ jobs: - name: Model version from git tags run: node common/scripts/install-run-rush.js model-version - + - name: Building... run: node common/scripts/install-run-rush.js build -p 20 @@ -114,6 +115,7 @@ jobs: path: ${{ env.CacheFolders}} key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ github.sha }} restore-keys: ${{ runner.os }}-build-${{ env.cache-name }}-${{ github.sha }} + - name: Checking svelte sources... run: node common/scripts/install-run-rush.js svelte-check formatting: @@ -144,8 +146,8 @@ jobs: echo '================================================================' echo 'Checking for diff files' echo '================================================================' - git diff '*.js' '*.ts' '*.svelte' '*.json' | cat - [ -z "$(git diff --name-only '*.js' '*.ts' '*.svelte' '*.json' | cat)" ] + git diff '*.js' '*.ts' '*.svelte' '*.json' '*.yaml' | cat + [ -z "$(git diff --name-only '*.js' '*.ts' '*.svelte' '*.json' '*.yaml' | cat)" ] echo '================================================================' - name: Formatting... run: node common/scripts/install-run-rush.js fast-format @@ -154,8 +156,8 @@ jobs: echo '================================================================' echo 'Checking for diff files' echo '================================================================' - git diff '*.js' '*.ts' '*.svelte' '*.json' | cat - [ -z "$(git diff --name-only '*.js' '*.ts' '*.svelte' '*.json' | cat)" ] + git diff '*.js' '*.ts' '*.svelte' '*.json' '*.yaml' | cat + [ -z "$(git diff --name-only '*.js' '*.ts' '*.svelte' '*.json' '*.yaml' | cat)" ] echo '================================================================' test: needs: build @@ -208,13 +210,13 @@ jobs: key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/pnpm-lock.yaml') }} - + - name: Checking for mis-matching dependencies... run: node common/scripts/install-run-rush.js check - + - name: Installing... run: node common/scripts/install-run-rush.js install - + - name: Docker Build run: node common/scripts/install-run-rush.js docker:build -p 20 env: @@ -222,7 +224,7 @@ jobs: - name: Prepare server run: | cd ./tests - export DO_CLEAN=true + export DO_CLEAN="true" ./prepare.sh - name: Install Playwright run: | @@ -232,7 +234,7 @@ jobs: run: | cd ./tests/sanity node ../../common/scripts/install-run-rushx.js uitest - - name: "Store docker logs" + - name: 'Store docker logs' if: always() run: | cd ./tests/sanity @@ -308,13 +310,13 @@ jobs: key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/pnpm-lock.yaml') }} - + - name: Checking for mis-matching dependencies... run: node common/scripts/install-run-rush.js check - + - name: Installing... run: node common/scripts/install-run-rush.js install - + - name: Docker Build run: node common/scripts/install-run-rush.js docker:build -p 20 env: @@ -332,7 +334,7 @@ jobs: run: | cd ./qms-tests/sanity node ../../common/scripts/install-run-rushx.js uitest - - name: "Store docker logs" + - name: 'Store docker logs' if: always() run: | cd ./qms-tests/sanity @@ -402,23 +404,23 @@ jobs: key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/pnpm-lock.yaml') }} - + - name: Checking for mis-matching dependencies... run: node common/scripts/install-run-rush.js check - + - name: Installing... run: node common/scripts/install-run-rush.js install - + - name: Docker Build run: node common/scripts/install-run-rush.js docker:build -p 20 env: DOCKER_CLI_HINTS: false - name: Prepare server - env: + env: SERVER_PROVIDER: uweb run: | cd ./tests - ./prepare.sh + ./prepare.sh - name: Install Playwright run: | cd ./tests/sanity @@ -427,7 +429,7 @@ jobs: run: | cd ./tests/sanity node ../../common/scripts/install-run-rushx.js uitest - - name: "Store docker logs" + - name: 'Store docker logs' if: always() run: | cd ./tests/sanity @@ -452,8 +454,8 @@ jobs: # uses: actions/upload-artifact@v3 # with: # name: db-snapshot - # path: ./tests/db_dump - docker-build: + # path: ./tests/db_dump + docker-build: needs: [build, test, svelte-check, uitest] runs-on: ubuntu-latest timeout-minutes: 60 @@ -475,15 +477,15 @@ jobs: key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/pnpm-lock.yaml') }} - + - name: Installing... run: node common/scripts/install-run-rush.js install - name: Model version from git tags run: node common/scripts/install-run-rush.js model-version - + - name: Docker build - run: node common/scripts/install-run-rush.js docker:build -p 20 + run: node common/scripts/install-run-rush.js docker:build -v env: DOCKER_CLI_HINTS: false - name: Login to Docker Hub @@ -494,9 +496,112 @@ jobs: password: ${{ secrets.DOCKER_ACCESS_TOKEN }} - name: Docker push staging if: ${{ github.ref == 'refs/heads/main' }} - run: node common/scripts/install-run-rush.js docker:staging + run: node common/scripts/install-run-rush.js docker:staging -v - name: Docker push tag if: ${{ startsWith(github.ref, 'refs/tags/v') }} run: | echo Pushing release of tag ${{ github.ref }} - node common/scripts/install-run-rush.js docker:push + node common/scripts/install-run-rush.js docker:push -v + dist-build: + # if: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') }} + if: ${{ startsWith(github.ref, 'refs/tags/v') }} + needs: build + runs-on: macos-latest + timeout-minutes: 60 + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + filter: tree:0 + submodules: recursive + + - uses: actions/setup-node@v4 + with: + node-version-file: '.nvmrc' + + - name: Cache node modules + uses: actions/cache@v4 + env: + cache-name: node + with: + path: | + common/temp + key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/pnpm-lock.yaml') }} + + - name: Installing... + run: node common/scripts/install-run-rush.js install --purge + - name: Model version from git tags + run: node common/scripts/install-run-rush.js model-version + - name: Package + run: node common/scripts/install-run-rush.js package --to desktop -p 20 -v + - name: Package JSON + run: | + cd desktop-package + cat ./package.json + - name: Install the Apple certificate and provisioning profile + env: + DEV_ID_P12_BASE64: ${{ secrets.DEV_ID_P12_BASE64 }} + DEV_ID_P12_PASSWORD: ${{ secrets.DEV_ID_P12_PASSWORD }} + KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} + run: | + # create variables + CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 + KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db + + # import certificate from secret + echo -n "$DEV_ID_P12_BASE64" | base64 --decode -o $CERTIFICATE_PATH + + # create temporary keychain + security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + security set-keychain-settings -lut 21600 $KEYCHAIN_PATH + security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + + # import certificate to keychain + security import $CERTIFICATE_PATH -P "$DEV_ID_P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH + security set-key-partition-list -S apple-tool:,apple: -k "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + security list-keychain -d user -s $KEYCHAIN_PATH + - name: Build distribution's + env: + AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }} + run: | + cd desktop-package + node ../common/scripts/install-run-rushx.js dist --linux --windows --x64 + - name: Build distribution's + env: + APPLE_ID: ${{ secrets.APPLE_ID }} + APPLE_ID_APP_PASS: ${{ secrets.APPLE_ID_APP_PASS }} + TEAM_ID: ${{ secrets.TEAM_ID }} + AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }} + run: | + cd desktop-package + node ../common/scripts/install-run-rushx.js dist-signed --macos --x64 --arm64 + - name: Publish distribution version + env: + AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }} + run: | + ./desktop-package/scripts/publish-version.sh + - name: Upload MacOS + uses: actions/upload-artifact@v3 + with: + name: Huly-MacOS-x64 + path: ./desktop-package/deploy/Huly-macos-*-x64.dmg + - name: Upload MacOS arm64 + uses: actions/upload-artifact@v3 + with: + name: Huly-MacOS-arm64 + path: ./desktop-package/deploy/Huly-macos-*-arm64.dmg + - name: Upload Windows + uses: actions/upload-artifact@v3 + with: + name: Huly-Windows + path: ./desktop-package/deploy/Huly-windows-*.zip + - name: Upload Linux + uses: actions/upload-artifact@v3 + with: + name: Huly-Linux + path: ./desktop-package/deploy/Huly-linux-*.zip diff --git a/.gitignore b/.gitignore index b203d1c095..5d39fa5430 100644 --- a/.gitignore +++ b/.gitignore @@ -92,3 +92,11 @@ tests/db_dump .build .format tools/apm/apm.js +deploy +metrics.txt +services/github/pod-github/src/github.graphql +.build +.format +dev/tool/report.csv +bundle/* +bundle.js.map diff --git a/common/config/rush/command-line.json b/common/config/rush/command-line.json index ba6b86cd30..11fc7155cc 100644 --- a/common/config/rush/command-line.json +++ b/common/config/rush/command-line.json @@ -49,6 +49,14 @@ "ignoreMissingScript": true, "allowWarningsOnSuccess": false }, + { + "name": "_phase:format", + "dependencies": { + "self": ["_phase:build"] + }, + "ignoreMissingScript": true, + "allowWarningsOnSuccess": false + }, { "name": "_phase:svelte-check", "dependencies": { @@ -81,10 +89,21 @@ "self": ["_phase:build", "_phase:package", "_phase:bundle"] }, "ignoreMissingScript": true, - "allowWarningsOnSuccess": false + "allowWarningsOnSuccess": true } ], - "commands": [ + "commands": [ + { + "commandKind": "bulk", + "name": "format", + "summary": "Format", + "description": "Perform a formatting", + "enableParallelism": true, + "incremental": false, + "ignoreMissingScript": true, + "safeForSimultaneousRushProcesses": true, + "disableBuildCache": true + }, { "commandKind": "phased", "name": "build:watch", @@ -99,17 +118,6 @@ "watchPhases": ["_phase:build", "_phase:validate"] } }, - { - "commandKind": "bulk", - "name": "format", - "summary": "Format", - "description": "Perform a formatting", - "enableParallelism": true, - "incremental": false, - "ignoreMissingScript": true, - "safeForSimultaneousRushProcesses": true, - "disableBuildCache": true - }, { "summary": "svelte-check", "commandKind": "phased", @@ -124,7 +132,11 @@ "summary": "build", "phases": ["_phase:build"], "enableParallelism": true, - "incremental": true + "incremental": true, + "watchOptions": { + "alwaysWatch": false, + "watchPhases": ["_phase:build"] + } }, { "commandKind": "phased", @@ -193,12 +205,12 @@ "incremental": true }, { - "commandKind": "global", - "name": "docker:up", - "summary": "Up development build", - "description": "Up development build", - "safeForSimultaneousRushProcesses": true, - "shellCommand": "cd ./dev && docker compose up -d --force-recreate" + "summary": "docker:rebuild", + "commandKind": "phased", + "name": "docker:rebuild", + "phases": ["_phase:build", "_phase:bundle", "_phase:package", "_phase:docker-build"], + "enableParallelism": true, + "incremental": false }, { "summary": "docker:staging", @@ -220,6 +232,30 @@ "disableBuildCache": true, "allowWarningsInSuccessfulBuild": true }, + { + "commandKind": "global", + "name": "docker", + "summary": "Build docker with platform", + "description": "use to build all docker containers required for platform", + "safeForSimultaneousRushProcesses": true, + "shellCommand": "rush docker:build -p 20 --to @hcengineering/pod-server --to @hcengineering/pod-front --to @hcengineering/prod --to @hcengineering/pod-account --to @hcengineering/pod-collaborator --to @hcengineering/tool --to @hcengineering/pod-print --to @hcengineering/pod-sign --to @hcengineering/pod-analytics-collector --to @hcengineering/rekoni-service" + }, + { + "commandKind": "global", + "name": "docker:up", + "summary": "Up development build", + "description": "Up development build", + "safeForSimultaneousRushProcesses": true, + "shellCommand": "cd ./dev && docker compose up -d --force-recreate" + }, + { + "commandKind": "global", + "name": "tool:upgrade", + "summary": "Upgrade all local models", + "description": "Upgrade all local models", + "safeForSimultaneousRushProcesses": true, + "shellCommand": "cd ./dev/tool && rushx run-local upgrade -f" + }, { "commandKind": "global", "name": "apply-templates", diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index c31c0213a7..f8b0b7e4a8 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -20,6 +20,9 @@ dependencies: '@elastic/elasticsearch': specifier: ^7.14.0 version: 7.17.13 + '@electron/notarize': + specifier: ^2.3.2 + version: 2.3.2 '@faker-js/faker': specifier: ^8.4.1 version: 8.4.1 @@ -41,6 +44,15 @@ dependencies: '@livekit/track-processors': specifier: ~0.3.1 version: 0.3.2(livekit-client@2.2.0) + '@octokit/types': + specifier: ^12.0.0 + version: 12.6.0 + '@octokit/webhooks': + specifier: ^12.0.3 + version: 12.2.0 + '@octokit/webhooks-types': + specifier: ^7.3.1 + version: 7.5.1 '@playwright/test': specifier: ^1.41.2 version: 1.41.2 @@ -62,6 +74,15 @@ dependencies: '@rush-temp/analytics': specifier: file:./projects/analytics.tgz version: file:projects/analytics.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2) + '@rush-temp/analytics-collector': + specifier: file:./projects/analytics-collector.tgz + version: file:projects/analytics-collector.tgz(@types/node@20.11.19)(esbuild@0.20.1)(svelte@4.2.12)(ts-node@10.9.2) + '@rush-temp/analytics-collector-assets': + specifier: file:./projects/analytics-collector-assets.tgz + version: file:projects/analytics-collector-assets.tgz(esbuild@0.20.1)(svelte@4.2.12)(ts-node@10.9.2) + '@rush-temp/analytics-service': + specifier: file:./projects/analytics-service.tgz + version: file:projects/analytics-service.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2) '@rush-temp/apm': specifier: file:./projects/apm.tgz version: file:projects/apm.tgz(ts-node@10.9.2) @@ -152,12 +173,36 @@ dependencies: '@rush-temp/core': specifier: file:./projects/core.tgz version: file:projects/core.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2) + '@rush-temp/desktop': + specifier: file:./projects/desktop.tgz + version: file:projects/desktop.tgz(bufferutil@4.0.8)(sass@1.71.1)(utf-8-validate@6.0.4) + '@rush-temp/desktop-1': + specifier: file:./projects/desktop-1.tgz + version: file:projects/desktop-1.tgz(webpack@5.90.3) + '@rush-temp/desktop-preferences': + specifier: file:./projects/desktop-preferences.tgz + version: file:projects/desktop-preferences.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2) + '@rush-temp/desktop-preferences-assets': + specifier: file:./projects/desktop-preferences-assets.tgz + version: file:projects/desktop-preferences-assets.tgz(esbuild@0.20.1)(ts-node@10.9.2) + '@rush-temp/desktop-preferences-resources': + specifier: file:./projects/desktop-preferences-resources.tgz + version: file:projects/desktop-preferences-resources.tgz(@types/node@20.11.19)(esbuild@0.20.1)(postcss-load-config@4.0.2)(postcss@8.4.35)(ts-node@10.9.2) '@rush-temp/devmodel': specifier: file:./projects/devmodel.tgz version: file:projects/devmodel.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2) '@rush-temp/devmodel-resources': specifier: file:./projects/devmodel-resources.tgz version: file:projects/devmodel-resources.tgz(@types/node@20.11.19)(esbuild@0.20.1)(postcss-load-config@4.0.2)(postcss@8.4.35)(ts-node@10.9.2) + '@rush-temp/diffview': + specifier: file:./projects/diffview.tgz + version: file:projects/diffview.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2) + '@rush-temp/diffview-assets': + specifier: file:./projects/diffview-assets.tgz + version: file:projects/diffview-assets.tgz(esbuild@0.20.1)(ts-node@10.9.2) + '@rush-temp/diffview-resources': + specifier: file:./projects/diffview-resources.tgz + version: file:projects/diffview-resources.tgz(@types/node@20.11.19)(esbuild@0.20.1)(postcss-load-config@4.0.2)(postcss@8.4.35)(ts-node@10.9.2) '@rush-temp/document': specifier: file:./projects/document.tgz version: file:projects/document.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2) @@ -182,6 +227,15 @@ dependencies: '@rush-temp/front': specifier: file:./projects/front.tgz version: file:projects/front.tgz(esbuild@0.20.1) + '@rush-temp/github': + specifier: file:./projects/github.tgz + version: file:projects/github.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2) + '@rush-temp/github-assets': + specifier: file:./projects/github-assets.tgz + version: file:projects/github-assets.tgz(esbuild@0.20.1)(ts-node@10.9.2) + '@rush-temp/github-resources': + specifier: file:./projects/github-resources.tgz + version: file:projects/github-resources.tgz(@types/node@20.11.19)(esbuild@0.20.1)(postcss-load-config@4.0.2)(postcss@8.4.35)(ts-node@10.9.2) '@rush-temp/gmail': specifier: file:./projects/gmail.tgz version: file:projects/gmail.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2) @@ -269,6 +323,9 @@ dependencies: '@rush-temp/model-all': specifier: file:./projects/model-all.tgz version: file:projects/model-all.tgz + '@rush-temp/model-analytics-collector': + specifier: file:./projects/model-analytics-collector.tgz + version: file:projects/model-analytics-collector.tgz '@rush-temp/model-attachment': specifier: file:./projects/model-attachment.tgz version: file:projects/model-attachment.tgz @@ -293,12 +350,18 @@ dependencies: '@rush-temp/model-core': specifier: file:./projects/model-core.tgz version: file:projects/model-core.tgz + '@rush-temp/model-desktop-preferences': + specifier: file:./projects/model-desktop-preferences.tgz + version: file:projects/model-desktop-preferences.tgz '@rush-temp/model-document': specifier: file:./projects/model-document.tgz version: file:projects/model-document.tgz '@rush-temp/model-drive': specifier: file:./projects/model-drive.tgz version: file:projects/model-drive.tgz + '@rush-temp/model-github': + specifier: file:./projects/model-github.tgz + version: file:projects/model-github.tgz '@rush-temp/model-gmail': specifier: file:./projects/model-gmail.tgz version: file:projects/model-gmail.tgz @@ -454,7 +517,7 @@ dependencies: version: file:projects/model-templates.tgz '@rush-temp/model-text-editor': specifier: file:./projects/model-text-editor.tgz - version: file:projects/model-text-editor.tgz(@tiptap/pm@2.2.4) + version: file:projects/model-text-editor.tgz '@rush-temp/model-time': specifier: file:./projects/model-time.tgz version: file:projects/model-time.tgz @@ -500,18 +563,45 @@ dependencies: '@rush-temp/pod-account': specifier: file:./projects/pod-account.tgz version: file:projects/pod-account.tgz + '@rush-temp/pod-analytics-collector': + specifier: file:./projects/pod-analytics-collector.tgz + version: file:projects/pod-analytics-collector.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4) '@rush-temp/pod-backup': specifier: file:./projects/pod-backup.tgz version: file:projects/pod-backup.tgz + '@rush-temp/pod-calendar': + specifier: file:./projects/pod-calendar.tgz + version: file:projects/pod-calendar.tgz(bufferutil@4.0.8)(ts-node@10.9.2)(utf-8-validate@6.0.4) '@rush-temp/pod-collaborator': specifier: file:./projects/pod-collaborator.tgz version: file:projects/pod-collaborator.tgz '@rush-temp/pod-front': specifier: file:./projects/pod-front.tgz version: file:projects/pod-front.tgz + '@rush-temp/pod-github': + specifier: file:./projects/pod-github.tgz + version: file:projects/pod-github.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4)(y-prosemirror@1.2.2) + '@rush-temp/pod-gmail': + specifier: file:./projects/pod-gmail.tgz + version: file:projects/pod-gmail.tgz(bufferutil@4.0.8)(ts-node@10.9.2)(utf-8-validate@6.0.4) + '@rush-temp/pod-love': + specifier: file:./projects/pod-love.tgz + version: file:projects/pod-love.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4) + '@rush-temp/pod-print': + specifier: file:./projects/pod-print.tgz + version: file:projects/pod-print.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4) '@rush-temp/pod-server': specifier: file:./projects/pod-server.tgz version: file:projects/pod-server.tgz + '@rush-temp/pod-ses': + specifier: file:./projects/pod-ses.tgz + version: file:projects/pod-ses.tgz + '@rush-temp/pod-sign': + specifier: file:./projects/pod-sign.tgz + version: file:projects/pod-sign.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4) + '@rush-temp/pod-telegram': + specifier: file:./projects/pod-telegram.tgz + version: file:projects/pod-telegram.tgz(bufferutil@4.0.8)(ts-node@10.9.2)(utf-8-validate@6.0.4) '@rush-temp/preference': specifier: file:./projects/preference.tgz version: file:projects/preference.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2) @@ -542,6 +632,9 @@ dependencies: '@rush-temp/products-resources': specifier: file:./projects/products-resources.tgz version: file:projects/products-resources.tgz(@types/node@20.11.19)(esbuild@0.20.1)(postcss-load-config@4.0.2)(postcss@8.4.35)(ts-node@10.9.2) + '@rush-temp/qms-doc-import-tool': + specifier: file:./projects/qms-doc-import-tool.tgz + version: file:projects/qms-doc-import-tool.tgz '@rush-temp/qms-tests-sanity': specifier: file:./projects/qms-tests-sanity.tgz version: file:projects/qms-tests-sanity.tgz @@ -572,6 +665,9 @@ dependencies: '@rush-temp/rekoni': specifier: file:./projects/rekoni.tgz version: file:projects/rekoni.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2) + '@rush-temp/rekoni-service': + specifier: file:./projects/rekoni-service.tgz + version: file:projects/rekoni-service.tgz(webpack@5.90.3) '@rush-temp/request': specifier: file:./projects/request.tgz version: file:projects/request.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2) @@ -596,6 +692,12 @@ dependencies: '@rush-temp/server-activity-resources': specifier: file:./projects/server-activity-resources.tgz version: file:projects/server-activity-resources.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2) + '@rush-temp/server-analytics-collector': + specifier: file:./projects/server-analytics-collector.tgz + version: file:projects/server-analytics-collector.tgz(esbuild@0.20.1)(ts-node@10.9.2) + '@rush-temp/server-analytics-collector-resources': + specifier: file:./projects/server-analytics-collector-resources.tgz + version: file:projects/server-analytics-collector-resources.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2) '@rush-temp/server-attachment': specifier: file:./projects/server-attachment.tgz version: file:projects/server-attachment.tgz(esbuild@0.20.1)(ts-node@10.9.2) @@ -653,6 +755,15 @@ dependencies: '@rush-temp/server-drive-resources': specifier: file:./projects/server-drive-resources.tgz version: file:projects/server-drive-resources.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2) + '@rush-temp/server-github': + specifier: file:./projects/server-github.tgz + version: file:projects/server-github.tgz(esbuild@0.20.1)(ts-node@10.9.2) + '@rush-temp/server-github-model': + specifier: file:./projects/server-github-model.tgz + version: file:projects/server-github-model.tgz + '@rush-temp/server-github-resources': + specifier: file:./projects/server-github-resources.tgz + version: file:projects/server-github-resources.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2) '@rush-temp/server-gmail': specifier: file:./projects/server-gmail.tgz version: file:projects/server-gmail.tgz(esbuild@0.20.1)(ts-node@10.9.2) @@ -923,6 +1034,24 @@ dependencies: '@rush-temp/workbench-resources': specifier: file:./projects/workbench-resources.tgz version: file:projects/workbench-resources.tgz(@types/node@20.11.19)(esbuild@0.20.1)(postcss-load-config@4.0.2)(postcss@8.4.35)(ts-node@10.9.2) + '@sentry/node': + specifier: ^7.103.0 + version: 7.118.0 + '@sentry/svelte': + specifier: ~7.101.0 + version: 7.101.1(svelte@4.2.12) + '@signpdf/placeholder-pdf-lib': + specifier: ^3.2.4 + version: 3.2.4(pdf-lib@1.17.1) + '@signpdf/signer-p12': + specifier: ^3.2.4 + version: 3.2.4(node-forge@1.3.1) + '@signpdf/signpdf': + specifier: ^3.2.4 + version: 3.2.4 + '@signpdf/utils': + specifier: ^3.2.4 + version: 3.2.4 '@storybook/addon-essentials': specifier: ^7.0.6 version: 7.6.17(react-dom@18.2.0)(react@18.2.0) @@ -1028,6 +1157,9 @@ dependencies: '@tiptap/suggestion': specifier: ^2.2.4 version: 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4) + '@tsconfig/node16': + specifier: ^1.0.4 + version: 1.0.4 '@types/body-parser': specifier: ~1.19.2 version: 1.19.5 @@ -1043,18 +1175,33 @@ dependencies: '@types/diff': specifier: ~5.0.2 version: 5.0.9 + '@types/domhandler': + specifier: ^2.4.5 + version: 2.4.5 + '@types/email-addresses': + specifier: ^3.0.0 + version: 3.0.0 '@types/express': specifier: ^4.17.13 version: 4.17.21 '@types/express-fileupload': specifier: ^1.1.7 version: 1.4.4 + '@types/express-form-data': + specifier: ^2.0.5 + version: 2.0.5 '@types/html-to-text': specifier: ^8.1.1 version: 8.1.1 + '@types/htmlparser2': + specifier: ^3.10.7 + version: 3.10.7 '@types/jest': specifier: ^29.5.5 version: 29.5.12 + '@types/jimp': + specifier: ^0.2.28 + version: 0.2.28 '@types/js-yaml': specifier: ^4.0.9 version: 4.0.9 @@ -1079,6 +1226,9 @@ dependencies: '@types/markdown-it': specifier: ~13.0.0 version: 13.0.8 + '@types/mime': + specifier: ^3.0.1 + version: 3.0.4 '@types/mime-types': specifier: ~2.1.1 version: 2.1.4 @@ -1100,6 +1250,9 @@ dependencies: '@types/passport-google-oauth20': specifier: ^2.0.0 version: 2.0.14 + '@types/pdfjs-dist': + specifier: 2.10.378 + version: 2.10.378 '@types/png-chunks-extract': specifier: ^1.0.2 version: 1.0.2 @@ -1160,6 +1313,9 @@ dependencies: '@uppy/xhr-upload': specifier: ^3.6.8 version: 3.6.8(@uppy/core@3.13.1) + '@vercel/webpack-asset-relocator-loader': + specifier: ^1.7.3 + version: 1.7.4 allure-playwright: specifier: ^2.9.2 version: 2.12.2 @@ -1169,9 +1325,15 @@ dependencies: autoprefixer: specifier: ^10.4.14 version: 10.4.17(postcss@8.4.35) + aws-sdk: + specifier: ^2.1423.0 + version: 2.1664.0 base64-js: specifier: ^1.5.1 version: 1.5.1 + big-integer: + specifier: ^1.6.51 + version: 1.6.52 body-parser: specifier: ^1.20.2 version: 1.20.2 @@ -1193,6 +1355,9 @@ dependencies: compression-webpack-plugin: specifier: ^10.0.0 version: 10.0.0(webpack@5.90.3) + copy-webpack-plugin: + specifier: ^11.0.0 + version: 11.0.0(webpack@5.90.3) cors: specifier: ^2.8.5 version: 2.8.5 @@ -1223,6 +1388,15 @@ dependencies: diff: specifier: ^5.1.0 version: 5.2.0 + diff2html: + specifier: ~3.4.35 + version: 3.4.48 + domhandler: + specifier: ^5.0.3 + version: 5.0.3 + domutils: + specifier: ^3.1.0 + version: 3.1.0 dotenv: specifier: ~16.0.0 version: 16.0.3 @@ -1235,6 +1409,30 @@ dependencies: elastic-apm-node: specifier: ~3.26.0 version: 3.26.0 + electron: + specifier: ^31.3.0 + version: 31.3.0 + electron-builder: + specifier: ^24.13.3 + version: 24.13.3 + electron-context-menu: + specifier: ^4.0.1 + version: 4.0.1 + electron-log: + specifier: ^5.1.7 + version: 5.1.7 + electron-squirrel-startup: + specifier: ~1.0.0 + version: 1.0.1 + electron-store: + specifier: ^10.0.0 + version: 10.0.0 + electron-updater: + specifier: ^6.2.1 + version: 6.2.1 + electron-windows-badge: + specifier: ^1.1.0 + version: 1.1.0 email-addresses: specifier: ^5.0.0 version: 5.0.0 @@ -1268,6 +1466,9 @@ dependencies: eslint-plugin-n: specifier: ^15.4.0 version: 15.7.0(eslint@8.56.0) + eslint-plugin-node: + specifier: ^11.1.0 + version: 11.1.0(eslint@8.56.0) eslint-plugin-promise: specifier: ^6.1.1 version: 6.1.1(eslint@8.56.0) @@ -1280,6 +1481,9 @@ dependencies: express-fileupload: specifier: ^1.5.1 version: 1.5.1 + express-form-data: + specifier: ^2.0.22 + version: 2.0.23 express-static-gzip: specifier: ^2.1.7 version: 2.1.7 @@ -1289,6 +1493,9 @@ dependencies: fast-equals: specifier: ^5.0.1 version: 5.0.1 + file-api: + specifier: ^0.10.4 + version: 0.10.4 file-loader: specifier: ^6.2.0 version: 6.2.0(webpack@5.90.3) @@ -1298,15 +1505,39 @@ dependencies: fork-ts-checker-webpack-plugin: specifier: ~7.3.0 version: 7.3.0(typescript@5.3.3)(webpack@5.90.3) + form-data: + specifier: ^4.0.0 + version: 4.0.0 + gaxios: + specifier: ^5.0.1 + version: 5.1.3 + google-auth-library: + specifier: ^8.0.2 + version: 8.9.0 + googleapis: + specifier: ^122.0.0 + version: 122.0.0 got: specifier: ^11.8.3 version: 11.8.6 + graphql: + specifier: ^16.8.0 + version: 16.9.0 + graphql-binding: + specifier: ^2.5.2 + version: 2.5.2 + highlight.js: + specifier: ~11.8.0 + version: 11.8.0 html-to-text: specifier: ^9.0.3 version: 9.0.5 html-webpack-plugin: specifier: ^5.5.0 version: 5.6.0(webpack@5.90.3) + htmlparser2: + specifier: ^9.0.0 + version: 9.1.0 intl-messageformat: specifier: ^9.7.1 version: 9.13.0 @@ -1316,6 +1547,9 @@ dependencies: jest-environment-jsdom: specifier: 29.7.0 version: 29.7.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + jimp: + specifier: ^0.16.1 + version: 0.16.13 js-yaml: specifier: ^4.1.0 version: 4.1.0 @@ -1349,9 +1583,18 @@ dependencies: livekit-client: specifier: ^2.0.10 version: 2.2.0 + livekit-server-sdk: + specifier: ^2.0.10 + version: 2.6.0 + mammoth: + specifier: ^1.6.0 + version: 1.8.0 markdown-it: specifier: ^14.0.0 version: 14.0.0 + mime: + specifier: ^3.0.0 + version: 3.0.0 mime-types: specifier: ~2.1.34 version: 2.1.35 @@ -1373,6 +1616,15 @@ dependencies: node-fetch: specifier: ^2.6.6 version: 2.7.0 + node-forge: + specifier: ^1.3.1 + version: 1.3.1 + node-loader: + specifier: ~2.0.0 + version: 2.0.0(webpack@5.90.3) + octokit: + specifier: ^3.1.1 + version: 3.2.1 p-queue: specifier: ~7.3.0 version: 7.3.4 @@ -1382,6 +1634,12 @@ dependencies: passport-google-oauth20: specifier: ~2.0.0 version: 2.0.0 + pdf-lib: + specifier: ^1.12.0 + version: 1.17.1 + pdfjs-dist: + specifier: 2.12.313 + version: 2.12.313 png-chunks-extract: specifier: ^1.0.0 version: 1.0.0 @@ -1394,6 +1652,9 @@ dependencies: postcss-loader: specifier: ^7.0.2 version: 7.3.4(postcss@8.4.35)(typescript@5.3.3)(webpack@5.90.3) + posthog-js: + specifier: ~1.122.0 + version: 1.122.0 prettier: specifier: ^3.1.0 version: 3.2.5 @@ -1406,6 +1667,9 @@ dependencies: prosemirror-model: specifier: ^1.19.4 version: 1.19.4 + puppeteer: + specifier: ^22.6.1 + version: 22.14.0(bufferutil@4.0.8)(typescript@5.3.3)(utf-8-validate@6.0.4) qs: specifier: ~6.11.0 version: 6.11.2 @@ -1439,6 +1703,9 @@ dependencies: smartcrop: specifier: ~2.0.5 version: 2.0.5 + smee-client: + specifier: ^1.2.3 + version: 1.2.5 storybook: specifier: ^7.0.6 version: 7.6.17(bufferutil@4.0.8)(utf-8-validate@6.0.4) @@ -1469,6 +1736,9 @@ dependencies: tar-stream: specifier: ^2.2.0 version: 2.2.0 + telegram: + specifier: 2.22.2 + version: 2.22.2 toposort: specifier: ^2.0.2 version: 2.0.2 @@ -1481,6 +1751,12 @@ dependencies: ts-node: specifier: ^10.8.0 version: 10.9.2(@types/node@20.11.19)(typescript@5.3.3) + ts-node-dev: + specifier: ^2.0.0 + version: 2.0.0(@types/node@20.11.19)(typescript@5.3.3) + ts-standard: + specifier: ^12.0.2 + version: 12.0.2(typescript@5.3.3) typescript: specifier: ^5.3.3 version: 5.3.3 @@ -1511,6 +1787,12 @@ dependencies: webpack-dev-server: specifier: ^4.11.1 version: 4.15.1(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4)(webpack@5.90.3) + winston: + specifier: ^3.11.0 + version: 3.13.1 + winston-daily-rotate-file: + specifier: ^5.0.0 + version: 5.0.0(winston@3.13.1) ws: specifier: ^8.18.0 version: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) @@ -1523,9 +1805,16 @@ dependencies: yjs: specifier: ^13.5.52 version: 13.6.12 + zod: + specifier: ^3.22.4 + version: 3.23.8 packages: + /7zip-bin@5.2.0: + resolution: {integrity: sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==} + dev: false + /@aashutoshrathi/word-wrap@1.2.6: resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} @@ -3529,6 +3818,15 @@ packages: dev: false optional: true + /@colors/colors@1.6.0: + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} + engines: {node: '>=0.1.90'} + dev: false + + /@cryptography/aes@0.1.1: + resolution: {integrity: sha512-PcYz4FDGblO6tM2kSC+VzhhK62vml6k6/YAkiWtyPvrgJVfnDRoHGDtKn5UiaRRUrvUTTocBpvc2rRgTCqxjsg==} + dev: false + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -3536,6 +3834,22 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: false + /@dabh/diagnostics@2.0.3: + resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} + dependencies: + colorspace: 1.1.4 + enabled: 2.0.0 + kuler: 2.0.0 + dev: false + + /@develar/schema-utils@2.6.5: + resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==} + engines: {node: '>= 8.9.0'} + dependencies: + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + dev: false + /@discoveryjs/json-ext@0.5.7: resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} @@ -3565,6 +3879,85 @@ packages: - supports-color dev: false + /@electron/asar@3.2.10: + resolution: {integrity: sha512-mvBSwIBUeiRscrCeJE1LwctAriBj65eUDm0Pc11iE5gRwzkmsdbS7FnZ1XUWjpSeQWL1L5g12Fc/SchPM9DUOw==} + engines: {node: '>=10.12.0'} + hasBin: true + dependencies: + commander: 5.1.0 + glob: 7.2.3 + minimatch: 3.1.2 + dev: false + + /@electron/get@2.0.3: + resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==} + engines: {node: '>=12'} + dependencies: + debug: 4.3.5 + env-paths: 2.2.1 + fs-extra: 8.1.0 + got: 11.8.6 + progress: 2.0.3 + semver: 6.3.1 + sumchecker: 3.0.1 + optionalDependencies: + global-agent: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@electron/notarize@2.2.1: + resolution: {integrity: sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg==} + engines: {node: '>= 10.0.0'} + dependencies: + debug: 4.3.4 + fs-extra: 9.1.0 + promise-retry: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@electron/notarize@2.3.2: + resolution: {integrity: sha512-zfayxCe19euNwRycCty1C7lF7snk9YwfRpB5M8GLr1a4ICH63znxaPNAubrMvj0yDvVozqfgsdYpXVUnpWBDpg==} + engines: {node: '>= 10.0.0'} + dependencies: + debug: 4.3.4 + fs-extra: 9.1.0 + promise-retry: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@electron/osx-sign@1.0.5: + resolution: {integrity: sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + compare-version: 0.1.2 + debug: 4.3.4 + fs-extra: 10.1.0 + isbinaryfile: 4.0.10 + minimist: 1.2.8 + plist: 3.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@electron/universal@1.5.1: + resolution: {integrity: sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==} + engines: {node: '>=8.6'} + dependencies: + '@electron/asar': 3.2.10 + '@malept/cross-spawn-promise': 1.1.1 + debug: 4.3.4 + dir-compare: 3.3.0 + fs-extra: 9.1.0 + minimatch: 3.1.2 + plist: 3.1.0 + transitivePeerDependencies: + - supports-color + dev: false + /@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0): resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} peerDependencies: @@ -4654,6 +5047,389 @@ packages: chalk: 4.1.2 dev: false + /@jimp/bmp@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-9edAxu7N2FX7vzkdl5Jo1BbACfycUtBQX+XBMcHA2bk62P8R0otgkHg798frgAk/WxQIzwxqOH6wMiCwrlAzdQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + bmp-js: 0.1.0 + dev: false + + /@jimp/core@0.16.13: + resolution: {integrity: sha512-qXpA1tzTnlkTku9yqtuRtS/wVntvE6f3m3GNxdTdtmc+O+Wcg9Xo2ABPMh7Nc0AHbMKzwvwgB2JnjZmlmJEObg==} + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/utils': 0.16.13 + any-base: 1.1.0 + buffer: 5.7.1 + exif-parser: 0.1.12 + file-type: 16.5.4 + load-bmfont: 1.4.2 + mkdirp: 0.5.6 + phin: 2.9.3 + pixelmatch: 4.0.2 + tinycolor2: 1.6.0 + transitivePeerDependencies: + - debug + dev: false + + /@jimp/custom@0.16.13: + resolution: {integrity: sha512-LTATglVUPGkPf15zX1wTMlZ0+AU7cGEGF6ekVF1crA8eHUWsGjrYTB+Ht4E3HTrCok8weQG+K01rJndCp/l4XA==} + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/core': 0.16.13 + transitivePeerDependencies: + - debug + dev: false + + /@jimp/gif@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-yFAMZGv3o+YcjXilMWWwS/bv1iSqykFahFMSO169uVMtfQVfa90kt4/kDwrXNR6Q9i6VHpFiGZMlF2UnHClBvg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + gifwrap: 0.9.4 + omggif: 1.0.10 + dev: false + + /@jimp/jpeg@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-BJHlDxzTlCqP2ThqP8J0eDrbBfod7npWCbJAcfkKqdQuFk0zBPaZ6KKaQKyKxmWJ87Z6ohANZoMKEbtvrwz1AA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + jpeg-js: 0.4.4 + dev: false + + /@jimp/plugin-blit@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-8Z1k96ZFxlhK2bgrY1JNWNwvaBeI/bciLM0yDOni2+aZwfIIiC7Y6PeWHTAvjHNjphz+XCt01WQmOYWCn0ML6g==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugin-blur@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-PvLrfa8vkej3qinlebyhLpksJgCF5aiysDMSVhOZqwH5nQLLtDE9WYbnsofGw4r0VVpyw3H/ANCIzYTyCtP9Cg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugin-circle@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-RNave7EFgZrb5V5EpdvJGAEHMnDAJuwv05hKscNfIYxf0kR3KhViBTDy+MoTnMlIvaKFULfwIgaZWzyhuINMzA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugin-color@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-xW+9BtEvoIkkH/Wde9ql4nAFbYLkVINhpgAE7VcBUsuuB34WUbcBl/taOuUYQrPEFQJ4jfXiAJZ2H/rvKjCVnQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + tinycolor2: 1.6.0 + dev: false + + /@jimp/plugin-contain@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13)(@jimp/plugin-resize@0.16.13)(@jimp/plugin-scale@0.16.13): + resolution: {integrity: sha512-QayTXw4tXMwU6q6acNTQrTTFTXpNRBe+MgTGMDU0lk+23PjlFCO/9sacflelG8lsp7vNHhAxFeHptDMAksEYzg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/plugin-blit': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-scale': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13) + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugin-cover@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-crop@0.16.13)(@jimp/plugin-resize@0.16.13)(@jimp/plugin-scale@0.16.13): + resolution: {integrity: sha512-BSsP71GTNaqWRcvkbWuIVH+zK7b3TSNebbhDkFK0fVaUTzHuKMS/mgY4hDZIEVt7Rf5FjadAYtsujHN9w0iSYA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/plugin-crop': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-scale': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13) + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugin-crop@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-WEl2tPVYwzYL8OKme6Go2xqiWgKsgxlMwyHabdAU4tXaRwOCnOI7v4021gCcBb9zn/oWwguHuKHmK30Fw2Z/PA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugin-displace@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-qt9WKq8vWrcjySa9DyQ0x/RBMHQeiVjdVSY1SJsMjssPUf0pS74qorcuAkGi89biN3YoGUgPkpqECnAWnYwgGA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugin-dither@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-5/N3yJggbWQTlGZHQYJPmQXEwR52qaXjEzkp1yRBbtdaekXE3BG/suo0fqeoV/csf8ooI78sJzYmIrxNoWVtgQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugin-fisheye@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-2rZmTdFbT/cF9lEZIkXCYO0TsT114Q27AX5IAo0Sju6jVQbvIk1dFUTnwLDadTo8wkJlFzGqMQ24Cs8cHWOliA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugin-flip@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-rotate@0.16.13): + resolution: {integrity: sha512-EmcgAA74FTc5u7Z+hUO/sRjWwfPPLuOQP5O64x5g4j0T12Bd29IgsYZxoutZo/rb3579+JNa/3wsSEmyVv1EpA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-rotate': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/plugin-rotate': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13)(@jimp/plugin-crop@0.16.13)(@jimp/plugin-resize@0.16.13) + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugin-gaussian@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-A1XKfGQD0iDdIiKqFYi8nZMv4dDVYdxbrmgR7y/CzUHhSYdcmoljLIIsZZM3Iks/Wa353W3vtvkWLuDbQbch1w==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugin-invert@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-xFMrIn7czEZbdbMzZWuaZFnlLGJDVJ82y5vlsKsXRTG2kcxRsMPXvZRWHV57nSs1YFsNqXSbrC8B98n0E32njQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugin-mask@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-wLRYKVBXql2GAYgt6FkTnCfE+q5NomM7Dlh0oIPGAoMBWDyTx0eYutRK6PlUrRK2yMHuroAJCglICTbxqGzowQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugin-normalize@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-3tfad0n9soRna4IfW9NzQdQ2Z3ijkmo21DREHbE6CGcMIxOSvfRdSvf1qQPApxjTSo8LTU4MCi/fidx/NZ0GqQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugin-print@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13): + resolution: {integrity: sha512-0m6i3p01PGRkGAK9r53hDYrkyMq+tlhLOIbsSTmZyh6HLshUKlTB7eXskF5OpVd5ZUHoltlNc6R+ggvKIzxRFw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/plugin-blit': 0.16.13(@jimp/custom@0.16.13) + '@jimp/utils': 0.16.13 + load-bmfont: 1.4.2 + transitivePeerDependencies: + - debug + dev: false + + /@jimp/plugin-resize@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-qoqtN8LDknm3fJm9nuPygJv30O3vGhSBD2TxrsCnhtOsxKAqVPJtFVdGd/qVuZ8nqQANQmTlfqTiK9mVWQ7MiQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugin-rotate@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13)(@jimp/plugin-crop@0.16.13)(@jimp/plugin-resize@0.16.13): + resolution: {integrity: sha512-Ev+Jjmj1nHYw897z9C3R9dYsPv7S2/nxdgfFb/h8hOwK0Ovd1k/+yYS46A0uj/JCKK0pQk8wOslYBkPwdnLorw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/plugin-blit': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-crop': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugin-scale@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13): + resolution: {integrity: sha512-05POQaEJVucjTiSGMoH68ZiELc7QqpIpuQlZ2JBbhCV+WCbPFUBcGSmE7w4Jd0E2GvCho/NoMODLwgcVGQA97A==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugin-shadow@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blur@0.16.13)(@jimp/plugin-resize@0.16.13): + resolution: {integrity: sha512-nmu5VSZ9hsB1JchTKhnnCY+paRBnwzSyK5fhkhtQHHoFD5ArBQ/5wU8y6tCr7k/GQhhGq1OrixsECeMjPoc8Zw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blur': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/plugin-blur': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugin-threshold@0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-color@0.16.13)(@jimp/plugin-resize@0.16.13): + resolution: {integrity: sha512-+3zArBH0OE3Rhjm4HyAokMsZlIq5gpQec33CncyoSwxtRBM2WAhUVmCUKuBo+Lr/2/4ISoY4BWpHKhMLDix6cA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-color': '>=0.8.0' + '@jimp/plugin-resize': '>=0.8.0' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/plugin-color': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) + '@jimp/utils': 0.16.13 + dev: false + + /@jimp/plugins@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-CJLdqODEhEVs4MgWCxpWL5l95sCBlkuSLz65cxEm56X5akIsn4LOlwnKoSEZioYcZUBvHhCheH67AyPTudfnQQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/plugin-blit': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-blur': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-circle': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-color': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-contain': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13)(@jimp/plugin-resize@0.16.13)(@jimp/plugin-scale@0.16.13) + '@jimp/plugin-cover': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-crop@0.16.13)(@jimp/plugin-resize@0.16.13)(@jimp/plugin-scale@0.16.13) + '@jimp/plugin-crop': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-displace': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-dither': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-fisheye': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-flip': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-rotate@0.16.13) + '@jimp/plugin-gaussian': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-invert': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-mask': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-normalize': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-print': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13) + '@jimp/plugin-resize': 0.16.13(@jimp/custom@0.16.13) + '@jimp/plugin-rotate': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blit@0.16.13)(@jimp/plugin-crop@0.16.13)(@jimp/plugin-resize@0.16.13) + '@jimp/plugin-scale': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-resize@0.16.13) + '@jimp/plugin-shadow': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-blur@0.16.13)(@jimp/plugin-resize@0.16.13) + '@jimp/plugin-threshold': 0.16.13(@jimp/custom@0.16.13)(@jimp/plugin-color@0.16.13)(@jimp/plugin-resize@0.16.13) + timm: 1.7.1 + transitivePeerDependencies: + - debug + dev: false + + /@jimp/png@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-8cGqINvbWJf1G0Her9zbq9I80roEX0A+U45xFby3tDWfzn+Zz8XKDF1Nv9VUwVx0N3zpcG1RPs9hfheG4Cq2kg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/utils': 0.16.13 + pngjs: 3.4.0 + dev: false + + /@jimp/tiff@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-oJY8d9u95SwW00VPHuCNxPap6Q1+E/xM5QThb9Hu+P6EGuu6lIeLaNBMmFZyblwFbwrH+WBOZlvIzDhi4Dm/6Q==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + utif: 2.0.1 + dev: false + + /@jimp/types@0.16.13(@jimp/custom@0.16.13): + resolution: {integrity: sha512-mC0yVNUobFDjoYLg4hoUwzMKgNlxynzwt3cDXzumGvRJ7Kb8qQGOWJQjQFo5OxmGExqzPphkirdbBF88RVLBCg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/bmp': 0.16.13(@jimp/custom@0.16.13) + '@jimp/custom': 0.16.13 + '@jimp/gif': 0.16.13(@jimp/custom@0.16.13) + '@jimp/jpeg': 0.16.13(@jimp/custom@0.16.13) + '@jimp/png': 0.16.13(@jimp/custom@0.16.13) + '@jimp/tiff': 0.16.13(@jimp/custom@0.16.13) + timm: 1.7.1 + dev: false + + /@jimp/utils@0.16.13: + resolution: {integrity: sha512-VyCpkZzFTHXtKgVO35iKN0sYR10psGpV6SkcSeV4oF7eSYlR8Bl6aQLCzVeFjvESF7mxTmIiI3/XrMobVrtxDA==} + dependencies: + '@babel/runtime': 7.23.9 + regenerator-runtime: 0.13.11 + dev: false + /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} @@ -4731,6 +5507,12 @@ packages: '@bufbuild/protobuf': 1.10.0 dev: false + /@livekit/protocol@1.19.1: + resolution: {integrity: sha512-PQYIuqRv++fRik9tKulJ0C0tT5O4cNviBA7OxwLTCBFDxJpve8ua8/JZ+nK+7r4j2KbLfVjsJYop9wcTCgRn7Q==} + dependencies: + '@bufbuild/protobuf': 1.10.0 + dev: false + /@livekit/track-processors@0.3.2(livekit-client@2.2.0): resolution: {integrity: sha512-4JUCzb7yIKoVsTo8J6FTzLZJHcI6DihfX/pGRDg0SOGaxprcDPrt8jaDBBTsnGBSXHeMxl2ugN+xQjdCWzLKEA==} peerDependencies: @@ -4741,6 +5523,25 @@ packages: livekit-client: 2.2.0 dev: false + /@malept/cross-spawn-promise@1.1.1: + resolution: {integrity: sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==} + engines: {node: '>= 10'} + dependencies: + cross-spawn: 7.0.3 + dev: false + + /@malept/flatpak-bundler@0.4.0: + resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==} + engines: {node: '>= 10.0.0'} + dependencies: + debug: 4.3.4 + fs-extra: 9.1.0 + lodash: 4.17.21 + tmp-promise: 3.0.3 + transitivePeerDependencies: + - supports-color + dev: false + /@mdx-js/react@2.3.0(react@18.2.0): resolution: {integrity: sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==} peerDependencies: @@ -4848,6 +5649,278 @@ packages: fastq: 1.17.1 dev: false + /@octokit/app@14.1.0: + resolution: {integrity: sha512-g3uEsGOQCBl1+W1rgfwoRFUIR6PtvB2T1E4RpygeUU5LrLvlOqcxrt5lfykIeRpUPpupreGJUYl70fqMDXdTpw==} + engines: {node: '>= 18'} + dependencies: + '@octokit/auth-app': 6.1.1 + '@octokit/auth-unauthenticated': 5.0.1 + '@octokit/core': 5.2.0 + '@octokit/oauth-app': 6.1.0 + '@octokit/plugin-paginate-rest': 9.2.1(@octokit/core@5.2.0) + '@octokit/types': 12.6.0 + '@octokit/webhooks': 12.2.0 + dev: false + + /@octokit/auth-app@6.1.1: + resolution: {integrity: sha512-VrTtzRpyuT5nYGUWeGWQqH//hqEZDV+/yb6+w5wmWpmmUA1Tx950XsAc2mBBfvusfcdF2E7w8jZ1r1WwvfZ9pA==} + engines: {node: '>= 18'} + dependencies: + '@octokit/auth-oauth-app': 7.1.0 + '@octokit/auth-oauth-user': 4.1.0 + '@octokit/request': 8.4.0 + '@octokit/request-error': 5.1.0 + '@octokit/types': 13.5.0 + deprecation: 2.3.1 + lru-cache: 10.2.0 + universal-github-app-jwt: 1.1.2 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/auth-oauth-app@7.1.0: + resolution: {integrity: sha512-w+SyJN/b0l/HEb4EOPRudo7uUOSW51jcK1jwLa+4r7PA8FPFpoxEnHBHMITqCsc/3Vo2qqFjgQfz/xUUvsSQnA==} + engines: {node: '>= 18'} + dependencies: + '@octokit/auth-oauth-device': 6.1.0 + '@octokit/auth-oauth-user': 4.1.0 + '@octokit/request': 8.4.0 + '@octokit/types': 13.5.0 + '@types/btoa-lite': 1.0.2 + btoa-lite: 1.0.0 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/auth-oauth-device@6.1.0: + resolution: {integrity: sha512-FNQ7cb8kASufd6Ej4gnJ3f1QB5vJitkoV1O0/g6e6lUsQ7+VsSNRHRmFScN2tV4IgKA12frrr/cegUs0t+0/Lw==} + engines: {node: '>= 18'} + dependencies: + '@octokit/oauth-methods': 4.1.0 + '@octokit/request': 8.4.0 + '@octokit/types': 13.5.0 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/auth-oauth-user@4.1.0: + resolution: {integrity: sha512-FrEp8mtFuS/BrJyjpur+4GARteUCrPeR/tZJzD8YourzoVhRics7u7we/aDcKv+yywRNwNi/P4fRi631rG/OyQ==} + engines: {node: '>= 18'} + dependencies: + '@octokit/auth-oauth-device': 6.1.0 + '@octokit/oauth-methods': 4.1.0 + '@octokit/request': 8.4.0 + '@octokit/types': 13.5.0 + btoa-lite: 1.0.0 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/auth-token@4.0.0: + resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} + engines: {node: '>= 18'} + dev: false + + /@octokit/auth-unauthenticated@5.0.1: + resolution: {integrity: sha512-oxeWzmBFxWd+XolxKTc4zr+h3mt+yofn4r7OfoIkR/Cj/o70eEGmPsFbueyJE2iBAGpjgTnEOKM3pnuEGVmiqg==} + engines: {node: '>= 18'} + dependencies: + '@octokit/request-error': 5.1.0 + '@octokit/types': 12.6.0 + dev: false + + /@octokit/core@5.2.0: + resolution: {integrity: sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==} + engines: {node: '>= 18'} + dependencies: + '@octokit/auth-token': 4.0.0 + '@octokit/graphql': 7.1.0 + '@octokit/request': 8.4.0 + '@octokit/request-error': 5.1.0 + '@octokit/types': 13.5.0 + before-after-hook: 2.2.3 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/endpoint@9.0.5: + resolution: {integrity: sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==} + engines: {node: '>= 18'} + dependencies: + '@octokit/types': 13.5.0 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/graphql@7.1.0: + resolution: {integrity: sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==} + engines: {node: '>= 18'} + dependencies: + '@octokit/request': 8.4.0 + '@octokit/types': 13.5.0 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/oauth-app@6.1.0: + resolution: {integrity: sha512-nIn/8eUJ/BKUVzxUXd5vpzl1rwaVxMyYbQkNZjHrF7Vk/yu98/YDF/N2KeWO7uZ0g3b5EyiFXFkZI8rJ+DH1/g==} + engines: {node: '>= 18'} + dependencies: + '@octokit/auth-oauth-app': 7.1.0 + '@octokit/auth-oauth-user': 4.1.0 + '@octokit/auth-unauthenticated': 5.0.1 + '@octokit/core': 5.2.0 + '@octokit/oauth-authorization-url': 6.0.2 + '@octokit/oauth-methods': 4.1.0 + '@types/aws-lambda': 8.10.142 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/oauth-authorization-url@6.0.2: + resolution: {integrity: sha512-CdoJukjXXxqLNK4y/VOiVzQVjibqoj/xHgInekviUJV73y/BSIcwvJ/4aNHPBPKcPWFnd4/lO9uqRV65jXhcLA==} + engines: {node: '>= 18'} + dev: false + + /@octokit/oauth-methods@4.1.0: + resolution: {integrity: sha512-4tuKnCRecJ6CG6gr0XcEXdZtkTDbfbnD5oaHBmLERTjTMZNi2CbfEHZxPU41xXLDG4DfKf+sonu00zvKI9NSbw==} + engines: {node: '>= 18'} + dependencies: + '@octokit/oauth-authorization-url': 6.0.2 + '@octokit/request': 8.4.0 + '@octokit/request-error': 5.1.0 + '@octokit/types': 13.5.0 + btoa-lite: 1.0.0 + dev: false + + /@octokit/openapi-types@20.0.0: + resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} + dev: false + + /@octokit/openapi-types@22.2.0: + resolution: {integrity: sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==} + dev: false + + /@octokit/plugin-paginate-graphql@4.0.1(@octokit/core@5.2.0): + resolution: {integrity: sha512-R8ZQNmrIKKpHWC6V2gum4x9LG2qF1RxRjo27gjQcG3j+vf2tLsEfE7I/wRWEPzYMaenr1M+qDAtNcwZve1ce1A==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '>=5' + dependencies: + '@octokit/core': 5.2.0 + dev: false + + /@octokit/plugin-paginate-rest@11.3.1(@octokit/core@5.2.0): + resolution: {integrity: sha512-ryqobs26cLtM1kQxqeZui4v8FeznirUsksiA+RYemMPJ7Micju0WSkv50dBksTuZks9O5cg4wp+t8fZ/cLY56g==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '5' + dependencies: + '@octokit/core': 5.2.0 + '@octokit/types': 13.5.0 + dev: false + + /@octokit/plugin-paginate-rest@9.2.1(@octokit/core@5.2.0): + resolution: {integrity: sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '5' + dependencies: + '@octokit/core': 5.2.0 + '@octokit/types': 12.6.0 + dev: false + + /@octokit/plugin-rest-endpoint-methods@13.2.2(@octokit/core@5.2.0): + resolution: {integrity: sha512-EI7kXWidkt3Xlok5uN43suK99VWqc8OaIMktY9d9+RNKl69juoTyxmLoWPIZgJYzi41qj/9zU7G/ljnNOJ5AFA==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': ^5 + dependencies: + '@octokit/core': 5.2.0 + '@octokit/types': 13.5.0 + dev: false + + /@octokit/plugin-retry@6.0.1(@octokit/core@5.2.0): + resolution: {integrity: sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '>=5' + dependencies: + '@octokit/core': 5.2.0 + '@octokit/request-error': 5.1.0 + '@octokit/types': 12.6.0 + bottleneck: 2.19.5 + dev: false + + /@octokit/plugin-throttling@8.2.0(@octokit/core@5.2.0): + resolution: {integrity: sha512-nOpWtLayKFpgqmgD0y3GqXafMFuKcA4tRPZIfu7BArd2lEZeb1988nhWhwx4aZWmjDmUfdgVf7W+Tt4AmvRmMQ==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': ^5.0.0 + dependencies: + '@octokit/core': 5.2.0 + '@octokit/types': 12.6.0 + bottleneck: 2.19.5 + dev: false + + /@octokit/request-error@5.1.0: + resolution: {integrity: sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==} + engines: {node: '>= 18'} + dependencies: + '@octokit/types': 13.5.0 + deprecation: 2.3.1 + once: 1.4.0 + dev: false + + /@octokit/request@8.4.0: + resolution: {integrity: sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==} + engines: {node: '>= 18'} + dependencies: + '@octokit/endpoint': 9.0.5 + '@octokit/request-error': 5.1.0 + '@octokit/types': 13.5.0 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/types@12.6.0: + resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} + dependencies: + '@octokit/openapi-types': 20.0.0 + dev: false + + /@octokit/types@13.5.0: + resolution: {integrity: sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==} + dependencies: + '@octokit/openapi-types': 22.2.0 + dev: false + + /@octokit/webhooks-methods@4.1.0: + resolution: {integrity: sha512-zoQyKw8h9STNPqtm28UGOYFE7O6D4Il8VJwhAtMHFt2C4L0VQT1qGKLeefUOqHNs1mNRYSadVv7x0z8U2yyeWQ==} + engines: {node: '>= 18'} + dev: false + + /@octokit/webhooks-types@7.4.0: + resolution: {integrity: sha512-FE2V+QZ2UYlh+9wWd5BPLNXG+J/XUD/PPq0ovS+nCcGX4+3qVbi3jYOmCTW48hg9SBBLtInx9+o7fFt4H5iP0Q==} + dev: false + + /@octokit/webhooks-types@7.5.1: + resolution: {integrity: sha512-1dozxWEP8lKGbtEu7HkRbK1F/nIPuJXNfT0gd96y6d3LcHZTtRtlf8xz3nicSJfesADxJyDh+mWBOsdLkqgzYw==} + dev: false + + /@octokit/webhooks@12.2.0: + resolution: {integrity: sha512-CyuLJ0/P7bKZ+kIYw+fnkeVdhUzNuDKgNSI7pU/m7Nod0T7kP+s4s2f0pNmG9HL8/RZN1S0ZWTDll3VTMrFLAw==} + engines: {node: '>= 18'} + dependencies: + '@octokit/request-error': 5.1.0 + '@octokit/webhooks-methods': 4.1.0 + '@octokit/webhooks-types': 7.4.0 + aggregate-error: 3.1.0 + dev: false + + /@pdf-lib/standard-fonts@1.0.0: + resolution: {integrity: sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==} + dependencies: + pako: 1.0.11 + dev: false + + /@pdf-lib/upng@1.0.1: + resolution: {integrity: sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==} + dependencies: + pako: 1.0.11 + dev: false + /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -4871,6 +5944,23 @@ packages: resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} dev: false + /@puppeteer/browsers@2.3.0: + resolution: {integrity: sha512-ioXoq9gPxkss4MYhD+SFaU9p1IHFUX0ILAWFPyjGaBdjLsYAlZw6j1iLA0N/m12uVHLFDfSYNF7EQccjinIMDA==} + engines: {node: '>=18'} + hasBin: true + dependencies: + debug: 4.3.5 + extract-zip: 2.0.1 + progress: 2.0.3 + proxy-agent: 6.4.0 + semver: 7.6.3 + tar-fs: 3.0.6 + unbzip2-stream: 1.4.3 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + dev: false + /@radix-ui/number@1.0.1: resolution: {integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==} dependencies: @@ -5425,6 +6515,173 @@ packages: selderee: 0.11.0 dev: false + /@sentry-internal/feedback@7.101.1: + resolution: {integrity: sha512-fOKDMVvLX+FuJHJszKBvRg1m7+fd4hchqRnZ9DDfitT6P5Ppl0gbEt/LStqu8Wq5M0tna+hpdwHlVEt7gZVKzw==} + engines: {node: '>=12'} + dependencies: + '@sentry/core': 7.101.1 + '@sentry/types': 7.101.1 + '@sentry/utils': 7.101.1 + dev: false + + /@sentry-internal/replay-canvas@7.101.1: + resolution: {integrity: sha512-09l6nD+lxWvwkpXLlIZuzj/z79Llbo6mcH33TJvxrUTjAqSGF/i3Pd5bTLWro9atippOyQgIV/yTGG4Bc5FhyQ==} + engines: {node: '>=12'} + dependencies: + '@sentry/core': 7.101.1 + '@sentry/replay': 7.101.1 + '@sentry/types': 7.101.1 + '@sentry/utils': 7.101.1 + dev: false + + /@sentry-internal/tracing@7.101.1: + resolution: {integrity: sha512-ihjWG8x4x0ozx6t+EHoXLKbsPrgzYLCpeBLWyS+M6n3hn6cmHM76c8nZw3ldhUQi5UYL3LFC/JZ50b4oSxtlrg==} + engines: {node: '>=8'} + dependencies: + '@sentry/core': 7.101.1 + '@sentry/types': 7.101.1 + '@sentry/utils': 7.101.1 + dev: false + + /@sentry-internal/tracing@7.118.0: + resolution: {integrity: sha512-dERAshKlQLrBscHSarhHyUeGsu652bDTUN1FK0m4e3X48M3I5/s+0N880Qjpe5MprNLcINlaIgdQ9jkisvxjfw==} + engines: {node: '>=8'} + dependencies: + '@sentry/core': 7.118.0 + '@sentry/types': 7.118.0 + '@sentry/utils': 7.118.0 + dev: false + + /@sentry/browser@7.101.1: + resolution: {integrity: sha512-+rIFoWPdO29AHVYsAwq8QEl2Ihv17Xh9Bt2aPFvLTGDA0caHjnx98g2jSOvLIOah6HI7Nwp3Njg2zBEzDtHkNw==} + engines: {node: '>=8'} + dependencies: + '@sentry-internal/feedback': 7.101.1 + '@sentry-internal/replay-canvas': 7.101.1 + '@sentry-internal/tracing': 7.101.1 + '@sentry/core': 7.101.1 + '@sentry/replay': 7.101.1 + '@sentry/types': 7.101.1 + '@sentry/utils': 7.101.1 + dev: false + + /@sentry/core@7.101.1: + resolution: {integrity: sha512-XSmXXeYT1d4O14eDF3OXPJFUgaN2qYEeIGUztqPX9nBs9/ij8y/kZOayFqlIMnfGvjOUM+63sy/2xDBOpFn6ug==} + engines: {node: '>=8'} + dependencies: + '@sentry/types': 7.101.1 + '@sentry/utils': 7.101.1 + dev: false + + /@sentry/core@7.118.0: + resolution: {integrity: sha512-ol0xBdp3/K11IMAYSQE0FMxBOOH9hMsb/rjxXWe0hfM5c72CqYWL3ol7voPci0GELJ5CZG+9ImEU1V9r6gK64g==} + engines: {node: '>=8'} + dependencies: + '@sentry/types': 7.118.0 + '@sentry/utils': 7.118.0 + dev: false + + /@sentry/integrations@7.118.0: + resolution: {integrity: sha512-C2rR4NvIMjokF8jP5qzSf1o2zxDx7IeYnr8u15Kb2+HdZtX559owALR0hfgwnfeElqMhGlJBaKUWZ48lXJMzCQ==} + engines: {node: '>=8'} + dependencies: + '@sentry/core': 7.118.0 + '@sentry/types': 7.118.0 + '@sentry/utils': 7.118.0 + localforage: 1.10.0 + dev: false + + /@sentry/node@7.118.0: + resolution: {integrity: sha512-79N63DvYKkNPqzmc0cjO+vMZ/nU7+CbE3K3COQNiV7gk58+666G9mRZQJuZVOVebatq5wM5UR0G4LPkwD+J84g==} + engines: {node: '>=8'} + dependencies: + '@sentry-internal/tracing': 7.118.0 + '@sentry/core': 7.118.0 + '@sentry/integrations': 7.118.0 + '@sentry/types': 7.118.0 + '@sentry/utils': 7.118.0 + dev: false + + /@sentry/replay@7.101.1: + resolution: {integrity: sha512-l4jmj2Rf/myzk3TA83PdMiomassG8okdBh1b2Hp1+ycBRVZFDmsR81gKPvnefSXwGwGNGKEmp6Q2bdGzekpp3Q==} + engines: {node: '>=12'} + dependencies: + '@sentry-internal/tracing': 7.101.1 + '@sentry/core': 7.101.1 + '@sentry/types': 7.101.1 + '@sentry/utils': 7.101.1 + dev: false + + /@sentry/svelte@7.101.1(svelte@4.2.12): + resolution: {integrity: sha512-2ZqBY6vgYAilvcNa8xkhGCr0vTSwWAtRD3WSeYoKt8SzGoPgarsDsYb64His10LPLO6DXBbuBQbe2Ku/57g71w==} + engines: {node: '>=8'} + peerDependencies: + svelte: 3.x || 4.x + dependencies: + '@sentry/browser': 7.101.1 + '@sentry/core': 7.101.1 + '@sentry/types': 7.101.1 + '@sentry/utils': 7.101.1 + magic-string: 0.30.7 + svelte: 4.2.12 + dev: false + + /@sentry/types@7.101.1: + resolution: {integrity: sha512-bwtkQvrCZ6JGc7vqX7TEAKBgkbQFORt84FFS3JQQb8G3efTt9fZd2ReY4buteKQdlALl8h1QWVngTLmI+kyUuw==} + engines: {node: '>=8'} + dev: false + + /@sentry/types@7.118.0: + resolution: {integrity: sha512-2drqrD2+6kgeg+W/ycmiti3G4lJrV3hGjY9PpJ3bJeXrh6T2+LxKPzlgSEnKFaeQWkXdZ4eaUbtTXVebMjb5JA==} + engines: {node: '>=8'} + dev: false + + /@sentry/utils@7.101.1: + resolution: {integrity: sha512-Nrg0nrEI3nrOCd9SLJ/WGzxS5KMQE4cryLOvrDcHJRWpsSyGBF1hLLerk84Nsw/0myMsn7zTYU+xoq7idNsX5A==} + engines: {node: '>=8'} + dependencies: + '@sentry/types': 7.101.1 + dev: false + + /@sentry/utils@7.118.0: + resolution: {integrity: sha512-43qItc/ydxZV1Zb3Kn2M54RwL9XXFa3IAYBO8S82Qvq5YUYmU2AmJ1jgg7DabXlVSWgMA1HntwqnOV3JLaEnTQ==} + engines: {node: '>=8'} + dependencies: + '@sentry/types': 7.118.0 + dev: false + + /@signpdf/placeholder-pdf-lib@3.2.4(pdf-lib@1.17.1): + resolution: {integrity: sha512-pNYzvLPWiHPir86pDWOK015S0whjNVvItvlTo9kwk1+99l2luIrwmubEvPjxSmDAWQ67UpKxA5lEYQsbZ7Q/og==} + engines: {node: '>=12', yarn: '>=1.22.18'} + peerDependencies: + pdf-lib: ^1.17.1 + dependencies: + '@signpdf/utils': 3.2.4 + pdf-lib: 1.17.1 + dev: false + + /@signpdf/signer-p12@3.2.4(node-forge@1.3.1): + resolution: {integrity: sha512-DTeYMj1DI30VYmaZXp2zZEg9YwVm3NmqjLF3q6ZxUwlOUSLLOUFkVafIs4YibTAGBmgjWKEMfmNCndK2ACLlzQ==} + engines: {node: '>=12', yarn: '>=1.22.18'} + peerDependencies: + node-forge: ^1.2.1 + dependencies: + '@signpdf/utils': 3.2.4 + node-forge: 1.3.1 + dev: false + + /@signpdf/signpdf@3.2.4: + resolution: {integrity: sha512-X/LlvUNjw2V6fsHej42LZ/DouyEXHcm4S4se53CAiUE+CDUlPrHlKIZOkGuzwl8SKuhFFFusIAs/75ZEN+5pQw==} + engines: {node: '>=12'} + dependencies: + '@signpdf/utils': 3.2.4 + dev: false + + /@signpdf/utils@3.2.4: + resolution: {integrity: sha512-6e7OZugRY6obyTbAKdj6yCIywCJqN0FDywsIrhkRnOTAKm4J3WVXq18NjzmE6iEXLknxok9EXNW/eVvY9Vp1gg==} + engines: {node: '>=12', yarn: '>=1.22.18'} + dev: false + /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: false @@ -7384,11 +8641,19 @@ packages: '@tiptap/pm': 2.2.4 dev: false + /@tokenizer/token@0.3.0: + resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} + dev: false + /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} dev: false + /@tootallnate/quickjs-emscripten@0.23.0: + resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + dev: false + /@transloadit/prettier-bytes@0.3.4: resolution: {integrity: sha512-8/SnIF9Q2k52mbjRVAYLranwkaDTLb+O9r4Z/uo8uNw//SjygKvvbF4BHSOuReufaAyum1q13602VcNud25Dfg==} dev: false @@ -7431,6 +8696,10 @@ packages: resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} dev: false + /@types/aws-lambda@8.10.142: + resolution: {integrity: sha512-wy2y/2hQKrS6myOS++koXg3N1Hg+LLyPjaggCFajczSHZPqBnOMuT2sdH3kiASrmdBYyM3pmjyz5SoWraRllCQ==} + dev: false + /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: @@ -7473,6 +8742,10 @@ packages: '@types/node': 20.11.19 dev: false + /@types/btoa-lite@1.0.2: + resolution: {integrity: sha512-ZYbcE2x7yrvNFJiU7xJGrpF/ihpkM7zKgw8bha3LNJSesvTtUNxbpzaT7WXBIryf6jovisrxTBvymxMeLLj1Mg==} + dev: false + /@types/busboy@1.5.3: resolution: {integrity: sha512-YMBLFN/xBD8bnqywIlGyYqsNFXu6bsiY7h3Ae0kO17qEuTjsqeyYMRPSUDacIKIquws2Y6KjmxAyNx8xB3xQbw==} dependencies: @@ -7540,6 +8813,12 @@ packages: resolution: {integrity: sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==} dev: false + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + dependencies: + '@types/ms': 0.7.34 + dev: false + /@types/detect-port@1.3.5: resolution: {integrity: sha512-Rf3/lB9WkDfIL9eEKaSYKc+1L/rNVYBjThk22JTqQw0YozXarX8YljFAz+HCoC6h4B4KwCMsBPZHaFezwT4BNA==} dev: false @@ -7552,10 +8831,27 @@ packages: resolution: {integrity: sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA==} dev: false + /@types/domhandler@2.4.5: + resolution: {integrity: sha512-lANhC2grmFG1gBac/8sDAKdIXx+TzAdkJIAjEOSMA+qW3297ybACEbacJnG15aNYfrzDO6fdcoouokqAKsy6aQ==} + dev: false + + /@types/domutils@1.7.8: + resolution: {integrity: sha512-iZGboDV79ibrO3D625p9yD+VgmMDnyJocdIRJvu9Xz66R8SHfOY/XNgdjY5SFoFiLgILceVfSLt7IUhlk1Vhhg==} + dependencies: + '@types/domhandler': 2.4.5 + dev: false + /@types/ejs@3.1.5: resolution: {integrity: sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==} dev: false + /@types/email-addresses@3.0.0: + resolution: {integrity: sha512-jGUOSgpOEWhTH4tMCj56NZenkzER259nJ5NGRvxXld3X7Lai/lxC3QNfDM0rVGMkj+WhANMpvIf195tgwnE7wQ==} + deprecated: This is a stub types definition for email-addresses (https://github.com/jackbowman/email-addresses). email-addresses provides its own type definitions, so you don't need @types/email-addresses installed! + dependencies: + email-addresses: 5.0.0 + dev: false + /@types/emscripten@1.39.10: resolution: {integrity: sha512-TB/6hBkYQJxsZHSqyeuO1Jt0AB/bW6G7rHt9g7lML7SOF6lbgcHvw/Lr+69iqN0qxgXLhWKScAon73JNnptuDw==} dev: false @@ -7585,6 +8881,13 @@ packages: '@types/express': 4.17.21 dev: false + /@types/express-form-data@2.0.5: + resolution: {integrity: sha512-zn1Cvy/scDOgV4j5pUKxsPQQVIX5vAGL6xjLWteSApd3HAmmfbdeZ3WMbFAks0kIaAxbSIT79W9GB4AVkS6fOA==} + dependencies: + '@types/connect': 3.4.38 + '@types/multiparty': 0.0.36 + dev: false + /@types/express-serve-static-core@4.17.43: resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} dependencies: @@ -7607,6 +8910,12 @@ packages: resolution: {integrity: sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==} dev: false + /@types/fs-extra@9.0.13: + resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} + dependencies: + '@types/node': 20.11.19 + dev: false + /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: @@ -7621,6 +8930,15 @@ packages: resolution: {integrity: sha512-QFcqfc7TiVbvIX8Fc2kWUxakruI1Ay6uitaGCYHzI5M0WHQROV5D2XeSaVrK0FmvssivXum4yERVnJsiuH61Ww==} dev: false + /@types/htmlparser2@3.10.7: + resolution: {integrity: sha512-ycBs4PNr9rY9XFFp4WkP+M1UcO49ahn0+9b24cmIY6KWy0w35rW0G8+JTTe9Rp6Wnyqn5SEHZrhCBMa0TIOxBw==} + dependencies: + '@types/domhandler': 2.4.5 + '@types/domutils': 1.7.8 + '@types/node': 20.11.19 + domhandler: 2.4.2 + dev: false + /@types/http-assert@1.5.5: resolution: {integrity: sha512-4+tE/lwdAahgZT1g30Jkdm9PzFRde0xwxBNUyRsCitRvCQB90iuA2uJYdUnhnANRcqGXaWOGY4FEoxeElNAK2g==} dev: false @@ -7666,6 +8984,15 @@ packages: pretty-format: 29.7.0 dev: false + /@types/jimp@0.2.28: + resolution: {integrity: sha512-nLIVbImtcaEf90y2XQsMzfgWK5EZxfDg6EVWobrkFTFJiLqmx/yU5Jh+LYUN94ztzXX1GwQLFYHaEi8tfMeZzw==} + deprecated: This is a stub types definition for jimp (https://github.com/oliver-moran/jimp#readme). jimp provides its own type definitions, so you don't need @types/jimp installed! + dependencies: + jimp: 0.16.13 + transitivePeerDependencies: + - debug + dev: false + /@types/js-yaml@4.0.9: resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} dev: false @@ -7686,6 +9013,12 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: false + /@types/jsonwebtoken@9.0.6: + resolution: {integrity: sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw==} + dependencies: + '@types/node': 20.11.19 + dev: false + /@types/keygrip@1.0.6: resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==} dev: false @@ -7814,6 +9147,16 @@ packages: '@types/node': 20.11.19 dev: false + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + dev: false + + /@types/multiparty@0.0.36: + resolution: {integrity: sha512-DNqs3xYFMLgQfYrYuuleox1wzpUJxOgR8+WQ99DPu1B6zLT+sCMMsWfqEFTThPrI3109q81sChUKg/QM/ZUPiw==} + dependencies: + '@types/node': 20.11.19 + dev: false + /@types/node-fetch@2.6.11: resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} dependencies: @@ -7827,6 +9170,10 @@ packages: '@types/node': 20.11.19 dev: false + /@types/node@16.9.1: + resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} + dev: false + /@types/node@18.19.17: resolution: {integrity: sha512-SzyGKgwPzuWp2SHhlpXKzCX0pIOfcI4V2eF37nNBJOhwlegQ83omtVQ1XxZpDE06V/d6AQvfQdPfnw0tRC//Ng==} dependencies: @@ -7891,6 +9238,24 @@ packages: '@types/express': 4.17.21 dev: false + /@types/pdfjs-dist@2.10.378: + resolution: {integrity: sha512-TRdIPqdsvKmPla44kVy4jv5Nt5vjMfVjbIEke1CRULIrwKNRC4lIiZvNYDJvbUMNCFPNIUcOKhXTyMJrX18IMA==} + deprecated: This is a stub types definition. pdfjs-dist provides its own type definitions, so you do not need this installed. + dependencies: + pdfjs-dist: 2.12.313 + transitivePeerDependencies: + - worker-loader + dev: false + + /@types/plist@3.0.5: + resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==} + requiresBuild: true + dependencies: + '@types/node': 20.11.19 + xmlbuilder: 11.0.1 + dev: false + optional: true + /@types/png-chunks-extract@1.0.2: resolution: {integrity: sha512-z6djfFIbrrddtunoMJBOPlyZrnmeuG1kkvHUNi2QfpOb+JMMLuLliHHTmMyRi7k7LiTAut0HbdGCF6ibDtQAHQ==} dev: false @@ -7998,6 +9363,14 @@ packages: resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} dev: false + /@types/strip-bom@3.0.0: + resolution: {integrity: sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==} + dev: false + + /@types/strip-json-comments@0.0.30: + resolution: {integrity: sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==} + dev: false + /@types/tar-stream@2.2.3: resolution: {integrity: sha512-if3mugZfjVkXOMZdFjIHySxY13r6GXPpyOlsDmLffvyI7tLz9wXE8BFjNivXsvUeyJ1KNlOpfLnag+ISmxgxPw==} dependencies: @@ -8016,6 +9389,10 @@ packages: resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} dev: false + /@types/triple-beam@1.3.5: + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + dev: false + /@types/unist@2.0.10: resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} dev: false @@ -8028,6 +9405,12 @@ packages: resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} dev: false + /@types/verror@1.10.10: + resolution: {integrity: sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg==} + requiresBuild: true + dev: false + optional: true + /@types/web-push@3.6.3: resolution: {integrity: sha512-v3oT4mMJsHeJ/rraliZ+7TbZtr5bQQuxcgD7C3/1q/zkAj29c8RE0F9lVZVu3hiQe5Z9fYcBreV7TLnfKR+4mg==} dependencies: @@ -8070,6 +9453,42 @@ packages: '@types/yargs-parser': 21.0.3 dev: false + /@types/yauzl@2.10.3: + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + requiresBuild: true + dependencies: + '@types/node': 20.11.19 + dev: false + optional: true + + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/type-utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + debug: 4.3.4 + eslint: 8.56.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare-lite: 1.4.0 + semver: 7.6.0 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: false + /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} engines: {node: ^16.0.0 || >=18.0.0} @@ -8099,6 +9518,26 @@ packages: - supports-color dev: false + /@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) + debug: 4.3.4 + eslint: 8.56.0 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: false + /@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -8120,6 +9559,14 @@ packages: - supports-color dev: false + /@typescript-eslint/scope-manager@5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + dev: false + /@typescript-eslint/scope-manager@6.21.0: resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} engines: {node: ^16.0.0 || >=18.0.0} @@ -8128,6 +9575,26 @@ packages: '@typescript-eslint/visitor-keys': 6.21.0 dev: false + /@typescript-eslint/type-utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + debug: 4.3.4 + eslint: 8.56.0 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: false + /@typescript-eslint/type-utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} engines: {node: ^16.0.0 || >=18.0.0} @@ -8148,11 +9615,37 @@ packages: - supports-color dev: false + /@typescript-eslint/types@5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + /@typescript-eslint/types@6.21.0: resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} dev: false + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.6.0 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: false + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -8175,6 +9668,26 @@ packages: - supports-color dev: false + /@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.7 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) + eslint: 8.56.0 + eslint-scope: 5.1.1 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: false + /@typescript-eslint/utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -8194,6 +9707,14 @@ packages: - typescript dev: false + /@typescript-eslint/visitor-keys@5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 + dev: false + /@typescript-eslint/visitor-keys@6.21.0: resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} engines: {node: ^16.0.0 || >=18.0.0} @@ -8370,6 +9891,12 @@ packages: '@uppy/utils': 5.9.0 dev: false + /@vercel/webpack-asset-relocator-loader@1.7.4: + resolution: {integrity: sha512-RFFite6v51Qhj/eERru3qwUNCLybnceSChI5yiu9bhLpTemWbKPORAOExOgpO2W7IE/0UEh3aX6wTSHgDE/fdQ==} + dependencies: + resolve: 1.22.8 + dev: false + /@vitest/utils@0.34.7: resolution: {integrity: sha512-ziAavQLpCYS9sLOorGrFFKmy2gnfiNU0ZJ15TsMz/K92NAPS/rp9K4z6AJQQk5Y8adCy4Iwpxy7pQumQ/psnRg==} dependencies: @@ -8522,6 +10049,17 @@ packages: webpack-dev-server: 4.15.1(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4)(webpack@5.90.3) dev: false + /@wry/equality@0.1.11: + resolution: {integrity: sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==} + dependencies: + tslib: 1.14.1 + dev: false + + /@xmldom/xmldom@0.8.10: + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + engines: {node: '>=10.0.0'} + dev: false + /@xtuc/ieee754@1.2.0: resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} dev: false @@ -8562,11 +10100,25 @@ packages: dev: false optional: true + /File@0.10.2: + resolution: {integrity: sha512-gomQVTq/10wIR399uhGTWtYcYneTXbfe3p2RO/NR0MPrLkIyOaE9DCEPXihAm+72epLtXaplitwfJ/wkmj88dg==} + dependencies: + mime: 3.0.0 + dev: false + + /FileList@0.10.2: + resolution: {integrity: sha512-HCe9WvojxLiMEfa3l6jFkQJLzhzDXgQmfnKFoRvhEnsyVoIc5piAQNLyhOwsZsmf8IwDBfr5H71nB8Wi5w0XwA==} + dev: false + /abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} deprecated: Use your platform's native atob() and btoa() methods instead dev: false + /abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + dev: false + /accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} @@ -8666,6 +10218,15 @@ packages: ajv: 8.12.0 dev: false + /ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.17.1 + dev: false + /ajv-keywords@3.5.2(ajv@6.12.6): resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: @@ -8701,6 +10262,15 @@ packages: uri-js: 4.4.1 dev: false + /ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.1 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + dev: false + /allure-js-commons@2.12.2: resolution: {integrity: sha512-bapkOHuwOYFR62aeNNwFmf8+LZSchzQ4Q8cFXWvEqP5fBTgADA+GujsRl936gjmTmKWVmKYwQfUt+PZw6tgFzw==} dependencies: @@ -8732,6 +10302,16 @@ packages: hasBin: true dev: false + /ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + dev: false + + /ansi-regex@3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} + engines: {node: '>=4'} + dev: false + /ansi-regex@4.1.1: resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} engines: {node: '>=6'} @@ -8771,6 +10351,10 @@ packages: engines: {node: '>=12'} dev: false + /any-base@1.1.0: + resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==} + dev: false + /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -8784,6 +10368,73 @@ packages: engines: {node: '>=8'} dev: false + /apollo-link@1.2.14(graphql@14.7.0): + resolution: {integrity: sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==} + peerDependencies: + graphql: ^0.11.3 || ^0.12.3 || ^0.13.0 || ^14.0.0 || ^15.0.0 + dependencies: + apollo-utilities: 1.3.4(graphql@14.7.0) + graphql: 14.7.0 + ts-invariant: 0.4.4 + tslib: 1.14.1 + zen-observable-ts: 0.8.21 + dev: false + + /apollo-utilities@1.3.4(graphql@14.7.0): + resolution: {integrity: sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==} + peerDependencies: + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 + dependencies: + '@wry/equality': 0.1.11 + fast-json-stable-stringify: 2.1.0 + graphql: 14.7.0 + ts-invariant: 0.4.4 + tslib: 1.14.1 + dev: false + + /app-builder-bin@4.0.0: + resolution: {integrity: sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==} + dev: false + + /app-builder-lib@24.13.3(dmg-builder@24.13.3): + resolution: {integrity: sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig==} + engines: {node: '>=14.0.0'} + peerDependencies: + dmg-builder: 24.13.3 + electron-builder-squirrel-windows: 24.13.3 + dependencies: + '@develar/schema-utils': 2.6.5 + '@electron/notarize': 2.2.1 + '@electron/osx-sign': 1.0.5 + '@electron/universal': 1.5.1 + '@malept/flatpak-bundler': 0.4.0 + '@types/fs-extra': 9.0.13 + async-exit-hook: 2.0.1 + bluebird-lst: 1.0.9 + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 + chromium-pickle-js: 0.2.0 + debug: 4.3.4 + dmg-builder: 24.13.3 + ejs: 3.1.9 + electron-publish: 24.13.1 + form-data: 4.0.0 + fs-extra: 10.1.0 + hosted-git-info: 4.1.0 + is-ci: 3.0.1 + isbinaryfile: 5.0.2 + js-yaml: 4.1.0 + lazy-val: 1.0.5 + minimatch: 5.1.6 + read-config-file: 6.3.2 + sanitize-filename: 1.6.3 + semver: 7.6.0 + tar: 6.2.0 + temp-file: 3.4.0 + transitivePeerDependencies: + - supports-color + dev: false + /app-root-dir@1.0.2: resolution: {integrity: sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==} dev: false @@ -8844,6 +10495,18 @@ packages: is-string: 1.0.7 dev: false + /array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + is-string: 1.0.7 + dev: false + /array-timsort@1.0.3: resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} dev: false @@ -8864,6 +10527,18 @@ packages: is-string: 1.0.7 dev: false + /array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + dev: false + /array.prototype.findlastindex@1.2.4: resolution: {integrity: sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==} engines: {node: '>= 0.4'} @@ -8895,6 +10570,17 @@ packages: es-shim-unscopables: 1.0.2 dev: false + /array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 + dev: false + /arraybuffer.prototype.slice@1.0.3: resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} @@ -8909,6 +10595,20 @@ packages: is-shared-array-buffer: 1.0.3 dev: false + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: false + + /arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} + dev: false + + /asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + dev: false + /asn1.js@5.4.1: resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} dependencies: @@ -8918,6 +10618,13 @@ packages: safer-buffer: 2.1.2 dev: false + /assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + requiresBuild: true + dev: false + optional: true + /assert@2.1.0: resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} dependencies: @@ -8928,6 +10635,13 @@ packages: util: 0.12.5 dev: false + /ast-types@0.13.4: + resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} + engines: {node: '>=4'} + dependencies: + tslib: 2.6.2 + dev: false + /ast-types@0.16.1: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} @@ -8935,6 +10649,13 @@ packages: tslib: 2.6.2 dev: false + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + requiresBuild: true + dev: false + optional: true + /async-cache@1.1.0: resolution: {integrity: sha512-YDQc4vBn5NFhY6g6HhVshyi3Fy9+SQ5ePnE7JLDJn1DoL+i7ER+vMwtTNOYk9leZkYMnOwpBCWqyLDPw8Aig8g==} deprecated: No longer maintained. Use [lru-cache](http://npm.im/lru-cache) version 7.6 or higher, and provide an asynchronous `fetchMethod` option. @@ -8942,6 +10663,11 @@ packages: lru-cache: 4.1.5 dev: false + /async-exit-hook@2.0.1: + resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} + engines: {node: '>=0.12.0'} + dev: false + /async-limiter@1.0.1: resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} requiresBuild: true @@ -8951,6 +10677,12 @@ packages: resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} dev: false + /async-mutex@0.3.2: + resolution: {integrity: sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA==} + dependencies: + tslib: 2.6.2 + dev: false + /async-value-promise@1.1.1: resolution: {integrity: sha512-c2RFDKjJle1rHa0YxN9Ysu97/QBu3Wa+NOejJxsX+1qVDJrkD3JL/GN1B3gaILAEXJXbu/4Z1lcoCHFESe/APA==} dependencies: @@ -8969,11 +10701,23 @@ packages: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: false + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: false + /atomic-sleep@1.0.0: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} engines: {node: '>=8.0.0'} dev: false + /atomically@2.0.3: + resolution: {integrity: sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==} + dependencies: + stubborn-fs: 1.2.5 + when-exit: 2.1.3 + dev: false + /autolinker@4.0.0: resolution: {integrity: sha512-fl5Kh6BmEEZx+IWBfEirnRUU5+cOiV0OK7PEt0RBKvJMJ8GaRseIOeDU3FKf4j3CE5HVefcjHmhYPOcaVt0bZw==} dependencies: @@ -9003,6 +10747,23 @@ packages: possible-typed-array-names: 1.0.0 dev: false + /aws-sdk@2.1664.0: + resolution: {integrity: sha512-S2IA1cCGz38d8ZKsuQGwlK3LE+9cXFt7OFsSGQtKX1Mc40xFXpiqQy7jX1r0vZIiy9ZMnxeTcBPM28G/yYu2kA==} + engines: {node: '>= 10.0.0'} + requiresBuild: true + dependencies: + buffer: 4.9.2 + events: 1.1.1 + ieee754: 1.1.13 + jmespath: 0.16.0 + querystring: 0.2.0 + sax: 1.2.1 + url: 0.10.3 + util: 0.12.5 + uuid: 8.0.0 + xml2js: 0.6.2 + dev: false + /axobject-query@4.0.0: resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} dependencies: @@ -9193,10 +10954,19 @@ packages: safe-buffer: 5.1.2 dev: false + /basic-ftp@5.0.5: + resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} + engines: {node: '>=10.0.0'} + dev: false + /batch@0.6.1: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} dev: false + /before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + dev: false + /better-opn@3.0.2: resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} engines: {node: '>=12.0.0'} @@ -9213,6 +10983,10 @@ packages: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} dev: false + /bignumber.js@9.1.2: + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} + dev: false + /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} @@ -9236,6 +11010,24 @@ packages: readable-stream: 3.6.2 dev: false + /bluebird-lst@1.0.9: + resolution: {integrity: sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==} + dependencies: + bluebird: 3.7.2 + dev: false + + /bluebird@3.4.7: + resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==} + dev: false + + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: false + + /bmp-js@0.1.0: + resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==} + dev: false + /bn.js@4.12.0: resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} dev: false @@ -9269,6 +11061,16 @@ packages: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: false + /boolean@3.2.0: + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + requiresBuild: true + dev: false + optional: true + + /bottleneck@2.19.5: + resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} + dev: false + /bowser@2.11.0: resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} dev: false @@ -9365,6 +11167,10 @@ packages: engines: {node: '>=16.20.1'} dev: false + /btoa-lite@1.0.0: + resolution: {integrity: sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==} + dev: false + /buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: false @@ -9378,10 +11184,28 @@ packages: resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} dev: false + /buffer-equal@0.0.1: + resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==} + engines: {node: '>=0.4.0'} + dev: false + + /buffer-equal@1.0.1: + resolution: {integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==} + engines: {node: '>=0.4'} + dev: false + /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: false + /buffer@4.9.2: + resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + isarray: 1.0.0 + dev: false + /buffer@5.6.0: resolution: {integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==} dependencies: @@ -9396,6 +11220,23 @@ packages: ieee754: 1.2.1 dev: false + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false + + /bufferjs@2.0.0: + resolution: {integrity: sha512-VnTCQKC+AJ61OFGe/hn3jRXoIt/B95NUcuxzAwiVT0PFB0KRZImkoDPYdFqDIs7xAs1eJ3yiKcHnuUiiYe7ucQ==} + engines: {node: '>=0.2.0'} + dev: false + + /bufferjs@3.0.1: + resolution: {integrity: sha512-qrCIGPcd9ODawCNyqR2o55zgaC/r7XHZ7oUh2s99uk+NVBS3SjIHigxS1S2KXpt8wsoQxAN55iPi8GIH8TGMRg==} + engines: {node: '>=0.2.0'} + dev: false + /bufferutil@4.0.8: resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} engines: {node: '>=6.14.2'} @@ -9404,6 +11245,39 @@ packages: node-gyp-build: 4.8.0 dev: false + /builder-util-runtime@9.2.4: + resolution: {integrity: sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==} + engines: {node: '>=12.0.0'} + dependencies: + debug: 4.3.4 + sax: 1.3.0 + transitivePeerDependencies: + - supports-color + dev: false + + /builder-util@24.13.1: + resolution: {integrity: sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA==} + dependencies: + 7zip-bin: 5.2.0 + '@types/debug': 4.1.12 + app-builder-bin: 4.0.0 + bluebird-lst: 1.0.9 + builder-util-runtime: 9.2.4 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + fs-extra: 10.1.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-ci: 3.0.1 + js-yaml: 4.1.0 + source-map-support: 0.5.21 + stat-mode: 1.0.0 + temp-file: 3.4.0 + transitivePeerDependencies: + - supports-color + dev: false + /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: @@ -9476,6 +11350,16 @@ packages: tslib: 2.6.2 dev: false + /camelcase-keys@9.1.3: + resolution: {integrity: sha512-Rircqi9ch8AnZscQcsA1C47NFdaO3wukpmIRzYcDOrmvgt78hM/sj5pZhZNec2NM12uk5vTwRHZ4anGcrC4ZTg==} + engines: {node: '>=16'} + dependencies: + camelcase: 8.0.0 + map-obj: 5.0.0 + quick-lru: 6.1.2 + type-fest: 4.23.0 + dev: false + /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -9486,6 +11370,11 @@ packages: engines: {node: '>=10'} dev: false + /camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} + dev: false + /caniuse-lite@1.0.30001589: resolution: {integrity: sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==} dev: false @@ -9500,6 +11389,14 @@ packages: engines: {node: '>=4'} dev: false + /centra@2.7.0: + resolution: {integrity: sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==} + dependencies: + follow-redirects: 1.15.6 + transitivePeerDependencies: + - debug + dev: false + /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -9551,6 +11448,21 @@ packages: engines: {node: '>=6.0'} dev: false + /chromium-bidi@0.6.2(devtools-protocol@0.0.1312386): + resolution: {integrity: sha512-4WVBa6ijmUTVr9cZD4eicQD8Mdy/HCX3bzEIYYpmk0glqYLoWH+LqQEvV9RpDRzoQSbY1KJHloYXbDMXMbDPhg==} + peerDependencies: + devtools-protocol: '*' + dependencies: + devtools-protocol: 0.0.1312386 + mitt: 3.0.1 + urlpattern-polyfill: 10.0.0 + zod: 3.23.8 + dev: false + + /chromium-pickle-js@0.2.0: + resolution: {integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==} + dev: false + /ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -9603,6 +11515,32 @@ packages: '@colors/colors': 1.5.0 dev: false + /cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + requiresBuild: true + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + dev: false + optional: true + + /cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + dependencies: + slice-ansi: 5.0.0 + string-width: 7.2.0 + dev: false + + /cliui@4.1.0: + resolution: {integrity: sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==} + dependencies: + string-width: 2.1.1 + strip-ansi: 4.0.0 + wrap-ansi: 2.1.0 + dev: false + /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -9646,6 +11584,11 @@ packages: engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} dev: false + /code-point-at@1.1.0: + resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} + engines: {node: '>=0.10.0'} + dev: false + /code-red@1.0.4: resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} dependencies: @@ -9688,6 +11631,13 @@ packages: simple-swizzle: 0.2.2 dev: false + /color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + dependencies: + color-convert: 1.9.3 + color-string: 1.9.1 + dev: false + /color@4.2.3: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} @@ -9700,6 +11650,13 @@ packages: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: false + /colorspace@1.1.4: + resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} + dependencies: + color: 3.2.1 + text-hex: 1.0.0 + dev: false + /combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -9716,6 +11673,11 @@ packages: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} dev: false + /commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + dev: false + /commander@6.2.1: resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} engines: {node: '>= 6'} @@ -9731,6 +11693,11 @@ packages: engines: {node: '>= 12'} dev: false + /commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + dev: false + /comment-json@4.2.3: resolution: {integrity: sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==} engines: {node: '>= 6'} @@ -9750,6 +11717,15 @@ packages: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: false + /compare-version@0.1.2: + resolution: {integrity: sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==} + engines: {node: '>=0.10.0'} + dev: false + + /component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + dev: false + /compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -9795,11 +11771,44 @@ packages: typedarray: 0.0.6 dev: false + /conf@13.0.1: + resolution: {integrity: sha512-l9Uwc9eOnz39oADzGO2cSBDi7siv8lwO+31ocQ2nOJijnDiW3pxqm9VV10DPYUO28wW83DjABoUqY1nfHRR2hQ==} + engines: {node: '>=18'} + dependencies: + ajv: 8.17.1 + ajv-formats: 3.0.1 + atomically: 2.0.3 + debounce-fn: 6.0.0 + dot-prop: 9.0.0 + env-paths: 3.0.0 + json-schema-typed: 8.0.1 + semver: 7.6.3 + uint8array-extras: 1.4.0 + dev: false + + /config-file-ts@0.2.6: + resolution: {integrity: sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==} + dependencies: + glob: 10.3.10 + typescript: 5.3.3 + dev: false + /connect-history-api-fallback@2.0.0: resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} engines: {node: '>=0.8'} dev: false + /connect-multiparty@2.2.0: + resolution: {integrity: sha512-zKcpA7cuXGEhuw9Pz7JmVCFmp85jzGLGm/iiagXTwyEAJp4ypLPtRS/V4IGuGb9KjjrgHBs6P/gDCpZHnFzksA==} + engines: {node: '>=0.10.0'} + dependencies: + http-errors: 1.7.3 + multiparty: 4.2.3 + on-finished: 2.3.0 + qs: 6.5.3 + type-is: 1.6.18 + dev: false + /consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} @@ -9851,6 +11860,10 @@ packages: engines: {node: '>= 0.6'} dev: false + /cookiejar@2.1.4: + resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==} + dev: false + /cookies@0.9.1: resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} engines: {node: '>= 0.8'} @@ -9863,6 +11876,21 @@ packages: resolution: {integrity: sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==} dev: false + /copy-webpack-plugin@11.0.0(webpack@5.90.3): + resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.1.0 + dependencies: + fast-glob: 3.3.2 + glob-parent: 6.0.2 + globby: 13.2.2 + normalize-path: 3.0.0 + schema-utils: 4.2.0 + serialize-javascript: 6.0.2 + webpack: 5.90.3(esbuild@0.20.1)(webpack-cli@5.1.4) + dev: false + /core-js-compat@3.36.0: resolution: {integrity: sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==} dependencies: @@ -9874,6 +11902,12 @@ packages: requiresBuild: true dev: false + /core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + requiresBuild: true + dev: false + optional: true + /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: false @@ -9913,6 +11947,22 @@ packages: typescript: 5.3.3 dev: false + /cosmiconfig@9.0.0(typescript@5.3.3): + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + typescript: 5.3.3 + dev: false + /crc-32@0.3.0: resolution: {integrity: sha512-kucVIjOmMc1f0tv53BJ/5WIX+MGLcKuoBhnGqQrgKJNqLByb/sVMWfW/Aw6hw0jgcqjJ2pi9E5y32zOIpaUlsA==} engines: {node: '>=0.8'} @@ -9971,6 +12021,17 @@ packages: - encoding dev: false + /cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.2 + shebang-command: 1.2.0 + which: 1.3.1 + dev: false + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -10098,10 +12159,23 @@ packages: resolution: {integrity: sha512-JL+Q6YEikT2uoe57InjFFa6VejhSv0tDwOxeQ1bVQKeUC/NCnLAAZ8n3PzowPQQLuZ37fysDYZipB2UJkH9C6A==} dev: false + /d@1.0.2: + resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} + engines: {node: '>=0.12'} + dependencies: + es5-ext: 0.10.64 + type: 2.7.3 + dev: false + /dash-get@1.0.2: resolution: {integrity: sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ==} dev: false + /data-uri-to-buffer@6.0.2: + resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} + engines: {node: '>= 14'} + dev: false + /data-urls@3.0.2: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} @@ -10111,6 +12185,33 @@ packages: whatwg-url: 11.0.0 dev: false + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: false + + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: false + + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: false + /date-fns-tz@2.0.0(date-fns@2.30.0): resolution: {integrity: sha512-OAtcLdB9vxSXTWHdT8b398ARImVwQMyjfYGkKD2zaGpHseG2UPHbHjXELReErZFxWdSLph3c2zOaaTyHfOhERQ==} peerDependencies: @@ -10126,6 +12227,13 @@ packages: '@babel/runtime': 7.23.9 dev: false + /debounce-fn@6.0.0: + resolution: {integrity: sha512-rBMW+F2TXryBwB54Q0d8drNEI+TfoS9JpNTAoVpukbWEhjXQq4rySFYLaqXMFXwdv61Zb2OHtj5bviSoimqxRQ==} + engines: {node: '>=18'} + dependencies: + mimic-function: 5.0.1 + dev: false + /debounce@1.2.1: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} dev: false @@ -10154,6 +12262,23 @@ packages: ms: 2.1.2 dev: false + /debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: false + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: false + /decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} dev: false @@ -10274,6 +12399,15 @@ packages: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} dev: false + /degenerator@5.0.1: + resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} + engines: {node: '>= 14'} + dependencies: + ast-types: 0.13.4 + escodegen: 2.1.0 + esprima: 4.0.1 + dev: false + /del@6.1.1: resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} engines: {node: '>=10'} @@ -10307,6 +12441,14 @@ packages: engines: {node: '>= 0.8'} dev: false + /deprecated-decorator@0.1.6: + resolution: {integrity: sha512-MHidOOnCHGlZDKsI21+mbIIhf4Fff+hhCTB7gtVg4uoIqjcrTZc5v6M+GS2zVI0sV7PqK415rb8XaOSQsQkHOw==} + dev: false + + /deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + dev: false + /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -10357,21 +12499,63 @@ packages: - supports-color dev: false + /devtools-protocol@0.0.1312386: + resolution: {integrity: sha512-DPnhUXvmvKT2dFA/j7B+riVLUt9Q6RKJlcppojL5CoRywJJKLDYnRlw0gTFKfgDPHP5E04UoB71SxoJlVZy8FA==} + dev: false + + /dezalgo@1.0.4: + resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} + dependencies: + asap: 2.0.6 + wrappy: 1.0.2 + dev: false + /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: false + /diff2html@3.4.48: + resolution: {integrity: sha512-1lzNSg0G0VPKZPTyi4knzV2nAWTXBy/QaWCKzDto6iEIlcuOJEG0li4bElJfpHNz+pBqPu4AcC1i9ZCo9KMUOg==} + engines: {node: '>=12'} + dependencies: + diff: 5.1.0 + hogan.js: 3.0.2 + optionalDependencies: + highlight.js: 11.9.0 + dev: false + + /diff@3.5.0: + resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==} + engines: {node: '>=0.3.1'} + dev: false + /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} dev: false + /diff@5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + engines: {node: '>=0.3.1'} + dev: false + /diff@5.2.0: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} dev: false + /dingbat-to-unicode@1.0.1: + resolution: {integrity: sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w==} + dev: false + + /dir-compare@3.3.0: + resolution: {integrity: sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==} + dependencies: + buffer-equal: 1.0.1 + minimatch: 3.1.2 + dev: false + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -10379,6 +12563,40 @@ packages: path-type: 4.0.0 dev: false + /dmg-builder@24.13.3: + resolution: {integrity: sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ==} + dependencies: + app-builder-lib: 24.13.3(dmg-builder@24.13.3) + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 + fs-extra: 10.1.0 + iconv-lite: 0.6.3 + js-yaml: 4.1.0 + optionalDependencies: + dmg-license: 1.0.11 + transitivePeerDependencies: + - electron-builder-squirrel-windows + - supports-color + dev: false + + /dmg-license@1.0.11: + resolution: {integrity: sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==} + engines: {node: '>=8'} + os: [darwin] + hasBin: true + requiresBuild: true + dependencies: + '@types/plist': 3.0.5 + '@types/verror': 1.10.10 + ajv: 6.12.6 + crc: 3.8.0 + iconv-corefoundation: 1.1.7 + plist: 3.1.0 + smart-buffer: 4.2.0 + verror: 1.10.1 + dev: false + optional: true + /dns-packet@5.6.1: resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} engines: {node: '>=6'} @@ -10430,6 +12648,10 @@ packages: resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} dev: false + /domelementtype@1.3.1: + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} + dev: false + /domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: false @@ -10442,6 +12664,12 @@ packages: webidl-conversions: 7.0.0 dev: false + /domhandler@2.4.2: + resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} + dependencies: + domelementtype: 1.3.1 + dev: false + /domhandler@3.3.0: resolution: {integrity: sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==} engines: {node: '>= 4'} @@ -10486,6 +12714,13 @@ packages: tslib: 2.6.2 dev: false + /dot-prop@9.0.0: + resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} + engines: {node: '>=18'} + dependencies: + type-fest: 4.23.0 + dev: false + /dotenv-defaults@2.0.2: resolution: {integrity: sha512-iOIzovWfsUHU91L5i8bJce3NYK5JXeAwH50Jh6+ARUdLiiGlYWfGw6UkzsYqaXZH/hjE/eCd/PlfM/qqyK0AMg==} dependencies: @@ -10497,6 +12732,10 @@ packages: engines: {node: '>=12'} dev: false + /dotenv-expand@5.1.0: + resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} + dev: false + /dotenv-webpack@8.0.1(webpack@5.90.3): resolution: {integrity: sha512-CdrgfhZOnx4uB18SgaoP9XHRN2v48BbjuXQsZY5ixs5A8579NxQkmMxRtI7aTwSiSQcM2ao12Fdu+L3ZS3bG4w==} engines: {node: '>=10'} @@ -10517,6 +12756,17 @@ packages: engines: {node: '>=10'} dev: false + /dotenv@9.0.2: + resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==} + engines: {node: '>=10'} + dev: false + + /duck@0.1.12: + resolution: {integrity: sha512-wkctla1O6VfP89gQ+J/yDesM0S7B7XLXjKGzXxMDVFg7uEn706niAtyYovKbyq1oT9YwDcly721/iUWoc8MVRg==} + dependencies: + underscore: 1.13.7 + dev: false + /duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} dev: false @@ -10530,6 +12780,12 @@ packages: stream-shift: 1.0.3 dev: false + /dynamic-dedupe@0.3.0: + resolution: {integrity: sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==} + dependencies: + xtend: 4.0.2 + dev: false + /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: false @@ -10613,10 +12869,119 @@ packages: - supports-color dev: false + /electron-builder@24.13.3: + resolution: {integrity: sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + app-builder-lib: 24.13.3(dmg-builder@24.13.3) + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 + chalk: 4.1.2 + dmg-builder: 24.13.3 + fs-extra: 10.1.0 + is-ci: 3.0.1 + lazy-val: 1.0.5 + read-config-file: 6.3.2 + simple-update-notifier: 2.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - electron-builder-squirrel-windows + - supports-color + dev: false + + /electron-context-menu@4.0.1: + resolution: {integrity: sha512-tPRzsIK48gm+DDP4FLJeocrFg1rJBH7ZgQx3j4ebt5d6euM2ERAB8pdBmKyhHy7na/BiZfrw4ASMq97oVwQXgw==} + engines: {node: '>=18'} + dependencies: + cli-truncate: 4.0.0 + electron-dl: 4.0.0 + electron-is-dev: 3.0.1 + dev: false + + /electron-dl@4.0.0: + resolution: {integrity: sha512-USiB9816d2JzKv0LiSbreRfTg5lDk3lWh0vlx/gugCO92ZIJkHVH0UM18EHvKeadErP6Xn4yiTphWzYfbA2Ong==} + engines: {node: '>=18'} + dependencies: + ext-name: 5.0.0 + pupa: 3.1.0 + unused-filename: 4.0.1 + dev: false + + /electron-is-dev@3.0.1: + resolution: {integrity: sha512-8TjjAh8Ec51hUi3o4TaU0mD3GMTOESi866oRNavj9A3IQJ7pmv+MJVmdZBFGw4GFT36X7bkqnuDNYvkQgvyI8Q==} + engines: {node: '>=18'} + dev: false + + /electron-log@5.1.7: + resolution: {integrity: sha512-/PjrS9zGkrZCDTHt6IgNE3FeciBbi4wd7U76NG9jAoNXF99E9IJdvBkqvaUJ1NjLojYDKs0kTvn9YhKy1/Zi+Q==} + engines: {node: '>= 14'} + dev: false + + /electron-publish@24.13.1: + resolution: {integrity: sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A==} + dependencies: + '@types/fs-extra': 9.0.13 + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 + chalk: 4.1.2 + fs-extra: 10.1.0 + lazy-val: 1.0.5 + mime: 2.6.0 + transitivePeerDependencies: + - supports-color + dev: false + + /electron-squirrel-startup@1.0.1: + resolution: {integrity: sha512-sTfFIHGku+7PsHLJ7v0dRcZNkALrV+YEozINTW8X1nM//e5O3L+rfYuvSW00lmGHnYmUjARZulD8F2V8ISI9RA==} + dependencies: + debug: 2.6.9 + dev: false + + /electron-store@10.0.0: + resolution: {integrity: sha512-BU/QZh+5twHBprRdLu3YZX/rIarmZzhTNpJvAvqG1/yN0mNCrsMh0kl7bM4xaUKDNRiHz1r7wP/7Prjh7cleIw==} + engines: {node: '>=20'} + dependencies: + conf: 13.0.1 + type-fest: 4.23.0 + dev: false + /electron-to-chromium@1.4.679: resolution: {integrity: sha512-NhQMsz5k0d6m9z3qAxnsOR/ebal4NAGsrNVRwcDo4Kc/zQ7KdsTKZUxZoygHcVRb0QDW3waEDIcE3isZ79RP6g==} dev: false + /electron-updater@6.2.1: + resolution: {integrity: sha512-83eKIPW14qwZqUUM6wdsIRwVKZyjmHxQ4/8G+1C6iS5PdDt7b1umYQyj1/qPpH510GmHEQe4q0kCPe3qmb3a0Q==} + dependencies: + builder-util-runtime: 9.2.4 + fs-extra: 10.1.0 + js-yaml: 4.1.0 + lazy-val: 1.0.5 + lodash.escaperegexp: 4.1.2 + lodash.isequal: 4.5.0 + semver: 7.6.0 + tiny-typed-emitter: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /electron-windows-badge@1.1.0: + resolution: {integrity: sha512-hWFbUk9u3fQHcKzTAcjZAN7XH9bL9oH9g20RRDU/DVDNqdMI03GzlBZfR/R8R1krYu9AT4biLqSCAxnt9LMAfA==} + dev: false + + /electron@31.3.0: + resolution: {integrity: sha512-3LMRMmK4UK0A+jYSLGLYdfhc20TgY2v5jD3iGmhRZlDYj0gn7xBj/waRjlNalysZ0D2rgPvoes0wHuf5e/Bguw==} + engines: {node: '>= 12.20.55'} + hasBin: true + requiresBuild: true + dependencies: + '@electron/get': 2.0.3 + '@types/node': 20.11.19 + extract-zip: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: false + /email-addresses@5.0.0: resolution: {integrity: sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==} dev: false @@ -10643,6 +13008,10 @@ packages: engines: {node: '>= 4'} dev: false + /enabled@2.0.0: + resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + dev: false + /encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} @@ -10679,12 +13048,26 @@ packages: engines: {node: '>=0.12'} dev: false + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + dev: false + + /env-paths@3.0.0: + resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + /envinfo@7.11.1: resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} engines: {node: '>=4'} hasBin: true dev: false + /err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + dev: false + /error-callsites@2.0.4: resolution: {integrity: sha512-V877Ch4FC4FN178fDK1fsrHN4I1YQIBdtjKrHh3BUHMnh3SMvwUVrqkaOgDpUuevgSNna0RBq6Ox9SGlxYrigA==} engines: {node: '>=6.x'} @@ -10749,6 +13132,58 @@ packages: which-typed-array: 1.1.14 dev: false + /es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + dev: false + /es-array-method-boxes-properly@1.0.0: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} dev: false @@ -10779,10 +13214,37 @@ packages: stop-iteration-iterator: 1.0.0 dev: false + /es-iterator-helpers@1.0.19: + resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + globalthis: 1.0.3 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.2 + dev: false + /es-module-lexer@1.4.1: resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} dev: false + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + dev: false + /es-set-tostringtag@2.0.3: resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} engines: {node: '>= 0.4'} @@ -10807,10 +13269,43 @@ packages: is-symbol: 1.0.4 dev: false + /es5-ext@0.10.64: + resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} + engines: {node: '>=0.10'} + requiresBuild: true + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.4 + esniff: 2.0.1 + next-tick: 1.1.0 + dev: false + + /es6-error@4.1.1: + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + requiresBuild: true + dev: false + optional: true + + /es6-iterator@2.0.3: + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + es6-symbol: 3.1.4 + dev: false + /es6-promise@3.3.1: resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} dev: false + /es6-symbol@3.1.4: + resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} + engines: {node: '>=0.12'} + dependencies: + d: 1.0.2 + ext: 1.7.0 + dev: false + /esbuild-loader@4.0.3(webpack@5.90.3): resolution: {integrity: sha512-YpaSRisj7TSg6maKKKG9OJGGm0BZ7EXeov8J8cXEYdugjlAJ0wL7aj2JactoQvPJ113v2Ar204pdJWrZsAQc8Q==} peerDependencies: @@ -10959,6 +13454,11 @@ packages: engines: {node: '>=6'} dev: false + /escape-goat@4.0.0: + resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} + engines: {node: '>=12'} + dev: false + /escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} dev: false @@ -10978,6 +13478,11 @@ packages: engines: {node: '>=10'} dev: false + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: false + /escodegen@2.1.0: resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} engines: {node: '>=6.0'} @@ -11008,6 +13513,39 @@ packages: eslint: 8.56.0 dev: false + /eslint-config-standard-jsx@11.0.0(eslint-plugin-react@7.35.0)(eslint@8.56.0): + resolution: {integrity: sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==} + peerDependencies: + eslint: ^8.8.0 + eslint-plugin-react: ^7.28.0 + dependencies: + eslint: 8.56.0 + eslint-plugin-react: 7.35.0(eslint@8.56.0) + dev: false + + /eslint-config-standard-with-typescript@23.0.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-iaaWifImn37Z1OXbNW1es7KI+S7D408F9ys0bpaQf2temeBWlvb0Nc5qHkOgYaRb5QxTZT32GGeN1gtswASOXA==} + deprecated: Please use eslint-config-love, instead. + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 + eslint: ^8.0.1 + eslint-plugin-import: ^2.25.2 + eslint-plugin-n: ^15.0.0 + eslint-plugin-promise: ^6.0.0 + typescript: '*' + dependencies: + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard: 17.0.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: false + /eslint-config-standard-with-typescript@40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-GXUJcwIXiTQaS3H4etv8a1lejVVdZYaxZNz3g7vt6GoJosQqMTurbmSC4FVGyHiGT/d1TjFr3+47A3xsHhsG+Q==} peerDependencies: @@ -11030,6 +13568,20 @@ packages: - supports-color dev: false + /eslint-config-standard@17.0.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): + resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} + peerDependencies: + eslint: ^8.0.1 + eslint-plugin-import: ^2.25.2 + eslint-plugin-n: ^15.0.0 + eslint-plugin-promise: ^6.0.0 + dependencies: + eslint: 8.56.0 + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + dev: false + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} @@ -11066,6 +13618,17 @@ packages: eslint: 8.56.0 dev: false + /eslint-plugin-es@3.0.1(eslint@8.56.0): + resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + eslint: 8.56.0 + eslint-utils: 2.1.0 + regexpp: 3.2.0 + dev: false + /eslint-plugin-es@4.1.0(eslint@8.56.0): resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} @@ -11120,6 +13683,21 @@ packages: semver: 7.6.0 dev: false + /eslint-plugin-node@11.1.0(eslint@8.56.0): + resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=5.16.0' + dependencies: + eslint: 8.56.0 + eslint-plugin-es: 3.0.1(eslint@8.56.0) + eslint-utils: 2.1.0 + ignore: 5.3.1 + minimatch: 3.1.2 + resolve: 1.22.8 + semver: 6.3.1 + dev: false + /eslint-plugin-promise@6.1.1(eslint@8.56.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -11129,6 +13707,33 @@ packages: eslint: 8.56.0 dev: false + /eslint-plugin-react@7.35.0(eslint@8.56.0): + resolution: {integrity: sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + dependencies: + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.19 + eslint: 8.56.0 + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.values: 1.2.0 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.11 + string.prototype.repeat: 1.0.0 + dev: false + /eslint-plugin-svelte@2.35.1(eslint@8.56.0)(svelte@4.2.12)(ts-node@10.9.2): resolution: {integrity: sha512-IF8TpLnROSGy98Z3NrsKXWDSCbNY2ReHDcrYTuXZMbfX7VmESISR78TWgO9zdg4Dht1X8coub5jKwHzP0ExRug==} engines: {node: ^14.17.0 || >=16.0.0} @@ -11310,6 +13915,16 @@ packages: - supports-color dev: false + /esniff@2.0.1: + resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} + engines: {node: '>=0.10'} + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + event-emitter: 0.3.5 + type: 2.7.3 + dev: false + /espree@9.2.0: resolution: {integrity: sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -11374,6 +13989,13 @@ packages: engines: {node: '>= 0.6'} dev: false + /event-emitter@0.3.5: + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + dev: false + /eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} dev: false @@ -11382,11 +14004,34 @@ packages: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} dev: false + /events@1.1.1: + resolution: {integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==} + engines: {node: '>=0.4.x'} + dev: false + /events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} dev: false + /eventsource@2.0.2: + resolution: {integrity: sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==} + engines: {node: '>=12.0.0'} + dev: false + + /execa@1.0.0: + resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} + engines: {node: '>=6'} + dependencies: + cross-spawn: 6.0.5 + get-stream: 4.1.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + dev: false + /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -11417,6 +14062,10 @@ packages: strip-final-newline: 3.0.0 dev: false + /exif-parser@0.1.12: + resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==} + dev: false + /exifr@7.1.3: resolution: {integrity: sha512-g/aje2noHivrRSLbAUtBPWFbxKdKhgj/xr1vATDdUXPOFYJlQ62Ft0oy+72V6XLIpDJfHs6gXLbBLAolqOXYRw==} dev: false @@ -11449,6 +14098,15 @@ packages: busboy: 1.6.0 dev: false + /express-form-data@2.0.23: + resolution: {integrity: sha512-Efm2t+xL6vEqUPs4kAyBY9xG/8LGpbSVnnFLZw6HgdxHzSRlg2/sNlA2UdMlcIKMH+LDOn7NKXUDGJK125F4rw==} + engines: {node: '>=10.7.0'} + dependencies: + connect-multiparty: 2.2.0 + fs-extra: 9.1.0 + signal-exit: 3.0.7 + dev: false + /express-static-gzip@2.1.7: resolution: {integrity: sha512-QOCZUC+lhPPCjIJKpQGu1Oa61Axg9Mq09Qvit8Of7kzpMuwDeMSqjjQteQS3OVw/GkENBoSBheuQDWPlngImvw==} dependencies: @@ -11492,6 +14150,27 @@ packages: vary: 1.1.2 dev: false + /ext-list@2.2.2: + resolution: {integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==} + engines: {node: '>=0.10.0'} + dependencies: + mime-db: 1.52.0 + dev: false + + /ext-name@5.0.0: + resolution: {integrity: sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==} + engines: {node: '>=4'} + dependencies: + ext-list: 2.2.2 + sort-keys-length: 1.0.1 + dev: false + + /ext@1.7.0: + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} + dependencies: + type: 2.7.3 + dev: false + /extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: false @@ -11506,6 +14185,27 @@ packages: yauzl: 2.10.0 dev: false + /extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + dependencies: + debug: 4.3.5 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + dev: false + + /extsprintf@1.4.1: + resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==} + engines: {'0': node >=0.6.0} + requiresBuild: true + dev: false + optional: true + /fast-copy@3.0.1: resolution: {integrity: sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA==} dev: false @@ -11557,6 +14257,14 @@ packages: end-of-stream: 1.4.4 dev: false + /fast-text-encoding@1.0.6: + resolution: {integrity: sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==} + dev: false + + /fast-uri@3.0.1: + resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + dev: false + /fast-xml-parser@4.2.5: resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} hasBin: true @@ -11601,14 +14309,35 @@ packages: pend: 1.2.0 dev: false + /fecha@4.2.3: + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + dev: false + /fetch-retry@5.0.6: resolution: {integrity: sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==} dev: false + /fflate@0.4.8: + resolution: {integrity: sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==} + dev: false + /fflate@0.8.2: resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} dev: false + /file-api@0.10.4: + resolution: {integrity: sha512-RVBXJGmsnQxokdpy264pmsdBjbUuxE6QT2xxhOrO2pzwTetbTNoWVFgkONFWmopm5mellsXrQIQhMY9fjufi9g==} + dependencies: + File: 0.10.2 + FileList: 0.10.2 + bufferjs: 3.0.1 + file-error: 0.10.2 + filereader: 0.10.3 + formdata: 0.10.4 + mime: 3.0.0 + remedial: 1.0.8 + dev: false + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -11616,6 +14345,10 @@ packages: flat-cache: 3.2.0 dev: false + /file-error@0.10.2: + resolution: {integrity: sha512-hJsQ7sEz6dM4vuRS7cipKiixV6EymEXHe+TCf2XVWsGTOehzrmcqqKMgeYTmV24XhjWSj+pQj1e5yjPJ7DtQvw==} + dev: false + /file-loader@6.2.0(webpack@5.90.3): resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} @@ -11627,6 +14360,12 @@ packages: webpack: 5.90.3(esbuild@0.20.1)(webpack-cli@5.1.4) dev: false + /file-stream-rotator@0.6.1: + resolution: {integrity: sha512-u+dBid4PvZw17PmDeRcNOtCP9CCK/9lRN2w+r1xIS7yOL9JFrIBKTvrYsxT4P0pGtThYTn++QS5ChHaUov3+zQ==} + dependencies: + moment: 2.30.1 + dev: false + /file-system-cache@2.3.0: resolution: {integrity: sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==} dependencies: @@ -11634,12 +14373,25 @@ packages: ramda: 0.29.0 dev: false + /file-type@16.5.4: + resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==} + engines: {node: '>=10'} + dependencies: + readable-web-to-node-stream: 3.0.2 + strtok3: 6.3.0 + token-types: 4.2.1 + dev: false + /filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: minimatch: 5.1.6 dev: false + /filereader@0.10.3: + resolution: {integrity: sha512-7F8w6GSXuHLN80ukaVOcHgBaiTRHUZr8GeEhNdqfAECcnBoROg4i8hTl+KqtF4yUPffOJVHEFg4iDJb7xIYFng==} + dev: false + /filesize@8.0.7: resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} engines: {node: '>= 0.4.0'} @@ -11754,6 +14506,10 @@ packages: engines: {node: '>=0.4.0'} dev: false + /fn.name@1.1.0: + resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + dev: false + /follow-redirects@1.15.5: resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} engines: {node: '>=4.0'} @@ -11764,12 +14520,26 @@ packages: optional: true dev: false + /follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 dev: false + /foreachasync@3.0.0: + resolution: {integrity: sha512-J+ler7Ta54FwwNcx6wQRDhTIbNeyDcARMkOcguEqnEdtm0jKvN3Li3PDAb2Du3ubJYEWfYL83XMROXdsXAXycw==} + dev: false + /foreground-child@3.1.1: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} @@ -11846,6 +14616,26 @@ packages: mime-types: 2.1.35 dev: false + /formdata@0.10.4: + resolution: {integrity: sha512-IsHa+GYLLXHx0RmpUmzQTdwxDjNinxD+1zKOYPLaRwiqTfex5caQhOzgPIjFgJkL0O884Ers76BSHzXJxHvPLw==} + dependencies: + File: 0.10.2 + FileList: 0.10.2 + bufferjs: 2.0.0 + filereader: 0.10.3 + foreachasync: 3.0.0 + remedial: 1.0.8 + dev: false + + /formidable@2.1.2: + resolution: {integrity: sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==} + dependencies: + dezalgo: 1.0.4 + hexoid: 1.0.0 + once: 1.4.0 + qs: 6.11.2 + dev: false + /forwarded-parse@2.1.2: resolution: {integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==} dev: false @@ -11895,6 +14685,25 @@ packages: universalify: 2.0.1 dev: false + /fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: false + + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: false + /fs-minipass@2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} @@ -11948,16 +14757,49 @@ packages: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} dev: false + /gaxios@5.1.3: + resolution: {integrity: sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==} + engines: {node: '>=12'} + dependencies: + extend: 3.0.2 + https-proxy-agent: 5.0.1 + is-stream: 2.0.1 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /gcp-metadata@5.3.0: + resolution: {integrity: sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w==} + engines: {node: '>=12'} + dependencies: + gaxios: 5.1.3 + json-bigint: 1.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} dev: false + /get-caller-file@1.0.3: + resolution: {integrity: sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==} + dev: false + /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} dev: false + /get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + dev: false + /get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: false @@ -11993,6 +14835,18 @@ packages: engines: {node: '>=8'} dev: false + /get-stdin@8.0.0: + resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==} + engines: {node: '>=10'} + dev: false + + /get-stream@4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + dependencies: + pump: 3.0.0 + dev: false + /get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} @@ -12025,6 +14879,25 @@ packages: resolve-pkg-maps: 1.0.0 dev: false + /get-uri@6.0.3: + resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} + engines: {node: '>= 14'} + dependencies: + basic-ftp: 5.0.5 + data-uri-to-buffer: 6.0.2 + debug: 4.3.5 + fs-extra: 11.2.0 + transitivePeerDependencies: + - supports-color + dev: false + + /gifwrap@0.9.4: + resolution: {integrity: sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ==} + dependencies: + image-q: 4.0.0 + omggif: 1.0.10 + dev: false + /giget@1.2.1: resolution: {integrity: sha512-4VG22mopWtIeHwogGSy1FViXVo0YT+m6BrqZfz0JJFwbSsePsCdOzdLIIli5BtMp7Xe8f/o2OmBpQX2NBOC24g==} hasBin: true @@ -12088,6 +14961,20 @@ packages: path-is-absolute: 1.0.1 dev: false + /global-agent@3.0.0: + resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} + engines: {node: '>=10.0'} + requiresBuild: true + dependencies: + boolean: 3.2.0 + es6-error: 4.1.1 + matcher: 3.0.0 + roarr: 2.15.4 + semver: 7.6.3 + serialize-error: 7.0.1 + dev: false + optional: true + /global@4.4.0: resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} dependencies: @@ -12126,6 +15013,69 @@ packages: slash: 3.0.0 dev: false + /globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 4.0.0 + dev: false + + /google-auth-library@8.9.0: + resolution: {integrity: sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg==} + engines: {node: '>=12'} + dependencies: + arrify: 2.0.1 + base64-js: 1.5.1 + ecdsa-sig-formatter: 1.0.11 + fast-text-encoding: 1.0.6 + gaxios: 5.1.3 + gcp-metadata: 5.3.0 + gtoken: 6.1.2 + jws: 4.0.0 + lru-cache: 6.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /google-p12-pem@4.0.1: + resolution: {integrity: sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + node-forge: 1.3.1 + dev: false + + /googleapis-common@6.0.4: + resolution: {integrity: sha512-m4ErxGE8unR1z0VajT6AYk3s6a9gIMM6EkDZfkPnES8joeOlEtFEJeF8IyZkb0tjPXkktUfYrE4b3Li1DNyOwA==} + engines: {node: '>=12.0.0'} + dependencies: + extend: 3.0.2 + gaxios: 5.1.3 + google-auth-library: 8.9.0 + qs: 6.11.2 + url-template: 2.0.8 + uuid: 9.0.1 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /googleapis@122.0.0: + resolution: {integrity: sha512-n8Gt7j9LzSkhQEGPOrcLBKxllTvW/0v6oILuwszL/zqgelNsGJYXVqPJllgJJ6RM7maJ6T35UBeYqI6GQ/IlJg==} + engines: {node: '>=12.0.0'} + dependencies: + google-auth-library: 8.9.0 + googleapis-common: 6.0.4 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: @@ -12157,6 +15107,74 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: false + /graphql-binding@2.5.2: + resolution: {integrity: sha512-CUDidmx/Ql6bB3Jz9owZK4TlSfD58/dJEXeGVPn6Zl0qrLjxZI+jhovxYw4ArU6cLG/NdadsSg62PlR1M6+reg==} + hasBin: true + dependencies: + graphql: 14.7.0 + graphql-import: 0.7.1(graphql@14.7.0) + graphql-tools: 4.0.5(graphql@14.7.0) + iterall: 1.2.2 + object-path-immutable: 3.1.1 + resolve-cwd: 2.0.0 + ts-node: 7.0.1 + yargs: 12.0.5 + dev: false + + /graphql-import@0.7.1(graphql@14.7.0): + resolution: {integrity: sha512-YpwpaPjRUVlw2SN3OPljpWbVRWAhMAyfSba5U47qGMOSsPLi2gYeJtngGpymjm9nk57RFWEpjqwh4+dpYuFAPw==} + engines: {node: '>=4.0.0'} + deprecated: GraphQL Import has been deprecated and merged into GraphQL Tools, so it will no longer get updates. Use GraphQL Tools instead to stay up-to-date! Check out https://www.graphql-tools.com/docs/migration-from-import for migration and https://the-guild.dev/blog/graphql-tools-v6 for new changes. + peerDependencies: + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 + dependencies: + graphql: 14.7.0 + lodash: 4.17.21 + resolve-from: 4.0.0 + dev: false + + /graphql-tools@4.0.5(graphql@14.7.0): + resolution: {integrity: sha512-kQCh3IZsMqquDx7zfIGWBau42xe46gmqabwYkpPlCLIjcEY1XK+auP7iGRD9/205BPyoQdY8hT96MPpgERdC9Q==} + deprecated: |- + This package has been deprecated and now it only exports makeExecutableSchema. + And it will no longer receive updates. + We recommend you to migrate to scoped packages such as @graphql-tools/schema, @graphql-tools/utils and etc. + Check out https://www.graphql-tools.com to learn what package you should use instead + peerDependencies: + graphql: ^0.13.0 || ^14.0.0 + dependencies: + apollo-link: 1.2.14(graphql@14.7.0) + apollo-utilities: 1.3.4(graphql@14.7.0) + deprecated-decorator: 0.1.6 + graphql: 14.7.0 + iterall: 1.2.2 + uuid: 3.4.0 + dev: false + + /graphql@14.7.0: + resolution: {integrity: sha512-l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA==} + engines: {node: '>= 6.x'} + dependencies: + iterall: 1.2.2 + dev: false + + /graphql@16.9.0: + resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + dev: false + + /gtoken@6.1.2: + resolution: {integrity: sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==} + engines: {node: '>=12.0.0'} + dependencies: + gaxios: 5.1.3 + google-p12-pem: 4.0.1 + jws: 4.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + /gunzip-maybe@1.4.2: resolution: {integrity: sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==} hasBin: true @@ -12242,15 +15260,54 @@ packages: function-bind: 1.1.2 dev: false + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: false + /he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true dev: false + /hexoid@1.0.0: + resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} + engines: {node: '>=8'} + dev: false + + /highlight.js@11.8.0: + resolution: {integrity: sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg==} + engines: {node: '>=12.0.0'} + dev: false + + /highlight.js@11.9.0: + resolution: {integrity: sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==} + engines: {node: '>=12.0.0'} + requiresBuild: true + dev: false + optional: true + + /hogan.js@3.0.2: + resolution: {integrity: sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==} + hasBin: true + dependencies: + mkdirp: 0.3.0 + nopt: 1.0.10 + dev: false + /hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: false + /hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: false + /hpack.js@2.1.6: resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} dependencies: @@ -12351,6 +15408,15 @@ packages: entities: 4.5.0 dev: false + /htmlparser2@9.1.0: + resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + dev: false + /http-assert@1.5.0: resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} engines: {node: '>= 0.8'} @@ -12377,6 +15443,17 @@ packages: statuses: 1.5.0 dev: false + /http-errors@1.7.3: + resolution: {integrity: sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==} + engines: {node: '>= 0.6'} + dependencies: + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.1.1 + statuses: 1.5.0 + toidentifier: 1.0.0 + dev: false + /http-errors@1.8.1: resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} engines: {node: '>= 0.6'} @@ -12420,6 +15497,16 @@ packages: - supports-color dev: false + /http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.1 + debug: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: false + /http-proxy-middleware@2.0.6(@types/express@4.17.21): resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} engines: {node: '>=12.0.0'} @@ -12493,6 +15580,16 @@ packages: - supports-color dev: false + /https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.1 + debug: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: false + /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -12503,6 +15600,17 @@ packages: engines: {node: '>=16.17.0'} dev: false + /iconv-corefoundation@1.1.7: + resolution: {integrity: sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==} + engines: {node: ^8.11.2 || >=10} + os: [darwin] + requiresBuild: true + dependencies: + cli-truncate: 2.1.0 + node-addon-api: 1.7.2 + dev: false + optional: true + /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -12526,6 +15634,10 @@ packages: postcss: 8.4.35 dev: false + /ieee754@1.1.13: + resolution: {integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==} + dev: false + /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: false @@ -12540,6 +15652,16 @@ packages: engines: {node: '>= 4'} dev: false + /image-q@4.0.0: + resolution: {integrity: sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==} + dependencies: + '@types/node': 16.9.1 + dev: false + + /immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + dev: false + /immutable@4.3.5: resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} dev: false @@ -12624,6 +15746,19 @@ packages: loose-envify: 1.4.0 dev: false + /invert-kv@2.0.0: + resolution: {integrity: sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==} + engines: {node: '>=4'} + dev: false + + /ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} + dependencies: + jsbn: 1.1.0 + sprintf-js: 1.1.3 + dev: false + /ip@2.0.1: resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==} dev: false @@ -12667,6 +15802,13 @@ packages: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} dev: false + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: false + /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: @@ -12693,6 +15835,13 @@ packages: engines: {node: '>= 0.4'} dev: false + /is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + dependencies: + ci-info: 3.9.0 + dev: false + /is-class-hotfix@0.0.6: resolution: {integrity: sha512-0n+pzCC6ICtVr/WXnN2f03TK/3BfXY7me4cjCAqT8TYXEl0+JBRoqBo94JJHXcyDSLUeWbNX8Fvy5g5RJdAstQ==} dev: false @@ -12703,6 +15852,13 @@ packages: hasown: 2.0.1 dev: false + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + dependencies: + is-typed-array: 1.1.13 + dev: false + /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} @@ -12732,16 +15888,39 @@ packages: engines: {node: '>=0.10.0'} dev: false + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.7 + dev: false + /is-finite@1.1.0: resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==} engines: {node: '>=0.10.0'} dev: false + /is-fullwidth-code-point@1.0.0: + resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} + engines: {node: '>=0.10.0'} + dependencies: + number-is-nan: 1.0.1 + dev: false + + /is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + dev: false + /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} dev: false + /is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + dev: false + /is-function@1.0.2: resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} dev: false @@ -12840,6 +16019,11 @@ packages: engines: {node: '>=8'} dev: false + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: false + /is-plain-obj@3.0.0: resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} engines: {node: '>=10'} @@ -12852,6 +16036,13 @@ packages: isobject: 3.0.1 dev: false + /is-plain-object@3.0.0: + resolution: {integrity: sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 4.0.0 + dev: false + /is-plain-object@5.0.0: resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} engines: {node: '>=0.10.0'} @@ -12890,6 +16081,11 @@ packages: call-bind: 1.0.7 dev: false + /is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + dev: false + /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -12929,6 +16125,10 @@ packages: which-typed-array: 1.1.14 dev: false + /is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + dev: false + /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -12966,6 +16166,16 @@ packages: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} dev: false + /isbinaryfile@4.0.10: + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} + dev: false + + /isbinaryfile@5.0.2: + resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==} + engines: {node: '>= 18.0.0'} + dev: false + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: false @@ -13047,6 +16257,20 @@ packages: istanbul-lib-report: 3.0.1 dev: false + /iterall@1.2.2: + resolution: {integrity: sha512-yynBb1g+RFUPY64fTrFv7nsjRrENBQJaX2UL+2Szc9REFrSNm1rpSXHGzhmAy7a9uv3vlvgBlXnf9RqmPH1/DA==} + dev: false + + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.6 + set-function-name: 2.0.2 + dev: false + /jackspeak@2.3.6: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} @@ -13518,11 +16742,36 @@ packages: - ts-node dev: false + /jimp@0.16.13: + resolution: {integrity: sha512-Bxz8q7V4rnCky9A0ktTNGA9SkNFVWRHodddI/DaAWZJzF7sVUlFYKQ60y9JGqrKpi48ECA/TnfMzzc5C70VByA==} + dependencies: + '@babel/runtime': 7.23.9 + '@jimp/custom': 0.16.13 + '@jimp/plugins': 0.16.13(@jimp/custom@0.16.13) + '@jimp/types': 0.16.13(@jimp/custom@0.16.13) + regenerator-runtime: 0.13.11 + transitivePeerDependencies: + - debug + dev: false + /jiti@1.21.0: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true dev: false + /jmespath@0.16.0: + resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} + engines: {node: '>= 0.6.0'} + dev: false + + /jose@5.6.3: + resolution: {integrity: sha512-1Jh//hEEwMhNYPDDLwXHa2ePWgWiFNNUadVmguAAw2IJ6sj9mNxV5tGXJNqlMkJAybF6Lgw1mISDxTePP/187g==} + dev: false + + /jpeg-js@0.4.4: + resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} + dev: false + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: false @@ -13542,6 +16791,10 @@ packages: argparse: 2.0.1 dev: false + /jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + dev: false + /jscodeshift@0.15.2(@babel/preset-env@7.23.9): resolution: {integrity: sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==} hasBin: true @@ -13628,10 +16881,20 @@ packages: hasBin: true dev: false + /json-bigint@1.0.0: + resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} + dependencies: + bignumber.js: 9.1.2 + dev: false + /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: false + /json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + dev: false + /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: false @@ -13644,10 +16907,20 @@ packages: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} dev: false + /json-schema-typed@8.0.1: + resolution: {integrity: sha512-XQmWYj2Sm4kn4WeTYvmpKEbyPsL7nBsb647c7pMe6l02/yx2+Jfc4dT6UZkEXnIUb5LhD55r2HPsJ1milQ4rDg==} + dev: false + /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: false + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + requiresBuild: true + dev: false + optional: true + /json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true @@ -13661,6 +16934,12 @@ packages: hasBin: true dev: false + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: 4.2.11 + dev: false + /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: @@ -13669,10 +16948,53 @@ packages: graceful-fs: 4.2.11 dev: false + /jsonwebtoken@9.0.2: + resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} + engines: {node: '>=12', npm: '>=6'} + dependencies: + jws: 3.2.2 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 + ms: 2.1.3 + semver: 7.6.0 + dev: false + + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.2 + object.assign: 4.1.5 + object.values: 1.2.0 + dev: false + + /jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + dev: false + /just-clone@6.2.0: resolution: {integrity: sha512-1IynUYEc/HAwxhi3WDpIpxJbZpMCvvrrmZVqvj9EhpvbH8lls7HhdhiByjL7DkAaWlLIzpC0Xc/VPvy/UxLNjA==} dev: false + /jwa@1.4.1: + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + dev: false + /jwa@2.0.0: resolution: {integrity: sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==} dependencies: @@ -13681,6 +17003,13 @@ packages: safe-buffer: 5.2.1 dev: false + /jws@3.2.2: + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} + dependencies: + jwa: 1.4.1 + safe-buffer: 5.2.1 + dev: false + /jws@4.0.0: resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==} dependencies: @@ -13815,6 +17144,10 @@ packages: - supports-color dev: false + /kuler@2.0.0: + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + dev: false + /launch-editor@2.6.1: resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} dependencies: @@ -13831,6 +17164,17 @@ packages: dotenv-expand: 10.0.0 dev: false + /lazy-val@1.0.5: + resolution: {integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==} + dev: false + + /lcid@2.0.0: + resolution: {integrity: sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==} + engines: {node: '>=6'} + dependencies: + invert-kv: 2.0.0 + dev: false + /leac@0.6.0: resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} dev: false @@ -13874,6 +17218,18 @@ packages: resolution: {integrity: sha512-d0GdKshNnyfl5gM7kZ9rXjGiAbxT/zCXp0k+EAzh8H4zrb2R7GXtMCrULrX7UQxtfx6CLy/vz/lomvW79FAFdA==} dev: false + /lie@3.1.1: + resolution: {integrity: sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==} + dependencies: + immediate: 3.0.6 + dev: false + + /lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + dependencies: + immediate: 3.0.6 + dev: false + /lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -13911,6 +17267,46 @@ packages: webrtc-adapter: 8.2.3 dev: false + /livekit-server-sdk@2.6.0: + resolution: {integrity: sha512-lt9VZN8vTPG/P5tj4ofwLj/HTbt343AThbAWFk70OYbQucAOdv+8w00Wv9RjMndSkHaXheXOQHg8fhGOlYXmug==} + engines: {node: '>=19'} + dependencies: + '@livekit/protocol': 1.19.1 + camelcase-keys: 9.1.3 + jose: 5.6.3 + dev: false + + /load-bmfont@1.4.2: + resolution: {integrity: sha512-qElWkmjW9Oq1F9EI5Gt7aD9zcdHb9spJCW1L/dmPf7KzCCEJxq8nhHz5eCgI9aMf7vrG/wyaCqdsI+Iy9ZTlog==} + dependencies: + buffer-equal: 0.0.1 + mime: 1.6.0 + parse-bmfont-ascii: 1.0.6 + parse-bmfont-binary: 1.0.6 + parse-bmfont-xml: 1.1.6 + phin: 3.7.1 + xhr: 2.6.0 + xtend: 4.0.2 + transitivePeerDependencies: + - debug + dev: false + + /load-json-file@5.3.0: + resolution: {integrity: sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==} + engines: {node: '>=6'} + dependencies: + graceful-fs: 4.2.11 + parse-json: 4.0.0 + pify: 4.0.1 + strip-bom: 3.0.0 + type-fest: 0.3.1 + dev: false + + /load-json-file@7.0.1: + resolution: {integrity: sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + /load-source-map@2.0.0: resolution: {integrity: sha512-QNZzJ2wMrTmCdeobMuMNEXHN1QGk8HG6louEkzD/zwQ7EU2RarrzlhQ4GnUYEFzLhK+Jq7IGyF/qy+XYBSO7AQ==} engines: {node: '>= 8'} @@ -13932,6 +17328,12 @@ packages: json5: 2.2.3 dev: false + /localforage@1.10.0: + resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==} + dependencies: + lie: 3.1.1 + dev: false + /locate-character@3.0.0: resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} dev: false @@ -13969,6 +17371,38 @@ packages: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} dev: false + /lodash.escaperegexp@4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + dev: false + + /lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + dev: false + + /lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + dev: false + + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: false + + /lodash.isinteger@4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + dev: false + + /lodash.isnumber@3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + dev: false + + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: false + + /lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + dev: false + /lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} dev: false @@ -13977,6 +17411,10 @@ packages: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: false + /lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + dev: false + /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: false @@ -13989,6 +17427,18 @@ packages: is-unicode-supported: 0.1.0 dev: false + /logform@2.6.1: + resolution: {integrity: sha512-CdaO738xRapbKIMVn2m4F6KTj4j7ooJ8POVnebSgKo3KBz5axNXRAL7ZdRjIV6NOr2Uf4vjtRkxrFETOioCqSA==} + engines: {node: '>= 12.0.0'} + dependencies: + '@colors/colors': 1.6.0 + '@types/triple-beam': 1.3.5 + fecha: 4.2.3 + ms: 2.1.3 + safe-stable-stringify: 2.4.3 + triple-beam: 1.4.1 + dev: false + /loglevel@1.9.1: resolution: {integrity: sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==} engines: {node: '>= 0.6.0'} @@ -14001,6 +17451,14 @@ packages: js-tokens: 4.0.0 dev: false + /lop@0.4.1: + resolution: {integrity: sha512-9xyho9why2A2tzm5aIcMWKvzqKsnxrf9B5I+8O30olh6lQU8PH978LqZoI4++37RBgS1Em5i54v1TFs/3wnmXQ==} + dependencies: + duck: 0.1.12 + option: 0.2.4 + underscore: 1.13.7 + dev: false + /loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: @@ -14043,6 +17501,11 @@ packages: yallist: 4.0.0 dev: false + /lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + dev: false + /lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -14087,6 +17550,35 @@ packages: tmpl: 1.0.5 dev: false + /mammoth@1.8.0: + resolution: {integrity: sha512-pJNfxSk9IEGVpau+tsZFz22ofjUsl2mnA5eT8PjPs2n0BP+rhVte4Nez6FdgEuxv3IGI3afiV46ImKqTGDVlbA==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + '@xmldom/xmldom': 0.8.10 + argparse: 1.0.10 + base64-js: 1.5.1 + bluebird: 3.4.7 + dingbat-to-unicode: 1.0.1 + jszip: 3.10.1 + lop: 0.4.1 + path-is-absolute: 1.0.1 + underscore: 1.13.7 + xmlbuilder: 10.1.1 + dev: false + + /map-age-cleaner@0.1.3: + resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} + engines: {node: '>=6'} + dependencies: + p-defer: 1.0.0 + dev: false + + /map-obj@5.0.0: + resolution: {integrity: sha512-2L3MIgJynYrZ3TYMriLDLWocz15okFakV6J12HXvMXDHui2x/zgChzg1u9mFFGbbGWE+GsLpQByt4POb9Or+uA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + /map-or-similar@1.5.0: resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} dev: false @@ -14116,6 +17608,15 @@ packages: react: 18.2.0 dev: false + /matcher@3.0.0: + resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} + engines: {node: '>=10'} + requiresBuild: true + dependencies: + escape-string-regexp: 4.0.0 + dev: false + optional: true + /mdast-util-definitions@4.0.0: resolution: {integrity: sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==} dependencies: @@ -14161,6 +17662,15 @@ packages: engines: {node: '>= 0.6'} dev: false + /mem@4.3.0: + resolution: {integrity: sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==} + engines: {node: '>=6'} + dependencies: + map-age-cleaner: 0.1.3 + mimic-fn: 2.1.0 + p-is-promise: 2.1.0 + dev: false + /memfs@3.5.3: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} @@ -14238,6 +17748,12 @@ packages: hasBin: true dev: false + /mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + dev: false + /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -14248,6 +17764,11 @@ packages: engines: {node: '>=12'} dev: false + /mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + dev: false + /mimic-response@1.0.1: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} @@ -14353,10 +17874,19 @@ packages: yallist: 4.0.0 dev: false + /mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + dev: false + /mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} dev: false + /mkdirp@0.3.0: + resolution: {integrity: sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==} + deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) + dev: false + /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -14374,6 +17904,10 @@ packages: resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} dev: false + /moment@2.30.1: + resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} + dev: false + /mongodb-connection-string-url@3.0.0: resolution: {integrity: sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==} dependencies: @@ -14512,6 +18046,15 @@ packages: thunky: 1.1.0 dev: false + /multiparty@4.2.3: + resolution: {integrity: sha512-Ak6EUJZuhGS8hJ3c2fY6UW5MbkGUPMBEGd13djUzoY/BHqV/gTuFWtC6IuVA7A2+v3yjBS6c4or50xhzTQZImQ==} + engines: {node: '>= 0.10'} + dependencies: + http-errors: 1.8.1 + safe-buffer: 5.2.1 + uid-safe: 2.1.5 + dev: false + /namespace-emitter@2.0.1: resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==} dev: false @@ -14532,6 +18075,10 @@ packages: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} dev: false + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: false + /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: false @@ -14545,10 +18092,23 @@ packages: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: false + /netmask@2.0.2: + resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} + engines: {node: '>= 0.4.0'} + dev: false + /next-line@1.1.0: resolution: {integrity: sha512-+I10J3wKNoKddNxn0CNpoZ3eTZuqxjNM3b1GImVx22+ePI+Y15P8g/j3WsbP0fhzzrFzrtjOAoq5NCCucswXOQ==} dev: false + /next-tick@1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + dev: false + + /nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + dev: false + /no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: @@ -14567,6 +18127,12 @@ packages: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} dev: false + /node-addon-api@1.7.2: + resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} + requiresBuild: true + dev: false + optional: true + /node-addon-api@6.1.0: resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} dev: false @@ -14615,10 +18181,34 @@ packages: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: false + /node-loader@2.0.0(webpack@5.90.3): + resolution: {integrity: sha512-I5VN34NO4/5UYJaUBtkrODPWxbobrE4hgDqPrjB25yPkonFhCmZ146vTH+Zg417E9Iwoh1l/MbRs1apc5J295Q==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^5.0.0 + dependencies: + loader-utils: 2.0.4 + webpack: 5.90.3(esbuild@0.20.1)(webpack-cli@5.1.4) + dev: false + + /node-localstorage@2.2.1: + resolution: {integrity: sha512-vv8fJuOUCCvSPjDjBLlMqYMHob4aGjkmrkaE42/mZr0VT+ZAU10jRF8oTnX9+pgU9/vYJ8P7YT3Vd6ajkmzSCw==} + engines: {node: '>=0.12'} + dependencies: + write-file-atomic: 1.3.4 + dev: false + /node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} dev: false + /nopt@1.0.10: + resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} + hasBin: true + dependencies: + abbrev: 1.1.1 + dev: false + /normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: @@ -14643,6 +18233,13 @@ packages: engines: {node: '>=10'} dev: false + /npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + engines: {node: '>=4'} + dependencies: + path-key: 2.0.1 + dev: false + /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -14663,6 +18260,11 @@ packages: boolbase: 1.0.0 dev: false + /number-is-nan@1.0.1: + resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} + engines: {node: '>=0.10.0'} + dev: false + /nwsapi@2.2.7: resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} dev: false @@ -14691,6 +18293,11 @@ packages: resolution: {integrity: sha512-CsubGNxhIEChNY4cXYuA6KXafztzHqzLLZ/y3Kasf3A+sa3lL9thq3z+7o0pZqzEinjXT6lXDPAfVWI59dUyzQ==} dev: false + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: false + /object-identity-map@1.0.2: resolution: {integrity: sha512-a2XZDGyYTngvGS67kWnqVdpoaJWsY7C1GhPJvejWAFCsUioTAaiTu8oBad7c6cI4McZxr4CmvnZeycK05iav5A==} dependencies: @@ -14714,6 +18321,13 @@ packages: engines: {node: '>= 0.4'} dev: false + /object-path-immutable@3.1.1: + resolution: {integrity: sha512-NZDdPo/DEufre4+CyYZ7j6YQnWvKWnnGS+VS7dVd9M6WNcvFfnR4mW1lmakg9eCABAeE+PZW3bN/ZUTL8063IQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: 3.0.0 + dev: false + /object.assign@4.1.5: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} @@ -14733,6 +18347,15 @@ packages: es-abstract: 1.22.4 dev: false + /object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: false + /object.fromentries@2.0.7: resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} engines: {node: '>= 0.4'} @@ -14742,6 +18365,16 @@ packages: es-abstract: 1.22.4 dev: false + /object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + dev: false + /object.groupby@1.0.2: resolution: {integrity: sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==} dependencies: @@ -14775,14 +18408,43 @@ packages: es-abstract: 1.22.4 dev: false + /object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: false + /obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} dev: false + /octokit@3.2.1: + resolution: {integrity: sha512-u+XuSejhe3NdIvty3Jod00JvTdAE/0/+XbhIDhefHbu+2OcTRHd80aCiH6TX19ZybJmwPQBKFQmHGxp0i9mJrg==} + engines: {node: '>= 18'} + dependencies: + '@octokit/app': 14.1.0 + '@octokit/core': 5.2.0 + '@octokit/oauth-app': 6.1.0 + '@octokit/plugin-paginate-graphql': 4.0.1(@octokit/core@5.2.0) + '@octokit/plugin-paginate-rest': 11.3.1(@octokit/core@5.2.0) + '@octokit/plugin-rest-endpoint-methods': 13.2.2(@octokit/core@5.2.0) + '@octokit/plugin-retry': 6.0.1(@octokit/core@5.2.0) + '@octokit/plugin-throttling': 8.2.0(@octokit/core@5.2.0) + '@octokit/request-error': 5.1.0 + '@octokit/types': 13.5.0 + dev: false + /ohash@1.1.3: resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} dev: false + /omggif@1.0.10: + resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} + dev: false + /on-finished@2.3.0: resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} engines: {node: '>= 0.8'} @@ -14808,6 +18470,12 @@ packages: wrappy: 1.0.2 dev: false + /one-time@1.0.0: + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + dependencies: + fn.name: 1.1.0 + dev: false + /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} @@ -14840,6 +18508,10 @@ packages: hasBin: true dev: false + /option@0.2.4: + resolution: {integrity: sha512-pkEqbDyl8ou5cpq+VsnQbe/WlEy5qS7xPzMS1U55OCG9KPvwFD46zDbxQIj3egJSFc3D+XhYOPUzz49zQAVy7A==} + dev: false + /optional-js@2.3.0: resolution: {integrity: sha512-B0LLi+Vg+eko++0z/b8zIv57kp7HKEzaPJo7LowJXMUKYdf+3XJGu/cw03h/JhIOsLnP+cG5QnTHAuicjA5fMw==} dev: false @@ -14881,11 +18553,35 @@ packages: forwarded-parse: 2.1.2 dev: false + /os-locale@3.1.0: + resolution: {integrity: sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==} + engines: {node: '>=6'} + dependencies: + execa: 1.0.0 + lcid: 2.0.0 + mem: 4.3.0 + dev: false + /p-cancelable@2.1.1: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} engines: {node: '>=8'} dev: false + /p-defer@1.0.0: + resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} + engines: {node: '>=4'} + dev: false + + /p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + dev: false + + /p-is-promise@2.1.0: + resolution: {integrity: sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==} + engines: {node: '>=6'} + dev: false + /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -14977,10 +18673,42 @@ packages: engines: {node: '>=6'} dev: false + /pac-proxy-agent@7.0.2: + resolution: {integrity: sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==} + engines: {node: '>= 14'} + dependencies: + '@tootallnate/quickjs-emscripten': 0.23.0 + agent-base: 7.1.1 + debug: 4.3.5 + get-uri: 6.0.3 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.5 + pac-resolver: 7.0.1 + socks-proxy-agent: 8.0.4 + transitivePeerDependencies: + - supports-color + dev: false + + /pac-resolver@7.0.1: + resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} + engines: {node: '>= 14'} + dependencies: + degenerator: 5.0.1 + netmask: 2.0.2 + dev: false + /pako@0.2.9: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} dev: false + /pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + dev: false + + /pako@2.1.0: + resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} + dev: false + /param-case@3.0.4: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} dependencies: @@ -14995,6 +18723,33 @@ packages: callsites: 3.1.0 dev: false + /parse-bmfont-ascii@1.0.6: + resolution: {integrity: sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==} + dev: false + + /parse-bmfont-binary@1.0.6: + resolution: {integrity: sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==} + dev: false + + /parse-bmfont-xml@1.1.6: + resolution: {integrity: sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==} + dependencies: + xml-parse-from-string: 1.0.1 + xml2js: 0.5.0 + dev: false + + /parse-headers@2.0.5: + resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} + dev: false + + /parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + dev: false + /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -15093,6 +18848,11 @@ packages: engines: {node: '>=0.10.0'} dev: false + /path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + dev: false + /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -15136,10 +18896,33 @@ packages: resolution: {integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==} dev: false + /pdf-lib@1.17.1: + resolution: {integrity: sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==} + dependencies: + '@pdf-lib/standard-fonts': 1.0.0 + '@pdf-lib/upng': 1.0.1 + pako: 1.0.11 + tslib: 1.14.1 + dev: false + + /pdfjs-dist@2.12.313: + resolution: {integrity: sha512-1x6iXO4Qnv6Eb+YFdN5JdUzt4pAkxSp3aLAYPX93eQCyg/m7QFzXVWJHJVtoW48CI8HCXju4dSkhQZwoheL5mA==} + peerDependencies: + worker-loader: ^3.0.8 + peerDependenciesMeta: + worker-loader: + optional: true + dev: false + /peberminta@0.9.0: resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} dev: false + /peek-readable@4.1.0: + resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==} + engines: {node: '>=8'} + dev: false + /peek-stream@1.1.3: resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==} dependencies: @@ -15160,6 +18943,20 @@ packages: is-reference: 3.0.2 dev: false + /phin@2.9.3: + resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + dev: false + + /phin@3.7.1: + resolution: {integrity: sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ==} + engines: {node: '>= 8'} + dependencies: + centra: 2.7.0 + transitivePeerDependencies: + - debug + dev: false + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: false @@ -15196,6 +18993,29 @@ packages: engines: {node: '>= 6'} dev: false + /pixelmatch@4.0.2: + resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==} + hasBin: true + dependencies: + pngjs: 3.4.0 + dev: false + + /pkg-conf@3.1.0: + resolution: {integrity: sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==} + engines: {node: '>=6'} + dependencies: + find-up: 3.0.0 + load-json-file: 5.3.0 + dev: false + + /pkg-conf@4.0.0: + resolution: {integrity: sha512-7dmgi4UY4qk+4mj5Cd8v/GExPo0K+SlY+hulOSdfZ/T6jVH6//y7NtzZo5WrfhDBxuQ0jCa7fLZmNaNh7EWL/w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + find-up: 6.3.0 + load-json-file: 7.0.1 + dev: false + /pkg-dir@3.0.0: resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} engines: {node: '>=6'} @@ -15240,12 +19060,26 @@ packages: fsevents: 2.3.2 dev: false + /plist@3.1.0: + resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==} + engines: {node: '>=10.4.0'} + dependencies: + '@xmldom/xmldom': 0.8.10 + base64-js: 1.5.1 + xmlbuilder: 15.1.1 + dev: false + /png-chunks-extract@1.0.0: resolution: {integrity: sha512-ZiVwF5EJ0DNZyzAqld8BP1qyJBaGOFaq9zl579qfbkcmOwWLLO4I9L8i2O4j3HkI6/35i0nKG2n+dZplxiT89Q==} dependencies: crc-32: 0.3.0 dev: false + /pngjs@3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} + engines: {node: '>=4.0.0'} + dev: false + /polished@4.3.1: resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} engines: {node: '>=10'} @@ -15390,6 +19224,14 @@ packages: source-map-js: 1.0.2 dev: false + /posthog-js@1.122.0: + resolution: {integrity: sha512-+8R2/nLaWyI5Jp2Ly7L52qcgDFU3xryyoNG52DPJ8dlGnagphxIc0mLNGurgyKeeTGycsOsuOIP4dtofv3ZoBA==} + deprecated: This version of posthog-js is deprecated, please update posthog-js, and do not use this version! Check out our JS docs at https://posthog.com/docs/libraries/js + dependencies: + fflate: 0.4.8 + preact: 10.22.1 + dev: false + /preact@10.22.1: resolution: {integrity: sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A==} dev: false @@ -15498,6 +19340,14 @@ packages: engines: {node: '>=0.4.0'} dev: false + /promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + dev: false + /prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -15506,6 +19356,14 @@ packages: sisteransi: 1.0.5 dev: false + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: false + /properties@1.2.1: resolution: {integrity: sha512-qYNxyMj1JeW54i/EWEFsM1cVwxJbtgPp8+0Wg9XjNaK6VE/c4oRi6PNu5p7w1mNXEIQIjV5Wwn8v8Gz82/QzdQ==} engines: {node: '>=0.10'} @@ -15673,6 +19531,22 @@ packages: ipaddr.js: 1.9.1 dev: false + /proxy-agent@6.4.0: + resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.1 + debug: 4.3.5 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.4 + lru-cache: 7.18.3 + pac-proxy-agent: 7.0.2 + proxy-from-env: 1.1.0 + socks-proxy-agent: 8.0.4 + transitivePeerDependencies: + - supports-color + dev: false + /proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: false @@ -15712,6 +19586,10 @@ packages: engines: {node: '>=6'} dev: false + /punycode@1.3.2: + resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} + dev: false + /punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} dev: false @@ -15721,6 +19599,13 @@ packages: engines: {node: '>=6'} dev: false + /pupa@3.1.0: + resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} + engines: {node: '>=12.20'} + dependencies: + escape-goat: 4.0.0 + dev: false + /puppeteer-core@2.1.1: resolution: {integrity: sha512-n13AWriBMPYxnpbb6bnaY5YoY6rGj8vPLrz6CZF3o0qJNEwlcfJVxBzYZ0NJsQ21UbdJoijPCDrM++SUVEz7+w==} engines: {node: '>=8.16.0'} @@ -15739,6 +19624,38 @@ packages: - supports-color dev: false + /puppeteer-core@22.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4): + resolution: {integrity: sha512-rl4tOY5LcA3e374GAlsGGHc05HL3eGNf5rZ+uxkl6id9zVZKcwcp1Z+Nd6byb6WPiPeecT/dwz8f/iUm+AZQSw==} + engines: {node: '>=18'} + dependencies: + '@puppeteer/browsers': 2.3.0 + chromium-bidi: 0.6.2(devtools-protocol@0.0.1312386) + debug: 4.3.5 + devtools-protocol: 0.0.1312386 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: false + + /puppeteer@22.14.0(bufferutil@4.0.8)(typescript@5.3.3)(utf-8-validate@6.0.4): + resolution: {integrity: sha512-MGTR6/pM8zmWbTdazb6FKnwIihzsSEXBPH49mFFU96DNZpQOevCAZMnjBZGlZRGRzRK6aADCavR6SQtrbv5dQw==} + engines: {node: '>=18'} + hasBin: true + requiresBuild: true + dependencies: + '@puppeteer/browsers': 2.3.0 + cosmiconfig: 9.0.0(typescript@5.3.3) + devtools-protocol: 0.0.1312386 + puppeteer-core: 22.14.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + transitivePeerDependencies: + - bufferutil + - supports-color + - typescript + - utf-8-validate + dev: false + /pure-rand@6.0.4: resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} dev: false @@ -15757,6 +19674,11 @@ packages: side-channel: 1.0.5 dev: false + /qs@6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + dev: false + /query-string@7.1.3: resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} engines: {node: '>=6'} @@ -15767,6 +19689,12 @@ packages: strict-uri-encode: 2.0.0 dev: false + /querystring@0.2.0: + resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} + engines: {node: '>=0.4.x'} + deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. + dev: false + /querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} dev: false @@ -15789,10 +19717,20 @@ packages: engines: {node: '>=10'} dev: false + /quick-lru@6.1.2: + resolution: {integrity: sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==} + engines: {node: '>=12'} + dev: false + /ramda@0.29.0: resolution: {integrity: sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==} dev: false + /random-bytes@1.0.0: + resolution: {integrity: sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==} + engines: {node: '>= 0.8'} + dev: false + /random-poly-fill@1.0.1: resolution: {integrity: sha512-bMOL0hLfrNs52+EHtIPIXxn2PxYwXb0qjnKruTjXiM/sKfYqj506aB2plFwWW1HN+ri724bAVVGparh4AtlJKw==} dev: false @@ -15848,6 +19786,10 @@ packages: scheduler: 0.23.0 dev: false + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: false + /react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} dev: false @@ -15912,6 +19854,18 @@ packages: loose-envify: 1.4.0 dev: false + /read-config-file@6.3.2: + resolution: {integrity: sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==} + engines: {node: '>=12.0.0'} + dependencies: + config-file-ts: 0.2.6 + dotenv: 9.0.2 + dotenv-expand: 5.1.0 + js-yaml: 4.1.0 + json5: 2.2.3 + lazy-val: 1.0.5 + dev: false + /read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -15952,6 +19906,13 @@ packages: util-deprecate: 1.0.2 dev: false + /readable-web-to-node-stream@3.0.2: + resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} + engines: {node: '>=8'} + dependencies: + readable-stream: 3.6.2 + dev: false + /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -15959,6 +19920,10 @@ packages: picomatch: 2.3.1 dev: false + /real-cancellable-promise@1.2.0: + resolution: {integrity: sha512-FYhmx1FVSgoPRjneoTjh+EKZcNb8ijl/dyatTzase5eujYhVrLNDOiIY6AgQq7GU1kOoLgEd9jLVbhFg8k8dOQ==} + dev: false + /recast@0.23.4: resolution: {integrity: sha512-qtEDqIZGVcSZCHniWwZWbRy79Dc6Wp3kT/UmDA2RJKBPg7+7k51aQBZirHmUGn5uvHf2rg8DkjizrN26k61ATw==} engines: {node: '>= 4'} @@ -15977,6 +19942,19 @@ packages: resolve: 1.22.8 dev: false + /reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: false + /regenerate-unicode-properties@10.1.1: resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} engines: {node: '>=4'} @@ -16067,6 +20045,10 @@ packages: unist-util-visit: 2.0.3 dev: false + /remedial@1.0.8: + resolution: {integrity: sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==} + dev: false + /renderkid@3.0.0: resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} dependencies: @@ -16103,6 +20085,10 @@ packages: - supports-color dev: false + /require-main-filename@1.0.1: + resolution: {integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==} + dev: false + /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} dev: false @@ -16111,6 +20097,13 @@ packages: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} dev: false + /resolve-cwd@2.0.0: + resolution: {integrity: sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==} + engines: {node: '>=4'} + dependencies: + resolve-from: 3.0.0 + dev: false + /resolve-cwd@3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} @@ -16118,6 +20111,11 @@ packages: resolve-from: 5.0.0 dev: false + /resolve-from@3.0.0: + resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} + engines: {node: '>=4'} + dev: false + /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -16157,6 +20155,15 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: false + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: false + /responselike@2.0.1: resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} dependencies: @@ -16171,6 +20178,11 @@ packages: signal-exit: 3.0.7 dev: false + /retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + dev: false + /retry@0.13.1: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} engines: {node: '>= 4'} @@ -16187,6 +20199,7 @@ packages: /rimraf@2.6.3: resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 @@ -16206,6 +20219,20 @@ packages: glob: 7.2.3 dev: false + /roarr@2.15.4: + resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} + engines: {node: '>=8.0'} + requiresBuild: true + dependencies: + boolean: 3.2.0 + detect-node: 2.1.0 + globalthis: 1.0.3 + json-stringify-safe: 5.0.1 + semver-compare: 1.0.0 + sprintf-js: 1.1.3 + dev: false + optional: true + /rope-sequence@1.3.4: resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==} dev: false @@ -16241,6 +20268,16 @@ packages: isarray: 2.0.5 dev: false + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: false + /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: false @@ -16258,6 +20295,11 @@ packages: is-regex: 1.1.4 dev: false + /safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + dev: false + /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: false @@ -16271,6 +20313,12 @@ packages: rimraf: 2.7.1 dev: false + /sanitize-filename@1.6.3: + resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} + dependencies: + truncate-utf8-bytes: 1.0.2 + dev: false + /sass-loader@13.3.3(sass@1.71.1)(webpack@5.90.3): resolution: {integrity: sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA==} engines: {node: '>= 14.15.0'} @@ -16305,6 +20353,10 @@ packages: source-map-js: 1.0.2 dev: false + /sax@1.2.1: + resolution: {integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==} + dev: false + /sax@1.3.0: resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} dev: false @@ -16372,6 +20424,12 @@ packages: node-forge: 1.3.1 dev: false + /semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + requiresBuild: true + dev: false + optional: true + /semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true @@ -16390,6 +20448,12 @@ packages: lru-cache: 6.0.0 dev: false + /semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + dev: false + /send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -16409,6 +20473,15 @@ packages: statuses: 2.0.1 dev: false + /serialize-error@7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} + requiresBuild: true + dependencies: + type-fest: 0.13.1 + dev: false + optional: true + /serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} dependencies: @@ -16438,6 +20511,10 @@ packages: send: 0.18.0 dev: false + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: false + /set-cookie-serde@1.0.0: resolution: {integrity: sha512-Vq8e5GsupfJ7okHIvEPcfs5neCo7MZ1ZuWrO3sllYi3DOWt6bSSCpADzqXjz3k0fXehnoFIrmmhty9IN6U6BXQ==} dev: false @@ -16464,10 +20541,18 @@ packages: has-property-descriptors: 1.0.2 dev: false + /setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + dev: false + /setprototypeof@1.1.0: resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} dev: false + /setprototypeof@1.1.1: + resolution: {integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==} + dev: false + /setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} dev: false @@ -16498,6 +20583,13 @@ packages: tunnel-agent: 0.6.0 dev: false + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 + dev: false + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -16505,6 +20597,11 @@ packages: shebang-regex: 3.0.0 dev: false + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + dev: false + /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} @@ -16524,6 +20621,16 @@ packages: object-inspect: 1.13.1 dev: false + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 + dev: false + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: false @@ -16551,6 +20658,13 @@ packages: is-arrayish: 0.3.2 dev: false + /simple-update-notifier@2.0.0: + resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} + engines: {node: '>=10'} + dependencies: + semver: 7.6.0 + dev: false + /simplytyped@3.3.0(typescript@5.3.3): resolution: {integrity: sha512-mz4RaNdKTZiaKXgi6P1k/cdsxV3gz+y1Wh2NXHWD40dExktLh4Xx/h6MFakmQWODZHj/2rKe59acacpL74ZhQA==} peerDependencies: @@ -16577,15 +20691,61 @@ packages: engines: {node: '>=8'} dev: false + /slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: false + + /slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + requiresBuild: true + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: false + optional: true + + /slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + dev: false + + /slide@1.1.6: + resolution: {integrity: sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==} + dev: false + /slugify@1.6.6: resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} engines: {node: '>=8.0.0'} dev: false + /smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + dev: false + /smartcrop@2.0.5: resolution: {integrity: sha512-aXoHTM8XlC51g96kgZkYxZ2mx09/ibOrIVLiUNOFozV/MHmFSgEr1/5CKVBoFD5vd+re2wSy0xra21CyjRITzA==} dev: false + /smee-client@1.2.5: + resolution: {integrity: sha512-Tv3AVvZD9sjEwBvsm1jc8to96FwmZMOYt5UL7qu3vAuA/3F/hqKe9gdRSlkvpRO4ttUAUrDKRpjM0vUnXZQhqA==} + hasBin: true + dependencies: + commander: 9.5.0 + eventsource: 2.0.2 + morgan: 1.10.0 + superagent: 8.1.2 + validator: 13.12.0 + transitivePeerDependencies: + - supports-color + dev: false + /sockjs@0.3.24: resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} dependencies: @@ -16594,6 +20754,25 @@ packages: websocket-driver: 0.7.4 dev: false + /socks-proxy-agent@8.0.4: + resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.1 + debug: 4.3.5 + socks: 2.8.3 + transitivePeerDependencies: + - supports-color + dev: false + + /socks@2.8.3: + resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + dependencies: + ip-address: 9.0.5 + smart-buffer: 4.2.0 + dev: false + /sonic-boom@1.4.1: resolution: {integrity: sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==} dependencies: @@ -16611,6 +20790,20 @@ packages: sander: 0.5.1 dev: false + /sort-keys-length@1.0.1: + resolution: {integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==} + engines: {node: '>=0.10.0'} + dependencies: + sort-keys: 1.1.2 + dev: false + + /sort-keys@1.1.2: + resolution: {integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-obj: 1.1.0 + dev: false + /source-list-map@2.0.1: resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} dev: false @@ -16711,6 +20904,10 @@ packages: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: false + /sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + dev: false + /sql-summary@1.0.1: resolution: {integrity: sha512-IpCr2tpnNkP3Jera4ncexsZUp0enJBLr+pHCyTweMUBrbJsTgQeLWx1FXLhoBj/MvcnUQpkgOn2EY8FKOkUzww==} dev: false @@ -16720,6 +20917,10 @@ packages: deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' dev: false + /stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + dev: false + /stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -16731,6 +20932,21 @@ packages: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} dev: false + /standard-engine@15.1.0: + resolution: {integrity: sha512-VHysfoyxFu/ukT+9v49d4BRXIokFRZuH3z1VRxzFArZdjSCFpro6rEIU3ji7e4AoAtuSfKBkiOmsrDqKW5ZSRw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + get-stdin: 8.0.0 + minimist: 1.2.8 + pkg-conf: 3.1.0 + xdg-basedir: 4.0.0 + dev: false + + /stat-mode@1.0.0: + resolution: {integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==} + engines: {node: '>= 6'} + dev: false + /statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} @@ -16846,6 +21062,23 @@ packages: strip-ansi: 6.0.1 dev: false + /string-width@1.0.2: + resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} + engines: {node: '>=0.10.0'} + dependencies: + code-point-at: 1.1.0 + is-fullwidth-code-point: 1.0.0 + strip-ansi: 3.0.1 + dev: false + + /string-width@2.1.1: + resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} + engines: {node: '>=4'} + dependencies: + is-fullwidth-code-point: 2.0.0 + strip-ansi: 4.0.0 + dev: false + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -16864,6 +21097,40 @@ packages: strip-ansi: 7.1.0 dev: false + /string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + dependencies: + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + dev: false + + /string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.2 + set-function-name: 2.0.2 + side-channel: 1.0.6 + dev: false + + /string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.22.4 + dev: false + /string.prototype.trim@1.2.8: resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} @@ -16873,6 +21140,16 @@ packages: es-abstract: 1.22.4 dev: false + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + dev: false + /string.prototype.trimend@1.0.7: resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} dependencies: @@ -16881,6 +21158,14 @@ packages: es-abstract: 1.22.4 dev: false + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: false + /string.prototype.trimstart@1.0.7: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: @@ -16889,6 +21174,15 @@ packages: es-abstract: 1.22.4 dev: false + /string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + dev: false + /string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: @@ -16901,6 +21195,20 @@ packages: safe-buffer: 5.2.1 dev: false + /strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: false + + /strip-ansi@4.0.0: + resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} + engines: {node: '>=4'} + dependencies: + ansi-regex: 3.0.1 + dev: false + /strip-ansi@5.2.0: resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} engines: {node: '>=6'} @@ -16932,6 +21240,11 @@ packages: engines: {node: '>=8'} dev: false + /strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + engines: {node: '>=0.10.0'} + dev: false + /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} @@ -16963,6 +21276,18 @@ packages: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} dev: false + /strtok3@6.3.0: + resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==} + engines: {node: '>=10'} + dependencies: + '@tokenizer/token': 0.3.0 + peek-readable: 4.1.0 + dev: false + + /stubborn-fs@1.2.5: + resolution: {integrity: sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==} + dev: false + /style-loader@3.3.4(webpack@5.90.3): resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} engines: {node: '>= 12.13.0'} @@ -16972,6 +21297,34 @@ packages: webpack: 5.90.3(esbuild@0.20.1)(webpack-cli@5.1.4) dev: false + /sumchecker@3.0.1: + resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} + engines: {node: '>= 8.0'} + dependencies: + debug: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: false + + /superagent@8.1.2: + resolution: {integrity: sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==} + engines: {node: '>=6.4.0 <13 || >=14'} + deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net + dependencies: + component-emitter: 1.3.1 + cookiejar: 2.1.4 + debug: 4.3.4 + fast-safe-stringify: 2.1.1 + form-data: 4.0.0 + formidable: 2.1.2 + methods: 1.1.2 + mime: 2.6.0 + qs: 6.11.2 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + dev: false + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -17231,6 +21584,16 @@ packages: bare-path: 2.1.0 dev: false + /tar-fs@3.0.6: + resolution: {integrity: sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==} + dependencies: + pump: 3.0.0 + tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 2.1.5 + bare-path: 2.1.0 + dev: false + /tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} @@ -17262,6 +21625,28 @@ packages: yallist: 4.0.0 dev: false + /telegram@2.22.2: + resolution: {integrity: sha512-9payizc801Aqqu4eTGPc0huxKnIwFe0hn18mrpbgAKKiMLurX/UIQW/fjPhI5ONzockDFsaXDFqTreXBoG1u3A==} + dependencies: + '@cryptography/aes': 0.1.1 + async-mutex: 0.3.2 + big-integer: 1.6.52 + buffer: 6.0.3 + htmlparser2: 6.1.0 + mime: 3.0.0 + node-localstorage: 2.2.1 + pako: 2.1.0 + path-browserify: 1.0.1 + real-cancellable-promise: 1.2.0 + socks: 2.8.3 + store2: 2.14.3 + ts-custom-error: 3.3.1 + websocket: 1.0.35 + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + dev: false + /telejson@6.0.8: resolution: {integrity: sha512-nerNXi+j8NK1QEfBHtZUN/aLdDcyupA//9kAboYLrtzZlPLpUfqbVGWb9zz91f/mIjRbAYhbgtnJHY8I1b5MBg==} dependencies: @@ -17286,6 +21671,13 @@ packages: engines: {node: '>=8'} dev: false + /temp-file@3.4.0: + resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==} + dependencies: + async-exit-hook: 2.0.1 + fs-extra: 10.1.0 + dev: false + /temp@0.8.4: resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==} engines: {node: '>=6.0.0'} @@ -17375,6 +21767,10 @@ packages: minimatch: 3.1.2 dev: false + /text-hex@1.0.0: + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + dev: false + /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: false @@ -17397,20 +21793,47 @@ packages: readable-stream: 3.6.2 dev: false + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: false + /thunky@1.1.0: resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} dev: false + /timm@1.7.1: + resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==} + dev: false + /tiny-invariant@1.3.1: resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} dev: false + /tiny-typed-emitter@2.1.0: + resolution: {integrity: sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==} + dev: false + + /tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + dev: false + /tippy.js@6.3.7: resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==} dependencies: '@popperjs/core': 2.11.8 dev: false + /tmp-promise@3.0.3: + resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} + dependencies: + tmp: 0.2.3 + dev: false + + /tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + dev: false + /tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} dev: false @@ -17437,11 +21860,24 @@ packages: resolution: {integrity: sha512-kE5wyCQJ40hqUaRVkyQ4z5+4juzYsv/eK+aqD97N62YH0TxFhzJvo22RUQQZdO3YnXAk42ZOfOpjVdy+Z0YokA==} dev: false + /toidentifier@1.0.0: + resolution: {integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==} + engines: {node: '>=0.6'} + dev: false + /toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} dev: false + /token-types@4.2.1: + resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==} + engines: {node: '>=10'} + dependencies: + '@tokenizer/token': 0.3.0 + ieee754: 1.2.1 + dev: false + /toposort@2.0.2: resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} dev: false @@ -17490,6 +21926,22 @@ packages: engines: {node: '>= 0.4'} dev: false + /tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + dev: false + + /triple-beam@1.4.1: + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} + engines: {node: '>= 14.0.0'} + dev: false + + /truncate-utf8-bytes@1.0.2: + resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} + dependencies: + utf8-byte-length: 1.0.5 + dev: false + /ts-api-utils@1.2.1(typescript@5.3.3): resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} engines: {node: '>=16'} @@ -17499,6 +21951,11 @@ packages: typescript: 5.3.3 dev: false + /ts-custom-error@3.3.1: + resolution: {integrity: sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==} + engines: {node: '>=14.0.0'} + dev: false + /ts-debounce@4.0.0: resolution: {integrity: sha512-+1iDGY6NmOGidq7i7xZGA4cm8DAa6fqdYcvO5Z6yBevH++Bdo9Qt/mN0TzHUgcCcKv1gmh9+W5dHqz8pMWbCbg==} dev: false @@ -17508,6 +21965,12 @@ packages: engines: {node: '>=6.10'} dev: false + /ts-invariant@0.4.4: + resolution: {integrity: sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==} + dependencies: + tslib: 1.14.1 + dev: false + /ts-jest@29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3): resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} @@ -17558,6 +22021,34 @@ packages: webpack: 5.90.3(esbuild@0.20.1)(webpack-cli@5.1.4) dev: false + /ts-node-dev@2.0.0(@types/node@20.11.19)(typescript@5.3.3): + resolution: {integrity: sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w==} + engines: {node: '>=0.8.0'} + hasBin: true + peerDependencies: + node-notifier: '*' + typescript: '*' + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + chokidar: 3.6.0 + dynamic-dedupe: 0.3.0 + minimist: 1.2.8 + mkdirp: 1.0.4 + resolve: 1.22.8 + rimraf: 2.7.1 + source-map-support: 0.5.21 + tree-kill: 1.2.2 + ts-node: 10.9.2(@types/node@20.11.19)(typescript@5.3.3) + tsconfig: 7.0.0 + typescript: 5.3.3 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + dev: false + /ts-node@10.9.2(@types/node@20.11.19)(typescript@5.3.3): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -17589,6 +22080,45 @@ packages: yn: 3.1.1 dev: false + /ts-node@7.0.1: + resolution: {integrity: sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==} + engines: {node: '>=4.2.0'} + hasBin: true + dependencies: + arrify: 1.0.1 + buffer-from: 1.1.2 + diff: 3.5.0 + make-error: 1.3.6 + minimist: 1.2.8 + mkdirp: 0.5.6 + source-map-support: 0.5.21 + yn: 2.0.0 + dev: false + + /ts-standard@12.0.2(typescript@5.3.3): + resolution: {integrity: sha512-XX2wrB9fKKTfBj4yD3ABm9iShzZcS2iWcPK8XzlBvuL20+wMiLgiz/k5tXgZwTaYq5wRhbks1Y9PelhujF/9ag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-jsx: 11.0.0(eslint-plugin-react@7.35.0)(eslint@8.56.0) + eslint-config-standard-with-typescript: 23.0.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + eslint-plugin-react: 7.35.0(eslint@8.56.0) + minimist: 1.2.8 + pkg-conf: 4.0.0 + standard-engine: 15.1.0 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: false + /tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} dependencies: @@ -17598,6 +22128,15 @@ packages: strip-bom: 3.0.0 dev: false + /tsconfig@7.0.0: + resolution: {integrity: sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==} + dependencies: + '@types/strip-bom': 3.0.0 + '@types/strip-json-comments': 0.0.30 + strip-bom: 3.0.0 + strip-json-comments: 2.0.1 + dev: false + /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: false @@ -17611,6 +22150,16 @@ packages: engines: {node: '>=0.6.x'} dev: false + /tsutils@3.21.0(typescript@5.3.3): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 5.3.3 + dev: false + /tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} dependencies: @@ -17629,6 +22178,13 @@ packages: engines: {node: '>=4'} dev: false + /type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + requiresBuild: true + dev: false + optional: true + /type-fest@0.16.0: resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} engines: {node: '>=10'} @@ -17644,6 +22200,11 @@ packages: engines: {node: '>=10'} dev: false + /type-fest@0.3.1: + resolution: {integrity: sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==} + engines: {node: '>=6'} + dev: false + /type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} @@ -17659,6 +22220,11 @@ packages: engines: {node: '>=12.20'} dev: false + /type-fest@4.23.0: + resolution: {integrity: sha512-ZiBujro2ohr5+Z/hZWHESLz3g08BBdrdLMieYFULJO+tWc437sn8kQsWLJoZErY8alNhxre9K4p3GURAG11n+w==} + engines: {node: '>=16'} + dev: false + /type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -17667,6 +22233,10 @@ packages: mime-types: 2.1.35 dev: false + /type@2.7.3: + resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} + dev: false + /typed-array-buffer@1.0.2: resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} @@ -17711,12 +22281,30 @@ packages: possible-typed-array-names: 1.0.0 dev: false + /typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + dev: false + /typed-emitter@2.1.0: resolution: {integrity: sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==} optionalDependencies: rxjs: 7.8.1 dev: false + /typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + dependencies: + is-typedarray: 1.0.0 + dev: false + /typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: false @@ -17743,10 +22331,22 @@ packages: dev: false optional: true + /uid-safe@2.1.5: + resolution: {integrity: sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==} + engines: {node: '>= 0.8'} + dependencies: + random-bytes: 1.0.0 + dev: false + /uid2@0.0.4: resolution: {integrity: sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA==} dev: false + /uint8array-extras@1.4.0: + resolution: {integrity: sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ==} + engines: {node: '>=18'} + dev: false + /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: @@ -17756,6 +22356,17 @@ packages: which-boxed-primitive: 1.0.2 dev: false + /unbzip2-stream@1.4.3: + resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + dependencies: + buffer: 5.7.1 + through: 2.3.8 + dev: false + + /underscore@1.13.7: + resolution: {integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==} + dev: false + /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} dev: false @@ -17820,6 +22431,22 @@ packages: unist-util-visit-parents: 3.1.1 dev: false + /universal-github-app-jwt@1.1.2: + resolution: {integrity: sha512-t1iB2FmLFE+yyJY9+3wMx0ejB+MQpEVkH0gQv7dR6FZyltyq+ZZO0uDpbopxhrZ3SLEO4dCEkIujOMldEQ2iOA==} + dependencies: + '@types/jsonwebtoken': 9.0.6 + jsonwebtoken: 9.0.2 + dev: false + + /universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + dev: false + + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + dev: false + /universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} @@ -17849,6 +22476,14 @@ packages: engines: {node: '>=8'} dev: false + /unused-filename@4.0.1: + resolution: {integrity: sha512-ZX6U1J04K1FoSUeoX1OicAhw4d0aro2qo+L8RhJkiGTNtBNkd/Fi1Wxoc9HzcVu6HfOzm0si/N15JjxFmD1z6A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + escape-string-regexp: 5.0.0 + path-exists: 5.0.0 + dev: false + /update-browserslist-db@1.0.13(browserslist@4.21.5): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true @@ -17901,6 +22536,17 @@ packages: requires-port: 1.0.0 dev: false + /url-template@2.0.8: + resolution: {integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==} + dev: false + + /url@0.10.3: + resolution: {integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==} + dependencies: + punycode: 1.3.2 + querystring: 0.2.0 + dev: false + /url@0.11.3: resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==} dependencies: @@ -17908,6 +22554,10 @@ packages: qs: 6.11.2 dev: false + /urlpattern-polyfill@10.0.0: + resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} + dev: false + /use-callback-ref@1.3.1(react@18.2.0): resolution: {integrity: sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==} engines: {node: '>=10'} @@ -17948,6 +22598,14 @@ packages: tslib: 2.6.2 dev: false + /utf-8-validate@5.0.10: + resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} + engines: {node: '>=6.14.2'} + requiresBuild: true + dependencies: + node-gyp-build: 4.8.0 + dev: false + /utf-8-validate@6.0.4: resolution: {integrity: sha512-xu9GQDeFp+eZ6LnCywXN/zBancWvOpUMzgjLPSjy4BRHSmTelvn2E0DG0o1sTiw5hkCKBHo8rwSKncfRfv2EEQ==} engines: {node: '>=6.14.2'} @@ -17956,6 +22614,16 @@ packages: node-gyp-build: 4.8.0 dev: false + /utf8-byte-length@1.0.5: + resolution: {integrity: sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==} + dev: false + + /utif@2.0.1: + resolution: {integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==} + dependencies: + pako: 1.0.11 + dev: false + /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: false @@ -17979,6 +22647,17 @@ packages: engines: {node: '>= 0.4.0'} dev: false + /uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + dev: false + + /uuid@8.0.0: + resolution: {integrity: sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==} + hasBin: true + dev: false + /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true @@ -18013,11 +22692,27 @@ packages: spdx-expression-parse: 3.0.1 dev: false + /validator@13.12.0: + resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} + engines: {node: '>= 0.10'} + dev: false + /vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} dev: false + /verror@1.10.1: + resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==} + engines: {node: '>=0.6.0'} + requiresBuild: true + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.4.1 + dev: false + optional: true + /w3c-keyname@2.2.8: resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} dev: false @@ -18367,6 +23062,18 @@ packages: engines: {node: '>=0.8.0'} dev: false + /websocket@1.0.35: + resolution: {integrity: sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==} + engines: {node: '>=4.0.0'} + dependencies: + bufferutil: 4.0.8 + debug: 2.6.9 + es5-ext: 0.10.64 + typedarray-to-buffer: 3.1.5 + utf-8-validate: 5.0.10 + yaeti: 0.0.6 + dev: false + /whatwg-encoding@2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} @@ -18402,6 +23109,10 @@ packages: webidl-conversions: 3.0.1 dev: false + /when-exit@2.1.3: + resolution: {integrity: sha512-uVieSTccFIr/SFQdFWN/fFaQYmV37OKtuaGphMAzi4DmmUlrvRBJW5WSLkHyjNQY/ePJMz3LoiX9R3yy1Su6Hw==} + dev: false + /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: @@ -18412,6 +23123,24 @@ packages: is-symbol: 1.0.4 dev: false + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.14 + dev: false + /which-collection@1.0.1: resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} dependencies: @@ -18421,6 +23150,10 @@ packages: is-weakset: 2.0.2 dev: false + /which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + dev: false + /which-typed-array@1.1.14: resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} engines: {node: '>= 0.4'} @@ -18432,6 +23165,24 @@ packages: has-tostringtag: 1.0.2 dev: false + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + dev: false + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: false + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -18448,10 +23199,57 @@ packages: resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} dev: false + /winston-daily-rotate-file@5.0.0(winston@3.13.1): + resolution: {integrity: sha512-JDjiXXkM5qvwY06733vf09I2wnMXpZEhxEVOSPenZMii+g7pcDcTBt2MRugnoi8BwVSuCT2jfRXBUy+n1Zz/Yw==} + engines: {node: '>=8'} + peerDependencies: + winston: ^3 + dependencies: + file-stream-rotator: 0.6.1 + object-hash: 3.0.0 + triple-beam: 1.4.1 + winston: 3.13.1 + winston-transport: 4.7.1 + dev: false + + /winston-transport@4.7.1: + resolution: {integrity: sha512-wQCXXVgfv/wUPOfb2x0ruxzwkcZfxcktz6JIMUaPLmcNhO4bZTwA/WtDWK74xV3F2dKu8YadrFv0qhwYjVEwhA==} + engines: {node: '>= 12.0.0'} + dependencies: + logform: 2.6.1 + readable-stream: 3.6.2 + triple-beam: 1.4.1 + dev: false + + /winston@3.13.1: + resolution: {integrity: sha512-SvZit7VFNvXRzbqGHsv5KSmgbEYR5EiQfDAL9gxYkRqa934Hnk++zze0wANKtMHcy/gI4W/3xmSDwlhf865WGw==} + engines: {node: '>= 12.0.0'} + dependencies: + '@colors/colors': 1.6.0 + '@dabh/diagnostics': 2.0.3 + async: 3.2.5 + is-stream: 2.0.1 + logform: 2.6.1 + one-time: 1.0.0 + readable-stream: 3.6.2 + safe-stable-stringify: 2.4.3 + stack-trace: 0.0.10 + triple-beam: 1.4.1 + winston-transport: 4.7.1 + dev: false + /wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} dev: false + /wrap-ansi@2.1.0: + resolution: {integrity: sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==} + engines: {node: '>=0.10.0'} + dependencies: + string-width: 1.0.2 + strip-ansi: 3.0.1 + dev: false + /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -18474,6 +23272,14 @@ packages: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: false + /write-file-atomic@1.3.4: + resolution: {integrity: sha512-SdrHoC/yVBPpV0Xq/mUZQIpW2sWXAShb/V4pomcJXh92RuaO+f3UTWItiR3Px+pLnV2PvC2/bfn5cwr5X6Vfxw==} + dependencies: + graceful-fs: 4.2.11 + imurmurhash: 0.1.4 + slide: 1.1.6 + dev: false + /write-file-atomic@2.4.3: resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} dependencies: @@ -18528,11 +23334,29 @@ packages: utf-8-validate: 6.0.4 dev: false + /xdg-basedir@4.0.0: + resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} + engines: {node: '>=8'} + dev: false + + /xhr@2.6.0: + resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} + dependencies: + global: 4.4.0 + is-function: 1.0.2 + parse-headers: 2.0.5 + xtend: 4.0.2 + dev: false + /xml-name-validator@4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} dev: false + /xml-parse-from-string@1.0.1: + resolution: {integrity: sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==} + dev: false + /xml2js@0.5.0: resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} engines: {node: '>=4.0.0'} @@ -18541,11 +23365,30 @@ packages: xmlbuilder: 11.0.1 dev: false + /xml2js@0.6.2: + resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} + engines: {node: '>=4.0.0'} + dependencies: + sax: 1.3.0 + xmlbuilder: 11.0.1 + dev: false + + /xmlbuilder@10.1.1: + resolution: {integrity: sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg==} + engines: {node: '>=4.0'} + dev: false + /xmlbuilder@11.0.1: resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} engines: {node: '>=4.0'} dev: false + /xmlbuilder@15.1.1: + resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} + engines: {node: '>=8.0'} + requiresBuild: true + dev: false + /xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} dev: false @@ -18581,11 +23424,20 @@ packages: yjs: 13.6.12 dev: false + /y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: false + /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} dev: false + /yaeti@0.0.6: + resolution: {integrity: sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==} + engines: {node: '>=0.10.32'} + dev: false + /yallist@2.1.2: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} dev: false @@ -18608,11 +23460,35 @@ packages: engines: {node: '>= 14'} dev: false + /yargs-parser@11.1.1: + resolution: {integrity: sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: false + /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} dev: false + /yargs@12.0.5: + resolution: {integrity: sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==} + dependencies: + cliui: 4.1.0 + decamelize: 1.2.0 + find-up: 3.0.0 + get-caller-file: 1.0.3 + os-locale: 3.1.0 + require-directory: 2.1.1 + require-main-filename: 1.0.1 + set-blocking: 2.0.0 + string-width: 2.1.1 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 11.1.1 + dev: false + /yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} @@ -18645,6 +23521,11 @@ packages: engines: {node: '>= 4.0.0'} dev: false + /yn@2.0.0: + resolution: {integrity: sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==} + engines: {node: '>=4'} + dev: false + /yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -18667,6 +23548,21 @@ packages: css-what: 6.1.0 dev: false + /zen-observable-ts@0.8.21: + resolution: {integrity: sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==} + dependencies: + tslib: 1.14.1 + zen-observable: 0.8.15 + dev: false + + /zen-observable@0.8.15: + resolution: {integrity: sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==} + dev: false + + /zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + dev: false + file:projects/account-service.tgz: resolution: {integrity: sha512-m2wnBUxpiATGM4uSuNprCebldYmLYweixWs/lkbmn2oxzV797WaTrigIQEEPowYOydBskozS7uc/PgBj9WhkCw==, tarball: file:projects/account-service.tgz} name: '@rush-temp/account-service' @@ -18869,12 +23765,111 @@ packages: - ts-node dev: false + file:projects/analytics-collector-assets.tgz(esbuild@0.20.1)(svelte@4.2.12)(ts-node@10.9.2): + resolution: {integrity: sha512-ThEhCV2dJchrcM0mfUjNFdD0/qOzl3qC7glianWUl4Qsj03IrYyjbxvdsV7Fy/49UhQ+YUt46X39kgIWVBnWiw==, tarball: file:projects/analytics-collector-assets.tgz} + id: file:projects/analytics-collector-assets.tgz + name: '@rush-temp/analytics-collector-assets' + version: 0.0.0 + dependencies: + '@types/jest': 29.5.12 + '@types/node': 20.11.19 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + prettier: 3.2.5 + prettier-plugin-svelte: 3.2.2(prettier@3.2.5)(svelte@4.2.12) + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - svelte + - ts-node + dev: false + + file:projects/analytics-collector.tgz(@types/node@20.11.19)(esbuild@0.20.1)(svelte@4.2.12)(ts-node@10.9.2): + resolution: {integrity: sha512-m298Tce6R1UfZPYO43qimcjCqQNDKFQ08UiLhIcwIfk5Tg+Gm67q9Da79dE2fKDxKqIoAIPytneAgtOOXIMVaw==, tarball: file:projects/analytics-collector.tgz} + id: file:projects/analytics-collector.tgz + name: '@rush-temp/analytics-collector' + version: 0.0.0 + dependencies: + '@types/jest': 29.5.12 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + prettier: 3.2.5 + prettier-plugin-svelte: 3.2.2(prettier@3.2.5)(svelte@4.2.12) + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - svelte + - ts-node + dev: false + + file:projects/analytics-service.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2): + resolution: {integrity: sha512-3hpPEwojBH/WARd3evdL3zOnOb9ygsuGRlKmPARpwJx3BV2iI/yapLa2vF7pZUSOZRNK+U3sfYNUGmjMUiV3PA==, tarball: file:projects/analytics-service.tgz} + id: file:projects/analytics-service.tgz + name: '@rush-temp/analytics-service' + version: 0.0.0 + dependencies: + '@sentry/node': 7.118.0 + '@types/jest': 29.5.12 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + prettier: 3.2.5 + simplytyped: 3.3.0(typescript@5.3.3) + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + typescript: 5.3.3 + winston: 3.13.1 + winston-daily-rotate-file: 5.0.0(winston@3.13.1) + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + dev: false + file:projects/analytics.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2): resolution: {integrity: sha512-wLu52RMlBePatFSm958iRCQIa02H20WkOWGqfFKnErgHL66ZnRXmOLQ5/yvKRpIXkFIiFeLkraYKIofUQQ+VxA==, tarball: file:projects/analytics.tgz} id: file:projects/analytics.tgz name: '@rush-temp/analytics' version: 0.0.0 dependencies: + '@sentry/node': 7.118.0 '@types/jest': 29.5.12 '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) @@ -18889,6 +23884,8 @@ packages: simplytyped: 3.3.0(typescript@5.3.3) ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) typescript: 5.3.3 + winston: 3.13.1 + winston-daily-rotate-file: 5.0.0(winston@3.13.1) transitivePeerDependencies: - '@babel/core' - '@jest/types' @@ -20018,6 +25015,215 @@ packages: - ts-node dev: false + file:projects/desktop-1.tgz(webpack@5.90.3): + resolution: {integrity: sha512-Fkk5uNa4NwlCVU5yJUf4X3FcGljXj0qUH7iyoCEAk8EKQ/Mi3OfG/KqK03kEeuM1KP8T1CtArtUhWDsM66/AFQ==, tarball: file:projects/desktop-1.tgz} + id: file:projects/desktop-1.tgz + name: '@rush-temp/desktop-1' + version: 0.0.0 + dependencies: + '@electron/notarize': 2.3.2 + '@types/node': 20.11.19 + '@vercel/webpack-asset-relocator-loader': 1.7.4 + cross-env: 7.0.3 + dotenv: 16.0.3 + electron: 31.3.0 + electron-builder: 24.13.3 + electron-squirrel-startup: 1.0.1 + node-loader: 2.0.0(webpack@5.90.3) + typescript: 5.3.3 + transitivePeerDependencies: + - electron-builder-squirrel-windows + - supports-color + - webpack + dev: false + + file:projects/desktop-preferences-assets.tgz(esbuild@0.20.1)(ts-node@10.9.2): + resolution: {integrity: sha512-V9FjBfsoqyYAdA87p3TLstkOi39YScp9wSs7CdTzvcFIPGLPG6sOPZ8QQuAXbGxGjgfOcxWuqxkh5hllNIfyHQ==, tarball: file:projects/desktop-preferences-assets.tgz} + id: file:projects/desktop-preferences-assets.tgz + name: '@rush-temp/desktop-preferences-assets' + version: 0.0.0 + dependencies: + '@types/jest': 29.5.12 + '@types/node': 20.11.19 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + prettier: 3.2.5 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + dev: false + + file:projects/desktop-preferences-resources.tgz(@types/node@20.11.19)(esbuild@0.20.1)(postcss-load-config@4.0.2)(postcss@8.4.35)(ts-node@10.9.2): + resolution: {integrity: sha512-wwqD1uJ8gqfv5OaLGnnxkWEsEE77053PgEzs15EQkrk4KM3Kvuy25XW6JwXi0xD1e4BOcqc4FhEYiTpIvtW2Rw==, tarball: file:projects/desktop-preferences-resources.tgz} + id: file:projects/desktop-preferences-resources.tgz + name: '@rush-temp/desktop-preferences-resources' + version: 0.0.0 + dependencies: + '@types/jest': 29.5.12 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + eslint-plugin-svelte: 2.35.1(eslint@8.56.0)(svelte@4.2.12)(ts-node@10.9.2) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + prettier: 3.2.5 + prettier-plugin-svelte: 3.2.2(prettier@3.2.5)(svelte@4.2.12) + sass: 1.71.1 + svelte: 4.2.12 + svelte-check: 3.6.9(postcss-load-config@4.0.2)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12) + svelte-eslint-parser: 0.33.1(svelte@4.2.12) + svelte-loader: 3.2.0(svelte@4.2.12) + svelte-preprocess: 5.1.3(postcss-load-config@4.0.2)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12)(typescript@5.3.3) + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - coffeescript + - esbuild + - less + - node-notifier + - postcss + - postcss-load-config + - pug + - stylus + - sugarss + - supports-color + - ts-node + dev: false + + file:projects/desktop-preferences.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2): + resolution: {integrity: sha512-r57UCjwBTP/+jAYOyYhTX9dEnn9OJHgp5zVSCh3DRwuWd/Em036njORfRZOxy6CFNFgpqdWbEhiah6GR4dM5Ow==, tarball: file:projects/desktop-preferences.tgz} + id: file:projects/desktop-preferences.tgz + name: '@rush-temp/desktop-preferences' + version: 0.0.0 + dependencies: + '@types/jest': 29.5.12 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + prettier: 3.2.5 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + dev: false + + file:projects/desktop.tgz(bufferutil@4.0.8)(sass@1.71.1)(utf-8-validate@6.0.4): + resolution: {integrity: sha512-2edgvVz9CadWKo8x9QaO8UNcvjxSGilnSzeLzkV9ijegvq0HinqBqu4Q/sFmKKHMBXYc5ZNW3wJ+/2BGvEIMZw==, tarball: file:projects/desktop.tgz} + id: file:projects/desktop.tgz + name: '@rush-temp/desktop' + version: 0.0.0 + dependencies: + '@types/node': 20.11.19 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@vercel/webpack-asset-relocator-loader': 1.7.4 + autoprefixer: 10.4.17(postcss@8.4.35) + browserslist: 4.21.5 + commander: 8.3.0 + compression-webpack-plugin: 10.0.0(webpack@5.90.3) + copy-webpack-plugin: 11.0.0(webpack@5.90.3) + cross-env: 7.0.3 + css-loader: 5.2.7(webpack@5.90.3) + dotenv: 16.0.3 + dotenv-webpack: 8.0.1(webpack@5.90.3) + electron: 31.3.0 + electron-context-menu: 4.0.1 + electron-log: 5.1.7 + electron-squirrel-startup: 1.0.1 + electron-store: 10.0.0 + electron-updater: 6.2.1 + electron-windows-badge: 1.1.0 + esbuild: 0.20.1 + esbuild-loader: 4.0.3(webpack@5.90.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + file-loader: 6.2.0(webpack@5.90.3) + fork-ts-checker-webpack-plugin: 7.3.0(typescript@5.3.3)(webpack@5.90.3) + html-webpack-plugin: 5.6.0(webpack@5.90.3) + livekit-client: 2.2.0 + mini-css-extract-plugin: 2.8.0(webpack@5.90.3) + node-loader: 2.0.0(webpack@5.90.3) + postcss: 8.4.35 + postcss-load-config: 4.0.2(postcss@8.4.35)(ts-node@10.9.2) + postcss-loader: 7.3.4(postcss@8.4.35)(typescript@5.3.3)(webpack@5.90.3) + prettier: 3.2.5 + sass-loader: 13.3.3(sass@1.71.1)(webpack@5.90.3) + style-loader: 3.3.4(webpack@5.90.3) + svelte: 4.2.12 + svelte-loader: 3.2.0(svelte@4.2.12) + svelte-preprocess: 5.1.3(postcss-load-config@4.0.2)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12)(typescript@5.3.3) + svgo-loader: 3.0.3 + ts-loader: 9.5.1(typescript@5.3.3)(webpack@5.90.3) + ts-node: 10.9.2(@types/node@20.11.19)(typescript@5.3.3) + ts-node-dev: 2.0.0(@types/node@20.11.19)(typescript@5.3.3) + typescript: 5.3.3 + update-browserslist-db: 1.0.13(browserslist@4.21.5) + webpack: 5.90.3(esbuild@0.20.1)(webpack-cli@5.1.4) + webpack-bundle-analyzer: 4.10.1(bufferutil@4.0.8)(utf-8-validate@6.0.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack-dev-server@4.15.1)(webpack@5.90.3) + webpack-dev-server: 4.15.1(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4)(webpack@5.90.3) + transitivePeerDependencies: + - '@babel/core' + - '@rspack/core' + - '@swc/core' + - '@swc/wasm' + - '@webpack-cli/generators' + - bufferutil + - coffeescript + - debug + - fibers + - less + - node-notifier + - node-sass + - pug + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - uglify-js + - utf-8-validate + - vue-template-compiler + dev: false + file:projects/devmodel-resources.tgz(@types/node@20.11.19)(esbuild@0.20.1)(postcss-load-config@4.0.2)(postcss@8.4.35)(ts-node@10.9.2): resolution: {integrity: sha512-EM4KBZ9lTqifDM/zjXmvtXAQV9nokDucxG2kaw6sGe0eW8w2k4NDcVggvHMHUbydTPBmWuvZNpPvZ8RxgrBPog==, tarball: file:projects/devmodel-resources.tgz} id: file:projects/devmodel-resources.tgz @@ -20094,6 +25300,114 @@ packages: - ts-node dev: false + file:projects/diffview-assets.tgz(esbuild@0.20.1)(ts-node@10.9.2): + resolution: {integrity: sha512-3Dai2sbD262yh84ni7cWX71PIW/fO/fiMEOXxqpRSsTf0SyVQ2BIYyOXxkwOL8MgRA5g5s9rb8qHW0CjZVuPXw==, tarball: file:projects/diffview-assets.tgz} + id: file:projects/diffview-assets.tgz + name: '@rush-temp/diffview-assets' + version: 0.0.0 + dependencies: + '@types/jest': 29.5.12 + '@types/node': 20.11.19 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + prettier: 3.2.5 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + dev: false + + file:projects/diffview-resources.tgz(@types/node@20.11.19)(esbuild@0.20.1)(postcss-load-config@4.0.2)(postcss@8.4.35)(ts-node@10.9.2): + resolution: {integrity: sha512-fi0UUvQTrAAt70IEF8CC7O6h5UfknnXO0xHylpL/Wn7h6oOQHlfPl9VhAx0PJW6TDvw3CltEE35pVSLyDml1CA==, tarball: file:projects/diffview-resources.tgz} + id: file:projects/diffview-resources.tgz + name: '@rush-temp/diffview-resources' + version: 0.0.0 + dependencies: + '@types/jest': 29.5.12 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + diff2html: 3.4.48 + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + eslint-plugin-svelte: 2.35.1(eslint@8.56.0)(svelte@4.2.12)(ts-node@10.9.2) + fast-equals: 5.0.1 + highlight.js: 11.8.0 + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + prettier: 3.2.5 + prettier-plugin-svelte: 3.2.2(prettier@3.2.5)(svelte@4.2.12) + sass: 1.71.1 + svelte: 4.2.12 + svelte-check: 3.6.9(postcss-load-config@4.0.2)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12) + svelte-eslint-parser: 0.33.1(svelte@4.2.12) + svelte-loader: 3.2.0(svelte@4.2.12) + svelte-preprocess: 5.1.3(postcss-load-config@4.0.2)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12)(typescript@5.3.3) + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - coffeescript + - esbuild + - less + - node-notifier + - postcss + - postcss-load-config + - pug + - stylus + - sugarss + - supports-color + - ts-node + dev: false + + file:projects/diffview.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2): + resolution: {integrity: sha512-bP063eugaDREOI+bDy18zm4gnEg6L7JOhO0MkvA8YVdgspInuvMdOnKBzbZ2aM0WUkhrE/XLgONtQ89r61/cBg==, tarball: file:projects/diffview.tgz} + id: file:projects/diffview.tgz + name: '@rush-temp/diffview' + version: 0.0.0 + dependencies: + '@types/jest': 29.5.12 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + prettier: 3.2.5 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + dev: false + file:projects/document-assets.tgz(esbuild@0.20.1)(ts-node@10.9.2): resolution: {integrity: sha512-rCP4MYljBKhtWZRUDLUYu/3NEni8PhLhAEHjoHj9fjQyzQdQc6b4ElYxGA4Nwja9bZGluBwiinEw2L4xviw9Rw==, tarball: file:projects/document-assets.tgz} id: file:projects/document-assets.tgz @@ -20398,6 +25712,113 @@ packages: - supports-color dev: false + file:projects/github-assets.tgz(esbuild@0.20.1)(ts-node@10.9.2): + resolution: {integrity: sha512-cnPTqSnJuFmZO+tMdYFpXJiEzCdPRGbT/wh6PzHNJzjvO74+lvT0PMy2aqEqvL78aPYvrqrfHEw7pXpHTWY2EA==, tarball: file:projects/github-assets.tgz} + id: file:projects/github-assets.tgz + name: '@rush-temp/github-assets' + version: 0.0.0 + dependencies: + '@types/jest': 29.5.12 + '@types/node': 20.11.19 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + prettier: 3.2.5 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + dev: false + + file:projects/github-resources.tgz(@types/node@20.11.19)(esbuild@0.20.1)(postcss-load-config@4.0.2)(postcss@8.4.35)(ts-node@10.9.2): + resolution: {integrity: sha512-U0e6zVcDD10tlw75iRfrQae7mRGgM7hNNH87NwWThWmk5HIVH8nS6iltVT97afp3G+YwmMDpuDvC1SO59PdL5w==, tarball: file:projects/github-resources.tgz} + id: file:projects/github-resources.tgz + name: '@rush-temp/github-resources' + version: 0.0.0 + dependencies: + '@types/jest': 29.5.12 + '@types/qs': 6.9.11 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + eslint-plugin-svelte: 2.35.1(eslint@8.56.0)(svelte@4.2.12)(ts-node@10.9.2) + fast-equals: 5.0.1 + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + prettier: 3.2.5 + prettier-plugin-svelte: 3.2.2(prettier@3.2.5)(svelte@4.2.12) + sass: 1.71.1 + svelte: 4.2.12 + svelte-check: 3.6.9(postcss-load-config@4.0.2)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12) + svelte-eslint-parser: 0.33.1(svelte@4.2.12) + svelte-loader: 3.2.0(svelte@4.2.12) + svelte-preprocess: 5.1.3(postcss-load-config@4.0.2)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12)(typescript@5.3.3) + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - coffeescript + - esbuild + - less + - node-notifier + - postcss + - postcss-load-config + - pug + - stylus + - sugarss + - supports-color + - ts-node + dev: false + + file:projects/github.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2): + resolution: {integrity: sha512-hQ+gXG22OPXE3ef1Kup271oOrBkBBT5EqjMNTi8vRAFJIMOnOUygtRaCJwozvvZ2evab/LgnHmF2qt8eIsdKBQ==, tarball: file:projects/github.tgz} + id: file:projects/github.tgz + name: '@rush-temp/github' + version: 0.0.0 + dependencies: + '@types/jest': 29.5.12 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + prettier: 3.2.5 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + dev: false + file:projects/gmail-assets.tgz(esbuild@0.20.1)(ts-node@10.9.2): resolution: {integrity: sha512-9W7yiTwmPezJiUw26f3EelOKyS7NUvTSCsg2ohuRipbosMpzwPxL/4UlikZJ8Wx5nPtDiDuC/dFU12V1fDLHzQ==, tarball: file:projects/gmail-assets.tgz} id: file:projects/gmail-assets.tgz @@ -21366,7 +26787,7 @@ packages: dev: false file:projects/model-all.tgz: - resolution: {integrity: sha512-UJzQ4TlmbHmPJfDhn7VNn01VuXSeWITV8e1pq3mssAshd1F0ElQiDJYMtCtJcUVQnGWwx7r4sRCqDL3P3Qdayg==, tarball: file:projects/model-all.tgz} + resolution: {integrity: sha512-iZAri5sHzRIutIt2bdrG1zI/QAu/lt1KC14lDRvHKLCaEtThF4RLlBqYHQ/rZM8aZyHIiGLwVztxvzR8D5EnZA==, tarball: file:projects/model-all.tgz} name: '@rush-temp/model-all' version: 0.0.0 dependencies: @@ -21388,6 +26809,24 @@ packages: - supports-color dev: false + file:projects/model-analytics-collector.tgz: + resolution: {integrity: sha512-OcczFEesVXSXUuJ/HpZ880slAZeV8Y/MhZArlxBlO90Tm3jO42cyQLAi0kO36ZAkO/gGVpAHUpuZT0QB70ovvw==, tarball: file:projects/model-analytics-collector.tgz} + name: '@rush-temp/model-analytics-collector' + version: 0.0.0 + dependencies: + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + prettier: 3.2.5 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: false + file:projects/model-attachment.tgz: resolution: {integrity: sha512-l6ido0KZWoQdDjZCYPzyauy2JZk04kXh48IpVSb4t4UwPfRXQKdKNZFecJxEyIkXW5T2uFYsWSpg+w7jYx85hw==, tarball: file:projects/model-attachment.tgz} name: '@rush-temp/model-attachment' @@ -21542,6 +26981,24 @@ packages: - supports-color dev: false + file:projects/model-desktop-preferences.tgz: + resolution: {integrity: sha512-nU19Bq6EblQcApwcv6mwIVv3/9Eb7NlipPdmmBdxA90VqJAmMy2alC0G8ZPe22AgrUhvE1INxkjaEm2EyIHyaw==, tarball: file:projects/model-desktop-preferences.tgz} + name: '@rush-temp/model-desktop-preferences' + version: 0.0.0 + dependencies: + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + prettier: 3.2.5 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: false + file:projects/model-document.tgz: resolution: {integrity: sha512-aQ1dqQdlY2Lc/HpchhCuHa3+9hqLhLA/I1OyVFBd1ap+qHLlLo5PyNnQE/laSmgW/3ULKXMG1xm3jRcmTT4VdA==, tarball: file:projects/model-document.tgz} name: '@rush-temp/model-document' @@ -21579,6 +27036,24 @@ packages: - supports-color dev: false + file:projects/model-github.tgz: + resolution: {integrity: sha512-WUEiwmSsxVx9D70sRcSs3b27dvPyA4KeocITd2vwxuDqFqYo22GIjLP1AUpMTQxmR6hxNV/9Nn7Hus7M8KnKNg==, tarball: file:projects/model-github.tgz} + name: '@rush-temp/model-github' + version: 0.0.0 + dependencies: + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + prettier: 3.2.5 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: false + file:projects/model-gmail.tgz: resolution: {integrity: sha512-FoDVnyY59pxmZGAethkhK1+8i3yA/HAtbB1dfRUB2VBSRrqtj44pUsBGFEMqvseVyj9F1DGGJEIMmr6XSRM6Ug==, tarball: file:projects/model-gmail.tgz} name: '@rush-temp/model-gmail' @@ -22561,13 +28036,11 @@ packages: - supports-color dev: false - file:projects/model-text-editor.tgz(@tiptap/pm@2.2.4): - resolution: {integrity: sha512-a2Q7SUya+W86b84tBEmHhf0+LJNVxtfweKCuwzGh77gfmSz8ok0aQjpRA61JHQuk8NfP96K+CKAA4oJh1LMpAg==, tarball: file:projects/model-text-editor.tgz} - id: file:projects/model-text-editor.tgz + file:projects/model-text-editor.tgz: + resolution: {integrity: sha512-z1TlVHF8VxcMeChSZ70ZGJsKdGSKisnpnPGuLmp2yYS30ckD5ohoj4KeqgbKu+qT+72FYSg4COXFoAYnszgfoA==, tarball: file:projects/model-text-editor.tgz} name: '@rush-temp/model-text-editor' version: 0.0.0 dependencies: - '@tiptap/starter-kit': 2.2.4(@tiptap/pm@2.2.4) '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 @@ -22578,7 +28051,6 @@ packages: prettier: 3.2.5 typescript: 5.3.3 transitivePeerDependencies: - - '@tiptap/pm' - supports-color dev: false @@ -23024,7 +28496,7 @@ packages: dev: false file:projects/pod-account.tgz: - resolution: {integrity: sha512-8TNm2djgcpy9V0WMdb8XmOwbMxGSSpvVs76DMoKhEcAjFHtmK/G32IOOvh721krtM5NibFqpEo4SERxjYWn7Qg==, tarball: file:projects/pod-account.tgz} + resolution: {integrity: sha512-yI2LfUu2SCsh/b97mSszloCkfnaZ0s0AllwwszhB5S3V6jJFzAcyhfX2Zw9y2XRbe2UOPMyISs16JrCFDI8Rog==, tarball: file:projects/pod-account.tgz} name: '@rush-temp/pod-account' version: 0.0.0 dependencies: @@ -23072,8 +28544,52 @@ packages: - supports-color dev: false + file:projects/pod-analytics-collector.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4): + resolution: {integrity: sha512-Sx9mTOCsgDTcoC8h9VXeemVHerKLMDzdW4aJ08fdsF9UA35tLWmbDXw+fn3gPUNj2l+QT5ExEF9rV1Iez1FIbw==, tarball: file:projects/pod-analytics-collector.tgz} + id: file:projects/pod-analytics-collector.tgz + name: '@rush-temp/pod-analytics-collector' + version: 0.0.0 + dependencies: + '@tsconfig/node16': 1.0.4 + '@types/cors': 2.8.17 + '@types/express': 4.17.21 + '@types/jest': 29.5.12 + '@types/node': 20.11.19 + '@types/ws': 8.5.11 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + cors: 2.8.5 + dotenv: 16.0.3 + esbuild: 0.20.1 + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-node: 11.1.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + express: 4.19.2 + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + prettier: 3.2.5 + puppeteer: 22.14.0(bufferutil@4.0.8)(typescript@5.3.3)(utf-8-validate@6.0.4) + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + ts-node: 10.9.2(@types/node@20.11.19)(typescript@5.3.3) + typescript: 5.3.3 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@swc/core' + - '@swc/wasm' + - babel-jest + - babel-plugin-macros + - bufferutil + - node-notifier + - supports-color + - utf-8-validate + dev: false + file:projects/pod-backup.tgz: - resolution: {integrity: sha512-cHCcTxI/Vi0V6XlrDbRHoYPHkyxXMt46iCY6sAlIuSU/6pgTQbNfZvrwCMVvlJS6AbZ/aCtmKsw6B54x9hnPQQ==, tarball: file:projects/pod-backup.tgz} + resolution: {integrity: sha512-kDZfttPxTuMHKyNcRqOBDuzJjR+H4DGGAFor6GvK4vNDRDHmw0vxFg8zkhDCSLgUAGaHIq/Xw8SxkADO1BKJQQ==, tarball: file:projects/pod-backup.tgz} name: '@rush-temp/pod-backup' version: 0.0.0 dependencies: @@ -23108,8 +28624,69 @@ packages: - supports-color dev: false + file:projects/pod-calendar.tgz(bufferutil@4.0.8)(ts-node@10.9.2)(utf-8-validate@6.0.4): + resolution: {integrity: sha512-a3IO+LV4RLUrLCIwlzK6HfwU0q4QkepgRaQi4/ybG+He0Oqy/eWvZnHHXry0FjArSrZjr2QOnxOlYsipXv/zfg==, tarball: file:projects/pod-calendar.tgz} + id: file:projects/pod-calendar.tgz + name: '@rush-temp/pod-calendar' + version: 0.0.0 + dependencies: + '@tsconfig/node16': 1.0.4 + '@types/cors': 2.8.17 + '@types/express': 4.17.21 + '@types/jest': 29.5.12 + '@types/node': 20.11.19 + '@types/node-fetch': 2.6.11 + '@types/ws': 8.5.11 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + cors: 2.8.5 + dotenv: 16.0.3 + esbuild: 0.20.1 + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-node: 11.1.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + express: 4.19.2 + fast-equals: 5.0.1 + file-api: 0.10.4 + form-data: 4.0.0 + google-auth-library: 8.9.0 + googleapis: 122.0.0 + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + jwt-simple: 0.5.6 + mongodb: 6.8.0 + node-fetch: 2.7.0 + prettier: 3.2.5 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + ts-node-dev: 2.0.0(@types/node@20.11.19)(typescript@5.3.3) + typescript: 5.3.3 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + transitivePeerDependencies: + - '@aws-sdk/credential-providers' + - '@babel/core' + - '@jest/types' + - '@mongodb-js/zstd' + - '@swc/core' + - '@swc/wasm' + - babel-jest + - babel-plugin-macros + - bufferutil + - encoding + - gcp-metadata + - kerberos + - mongodb-client-encryption + - node-notifier + - snappy + - socks + - supports-color + - ts-node + - utf-8-validate + dev: false + file:projects/pod-collaborator.tgz: - resolution: {integrity: sha512-6bWC34OX31zOMwh9oOxnxkFD0sq7GCmCk5VZDUVsmjY7hbLsFSdNQ3mpKk+5nFwrIsxwtHZtghqYow9isy8Bbg==, tarball: file:projects/pod-collaborator.tgz} + resolution: {integrity: sha512-3qz7k9xtE0tZjr0MlSs062eI+X4WfPh+anTCA7btPShvsC+5GdSYBXxD5nCT4rO7klt7pCLfXMozSEJrIXTM2Q==, tarball: file:projects/pod-collaborator.tgz} name: '@rush-temp/pod-collaborator' version: 0.0.0 dependencies: @@ -23142,7 +28719,7 @@ packages: dev: false file:projects/pod-front.tgz: - resolution: {integrity: sha512-TjmoiIgWSRZLN6LJ4JAkk5dQ2kkF8WFEw36PAsNJPILc09xtKsxiJSsWwrn78epTB6jk2ugx4P8VuFnAERPvaA==, tarball: file:projects/pod-front.tgz} + resolution: {integrity: sha512-dfeO6R4HILQ4+Z+sBAH3KAPWLOXtwCQjlaxfD9//EOAyiXBynRyGKJUgudkWm/iG0fpgfxdYogYzg2OyUjKtJg==, tarball: file:projects/pod-front.tgz} name: '@rush-temp/pod-front' version: 0.0.0 dependencies: @@ -23188,8 +28765,250 @@ packages: - supports-color dev: false + file:projects/pod-github.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4)(y-prosemirror@1.2.2): + resolution: {integrity: sha512-WnIupxKJkkE/0F06plCcJxaijJf8mwN80v8tgb1hqkpNOB2BbBWdcDbFk0apeiASq7SiI22r16l7aZA2kAqjig==, tarball: file:projects/pod-github.tgz} + id: file:projects/pod-github.tgz + name: '@rush-temp/pod-github' + version: 0.0.0 + dependencies: + '@octokit/types': 12.6.0 + '@octokit/webhooks': 12.2.0 + '@octokit/webhooks-types': 7.5.1 + '@tiptap/core': 2.2.4(@tiptap/pm@2.2.4) + '@tiptap/extension-bubble-menu': 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4) + '@tiptap/extension-code': 2.2.4(@tiptap/core@2.2.4) + '@tiptap/extension-code-block': 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4) + '@tiptap/extension-collaboration': 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4)(y-prosemirror@1.2.2) + '@tiptap/extension-collaboration-cursor': 2.2.4(@tiptap/core@2.2.4)(y-prosemirror@1.2.2) + '@tiptap/extension-gapcursor': 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4) + '@tiptap/extension-heading': 2.2.4(@tiptap/core@2.2.4) + '@tiptap/extension-highlight': 2.2.4(@tiptap/core@2.2.4) + '@tiptap/extension-link': 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4) + '@tiptap/extension-mention': 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4)(@tiptap/suggestion@2.2.4) + '@tiptap/extension-placeholder': 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4) + '@tiptap/extension-table': 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4) + '@tiptap/extension-table-cell': 2.2.4(@tiptap/core@2.2.4) + '@tiptap/extension-table-header': 2.2.4(@tiptap/core@2.2.4) + '@tiptap/extension-table-row': 2.2.4(@tiptap/core@2.2.4) + '@tiptap/extension-task-item': 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4) + '@tiptap/extension-task-list': 2.2.4(@tiptap/core@2.2.4) + '@tiptap/extension-typography': 2.2.4(@tiptap/core@2.2.4) + '@tiptap/html': 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4) + '@tiptap/pm': 2.2.4 + '@tiptap/starter-kit': 2.2.4(@tiptap/pm@2.2.4) + '@tiptap/suggestion': 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4) + '@types/body-parser': 1.19.5 + '@types/compression': 1.7.5 + '@types/cors': 2.8.17 + '@types/express': 4.17.21 + '@types/express-fileupload': 1.4.4 + '@types/jest': 29.5.12 + '@types/markdown-it': 13.0.8 + '@types/node': 20.11.19 + '@types/uuid': 8.3.4 + '@types/ws': 8.5.11 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + body-parser: 1.20.2 + cors: 2.8.5 + cross-env: 7.0.3 + dotenv: 16.0.3 + esbuild: 0.20.1 + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + express: 4.19.2 + fast-equals: 5.0.1 + graphql: 16.9.0 + graphql-binding: 2.5.2 + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + markdown-it: 14.0.0 + mongodb: 6.8.0 + octokit: 3.2.1 + prettier: 3.2.5 + smee-client: 1.2.5 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + ts-node: 10.9.2(@types/node@20.11.19)(typescript@5.3.3) + typescript: 5.3.3 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + transitivePeerDependencies: + - '@aws-sdk/credential-providers' + - '@babel/core' + - '@jest/types' + - '@mongodb-js/zstd' + - '@swc/core' + - '@swc/wasm' + - babel-jest + - babel-plugin-macros + - bufferutil + - gcp-metadata + - kerberos + - mongodb-client-encryption + - node-notifier + - snappy + - socks + - supports-color + - utf-8-validate + - y-prosemirror + dev: false + + file:projects/pod-gmail.tgz(bufferutil@4.0.8)(ts-node@10.9.2)(utf-8-validate@6.0.4): + resolution: {integrity: sha512-EgPrNV5SyE8PVkKfTc30asvvzcTaDEZnQ1krUOi8rIzQcgLuPIRgMwTc6yuqu3SAzC2zPrwudTMqzDPpwJTRxw==, tarball: file:projects/pod-gmail.tgz} + id: file:projects/pod-gmail.tgz + name: '@rush-temp/pod-gmail' + version: 0.0.0 + dependencies: + '@tsconfig/node16': 1.0.4 + '@types/cors': 2.8.17 + '@types/express': 4.17.21 + '@types/jest': 29.5.12 + '@types/node': 20.11.19 + '@types/node-fetch': 2.6.11 + '@types/ws': 8.5.11 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + cors: 2.8.5 + dotenv: 16.0.3 + esbuild: 0.20.1 + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-node: 11.1.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + express: 4.19.2 + fast-equals: 5.0.1 + file-api: 0.10.4 + form-data: 4.0.0 + gaxios: 5.1.3 + google-auth-library: 8.9.0 + googleapis: 122.0.0 + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + jwt-simple: 0.5.6 + mongodb: 6.8.0 + node-fetch: 2.7.0 + prettier: 3.2.5 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + ts-node-dev: 2.0.0(@types/node@20.11.19)(typescript@5.3.3) + typescript: 5.3.3 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + transitivePeerDependencies: + - '@aws-sdk/credential-providers' + - '@babel/core' + - '@jest/types' + - '@mongodb-js/zstd' + - '@swc/core' + - '@swc/wasm' + - babel-jest + - babel-plugin-macros + - bufferutil + - encoding + - gcp-metadata + - kerberos + - mongodb-client-encryption + - node-notifier + - snappy + - socks + - supports-color + - ts-node + - utf-8-validate + dev: false + + file:projects/pod-love.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4): + resolution: {integrity: sha512-h64U5de7eDYWI5zbLFQtUEArWz+OVeQ3BWtCd2yy9Yw3uzgPOE+etmib6KtcC0MEcDSl3ZNN0UOrV1IDQzy+nQ==, tarball: file:projects/pod-love.tgz} + id: file:projects/pod-love.tgz + name: '@rush-temp/pod-love' + version: 0.0.0 + dependencies: + '@tsconfig/node16': 1.0.4 + '@types/cors': 2.8.17 + '@types/express': 4.17.21 + '@types/jest': 29.5.12 + '@types/node': 20.11.19 + '@types/uuid': 8.3.4 + '@types/ws': 8.5.11 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + cors: 2.8.5 + dotenv: 16.0.3 + esbuild: 0.20.1 + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-node: 11.1.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + express: 4.19.2 + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + jwt-simple: 0.5.6 + livekit-server-sdk: 2.6.0 + prettier: 3.2.5 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + ts-node: 10.9.2(@types/node@20.11.19)(typescript@5.3.3) + typescript: 5.3.3 + uuid: 8.3.2 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@swc/core' + - '@swc/wasm' + - babel-jest + - babel-plugin-macros + - bufferutil + - node-notifier + - supports-color + - utf-8-validate + dev: false + + file:projects/pod-print.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4): + resolution: {integrity: sha512-R5/pYQyA+eel7D9xg8BETAPFIpV0RbV2XsrhAlSMnljb7p1PORRK9lOaAVR/YGvsG3E2YCkyT7czM3jKXzrBog==, tarball: file:projects/pod-print.tgz} + id: file:projects/pod-print.tgz + name: '@rush-temp/pod-print' + version: 0.0.0 + dependencies: + '@tsconfig/node16': 1.0.4 + '@types/cors': 2.8.17 + '@types/express': 4.17.21 + '@types/jest': 29.5.12 + '@types/node': 20.11.19 + '@types/ws': 8.5.11 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + cors: 2.8.5 + dotenv: 16.0.3 + esbuild: 0.20.1 + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-node: 11.1.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + express: 4.19.2 + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + mammoth: 1.8.0 + prettier: 3.2.5 + puppeteer: 22.14.0(bufferutil@4.0.8)(typescript@5.3.3)(utf-8-validate@6.0.4) + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + ts-node: 10.9.2(@types/node@20.11.19)(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@swc/core' + - '@swc/wasm' + - babel-jest + - babel-plugin-macros + - bufferutil + - node-notifier + - supports-color + - utf-8-validate + dev: false + file:projects/pod-server.tgz: - resolution: {integrity: sha512-XoIVqsoRTp9S4Pn4XFHZJODjWt0EtAp/yhFw5QkINxMOaAN6Wr7uiFuXngkbe52JQbvx2pJ39WNnEXwMi5s40w==, tarball: file:projects/pod-server.tgz} + resolution: {integrity: sha512-SKYUU6rZD72X+TPRSMr2uaiNrrFE686lm0Ds5ZTObKaPflbXfOua6hR//f4i7YstbNeNMwCTm73OSfkqLsTOXA==, tarball: file:projects/pod-server.tgz} name: '@rush-temp/pod-server' version: 0.0.0 dependencies: @@ -23202,6 +29021,7 @@ packages: elastic-apm-node: 3.26.0 esbuild: 0.20.1 eslint: 8.56.0 + eslint-config-prettier: 8.10.0(eslint@8.56.0) eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: 2.29.1(eslint@8.56.0) eslint-plugin-n: 15.7.0(eslint@8.56.0) @@ -23223,6 +29043,168 @@ packages: - supports-color dev: false + file:projects/pod-ses.tgz: + resolution: {integrity: sha512-4NK99adA3u9ZU6yOeB+H9gavGw+/B+S0+Qkb1ubRQ4t1YUC7oeVTub7A1PUVAf3CyqAjp7lBTwwtGBXwyYpTxw==, tarball: file:projects/pod-ses.tgz} + name: '@rush-temp/pod-ses' + version: 0.0.0 + dependencies: + '@tsconfig/node16': 1.0.4 + '@types/cors': 2.8.17 + '@types/express': 4.17.21 + '@types/jest': 29.5.12 + '@types/node': 20.11.19 + '@types/ws': 8.5.11 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + aws-sdk: 2.1664.0 + cors: 2.8.5 + cross-env: 7.0.3 + dotenv: 16.0.3 + esbuild: 0.20.1 + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-node: 11.1.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + express: 4.19.2 + got: 11.8.6 + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + prettier: 3.2.5 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + ts-node: 10.9.2(@types/node@20.11.19)(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@swc/core' + - '@swc/wasm' + - babel-jest + - babel-plugin-macros + - node-notifier + - supports-color + dev: false + + file:projects/pod-sign.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4): + resolution: {integrity: sha512-kceqIYAazdwqnkcouhx4BZzUIJ1cxvYas4XtukNGHEB1Sc+mK+mag390ljMcM6fSHSZz9Ix1ke0OZGmNqbCTCQ==, tarball: file:projects/pod-sign.tgz} + id: file:projects/pod-sign.tgz + name: '@rush-temp/pod-sign' + version: 0.0.0 + dependencies: + '@signpdf/placeholder-pdf-lib': 3.2.4(pdf-lib@1.17.1) + '@signpdf/signer-p12': 3.2.4(node-forge@1.3.1) + '@signpdf/signpdf': 3.2.4 + '@signpdf/utils': 3.2.4 + '@tsconfig/node16': 1.0.4 + '@types/cors': 2.8.17 + '@types/express': 4.17.21 + '@types/jest': 29.5.12 + '@types/node': 20.11.19 + '@types/ws': 8.5.11 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + cors: 2.8.5 + dotenv: 16.0.3 + esbuild: 0.20.1 + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-node: 11.1.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + express: 4.19.2 + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + mongodb: 6.8.0 + node-forge: 1.3.1 + pdf-lib: 1.17.1 + prettier: 3.2.5 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + ts-node: 10.9.2(@types/node@20.11.19)(typescript@5.3.3) + typescript: 5.3.3 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + transitivePeerDependencies: + - '@aws-sdk/credential-providers' + - '@babel/core' + - '@jest/types' + - '@mongodb-js/zstd' + - '@swc/core' + - '@swc/wasm' + - babel-jest + - babel-plugin-macros + - bufferutil + - gcp-metadata + - kerberos + - mongodb-client-encryption + - node-notifier + - snappy + - socks + - supports-color + - utf-8-validate + dev: false + + file:projects/pod-telegram.tgz(bufferutil@4.0.8)(ts-node@10.9.2)(utf-8-validate@6.0.4): + resolution: {integrity: sha512-qt/UwzvrmgaVI2yI5vdGPHaghv5JF+ysgUY9GwwarkzqlZNBScnUo262CYNWy26iPdhVqNbvGYPrAgVecGHBFg==, tarball: file:projects/pod-telegram.tgz} + id: file:projects/pod-telegram.tgz + name: '@rush-temp/pod-telegram' + version: 0.0.0 + dependencies: + '@tsconfig/node16': 1.0.4 + '@types/cors': 2.8.17 + '@types/express': 4.17.21 + '@types/jest': 29.5.12 + '@types/mime': 3.0.4 + '@types/node': 20.11.19 + '@types/node-fetch': 2.6.11 + '@types/ws': 8.5.11 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + big-integer: 1.6.52 + bson: 6.8.0 + cors: 2.8.5 + dotenv: 16.0.3 + esbuild: 0.20.1 + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + express: 4.19.2 + form-data: 4.0.0 + htmlparser2: 9.1.0 + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + jwt-simple: 0.5.6 + mime: 3.0.0 + mongodb: 6.8.0 + node-fetch: 2.7.0 + prettier: 3.2.5 + telegram: 2.22.2 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + ts-node-dev: 2.0.0(@types/node@20.11.19)(typescript@5.3.3) + ts-standard: 12.0.2(typescript@5.3.3) + typescript: 5.3.3 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + transitivePeerDependencies: + - '@aws-sdk/credential-providers' + - '@babel/core' + - '@jest/types' + - '@mongodb-js/zstd' + - '@swc/core' + - '@swc/wasm' + - babel-jest + - babel-plugin-macros + - bufferutil + - encoding + - gcp-metadata + - kerberos + - mongodb-client-encryption + - node-notifier + - snappy + - socks + - supports-color + - ts-node + - utf-8-validate + dev: false + file:projects/preference-assets.tgz(esbuild@0.20.1)(ts-node@10.9.2): resolution: {integrity: sha512-VlBSKBg3XmuMLtxNAS703aS+dhhb5a7H5Ns2nzhhv7w3KlAqtwp6cQ5VLxceNuRaPbTtI+2K+YkjFb2S1ld5VQ==, tarball: file:projects/preference-assets.tgz} id: file:projects/preference-assets.tgz @@ -23443,11 +29425,12 @@ packages: dev: false file:projects/prod.tgz(bufferutil@4.0.8)(sass@1.71.1)(ts-node@10.9.2)(utf-8-validate@6.0.4): - resolution: {integrity: sha512-ALcGhikSF7a0YF6j81P1X3YX9B7x+Pu+wCS5mNa4YgcJEod+A7uGhAMcqBXHUsYsBvbJ1aymocOD88ACDDWEUQ==, tarball: file:projects/prod.tgz} + resolution: {integrity: sha512-nTK4PWGg4h8wB67Ax8fO8iqUg1fOr8JhCgNTuz2o6VqTFnk7cDEc2k9FuYkdSho6HelRqEFcKGkmXsZEAungXQ==, tarball: file:projects/prod.tgz} id: file:projects/prod.tgz name: '@rush-temp/prod' version: 0.0.0 dependencies: + '@sentry/svelte': 7.101.1(svelte@4.2.12) '@types/node': 20.11.19 autoprefixer: 10.4.17(postcss@8.4.35) browserslist: 4.21.5 @@ -23464,6 +29447,7 @@ packages: postcss: 8.4.35 postcss-load-config: 4.0.2(postcss@8.4.35)(ts-node@10.9.2) postcss-loader: 7.3.4(postcss@8.4.35)(typescript@5.3.3)(webpack@5.90.3) + posthog-js: 1.122.0 sass-loader: 13.3.3(sass@1.71.1)(webpack@5.90.3) style-loader: 3.3.4(webpack@5.90.3) svelte: 4.2.12 @@ -23609,6 +29593,51 @@ packages: - ts-node dev: false + file:projects/qms-doc-import-tool.tgz: + resolution: {integrity: sha512-s2EDYV09exzo01lbGDlzMq9D0cx2OILHS8bqQCgntVVWEK9nQypMd4gi/nCbmVhyHRapQih7D81Nf6zuSUohJg==, tarball: file:projects/qms-doc-import-tool.tgz} + name: '@rush-temp/qms-doc-import-tool' + version: 0.0.0 + dependencies: + '@types/domhandler': 2.4.5 + '@types/htmlparser2': 3.10.7 + '@types/jest': 29.5.12 + '@types/minio': 7.0.18 + '@types/node': 20.11.19 + '@types/node-fetch': 2.6.11 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + commander: 8.3.0 + cross-env: 7.0.3 + domhandler: 5.0.3 + domutils: 3.1.0 + esbuild: 0.20.1 + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + form-data: 4.0.0 + htmlparser2: 9.1.0 + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + mammoth: 1.8.0 + node-fetch: 2.7.0 + prettier: 3.2.5 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + ts-node: 10.9.2(@types/node@20.11.19)(typescript@5.3.3) + typescript: 5.3.3 + zod: 3.23.8 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@swc/core' + - '@swc/wasm' + - babel-jest + - babel-plugin-macros + - encoding + - node-notifier + - supports-color + dev: false + file:projects/qms-tests-sanity.tgz: resolution: {integrity: sha512-2NJnLTGNRdrMXybXslRQNNCyyDLmsA069UyXn8uBG/WQaMHzr9rTXvtRpltXSfgCn+WAc8VidyT68O6J8RAPQA==, tarball: file:projects/qms-tests-sanity.tgz} name: '@rush-temp/qms-tests-sanity' @@ -23913,6 +29942,69 @@ packages: - ts-node dev: false + file:projects/rekoni-service.tgz(webpack@5.90.3): + resolution: {integrity: sha512-gL/GzTK+Tojt7wj5A5jeMnbmSQBiEdZnnp5h0h2zpIirV6mjQ0kM1kSLuFAA938dx72yGh21+ZNnH5uj12/70A==, tarball: file:projects/rekoni-service.tgz} + id: file:projects/rekoni-service.tgz + name: '@rush-temp/rekoni-service' + version: 0.0.0 + dependencies: + '@anticrm/skillset': 0.6.0 + '@types/body-parser': 1.19.5 + '@types/cors': 2.8.17 + '@types/email-addresses': 3.0.0 + '@types/express': 4.17.21 + '@types/express-form-data': 2.0.5 + '@types/html-to-text': 8.1.1 + '@types/jest': 29.5.12 + '@types/jimp': 0.2.28 + '@types/mime-types': 2.1.4 + '@types/node': 20.11.19 + '@types/pdfjs-dist': 2.10.378 + '@types/sharp': 0.32.0 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + body-parser: 1.20.2 + cors: 2.8.5 + dotenv: 16.0.3 + email-addresses: 5.0.0 + esbuild: 0.20.1 + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-node: 11.1.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + express: 4.19.2 + express-form-data: 2.0.23 + html-to-text: 9.0.5 + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + jimp: 0.16.13 + jwt-simple: 0.5.6 + libphonenumber-js: 1.10.56 + mammoth: 1.8.0 + mime-types: 2.1.35 + node-loader: 2.0.0(webpack@5.90.3) + pdfjs-dist: 2.12.313 + prettier: 3.2.5 + sharp: 0.32.6 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + ts-node: 10.9.2(@types/node@20.11.19)(typescript@5.3.3) + ts-node-dev: 2.0.0(@types/node@20.11.19)(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@swc/core' + - '@swc/wasm' + - babel-jest + - babel-plugin-macros + - debug + - node-notifier + - supports-color + - webpack + - worker-loader + dev: false + file:projects/rekoni.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2): resolution: {integrity: sha512-fAbU5FuiRiyTcpY+UYcTTAbwEqZxsetdvk992xSzJ5xePHrIlzZbX3aVcqJCEFm3OBx6yXZH0Wq33RVQImHxhA==, tarball: file:projects/rekoni.tgz} id: file:projects/rekoni.tgz @@ -24180,6 +30272,66 @@ packages: - ts-node dev: false + file:projects/server-analytics-collector-resources.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2): + resolution: {integrity: sha512-cLqoyrE7bZmjUeQSenTvg0S2XdEUUulUTMYvYephOUR5orzG71xy3Z+HgV92YapcZMzi9RVdaataHwYhxTRDPw==, tarball: file:projects/server-analytics-collector-resources.tgz} + id: file:projects/server-analytics-collector-resources.tgz + name: '@rush-temp/server-analytics-collector-resources' + version: 0.0.0 + dependencies: + '@types/jest': 29.5.12 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + prettier: 3.2.5 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + dev: false + + file:projects/server-analytics-collector.tgz(esbuild@0.20.1)(ts-node@10.9.2): + resolution: {integrity: sha512-RjYH7HxF3sqneNJUW4a/+PgKne3vojOGq8gPZBC7K0HFQY7EJkC3Y1xeFs9eTJLOYk94zCb5ktlQDAJ2H38FIQ==, tarball: file:projects/server-analytics-collector.tgz} + id: file:projects/server-analytics-collector.tgz + name: '@rush-temp/server-analytics-collector' + version: 0.0.0 + dependencies: + '@types/jest': 29.5.12 + '@types/node': 20.11.19 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + prettier: 3.2.5 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + dev: false + file:projects/server-attachment-resources.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2): resolution: {integrity: sha512-RWTp9dIA34k7jSIcNEGnbZzTB9xV8jnozdIkL1cTbAoxgLX/6l2wYLm/prR3CsOOB5mJwWfGoFPNE0Do1QE45w==, tarball: file:projects/server-attachment-resources.tgz} id: file:projects/server-attachment-resources.tgz @@ -24781,6 +30933,84 @@ packages: - ts-node dev: false + file:projects/server-github-model.tgz: + resolution: {integrity: sha512-1qQ8IXhyHSiV5P+M7sGq0QHkkAG2n2DK3knDQJv/xzOQamJ6kcr2nlaqtAD48LfO1wVTtUkjwYwE9RbAEgpl5w==, tarball: file:projects/server-github-model.tgz} + name: '@rush-temp/server-github-model' + version: 0.0.0 + dependencies: + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + prettier: 3.2.5 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: false + + file:projects/server-github-resources.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2): + resolution: {integrity: sha512-SJP95etRPH37ut50Ds6WZk6AUf6+TebCdwZJ3jqlqkCmB0Vhr1cW5cH25vJwPWMSoU0x/TlLV6NDmXZQfONbYw==, tarball: file:projects/server-github-resources.tgz} + id: file:projects/server-github-resources.tgz + name: '@rush-temp/server-github-resources' + version: 0.0.0 + dependencies: + '@types/jest': 29.5.12 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + prettier: 3.2.5 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - '@types/node' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + dev: false + + file:projects/server-github.tgz(esbuild@0.20.1)(ts-node@10.9.2): + resolution: {integrity: sha512-u2n1TQZlNrcvTLjVzfYfHNn63IjChpiu3dvpcsSrkLyFgQCMOtVA7PSpMDOoe9IwpKAzz6VFsHukF5eCYpAkWw==, tarball: file:projects/server-github.tgz} + id: file:projects/server-github.tgz + name: '@rush-temp/server-github' + version: 0.0.0 + dependencies: + '@types/jest': 29.5.12 + '@types/node': 20.11.19 + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard-with-typescript: 40.0.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-import: 2.29.1(eslint@8.56.0) + eslint-plugin-n: 15.7.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + jest: 29.7.0(@types/node@20.11.19)(ts-node@10.9.2) + prettier: 3.2.5 + ts-jest: 29.1.2(esbuild@0.20.1)(jest@29.7.0)(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - '@babel/core' + - '@jest/types' + - babel-jest + - babel-plugin-macros + - esbuild + - node-notifier + - supports-color + - ts-node + dev: false + file:projects/server-gmail-resources.tgz(@types/node@20.11.19)(esbuild@0.20.1)(ts-node@10.9.2): resolution: {integrity: sha512-jc5tLhz7YJs4Nw0dwPgOpZnZA+wMstl6Vt3BuL5BOE8iMTeUTZP1fKJXf6pGVeZAGEaYzayHM9Jmw+S45/l9MQ==, tarball: file:projects/server-gmail-resources.tgz} id: file:projects/server-gmail-resources.tgz diff --git a/desktop-package/.env b/desktop-package/.env new file mode 100644 index 0000000000..ab09a13b80 --- /dev/null +++ b/desktop-package/.env @@ -0,0 +1,3 @@ +# APPLE_ID=team-member-apple-id +# APPLE_ID_APP_PASS=team-members-app-pass +# TEAM_ID=apple-dev-team-id \ No newline at end of file diff --git a/desktop-package/config/rig.json b/desktop-package/config/rig.json new file mode 100644 index 0000000000..b58354496a --- /dev/null +++ b/desktop-package/config/rig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig", + "rigProfile": "package" +} diff --git a/desktop-package/entitlements.mac.plist b/desktop-package/entitlements.mac.plist new file mode 100644 index 0000000000..7eb1b07f18 --- /dev/null +++ b/desktop-package/entitlements.mac.plist @@ -0,0 +1,14 @@ + + + + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.allow-jit + + com.apple.security.device.audio-input + + com.apple.security.device.camera + + + diff --git a/desktop-package/package.json b/desktop-package/package.json new file mode 100644 index 0000000000..4285b1a0b5 --- /dev/null +++ b/desktop-package/package.json @@ -0,0 +1,97 @@ +{ + "name": "desktop", + "version": "0.6.266", + "main": "dist/main/electron.js", + "author": "Hardcore Engineering ", + "template": "@hcengineering/default-package", + "scripts": { + "_phase:package": "rushx package", + "package": "rushx bump && rm -rf ./dist && cp -r ../desktop/dist . && cp ../desktop/.env ./dist && echo 'done'", + "dist": "cross-env CSC_IDENTITY_AUTO_DISCOVERY=false NODE_ENV=production MODEL_VERSION=$(node ../common/scripts/show_version.js) electron-builder build -p onTag", + "dist-local": "cross-env CSC_IDENTITY_AUTO_DISCOVERY=false NODE_ENV=production MODEL_VERSION=$(node ../common/scripts/show_version.js) electron-builder build", + "dist-signed": "cross-env CSC_IDENTITY_AUTO_DISCOVERY=true NODE_ENV=production MODEL_VERSION=$(node ../common/scripts/show_version.js) electron-builder build -c.afterSign=scripts/notarize.js -p onTag", + "dist-mac-win": "cross-env CSC_IDENTITY_AUTO_DISCOVERY=false NODE_ENV=production MODEL_VERSION=$(node ../common/scripts/show_version.js) electron-builder build --windows --x64", + "format": "echo done", + "bump": "bump-package-version" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0", + "@hcengineering/desktop": "^0.6.0", + "@vercel/webpack-asset-relocator-loader": "^1.7.3", + "node-loader": "~2.0.0", + "cross-env": "~7.0.3", + "typescript": "^5.3.3", + "electron": "^31.3.0", + "@types/node": "~20.11.16", + "electron-builder": "^24.13.3", + "@electron/notarize": "^2.3.2" + }, + "dependencies": { + "electron-squirrel-startup": "~1.0.0", + "dotenv": "~16.0.0" + }, + "homepage": "https://huly.io/", + "productName": "Huly Desktop", + "description": "Huly Desktop experience", + "build": { + "productName": "Huly", + "appId": "hc.hcengineering.Huly", + "directories": { + "output": "deploy" + }, + "files": [ + "./dist/**" + ], + "mac": { + "category": "public.app-category.utilities", + "artifactName": "Huly-macos-${version}-${arch}.${ext}", + "target": "default", + "icon": "./src/AppIcon.icns", + "hardenedRuntime": true, + "entitlements": "./entitlements.mac.plist", + "entitlementsInherit": "./entitlements.mac.plist", + "notarize": false, + "publish": { + "provider": "s3", + "bucket": "desktop-distro", + "endpoint": "https://47fadbaa4ecbea9f3e8b7043a4584e27.r2.cloudflarestorage.com", + "channel": "latest" + } + }, + "win": { + "target": [ + "zip", + "nsis" + ], + "artifactName": "Huly-windows-${version}.${ext}", + "verifyUpdateCodeSignature": false, + "icon": "./src/AppIcon.png", + "publish": { + "provider": "s3", + "bucket": "desktop-distro", + "endpoint": "https://47fadbaa4ecbea9f3e8b7043a4584e27.r2.cloudflarestorage.com", + "channel": "latest" + } + }, + "linux": { + "artifactName": "Huly-linux-${version}.${ext}", + "target": [ + "AppImage", + "deb", + "zip" + ], + "category": "Utility", + "publish": { + "provider": "s3", + "bucket": "desktop-distro", + "endpoint": "https://47fadbaa4ecbea9f3e8b7043a4584e27.r2.cloudflarestorage.com", + "channel": "latest" + } + } + }, + "keywords": [ + "electron", + "typescript", + "svelte" + ] +} diff --git a/desktop-package/readme.md b/desktop-package/readme.md new file mode 100644 index 0000000000..39f8a7cd00 --- /dev/null +++ b/desktop-package/readme.md @@ -0,0 +1,9 @@ +## Automatomatic updates + +All builds are published to R2 storage bucket avaialble at https://dist.huly.io + +To check the latest auto-updatable distributions see + +* MacOS: https://dist.huly.io/latest-mac.yml +* Linux: https://dist.huly.io/latest-linux.yml +* Windows: https://dist.huly.io/latest.yml diff --git a/desktop-package/scripts/notarize.js b/desktop-package/scripts/notarize.js new file mode 100644 index 0000000000..a39a9b8fd6 --- /dev/null +++ b/desktop-package/scripts/notarize.js @@ -0,0 +1,19 @@ +require('dotenv').config(); +const { notarize } = require('@electron/notarize'); + +exports.default = async function notarizing(context) { + const { electronPlatformName, appOutDir } = context; + if (electronPlatformName !== 'darwin') { + return; + } + + const appName = context.packager.appInfo.productFilename; + + console.log('Starting custom notarization process...') + return await notarize({ + appPath: `${appOutDir}/${appName}.app`, + appleId: process.env.APPLE_ID, + appleIdPassword: process.env.APPLE_ID_APP_PASS, + teamId: process.env.TEAM_ID + }); +}; diff --git a/desktop-package/scripts/publish-version.sh b/desktop-package/scripts/publish-version.sh new file mode 100755 index 0000000000..06fabf74b4 --- /dev/null +++ b/desktop-package/scripts/publish-version.sh @@ -0,0 +1,12 @@ +#!/bin/bash +endpoint=https://47fadbaa4ecbea9f3e8b7043a4584e27.r2.cloudflarestorage.com +bucket=desktop-distro +rawVersion=$(node common/scripts/show_version.js) +version=${rawVersion:1:${#rawVersion}-2} + +cd desktop-package/deploy +aws s3api put-object --endpoint $endpoint --bucket $bucket --key ${version}-mac.yml --body latest-mac.yml --acl public-read 2>&1 > /dev/null +aws s3api put-object --endpoint $endpoint --bucket $bucket --key ${version}-linux.yml --body latest-linux.yml --acl public-read 2>&1 > /dev/null +aws s3api put-object --endpoint $endpoint --bucket $bucket --key ${version}.yml --body latest.yml --acl public-read 2>&1 > /dev/null + +echo Successully published version ${version} to ${endpoint}/${bucket} diff --git a/desktop-package/src/AppIcon.icns b/desktop-package/src/AppIcon.icns new file mode 100644 index 0000000000000000000000000000000000000000..4ade8c3e54cb3103c288999bdf9504a2b0cff673 GIT binary patch literal 1143504 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

5s3&T!M2 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

N^1Ef%*Tby;fOmkQdj^C7H6w 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

F_b89e_aCQc1|b~UsG8H%aCN=1!O!X|wumHsYs zGFe)+JjQYROAOqiLDEIh<;~5PFEQk%x@F&f*QvXq(?CartN2-)_<)M>@JmKdXmMo5&|%xP34-oYCa{)lJj2jEjFog;mx$Zu>}( z-1cb*il6DBW3JW3xEU=WZr`(ii$n*cSwLG##F1Qx1=LFSe8VsZ+T(l3)qD-yYk2k- zxS}Lwb|W``M`<=YOV#|ETA9ya`cvU?sM^5sbEab zVsf1K?wYE^R=XHnvHTCdKQv%J5=6R3N8B&NT7|b3^r3d1+_-7SY`LUHB@EWGfvxG? z!}!SGO)aH;T8lV_H0scD$etnK_L>FA12?>R-2u41Mwheu{7nW*fAtoGb_1X>GFpbc z6mGmmWo9!`1JB_8%K*@Nb7F_d%4@%~HTr7L(kKvn!g2 zQJ1qmaB^y52{$@2Q=3p+$76*Wqb)^p;9E2ZAPSxgx;%h%*RkJiG5*h z*kzflDT1iS!%3+JFM%Pw-VKl3+~CbQk@W3xkdbBlw(>jL)9zJIe27Rk6xZt}xK$VM z@cwR+7rlnz(Fng~uJfhoA=UN&ve80gGE~e2rxSG5X$X(=vLph&Cnd7iO&hbc6aV`| z%?^`KuwumjVA)St+T)Ao1o+lSV9lcDN|de|(|YvM1hbegQ4>$Kaci!9iGnQohYXmu z?ELRHn3RLp1#f=##};c@73s~jSIt7};S-e=Rf=u1EgbtHVlNeWNp&JB#$hm9Y25Y` zaUkQvycWzNbt7}_=H42(iU3S>0X3H+_j8wdgLVO~%ev@M2qqd}`%!5>(ipD9^=yLe z2S-Gt=9Q(yCiVMws_F->hX$*EJTB_v-$`$#(#hNnX zU|isW@4>A_xKaM{PVuQo6T#D+H#CEgRE%~47tU~r&KlN*8scGQPMsNrj|J~_yjgW@ zYL$HN2d@KjZ)Ym+B>}=z9dCo$AKTlUXHCXm{P8_CukWW>v}gwdR(tujPlkm&YG|&) z8ebE%oB;aZ5n>c+kT50 zVlA!S*GvA{*QNrP7gC?=*%q|D!)wV(Pe@*~!`Yib9wt>e*qh%9Bkt7i>i7*h2G`x* z(-QVbb1)t5eW4po4dh!^ZM?S#Biy4Lj#iOg`ezBzT#V-d~2n>xa{8z24ma9rH%~`bI-6>bpJiD zN%O+&FMuZN7QhR=_G8pvi|g$XP$x(L)xz|+;c?H07~TFta}Vz|CI5b7i;^C+1#T^* zaN$|w*egbuc)pBqWc<23#$xRHZ2g6pvz0^3LfxzBG~T*WQ6bS_@^gN}bE{LwAXi?NNDujUmG5@f@PBl- zOFX`j!3W|6jll(=uvgNI$n6n8gf!%!pA05ZVfX>?WgW(FS}Jv0w#@;QBZHq-J=W*W zFQc>fLs>Jrr{0Jj*CI(h4x;TN_G>k6`YnAgoQthI7@W=G860{vi(#zF2+-K+c)|Gs+(3F(@q`4&;PQj zH6YNxH0iv#civ#w^850!-otk0dL|(TU7mTLxmo0imbajBpFD&?+LT$gD2>%1GJ<+PQL1A7q4=4++{hUbu!DUmJk&ACd@GJd|}(7`7An% z;pIoA=hVA`(f&QT1w5?k*I#1^=f@j6AOB*R5D^A1&x(ndyt(?ULtqERg4VVbo)cn9 zJlq6_h~BfRNsK`yF`v%aqde1Li0dNA+Bs0w9!2K8h%ye|hzdluodA^pwk?IjNWTze zd*u06u5<+Imv`trHn8eI0FuBediP-o$I6^_hO3 zE46m;qB&yUq~xj+d>clUr9UMd^!Zsyit*z|-9K-AlsU#^KhhTds}NbZD>bMem%u;x z*`N8OpmJ$tPqQA^82svO2XjEp%sehX)i^Q<6tcdq^?1x89deM6fcR^O*y94efMz_k zxd4KWul<8}_ED1=sNt1skgqqvmEv{Eke^_LaVw{NKZ~V_>JU5@OtMAFg`+>gnl)LeyG48ismO1X0vEzU2IT>x)Q7V z$$aad#gy)?YJ7}-wlw^tTGzl0xihh_`#@|npN5PDwExYasu>zCS%Gr3fQ?OO`6_pp z0#^R3>bzlfz?e`*_=82{CBfLLyR_vbAs=@IDFaz&cpmUBg1cod68sh>B7NqGPIeqi8V0z5bx{DY84wR=JY(GF{?S0vgmip)4q`frQY67xxhX|6M~sh9QU3JPFewpVWa0k#lo#ioP7_p^+y|hJ43%t zr{T|sE`PH3Umz=ID! z@4j$YBsF$oDbIJQc1gZ<6XRg`gKX>K%z4z-CwlkSyFp^Abp8Y2CXpHOr^AEaMtF>p z{Irrh!|})1(~g7bnezQS?5zyEVc#{Ax-AMOlWsc&DZ9j<86nD)mFM(3tIi0AWVD#o zmC4|i=3{Iq(#HW>I3g32uJ!%0=*h}8aHA7|E`?lF?f8Ks`gLvBK=4rV0H}C~avEYC zk!JHHWJ2jK2ikfr+#axY?T4+2AW65(E9=N5m~!l{W2kxcK_VdcL4zf|p17#XdNfrj zzELc-&D=tF`-nWwL>F4^UEgB--$T|)Wt88zN*cx+;QUZE$Poa zS!7o=&1-wm=?wDoI-V0ajT~Iq1OU{O^Y&Sfa7}=(*_U(tQr(LH@d9*=OAKAEPTJRZEkhwekef*uEZPbiX|!V+&EftQQraM;?~`%QJy5IMTE2%7E44F z&o51ku}zR_P0%0(q1TQ8G9=U72HLRt;U49`1XzcyQ{Ka$ z!~JIyUQ)(8P^q3nXAX8&zD6{ZDxK)@$__HPn}o9k_Q*_leL&p$kR`%mYVs{6WHWp%5s8?DK+$W{ogn$M6MuBuLCFm=dRG^GcX^iBv|CA` zyfUM8(G$gaYqVr)T|2hiPb)lSx-hJNWB1Ckr=eyd%qTTF@qF+-?_7h2R0j~hPO~)d z-Bz-{?rpu!!dd8__lsYj@=-aqRn3&jo!hVSP#NP4Hr5MYbCZq@_)uB)%M_|i)?(z) zvGd|fCn^>5MAPR>+x7Ls8U|hr=h%k&27I91O)i1|B($R8M{A+}7JsdKGLL&#H|so1 z-bL7l_|?#6KT%lGzg^5^p2~eN#L~gZOOi-#(yCY%k=;t-Aaur1CfO&aMt|a6Lb-qs z;1?#6IQ#m*$E?-z^}F36n-93e#^g>(a}Y-^9EvU2mh{ctlG_3^EM`9#m`#c}MbKf7 z2~YmHvhm&S2!^|3A7F!qxkN`%a}OiUNd?40?zCb)N);QUr(j?oDflLYNU3 z)*wPPwv6m20j&NVo2%Lsah^o5I7ghdZ!1GDos}Mu8{*Sub%=ivjH|-Ua&mb;kx2si zlL1*``t*tBo$x}1Or@knC{PL+R#x81{S=ty%G-3AIuN7q0C2zj%}K>7^m{F70G#3T z&UrQ9h-6eb==17^9LDqni z-|WocMQn22b)&Ef>c{W>UoV}{mb9IG)6KOswYN22B!9@2#9A7-HOHM}X1jpx@`{%k z>!KbmckZMW0T#9+LDZo>J%$vxck^ug-}K%1e)+2AFI5Btn5^L`%+7yKl!K&&a2_>u z)^?UUG~!m$;yX7IzR_10O_?|qLQSf@&bL__cg?S{goR5Y2tM!tF?iXAD_tjH;Ly;+&vaeg| z(Fu@+)b9z$wVolR#9jF&sBpSG*UwU5R$J@zKc!K~kAhxSz=Ae+#Am<0wTE4PlR#~M zD8`Nqt>b+P>V#oBLjgK>EKpGd=u)x+c!LCv>)e@Apye-YP9ggtfG%}{*5pU4Uo4DI zow-h=i(4r_=JUT9R(*&lihon>P6~agnIkgF0C!Gz#mZz^MEJAtcu># zTSWTtAEq!1HlCzpMVPjoVU+p;?^Yg@-OyN?#OfG*c7#=iN~Ru3muL$k6m-QWtY6Xy~3E z#O5l5Wej_VuDO$<-Juxb%Q_4RfUTeBWSFb0Pub&vPRh)_6>L9p(>=2_(;XU&XwLh$DZ- zs?*VXOtI3NW_$*hWv_%=?tQC&RuTB*SVaoE$`S7WO9o+Ib&v^QxiufZnL^85+(ZWL zETIn!pzWP75F>cP8Use2u>edLIv%M@CXB1R{X*6%R_>k)lU!X8D0$e#PGuE^iQ&HC zG*fX2!2w$_QgNiy#pI3b?f-i zIHYJ(6;a{NNXSkJuK+XRB|z|Y?aUi>q1$m+SBZV$s0HR>SIXYQDns(RF#lL4r_h-C z5VQ+_j@APf2pY`rr;GTMPztQFz4&S9^X&h#0G>IX;gu}^ zvZke+2vTFWWQ?)*r%Re93_|SJp?Ahc&_-$O_#HjD;T{l1Ikj>MTxNPaDiwX$jw2=dc4hfzN zErhmfghG&kJE9N|WC|Fmj(T)iny~Lc5U%Z_74N&zG=F3A6IY@D_lNPyZ0xdeoF~A8 zOlNI%jHuZOu?`KThF9y1p=F5D+v_3`lPMqC6b(EPX@;wgq5MX5g1kPd;@WgFKe(%7 zR!G2aaP|NdtS~~y1zUs4(2DuQ!tg}h1x+Jayr%`%tK_=Ap7z;pcIPIT&m}F1_CfX> zIQxG0U-Hv$fha8%nUavza5e+ta{&qenO^8e+@eo)}0 zI~6r#d0LToLATuXp<_!O#kzQ>+;dTcJ&Y#t9wj|-QyN5ymb!rAgD5;e*Q>R6 zb%Hu~kkf$UTM%Rn=?gn)sR8Th25r2oxH>EDiu&6! z0>0Vqbwy>T-Y9df845Bot#1v&K08*{sY#j6eGd)YrYo&r-m~EWIq-~05}J|lXyNAk zQrR4)IL&Rt_vRYq(x;akVKQz+%=J1aw^RD<&TSNE-wnXY9a!i7q6c$$7jPMvdwa+k zc-7yC!c;ROWI&S=UA>2J=%bNrE4RDzX@>?%*Duazor)9OTnE-$0x;%n*jBBm?*lgC}-$`9);yZgnyD5%510D1#uDwPsUj_v@p<=)<~1IAwM-FpI7 z?jbsuNxc^i$b(AM-5C|&+A?Tyt)GJMP24Vr$DnZ2{qK267N*DIeDvidZZBRWaKoQ- zD-(v57n#W3il6oeyTmZWHYlR1c?0{s-#Xj|D0ANzIp*X0=h`Nnap^{p-BSy%vxaW}W=%1#a%Ka6}YC5wzoR6oX>I8h{*AHqsBRbsSw21n8YIP84hNgKvNi=X8tYv%PLUqwd*6ob~b7#R4=CjVQq& zSoZTkg7?EECZ0lRU@yc&P8&4YJM$<_j|#g->|SJQd!xtn#L22Z>FKzP1a}+W;6LC+ zz2d5OeqA@qG!i#AbfomWPn$)|Y)TtS^p}Mq>i0Z$RU@o&qES3N&omC@Z*Judi|LHqf3pSr{9}zaJS{&z>=L-{h{4I6M`Sa zfwv2*eL zgz8+&mc9U;*}E@*hbYI>1Y(TL+2e}?+F7|OYR)Te1x{FlUz{xtkWdYZIH6COqd^YZ z`lDMG)R5ty2Cz8~F&oQ9mxmH_x$8fG@6!^TTN!TEZB8SZ=DC}%+cg|i`*iXi@%w|O z^75C{ouxK!x;rbuS2Ka=dLhKU9z^!6GFIcxZAzJ+%o=W;h_!VndU3PybgTB0Ylc_=XS$xn<;396Q07cFq={-0Rn>v+3 zvGvdS@o(=xOo!1r@B~b;VU=g_O28ouZ?l@YflOOUe9~TiX+u0cDb4_?DTn>wl5RMe?SQY z5bJu8JOe?Ons$=Y3qF*;QP`oG-374XBm<(&WaP zmsf`aBi^R-;%ZxsTh2;}fwn$ZW#B6uoVd+5)H=NnF3=L<&dz)=@~Oj$^lqLVQsTH# zg3=o+WTm)sojnl+34%MB22~j!7FXav3kU7D%oQW|UM60)`b{dOr3jv!EpU6REB737ob$PYMF_y@Cpc?YBB zESSoX%8GmDoVXSob{<@U%*oaafDqMZ!!}v}(tTwYbYQ4$p#bv;ui@W$C{v&jRm>|+gypW9wO91@<*k$wfBDWiQx0AOn?oBNJcGTFWUxJ=`ju_EP!sxij}BDq)MJp;M6KlxE4! zr>Sb0fUqbj^_ok(VO_68sGrQ8HdYXCF(tL=!OxHH-rl$95mH?(7FWt=rI9?eua_Ja zPaQtbk6QC&l_3rs3veF<*MhKQ8p0;9k{Bc7eE0K%2X@;H=n&g>x4=x5hh7Rq7m|&@ z`hRf8M|DX&G+HlUTBTLbU%vn2G7^70_AQZ7YpxvH=u|ZpdFpbBN8AhtgIY%~$S=!|--&!r@N_s3yt3R# z^G3SQvgEQ>UQvM@dKo-)4-HnY6v&;@Q_)^hUTs=Y{>ZBsrNFf`$!8|)|jg?udkL5UTA3!5j|FXJ(AfLzRn+>))??=uRdX@Dy`DQX78Xyr@OTQ z*O~s7W27cgaQ(F2XD|6Xw>#s!h$!!-M1(NAp#Q$WMx8mbPff2kLL@EOF+ePf@!KPh zg$BI=k(kxc;k>S(fv$OCtN(h(CxjG`1BV{L@)ZWWLA^pi)?Whl{V|9%&P)oH4&MN@ z0mKD44MEV!o%UN}YPlIWHRT6VCAXEA#**x|+h@bcwReN4-<6dG`s>x#tK|hs)aS@) zg(C?n<4c8n?hAjr-9L_Rq_4hymb)jxK3(K4*k zH|YWrzCWKfq3~IA`7(t|Qu_9EhJIlvUn@@JfJn2AX~aJQ{hQ(x@z=>#v{HYrWoF5| zHTT?kvQ@ni(Ju^nMTH}-FGI!j2Nmt4R&sI1(m^}rz2EOrqyJ^mUrWYZ!cIs)QT(W3 zyk97G{hA&~FqJ!3b7n2`FQ5IQap{MbAUhu6U`zUHKLU|5dYqboZ?x)p)bi70%Sn_W z_nG4W!7sn94PWlW;rne3$J1P#@1o-}>88XO&K{U}u;Bg82zUhXFA@A2u+@akIzVDRBf>QFuHTtj9|kAzcqzw}iEo%BHo+U_{nz<8}S?l{9d`xQ$ApRV$ONN46JT+o7B5{{ht%+sl%Al!}c$ z)|IO&Em3ZJGvsmpGJh({dik;adFLwYW_5@N_sbJ5yb8s6%z&0tCP>a)^Q`(6akb;-G;4_};aPIV@|RhtV?# z)VM)HZcF@NIxM%YMI1X3+Jq}S78%5rVc+@biM=Mf|HiGnkM{UcCR#@p^327YY##Zm zJ?zXelwoWq?2pc_rTa{!e7S6C^*VepG9xzph(GRqETs!c2JK^b8%}+N#cB3zvaxix z_7A~VI=XPt*4%uxL{w5ZfQ-3$8Ttt_hM+^#yFk}$(3*H(_ICrpeu$wnI90b?n?Lf7 z27@}Q#hmYA^67-F<}(rMUkRV-baNZ|V>_T*}7^MGAfe$l+%FQVfl7$ zSt=pt3b%ICtHlp{;+`J^jZ0mnv0ezM9H~F z_-jRPLGnl zVJbm7DqD9`<*V}0p_yR=Lk{KlPC+w^zoz9Pddofexg(8~&j|C^_8BL{0&{9#GrS)Q z0r86>DmBpbh>Ii^0Tg5>5h;6>MuhRNv=?f24_NmOxe zB<1b=t^2%W9+&Ltmf8N_Ky9|a@$LSQ4f2@b zphup)QYbL%7}dbdG}Rg`tRF3WXYUnPy(u>?^XT2lLyO#&5?tN=%SkzJp)(m5ncwio z9{(g4*2haMX0>_rB;Er7d#=_rV9IttqyQRco)>vBv{s2rnTW z^FLsfqd583m!s5YURTw|rFUO_N6H);t-su5uJZ`GKI6%k?G6ulXC{!&9YEgAp;;NS zmX5j~XR$#V7%!);EwP^h%jRA}q=oe*{IJom?d#i#1aaMbMUtP)P`k>0$Z^@mYC!}FTKy#yg zTKJ8V3Cl*cyyw5BqA|G%`fPLW_!5=BQU)V>6#l;~b=mY9&W`bSeUdZ>977WSSd;sa zib<%-_G_4H^iFeROm;d=hCmMAbEKwEjviVJ93Fnz+8k_ug(d%g!`T*T_aS3*W?#*{ zNW=}Q3WRg3{NOzyBmn=ToD z!+ahfcdA_4W)M7^6B+*2TIfA<^O4UpjoF1~rIAg@4ZY%O7IO;x3^h6rli)Xh;onT; zgjuSiKW{7RH~R8{mg?`*G_7%ZsEK~$JbzPtnC0vwMJq@r$t5d-xXFVEq9A`nF&80# zj`JJ1ksvd4&G*VjxnNEZwCXKS4IcpgMUBJ#g!_Kmbhm_)*JYN z75+Ug{}4GGC>r#Anz=u(@PiyYSYhX##fSohf^gE8FkV&z)fxkO>f#?VW?d%E5^*U* zK4eh*tUwO7`v&e$OrTxeyQE)@daS86+V-2>pIw*tQiFGxRTR03eaLfs=vf$D3eT?@ z)rW~3d696tenp95Cj9oz3TuAMC!t<>f!p#-oTjdQl>^Bs5R~bY34iVm+_3b<4kzXF zmdK>Z^3BVlFjHRv{>=w_Jy+hxO4V|zOtidJ`V$AsxbBc~i)?VJh0e&2eIL>~d5h|c z1E{I+{ENkFCh(R(emO)h(Xe0X%H4>4s5fN8Y~KK<%ddYBm+*plEBwqF#O-^Uo*xQf zxzxpxMeLTKQUOPisGSKX$X=bW|A3x@Xs z?O7s_nsvd|$8~y#U#KjJSCh${dj(9oYukv-9UeZbRh@e+Oq8aj@?6g8A+s&LY361J$7ZsU`S3V?)HM3iB6WL&c8j!(CM!ZTDgvb0_o7G z;t6c_f*Q$-c@CE5Ku&>zzhAa`NQ@sQfe+To7V?}3RhR`UL_GgBHUJWtXx{^;1s_#E z_3ZDhr4<`kU>0Y(uUQCLi|Yz08eMdnaisgVsT2|>@TJ@E+FO3aT3Jkl+NZ~r-~M)y z$ji%ge`mm1qeYJjM>_rv{`%K_2Iq5zoUMBO0|pzqA?skywJjW|lN2#-7ZH6poO#1s zcBii>kd7gAHcn=Pfp_*3B}vLyX{Xla)<@@@0^S9AMdIi}L|+25ok^kEf3rJwcp@}W zONZ!tDU<9TNs9M_L-wyYejkU$cMOnoeNf4$}cJcz)ns`l?KH=?`^*xJ^wx$}N=c_FF zJ{u`@o@P+}=t;)(*OMP4Hoa53(zOCOazdk#5Qkap(hwG(0}Gg4!5O*#%(L3lEX&Q} z7jfo&qp;`8t8G+2HRFYQxAEbm+R_%H7XEmhX5bs-RX9ZI{zeyr<;FrV{3|!0^>XL0 zr=SVq`!(cBB_jZJBEP$fxBSl+P*xPuqW`{cN%)-kuX>vE} zEV=PM0fV_CwG}(YGrQ0REqaHy1-f8bf~CM_Bxv(|VzSk=D{lAL9yg@5PDtu`1h{f_;Hel7nB^)mfp$;HE5#D`nL9~Z z+D%U=i#H6k<#QHu;`clcvL(9~h25J29{NDn0NbS@YrvZnSSI;@Jfj)lVmAn&a}O%X zyT(*N$`X+-P~f)QSsvu%*8X&jN)bM|Z9e(tkL%+qlSccZZa&g9&sd3rXkW+TaHARykvV=3p8kKsNtr{Q@Hw3v5y1#ospwT ztd~^-rLG|n+^SaYtQ-xq&R7d%@MRvr2H7$P=Eadc?U%#kT%|zrMKL#PGq6fQrJ&o_?~)~W*?ZOG8P4U&QtQm9R7JtBz5g}v#mlz>iLHZ#JW zu5IbZ_1Qsng@FX{ZrTGV{S&j7rSvXO+uKWDZ)vDHcz&^y_sI;?w*Ub7tnpSs7)RWr zO@+fLwk^8Ys!lj=5a8F6EVt%79eL*>BgFwVH87VvRI$eY*lu$Mni2q_P zEL1drI;dl=E|?VSM7rp~IzjP;^L*Vpjw+#*@~{y|Itn;1a1YY7LCKza@0x6C(e3wj z0TX749&5Sz?xn5!3M+{u(R}Kb z>D<7>HSCvte(c@9s*=4srn^7t8_2)EknQE&Il1}Ej7}QPzSRAx^yJn#C0KSJM2;p! zpv_sxPOF+ z;3QWKCQC(=sp7-#P6;R1I>I|wt^BGHJVpNF2;8NmOGYGv_#w~1Q6_w6D>crwzJ{It zNg)2nP)I8!{bDEyc%EdvLD>rus>EmMPp^L(#{EPjDx+)#P^UykF&f z_`{nt^j_<3PBOIauhYf(e|AD++@|FR@QhlS-z8UOx)l=n8B!lT8`Y0rwd?v?EKE-NgE*U!LHYCN7oOE@bCDmpKZ_P)piu8*XS8pK< zxc&&X=G}fy5gCXT^<3|IK6YFh;Y{SK^Wbf%W6TACLI4p){`BU@*xhXlOXb~J0;ZN8 zYxM#(R^GYpK&>$p0sXE4$Q1Vl%u0-^YF5Ak)-QB<7<4L;^qhd&;=KF~gP|fplO5IW zGgl9B7MaIZzl=QOk#FjmrL4EK#YH$&=75g$60mYX6(I6`uLba~!WoQq$YvMD z)ZDH5>^u`xE%nbsa;l@u+gLRybO{r_S__yCQd4|Sn;^8V=Wir!roO94Z-$@f+_}*$ zV2#{zn1H>=MC6tM>KwM#no!BY(uR38h=pGe%=wup7;8TFlw-_5pP0eZ(WR|3#S1D@ z?!|mBtTotn+a~MT%#v|B@Kt^bWM^yft0oeDF?9M-rPrzIi?gNG@Ty-ufwn=HZE*Ya zPJ`8n#hkGgUXDBBXP6Oer;+O5{tx$`GqftOjh1OMJ~i)A0~22T_Aue#CT>}~)l&4A zPNp=s&&m8rvWg2$xhfZRA-{aLijIVYWlZ&8pDT~n4Bv56)8EQd2CMM|^{1_#^{#Aj zrZKNw9cAK-o7ercp?Sw?o?mdEJGi3J9@!N;w$pCjLiM_{LFg^#i&@DBZ-hHjb=2rH zy|n}UpR(A_45V&ocV45v0eo ziX$Nt>Sn;5$dX?Cjtk8PZabAMR})mhZ3o`uXspjS_tt#@5()s`T;PKQZBOU0%yCgI zy5tqEq6`|(n18v0kzf%DN8Oj=x&eNd!)MNeF74RT=UFIYg*MvEUg__ zhQ_Ppr19RErQp%0iJ1=dIeSIXI5`$%S;l0hbr~ItOG$4p72>m)26FZ1adKGN-bBWe zXU#H(7DcbPEvhfg3glN;5;kpG2Q`ENs|p1XbG zot0B!&WeUk{D!)MI}^mM4;+bUB0LSVy6pynCUmffF&sjUMrN^8-U{RT1dSm9cQhVQ z43w8(4C!v>acX=Gx@GW%L2uflq&Cy;)_?f?j zSlVAc1_pCY$1WD-8CT<1Vl{&fgv$b^H4Iff2h#x_hg8_H9N3Hbj{>%v*E8f#L4rz^ zw7=Y`@e3Vj?Xf*2D+E|4cz+0k&TSw&!5p~gAuvbiZI56m2#WTEVpe1O@AD85pv&D0 z;9bFH37|+6G&4}f8vp}(eAzI^m@XxWwa z+JIcX5-Uk)J-fw+PMnwy>v@{?mSz_;VSn^PxqiH#AN{lhy5mL;%N*9cs17+=SnVlx zz~LO%t$tdC*Y*x`{3i|Djkb6$ocD4JCd1-|%T1%5R^GX}Z%Ki4rxmWQKJWU?h|O#! z1#Bf3Q~Zh{Lu_HVilnMuHosW~+Alsje%I~6(boAx_Fh|vS|u)$i8j|QI^FLY*3~8C z8AYAd^D?#8IO1<+)Vz{<=6&Zc zt_>0ru6`C-eQrLp7E^Ol#LdRrsxbEdXH>(~IHBi=^JCQL+h~VXVNBLPF0JD#jX0(4 zRjZQ5U&H{3u;16*0sy;C6pBGhB;3dqbpdVe!Ke)uX3W79 za0FHMiPIkI_hwtjWP7V zAFX11x2YHLP_D5GK;HE!fYUmjDBO5w%vNJ}WMz#uBa|}Kr~NgjHT<8qp(RCD?+x1X zX?v;C$<@Ue03QOlWG~J;n<@$1)q`N+>V@oS30853Vw$B6Z(tbtz;$OLOlTK|o1d{b zb#;>SGjLW8BsagU@?A@Ytn!yCB4f!Qvb0GC{;L??`>Zpc<=%{Ba0{NB7a6gsm-^L&_?0w6+&dJr^wC~CpScsi zYViY<$&5TpTvXiGg_PMQf|Pa4lLa#>b#c=UBE#-%hCmL~&=n=7vK^b5&bAeZzOz!` z-T9fb{QZ(2J51|_ZH)DH^dS-Gj#uie`Tp`s>7f24+n8(q$gK5HsmP)RLGfO|nQ|3* zFY`;D@ZNSalk8%LHV>&3{fW@z-=yL@2tJ6{cU@re&7qha{Z6Nvgcn!Hrl#z@ziT;_ z+kJAtEek!}L*I>PejjFJrBy;yL-Nm#n5faTl~uP9*BZ~?CJs+H_t}_-wx8#Gl-pok zXgEI~Wt4BT4;mhgg^W2*V%HfZY%hu8W}trN_Vc zcoNoDo?g$H17rJ%BD`1{?D4a^o_n{F<4Dkun{kOd97`*wgm?o=6Zs|n%v>t(j+2O} zTn+aN$OfbtFbureR{p`!s7ob0>$9ttc3c&3|kxZ9#sAP3G|JkaFwIm|9D~1Nga3=C?$Uy${N1IO70@a zHP~3rOOEPi4`p00;QLiu^AYMzwtepwPn)+NSzYsn6xiGUa-41GQ}o>&TN+L1-V--* zC3Tu9{Zb|SoNTz`tx*<-rH$y<^1`0!!Rw&9 zX$H-}pZ~J`X_!om`cMhze#OSPz}QT+UEpHcB=J5lEvFzzEIk)4hF~RRSR8v1<=~=$ z&A=pgvQW?A892Fg#doLm`6%H-4Ab)_Jq_wJ-}v28DIYb5%gj<-bmWbG=1Ghd^pf2P zv2Op$yM2*P{M=grHeZI*a{*{`jj8}p1>YQez^DO!mg2G)^!mVb4DbW?fuBxp4+oF! z7=_i{YOJ}*6Cbrax6Q}Z6Uz}z$;XEeGX8z*w6{IkZ64moG99sI%&up;-|5NiE>M2;qMNs0Irj*IwK1-r zkwEhO(Uro8r3?u&menF18MlQZ?w`%{3Kw<5b!#Pmy6hl$C(^2q)H8k5pOo;i<(z(h z7D;GTP<`+aCva}Twytx6`ibOsm#QxmwC^FWjR&=w!;jY{TXEEqN;fJb6#C5%^)EQT zy(Cpr+FKM-D(xfQw}7_@FnG-^+5J$p5u0ETuU?30T{AmgO&*uYP;6NzYYH?t5httWth)9&8VqUQl%C^V;Vt zd1h!!_LZ@jZ=TT2Dt#oY1 zV)|zH@(f0wQc!qI1Q_0~LT4uaKG^(WWs{$0mBTUltc25>xci$B>!AT#}-KBM9*Yw8T z{?76H{@0%6G@^^km;RZN_2Gli--&hIrTnM-DgLk%0)<_1|OYS6Q^0$Y;o6UWY$sK5YrIPu?A5(hQ z2hGNES$8bVVDx3W8x*|rA=^AUXv~VWZYbGz?K>!|rg8p`2?uvnCk2dv3poaTy3mZM z;oymp@t1xj&wcPij;JHK2J6)c)EZ*uS5nc!m2vyQ*DdJg%P%Oz8&V(l%BOeFp4q}* zh~XqZs>k&rltuV2-xG(uj~RW!mG8~}*$fQHNG?w9oux&re4yr7@^0f_@)9_?N)YiP79C98dP*~aC zpvJiu$c-ubBbHkcYH3Xp_5FoVZe8Wn&+G)Z^A*5CBN5BJa24}GfxB=_a@qHPy+S`0 zYOIEso+dMzvFWSlS zkc!tyf?0LFU#XgjtGo9LGdeq`76icWd={L8y3jniI0-!RIUzRH_4d6$Os03Z1?*t) z9ag4%xWvyXsU;hItbzYrGg8ejo^km;~;7@TS?SnynJe{yc>52ZpYi{4{zE_lM z+e78bWbEUM{M%mi{%=;unNLls;(zLA7r_~*Ip|o=X5?X;qdk_{A7|xjw7%7M@5NFR zwcFA1yj*Zl)}->5dMN+WtoYYkqxpo)>fMl!0gWk^(aEEdwAqqZA3W#^1N+;37^s2s zx^6P6DthL>d2~z8OJ%n^`||b1=4Gm!-|4t`p=B0;j#UgzuP?Fc(r@ou+c|A<)JXPU z4{39mm?n?HnX|q8w_kvHO#c#{qJGCYjeeT`_RCBt^V1uzH@H6>Nc3o2s5!((MIl~X zVc=%m7?S!h7fHi<-TTg$Fs*`-C_s}qPEJ?X29Je0>% z%o$K)bZ7s)oKIruR_f+yVLjVASzJ3Gn=x*0vuWAnI!l1cFPLCYcv&lLRx~JXk&&7* zHB&EidP0SxL-75f?qUjI>iSjZevU}lh1nkqvnOFr0$l?+I^WIGdY{{yruNl92_)HDU3U`V zTj}4O!>U^d)RA<$)+S#RQ>~UGJ&#a7)v!PK<@Q-^e3oKtob>R*nGs2u+e}ygjWJ@Q zl(PGA`z32#nQy_SW>xPCY2FG$FaM8=hD-5Ip5HW>Y>m3j{C$I`#ohRX)VJ_HsfjJ$ z;X-UbI+i6!h)pXwVEY_ky50$w-D{7_nQrLY_HO7L2tlElCOO~5-jc30#y9kl@3m`5uxfP0WNKccj<19E&^97^8NKTs0I=2o) zekH3!v}*9t(N`s~Q@9A0$@2BB{ff#_So13QdF;LD?m#pr_x zwf0|S+X+NSnI~0HD)Su9-6QG)UjtqcivsOI)WhJdPn|_^VJJd5tF1B)We1iY&v}R) ze-PNUo{2=nDdRVL*4KbPKdKce9VB=^Bk*8YkHXQ4e-pp!?Vs4#rJ#BWvsO75Zi!Xe z8sa-jH^SP()+aT&hV;TK$36Xz{N7a`?dkY9v?z8jtCRo&{MWpH2>aJN1u*^-*m!!} z5_j;b()!#xi}b1YHoBT`HSHlz{K*MUU1g=ox7 z8-l6GO|UjSH*wOGVf}u7lV-_vkD_&{VSINU5#XRYPLSNoUr8`xkvxt1Ba20MH;4mQ zbT4*45uH&QS{>(--(DiUOyvr^!96}yxGy{}@jStFp*R!#?_kg~g&VXlBJmz`GF61R zvBNthutB%r!Td2IZksTjr@C`;W>f#bBe?!AiN0#HQ3uvoxTPPd<|mOk&k44>Q9ArC zK4%~fh~=Gk(08oVI5OTs1a~Rw_K4`=Gh`UHxO}&M>P}vMTv@xVcl|=4ZR6vY;483C zM_jCQz(P+MSEPc#*E4?a=4#fG8`3XU{GlQy@_KcN^KzAVuxwgMONhJd%};-96<1VT zTxRz(RCahGv8fv{L_O%{CFFWH`j3$F?Fbkb80+=n1fLYG^1{fJn!k19HdWyjnbxq9 zgQ@+}>8+3j*PM(HX+NXKFLE|wP?$ym-qO143xsTH@af%^;>glV(<4T}xN4-hGH>+! zh=0w{bPt;zeco4gT7rHOy|QiIK!+~+y0eGBUEhT=GE4%-eZ*dRoo%-X3~9t|=e6WA zb_%DV*kM#++h6C3QO4%!@M-bakl&=>AL`plzzfpxgCj)hTJe8b2-Ae^;H~_8veAg? zjfApq!xn`MYhI@Xzbc2IF8*|x6DN?P3#lrPz5Z>$6L|J93faa zeo%IcKK$gheu8CEZD6ILvE)wPp2}i2C=2>``EH_SY#MT-dP$`v(j7Zj0O5;u@G{Y9 zE5`2u%x>i#l#DgQcwV3I;?QG5zCo0JqFjHLY=Ezca~--epISvn;BIefm5R z{nn@$FTV2OtgBAzt_eRckvZM?#5#`7u?Rlu)Huyyn{(D?KohTUxRaJ4ql>yZbFe?p zcOxa8x(nn(MNu;xf|~XnKn31bk*#ao2cc40eqB0gaX>bY&w6UJGWOQT4S;@Ehz$s; ze6taNYCVvadN-AB{a)*5#{n*I^cU@3v-hi*3(g_@mixB9TQ~h(?`U{PM+>`TE2w|N z8w@G{*fh9D9+GT4qBQ0Qi4}*WJrDW$^*O*^Pb^<(Xl8B&xRe^Bg}zzmn*Cg+9_ytF z^{S>J`Sdb8>-^*F(gdPwTs}iM?pb-4Ub5zRT%^pMEnQ4JSC`vg)8YApd>~(QW5J~z z#I@}swUaCJOX@EU^`tfEzuOJX3GN5qn1>VWn(zEO?iX$odH+M)@K}eiYjd!#f2mc; zKG83hI+jqA4-ZHNDOGAVdp(uHrg>7-MC|v$GPXGOy9=Z>!%mcjzR^eQ`pB#&+UY{; zKeh0R1mJ_;e4m+tSyKn}mn|8XceQhUw&DO@89s&;dYt&^E*2mf;w@YBu+u~fM~rIV z8IBXK%L#^#2(&_US_JYGq(J*Y!Cfq&pSZ!S>sm(ap5G#UpzKmJ+)Jz4QPqchw-H4a zUUEt{RKp)uPcxkP#{2B+OKI8rG79&)CmCF}b1%z|xNl8}0_wK|P1JprQh12a8leq$ zEdK+nKvTbCl`tlz8@-&e%Y(D{OH`U1<}6GmxESXTbLv*lLl(X1q5PqKt{3{DdGrT8 z(05l@{fx&OufKA<`ll})U;m>&K7Q}BzjOS_m%k=HEufE3scks$zV+~~9`I9NSAX#U z(ldYId~3jy02PFFpY~ucTA@*AY)NR@-siv)eFpyl!!Y;ET}_Hk(g9-}E=6nrf6>q7 z+2~`>D&ps=0EY102q;63Jr`BBu0`>q`olAupwWRb`;qbE785}ZCJY=H-vP}!mZ6v{ zMAtIPEH@37(Wfp-T0z0fl?WTYSk;!{QC{-c(3*NO!6doPmblp1u4A!qTNMZEI`;DR z9D28TE!*uOd)(8lnE+@*Oz%i1WTwB4vl8}9n(lqEZ*&Wueajqo7AWsj6^8oGU;Q!U*YhU@=@yg43?GLQl_UxnSi*L~<^~aebvM2Q%%3bwG zHbcHD$bJ5k#&u-56%dTW@pJ(hw+I-J$#WGW`=V=vE%Rds+ZhBndll`!$b!%D$9&rb zlScE|?z9wdJG}bJE62+(zbrenRWQ+xJuw|S^^~c2TK-XyfC{#M;twT~`|ego5*M}= zU6iq#1+i(Zs)^r9JNS{8wsb2SKk-&Z-gK>3{+`=Dj5v3Gp|{D(Z(cjs<)~c7UEVtl z__ge7AF-w~I?CdyC<MGXHPK?oEGmLA}o?U zbxu0YN);_epv&9Rzto96lw_bYma#$qkBe(xbr$Pb^q0@}cixz4Gz5 zCIKpY5}=s4LcntY{_!6j%b(Ewe+K`%x&m-80eDh_)>9h5c>V8b4f=O98SvS^9K4~2 z{&>}oWZ$e<6hM=MqHI981n0`DxQjMO)t#HK75R?80NqfyXfG*N-%z!N53CdBLOEnxE z_zlZ~G%2m@yK=I0-F>jr1H=sWVB7$T#{*!)0$ZLD5;TxyLz5rs!4(!^NT=^|P&;X3 zwzA3kM1PY#ip{nKbBzP*_!={Ih^_okH|ve;I=j)wm7QYVX+luUwf)Dntls`ur?WRQ zc~>7{_k&4y@y1fex!xt+pQtt+jNGZaoiuA;G~M-1p!9^bGjuE+3-Rm1n5p1$fF{OM z^NdGacl1pvzqmdz@e!{h934vvOk<$w2n}&CTA>WXM&gUZB*hH)Ioo1vX5j%qz6Zc0 zfZG5}0`5McuG1?3Tm|4kz$bJNJ@f#e&-`>&qu*?I@Np#mG~z`tVlVkd8Y4VGu{14R z>MjAY))|cPTKT@Fh0%m`DlxIZGdcWXq@&=*nffSj~sYP&Kg-U(@oE2K^Ux#{Z3PzI1#;6M>gCG5D6g^)36xfcQ5RlK_;yyuHrtL?$c(jsP%JnhKX`Dw=e_SczW)dQ{PExa zz5ns}m0$kc@smIC6UXO%=`+WRU;k5MwxgMidh4)q->0q|GvbBMh6iL+XrPF3C|qJV zts+{f0UB2uiFK^l7qIJr(5j8YlZfcUziB|Ne)Gmaxt<9Ylic#T30EERYk6hxb4(4V z<(u%0bAM0}xFb`5r45DbKL`tDQ4 ztUYZs1OyG61Jd+=>#bO_2iWF$Xh0t?WL6ICa`^rY0Ln6MxA+p2Lr)X_;=3^jgt>hI zbHjrB3w@Os>|-x7%3h?;EdV9~yan(CKLp@K-G@P+s{ky%Z_UGhO8meNmwIus5)N7z zVwHz~QQiuWX_^yQF+tn#R0;%vJ2k&5_J9rBkWCi`+il5eqj^MLd;2b+h{4QuUqRd4 z$ey6R^uQ!%oi`@6+ryXDe&5s>%kqlK46GQ@;@C>VDqUH5e__H@BWlx)e3}RRDYr+EN5{Hg>>O+yCrM=9i1}oZ4W?kg<1C5Nbj|47v!hX>UdvQ&YpSxh2yz*z3X`9+2@WQ`s9xspZK2dJwEg4PaQw;V?TC${A+;{vO>cmdFMz@|Hcl~#<7JK`2eo%a@qMwUG~3m@RyN?f2uR*-_>W5e@|!5U(uyrNTv-)&-GhHqZK+PrTLE-Z_xRO!vQO?CTCUtAZW=bN%B1A%(fXs{cLT{QQ!ak- z5MbG9f{&5PS1zGx@@?S^lUo39ef_QD|NZhG>H>p)OzXMlkN17>L&pa`^pWGQ{q?_j zeDtH=b^QJR>;F9d)zAEk<)?P#EooygfgzY21QF97JAjx|Azvww2&p)ODr4$|32ewF zDcR6|dIHTYMKlcR3t8PW?|^;Uy->7%R4@79?a^(1%FLf_Ub?m?nAn_ply{BUb^k0e z*3RReKh6_?vlnP9Xh78w^3lXjz+nY&I?#rJ!Px;Bw20|TCl5FP9b>$ML1R&P`c&|{ z4+8*Mj~%ix#Ax^g<37n~o`1}WB-*6LLOHMVjnW7_5xBq-(C89|Xsi)>TL4vfSv=?u2AZ?~P5|!cfTdHka}vM=fb#wmzdqvjdwbzw{mvTxm;Q zh__e88-LnmZ3`f52=FUy_+@YjMU0c#b}oBk)cIiRtIiNVsb?kb@}T5(;*9$@kK@H( zKJ+x427e9w+&kA9vPQy80Q{c6j1sR$;-T@=vU6-BBhw0Ad$#v>P{ySg87v^d?}?LY5>>vz02iwm>T>!GiE<{_Wciz z@BiCBtWN?zf4rs(BLCqF-#T9Tn*8a(!n?ZKbpJ{9Id@bh0yM6cl~WZwC}%~k5&3fXSk(Cu+lf`S6}50{j5di{JSA@r|#4 z%@cy}{h?1DAN%;nkN@p||35rA_?e&j=eT!l8JyzDOls(U*yxCbrDajHi384+hl+L- z;?(Jk*Y;t$O(~r=Q$i`+J))&ojm<^}-sZ;6>P8;2iQnF3>l)WGZBrVxou>Tl(vH7= zm2lVHaXbHUq#x%Az-4>0?Zu%}liXRf_739?2#-Smsa-!xYyUtbMfZ2_RFVtI;5#Oy z2?L-Kol#&zRTSE?6~_)mX3Qu{*M15HYX~->qfE@F(a`AW->cG;&9e;^)_{fu4zM{G zqDC@yi0FdKWFZp+VI)B2W2{!rvEwr?IUr{;&@%T=NyI>dk?IIzO*_4KLtM*Hvnj1C z8@q;YHZSaqk~6J#*lL$5D6h|j!-opa-oals)EFvW#j4b9%RKFWkB20$lP>SS@!8|} z+NY1>PxTuKdNTab!*QMfyrv0&&;B(D@FVCm*mgk26!u$&&d77dVc8W%MeDJhWYXKq zx>~_AJ$wc-@w~`Z#hEV%XnEfmmyR$rC4)Wvn7ea#9k$BKy$N*Y&I5IK^nU&wT@|?_ z!Cl>te@f4jJi)UidcE}Hf8z%=_`myj{gsEuAAIH&UHa$Nz!SQCuZRA~)$i_T;^~L< zpw-^?Jnc>uydBNYo@BYWl#tWsL!DJd%eq>Tn{GZlSFm(t%A3+gvTWtaRmfWgxdL!+ zt^~ZPD;aORanC<}{NkT}?fBfk{ny7Q|Es@oyiY%){XhRN|LgJ9uYUFTrBD5$W6hfc z7UB((R=_+H<;nN4^+Ug{rIT$|& zkXb+)G{RND#D_Bs%&~Ep2_J2Aa1G>EbtzXmN|4SPD_3rzNI`h{9afe?t!I$wRv|J8- zd%$|tA@q@B(jAn+UxT-c^gdl2(UqiU^d`w$8r0wS!=E@__|Eqouj^j_?||efANk1fKm5J_>G*@+ z|NY}X{E@B<(NK;p$12*~EOFVq-hboHIIR`{-yPTz5dHuV*H~fW!e;98wjq_8sxnZE`?(vOckga3H~FEzk^Fp?rc}Kl`&L% zl_Qe^I%a9rjRNDo&i;Fa1gMh^*>C>72K~?Jvj10=>uZVM(DGs@0J<{3EdcKQugmO= z#8PIv;paNXZu!t8@GzAlVzonT0wB}i^FC(m-pg!css=ck?Wup62_ zq()LFW5UiWc^-Q-kU!9yB=>dpfA2ldAMgL3kLsTPU0wEnQJ)3YnZG6n9{le=sk49G z0`LStR{=B$?G*sp+r#3tdxl5_BzL71nf_8gWh=oW5ohJ$F@QPrGQ*1b`13@&5l^O#trd3XeZ+?6`5HIicR3_>Iqf=J?_N@<)$P{>YCUf90?K z=<$<3{tsnG@;SgHzOWoL^>+YRaKOq4@QfP?!C1F^<%UIQ{30Q2D&C?wwi|#Tr{8KO zPdl8zYn;nt4vmx(^RhH`s+DUSOK&Nh#5I;O{cj)8%WHmWpH%JKqwg`{yd~+@OaQb! z)IZui=}~9eODE02V)i9^e@a%OznO*HoJe!P>Y-#47=(M-oSif0G{ugUc0N>Vc+9{^ zL=jz#Z^jVRC@Ob+S2ieO0~yu^ZOXDST3N?!WOV5c_})QOHebfzv+x{%bq$n;9Z5h= zV_qk*&jfBt;F}hWfenLvgJqO}xwQkuU1v*7o?tPTKWZ&RS4~lnYo1@NPU$YG6QmHv(D@SIW@(%9h=_Y`5G-0s)OcWAQKbj*Y zwFPJH7^j7Zg8k|VJw*D9CIAmLpnu0-_-_5Y^wY=Jeox;9_^Jj=-S5A5kF)>#8TjWa z0DPbQb0vz~33C-dW~aMgeUh9dmXyoC&M%s?x|6p}WJ#Rbu7#E(#aaFY6@&qVKlq+l z$S!uK;J6Q6OrJ>sRK)P?9r z^mn`sq@F{%&geAlG3_++cPcaR?{;eMan5hg1VFa{*af_qJ;H6X5 zg27 z59IPk9Hc#O-6BCoMfuM@V;Yuu4%_sJkHy+dDbiS&?GU3DU>hUY6`QxvA`S`$xKXQEU_kG{-!=L=&N zi?esMLo*mdbI@~V#)cf>gX4U3#upjMKsvt&lml{xU*ZH}nDa{vCY+?}IGu~*dLg-R zG-a%8A3VSWY=O!s?)}zV5^!f=NIyg61Om3D!;PF`BCYBIcmVAkO>!_w;J% zgFp8XjoNo?JT4gz{xR^AGw?(6nqUWiFbw+aANDodIDX^X@i>mNeiVzL zUTf3AAAz$aXkAXdWy5u)l!RUf3frI^La2Szq743e2EhCDZeM}C^@J9l6OjDXmtQ)* z`QkV9#lz>1|MtK8JICif``M`{N-{XQvuCxjxfk>B11Sof!~bsNwA zspCyYCistIQa5+^peH4{$4s}`I)x8JUQLIh<8ja`Z#v&2jUZDzb=&0bsv`SWIwtZ+ zlZ|hrkUmRECpW6%8k{`wp%QFWy<^x@{Ee$ez&!3M8Nz9KT@Po&X{H4F>t0b?}KiIDb zV3LnrY#7;0ln5u<9#F&~M!O{{LmK$#DoebLdTfYK-`Wh=Gg8{MNr=>&Tz~vGQ9tnR z$CK|e(*}rA%#LpW)|G7MA%g!-DS8+^)3wfZxyb5r-@mE6mLK>0_DleD^>Gb0+A4I5 z)t6Rj+gt;1wu6Dt`9^<@?p4(RFFQ~e!Li04J=BEDYo$)g0k``heRkQ{@WdMoJIV~w z#To|!&@3ZEr}lu63Sp12tx?UTfAOjyez4;YU3gkNUs-aj*5T&B%B)EBF4BB>l|hPL z#UWN1?4-uF%8wA6om~h2yAO&tIjBAIU1z6}N!Kh^P1p7$gJp;ai>)NO`Lzys27e9w zdg40^m-~6(PkHb8bIskOt#bO1j~KigD{YxeLx0JS+3C|1)CgUd-=|n zTJ(gEJ>|0DiGdi!TBgb}@IX(+Q|BYx*M4-xCU3+J)%rA#E?6vmUXJ{$&3je7-2k-{}o1`|#kAKVukK9?J~?^Gu_X zNt0=pkrQR1l6VfdCjgM1kTtiNob4&@1i>RyzC=2gGpr8<|Hfn$!NxMA^3oS(8I{K@ zS=Ofw1O#76nU>$OEG%b9t$^U4cx7s2+mlXQAqSG9>Xj#ac`c{0!l^ADg{?1g1Xa&nx~uSYTLVh^d{IPq!3X@3G(L#(-Dg{sp~)xQDzzsZJ)~ zO?~DOK64G3XUXD8hs~WrGhn^hBT#+4wV+Cty@m^0dF5+&E2jH}Q(p^k>IZHp>tJD} zqW9`~8$jPL<=61||0SOAZ3%rd;KfJU2)*goT_-pm3ETBZg1C> zd_BeUY?i)?v8&Qdlk!Jvs*hs96f8*f?f#H(^*4B|=$Gns;W5xA$BhsUvE(xWFLgu1 z_&wFwyDxl$Q|z z=cvx4S!Q9{))UHCL0qm&f7v*rnFsvLM|FN6#TTUf6JlSg@H^<{DrMG{S;`iPa@K<3 zw*#=J4I=n5P0oZBnu+cKbwf&ytbLXmoJy18ugGj??LOh>R+%#K zuIfYzC)F)e3npmTc--3}`BMeX;U-?Qjja11Rp*`xjwr&s)T{k`x1X>0!Sm{e-Pb!X z7}=2ze^Qx6EuV%U!&^Z_D~>m9$-QWH8`z|=q1eWhWmYpQVZ?ahwHx6ZOS{W=FU#_^ zx~W2zQ=AKos6*AnNkGjNSkEo;AvYatQl3^iJ>l&V)tPeP zA3Aa74`y8j;tIKC|^HNO1)|c%G zE_+{##&~LPz{$5EIzc&5mjxGNEeZrTZeIlw#1WS%dj3^$y$oVm7|DXEC}oqrSvLf2 zg&e$(Hf&OXayC#J0}<|47!o7X##JL_6Qz)YwToGwJWgkQ@>6k;JCmR8G;?#zPTGTu zAdQII1dLpDv#AGnqS?{C;rH&oHh$S+&JJu9GnL1~Z0dbTUO&VmsNubkEBtapNb7>x zv{eoxh-ldtuR6`50>Ot))(simj?M!k9usHU7&P&bYo4oQ>$^A*y5K*W44~0 zJ1d*3B7uJcz@IGUCZG;(dg`|UsCT3>20KEs!tvNb-6`EJwXVi#XR6yj&VNj%J%vgZ{&+W?x2czljZ9#jy(G1h8-A#4QWy=^7uxA?I48UZ*yO*f$@z z;s$_M{_@BxF*d_C@~dO}j8i+>PLhlzJGTuG*O(&JZ_MjlI_bZI&8-S?55bH;vNdp3 zCbD8lqQ64ue5FlwGtk$plfovR7}vH};(QjvSFQDMt?c>=W~0ul9UL||2Bt$ef-w!O zrbO-9!M61fyO@3o?evpdnzG{9u8el;+KKHsNplt4~>5`Hvr5FE~1`#9tY-$MMzc2+-6y*Iv3ZRO*QTGV#03xK@`u{nheE8K#1Yg zF;w>}6IC3n^hDtPqpx=FXUU61>O0H;R65Z^zBo|Wid+}Emc$CrB5BPA;X4N@mLYAe z1+ik69kTKpoG3+h_8|tnd52WJ9JF7s1ZldQwS&^=EJbv&M+d)hRGn3Lj)`sBut_;YVRa{mfnGh0-4=*ZK}*4+cPoRL@5(h=8wnhI8Rn8tfS^mrn( zcoG|c@eQ~)a^_q853A|#XvsXCx5;1`}Zh_kvL5~4+$H2v)m9-+`g4NG1W%Z zft!LM7ktpNwxc$S#W9Q`by4f>10_+)f1p<>LHqDED88=6rbB0YIpu4EPFyk9IHBZv zQDdD6cHIzCBp-`l#k*Kh{M^vOLw(o+9OL6wb=%x)61P7gVuSy+KC~R!EY)M3uX7~h zW(E+S2~qK*ByQz+E!GiRHsGdw@*w6be{>x29sX=no*(x4@!SCT<&q|m=0*mLN#c3c z^OQMU6RIYVr{I#+KpHC9t%9pEa|~>AJsE4m1{f&ma%S|E7qT_M2}fQ~wu^G54+Qn> zcU^J{Z7>y@7e`gNAQO(f$|8QF3&lpuf=w+OadM;5B3}f#5U?pbV%XfC60ce?Jd*z%|TJ$U{klT zy%tyJiZCTD@5UyrGvaKAdt^3q`W>+4l|Wmys%mwv)^17s5!cdEQ9Ty>(h2GVPbxeu z@&N4F(4HDtbHQjCth_OGM1;%?dlT(KRk=8wbgD!hwQMs{FcGj!#E=heZM+oa3#>Tz zg8+uK%o>cg(3+?ZXka=>t>W0)(5y?@m_t!s(?yStty6K`6Uw;>x0uxB+>p7%OiRKydsZUS~r zyKUIo*=hqd^zFvf2m~q4vnqvzKTi0vFHhTFJF&75&OfZL&Yfq%9g;&Bd;rvUrX|gw zTu~KPaVExAc2xFvofB(87tPuW9 z@*#iwX+ZNbTOR-vD0o6KuSgkNyvGk3B%ECm8WbR-OJ$7p1K;{}UsO;Ji_PP-UDa@D zHpvgJxKzxKajeYg)7%7bBY;gA)uQY~@Zbn;fbUwX>a*}!+=sMOIw$9yCn{nnDL2;8 zIwjl?72Des`flTdw04Q?cHn5zt@uWh2TWgi0qWZUy!T%1+K$S{s4JOza;Xd?wkw^J zkKN&3N_aX0Yl^E~DZC^@nOG5F5LwxGoD#O_LOTYhR>SFt4H_i3@s{5bSNm*)ot$RV zhM(g(Y2!zNFm;w$v*W7dOt==9Ot0O;4R`gZ`B#-~#AOv1$&;Ax;!E{b(2$VE0j zCS-XOkd=c!X0VJrk^7ZbS;%c&Rh57PAS+ux-7HO?%RB3rV}QrMD-jMVc9#Oj4x5#~ zK*`_u&YSi#;g@^cfGA1gp7rq+y?p|*K#beTs|yZ_1#w#F|Ge;PVsfNmprN!KcQM@lYo+6(={(%BNtrQO>&5U`B5zkbxoD3b1r}vrwowA zwXm8^U9>#54YqCLCkoV!*fYtdmZqID@eaB?N!vP+;PG@W+k-T!q)rOX-^P74AiQ;y z$1L=&*$?@aw;3P4Fk6zs}*YvQjZkch;jO&dS;IL=j7Jm-uBZtO}< z7O&0!M&A@kKh55+I~qkIs7mR|*71A2vTn6aeOAg-AK;*}t_^Q^!#!b&6t4>KwjhLg zXCejinQP$;+cwza#73pdxl?hq@`>h1nG;hV-s|1aW$vJdXY;3|KIt*SQU9DCB~DswDHYSRG2n4!9sF<($_efIEaHU zd;&?Z{Z)QZaXDoYSFDcT;fU_VT;ht*F{AIC%c=swucH*J9~=uCp!o3O-_AnXrm7Wn zdkjc);TE%%7U_g}_-HMQ4K$!ofYHYYI`vb2O?S4(c9x-^uM{KhP4QM98OZ7C%y<8m zI1Z^Lhmx^40d;}usEwNn3m|nJD<)3}DkBi<0kCqVj)tcRL3p!NDC^{7#TtFfOyaKy-`xUsS644H zBE@kASF|=)c)V~!U{v(mwVI)d{;Y4`HSnseB5hA>FP?rMzI&MuM}XbWz{;L9Y{8P1K@s=A^k~dQZ(ZWo&3OIl}chp9TG_ckYNRZ@uT-z-5jY*AAS&{g(jN)nQlo=&Q|V-zT_y6n<|0 zk-dtZeLaTyqj>_Lk>$tHMq!|*pz2d%aKkLGxv|Wc&UGo)f)VFi9!XJr)Y5U}(3Yfd zb*^B+ulQ?6=AzNY%cUck^T-t-aOD-xU@8U@d#2tp5!AIO!??)9;+MoYYEGlX#S6Re z(=I{4k{^bZf%rIR2IAyIqk~!U$%9#-b~H(JXNReS4F(?h>(pZp_RPmVa{SIBz1uI@ z+J#~>am~AZQ$Klp6ppbrG+_y&e|$+W@BJHTbDbK;a4=V^j&kU#RsnLhy()>*a#vTb zLn%CY@aN+3A9aL{0TP&b`NLD%244#>cbJV{F(nc2gPVak67qW4fRXKWsHDfM8(2x4 zQ&l-1O8mNiqam#O0Kv|IW&|H-=@o~YaL{h+!Av%7B>=Df>j^+SiS`^bPWIMh3|63> z2O|2|67XOt%vsnWYt6#=gO~>2J}p0}>?+n3&tbZK#7+)INx9ISPtr=H)Z2x{_^_Xm z^TwCQLtd@SJfgb#JcgpNInx1oRIFdmJ&qRfpo)R#e0u^QsfpjMU9$=co8_cQ&=^Z} z!N?GwwvSFA*A0~rd32E-1qZ)|;GvyD&c|{Xzs9yn`{uH5@xdPd(fPtLsIb(1fPpu* znBs@r#%+gFNYsY4G#%+>4PJt&7+s1J*DjLY>nSG$Mc$Z|msTdEvaOXKcRZ=0+$ z!*P`MUmiHeS7^byCUawG|G*Zee3L7i{|kK$uu!Glo~gILsHj^6oyQhW=;9}1``~we zh}j@>U{W&ZHX`im_^Kelc-b0)4q0gr=Q1lz;)Mp7IT9Kn?tXo5fo#!noq1DaF|f4X6($Vjv6ZJ45G@^lBor0d!uD0lsXCRvaYM^R~fi zUIi$lK=J1Uv#p@O`c&-Xnp`-GIpx51^3?At69<1+nYzi}hrbIqb_+TqB%dVJQmJ`HIm*=IQKH$NZYkb@aQgFM`+{drVMA-xZ z<{~2^&|9T2xBb}A;#YY%*)AJAr)-}88u*5vjP69aj!WB^4Hbm70)dVtpZM-8#)-H& zV7qU~poapseCj5|@$qf{El*v3#w=KN@#&1(&dPF3P*>|*n%RcUFRKGnZ5_F^Hu8Y4 zZT@+xGO@`wcF^dd;ivwg@{i^Qz;7V#d8v8Nzf5$7XHT!=01u;yVz#cr%&w{Jx$di~ z{fQVl@$fcj43+3DuWU+Nuf~@Co>I`V>UCW6rDLy@14se`|!kH6@y;i3z6`n{%$ zEWU!jR-ZcYHr2^by`czh7sDj3xllEF8V+ivdDoGt_*N`K(u!0)HwGAASHquzaP1&+ zP^ z!bWd8@UT}9CwOi+2sMn`*3G!bOY%KJh>G9a(b@cO^#3FKa}rV4Vzjc|YXzyEa+1xK z;6MjYT*6XSWgaN4Hc0l>D4ZAXG1^|sS-Uo>PHeI+?FZhurcP{RR7%&;&_&p@tS6GEyQh@KMs&>~CUwhA zP{`VR>3ruaF_RB*4SdyWpqDcPcC9BP0^8bYRmyNWNfy>*Iq@~-pk*+9BXM1NC|GhV zOvkE9>3o46{j}Ob+Jz6_5P*g67{MK69m2*Fkd`3xkBuC2vDe@a#vN=$werdd<9S?x zyiyeVR{{qhHqdjqOBZ?Y*KE;Ap3XHt@v+%k%j|l0g--djKRW9d6JHgkYUMMY?V~1r z8$()aQatm^dE$h8RUFIQkxwnx7jT;ko0dSQeHL#vHvfk4L{)H3Fu_+8_bM72aO5`e=%`bsJhIZ%IkM2RF7}a6 z+~lJlH0ssSLzlePbZD@MXOZciL$UN#Ae$cjh<7uQET7Ef7U14?M`%agLft%&?(z>W zL2z)(yD0fi4QLHtUJq7hvt|z@WD*J`t^)FK<`t^yoLkc zHCKBG4_1j1N-kNrZ12=6KV!=2;dYJj+4cwbj*VpJa@MP^=llMDDo(0nuhe{+ZSa3^ zZ2`4X`-A40OdHoTtx)aC1%&_rRB+?^OIrvh&IGF zGy>NnoWZWdywQ_24v#0fp7Je|(T4a`%Vng$VXh`hkvuQBYqL! z)1>^m(x=3WtdPkweOOxDBo8Fvv&o0X7c`IkBMT;U%EQO6bCVF7w+w>8{;`zD@HN1i zH>`D4RJpm-& zOGIUseEmOssS^8&)tGXxn}p<0DJEy!`vzjfwTyW2i7Oe@cl^iB?_1% zdP`Y3t_0?t%+ZN!w@)*J_H`RHB;e1uBs%564b#QmrHh{c@i)uVM>l=JPfXidq!WDz zpN?Mqh=FWARB08_5;5r7Lp5ilC=<{T~*jD_cl4eOeq4wSR8;wH@xOxc&gg|-RU z2FC`i=d79XT^2&YqBKq za!n$Uf(<|AkwJ@($J{>2{EOXNcGu6$dd{xks>Lcu{Hb^g)i> z|K_#_xR#p`WCn^2G<<9#n-pE_Cmwmq8Gj!xHqdDoKKj(-D>V9PKV{)3e)7>zI`rNd zqLchIX09UkKjG9h=^fgGewpBQRm!I$`9xiKi;J3%{i2HGco{8>mxJQ_;)wl7$lmKz zHubTP=B*Gfd)u1UtE?=z6-yWcWYCmml^10Ah$_+oy4E5{r)oFRwc6R-^3(BbTZk2R z*(sUmEo+;G7s)tCXSGhr1%U0h!-MInU?@Ml`sZ^1du;8oU}8NtLNQqmN*6)o;QOzT zB&Nfgq9k5dS{56CNjK|G8P^%ynxoy&^S@SfrRn(Jwj8aq)aS0=vb0~vvjFg%1<$ZYIdWoY+ z2P8f^GgobsfDS&4spD72*$t?xvXgMm1+ zRHfz1Xfaa9CUlxdHu31E{H%-p8IyYKL(lf-dT^7%&oX^a`Q)$po%*}@qn+o2hq7Xt z)oK3-P~jt|ugv3KDo+CoBv*yHWe$IgWjvyG0O307>XMgLoul*Ivd?`&S8{QJ&-u0R zQq^^5^fq3A60snIaPh0xs_kpG@(Bcbzz;>_wxHrzExqk#^;hg@OO=sR%!dxcX|wyi zNx=Ik;xWiJVd>Y$#ox-o(S-8jUt%jS>F^QC>BH*@sYO8lI4*uSoiv+XZ( z{V}`+;QrN?c6>;x*>mp%V*U)kU~4j>MA$gLNE07iQ3UJsAyg5vaJUJN+-1cp3~p-zZ~yCp6vPu4dicIqIpItS6=%D*{1~j1ZbP$+1YJH0 z()=xafQ;D&tfc z))`FU_XQGc!W7;3<+pwAIx}tfk>SBA4l%fcpHl~096-5F=Jj|B*Zyj*tKxcsgyM|+ z)MA|W5$zHjk|PP574^AKxPz60?W1L-AyR<{Y4%`aH&QG=vw#Rz`<(uXebxZi z4+~KcqG9F1eG87#)IO>5FFFIZsV!D#wo+|IR82^0Lpzqkl;6a*uf!3(7IUPWG#5?u zGo>$bpqqSRKqr6pajhPk(0mv$ey-U(G}%MH0XWPTcYY)q@I58>gq|2CO5incu_&n* z8~dqc=dPJ}oDlLMb9-9OHTe=Ly3CZufQL;6QA3e!xln1FglU2GsM>JZNU$$f95o^i z7mzmUU*w7Ciz`l-vJ+B$hzf-)Lg=*vWaMSF>u32Hi~cN2y)<!|Dshum}0OzC5v56Z+{1B72bUc%FIv^^^)0t~w71&W- z@-Q9aTrHDr=u0p8gvQA9*-M_aolR51a}Hid|l}wRNp719aujSVMJclj(DAp7BHT+{Dg#;_;ES zxZL$wpliOCPmNb@03w58b3Ud%7%29MF>UU`pXCp|{%CFhG-Ymbw|8q$q&!?-R6NJT zEQJK8S-GaWFqtHI1zl#n__dG3UoI79^T#BRZ(Z^kvd(WWufoiN@p5VK(r&*c_g8_W zwOl8pd#%%Ah954b_5jU6AB2y-VdW&sC4>ob((uvGdW?~s<&lNPe%hR6(Y+3h-^88u zYy7Kx#?Py8$1$r;PCVJJ%`JWyq#C@`-~f4ZcN3d%*UMfbNu}L1WzeXKrboT4moc&;fpR+CX9OpP^9}l_y zXl?*B2pX?3ffyB6dulT=6GG9$418S8GsPMgR6IJ>K0+4dZ5ZkX4#)v|KfH>Cz z8tj@2(v)36S4`TAsm=GMRqk71olgZL5Je&*mVR`U0lU5+mX~b@jif0#7`3s^djcVy{&(;64+{lgK-y8<7+ z$C5+gJMq<_#7(l`i@&7k)}X9y!KID~veYNv z?snTEctrH^+yK$am{5E{OLq# zQk6OvZcA=K7GQZXn8-PnHO8G1cP>=R-{#44UJIGzAcBvJvMuii8zF$z2sa%vl<20|T8OfhnueC(mo z5b9}JTy0D^%*zQ9)uK=>J_`e`OL9?lz+H1)2C<yqe3KiBLBH06+jqL_t&xy(V*2B4XZ|kH9GW1-JPUsm_%;@PlpfupuP? zz7WY^n{K<}a$#b!kTz(f$h42A_<_#DZm{Us`*y%0tAoc7ehJMG?Nk=%B)?U?3wV~l zsvgH@T;#8!_t{-(pWR{eAEJ9zE+_qQz^$B7i|5Q{JZWWTy-u}p2nOFFc;DZx(8b~# z3KX+h4GcbmPkqVkYj0QnS{O2SsZU3rwv?QN;t+atsJ7rlCzz^K9WkX{SLIeUV!^Um z&H#0dudMMUb&>89Jg|tgoN9UCyn~kvEoIkM%9h{8yZH_8@JYZHw@+z@G%~173E9qP zM?YCF$j+m3r9NdRyU`vrARS{gu2^M};EMq);h4X3Q^nt*47<2W(}v0>@sqFm9sG19 z7$|*}O*}OEYqrS1ftk3-?y`C4^2hT8pnjg>Fdj9jG=-T>uD}OUd<}TSZNaRkgjVf} zKzLyarpYt#VaK(wyd0R$&G?mD5JMn9Fi7iY{eacvErHKNmsVCzm0_KU2e81F=`?d+ z=xuZi&_2ddBs=}AE zeJ*tAWH*zD5E?IX#@0Q3TAj?7LVg`Yr|x5`beh*}*=`RuadkPGki{p>Ys0rdV(#>U zqJ!<2ShA5ptDRLzZ*C-zYrU}Ayr8EHNc{|g{~*>MqcWyt^^O_8iZ3*4&MN#j;+ zSH@OL+fmxnUeIBlG^w+kfUZe@J%OF$IhgP^?f|ZYcN9EFa0i|G$pfGD$xm02Cth^3 z4xe%tKKf}FStzzsA3pxC>0^6^0`FIxZfo2*2D*xdm<7nM-d!nQOd~)hqPXj~bW0`y zvV7WqrH+Ap%SOEYn2ACAEXRjU5>boAQ5?Y(j(Jpzr2`Ic8oFF6x)mdvZUIipVnYF)sY`?9hw^Bnm}TV|98 z=_t#5j+Ywa8g~YjQ0RPg1)Hi5+&N8b&$2ZJXyiD)*N4hVY)eltL$XjiW6AL@S;$4TO4EJSO;%n#Vm#gZLf<~#@VC6mmM3-Xo&T9o*088dIx!hPI zT)Qn2yV}IK3D|L?OOQ5Pfz@-}he5b6W#%=qb+s-wLbCd&`f!iuY@~;f z#q?xiuClhhk}RDJGVvC6FuAy5?ZK@UM!kvxw7}!H#_nDl$ zdGpr|z{;n6nDlA&Q(x3%vDPE;^|WUPKV;c!(po>rZI;B_=4)LuOmfG^Psc|NJ4_Dz zcE6*}nR0D2o|`ant{oM(qDG%sGdE=M7yW&7*#7ksfcrY?=cJqS?2tlF1<5wI0Eepp zX-&c9ER5+1oT_y_@q@oI)q!udxVDcQ=j4m0E(k8zRp7fGd@h>_D}388Y_Hize%9Spk34q7h-}6a z&p5BUtJY03*}1!|lA^IC+Zx>X817RKMdf<~xqf3LqZV9DVM=12(>(^2 z^YC!OE`I_pe!2ud6$e-COyudaH+<|3OGfG3I1ujWing{7Y0#ag+){U3P_~F!@>z=! zUW9VPi`Lwz$Sb~>V4SC|;;d-t;g?kuPBb?F!9jUMpL&54C$%Hp{k7%SWM~s_Bg=R2 z=eQI1Q29sm1i%B(7ulRn=6gnaYWt$$n(i5njSklYhUUni2HO^%uee$BR*JgR3bAmN z)B@VX2}uN~`G^c33;kO32H>{uaPbEFQv78iNSv_Y17=)_&)BfCcN zamruS>SlDMPKFsje_tC=LwH$YOiWav?xW`f3p}O9TsIkF@V9X2sQW;g8!zz$PivkHOyb5M8*A!|&Ri4(+a|c$xI|$=oCvZ6^}Dgl;gq}!1%z% zNKP^v5L9)ME#YFUt5Y|uRb7(`?pQnE6)8C^lzpiEqD*f7?TERA%ZpvBZC)q>qMqW5 zHlB~U1oCQn%?{a!bElKw;scxTlTHW7Q^E%u`I!bc<#)xphQ$uN4y#WXc4id%(|-WR zbgCm}P!>d}3S%0K>&RqmnQ7~7gVVCbjvGGEoyhj-_~cN2>hS^IDUnrd*CnkSl9g<` ztX!l@v``?nK(`uE+RW8pjyAS(+Rb&e6B%=I;Ve7itkbDx{FQmXnzI;ssEQcpy8KrE z4z*Z(cE6)&;}v%&2h^p=Qs{l~XLT02Mofw^Ps@G>ci7vf+<25H z;O2B92mY>>BpT(w&826E+trQ}Q|P|Hr*!b`2;Jt~dj`ehrN5n*0tIcZ#Qv z$=_*kQcN58SwBHvyLy+8IYKxS&WrnS>_za1^YBXq#dD?uC?n07TaIQe>XPkEsb+oZ zHJ?{3W{C{2$*;tfeTP8TdS_)NzBI@0YCidb)5-AeYyR8Y7MNJuJ_=Xu&e<7AZ&#hp zt4TSGzw(h<5)LhI(K_c_0XhNQNvAb|lwJ8+9xaT=*^(_Q`&j6MaN7Kz>1_ZuxLcc3 zU@~$BC;!#arL$iT7NE-a9JP8Aq%``o`@`IeMT}b zy0b&A8||-kci#};A=reS{RRK3a>h)5;X_~L>mleL%@Y7F3p%{#%<6kj#VO3BYJ`mz z`W_||b3$Ys`{UG#RA8~CONKZ=!UTsetR)5(8qIPJ)&hx82NI#N@iT?(Ln30GH0?12 zZC!Lk1D`Mx5#DrOP~EQweSvO^?v)2Vqfb8iNnfR(*q@e ziKDDB#A6m9Z`!D9=uGoAK#e!!SoZ7dfgQto@d+84j4?yzxzHi3lcIc6E8n&in+^@jA5ynG7zj7W}s&G`Q5$=aEkergE)(aaOX8iXTg;kT}V5 zoJy{^*!VKzEdU*cOEK3Tn^#8y8NVic;Vd5}OfF=YTDS1E5bP>k*F?~kFHv7v zQa6R5ud! zC*s7%0CD`?MNg)#5-9j<`uk)vc5tub>x?Zoytr-a^k*O#vQ8_vE+OAKiubLo`JANmr{vt=!} zpMV7_KM2yIwzS_eDwZ5Jx=^Jj&rSn}>!yjZiM){Q8#4QPh$o9pZornKVY;s4HcBk2 zhj=JB?C_|p{*t0QW_|Epu=OE8a^(}8e-jsZaOjZ57MeP`;9@sr@DyQk zPhElse11H?1UPR2>KdtG@l{l_Yo6~Lvo$q)Qi2_9`z^veUb@AUY*o$lq!tgC`Ol(q z#L2Ino;Ti#=d%owBQ*R#h%LwXww{yUqXbnEW9M89=VZo4mN#hmz?>4}s;Q1(3M)p` zo8Bb{5nbrED()`%88_?LkXLAOOdV`w@IP&teqPu198W&ZqOL>C>O>d&SZ!gBSi8(U z4A_)dT+Ov?UKaPHD_@4_bi0&`F;@lI3#2O!#HPEFbZ+R%pLJFuXkp+$;8}#1mX9X# zRWDro)G+{8*;v)7P?)za=@DctY7!{b$yenFp8Cn#)e`LfuMkHcB|Dw5H4KJa^-t|w zE(hEQ`ap$E@&?1z&H)s=#^oSRKA}4_Ui06C$0VCx(QV^AJ3$kVi=={ddU3Jpk&{>a z;>Qh@UGl|nHOWayV7i@e`xVB_UGj;V@h2XB<}h{BKJtm3`iIUxo+khqi8Y%tv1)O# zI&(Ty!o_OR?fXtCn1qx;Vb`S^IhZ(^GUQfB+48Lxw>INi01OW<{)UUNp$mcy6^>k( zuziTE^bj7}h>{{(+GQI~E_S$Ol3Qg^FrvYmVnYe7+UZVqvJ@oZRa0eY`#hn0nyY!B>4r zC8@Hb5Hq>J$HwdmKd%FOE2vDv6n>ornwn`3W@ZFG>&wSruIuT80u>2LKU>aE0qd)P z=eS1C#3V=)LPywQjgRjZ9ef-rE2r&8dLTy^TYZN-Z3~c1H5;@|95%7l5ssigz!3sGedPs zyu!58m{K)x3L3Lo4#1!&UO|Hoy$gQLXSc&9$>|zy`V4N$?&Bx^z8vq0EBompeKX)5 zXVrmaNX(BqeQKTE>4d!m;IQ2PZu?>GU|;%?#~gV-Wr|)6cBu&P0g1-^p?5L-0+@a_1u9B?9QZuuIt6hI$1^t!0msi zU%@)~iZj8L^^`PEjQX>{Rkwv|x2fyZb~TI7=J=NYJDvyn?$|XJWYAq=u9_F0#7zkg zRR;ctF4*D`z^Oo!iUqH63SPEZ_sU9&PGCV2r`?iAatTE>`B@J>6y3bxpq_HgM`XD< z2yL53^A^CPxdB-7MNIgjoLgeH>Yji@#lU9r)gViW9-$Sbt$BKFfmuX>pk zQE*f!ZBvyy&aZ>HW;*TQQxAWxU-L0#XS=Dpi%*Pe`ulY0Fxi>a$z#&>le?($ihip1 ztNF^`AIxjOd=;OKo|VgT)0%(5Stofdnw=VT^(|?Z-Pq(EGV{FX&d0CiyIELc7wRB7 zrBq*`^^YH1o|A-c4C+IM%2V}y7#QP9lnm{l#Kr2ohN1IA-7;fz>a_f1WGMwJA1zsa zrvK6zchZkA!;@I!b^_HWc&H=wYHQsD!9RJTCjdHfv%<(#Y3fF_#JuE76>OV`kbz@u zSSzRCWVh08`ANOJH!f{ja`4i5GhG<1Ebu;IG1k^)Sj=e?UfSxj`!Q&%Pir16Ha-rZERSpMqr52{DOOQlX zD~>Tv2@s`4p+QhT%c2XN`pHNCS4D|UXUy_braR9U}YTKf>yf;_Z8z^jfX{@7yXHNCJT6mave^Gk( z5A%$-1L`dSf_Z+MmM;wb+X3W8UX>8e%H^U8Kthf=v^zd$n zC#k7kL0M7qqtKe0b6PmCP+x)$@AY{tDypH3D{A3`Z6#dEIBLR1xI0I$+5 zcRlheGEGcy6zmQ*Lq@x-D zS6%+?cYgmphYWAVO~LLTHqLSgX?D@gBai0}d(Go0 zkLCtIvqpnbi`AMs%`hQrQtIppgkmcX6LyVjT>?wDoR+UK8BP{eos$?J^j&rCkz%I9Boxu))yICtYq?@d ziJoFRC;-hV%h4n2^q9ZM8CP#I7+Uw_@mpUo=d#A;wiws0jM1NNq{i>WqqA$RCjm5+ zx(wUSMi{oQg^QoYSzdiv{_z(da%y{W@BVf>gn)8GbE7tQ+iuLiaDUvqc;S4qDSh&M z>^&qZzgNo;*O2S%hE?rglZj+uZPLe;rqJcG*QRzu`06h(H9t^+4TVYm9uI7+#imNT zvti~%ba&Aj+oSdnN2*}r6B-PblfQ;RA0NT1{t^6RD39lBfG_p3LB*5qFeyvs3ASeH zoSvGBYxdQU`kIo=VngA?9L-eS)3{W%7#c0X^jjV_p8b>mTPK@3*qWSB9m9!z<4?D1 z#|y3-OxoaWBMfy_pq|t-k=Bu%HwZ9&pt7w_EZ*d(wW%mP!L>;Fcp>^+U7kAh@^L(f zrpRU`7a5dfU#DRIi%^p9%xCg5#~z5)?$`#y=C6gEKBFI3AIhI6ADd0F^s2`Js>4Gd zT{dmQk?SB_u&zrKT;>D7=rE~L`SI%03!23XuWl+TV%s}a=`~v zInt&l!eio%Qq0XKpImO9e|UNN*4vk7Z^}lSADiKg=2`uBxcV)8)t~4;{+Eur0kaUw| z8uL8ixKTU8NB+WX=f>dX^5&cGdR$(p?SJ_fe^E)$ETZ?d?TxB5I!o!l8Y|Wk;FSS3 z0Jo&NE!h@uw+t+0c8j(L+~m;=x`k?c=X+0Iqe;&q-Dz^<+Gj8510(C%71YGXA7<&gft`ag;|hObY9A z6-ip9<-2M#o8zzj;HoY#QB}OLBlEu)SIDPrl*x;2T}*POKjtJi4HR@G6yLIvRHgKd zv2npMv`-l^nYjsAR4X68=0<}b^nPcS1lVDG2$h=vEmr1VeyEgqg~EMhk_wgRKd4|& z7QYDPoJZPrmcJ_34|MaSzH+~H-+AYzZ)Gb&pGSmu^HPLv877irhMmo`@VB5`S|_$B zKut*7s2NW@iI@wmPt(8~i)9zpJylgjb-Tz|Ms^9d0p$2pa&9zU=ym-(h*G8Hr=J)Sr$|Qq}h4lpI#Oq);@g zIWJz7l9pxoP?X`J>&C)-+YHS1+;;Sb9YE=W-t=>m!;MZ3WImp2ioCeI`&<$4*Qh&3MTStf0j*qbmw~TS130CJNOmALlHfiCjff1_WYt3 z2#iW?^m}|fIr=JL&Ui}p3Rcr|57*Lf(N%8Q$sZRSF|#N}M+V_ZY}K1t^+SYOgyU-) z;b~ZieaQmeKr|FzK#B_W1>OpBq-|8OVbkD;MO_a@I&Uxn-pBwvbst*2{i|@iTGgWD zSO3rTO7;`+pNJy6(G!5Dyh3?b2W93=kkuRF&vo$E%Io5;+5X3tC4X{y-4dJNW&83+ zm&-@*SHIDBJV|*@ze?xM76eu%M9R3)^~gL%mb39QPBq@>C>eWfZ^>|$aS+S3VSA}nbffU%xi^1r{7;|Pe3u_wbLjVR#1NFD67{^7nBwb0`rv_LX)?IJm zYJYHufsCs}#L=w6^yM3y9L#Hya$f@HZ^3Vp>=8NB@ z5V!fcIhSH+5%z`hkzFs4m*aQ69|=fClK+pfE9+ z&V7BX5z8dB4rMW(n#~&PL2s)mN5llRtQ96LjBc%^@gY!jijLdprp`2Yu!QzFa6s-+n;x(fTs@wygc1Ft|)3)Z5P?{&M zV<5(J&rvv`NA9Nil|N7Gc?JB0%^&AXGH>87FMt03{>kN6fAhb*y!G}oJq37n`RGUL zFJ9r}b^X5tHNR;go9GjMBi|U>sX(N!LRczL;#3`8hcVS}prT!v-5~2M#}2RqU{O~f zGHSD*3I`TB!HlRp1mv+l@B8yupN;>8=D>5kzt0WN3#gChmrs4_oy%uF_qoe6weNrW zoqwk8jjwJbAx0@Jg4UCWY*uqr-E9Dux+o2hS+&K6R+2t7>zt5(TaA*>0=jP*3u37W_2Q6FT>57@f!hsd)(zMMq+E8|StFkb=zU_EX%H#j%Qasn9 z#lrQJSFF79|5%H&9@}0%>f;>^!JFSxa(Z=pcnZ)7ERu#rK%H#Pa`bn}(fvG2awdo5 zO|G+KV5Urc^RfEqL%jv?k@}09C;IZaY~A@#{^~I~WavRs&Y}Tge>aBu`!`XPbPJFDmVIf>ai2%P!n$YitRypjLCSGuP~1$7e8S zf2m8a1#gv+@sd3l<{{qz96DYbm{w6uG#zW+yOOcsVy*3vb72~w`FfbT%X3+HyZ7_1 z@>SCtUR+{`THeYbHstWouKn+g9A7vf()Mmc%R80@ThB&LJGi#+bIe_sb1 zAQ5-Ys@zfT!rUdl!_8lb_*$FNvq^xw&$(-g-e~jxK=0#z*!@PIaU(U}2H=z8ei$GR zj1%MQaS&6KUS&R4F$Syz9!D>>yv*qBqL*EN9uNGK+O}gMpYY` zLlkPnw5k1e8=-Fkgw#g@)%e!Cr!sYW{di(O;pS^$i z@cmC@Rqd_$s+lF5o0o6sEdZVXXrA#{!51|+{1A(1WhaI|9Zq7MOJ>E;mvJG>&b}ll z`+eP6&Z#vxiJhgcbX0XDn-xdB-=DVtYV&`t&3_)BdgtBCuYL7z`v&2k{gZ#JCj^=& z6w+hxoTdVFyRAb7V_77F?!mM$?V(Z|U$A(oeu$*%_THkx%njH+TFY97|H=oU{Ehh8 zXm5Mmk%GZ`#-UC@b`2AGp|)*&ghoH*?S%zGB}OM3X}p>}IGV)R#evI>NDr(AP%9?HqEDxAi2>&UhJ* z8x`zqFY#IkWym7U)=cr{4>eD{HWDx_*nR>aAx{AOLRCA{8*El=T6yLFfnLpipljkC z9dEyVxjg&#%Hway!>{OgRY`;I!jajlFn8Jhr;=aG2N}6i;ICnRtQ)64zFgk_OZAsN z2$-9Id=5ab1YfFueY2(hhB5{|m$um(MJOOY}=Sz-c8S1KA zk-l&q#*Dscp-GwAka#J@ViSNQ^=C++rd>${$5#ISDqw%$&rbq){LiERz5)0|l=uGs z^WXdjdi?+S%kTdm|K{?0zx%stUT$V^ocN-ymaIb7*mzt#5XoLx%zD6*SF~lj^^u!O zdBz{~svJV0bgV|%`Ej#u&B`ZjT6qXSpWRpJ6H0CZ&h(mXFxPa`*FE~Z*W3kqAo53Z z190<1SJWs>8(#)YAk7gbZ%-AY_Oz-=IZW$%lAwIFW>&dm&i9-K-vqyg7tMxjXy z!G}vT%w_wH+)jLISS7WHUKwFz5y6d0Ccy-*wsx}jfKZXBf_}&kYmOtIPkS_ z)R_V$Cnu1aClHk;bt9448lm*{mB0e}%E5)J0>y`9Tmr6&$G4|l1jgHJ>r`c4*+|K8 z!^0=~iD5I*7kXRiJOB2NF7Imd`^=Yq>GIXz_~PYH{^*C7Pd-*ZXw&DL1kaxF>i>l| z{}<~9fSUjX;ATK2{t$8%By7o%6s9=(rZ^kh5&FgnOxtX$6MgJT)AD7l zQ$PLN%jGZrTsHvv03iM48vwnSpf5jBhpT`2VH^5c`=YA+D35r?rH^_mM)eNOD{>Z9 zj~!#~ovG%lWt?0j>(ok875tvNKMSDV?2)nnxM5D3YJ%B^PJW``Nm_m^cf43G7iEi$ z-15nPu=Pz8{HYHl;BBXudZhpU4}N(0#=rjk%WwR{|4Ltj``qPgzy5{GH~;iKz2o$W zKRfV(&0jZ~Pjw?uzY!p(B&f~bIrsu15!$VT#Ots0PK#@#iq+k|7A+n1g|l+oEnWMz z8Z>`&F%;*pqW;E%==zNV4fOippDs2Y`}4~G%YWl5mmmG;N0;CJt>3!*FaP{^mXCJ1 zhRmKhp>Rn>s}}8vI9kQddS+klr@gMFpH61WPd7#C@=TqLl*2c6!*I!Y$}@^%IBtZU zr8=S?r{Z0+&6s07MT2Q$Y=@ogm&1)YaMEMroRo;CKR$-t zjEgNQt6KrK78|6Uf3d>ppK$nfvAp77Llt{({HoQ{fTC&8-1c1 zfHyzZ0{oFSuQzoqc=OjL|E8uB#~V7h3wiR#^|;~k8;X)A0YvOvoY3Sg=+j;DiTQc* zmgrEZ2k`oAuhAL{-8AM4fskG1*xZ4+*wcmkl!PaDCFI@%w$lo^}; z3%wF7T6NY@#?fE@l-@T5L}^~c5o-YhS2^Zw9xIck#uYqe>8m=LA`GCmF>id!>|Uq% z#J-)@3}fE4D8Ycc9U%C}6M%AI|N3Dc9+7hs@PluE+ndVQ{{C-XKBLbB{O!N>*~<@p z_~GS8KYp$o(T}uoas!~R2@1PD2S75+cjpwUn*uqnf3%lGSE`cl9Kn!H(lwQ@xhYtt z6EQ%>-|~sBJuGbEbK@gE9|Gh?fTsd)>(l;U`tq+_{^nP|=Ewfu``&jizx|JX>+;|I zxBm@pyMv%wDeS*wZsy3hfEAxL1-)|+r65V&l;k~62F^z1xvb_n*6mHOY_73b2>JF6 z<~fUwH@!OVj=SuSfLpc1_1G%bdGkK&r-P}R@;S~^K6znu(LRpyP;UUz`)jUfQT&LD zuBN=FlQ5Z*!1vV0h(%|W35yU=%gu_<;t&Xu#6#v}bg~&&sbxWwGyC$%YTFdD>SZGz zz@@0go`oz+O8E(T+Quz32ib6qWADt&mo*+~0T-!0OucaHCO~%uH?s39QGx0PKzo)p zs<-sM^;;k7QU8b9#JurqQ_JShTL50wmFwGoteXJoF2AnhOFE=`H03xJ)hu-qRc0x&iPL0Nw&n-|-jSI{d<>R{>rajzVgfOT)yzx z7kURp$A>rS!W;FOdgX=exoCXhgeI!$Ddg(17`m>ShFl5z#wqHUx*^q9Wj}0sLyJkd zCx^K{pxuaPdfVbt@4R#Q^k+VM`JBGz|5<(2?=zqMoW}g-^85ehUtj*|Z~qUM|Cv|* z38oA?jPhGTF;&SbLv=<431a)%b=w#ZYReDcQjK%Gkq>+o&k^c#z*VnN#VjVlv zw%evBzX$N$mCV!J2smEn7+I`?P5q~&`Y_MqC=dMxV2{GfCm-!;Qxo2kjhWvHPgvD0 zUt-me1+zW2lkI>>Y*=FrmAYOD48wBiJN3lg85M4OEsg6+0_vNS2Kb^t;2@>%EbIsv zM=sjQTim(gXD=Kjw5;XWvB5mk;SEP%7G~CAKXz7yN7J8Zk^V?;w!EdC>Y1JZJmaTW z+3?@g@rDxBtFirkO7fC}x4$i&HowcS>G(T3K8->L1=>lvp3`0O=zkHZcJGTecK;+Y zlu!GAU7Nq!&!hkMv~KVOfF~w=1|YBg^+e^RZmPWbtG{>(;LToLz*_-~fgkhBBXW8M z8OtdP8C|T8!&wfGo<8*}X?1O6nWxqlsBDbqgs&P4)Lav6(QJs8wvCN|O9+Ns>i)9k z3^J5FvGBsX3?wFB)cB=s;;`Z^JNw|rel&+(>bw0fc~qdAfcJjzXO}FwQ&rp`e>jzbP*yp*crTD0PnHs#>)|gkZ!cUj=hp(>Yd2!5@cR;0qBMikE-i z9GEiCHRp+`w;{|^*T$~*CM1UT?-PWAr7un8*!(k@>q&+%-~Q&GUVi7F{*%l9_P_q_ z;xBj>u{lYccTLpE`pI85>j2(gsR>@HH!OC@70a|5eC7$L|zYJ0g)? z2SvV|h_~4BxVUohh}y&ox0$*xE;+cNKV;~I*Esp1t`kq~Z}bK&3%B1A5PcyqHwDin zc&3$}&j7rk1?)qpo&tPIw_Q)3YBPJrf>;Y&trAKVN5Wk`t&Q;=9dBskd-|tR@a+I@ z2EL$!DM+pye--6*;=B$fxvG6@!`CZ%|01>4hnITX|AE^2!ynWu|GfI=@&EhkFW&(0 z{=Z(m>W1nQ4)rf@v9QUr@n`clRo$Du$4a~+dE6LxrR&XJI{ozl#{yV5FjN><0A2{u zyINH2D&?C`0Zd)_ThqFI3sUn*Mr@GSRuCuwU6UMNz7kp{pc+yy`1wz7+97__SpPPF zlvsTH{DaH4zwwRBH~-`tdd2+3%U8elHGN0^%a^zG=zM<*K=Th5!n>K|VV|x^Az#R# zom1f@QXXs;?&Iiai+OHH;F;gtn8=?tY;ID#(d+ZaPoC*5FkLAAAtmkogryMKeXWjv zLPOnoC1U;Oj`@$$d_%ir@?{TM6qtT8GdcBT_<@kyx=@@ql& zEw;2@%4(&koY5orbzWsy{t0xYluvBSK9FpvsV^!6bmuZZHF^iw?mUnE_wY*ewA}3n9ho%tc?J3~k8bZ`m{e60CWhwjcRK9{}E*B$t1+8vu`v zxu8;(4LYp~Jc4CWg6Gu^3!y&)AelEL1<(uC%X2Mad=ub}=eh~dZ?nIlh4D@99Jm3% zeM0yy0s{^nbL;rjr}Q*H^w~Fs)2req`q1D-vI|tJrb`@zws<+Fe%1vu>0KD)ITBO3 z`?(8p_-iyaPzsc7Sna#;xF4!V{x^Ek@yVa*RlYX3?BXKarWB$ zdGB8@`(LPo+5GeVKle-={s5pTW5L@p`so;t5p$aHW`v8@{E&#Dt^-CXS`YO%Mf+1%@Pj@W`!fOx;J3X@ zJ16Nd|H1dafBD{bzc1hu{bJzTmpApF2ayN;#YPV0TMT|`A_G6s>U!kJ>aCWeK5xGe z$95gF#-RFwe5r#m&YjcOA^q2F=lY{Sv+>cFT#L_j^ZXb3k9~gd{qJ3V@{{-NM-4h% zqvZjAF0zFsCS{1bE=iP@*rPd%PdcxS@uR+UJs43~4wen_rqIu`-iT7Z#(CyH;q6`` zN9?w3>BPb(_t41BHx1~|va_#O)#D>LeG`QnfFu_h^@F01I4PYvksH_A@S&=6Nawe-q@(V>)rk*Wf-PP7 zCdb?;z!#=uv;`~_4F4QUZQ$tzKT(VgN9p0gQ?FQJUC)g~IL%gm?M&B%zxU4r4 zTTvUFcy}V&inVars?Pa|7_?h5s8m4+>Kt6Kai;Cx#}R z{?#R-fgJq8EoOLNGEQu(AmvsOwJ>FE8kWl&jPtUubADxk9)ESAmIc`oyVGCoGPZpd zl5@vsYC-e%A)Za0x9xqwo2wMnx1a}&T<2K}Kyy$bi|2DI_=Y7*xZ)8EAH!9g8+eg?UEzX6a^7Gqw{DVd|~ zyM*P(MzQlabOjsYnRZM>xT~}kt}?&^KMa96(~(`rM{N7X6}W}2a0;q(Z+XS)K3MH> zipvsaS<%6xIPTCp3YczZ&~+n#pGbz2X6Mbq)LxTM89c@FVH%$JX>(HDs>+ux>c>$Y z!wmql=H-V^UOfMNCRdLQiha4%M5uECJi!Z87g#HUneHO_)c;dKM>kv2g8Sdbp~ ze@Zt1Z*v3CUmNs?rex*M5Xb>exgnr%@#@bfsQD=$I@oF$+{RYzD2N~Mv#h!pV$%^6 zI*;Ox5l`KlzuL%C4t}DQUq#ISi@^8$IoR|~xjEnf#|@EQ0qSn*;~d)E{RBY%{pjD6 zji1NPrVp0R!p&!e80o zNkYv5Fg67*QS!2|?NF6}95TO3fxnIbr1C9BVs6A}o93D31FycBr(m z^rjC5%-`a>4gkFMB||`SO6Jh2qyZ?z8vv$Y;>@F~wv>gNw>m;H=Pe^qu5sVW5F7V^ z?N`)c+81K`brfR_R~1UZg^T>!Ru!{xT>%1W3aP8#=E-enH!B3ba5_q2M3lU!+h@~d z*NG-x>_SW3mT{&a6{qCsUnqW;?>HGWSVWT_kX!8Q;@T%q0MgW3z8;d`q2BD%xgq3m9b}b*s ztHdAc3ELt~A{S#<`zo?!F$C*_g%BG6bwG;078Vxh@{T{CEdI6z1HLI64|4W5eb&hz z)Z%Mt`i!>rX#FODHZAl|^s=9yU~KVc`!6M+AZy!U(cEz7dJGH=|B zi2T|0LlGJk1Y62KL1@7j5mc0ZC{Z8$2c!@M!RLPVLH~yqL0ixV@xitgZ4?@ztwt@V zwrQ!d+v@5nG9xqN$BldAhT}8F9BZw;&$*EqO=0Ibx$fC}%{AwkW6rhq+H39ak8>`6 zEQoKsf1pi~SN=Qz_*Vxt{rC+69s>I6-wyz0mQMAEP7av@#%1a@M{B1Cy3<8QI(jLz zA93=a4VH>ch7Cmh)O*0${CNQIM;+Sa=_iN($j`Ld`28OzX)yWBUk^>Z^5?r0pU>vc zD}3nu7PVy4EB58>W97%MWa^4~IGm2#bM0ieO@?CVA~+6;>o$zayogF(Os=EQWPhUG zz6Yjyd;m);9J&^uAZ@ zpGC&~L$A`sdYaLpKMrEJtrL8(@ams0D*FbM%qvjZY)rfhKy2OyeW66~=P-*fc=;@{ z57mCD9qk2u@qKNGAIvL%{#cMVe?8XpHwgM$1P&xN28bZ=BU7eI0&T>!&Zpl} zj$jv^JcxJWt?hp4l&*P0S(`upJPh<503HB%;GwVn*h959{k-C59KK}p=T-l)@$(?X zn<)JP;Ccwq82cRng&_^DeIEvpbIoGI9*nLcxao%VoK)IfH)q(mieq+dnNx=coUXSk zNS2>Kp0FrY7;gp09F$FMXdKf%jYEFP5x2}!*#>BvJoB%d!#Dhl0psFYCTbp@*7$(a z0IWDNBp21Tr51t=NMppoP1Buahp)eZI;n4{=@EH&Ooj#s-A!|BD5YT((YIDIYf49N zSbS$ZUD-nnje!y#Rp`>PDyKu?7bXlcx&|rFxZF3?m)wZ+(w&=Z$89+`7kh9@A0(~(kSXb#2s=LQuWap$fnW1f-!spzqF8x+73k-* z=?kU(2*9H^Zm0ZnGW~;xJ>>_0%Yf_6WvwgRBAQs9sobDbgzWuP6-Fk}WdgxCP7&2; zdvWBJ^R2bw3C09Jg1AYrgVV8xFQ(jZ);G}M0*4oH>7a(n2@R*)hphF=TQN63^74?g zZy0T?@a5*o;s9^gG}pG{nO8WVSg_gSWYUq30C*^Hccny!ja1(1zh^aG4ZbD)zIL{k zFZE}GKi4aL9t6I{D}L4d(I7T|4!qA-{iiIenH>z-0bS8L2FA^$BOwZdxXSppjp@W0 zI+*%pz|uK-=!?=?{=5Ug!0|BvFGbnO{Xn2vKm2DmeBRGrtMeEBg!PyG#B)LgNn84U z@z0x~_||M&8>$iE zododX;8G=S@{kH`D%C57G#*}Rc&KHkA2eKpw>}v65u3D(hlbd`%(cjjD}BhrP<7|n z!2xGVq)Se+rc2X7I%G~flE3>iW|H+CkdE)J?jQ+eeD0OCA;~8+fVmg2qoH5Ytr${B z#s)I?xFw*u7sob0X~iXe_tsDmq+|9mktK|~bWKFtYrFjD-dt~g32>-YIRtut9YJH|RGcDOQq(^Q$dpTMy-tj=4H>5k zhQUM;lQ}j|7Q^7n5iB|%vm+#%^2ftEi9m{Von+KE5a~Cy=b!+7XMt#BP&Fle+aK`4&7gBr z#%cz2`p$>m-lb4&=4(iEu0Bk>#%&F#7(4t4oX*W3?l*7V=&j78{3k&F50v7mKLB*_ zm^%EQ8h=~!>o=@KlNndcs?Qr|V+Cg7`36U;_GJRnfK-J$x6KtNCeGXxY?#!c$c@6B zJttEduGZ1z*zi>T}HJ0&TrCr$k9nqbS;7y!tVg%doBCHpap zD%s1XQ92}Tzk+!HRT(bgDr69j{u;#c9*P3uOEV`2oT z^Vp`>xuiBi6hW6#a_845(Jg0kjee|xOS0p@@aG?D=zK5gR$2Iw}XX8w@9i8PPZOkeP&u_FXJcq$N9N+|V+ zD6;7X2xmNXhEslSBQ75aUsaqOJQ-)lG@kq?cjp0P3eB@L*2B$pBYo`w4!CpS+-(K?{3$%(<>NvV|V^t&cERL=kNfqE`o0G-_sxG{0&dQ zxkB7Dx!F2}bLF@$Xk090>P45c?>7Nhzk0voHbZKD_3fn|26zZ~shs=}AawqofH)awess9- z#Xu6H4QUOo(aV6IvM?iCIj3T(BX4+dYF!)kiAM%w-PDfD*h{Ux(O2HOr@!=-G4!i^ z>8nevHaJbzz4^y)eQrJBvZ?bR#g(Ggl_U-^IVMf4mX|Kq8l4TrjU6?5?0HaaTRe;* zrNXq!)jAlpW*mAQup2XVwyWrpv#j|s&Uog`IC=Ay<N+OCuD8~Y02eu_o?hAokjcQ($^W@|I$)-BO(L=lZ@`F_;ed$%#+>0ic6Vt#$az zzp1@NrBiu}zJQ16Krjb=L*bTN5MU*!wJ5NH47c|VYrzQ#gqpdan~HY-(jE^1XED}s zqRo;t3M%>LZT!heiZwBzQk%EuDd(gtFDbC9Q%%B_Y)7wt@ORBw82N%@UZF`ZPIpm2 z7F9yzSEsZf2v45;8le8$Wq)q(j{)2_@{vE>>}YVqp$oyo!b=(0@ZL!OQnf$!cdd5< zwD|ELKyUJQ1rkRpXgr4B;ExOeAc%^`%L--bB(W)O%*Oa+Oq(*2w=o4~gk%WF162If z2ZXU^M)-YZnHekE?yK6~)P-5K^7Y1zPFNrMNI*ZrT-$zdke(FcLoc%la-E39H!Bspedt?=<$?`#_kCOiaE1&8Ez&ZGpzkK`V zi{Il9%rM__1LYC{aGM!_E4E43o2)laZ;DLsO!~T>{7epRZd0$I@Xd`Or-p5;@}$N) znAAmM#n#(UO#!%xK_mxBrw$hxvPiLz@~3*ac?|Q$;r@+}D%`C{z{cVWzrW&;EsF)8ZWk{@lAi0?=YZZaf4Kmj^evphZF51N|Cf zhk+S8Nh3Lnk!h=VVM_m;2tgQ#Gy*Yh)Yf2UyuzQe?8@1m(qltrJiHmH?Y>FLX3CMz zqDPhZ2IRDRr!)6NYj2bcU*-H5M!MgD=8@y8sD5E>PxS%du>sW= zuHXIv2G2LoJQ_JNMSTld1ui-yidyGHy{Rr(ae7KKIq|cr8!H}yF=2iv4`F$!?L1Dj zW7~=@ybd|xPXFdIDdol=02M3u;~XqdEUd)J+wp81*=Fd882cX=b+t>2n2C7OLGoPPr5wy2Y_A(*KfXjtN(^Alg4w!GY*9g z&6#rooRbwFm%$;gxfaVJ?G!Y${KZ`A+?#W#HV2W zv%!7`K)XHs{<{L=<9{Jse`HAhd}Kl##-9fP-ie^5u&gm&xi)!F8Ny zTw@c9tamx>`k3Tz$+FVksHZ7C^#_2CIv3>2&tJXy=o|VE=O`%lbyREJ9l0U>ww$M@ z;fFL=mx*eUOo$OZ!96`@lHaBZQG+?{4zClRq5BReodEXD?^{?Q<4?N8?<)l2bFe~K z7Qkqc6}|*s@$=CDe@qDbds31b?*`zTj{uOfu}cNZ-u%_zL4i(o44t*~yFE^-a+8OH zKJ=!JycexxDF^$cUb477R-@*Bk84|$>7QygEH-=I-bc@d4{qy&^~V50@UXx;1>vHd z@dtnU!{)YQF)#2L9R};kk&$XXTSiB$TrhCKpvMKI+2HC0G_MsipNI)KaqYXE&0yby zgE)|z3I~|i~Qg{S|NRZBL;I^r`<^Xgv)+otYA7CMik1mbZ2Sf>UOa%&!D zeXUL(ecsdS;PH|}a?drwyQRM5RMzlM8{dLKOgos^nhUVSQ=FZN8-<%`nU!{Q*V^N6 zmwL!vpnQ^@DbkXWf4=t(Y+o@8eK^Mq12ILq?9n+Bfg0loYaMvT^IrD-iLLgsfQ}#G zR>(Wa(I!SY54FWp-&}Uz;cu+=X*1|=0Q_yW&Lo@c20bC^IXnRLVto1Pi_bpMp8?23 zL+k6uhB4w?xm;GZuTxJ;PFfVeV_AMu^QY>4lZ4dwggtZ`&#-}&f;qnJYS2QVLW>g{ zpznn-*~beO6A+$EL>4k*MKBb@B0G{!)D(XzDqsVfYolj2@#^#}AIYBS5Ths7gE(Vs-4p7H#}JTE>B#PHOBa;RC&GZcY9MAj{95 z;~sqS;R4~qb&7A$x#+JG{r9bHOv;1i@50ir*VSH@_S-1{VA41MNY6DMkhQydS z7Ce5*D=5y4snH39?_7}bgNiOVI3EH#~GLxEQBkpn^rW4;D;97%LJm=qTp2M&8PY zP1?rEfd!9#_^nR)K|;GY;5@7(8X2f9a&&LS;RhLWjW-uF{i)75i(&NmqxD>HFzI%3t1Iq)e|E&K)D`_2Y$ZT24`ICt9Jdl2EmQ4HuPrO z`4|Vm*wRiP%j@f)2EL84Y6+gJuJ<^i<+~}|!;E3%gBLCZYkc@J=Yt79{SGE}fmSm0 zWel(i>q!R&?(s#oMhHQB&G142f8Py@Y91g=JKVxW5>v^Bb5$L5YM1dHe5$#(i!E2% z@{8Ab9=cXCo%xocbzyC11Fn`@7RTeN>>S-g>5a!(rgGT((!e+h`Q%=Q7Js8}Cq+73 zZpN?G>;`|YOVa)(mn4I%cL4sLFeuKWZcna$$`1gYBI`ov&ok-W>M#GUrqDlfy%K_e zV)lGhsae=NlnK$va;GqLm4qsfbW4=b6oS8aEg$eqemIQa)MDed***@w2@gMP=Al++ z+?LFSt3S@S+W5uhCCsn*QAC@~Ig4)y`8XiYCzA|s5$GrR!UXr+zyh*7@Hs#4BJiIL z@pirc(;?N2v3~qp0X$I9hI_vY09$;V6L>H>*nI0xRD67m%m`O{07FYP?k|00#mP?~ z7*t$Y9|dQ|GMhN#1V;bR>7Y%ie18bAP5I(uo5rKqlj9=O$Kh@)+Z`z}(+0TPj0xOm zrb=y1a6@5!!5QL(wSZFOzK+=8H;@JcoVbju=LeEd2^&6 z)UjL7I6AiKauq+d^CN&0=Zxp!7t3gE%89{4ON_Xmc0${7z3d&F?X4+y;z!ozJMJyZ~lOjHTng zBeustHs>)`)b=TQTExH66cNKU!E;mIxOYqB^RBh~U0%g!E(L}B>eZ_ssYOCP-bL{w z^iTN#paa|s;adL>&Ht=FHUH;MqhFEAnp-I|t@E=uU(QZK=B*5EE=+}G1VN+chd!}J zUv%r!wgMhOv2&ki>0lWcqYSzK)%Fd>O(&dpMyF#sFO-t7t+!UyhKG0IvlvN0W2!7r z$UG>pV1W)#Lg7;j|6$GC!sg<^B37ydFz=*EdgMq%;$x%5LZ4Utd4~Xiu@07-S5PP5 z?*YisZTn-Oz?#f_^U_ptej`Vtv;6npb%@r(xB#QW+rD}A*~Ng`A9)Cd+2d;$^+lcW zn2oKQF`F22QrWU~hYfH0gXPdTx*lKr-BxXGjX~O2)UV|5 z{?aAzCNz3EqoSRj)i(B@Ze2(^ukm)Z*Lo z!4V1@Jl=&&-A%vw-prS#;Y-1n^00N|U~z@SH=sON zpz#BfcLKtL>`hTSyVo`a@~e5B%r`!KtKZzRgYz?sI9bfejW!;Z5mowe1Dn5pd%%q7 zotm*^arAuU7>4_qj8yPf)&5wuO(susHW@dvc`yzHJ~yoTv&guQf&j}q2Uw946TN=q zKkeG&$o0VHV}!Q-y@RolxbvXr0_3ghkw+(}(e-yzdDG5GByQLeC4+zH4pC~g@V7EN zj9(ulm>sk+2Xn2-k++^RuNaT8<9F#dEt$+S{HL68!z0mFUd*q?pW0ZsbX4Z5d%UD9 zzB7Tj?&~`Ko?!SJNj!!iEvuYEdm_6hX2t=TxVeAQ_rxU{Ilu;a=I`2sNeYDQYeNKU z2OE!kXqyNpONpn(n8>!9A2x~~f-MEs^Qg>|UJhOzF>k^f=9DZ2xpFP9JFkX(l1i>~ z%+hRvrHW94@Nmd`(za|>fDg{?-vfgb$v^$5{T!Fd*dFN%e*<9M!a$Bg;?pZn{Q-ax z??v#1dHv?~|Mfoq-K^#h2By(h72DU$@@*nGH{MJ@lVoy3SSacpKzL7d`5Xbq%j?0T z`jyxz)LO$Olm})kEi{hsCg%EEq zQ+kCVh2=E8q<&Z!s}0#>1=87*GqMM*GCcsR90p{Jb!5Q55M*PJY-e<6@&U?nR!VD7S$kiI0q9KS%83No2@%7!==r#DtQ*U;<*^ z!KSUVepVmV$h?qRfsEmV@8B9A^<`5wD)Y#G<6~K;T((>jLkj}e1DuVV=K3jlVxEP$ z#H{n?frsrI=**djH%DO1b(>B?%QH&1SPLez5wZ_*;vQk}#i#(RKW<9ySe6S5scoKM zJw`ai6C(YKty)agtc|rqsxMu30(c$QoXwvbi;wd2BrqGfSpBYmZ2p%1@a@Q>ci{Ac1)9ygzcz>qzxL;ts{Ct! zipeV=@}YmKd^Zt(eGfo9{%S#7v22XvfkjYU2FMLxxiuK@GBAcoq}}nhC!Ma{AX%x$ zFPQjP*2xR&_y7$>{NT2~qu`-_6-(`Y*GKi>;Q`l&DP)Q(o#>w9fH`a<8fW|9!aQ?v zcpPgkJo7Sn%D8-pGr^?mJ1)*cdaf>IhS@Ru!0SA4HNY@mDN2T3I%Q4`a9HA6M``tM zo0dL5?W4 zz_k4^U>F{9Bn^4<1wS@(-u}-!3EaRo&3eOv-**SHvG<{azJj$Man-O*Izn3yW^B-s zaQ)KmxKAy6_0-vJBvd~FP4b$@25Y@|k`P`8p7ElI$ueUIY~g5!saW&R;Abonm+D+${BzNco<=fDa)?5 zA5vt;<`|rcGuZA(9;c`RN{8u9=A_2DOYVow8=UNHT3rU2kKA5F8ERyi+yhF|n zCq;BeG|%|mX8oui>pYwHqF3ANOEkve=|d-w*ja38`O9^+3&qCn&*3HWP{APP6(Ae1 za?7}o$;G$rcpPbBLvu@agN&+h0|pS+L=~rU(B8T+qU&6;$_Ni)coMq{bw-z~!M_Z4uXXr!_75XH z@jU3k4}1J)E;)YOoI4ngi}LDtU#}|hAx|H@5+j!bcI4GY4i-P8*s4R@5*a&%p)uBu z;K|7r+s!-J`q-dT?zgrkmayR?2O9pN@=^2(JPO-6d9V?XliakTTY7|TN%Rf5NQIG) zD1Eu`o(|QFk2k}^7Id+Lv>!ytZxKS^k_|ol$czQq)_>x-IXd})Uz8G>-;lnu>gEri za=3_1Z&TjIcj`a>_~XALw5ObElG_P}=EB$LXA`OfA*orb~$6Dhw>x1)Yij4OzwWC4Lr0XjVqufS6H_Uin z7T+PMAI%;Jxq0$R6;5x&@c0H)UyeL;LuRI%Mb3OC@6BGm=eq&!iN_Esk?*XS_V2C1+V+9q-xfOVrL&MM}|5KXE!0`vkt z$zicoC+>dY(9VV(8-1Wq#rn`58~P$l6(1SRt)BS$r$@_H-!o1l)zqxE>lboRiZ7bWaC7c_79m9XddLX}1`ROFa^viA0DN~{+RzLLzfX)Q!UX-`5 zKY#r{z4ze84|{t-^vqlbUjx#OnDR%V8QH^q%R5(_oVrlU>njMrk>E zu3(TC!|N_^0R^$KK>r_Rs|~zG-xV3SUddPac_}4bZw+ z)l6#0D6QJ|aLjc(ak&xXHrWh*=hiqP$dHPB2`i3cj=CP`t{Y?K?qo4M2bW2%l(|vG zSkhA*9l3J%dj+trU}vCH+UfSgcoX((Rk?q*%lS}n+A6F5?}g^;O}X8Y)S2iedqUDv ze*oxEb0IjmIB!3B_4;=|{O|+Ym|T6!+#8f9zfH@|4dMGpbITW8wI}0-4Ymq}Vg+O_ zs!VkV(K{o5kPUBL7TO^6xre2no7hjeQf842-jn~JwU!>+EhKC#ek;Cu%`e@{4~xzlx`E^y>dF3-A49YJ&GD)sw5A!vjDs z!n!y=`SjC2`n6yAzAjHD2$iR#C*S=VG1GeEuo;0&!P|bG^|G-;xugy|vw*28ofOu^ zDU;Ya%%Upa`alzwEMRUZ_PE9d*b7^b#Bn4w>8zhEjENtd3u9Sr+fzHX2O|rhZ?fq- zeqEgT13&!bJ~9NZ{~l$@EHHi5pI7?f&gPvw*x<~q-1!Xz9t7T~&i^SumxO~@#Sa|C zQ%jF;?J$z9nX!|niZPt9c>%$eHjuSY7@>CD?Cq|pJ*w1h*y6Sqg&BK~>EWLZJjCTd zNAWni&bYWedHOp6!fif!qkrhE$Ce|gj6XWMMoyNezix?}(ZPRvhBulS6Jh-2KCrNe zqs6YvJ8=kzKH~s(;~h**VtSk*g3|aj=88#|+_1TTBWLOmRPA;-@bjyCht^CJ)_C(F zPds_kpYY{D)f|ZyZWQ?W-^4ZF<^W+Bf(m@;GhWkoRY-l;!5($u8dt{k^beW&(g%xi z7cOqZk(@@A(zM7x2vrNB1~NJA@d@5IT#mHR(Z&OrFYi#9!6a_1lXD$?aLZ(2U*qHv zayf9{_$T$%idK zP^|MJ-Z#y%jU84BI2@~{HW!o54dN-6BbB0@?MnsW^jD0P99UzN&)m^k=>RGu-WSFTvj`m2~0|}3f z7BXKE2WJ8QX*1fL&s#TqLXn>r*STiCIuk#5#-?MIemO^Cj-Fsk?pUHba@r4HiEW!s z8Po8Cft$^H^R*+vWQJi6{~hP{@Zjk$vnms*T#)QLir~j?T?}BBlSB^>7esnj0D6HW zN7sQH4kF5cZ%Ztb`zDjw5d=@|_&AOKJs>f!DlG*41|4i5kf zd@n{X&KGaqzWuM>fAR9SGSTKn0i|p2D)+*g(C3uEPO(l67R_asaIp*L`vQQ8@!X>0 ziy;2AA|KF=pCIOg%#)cJmsinac9=0QUxd9F=k3ybaW8uMu;21ef6&3>xB69+6Zv(_ z;9MUA&`>dlYHFv;-`j^>IQ+1(oG0?a}4LH z1EA9DV}9B`6cb_QhNOu_E*^C&W|-{5sT?>bFMGzB0UUsDHp zs27!=O1^&w;G}<&@>72RIA?J;f7hSBdi6iN|MKN;^{N!uw(FT=p7dI9n5btteJXQ9 zu2;PW*po{J?44vbk7KHL2f#j1FZ`CPIBn8(ac4sz7YY?{N~6%`U_jQp7}Hj@UTFh@ z(^xuyZCHqbg_|7?kI^JR9O636+Z|_fi9U_upgVpc`fk>E|`o65q3$pqp5z?2qFN3$hBrnOR#aXP}d~fvf1zC z7%q5J;LcbtS__UBNUpmS*1;`-UKG=4)Qo|7$Ja8zj)dhSRtE?@eYL|eMjCg1-P8Zy zL}`Y@(DKbVS;t9Cxthq~WBh>E-Lg(@FWZc9-VsSzS7=<886L%LPUdwQ z4q(28T`l^Y{O_A}v5Z64-Hr*i>h5y=s89TJI=6elG$w z7m25|FMjyrkALq6-~G-^MQNsZ&gTxY1}A^+kHNEXfJe)iQP2E!%TrdTdP0$n)>FT8 zn;B-jKLU`n@WV-EKN(o7ypE{uD}Tep;iq{u!j^1@`l37iSj^s=2NQVgOU{ioy7j7% zxCZ5Idj1qIf58t&-p-Gx#aW4}X}yP2C*B6+!2x${Yx7rwJ`pqzEV=!8+y9HP!GR}! zy*$YN4FGgHIOX90(MgWwkR>h~YCGagp;7GA2c{b^NX93=S$NQ4M{S!VYPW$Ri=H+H zZ@?4I80_PV9}|^=juUOm)AnEHo1TbGS{7)GDyk3Bu^c;z*%o^|rz6fcp1F2ly08{Q zpZOwS|87GT$LW|Zj2RWozMRobVvea(UUky>$#dLk@s3gSj1gE`;$X}q`9MFig^|56 zD;~cI;5;ur^>04RQSlsHAZWwsl!%SZ}or{2O)`9zNyhtvN>-e6NWs@iw*(0YqlPXR;&VIV5r#$=aq=ZtfxM-H@@{HnqK_U~x50 zG8=DliXj_D1`7;r29CahB?cQfPCNwg_B|jT1`>DLb`I7zlQ>*t=3xOdJ;jFXMOk$p zB+&Z12GUXdT>!<3eJ=#&5vP)HKf)Gnv?&4rROv?rbir=;#pH8zQP9@`9kw_Y2gcvl z7K!oWVtb(08`ntIgHS(Cj5OYWhC|iZX9+ZxY}MAd!9ejWnMQJ`ElSQkj2^6=$=d=a zn51Z5913gmlvJTeZ(8Bg)>;Ke*f$B{mT(@mXX(^)^~by#t20+o`S&Owl?^Gs}?3$HI@K_Zg{ znC8B536xy?4gfao-so6d)%0e}@|{~8n+*7nqZ8JK z?|_8txa@Hb2M+#mEGIYo<|=EbCpRqj5&&m%9Jqwts_s%NPueW%(I?Z68&Pc6DRwl- z;vJps()A&zdM+rq+UW>ykV6NLazq3$1JTA#8Y$%ZGKeF4w+cv1?re=JMqlJI@!!_Dej-h@JCQ-(u>YMtT z+^0X5ds~{ikE7!4kk;Lr!Oe9ZCxWd!kiFK(xYHNQ-KWMQK=aFk!}zQq4Gqz~Y!XtT zbTcn!wC_HHYux&l=gx83Yopfj-^%B69q)Pv;N1y40n2lF0AQ$@F?~Ao#ro;TKl$t5 z{@~Z=w$dzmbe=IOv2CLzomkkm7W%X-G1==gpsI>o^#RRI9bVgY^4qQAUj7Jb(;2@S zr_~sev2sv&rR%qgr2xXZH_&ynW+}5(Jh7e}@c7{Xj&Yt89LRYPQAYgSMyQN1e%K5} zC0)PNm$&Y@A*J`?j7zo-yP(I%jr7~mh(qYwBpE{+VQg!KlF9|Wfyo)*z$J1O#8V<1 z++ou}xv_4=jNS()A+k`EfBQbr8=rB*(+i7hPWn+IOE)>KIBgHdRKCvU3W3g+gm>U>ga#GuT&5xE0HjN$r>Vgiq4?wHW6Rjbrw=G$a z7y9L!6jmEOr5MMnkM#Sa2e^Y<7%Ae;b%@RX7Xf^q1~V z?R9MZIdIncl=1S%H1b)Aj6W)h;|Hpi1n<_W$qAl_KvPi8&BMD|UK6CE2V6n=M#(us zbukD@82#gc%R!jKGD@v_{D;S!(q-+54H?eX@YWBxWuHbIWxHh_yub|hX;UOh+Y&fkT2Mee)`!*zy53A_@O?R{#DP+WAK@5 zUapw2F1W9THET*+y=}MVnhM+$ov^E3tavF#?wrx8J+#ipH$@$KGpg;9o2@q!R(|{n zeMrvFjahu!KYB*7uNvOKK0>o;D<2H;hn}fJCapIVO($!J)M+3qlrES&gX_rdt2gfoldcF&I57U%*XH% zu{wbqgEq=@T*)Ik;bmAkf_0K)Y0sMtd%jPAL}@(cbH6wjPZ^1mi{klq_IY6-QArMH zlU(MlWc|2T2GCX{!TO+Y=XHuNN#PTh(SbR{fOr?3Pom?yQsNvEr_ni+veeb>Z{#hG!qNbd6Wt5(Xqez8jN`=~Ik`>p_ z+08E-`X1FWkvk!WCYa*q?Q`QB*}&r#QG5H2R0WQ*?)e|X!}AfL6m?SD(MCU%>%rjg z%*|TA0#z^77Hsv+>Fl}T5}<1c?dxqg?a2dN?cQk2=%vA2wXa%Q@NSF4a@%mNBXL-_ z{dREursj^%U7rP(%_na)hr^rE@(HF72aZV~?8H+|9O@p}9AoLRq-<`M(HSq99`p&F zUG^B3<@DWg*R>r3449UFu$T>z(XIzRhS-xq@~n?HG`c%J zl2*wmOg`1l7_aLhz4NWT*W9_3v`m1a%X#aa_r}pZP=%>Ar!|UOobKQQkssZQ^HL7$2~gg@VOkmu_BYs$ca4p?w~7$O|$3!KRbj z!ne&GOuqNcc=6yPh&O(6R>K?r=-sYNjQereWJ(SP2Hn~S!FpU^30LYYi{(zguvbq% zH~#dsyoNYJ*k=rmIAG0v(T#IC7*omRun&0RKhP%z81R<^p6cXWd1H@P`ZC%+^@*{( z{Er8PVsEv1h>JkYQA{Rolr;{9X3dD@LEdHeH{j`GgE0@0r|;YEDj9zGH159M!6$dl zlpWhKq^ZT`X<*}iJu#pKwr-KJmv`}6t@fd52kjgQebeMbZD`g!|$tS zdS3{_qVwFy;GK?6a%OQo%dL5_v!VD4evTL~27@Oea%oR!xIJX{lht4BQ$WWAllL9% z8QVO-C@+5zP#Ch#_Y~B(X>%j-**~$}7vXKAA$`+xczh(pcbSZ{erzOR{80l!=NJIs zc1gV53eJn!!pL*ULQ1|gFOAsh@4NrBL*+K3u{Wc}r^alEPWHDEbbK({4sK-H933|1 zRpQv$woAJMgg^4|bbO4}K=bZI2NV7kc>2Nhb6iXk96!#|BnX)!yB6PyfmYbvM=8+3 zDHrgm;SRam6FZ3b5aB!$+YI(yHVJUFR5m{xviY5Z0nmNN#OA}jh&()tV=%bZ2cfe4 zX^$NoB{UhISXT#SWh|l{pxg0de6fikB&bt7hE)!(pR*LRYG&5NCs~z__W-a!Pro!= z_0+Lyd&h2^Wx3?`z;9rL?3~!1htzIJb%+O`BIAb4DgF6b9`$TZj`z(y^KnOhtRFx5 z$xr^8IJ%ddZ~t${26>|Ob9o1#!_RExpkEx{;`s1`_y6wu-+K8kN?wz)TQQRfxf3J= zI_Jl8&3`9ge6g=GnD{3!0rKx>uIa3{-l}q#IhX>eh@s!K??m)Z0}gO9h>9Q24sKDEcnI`rK#8a zm>eCmxqCJWC#3Xyyu#CK2~YD#OGL#*Aj7wsI4RIULohc(c`>!0*CAsi)5u;}B{jcngDG1ar^ zj)T1#K#d(@^54{s?DavqSQ8V&mSog;=x5_2MR7Yj--6o@l0e6VnGfy)dYB@CwL(qz9M|x5q`ARnYG-k<85?E6{x55Z}oay$rm= zU>$lMeCp$Nuu@y-{|7+I`7^=ckkv7$U4)iX_6Vc zagtRKIk`q0fidF>)=)hvciK)fXHmgnTN;c>dO1pXO*cT~$=&@s{H=$^rSAfWPZ-#s zGPgR`2NZNzlP6Y?w6Ty2@pOtOg4@5I7?Fjy!{8|LP__zQ!;8Ntf8xOdckMk0PI;o|vS&^EE~Q z_fh&3E8;jBh;l8K!UB2KYu!kr2%bh!)JIwIZu-Xp9c~q~2DbI?y8SJp?bdhwr=NcM z7o>YLN8bf#lGK&!`XuY;^bSDhAa%b7K>uFq27U1>-}~;L{^pAp{}l5LKo@_m+HzdB z(H-r2)E~b%X32CT#G6~-avQF!3>lJT9bDU;)PaS;vc$!Q&u%3Aw5{Jpry9o)5C=0e zxc&;!d;kDI07*naR51;*KQ>taxNXqJRlTsG2YYs>%Rl_+( zIoTZV7+~kX`6%7ot=H*%*vjU={m8ZXRsvt&J{%;@RSzZ)I?>xly5_XnGbXgpBPpZl zSV=ybh`R_gu)N|&|3j5(FRIJ98v-`eN~RwH5~ zbyT%B7Zt~^oxVC+AO84rAKm6f;BprYMzn}l} z`ev5Ir(d4a13<3^(}shG0RJWc^~)FU{r>kw+g*&x+*0YCDH%R0j;e0v+O^ zOY+!G$7EldBYFi$U)R#JT$Vsk-~0B_2{*f5I)$@QWAs>@r&@yV}u@fI?RrF3%k zaqyELOT1(2)Vtj66Nh5jeua)qK9BljalUiZf2h=)oZve6E8p?qOW(>7U2*|WsVyzx zC(r2B(9bHDYZ>lk8==1quz1I3<$3Ufr5LMIVoQ*I={)9OX55c)NXUbu7&+(KvN4aZ z3Da&&7I^$>HNoX2AeH3FhlJVM?4^bpG7ub$P3?2puS=Uq>@FH z8z^tZKg0?oPH{VBoYOr!5`i z*3LCc!$=adRY?xa*nJu2VbC8ts)M{zf<*BquOV zD{r+2rFtZCoWVfT#F1CuN8bkr9@c!>__zSvaK)dt9V|4qQ8HYw(fErGeH=;1EmeHf zLM$gKfX1V_s!kjn8HivT2Q3A-A2J6_nDp^G_ zlq=_EAN`3O0;#xz&hf)yKRKnwFXg_O(urD~BAq(J42RW?wX%c%kz#+H#)%vM{`J;vi{SI_Mo0HzOxntg`;^?3QMmoNV2 z2k*cCuXqEJfthtWaBa~r;Z8lWC!wv8m)(X=%lL+R5JwdbtZ?i&jyVw%D^4q>mGQH$ z{mD^=K%G=YBkiLTsg1#tzRgQAcmSGyOa*=w@&z@pTEe-5Xb%FlV#dGd6(JZyZ#J3} zADW6?YG_+$Tfo>7H@0HxOPFh6(E}SlaM=#Jd0_MM7mV!2*hhLA)>&Z;xke`r0f6*C zsNC9{l(hLhe6+$CH$>z%91La7uJ)+ap+{}!1%^Y1*D_ogghxtUz$V#%9>5uhDdv@2%&JRDrvL91k`VtsxT)>@!vFn^4){$YA$~y7YX3#`Aa1Mf-1gnjUf3%o} z#HiyG2VA3Uo93|HMO%{S3R3rAFC+?mwwt4oPHXdLQ`lT;)6h{b-`!!F=F+LQwlDB zVIA|0g(f`ck_wxtd}y?mkldtm+3`*;%O2YVjg9kxSJUI?I=KZW8DF9I_)4k~{j!t9 zTw?>=v|lV(qf4b$$EbJ=DyBDBGJ`d`)DxcuT^bzCmgpWa3?Mx!dh((v-X{~_k9 z{A<&%{{07f2>7wuyzT#Nzy06-KF0?DuKandcL1b+@7o`K@O$sSeEBah0G%VjW{D?Q4yQwtghRu9L9(gE>^gH@p{a8sVuI3+v*IOEMaHb;>-6X;bZ^S7q)w zx!KbLe)Z2cq5%idP++6rSGl!!0$ilXMt1m*=*>a07Yg+z%Zch`hfR&)_eL}UsC>BH z_+h9GU%22e)-^i((M$FwFPYbE-LPywVm#WGZwq!voq=mNQSJDF=)4_mm&Uo$Ah(-; znA*q9YahD~pT@}nrGtvnu}o`oq^&bPs~~3#?7!%uZ@k4l{h;k*4BKAfiOY3V=X@Q< zht8h`|)!sxd3PSnA5y^kwnCtOo$z{_p1B zKmK!m`EPfugipABt`7jcB)r>yeiZQX(^sGT(XamC2mhw@FFP^UoSPYko(Y=C(Wxq; zV?yTh)8Z2DoJ?qdn}_=JwO%(06L4_85e&*LQM>{64?$vd4w9pcw(Ded6;?Yw9B50w zdW6D@()i#qVk(_ifaGP!BD(vf-R!`ckHvAISyY7>-k6TXSe>AcU6kWE3nF}Sg&&@2 zO4h&f1u~doRWHBzhC??!f~fLl?eL;gajvf2^oh;JW%xk3FA5Mh@{&AuYPS`{V$9ty zO63}!`0?s=`iw$8_B9jG;fj}Rv_}WO3i$1V6vJb<;v3)nDIZ1^bFDEhSM!_aD@h;Z5kJjq%`K@nu<9!R;|_RNd67_p=6l#YudW9sSHb<6=Nh_}ofW z9!G2g2{jD|yLkn-*d!P^`Pc`)z(#UY@|k0FIWIOf<7>K8eZt=%XN`>Ul-~hgYW?2- zzppO<{!og({omjH?*qWXJ{RFRJ^=LEFoQVGhXDOb;5Xj;?gtw%rk!> z%9BOyQQ4gdxHrt$+6JGgT+P_=*(7eP<}#qs%$~OG<{K_4Fri&PhHGMtQZHk_0Gk%0m!kNYHT+wvD#7OIaDp#3!)6& z+_D(L!@r56%KXM{-|z%uI|})DQJk?uZ!QH2ciJGq`Is=sJXF-jT+N~Q6H8v;6)W#N zOxrPu5Uxm-Ay6ia%ZjB)&R2@b+ZbY#4A?0&Taewhefl@h^>M^dIL~ohnt6?4o z4DaBn>~mtRi{4+FYg_Kli-6YUIySzqg)M`VoH^82`a%rH_AjSu_Xn2hMs_?Iu_v@J zBRF2>g>~>31P?Oft{M-TTgE0OM@|=3wD+>&Lbjdjo&bzBaUME9)D0$U3D-F#eIT(R za*kt+HUWHHN5nk+Tq~da>bi0_4TxH-7;WUMg;q7HNl9_L{eA)tCSNGqwBb|9t!3Z!#78oa*QL0C3DAl&knaL~{K?<>m3$ZA+nO()Xs&0f z+F7S_>RK*qannx43`!X+1jPD+?rRM{CVXLw8vuj&{D_^ z|CWrGouqFaYvbe+$flpQfzvSj9LwlcFdi3d7B4uBSR=@d}|NiG}ukK#sf9gK^=%asIpZ$L% zH5-550l0tpZ>5X>b11(I4**=JJ^)a^)B^uPe;W9AK6w9I|B~n2Of-Pn7T4Uij8cWk z+6jq_%_{qzK32zOz?{H&V&8o2zkOC9sq~k3UCvks5~AcmO-FQi@t7N_erz1bhKRtk zSPiK$q_lQx8r7L^aIIuBgE4OGn|bhwGY&V7+(}t5R}MholQDK~^7ud4@TAYHz7rDy zd{`pAS!F=X7k#*)^v_9uDiV&B2pR zHuxyeQ||Q{qxQ`>@z3#hyy(jn*1+vKpuX!jTs*3{!a?Qp0;n|}w^Iw|a1yK5{d;CE3!><@BQ@C&wli)-~Zk}qlxhkVdU^to(aF^p)89?%A;ld#&zBX zF*Iw_#p*ai=GG=wbRlSy#0X#vS!9V(x8+m2T_+Bn0H?|f9?w?zjocZ2P{}q%0+q;e zPuS}jT{kgn?S93e_u?rvGB@U87+sSpc1EGartnKr~S?OzaFsFzUARD`ve(Wv5id<))Cv|VJDsVm}9sPTk^^E zNWS!Ka0texT|INcvQE*(AJ2BxvfTRsabA0JjsMjT9i?Nm=ZUq^&qZwC8nf{rUOZ-- z6a7F`O=+HPM5A+T-mnA!AD`63Y}rz{nvd;|;O?8CBPE=2*=&)<0NG(n?7<4+dlTpZ zpNs>=bg|vBz^<`_k5eu8-0?zJeQWezxBTcwKl*p|5x~dtJ74|t0C4~P|F28^3y**9 z4*;E-tuGG&nzVoIJ0E`do1Sn&Pt}6B0Ek7AT#mCw?!ksq*|koN zPhH%|P_}>}&cdj<-yr}c_6RPF{>dNjq}OfB7a-?Tx!? zJ8WzHGuWW8(Wlf!PKKs&C>eNAG|XC^jvNlrR@Rm2lKjdl6Z-noknLh$wuIW)!yvKa zb=9T?-(#Go?)B@}|KTT}eDc@j@z`hoeE@ij{#odr^8-LH5VP())g|i-&>3-ma=_PQgPnHRuqm8%VRC$* zLX3TtX^_k1CK>$U7GgOPryB@%Zu;UDud~?t*eAw40otd|GT1e!L%VZqd>e#M?mI6Q zjrONCL6F;~?ic5r!0;6Fb!zgs;uT9tbn{!b#+X%Y>F@sIi@l{-+7~?ykJ&wk0GFRG zLKfs>9MB1HV&JEsqbwUT7qW(2)MXEjM39n@bvpGs6EawybQcy}%HikSVmZh0-GhcWe7t)p!Ke~%~pi6hS z0&laM*=oz?OSJqWgeU!(aF?n)7p3o=clgi6gt2ST)puHU*9m;6F0f?OnUQ&U0nm^c z*NrMd+8gJsS>T^!{qZ0F@gM(r5%!gTKl|s^Ki~X+)^Gnakk9=Ap!1BrB6IKnz~L_h zzJB%kx4-}0Z~q&b_~=rETK@&GHFH}G8!d1C)81}UC?6^0xv+0dipg{!SbN8c!7efICYdiCo6k?Q{H|9tx&k4rBPiYG5V_XmJpAZEvT&~G2Fzxd+qhabHEH}s{z zf1Y`F-dvtQFjzS^=b8(da3+liQqWA?s@ks2pq>N*?YQ=>A@$;JQpVR7KUy(Qn>+8o z6JZtnYdiE?7xeNNZ29AYRWY>UcC)X4+rC>&LcsGDx6(8lgFU!2Plre(owwb7qeo7A zZ#?wfI-Qaatw}->1^jy#*s+PKJSu2u6f#&O_FG2SBm*nI)pQvY6W#|OZeGf5;*CD~gJs-rO5Q>yPG zzCKRDk3hE^@_mdMBU$ZFNMmU$2Px4Ld43!$7;C3JxZ+*M4i=6TKMiZrr;5di3!nNi z02DY6-{jzghrcj@{*fZShugN5Y_M)ls0(3e_xVDW>ys35Eg_gD`BKl%96Km3*NfB!f1s{bElP(06F$F&4AtxW;OWooLbDs9ZZUCNE`X*X9- zA}XITI=RhBH`t?oD6w;zj~o^*2D680R)r1NzDCVy_(~g)@9>3!!ffR-c>5=kl<0+- z$jjes;~O4K;Ot--O>OZ%>>(K34vxB5{GnsfjLw>U8k;fFf?FRg)Ms+X-^bE}S3ZPh z;Q|MN@gOPWi#+)?o^3gK0~_-NH<&!k5F0L);XrN_)R9AU%GeqnarvCNOdkzgdXUq< z(8@P$Eah4C2)1$Zc;sD_mAm}{WT;$JBL*{lTqfEX!NM^u-Bs!9XFJz}TxHMq2h#R+ zvcEWFGY_@#v}2_90cd0tiOT@#2OsR}rw=3JXP*bYVH$Nf#>dIj-v9>O0Xe&*ZVT&{ z2ck5t;}?A{-imwkGz(qOzcY`;S)t*I1zsDq+MLiaBs(7ZU=2xA=eF!&hm-GJ8~AcR z1hB=ouK8?B=D+*>Ejng$Sq(W&c(sC4@m(j~_#!M3dmEM2 z27!8+Mo6V|4XS%nTZ!Jb#4GH?1MoeI(ZU2ie0KnBDzdTI^u}6z!xhk+=_q(Nb-TOc zZN+AQG2{}Pb@J(=7VTbyfT1fI`pVW%!_|rpDxBT$j74Wl>Qh&Lo7JcvZR5~cR*)&t z@1De7+^&Ix@7mjCkep`Lx0g@_cduQJ4gH4j?^Oi^3An?W0!E7 zc;RAAtj64NAtZWUX(xU;`x_YhRe1biTzvFPjpcLNkjK^@Zd|3ofD?GF;P4Vi1qs;? z0SJ%ujX;d0(Qp~B(^;$+4r5EYoCwxuJZh#67k+W9d)vjveB;O8hCQ|u5`$gKw|TY( z2>0>waW=aZpS0KgULw_HYF(n{x}d)AS4vx5hoz~Yahm+A`B^piGspU$x^mogde#4z z^y>dF%6@<4f4=%}H(QtP+10-+4**=a&i1oD9|GR{u|5jW-v;rPhMvFA6%gPSeliEZ;70NB{As)Wq0@J$(#+$Fbi*7$5u?ucMUD z2`>E}hf7Y*LmoKMr*ZZJ#az3n_c6ODt(-9ExA@@wS6v z9o<8Ry4?AFegdip7kfbK8V>1v_s_n40Kv^+gy}zzzuVX#4aPX|wT%LLj$Q`T$yvS~ z-^Nj0ev5P3U5sSveOl1=mv}R*t}-6uYvXd6aRiP%nB3pRAJ~ORKZA(9A+2+6WxMu& zYvb2(*-?b|$a>YAh_Gt3C*T?P^m~`w^{Vx|aEJagZT|m`9s)j*jt#$m^oMr>&bR*Q z>GW38GcLc34*=)oWX_!r0WUuO7M=EjP^Foi*UG@)=;Mh0C~I3mgk##beKfr&7C&^W zDqi+=*GRWyfVLgFJJ;atBim{2+7>=Ikb>~0rDklZrS>Kur!L5D%cK6JLvf#6$5wm! z-G;|#PCKiu8(%3BFYRK3OTR5MR@0&4VZQPuj-lAb$OdMg1>X6XqxwT#m1{z)578Yt z;jB_D*B^Pc?ZY_K7c@bF$QfJPvW>Z8j0e`VgKWR7w<{bs9%(MR|F6AsiPbE-?t0g~ zw{AWA<=6%#4u}B=5LQ3}0kVV;iXuf(lnj_MKq5i{#Du3{1|x*TAYuv;5llc330VXZ zWAGr5@Q@HNAQ_MZ8G~`#>2`Njb=`Wge*d-pd#`iu_f>UUWxKm-@2cF+PV zQq%UtQZ?fGnm}zn<#TJ@<+!$tJWLh}<~`KGZ z?%zN9_fq`WpX=iOWqJT$&i(pA_R9|eCy(Oig`PZm@}*lhuK#frsV-nS#=)EC91A7A zpd9L^fE_$4;Wu&xPp7)Djhmb}%2&9`I1?*+p+}Rg zFm;crqH27mI!URuj1vwbY3t2|R2TqrA=7MuA`a_w5eKcw@;E=7&GZ)bvKk>@B zZx+M9?BarxaXOUW^mjeWEY?{Q<1%j_#ibZ=h-P1U#~J#B#IR~1a4yl>FvSBpo4Lk` zZuY@nob%I#;Km3xdUI$V=;C}^hoEaf;rjVW(#${dD+fCJZn;B`0dDmkXU};_KX{8f zG=n3I*vA-~YLs4Sn=%|ZvQLcizxeUSKCTBP6$-V?F|)ue{uPwTNjxt#De^JGk^#Nd9 zZ*gLg#{&TJy^D+cH_p$0Ies+o2Yq320dR2w@6HT#(Wgmwo)HDNV|tdeIqXlb0IZ^1 z+){8IGKM^w^z>b2tPq=n^OaIQ5H;s%NI%Tc+O5_CVM)MT=#9m+=e4bTrhD*D?B-4b z8a!QxN{d+t)~hF82*^Dj!Z5~1HpVE`l6#H|1Gf0bf*)SmI2styuOd_@NZ~SD|Va@2WeEIEV>7W&GGc~rC1doS+5(r3oU&31oep1Q=O518p=yki*eexq;v zw!7ru23K>k4m?dc3*2%@lS`4Kz$8u9&^+1aH8o2GvaSJhjXqh%a3^f6o=jnq)p?Y% zFwCP8l)>1{mi(gWP=1%Xd2QJARCr7l4_=BDc~A>K1el|*)#z;J>;B*P#y9>!sQNp9 zf8(G3;Li*HOMhIa-oI=Q0L+Boz{oilB_10gFvES{}`^BdL{@TBja&L+kx_=oT063wSud>vQ2Y|qw zy!Y;V|NV{EZvXzcs6M5uBE0k?f^jiwBaI7LQnA(LDRS^!jOg@=L&_ZU8uP`fYdf^u z30P_9jFV@Ku_iCJXabc-+0!r0NjB}J6_4Dv2Zb>veJcZ#78SspL83iZ=?2ExZ{ur2 z4OK2u;UDsFsW>^F3!AX`RC1$A02O@ZvCYBEe3PE#B9Ut?(TxME<7C_noXE)mCSO}; z`x0)*A@Mb8wL#(erGi-Cr%w!`9;r{Q>oACL#Uu)_A;f>-0F`}glJ!lDGRVi+8ra8< zG3IPtea1>6$sA&+d$Zzi0>prt%$6YK z7;5*^epzyk&H)6n^_M+fc@%%<_fN)O`+GNR{oTJG2K?@y#CmcEs9sFf%l-i1OSSjo zAs`l}EAQR8`=!@!-~OSKDMRNW7&02h z$!JW!!GQL0`i5r1ku)3P0&vAkw9x%Ro_9nHY#Zch&Bbsc0cuouTig@S^5}c4vJYG2 zNZX7Hk8Zx4VAqvg&cebUf>g}Ka^qsIvJ*JkkV~M`!c!LU;Uj}wV*i^96YBZO`7?G= zZ3D!<>9Ko33$7T$HNa|cf_7i(VS^L9+vOZ4qBu=$&Tuz_&bjPyC>%B|#4&b#Cmv(> z2NO9IR`qUnXDLn(Y6hM^Ie6h`ZaJRw@_c6w8NgU*@t^h#wB?;SkBQ=k7yq41y2g?C z@vlg;9y!S#$9~4i-9E)NzYk-O?}W;|)jzYPEs-)D#({f*Yt}#+Q*WKu zD@^d@L03b`D6>JgZ>&{XuXYBon_BGb45=CMb>EeY-nzZaIR3=%pN^mT|34x2&EFsW z_n-OSd=DtTFH3t_9{@PN2QE>acJ$-*D6YJF@8AEq*I&K$BcZ%D96@kra8aU+)-U=b zNXyWdkhej3xld@;&YzBL@AQpX|xgKqFtIu$Pn z>cga)xAI6`D5J5!XB$GK6!IJzFkl=1=AFx3I)dqA^QFEPF`%IkUy5-or5%c8;3_Zs zghTq5g3h*mKd?KFTplZ@DoFCA&htpVTGSy^3rz7TaLA6^izp0+I0s`PEv)hAk-^rI zT_I2;N_MoN8vN6|jV;W?k-1}MU!1xwm}@!=Ot>b(`QQ&`)*$nVV*ztqh^ZDg8-(n_ zrjb~aEoEZ_a}EiwFvX*hCmDUrgElwsWYBT=mmpjmG@YIS4B5=XD48zz8=DI^@VSbB z83c$$w&ASW0Ig{t&W6&C)t+%lrUv=*;@cr01ni1LBtiJ$mry!53b=b?e7N zrATKv2z235xeBXrl$D>X3Jp)Ip$5iQB7Vkm(4eT`NdiZWYTB!=g}yjw^9m4i#16juW}G0!jAnW>M4SOh+57>HP>oO;PY)m^FIJb?=VAQ|}`pm-`)urlf|EyJvDHc|^p-rN`#$*~5VBkWiT+*H~ zr2{&ZL+q{_+4Yaadt76zqvyq(E-o(qMtt=D9|FVX&t}iY&#Qm*?_c*@nTGWxY%lu* zK)-VLGMhg-_4h9xUOajH=!-XR-1zZOaxY~IVSGyr2J7i{p{E81Zl(zsOG@dufQxd# z+I#_Ty$!;hG4s7%(9`MT;`mS<#qjuzB z3iq0Oab%F5XA4X1qva8vI)~CJlh925T+o86>Y)YOGDKb8aA3=yX+lug7>|4_;pB%1 zTgLC4%p%VTQplPkd}cCtjQL+R5}1SX1A7wYnpaYZ*EDA1?=R?g9Sj1|R<@B}hLJUM zNY24ydnkl;EC;CGKP8ZU%)91C{=r_AQ2sg2gwV?e{>ss{P&{dCo(%(3_&Q&@56d6J zU@N;$UIlQRgb$>K(-tu!o_Lu9$wbp?fE+qzXne|X9Py@26GUGeA{vME8K&kh2mv6c zm5rgZNj)}6>h~07Q8(rhpuAQ+gO1wD4QPAy@>5) ze*oZ|`f^0>m#}Tvd7a$5|KQ%~>6Kr&aqZfV%80gk=Mr~0BX{yrCm#a^9PygKswHQu~f(R^K*=*nU0DUcEBQH(466||qi8?{pL_<}XC!Z^`y)Ao*@!7A7X_;MReT|sR@O8Tr7R?)p;uDW0soe>T#9pm zrL05R(o{H`Lup!6dse~hQrt5{NZ6X*&|Wuj6p^n5KQL*X3}qh!wLU(m{pt8|KmNiW z-`wY~`}+Za@!I^O2)(TbfUHKlG<$h;$ztQBPXg}TyZ`Rl$>}e~pAh~LBlAKXONG>R z-_^Ap?l8omy6mT>?9ml8IfsWh#UMKeF%6y}?DfPb&h**(X_P8uLk!)cr863xb3z!4 z9uB<~$eT_#Nv?pk4h(aT$*dmSMNM9sfGjq`IUn3SaYT4+zpY_&NxN%-)E#~HJs_xTeb9lNlm&l`~ z!aVkV9*;8A+{D?g7wWO8gKX)|aq>(Z+NrNBeM-V$t1varPZI1E80nKg<+N>bF*P~O zBGkFfIEk-0!~m8JmTYF&3|zeKlzRDEx9?5i2bQ#xmo42Riy;faxo$KEFuQzG6Gwa| zSLRge=nl3FGcJ2pGp%ToCTYvLt2c(Q7nP94b)DmTv!@Qo?y-C0M~-*?KmGNufBheY z$R_X2pO5@`0PyDTANlhKj}9G>m$R)0fO*~zU4L94=xvky-uv&rbLH`qFW$U)gNK0A zVHGf;+=FV-%PEejb3aK7X`pV)^a)EiUC~Vqsz}vMxuo(Rqd-Ucy2Mkb$&AD*YA9uu zUWm#w?QIR{rb@I^6`W(R1+onDZuegi{VSXep|1hej=0!+1Uo(FgT&I*lRW9wE zrHx}Yp(=hx)1Wr9tgVp20oF}&(pTy+0HbS=K9S-KnV}w3ieSXbaKhV%w2|clz6@h5 z6{EsA4{6E|bLq)RzVOsMQUf-0`Cs0Q9UFz_L*LF1vNoCEs`Q1EUmS8Xas<(fJNe>R z^V2vEhX1HkcX zfXkRm)P28fuiU-3xcm6wgMWGZ=8YeYo8}xE-_u?`bbZIcW7tGuUgEE9?2Pl)^4_z)m7~@r4g;s~^h%gLnglY~P!KC8g3Kk^0FxY3Kk3r~J ziu5Yq92*!mFvFI5g^mL~cp8`-M=#zs7EUNB!3j*iOU@kFQ;r3Yf>sh^GZF>48y9`S z&?P^)@ybs65IrC1bx0mT10-Cz;h#(JP^7(_!Fs-^T!%78S2^&z0RZA%^U>I}bH`%=p{RsLdrvYNJ)q!z2YHjlwS@AG3}}I z{GagAK)A~mN|+J>E%yjUz8ArM;JKD-PUUPL_qiEmUcr)O!1lC1<#HTAFnZmK zZw!3@;{LyQ_2#V~3{C!?0KrVd0u!?STL&OzZp=AK_2wo-)!cmXTZhSbWL?pF&d{rc zQ@3j^C?Y!Z7+xugRQrPs4rIR2CvPo~p@(niQi@|H=DkMtOiUJ*#DQ_Fk%SVI7C+-q z|7kv4jsuWh#DHr3YGk zh>j6T=+vBnUE z9Y($Va&5~+7pUV(KVqg}8w6ey2R(vd!%1BDI938;grZ=MlX*;2`mh9MZj4ixJ$g4U zl#I=%08upi$W~m#4~hb)8;8ja&*X1>0ZDiWC2wLw4b9+W3^3U0A{h9<5TnmYr1(c0 zG&N35`e65`1K!*QUd}aA41DIR(izv5QdJ%}CN3pnFy>!2<&Ic6NiR&=^$nLPhA##X z2{x9S0eNr%V+``p=8t_$2Nb@Sb5gj!7JcP5R0U^^8WkzZ?8-qo6&G}RX=U34-1BxLbJBX)K%skd z_wL<4Q$OeL&7Y0mAN|wwrGP^p`&Xtt%F8RS2Y|!po=f#v7s|M#A3S>U`0e-J{a3Hw zy8XuK$;t2VB@SS;802^eG6~x*Zj0s^{s<6=WH4zwe>!h+C!%><;Q+;#>y(Y=FF&vW z*lZT^_vRF~!fX~3+(=Y?a=Do5lQ!(NC|5W-7Tv^Fj2KIgEyXcz!x8~kz7+!>G}#v{ z24itgmtoHsp+w&rbxK?H@XMY++osFq{Bg)kCdv~2Iv3C}P;Des9FPZMjXZ1zLu`EA zDwooYIDt#XI2O;e*_S^3o#SLq?>P==4TOyW5i*zT(;Tt_Wej1V8oqVD+SqefE|p|b z1PC1YmsoC6D-N{`BYGWoxV#6O{}bLQR*v$GVYK-$m0S>(RDkFLziAa0UCuct>U5_BKEG z2%8bgCzPA@C8oR5ZIdHe0Re2Lqhzh=Cnf2oJ-0pR%Q=bH2d zv+ui?u3fJ2Z+!FJ|8(=(wO>EGdiF_3r5ItGu`&+h ztu6J?*pl|*6R$0a64E5YtA0#O0%} z4YZm$8G_Y#XE(;1PP)!~h`O(5m3PFKPvdnwT_|;Klb0jh6;(dd(YXw4n8qBX++w>8 zU%$xDHr&LEP8{?|kw+A9=;V<6Q&$dfgc7}du}qw2H1oqw^X8=utmXAYn?D>gruZrk zzBfQuzv33Z1Hvoz&krr6vRo>kmHq2ISGjbF$b(&Pv(edcxuloI)uYK)ne=UC8@4Ybl zoxi`{@7~|>?~naS!LJSX8q{yKTZK4Ufqsc|5z*Y|sIKuC==y%=&fPD^^7X|V*RJz@ z0s7`Z19i{kA;ESUeJm5fA|myY1{R(X+#r20%3_&nS~ioo?4n*sCTU)Xms;F%mq4IrMZi1cAH z*1hvcp1dYi_hvAw;tz%b6sIxCGo6)p7_qzN3>ecCicR(G^G$*{YRb9o zqRVgUlTv=VFT`c`ygn2bXK^N8vSE-RR~;pn3e#v|_cs!fMdmz7rj&H}dE+;SF`M3# zSA5c_Iay!Msm9Z>m9oa@+!EKuvSmalvHO)i6Kf9l%EeA7!!h}d$R370%YNKFs7rja z-`|Pv^#6yU_ec9|^!~`-AOG(+|Mla3y^sgw^$Ea%qU=;$o11&E#@2PXuH(D!U)+iB z3;5@+-ManRxG6q8F7CP;d{bDTy%(#z>o&F;44jQbHkq@KtpmysxS<_FO>8%A$aHRY zDSAxtx)iyHCT7OfCJ_)&-n`Qq#KkQe_Hxsvf54`#D`K+Fn5+9r<{)44kw-1SNzS|K z^qKiGruAMqSZ9OAx$S|c{>jB4HzOpq%708Ul$j0IVHDIHlNsKIi8xHcY0zW!7?Ojs zC?=0FaCd*{4T}NeSzjAw4Aq~YorG~T`IbP&<|d+T(g{5|H@@&h0+(@_i+JKd9+YMP zL(Yi!rZ*Tj$w@I>Wac2>L@Mvl(K~Mkp)UGqf+EFrY~D(yjb#Inwia+?V_Wuv zcdH)gWA?#6{Az+V&TL{ZgpysG(${nf7Dn4c)7J^X>trNk5=-6U7DZ{cDGcQlF5+wb zfA-yX-~G>_;$8otkNy2Me;y9}&VOzGvxY~d^#E|RG#dlgtgmQ#zW`ab9o;K@U%*@M zeDh!5zJC2HXJ==hgMgdKH;r!s-(a%W-Q}nHJx0VF!bv=K4%G;5rx9t~vp9}Ha~-~3 z@I_&O`5YjPgNJl%Lar%DFdu4T2KR1p2eWAvUw+O3fJuvR*b%@reSUvJcZPswVD$07 zT+-y@L1kdgUw#t?=MgRpj$;SUFUC2g*syF9e!E#>>ShQx_=-VCo7lKg6r22#Q-BS| z8ux8367#Ax=f1ZWedd&ij)O+y5PIGnV}I!aG;Af%rH$TJ%NZdt86**jBqnvpdu!G~ zm^dT~j*tP%py4>|^G@_I4*}Qh#@w@=)Dsi-aPoZ*(Sh*dM}IVKkeI`{62o&Aftd4r zI*79qcaYmx*NyT@PiLjvc8QFfByboS#qaO|F>UqJBNg#c|G$lQ{eL0e{eLYqZ0v_N zf8O=;!nXgKf2dY_S_Revz|*R;wQ+sw+AlS7e{InwiJ+t@B z*>jz}4h`M>#zun2(st}erGcm4m~Wh#z5|!XL_O#Hs2Hvd8!h;1bzR%@bJ#D0Hw|~S zSdin+*2L?dgJDvBdh1z7;CMOopcLoL28L7j3AS&!V|0o;qCV&D_D2%81Ad-9YB+JA zp)0gzHEH*?5y@hDqzlU4jER^-^C!IjASe8oUc%LVPKEX`FT|7elUFatC5CnLIQb=J z2Bpptsm!lN!|rwCT2QtC{yGZ zCFFdfelPN;u2GJb5A@Q`c9@Ojw%--MyI%C{GQ-EeDC?*y6$cmWoh&yQp6`l3lRa^7 z#igv%FIJtYMzF^6Oz@p->SXbJW95kxA1IOnpcMuO<;_d#Sce|Bd#+z=A0oqhRR|=# z$r;S{7Re`s{KFba#FH*spY)qGvrWB^zFj3k!TM^wvC_Ju{qH7WKtEl&nZO3H>MfxJ zjg?TMP2eGkv@+zWRDtqr!TiVVVqyz3u2-~>pUc9gz{yQD87kL>_~P#D7V~R;5}+x6 zb9cXKLVusCbMS%c@2GTAO#1ROr(W3)8CIq_x^t%fk`1J{oJFbrK0IlYO1xih3w-lI%yT2sR=#ru75dZa1TMWX41>< zcHNLi*w~3D9K8fy|GB3+C5K7lT-yvkxYYJgxr-c(N%wHn67nPng}&dJ4Z@t0szKf%k&Sb;|4BaYRl(3H$!CXY z-v|P+JjXh9!jYl=So}N!LL4>a0w!E7S!!fJ2Xjmdn3uGJAJ``T(pT=U@i?-4U*NpW za0_1WLzIUdgxAL0kd)M#%QyB%soo_CBnI-RGM|F2_iPtlMOMm2UKN=g% zs1ziMxhU^t6(ZOPFOtSP{f)e^?#Lizt$vXne`giKK^oJo{H|w^viN{TUd%Z;kodZT z)Doh6elZHjOz+^YBEJP~=HB~Mrd39DsUn(jtGggCH}yf{N!4ce+8E+Oa`W%F$$xIK8u2yS3%pSsl)HR$oSfL1)A|0i75a#XeM z_s2_fCg`iP$B#SE(hr5`m*TT~xaX@HRO_k%t9((_3_On6|H2Zkh2N5I{xa}+{#xuP zvsQF6c4UTj7mSa*CcvMlubZWsq3!$CCMFFyH~F{sv%HrR{hfQd5^%pqh*EtEIfGoj@x~2GXN{ww_hA zB%s~rsNb5E>bM>54RQ=qKfL;`y!AvwHEjEFx~N&!L6W&ZdRXl(TyamV3@Gb6{Aa&v z=E_qkKD@8sk586KRQJ{#a|R02#nMx;qhWnNg#IvFu#kRJ>$Ci=Y1Avj&IcI=5;iCyYX4k5w{yY-$Fhc65GSRvGsR(~DTo?+Y+8?#-ki4cDBz!-p zGC)|i|Be9GZrL_50Tv8P55_**|IT6dDG7xp*LghtU~|9ejaHi7>C7VqymojSS1hgI zhby}EuprLw8Ur<-3=Sum|2_r)U`fdLn>fY=gHNizAywD?i}A~%oVObiWptV;Z-w+N zSm-`p&k^qXh1Cy%CHWCS+**LWBZH;v4$$e@0CAttk3{0Nn{qj_rt-|fFEv61-DBg< zMtZ6~+Qv|<{Wfp?#rIP4i#=Q$C8m|I1Zwj^ZS>7<4PsdItQ+|H6Vk{V!je97b1aBn z8eD&GwPS2u=L?97(kHhc}Mbvdg3atvyA;U!Hb{{G*uv=ECIQ7aMG zKA>x)O1s{U&Kg==tYls@Y*;}Hd<{gn2D@je>1W$*h%1g6$h%PI`P{p-gUQCTXkQds zi6(fk@FR#1jNfV7XGX*;92pp1GretK@HniD`tMxtDxIVbEPCPHa!ja`Q2j#`;Khu6 zqAjraW0LU4D=qo5D@OkKXN5E{cb3V&ZOZ~{P zKq5^pgC)nMGkiWN?d;)^x@FxzpW7ZewjgtBR|c;6?jH*uSj&6oyZZb4+2*lZ4UZye zeGXiXxx2sEd%4)Tj(;22P21AM!?7Afyw-(vY*x+BAk+Lf@rh~@aU&X=;k>d4~uQV zaLF&eJSKW^C7|xfSPInRY9hu#3@@_ikkViw)Pq=%+vQ#V#zETb+ygfLmU(WF+}G}z z7+E03cFRwwkrhfgx$+^O`!SV~Qd_p}9|1`zG$)hC+SHL$1OE?vqU;+;_nij`pI3f! z2}1uolc#vQn-QO`W=IN`tENCu|J`(al+1X^M}#zXplbS9qUk9kgQqb$y*{-iLU+_` zH)q^J{$2fb#DPUf@k}k&<5o>}Hp}@h{UqrxaVl$FafTzkN0W_0TS8+%`N$V+02cbc z#3G(rpHtpMN_64xn3#9v=T1C^HElW$<)i304R7tk6& zI)^0*9{4Vynk=85YVjB_3PdyKWpg&rfvdJsRpi0Q1KTCs9{|+DSt`D0jq}XthQ`@9 zaiUmau^-@8V1j^hLFe`~3sUZBVF27)|hM1MJRbK`(qQhv_{FlRy zHC65)#Wd~atuN@v!GuVtfpNR=oq$QPrir{i8_h>kW*pvY5$yWHiDK`%*!b(^nI_ma zTS)8%O00PU=L?{=rWX=B3l;~wI#-`ZYoY&gKN`?3bDr1aH_$;SPGmTWFu<(*z>C@x zYyW1NWgUve-&$bh4c?yq9{*lw2tJWdh(Pf>Uxugc-#i1-+-o=)foiB9$$6b_HBH5o z!y*zgpS+a{b|Hd}Ml~=*6i$GwqTQ$Ar|fAJf<~&4N&Oi5j~7qhH(KRM{Fwq;&_cPP zs_;nQYf41Qk_=>*G(iEm&}2T2rU-`I+dNQ<>6twXJ`V~(>@>JtG~t>_XVKErrTGaO zufpGdd402uI|Oq}JX*5J2^4l@e59)I%sSkU-b>u@XlAOQ<*M(7 z5YGmu`ddh>*}s*nYF56FS1?_KwXO(yHgd?N^m(mO=t3f?AE^?033$^}211BCmgFB7 zN4$x-gJ{6kx}CS>7RiZ1OORMVPYGhTIg+Fcaqqyk_(cpZ#-Y8b zO1Wpop)sZGX{=mZeOPi+lc1D~=!;BKwW>eNK#x>)^?-XdeddOMG$NbDh>+*AkNTNx zaS70S@=w}xUh)^^Mt3>AYEGD`D^~yheB5yCmfCw$?OWFI(b|BQNqpB+yHf45qbWTK zlU}o)I+uQNYe-FBd^paQtA4U2*2aam`5XLM7(9#&+u{?jR%#l&;dQW8DCGEBskg&; zqqy<6fQnU;&UvIg5>06NiK=`oy z4Yu2dRNS5$X1xSfjU39cuZr()s)~eejphcC#Y2KIWX1^O)+L6NbVNFg8l$FA??O>S4QY9WD5 z3=Km~@2@6$%YN{RcyDngIc?j(VxzdVHzo>=0)+`&XWdO_$92Mp=mVjK)d`(n~y1@K>?bi(;;po!N~NilEca=6-(X?gDj+ zkX6;XNOYGJ)QF}-F0+F{A&=Pk@r`5q;mQOZUL?$qoARWK=Arv9yo zX`F{C;cGlkCx-6tKkK=8^#o0qKc+FTWecMCtuzr&DLdz2^{CeYc%lI3ca#Mr-1VfN z%x7KMwvdQB#7z;-Fl1wBFu9|zC0N;GI7bvh3{f$}=wIq311`iFf;P1#>pIZ5ObgB^ zq&_kh7lgH^wEzcNEe(@AIsi1ScmieTc?8>~XV@8IPVjjG0(i7NA_&vy2s{N>UsTaZz*YNe`a&wM6Qt)m78GwNi$3zKr8N z$H+PN2Ke{WB6b(4u+ao;F}GZS5OvT%$;eet#dL=tgV&0gpM&e`ClB34*A%0?%~I3} zvht6aE`(hDJ!Mhz1Lx|rhx_%?oOh67QIjhCPpDMoo%-g^QM@zHwCiVhh+%S7lr`l* z*2MIJKd~Z@6wgLw>TpG=Zl1#l*yJU>RBGTxl*{kC63>p9A6~jNVU;hq#40}Ugg6ME zcA`x!{}g3s0pXSUvtG(=15UYWYrXfTd@}65JjqRA{!$(cr;0NKU06aDkYoKjCacZ_ zKbp+!i-LquawQTBA-Y_Iyvz4H7jv`kFViYvoOH$K%B^$xbP;foiGDsW4}_(aMC;9gvK|M{+9<4#jutFNT8k=SvajptWm zpf*g5i#hk?X^!4cZHc9O;%Nn{et`ukGFrOh$J!~jiXV$^I!aUXrSU(0BQrB^W|;Ui zEfKY|;-6i{!DTW$R+rW+TaGGqwZ--+PW!P)lpJdai|r-uzF`%n0v3*RWuQCt1l?V^ zUibum@S+y=9hE|zfN9I)ba0!=8s~Vog63|>O`@X-bM+NUUPGcM-UmhqXYW`s<%RA)_p^n~(sRAACqPeQeK^yk_-USs?YLJ*jQ_Kpcm zc02MUJ6b9yhVZ4ABM(Bm@d^tK;GJJ#Y+O1H3AlbHNfmPCK$3#gMUibCEkd)*f!W&H z8a!KQzBn&aal5#rhaU??;-}%BCUDzwljClX)Qw>i#A*yeW1iOz(HgMvi=s9w1<7c0i)4WMDp| zPyWBU(N{4S8S^cxHlp~SfA6*9p;nmmNXULa6~!R-cYjU6{RWFY6qgajlT#U`O2 z0`SUEv5CFkG1t&UbtHYRO#kLMo3U~KI0S#c6LZ`)P6*FGTdWUdmrV*-?C?YpkBKAm zD#%u!z4J3Gjh6HIN-HhW?pA6F;8UMC(BsD=slQUZs$0Nv%TLli^2`tS#Cjxz=ofpe z{5`)^gRb+)rtNewhO%%vDq{Zup1MXvi1CI5S)58*RVjkxrupbxo&^coMKKlfE*b9& z{eDiq{#o*cg~W9CzBqN+Ms@YLU&^{I9ZbWQY8?>0${%zu0V}Bf`&?Y^bqiO?mYRuK zzA-CMBOU*OwI{C*JQH$F_OXlh-RBg48P%y1@q0oNI;y>$;N7&RfxizJ5#D^6mB$pZB^+DriP=B)s^>rZge>0{`FqP` zkuAq-_xubu2nPldaUGf=!~>IkWaz;e%t&3lu!*5L_Pf7Xc}fIr+Y z?-Qn53^rXK3R-f9SxPPqPG2F4qGOc%B2^w@te`&*KtI+vw)plb@?iGtBoNwSG`zURn^M z&t27y(7JG%kdYp3z~$cx?QgB5d0a1`qoR81`R|66n){>Yf~pVgiiyTINRpw?Q8w>S z{@f~>OwXnK{fv;T&nU|R^1iV=RKjy)doL>PFKKK5u6Z#f8;l?CiMCEasEBAb;}Xs; z#p)K^Ba$sQlJX5Bvm4*G(sHKZ-+{ttWrvUzJ58Y^&v>Jsa#nj97L=9QQ|$!qgMfUD z3}hoX!f^t0Y-E#L9YQg4mfJC89A0gnZn!EIj&N!nt+doq1A#PJe0>9bQM=n)BUk)U zYsbfPTZ4BHhE{4#BBANT$Hc{OTvRVkTSrn7+U)Loxb|l@CB>w&e}Djeiqd>tTYJaE zpt2uxS2gL8maItzB7laanfR#ki+<%M5r1MKa$L?Hr{>k2GsYV3nDFOg31`NOXVB^U zJ7rHcCch}(d3o~`a?oeqIrwG#U`nFTC}MKwN~3GC3*UJYo-w2LeMlf0(0@*2(`?fI zhmv(hx8&YYK5?T;T&+GJ4N}N{Er$@5?G*K>@tHawUY=^cKq==7F?E;^^>*oVBxjZX zE|+Ww2((NGYd4y*pX9zWtCqzm>=E`PUGz`xU7Fxtr0Un;O_ne0==a;4!;b3_Hx90v zgCE@Pzw!%<$6#bVW>Rq`M`mU=P14JRxqD`|P78y$1 zd`jFW4x9nB0uC=ybPV_Vi$gFgDUxR*Abp@`T8Hut}88t!)w-zf^Yab{hv%b!k#$#-HxwoCT5Ag0|kE3_mrFiyZl2fR^|8`&=9 zF?ysKvgEQ!>T|f%i2`?;VQN9;?ys~P=KPwdoX1Jhu(0bZgn;||GLVJ+wsF8t*Q^69 z7!q=vwwSVN^;kz6g8-0cK}ryRs{K@$U$c1Hp`G8IlWF2E!)*eE@@ns;k1N)N2( zMOHNHq>kPX>TESGqmnVEZM_e2eGwEtu#c@<2wE#?oB2_F#?mqrEkaR+ImtyCwYop= zsh`uS`fuu2^1fcbb>j6la|uqO3vo#S6-PUc*$UswPbXCx_-%%fmKCjfiTrO_J$AFKcRK-8GYXl11lc)Ndi!#3 zqDSQ0-a^)<$Ia37VQrO3XYwd*nST!qYZq(27B#dsm_b;ROge5K$Qv*Jm1shoRIh7m zHCH-bFBzYIjKN0lX+*!peOYXFS=SAFVk@6>y-x#o zSWhe)()lNrHKy|%G&X9FFQ+@jsOjvbX^&~vmRH}o3lQ*|7sJo=P}S}FCv7bXjiIJO z<8N2-%qEQwp0ocvJ!($Z+9z2pB{2l+IR+2xu4{w63DZrd^-5OU{$Fk%lqVd0UQ|Du z?2!*ncO~SXYqxLY`zeh6H_DwVo`odrAc6fSKz+>8aaL0=_SBmrD!Ise`$ zUhaXnw7|_M(tQt^w^tG0O=w^LFa1vf{|_VpbmPX6saU_ZIKMcdH8~Yg6gtLMRA4hvN-miJija`yLULS2ev=uZkuzto4IG+RM1|qTkzRsSgOUnec+x%yAQ|g2ph+|r|7fKkzCTTpF1fT z*g3jIKXOrq1Mu7r*%1KIN}eYcA$;E-*3fXor2O`+icE+AM_ggJKSQ(Hd(C%J1-9?? z16>g~@I!5y*j{%EENK~A3W~4mFjFdB3M_j(qBcOB_UYKM4BBP=U;3W}{wIO|TLL+L z%Uw+Y=6>|jzRMd5F#K>&$GHi4yD;541Rtq_gdVNavx&6g`eZ_|McLWeyw|tab&{4& z{$xXd&>P-XGISea87fQusL0Q)BB`t*)cNTpIm*o7ma2keN@MwI( z-@+ouvwq^xaF>eUQ6fS9f^Sh-c4l2afTmzbo>jnYbPlH*ZOs0X{ z?zeKdIFb0Me$8HEWs)SOJ$d(+CtkM~YN$BE+uN2JYG*b$!cdcTTU!|O8ejmW*zc=#WGf8}AS2jMNYOYJi*UHD7(|7yl z#HH_f;PW0HDAsAo^hWS7{ewzLLKc1xTtCMtHn9An{l}Q;kkV3hI&rbxt_35#$kwco z6YT6Nyt9y&4qZ%KYQn@?9tno_+aiPQ;afnQA72#w0Ws6G2Nv6WVbLmw)5WGnS(BPz zgr*LDFX@wzrjDLx$n{oB;mx4w`M#!rC4OOlcI(p6lW$UXgJSQ5bE)kcbN9qxH=s&>(d(_DXB7Z8uhSW_0xxF3hP%R z>VenLMri>VYtDhwRDSW=N>d-F(tU0$>3|jeuJ1|(@T6D1>FF#GM+x+_f*N-lq++pj zEB}Oopbq}a-O~Y;Ta(L_qo%tDfit76JBvsJm~exbDQt!Cx}}4*^cl!NC5P5^2p=i= zSr74dU~$q@K|E&}^?*2t98sltTLsoc!hRuOm5>rtfDH`rG4NHTO`*W4P zooMXJ0O$e>iDAKE5+S-5DcHp!%&OT}!AP;dKxKKz+G0|60PYak$wccU7^7zeF|QxO)`{OL_&V(oR@bpH_7VKE}sl zfOgaP8}l~^!Kj3xoeN(p;(oN;sFTJKd~y?ye4l8AnSHa2A#FCvtQfvO&kiSzT{{Jl ziD(cRjVhyQ6|*_k)x1l<8T%~ztAJh=fzJB27lOB6!UCTn0}asi{h9ozg4m>Ws=luh^SwO_!RuGtC&&@nubhQG{by+%)1n>`4%Ws2~MG7sKq9as+fH@*{Kk*KR= zi86DxJj(X!tH|lK>?FQ`MlM??!S3KV0fd=>3mC3TyPfN7jpYp|25(Y9edKmgTC@l8ST3U8|O2-Nr76ciT7k)yzbbFc`BiotakNJk;(OBHZV}# zt9{gsSHb=DIo-}k9VG8G`!>4JXyU+`Vj$Kz!R%Wi>i&#tgeVuf`?Rq+K*+Ia4(@?m zuSEvSH>}s?^k)=~wX}QAG|Z9Q&G-7vS23nLI83b4fXSs{xSbn;u55rW);~I&XAc#( z0v)D+@F^V}|9I=ysgM(XFX%llsY+h`ayHY*_v$@63f)75>;XZE-p^H+yEToj^50xK-8w1j!nv62Gj~Q*NQv5u9`# zk+pOiiCSxq3SLlOfGdo)KSnL=C_rZ~p4pJ`GSC$!5D!uUmr!$8Wg~TS@4VD+xlsW+ zHG%oat1de_BniaEKw_gWK)j70K8=!4w1weQt>1JUZ$l(nfoy}<-wFLw0o{>_P!2%u zE-O%6z0b&+4a@T}KTU_R;fK^eZ!M)u(Ud`OoEgzNkC6PkqoS?q@5r zqw0}JgDA_VC)ySkhnF3n%GFti(u#g=GjxwVOHdIXw+y;y4($hnrKRmerzvlk{5*=-QD5N1;VWlGJE*E)w_3 zDz@We#F5KFI$G*9_gzc90pUE$wPoN z#OxES`tlKWIR!>sYv^A?#vA~I{8+M++41b3E$g$Q6ZHu`Hyr~z!bvv=qy1N|F9jhR zvDYPMM9S2SDHs^kzt}#be-T;u?pTG@tWN6*xb2ghZqCaMsYK~Hx-9nkYC6$VAD88i zx3bgavYy<<8NaYwj2?B}hQ1z+ewSKsFv!xpK9aAO8MB?CYM3LVJC3aa7Q`{-uJG+t z8jkis;)ByRsx0<)pnWT#TFV;vjL*L6Xip{^h#Dq0J>f-a^vpuNnM55}uWkudb|L1> zhGRRTwBkD874Xn0Oc%BcTk$7!7ZFNAkO|i3Mb@iq59RtRGA4qFZ+t}kzQA9d<|2d- z0vZGM>JUIqB-2F_iWOh6wWcuPjkbJw#@hY-Eyt3w0@EZ#!Swvc!wgXQ%0w~870*D< zLlWcAcR&3;%Lk@;@?an%!}{+qNn6L|HS{}XB_BGS8}jZa?0$=j5KFam`e?6DlJC!i zqE<;$6T3X{aXWn-?(0#)>V?$@L*U_;uCDfX1vob|RkX1FO> zb@^0{91bJYUbmr4ko=AV%hqF#QWX4S~kItG95lXM$t zmiOJQjvKkma4+djX@kAFTA(xnEZ8(oP%Rq>83?#|y;iiKrGpr(8wE&`>t+-H^$qI7 z4*(m z7zcWb7vB~Z6m(umZKq3PRD-QJ=Fy*nwvbLi}51HKLF|34NCZK$XHOhWMZt+V}d+Zr>M<#}I`Pq<-&?CKq!ou7z!px;$9e zk(}v0oQcV*KumdA#Wk%R2@E%l2IU0TpPaXZY&7fv{{@VyVm_hC3b+DZYbZ8pK#-D5 zracm0yxO`5F{Jk#2ncFa9$FOUBVGK~0UmDa%CsG0qF2tW8BrUDBdo<^M+SrRy%o`+ zHYXHteK_(}Aq8$#n~m?c(!E2`r(fOnjWPqsnmGBJNfJQaY1bo<64j}D?TK>f_*$tk zj=!K@g^l1SwzGqdRZ>CY{R{VnYR5*Wo-sFl`yZ(A z#f>l$`vBZ_uG>~4_%9>mFZ3WqUN_<XTtOQhAGL-iE_HjqbyKxb zf8ssO9^Y0E!{j55Gn2U`=lUhD(>ia^DG(#)c#g8Uejyn_2H;{~xEOMShlj!*mV38z z#<~52TAttgvkcg75@>|5Jb;our`wzIvshZVM{>|~Uh`K~E&*hvq3*9kjg8gWqK7BQ zAwfXc!=Lo2gXa1AMzrZXKO=;7%4Kc0IqWz5^aeW<=JviVeVcsTOZA@RL%cVg`sWe^TFWq)6$MGgGymR&{GAJKg0H$~UvtK7v* z?Sjp_b3FT3_+Vv%uV@<)v*4CRizi1F&2o!K*BKeh2}ikHvedrR#_)zf<)CieR;x~a z0788lUnc~a^1F-3gwMauebefISXT;6)QsD?a8|DlK89LiGH`2~(WrSU^2$a1J0$1DyJ!@q>BJ1A0 zr5U@D@g<{m+&>q*_{BQ4_3F*O;d|gdlbljVzGu(BsZOemPfAxLy`6kOg@Rf7D|ntm z=rWR2PN&C^Fz+e zJEB@3(q6$zMb5RmP1SO(%3zmi>zva2!VhC-;5=vIfD9Pg& z@9$yO=F7(5g!Z=9F$ME|UrZpP2SS>LkP7ASk?$T8d0XY|x+B@b%wHunwK`&>WULQo z+V6XkR$7SIKijA;wCe#aRFFC;jJdoj1~~xs7=WY^G5yf;W9Xu9u_>l z7xmAhCcVI7-;zyj^BIp~oZj%7r`~FgqJ8gryidQZ;Z$j3O_9cdt8_=V^t!y=^ryGS zEq%V(g*ik2PG7BdFxB?UV${Y7L}sKb;&9e+7PVh!UD^Xp+n`Evt(%9yJnG^90yL7q z8ka{<$BRUzehz4ob#>l=U`HtC1Yu3aBe5DG1Bl23rePWFdT5+*V=$uqQ8!w3p$*Dz zeHaRX4w4P~*3Y$eOGysjK=}AU`r*c_w*^+((u1c1Pp1q^GFTkx z0S@9nm>oGYWj%x3w08Kfat~&CYAH1TN;^LgwY+I;$X3~?qFXHbjx`YNGs#$7`>QdmQM1TEhc#c`oc}^{}h!TIb4R+{z{=eV{Ts;M|ThSrG z$zehakPKN90q0pk)E6zC37yJr32)<>a-)Z%u~PxJ7wf4TB@j@*b#;`v>j5F8C9MqM zoG21B;(#{i=27a&4)^0V%9OVPzcd%1;)0e-+37CJHJ00PT~#=Qr>3G z@ayu&h3?KHPx=KzZ}`q)571pDY@h_Y{xnVLi%-)$!s)-nnyhPLPKWb83Z;WA?y^(a zU^z;d!5fX9d!}5^zrvNR)Fcw1^E@HNMQP9TTB%4X?`xq~Y1_N^l0O={ zt&GJ}itX>A7NN=}|Hn88?eZusfbct`E@nyE2smeshp44}Y6L9Tyr7%AHr@=D_e*B>Avj;vsukJdH z(cb}rI=!!FTZ}7R1^lk16jV`Y?{yAn$dB>LZCEI?oeYmikV1UM&b)CIolKvdun4wm z_4N~PS{9YQ;hi6B@v7naSbFP+M18%Jw@_=RH&j_H^7^A~G{Km5iRY13uk5G4VslME zowp8YF%(C}KNC>yE`Ki$H+uD?c)ZA6qD|H=e^F>A(OE@>zy#d=`tq_*Bh540wiKq zS4otZn7T1X&BvDC+70A1G+n_*Y)K-fbqoSqPre;5d;80cL_3LE(sVKEWqYc+-Jmo- zdp_;9{L68qQhevPap`-_zd?cH{cn80lEV@{HdSV3|GM8IVmK`Lmvbh8A~^ePXr`IY z@J5jgKCOWAu}%I5sLhqwWv~ow_4R6>2mSp|naM0wp}8Zpoe7nj#=lmafo%RRY^fYy zy;C#z>(NqR$UI%md-iX36X`rxhIo^`)TVDB?y(T~9qMjH@Q#T;M(^R=4DIc@R7ac9 z{fj209VR$+@{Q3^4~8Ry+B0BFefxCn61=f}KhZkid_kzJm95wg2soTap{YV{e1|v= zrTUJ^c-xSfJ0troXw6W9%f_qes*SC%meH@8 zvZW8f*B-X#72_5FcC6fA$)?XeduY=#h{^ts(oD4@6QZ{C6iYVV+lzLO22P}%q!8Gt zhq22jZFH4gm$ShG6L zKiE^u9eJmle>)rSc6jOygotx70U^_i>VzDT-MihZ5zvqmH)J8t}ZU@YXb^hsEc zO1^9*;K^aB$_I1~l@7~WSi#nF+6@LrV$RT-%z-KAMQPc5ScTU-R5%yk<)4Fh^)jeh z+%TO_@G>C8n7N)>CXa$UnleGs>1xfb5dE`0pM8ZzCHRhfJ)A8Ytu@*VmKtfgcrHm8 z``&bZ-n?Yj4r=E(0QD|lXqxQL8g=OVfgWtTN30%j5$NjWFWMiiqC(c)<;N0!W_YEX zvRw7eZq&8opwpS?^9|S#q>krTT&XjQV+IvcJ=zkVDY2UER#b6XeDZ4Y7l&WKG5ze# z^wnR9e;THrcQUE`OkNLsB)=i0D@dbMN?9vi^vUTt`k979xq`F20j2F9y`qN}hXMPV zZ(k+-Rx)M284xdMeZsIroM%WJDo@pXI1=%wjUi=_~u(Qdu$XS18=NJ8}9L> zdX3SLu`m6;^Gbx+pe*!pAsk8agiYg9%BL(4cBq6tq#(KAZxU@(*$muSY@S#6Al<-M zq0;XjL4*|epZ)51b7h2ll@KR#;k)Jl6(6klCMtQJ+v~(Ip6N)ZLdAD0ps>$l{cw z|G|kvuddRl+d}EaxTkl*sFkz8_rdl2wZ2*UjMroL4Uv@k{@;Bb6KY_C6*Vhcy_8=~ z3?yPI)^F&~){q^fdA~hqcI=aQL>0YnA&Jc$YPM}?N+Qv)6+_k%vDCdeWxH}^V@C?Z znIpJ5p513Ydq+-X~* zrIvDSUs#JvdhM11Tgh6U>T0#TJZw@CAcL>@f>g54xwfzA?j;D%b{)RP;w%;QQ~#Mu zjZTa<=7jZ~c~6z4(R(fN)4+RwG?gO?C4$3W?FZX8=b6=U zJc%*SqJw5^N^ZB=nEHNpO>=B_)0l|aV=L0laKqrsk$vN+@!WLPfh;C+CQA^Y-)1Lp zKvO@^S{u`MgY@)3tN2V}iH5j&7K}U#4xMRSCT@SOkP)7NP^3jky~G5lAP-oO2m2;g zAzSF4PFT_8R9~d3i1%((>vqk=hOCIfK(tBHz)J$yg~ER$BXmM*FhDh+2cYuxD5}?w z6XZJTJjv~S0I*7ZP@icqw`{q4|93~PsWWW~JZFy2%TqHjH%=+04s5lh?FJ`>T8d4ogI3hZW{ah(eY5Vti0u43ivu6wH}oCcUwxtKHLxY*W&Ke!CP{x8TXVBK-m^TOMrK(p2- zVC%!WI`x+R!t*|+D45<^g!YQ&6&@jXBn7v?FSezVD7V;OxMG|Bg!}+(*ehWihn0@Q zm#XcTIg&Fpz{mEYu&M9LVgQ&r((3s!}UI+WwbR)<436vie*EkiNkC%Vq9_8@aO zehfO(4Vd4^?zj;mu}rp~vntph*Kj9QZvIB=`dQ;zE@T#3@f)!CvdthJrtYEX5~lIr z?yQ3Mc9-}w`*WNk2IAvh4VY)gRj(b4$WcA~m&r5yJDFBIxe#Fe;t^Us7rfS&-S-x2 z4D)W7PJ4K!u@RX3$ET?@&^YFI{d{>7tKYw1ZitjaKfeyXz+`WeT46dRwaQ9Q?T$J3 z^2Iv=>DFK9dM$j5^SD^ zwrnu~&>xjR7QfKW!c6Hq8}2>|utm_B25}}O)tflPefp^yjpCcivbvmP(&-ulfRiD*P)WM3vE}rS9=vv))kqWeJIVnqKA}QgYOFeu}Oz<4gTQje`i&H%=@yJ-J!#qa+@9cOPmm{7Zj@s zGZ0sp-gKf7mo5Uwd3@3{|7bfR@_l}KGzo-W83{Er;!f3tKgk_fy;eD#=06SH(S%2u zCE)}y%d$@R&hZG3;CYy_`l-c;rd^d&8+Q-`!~$Kle_Y zUGGGrc2zEtHRC!ylHSbxgj9S{cWL=Gs(b3gvb^8fetbA2L&jsyD>1P!gaByQ%7pmm zlsI}O7=~&(qy5l|pLB+ku4Buru;}2rNUz`e_0mAskh-1QM!dm$9qheq!L}++Khzi^ zT$1VGq90bSCuuV}C?;(k_sKCnwa3P;`$vS0*+#`n7q){E_H#B9uM~R9nRpK?J;-Ox zp;*`LUE$kfaIYCo<$h>!x876vlsY|`j{9mzZAzG8H>7?+s`Rwf*X3cPe3}zn-xr=v zL-&DGx%OEStnL2;oj_v0Fu;9OZLEbC9{_8h*)HBN&>fEhw#A+KGjbNBEKH@8tch*r zam_i;3NpTe!!b01@k}tm1f9XLHREM#~;q*DQ#Aci&Hij{)z59&mHuQCv zqvOvo_8Sid8!v3OTQ}ZZwtL>CV{P-?()O>Vbp2j4wb*8Tt#9qY>hE*+vD>;HxxW5` zAN=4SkFVlB3cH_m<5KR}=T-Ortn|FDe_b~h2QPlz?>pls{{LG5>|t`0|7lzea5VPLwhm^y&U-#s6O!O?NnkF05RPWe=W(d7?8e${|~ zxOwxDGvx5Ab~d*GJSf_u@7)M7Cm3GguP>jj(w1&E(+T{nW*Z?j`#QxBYk;M!-6BuGPN!Jhudo?zyFTJhwF7{`Eo8amHZl_O74t+2#k9wfQk`K4cp2mLE`jn!v6xOoTfi_UtHq&r#WQ%75{J_EN6*@kn-1bN$p z8*HkPCvKg%@TtZlHw;QhK0fyh?*xn+#W$rQ1*wN!7#e)8!zs=rHM|i~Rnq~YwIt`b zNh=??VLJpd$to(mxWkHBdBCvJ!Z9r$D!O}`2>Xf2L2u~c7^agc4kQZ_nTuPlkvIE4 z>nN{89FVOJb7j87f}sbMDqNj2eWO0SUX$PuJhhi&+6}MxRn1|jB|G$+wLphO6+}e z+!xo^de)EbzYpix+B(OX|4U!`(%U}!xTJJdaj;$Hdf3=j5`M)8Ui=C! zJ}8PDk*^E{>)Nc7*%)a2fHMcIx=Ct7N7o!~oN-Xu%x$ZBn0s_xw!kDlLH$OofLF@EH?x*R6iSQg{^CkqqTTXk^~G z#v+fxW?Vyt@lZoAyBHA}JJ)3{^6+tMlu176TyrtR?;2;+=%?4$D5cJXGl<;S*O&5C zj?jr8FY^?O>TkB$w*+t=x~=0^y(ovc%RhjRq4>HW#C2JkW}WvKW3bt7Y2O;poYxty zW4mrHpZxCc{_by#aDSgpmwC_m zJnH)mK<-tXdwOy6%1bZ(t08|o8zj4DUQp@$s8Y6!@VDF>jtQ%oD z7NL65>KoM(PS%<8#E=SGrp!&m`IRgD`nw1E{yPNm$_1muG(I3;bxA3V)o{psJSVfC zHz^s;;&2?iXMsv!lVv_fEWuUbLN!Bul&pQ_DNa^NPF2{sNIdM8y z*D>2Z5kyZbvz#B-G*_R1H9}S$I4AwQcb;ya5%eHqz;+CC$78o{xpMUReRb};p0n$4 zthp}D*EnKV8*|&>F;};p#bIL@m$N57z7?JxyVh?Xc69rDrN&qqW7)B*eufF#O?)fh zr{fd67Xt4K({iPFZsyPX&j9!WK;C@n;~)QR4<6q9h>gAq@`5^Uy!Po*Y60GOB@2XG zuejiS?eRxp^85YM2Ao`2e2Hpan?TwpKI@v`^yG%&{E1PdNYh?xsa&J1fJu+!$jOoR z^pP*i%X~Sv&427Jwy+V;W5MgF1R|XECx`erc=3|d!bVXwVB=rd9G{yA=CmO_gvrIE zwU$orGa`|i%EG+j$%9@}bqp`L!d0&k<5+Ov!=9L!un5iNPzYLIi}6I}Ailq_X8icS z2(V-_N%y|nG9+t>(?I}4B}&&kbvZpZHs%@X*pOONqE)8@krii?>q%FxsrwWkF~(UM zb4h|*9~5~_9M|H!$V>h;hih`IYqB)nd@J7mHQx4)H^#m$*L>Z#>W_n6W8aRsd$Dr$ zx~yA*wZ6)g$8+O6wRKEH{nBfbI&RtK9WuNEIIOQ&V(eRW zKNPS(>44j>yErc8!|u9!t?-@2teACv7I(&TSG}v>9B27f?32!&gZQqW&DT0Q9$)uc z?-Q zwFvu!%k5g584!HDh_epPBfN)=&$Rf(Yany3O93VdE$EY5mKC?1n77KcuKO&{ldSQK=fw8DS6_YgroI)xt(CXe3Gi7r`F?)Z*SW5bb@Sps`FZ8l zulwLH$K(TfzjH14M&zA3x=hm3r(+uH$x_>D*$|hnso{aRZ8E;mm9Bi;1jhH9PG3o| z!&z%CT=1@L!&3IO)dG(I&0y(kGpB16$mx~({Y*6B3?!J#Y%YVzR@Dse4 zjt9qL9lW7q@AG5S<(c`OB-X6gI9A`Kxw*QerjEDXG1qj*Ti%7mPmcTGuW{Yw^E#Xd z$#8D#GSrgli`f&_T-<(R9FUXa#lBEuZuhD#{jatHEjN&U@ z*UQud>rvG0Qd=NDVc*AaQDeREOYcBz@uG)}k!!T6a$mXUjELYPN=4-PAW7zyF>~pd z2j$f|r_m*tAL%+lWvvsRTA&oj=F8gnD36txI+eZ52{Xk0icEpmMHN`_VNU$ac8ss^ z!Qw2#pel#81!L2z*=7$SUpW0LWJMIWMT@uTmTVYr$g0T+oBvj98GKG0zv6Ta1dnm{ z+wS>&<>SQln!3JnT=I20dY_-wYd`$f!S#ITmxg03FX6C*G0yTD{;m34wMB%j17YXFd*m2Bm=^ z#=M8H*JqO0Ys1cMIgeP^v0ixV+;~Njj14g)bFi3FPh@$*h68_E1O%dh@OfjEEo0Xs zP=-QE%0LgQ4a~X0*1Ba&u#Wi?_07=K{^%Y#a|K#kuF%IRM=vU<$_?f^53c`^i}*ZO z*#p+%H%k@Z^&EOsy{uf`R76c!yx`4V6@Srzaeq?6MU}H}4Jt~!8AoiHLg;+Pe3%jz zp3G@%m*~!)oE0se!Ia!HRaRi4nQ>^eCtEZ*TDa6p9;#hy0_#@>$86-6rOcBRj(#rA zuEiNSHRraRp43)*&#_|r9GtP1-H(1&voX%=*v{wJjy2x4j_G;OJ@4E-&U)u`oPA$y zd1?J#gX_73!++Nryxvt-?8oB`zz>G*p9PSa!}Btpw>JRZgIM>&_rCJVzpINYCfc-O zi(*eQsP^f+7IIeuAwXWF7#SrAYy*t=>IMbp3l^S)XRLC9i+Exf+JOCgb(L4X@E1hj zjG25R2jHMbq-{$0^QK75SVDkDJRk<^2r*tNBIoILADHD(&Y=@YDakX7H)r~7S03u9 zcr~I3sV%cr-#X6tkO|MV$m})XxH919|8US4f(KDpL`q%h;8>6u6EKTRlf&{TIP%Ohy$Aw*Z?>7=F9)cNoPlBd}@oal^-Xr zYS-imqt2yp29YB;^&+U{RRS!daYal~%8+?dJ>(%O!yHSffkgwxCh{}&9AAVo&mLkp z8;Tl^$~NYT4HC|o)>xj7LswcS_j<91%`Z57?xE>A^Sg$5&T#myjmOD##^w0c=egxt zgX6Gwoq3PB<}GBTt=*345|0_O28$)Wk*&eOg-;iZGULzOxl;#j8bKQ)cxjyU6 zq;e>%QlMu=y^7Qek}AAF zDsJJj*uI5g>`e!>;+tj2$!fHIW(tiN1+fZKF>@SlB3z$& ziN7@}sA4kH+}J(86;=kK6VnP=!7YE*sAN_zboW-`0UO-X>PXp<{%$t;Mk1k8wS&vA*DAvdnL=5dsy--AB+V=a$z#< z7ic~JFmi!s4qeQl;!9gP#34xK5Qfh}^Qy*G6heWoNO?3DAy&TxUFPIfc1aL$Vgcx-&4s6;}n|Lia7M*+*TOe%iv*QwqPEFpWAnYzUcs%Z#eqq$P7L*+qp_Y>7dhvBRpY?){(~1XXb*%qYiJ6w~la zq^h~Ogg(Tlhig~YuYEG%b$QKqhBNn>uiM^k-Rp3@>zsV9 z%^25!-9E?Jhcw=p?z^TxF8&(VneTDyG9E7UK6kCQok?TPYPn{MzYzFugr8rF=aTg6 zTF5iudtTlEaI!e5toMZ%9=-6NYKAea+Uj`7@&Ss6PkdmRuY5qKA53_JO+9gC3;XfG zFo79UZzf`*-_Z}r-x^O&V_}#qdg#eiHefY}lj-=9^9ZwINrv1^y*|g9-`Vr#VrC1m z$HC2}xK`&8!HnFKBmW`+_OMl1&f;2fo-xvKv|*d^xCCi@f-^6h=AxnZIWoRF(NfH? zY4m2JND(AU{s5$LAyE-kGwh{CUOv(%t-_{X&cuf?Gbp1DMGb+|3@04s8OBAabZLzf zH|LS5IOVLwh*XU%N9V1iAdH%B)^3mGvCiyBC*a&>HPTo!tNN$?nAe|W6?W~`8x1l8+ZAy#h&?kooD`QHewy$rS)sEclo?d zbH)6JKJ%H+^#3dfitEj~E6G#fe;(cd_$0E{n@@e}6MtLC56$g}O|EThq59(J=Z^<< zUJvs|WzPcZdn!3&&PQcUF8I^lF1UPP7tZ#Xb5;n~3#9y=hzev)5sZslLxnyb`8gwTUJ3%LQ||6Opm# z4D;3VL%8%*Oc9Jai$|CwOnBh*$i=T0&T5V`gNc`aP6Iu!fs7Fm*Mt>hPO5&dbv`fz z1qSzo%RJ`c6G4HobG;C=j$t7LMhvBon6mX)Ok-3n%n$aMX?~J77kEUge>ySr(JyKr znUulnu*9o=P)EIb#3kML5YqZ3?Au{?9%_8!4gRWZjx~2*mofKQmod&`UdzsFo3YNb zO5;|0&$arP+kfVJJ8Wlld42Y|221jKy_WZ_rE@wael74{2)%z5z^-Rju6OLSxKP%} zixd0exBZq+{cOl@?+ZtNgAFyex0ubrg)%R=!_E~TvrM}#T1`3NpFXoDAMWrMKfX|9 zx)^7Ii_-OoEmM=@P($Vr$5EqkZPT6^jo&w7#eiOJHFZ(5&R zBd4ze_ucc%ow>U0KG{0&eeic-$nW}$we7CjuGR9SKG$#-Z=0pDUD{{aeP0dTJ-bi- zyZZb${>I<<=3o59U;O`~ZvHrs-_`X?{j0I0uUd|0{VM?8UGlU4kAM8PgdraO`9YV_ za>F!~J$0UME~?xM`K%%%^6Y@e(6F^RS|BqXj^j%k>B8445QXQKnU^D$v{JuyJdCu& zF$<4*|G=D40MnCknpYSctPLp|VI5n1#ShY$)H7N}a@7={GGdVZ;E>P$f&>f<9LZxl zOpIh;LlvduTt|GvL2(&xbOz-nthfp|%c1O85mnBzk5G#5X-45j8!mpZ%*@q-oMXqz*%d5@%><1x(V(b@%g^(wyxWMi3hA-9rL()&v_Pm=C|!Ezil1UdF}W5j01B?@A1|h?>VyD zoTqbkOviSPw?n_i?YhXb*0$R2^1ttW@B2q1=DGPQz_b1aKP07*naR1U5hnai6t zT&WL#DaY?M=YttE?BsXNsy7U>Q-3F74glkDV5`@`hz*b*l&L3OuvdJ>X4SoRVlzBz zmCv@8K68L|uB;^!V5>ybQ6E}d=<^L(#wQ0Q7gnL}5WK~Osd%$4&$4e>IGn_Qow8;r zWCt{+SZ1D{BXnJJ$_?Jg!scSJ@juTnT)dT$5 zP?<-W2C1Oz2|mB%Zii!>9a&G7LIDs&HI=WGsDN>v93HaU&>h<#7gg|n8Du_qI^QK; z$6K1`Om+_EIm2DE^*H!CCvo;$b}nPP&$b@hWA4&jgXJZB&v^;+B=#reC9bcX-0Qs8 z6F-afM?UtkkMVZ_{3f8gpE>aN_~Cq3-LW_?Jd(t+^9t8$1RJpQsBWH{#E8o(2yT0smG#pWbt zI5Ss%FFtk54Azk^!Rq_<#+WN{8KJ15X3E5oi_HR?>`3@E&pawNEZM)xgTGE=l^qs1 z5|=XPa->r#K20moKX1?=g%E7ywO_SWvDFd*U320Rpk4+@n|iF(Yf#Svm@%Q~0YoJI zNISE>Hs*{o?CXlu6G{CT6Wx-ejo0$xF@waAJVV8xV%2E z$sELm?dHQD{_yV$mFET*n_re#{u*cUe0`U8Y{ z9}|~14?c3;HHgcaz-whAWDRGo*XnS@VaPFb&SIyTe^~|>&h7BXf^b>^ooOZ zg3$Z$+XV*|rB4YEBzZ#(w_XlSIJ2V4>&525k%)Fo z#Jsu=;q9tR-l|%lTb!MQ45}SyMy+lap$fc48%JiMGEy5g{^*&xT+i@Tyw}b2R-MMQ zoP9Gdw}g0gjv`awSKJx*na!NtXWg8hTRP@GlHUfpPaGJ(R$klh!{b=TFn6!)v+az} zHp?D!rn^UHz9+Gf7f$5a>q$7{uLJ(u@t?%?|0Cc@Xr79g=iv>&P5h4MOL1HA*Pg}} zmKW^YUc3Q;iR(!tFR0SBp%d?s7o2B$&^E8_$hbCr&>m`_~~ z?aN{_g_(_+Rfu~|ORHG&s6;c9n-@7&9n5inVMw%?w9cb(!V2d#B*yE_YRVSE8I!-w z8;4`Sj65+JdeV)f{yqYJ;j0e#3gPo0iA}&1kPiFs6#%G6%mg4eRViUs7Fw_N8)sQL z1m-YnlBq7vLw+z7jxZA#y>7Ea>ew^~vSooN{^gaSjBz;5(u!^7mCZ#kp-$C0suA8X zs$VX@3CJ8?muo-EtXy?iA1IFR81&V?&R0D1vj?H$*1SF5K1;_~cI>LJF{{7NjqSE; zI{7cvV6N4F$?iP%TiSk2t~st@@8g5-TK+X(pLf0G`rx;G%eQ5_+CPKj6y^-%S&9TO=7a*G}T$3+9LmXdn z55MbBrr7E9U%>`3u^!$YlP@vJ3xc4)0xtonrr14{Xl}6fyEe`Bb@&ln`2_^Z9t2t&q8$l-C zxx_Al#4sPWG*tpmDt=B6+Nh)v3$j6w{v1vxHVXZZc z+!>#dBp_dp?pbk9pEac7xru?t0H$@M5|fIpM289;L|naStj*aEA~MRcq9&P!y`D#+ z_=ojyEr~a*wGP)PPABK25?ckhjxZfZT6G9jiOg4#&NcEtQ7>KCg_FO^|$}^Bn9oym5{*mN_rSTN=Mg$9Fq1wwu?oFd2MIjIl}(K@jnH=6z2T~z|DF}r1ui!%}3+Y|G4FUw{})7fbH(`i0d{koc^lK z4`W;z>)`%I?qPGH+%CuUJ62TY}areR;#?n}+1?_5f;R4hZTZFRQUk69Y%; zf>6Ia-CjH+CTnz@WN{4JU=eFD^5qqd$?FHc*PC(pjY&x~F^q#GK!e(9a6^X*XEt%# z4UyDxdR$oBbYc!sVaJm!5;KGx|qcMjVuyU)6PmbUkrx^Dk{q}SK6<|3b8-G3k59LBD- z+ur3G(|yt)-;$g+2!TQID$YQHpYFy(Y=}h$)o9$71hv`@0LC){q;-DyIH9>3Dy3x)Z?c1#W`ht8`f*X4a4IvwMOUAK|JbNXxjQsz7d zm%NwlI+wbpE@QqH9bJ#&vto`8c|B-zR3x_u`8${>u@^&jI*N zz820aj*q>>+>d-e(z4+$h<)v&M@IMh~^^V zHMqlXn_#XX$WZ%5_vV{#j4ki*S+o;`bS>s`eC9~M^vJ8PBv6l{h@{voICI02bF}2h z+GlOk4~7Agu`;v+4>e*ZFP8X--;0}Z;f{%N$XXA4%ozRfu5+Zg42h#cCDBxeWZD%! zz3C55*Q=ZyVmJ-DdZhNmAsm8u=>S>72uO@@svibM;?TsWWX#fobbVP*)+{?dze16J za96$JFI=sG*f9d8QZsv)laX3f4;Hw~qic-0xUe2a;?nLo5CiG{RG6p3FZ=9?W0SXn zLR1C{(PYFAC9z{OSG_YHZJwKn#pahW=CFO8`}`Q6Z1ZURwA|LtFlV+k63l&Y#N8L? z9FK$VJ?OdM&~@4RZ=3TVSB!nV2IoL_yRpbi_KvwrcOKVysW#{9{`ifIANY>%_>T96 z&(9OC$mOcMtAcm7|5os%eSchDpWqZ6&stb9*3gBfi`v#eGmn2~7a?4_ zP|O-(dEqF;w6YlzOhk!R0Age*8TlUG@MbedUa+CFqf-hmT+)k&8xoUh$Aw)ej7ph) ze0lRiG5#Jwj}3gTl{#~%24x_AzL=O7q~2)Y4-Q_G+=uF_Amt#~qv@!z1?C!J!V<=t z80HmYITDpY`OS;eFXMNEjB%iEd}PgPl=RH09@49*A{qO%w?GODt4;^4!lDSz8AXYY8JoAFRb-{3< zfD4d(Y*vhza{=ALr#B&rX$DmIMh$RciJJ+nia|2T2WmbT zZ`Wu(YS#y{UWy06OLd7(DVQ=;|5(GUG`)G$e*jblD&pnOMCqpnY0Af3eMTue>Ud)y zGw2$|NM;Rq4==4LZ1FXIEh)VCLG|;7H9x{5K7nKd%Tik_!b#r^L!^^sgiQdkimxC4zXu|j^%Hbp(0n+?^yvmZIu8vd@YzD{Kx+txYu&V_!4 zar`R5`_+A&v)k{hzg_XHrLV`ltDU;+TWjp`m-IE}(wz7;&sxjsH&@S%?S&U!_=iID zUk5bwnUK%w8vxez@X-s8{s0>XFK-m>ozVJbLGY4y(uq#Kahy=Mbss+ z$L}d0af35}8Rtq}x$|XJ_9C@myXLwX^AFL$C4hny!vV^A*$ob!Vw-qbu-41vn4|0j zfFWUWrA2Yr?8h9j%o_z(t=qWlN6h#KA%0Dy#39c|vXl>y>q9>sM}YEG!IdWKmm>%g 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

} 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

Uf5Y2a(?eOv(p=tTWyKxq^0>PF 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⋙p*M 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%0DRnL43b$ z`W~0|Q|tF@C)kIONU+Pq*#;P1%Ov{Z!{__uQ7OKdsP;9;~;10}80Hp;*{O${MP$1G43R|^eA2he$nWYa* zIV-~6c+yr)A>qYJMszW=jdkPaY@eL<>p+M_*fm~wh{|tgxLg1z@dLOfpUPTB^XdClEs(Fp$zg^L5;k4D-xdsF&w0=xbI^v)~ z{$Vk$6Kb@?GJ=5;di|#;17BZNY?3N?dPY3{7s}WeSOTc@&ql$TlX~UG&)AgHL;zML zDk|-9P0b=yaOfXa9`jb%C|VrP!Qks-Yr@8h@F2CPXB=2y(;bc-3HA;}s2vsyAGcTu z!(zS_RjKn2A&YzEEZ_mTY`n^nbzx85U;95J_X7bPYk0Ih^2npxm%s9RY9ej1m+k-l zH~)J3<91_CiR z&`W2mY{D^#$*Rjd!x#>)Ima1znBCtgjv6dlJ!lNT;M!82C__GM%rLXF?I|{GO5}oMzWu&pi00Ll!yU` zfF^}4700r-QnC|*qYXnlG|Zv7kjX}bz6To~CL?ZMxz06V);gCE-<%QF01Q>db&>gI zLX}QlTyPFLD^%A%8lZ&M%~Tn=Z``7=7W-(Nsiu0azP1BO0k-&>lG@U^jX`f2ST0HN z&qc~_At)!sn=8<^FZ-&*S`UlAZPm^|jAV+j@#W)wf<;^UBZ5@yB12&;x+m?`YG*0LB_W zwX%*u#u}4qH-|ZOmqkHUJF0hN>reD&%=i3m^D-@@y*Ag5^DZ}&l3SPzTilY!j`NS& z(ni^{kU_>jN}QX=ym8ity$8PIWFjBqjEZN%k?9=od}hDmHh;eZB%iL^K4se3wmVWg zMMh%2NJ@VM+xDS6%3>LUb?!ZQGH;1;VsgPg8gmztncqwn|8heAW`2~3`h-8l=dXHk z93kbu9J3I(r$u*Ji z_B%2z3|4?YsklLStiQlogTWb-e_eX3nrjg|i%yRp46V_d#;Mx=Dp+i82xm_zm z{i*f45mT7h^e;>w7w+E z1IvtYoVGobF`*9Jo~T=X%rOxlOft21gONC~ByYL+i*oyIpbO|se3GyAa@V$b%~xz? z%~#t~S?kTqgAH5j=*vU7a&orfi>sdcnsh$#B>pmef_mWc0l>$9Fg*7(j9XcpD>iO=3aX6CWW7bSQD zfU)O?0LncMl{0{ODA2E}aKbeNmvb)rL{uFSpF8V1~O8m7VSTx!op;Ghz{Ptc5r?VUIOC8f9XYdmIS$<%B?%}cDmZI5 zO`5tHc3oK5N1l9QlGL%2?+AETj^jF(hhc|}Om^CgZv?V;V2RKVcy#>wum~j!eJ|+w zZokU>fL|8>rw;>8>vy*&p8VAI{O|m3j+wad`{)1u-)-Od&;MDmC~iAn+d3^nEnGn-f$CJup zAJoBz2Tmqs7*N>D7$^0Z*_U9p!iUuKg)Q5kR6^q1Vnmk3jb+*$aYXL(rby|{OrFY!7ir^cFkRx9lCO?<%{set{g3&+Lr^H^XyhxZJU>~Ir25F zw#d)Z7jvpp{b9ZWupX|}^=0`(=z+@z03Sl9{ufc+%6v6bhbu1c=V8x}2sqi+bF{Eb zmx;tDq!j3ig~eEQR4VWd162u-S(Sn(z=&ot4u|DC`C(_M%MLpHQIlOKNgqdKgLP}hy-m=ORN)Xg<`GP<*^~vhe+ZD+hYK4w1#^{k zDOR1ux!NQJFcrdJJJtKYUtlEB=`wVV>SFbWiz9dS3^t&6NK zzWVAv4+7YzU(?hC-cKN4{FyfX8o>G%0OW0?icY7pwyyf-7s=6|a#jZSnp!^(zv3>- zAG`DoWOdWWwpO<6HpOJi7i+?>tdQV>`IkWKB_+sJ5cqH%m>_FxOfufs=h&cC! zmY6Y)EMr|FC(dP?S|=QO&L7qFKXnQng31pam^p92wj08XG92a+MJCsM$U;lPj2LzW zMI|CJ0cGN1Vo+l57{(tuq<;Ho%HS-w%>adQTTNhu$!sE>XP1dFGW?INc;M6CzV`>G z1Xy}e9uGbuJh&UPI2`WiVHC)p_)kc*gX4s6{G~h#bImc#r#X&bh=&|w8H)UE{W-v2 zz4Y_#*%!X7MZA8{Pxxm(_vH5GtM6{_=`R8RrCFF!xyoNeQGtl)bHrEp)L#I9Lkl)8oXnPa1(6rj)>V}l5f2Le$#UQ^O$71Y+{HDJ;DA%My} z#PgdRI{%X&3;lb#M)}i!<#%W6+W^2?&d z9yEliTcqNi#?Irx*K28HW4Hsc2g%6Ul*U17Zdv5oyHz^Iwi=!x8`%yG7CP|}Ms0#f z1lf;`0KRt;IO8tz_}s%vSIlvMb4?jf_zOq*Dlc#A#jSPtPV4nidFyLl9eMqnr>|_q z)V8`cUv;PDl>-~P`9to3%Lf1-atD7EjdcHv=LLOCvS$|Q_K=%dm|5)C zHsPy2o#eikJF33f6yEI}8!UHQbdJg0VqE)>cU)QM`^^tWPyc9}hH-*jg>K+`#$7828D=xuXit5TciyM7R?0!6Ol@If!LR&y10Y`mNL>qmozRr? zb)S^|fIxB{0zC7%&u^c5?u+x_Mqho?obs)2eslYqumAPoaC&VQC@f!>5u_1E!Sx6| zM$`uSeGZsPIR@=_bJFlR&y1#S;?mE#cvxHS<3$&V-p7`LU7G+B6xq>N6eY-UQ#}Ir zALl}O4AU-Z?X7?aNx7#T1tTxv4jBivaTPxqX_y+SfO24zroV`wd$z*ZFvbm+SLSLjPyqyU+#Y`aD7}uBui30!Q!TP zLf&Jd?qen=w8xXJa*hM{!Fy_%U@3z~X@YQ2r{!5vaSS9M5~go9Og&MEA3g1Cs9qFl ztbpUkwO9o4V1)8Dbuw7@3p*B7Eco>!S=$X3Un=`yz?A(J04>a}v*}Kn*R^?oz+Ln` zehlzO^77Pd%F-GNO5#3~i278v0;&UdzjVrTS}zYA58}F?pWkNP+AnK=o!91Ki)(*Z z-uyh+&!jP{PUKHw|NM_*ke5M6D*8T26_iO3x(TSD2Oe8 z9~5mKK zZvNr`4+5C@crb8PzVGR82>R21ee!?RUo%jY_}7mP`u70nbHzf8^f!4P?Qk9$ zzILr*rC*U*E(Kj?83GbuWXXJ75F00HMn}Lksh)gKUURw25!m3jh5dlNzU@Hj~UVFv~@`+VYmJOJ=QAAZK1POvQelT-F5 z{#xkgD*?O}khcKt=%L{gpL%Nh>L32m_QVtV^dC?9|I$x?y8W;J;-7Cn{|VQrB_-Sl zG?3b!12F(+DSJO{_YkKYKE~<8+P43xH;zL$GTFIjeURiGatA@L&@ZYZGj3D~BTxdE ze%iT5pWYRVA*yjN1EEPlmk0p$I7=^#f5ej<&tNdcns)c$CihpK0*ohij-QDoX&y4{ zu#a2$YC9xzIWX_dgWNUk#}-NGcc!rlk_xu)HICM+8-qP7c8%fGX2q<$JINHPqgorv z<*Tf?=Eabckk=-X`|pcg`D#(0r@784U1ZOs^?Z>^y30v)uOmNJNPUfz1WXg^(s#|=|1PB@_ z@%NzshWiuZ@zDzv6GUvZ2UorFxd(-i{{}QP>TG9Pb_596lVM0}Z)tSiXJ>BhoSQN6 z?|$Kx82)FZ1*OebzoYukTO$>AXG$gKc?EZBFaVq+0mj z(OV<$=|KRCf5utA0^kMzEdE*aXRvD6$T#j;;X6mfEUGc>bBZDCGqP%%M3>kw^TKiP z0DGf^8yhsUiTF{dobxsipd|7v%88>rfFb8%V(Y1&1+rAup5=*!@QO>VJLXuxR;FF` zfVi{9J|7F{#WubT5CU5z>PYFr93~a=AGKwCZHVNX`00~l_-_wM$K?|y%K^4Vv%C!Tp) zpAg^H1K(@g=bwK@FEHKR-qM2rA3x1+9??gIvx|JqG5-gULev<7(iQ;m!Q23Q(IC00;| zWS3PJKN=r{jl3L_i}wy~A57UJ(V`opNwgEEWZ=Tv+R-Z+k7I<1?bu z|IxneeAzjsrS4)I-_CHzi96js0LOo{*W(@nscBa<&CTrbQ3>sJsy`Xp&f@6cWN?Aq z@fdZ$g<;u4hHdQG1NE^Oe`LGMRmRw~L9G`zBj=f;t%--ClH-ySd$ur|oC_*X{IHHY ziGp`-eoLxh)0cCJU|CBjQ9}JvWD5U}#MasdYwk+;b7Vt4H+MVnfdBlV0m9zsk+O zU%BQ+n}xr;U7Js0^?gczBFm!xrZztH_iq9406-h<L{NazIj>yq^K_T8qX*hg?dL;tehGY!#cETY^Q{i4#?SV;HvJhcKKBu zlDwb(^OY07fx?5Rc@Us6>VeBypoJUd%$+$eJf=0M^A-T(8+{_}SxvMZ|CFuQ4w;{- z;R3nxreIPl->#biHnG$>=?Z7IlDjH0BtB!M=+}V2bZTf@YSwcF44j?wIG5qEt#wwq z4o9%CkQz^Gs&n&>F=;tuyPX4y2Zz5aFhinE|J`RMnOK;Q%-)dp&#+V05HQ)eZflx_pWRH=fS6xyb*wN{|Q<6X_w|kKZx+k z2Lf$=SV9ofUiX_+(=eKpN;1>ZG8JHGLXM65$u?%M+7&G5n^Eufwgu_FAJ!GL%7<|u z+Qmt}^B5Cf6xZt*flR2oe+u>rm&=S0j^6uI#sRptUpc^W?(nfQn06ydn{^0aCJJZNiCwI>8ohH>e={;HQs-+N$Os1za zB?ObnEuStO=AQ2in`wAI>Cc|GW?&MO>F&!ht7aSSxw0_Stl`Mx7lr* ziCtxG4!9rATM&}_ju58wSgzTL+B6Pa_2Jz6Vl4JRq&M3%05;<0CKeGo+s*|GI@ULQ zoxaCFA|=_#XBG^JSD#x+oB)W_e>Yoo-z-ba8eSiKf$}F!EQoy54VO38_WBBdeBD7O z5?-V9-vH-sqMyQE)%AdY_|*Rn3x4IiZg5lEb;UM2Pn9@Q!js1~1&RHjODbzsXHn<#Qs<6ya6W62 zF*gAA`3PQOHWE3WjB#l=M#<^Pe1+aNI?sT)Og;q6P(HtR#xjFVnVfT2W=ibMl1y_X z_Lb9KCjyWhbQj#njU|>HS4&&%VsNIg7$3rAGBk&o>vk}-b)WZftOO793X8b7glKfm z5(_%bAdZW8{eVECo%JV0DXmo^*@YhhaQabbpZ6@X8z?E_-VoT@&f?M z4*TqUZXr9X2SY|f$!J3>)U{O|2wIPh9feH}%3)bMX$DsoBuc8{p$Z$G7f36IDYWG?{5F>pZ=5WM?d(k`(rw4kCs6~v?$$6 zb4*hkm=Q%OG-2TODPg;5hiw(Rq4ICq*a@K;+q8fDfK4CNS8|WLJ=k8uZ62C9Icv1k z4trYSmPs4`)JP2J-35iHtuuXKX)6No({_Vgm)Y1EPQU0M<-J|9aXb>PGWX%cu*-)l zK`eN?<_xu$QQOOuiBB8;Cq{C%rrk#cC;6%`#|kM|ajmbI>Q))$%4^g5DQ?wMF0SR) zYj;|&{MX2J@jcVIzXrvn$#1d;E*}8=CVTUPajmn=VR@73g$s*r7G_>4kV(%Iq|qbY zm4Ihr^aPo?Dian4JCK2PJ5+@Jz; zQcfFOg-?pA&`Y$3Te+!hC%rJp$#p&6`$tvZY@y?(3xB@ZQ#~HA$W0$U++Eo_+3>H3p<&#%7WPC!)C;eTV@fN_+qbm+v9|RgKqHp;eMxrbCTvI->7&gaOz}wW=PwqQ`?Uw!cc=Y$5eE6g9GBW_ z9QjxOwfMiQzZ&t5zB2N*#>#sdM|=f`Z0KID0SY$jB9(l_uk{HAJeG3)|qSnd6 zGXl;TOxTboRK+U==QaYLSK1k)oO9WWPRg34QkIF#Y!b7`#eiYXM{I>BHg`!Ez4e1$ zaG#Vm^PGcc5X51<91#PuprZ5qZCRw?@soMqGfm2nEXnM}T0S$`z~G^!zLtz%=0e9( zo(T>dfeoENlI($58xPEB?krWMkB=b}F|O%XN<_}F;?s3ZxGpe*GI`MtVDaJK|I-ZS z2dG4VP8|H$8@~a7sMGvy%}pmyG~4woEWKOj-}t2v%xwbFf=|Og$N)T z0U&YT?6FfosFYFRqIVv?yY1k_YkvB{W6I`L0T zyFSo}TSlpLQpKCB=bRb<;c@%{J0=$RW5}!ie4_8TG$8PQSAYJ`4}3$e7r*zNX+|6oQ~FFnxpUi7a?x_8Wf) z84I+7c;=j^U2`ChxrmUCnAbAxa2)ozxEy)gnV8e$K;HR{yQ9ajfO) z$?L1-RoC)Gw$+a<7wF6M3F?8%2LPX-gFz^ohBO~Bz2)MRNw3pgrm9S5GmCMP1jtEw zi!KNm6KBE28bzQ7rp8RlyWQAxpJM%b#j!46vvty22s(MhmxC;IE?!btCoY=>;yu%O z+s4gXIf}zQ;h?Av!*!BFO+xRov1PStY*7SFGmJM@cGRUK8v4PLGMs>x6l(-?AyR3F zEPVpb@=;O`y9!D~ceEUd1E65L)fO4?_!BKDh7z&kYg>-amM7n!1<8%l{=h&sJOto^ zr(5CNw}=sLd=L}s4?dXB!vlMfju;Y$-v$sh_gH=q01saa&;j%V4-}BF==Uf5%CBnU z)qg&b2vo&g)ian`)D#=vn^=0jv^!u=7KOOvK?K z2E_sgdKUlCHDO00%RHQX_o+f-rmdaOjyIrcOiq80X%-lNlE$9|^a07fhRUL4-a{E# zfSys%8)Nh6%R_ErFwrxQ?eXn)Fp(6S4h&s_0msO1Euk@hIW03Qzfr<;&&J~au7FqE znOcN9$G7Gh{Q7AuoZ&&lLx3Ouf8X{({xi>g!9NJdy!EKwTzdY?Pj8Pr^49j6{zTv{ z#+my}bF}Pu%Rolv&JU(34!$EmJYICbJ{#FI+~M!-MLx;%A?1!8kQgTSe2#ig?seC4 zEITG87eC{n*5$Ep?}k-?sk%TvuPL6TQo-d#@8h64B6QRzf{8ft@_AeuJrWbLTXAAw zoYaqs*m+ctyNrR3zmBcz!uu-#=yXhwy?^1a2iJQ0j9>fz>L31NedqtPbBx0C)1Ulg z`(OU~pKf3K_y3l|XaD=yY%tsk3s^-QwSgH2}wn=!3fLEyL&;`5iEw8O|+O^2m zqiPg-{mZ=)KH`LaaL-zF%nu85p}Pp41R0;yNPE}~WCY`C5RHKl0^po9hw4aDjy~}r z!&g12t}^z;n`zOzKkQK&E8~7)7%h?lROGBBAf?q`=F`P`^<{M8o#GkW%2tk*yKMnS zxw;ikxvBc%D{sEqt=Lt*mRGyea_!H<7kg2z2WGnX?&;{fU36LasC(e@0l-Jy;}7ts z&kZvDEGPJCa!ll%sJIm5Tw+RK9_rLkgrt&5YCyF6RB2FT#jhL0m z6^03d6!;l!g}y<{g={Wowi{mA`?mvD)0W{LEDiQWS0a1@;U-3(sn|czlw2L(NYZPb z+f`*^^Fmj0e-~2-Y)Q#g0T)q(wu_*C(kIiq#F!@rhv7Jc$1%##pEN-(9cq7v)}ACI zafda<<{TrNta=IiE4)Mi#<7nrH-q@Z)Csxo-g*>NHSd08jYZTAJ1{IpxcB6yhEM+K zKmMea?_q`E7;q!b1A+b1Q+*gNyIuN)6H?kku% z^?mqd! z7CA#0-#K40{x!0V?^=W$JrS}o%s5Y2Xt7`cPoiYK$-sb}Ib^iqkj1RF29lv`mO1xK zR1Ua-j4%8nQQ*)FbVpdQ$URk!^|)|myAbRACe(#VMYj(*Xz9>)jyA!*%L0S>)(qZZ z13-41^Dfd;>0^{gfz~baTBPCeO)CATM&=X!;4#8Z%WwBT^jA0zBGPB_QZn~*RGDwY zD*atgax4%PtILMj`CG5Qw*BCn|F7T5_}uefG8c0cfBN*f=bqX=^{Gd~O;w+Q@u0kqKn*-hUBV4T}G7#~c*9IW!_lp8s*qMrJB zrRtgk%@{oLg}|{TqvNaoQ-4o9sbBjywJ`ek;~%}a{fj^S)9wHG z-~MMkLm79YDY)<%Vva+P6NW20Ot46(7J?v`9dr-PI3>b!=E^A2~M-;}57SX&0y zGHuw$O#2>yQZXD8%4sBR&CxKtHai%glIq+O^32WwEj@ySwEIo<%)WhlMtD*=wZEUu zs%x42lw++IcjDGItL!4&{V=Pa6?ait`1Jw6MX*cxN7w_G4*)*G&VEQ&Iu|?HGQrep zFKAxsOa+db>ilQIl&z(`I~sGOgR~@;Hg|pZgTk{fKI$hTSJ{mZuWeU2<$zrBu8zou zn~9_B#p54Y5)-uQxRQXT9C*7oEZr0?1hsE}m}Hm64vhQP1(nChzU)WVk{M&?smGz@ ziyuBH0((X(KrUKiM;(NM^@9aBET9|{2onVTLIUeHxMqoDTrkr{+X-vT2%)9OhgFuF zD`No$m@{Ehj@+RL$Bht+c!PxVr7;FZX0b0T$*|#im{0+!E}_2)0ENnY4d9w?mRTI| z8vuOJdPjlX)|K>{ZhEhw;FDKA`RCr3@B4dUrkuq-KL|*jA8NZP()|HI{Mk8n1aU9UTEE!x&~S{{7>Ql{ zYr)Tt{@v1ec>A?^^F-QW3VTxr}fzWfFNWo;R($wke%?bn6n2UWH?Z}2Pu z4+I!9oD<$8BPxaw_C5QMSw1*xgrVh}E7&rYjdR6l-*{$Dz)%ZEjrsbr4^BuWn~>Y5 zMYCfjFuCGSzP>3GJEDw^Jw?wyv_aOKVwR($tV&{vZ?vJN9%Ss}8PT|o+Gb^>qHU_X zRP7?BFe;~SthBLB=nq7eP##reskmhY*?#c0lfaEj&T-%e|2(AVNIKgWo;)^nA3@8* z3Y?kmp8f>jueR@fEz2dbRWvUj3C^S_dawcjy|#v#fk?HUEZ(x1VG z!R;~tyNSN%rSM+l>-gro|ASG#`)vT_JgB+x$Rpcx&%dz!&R74yul{q4h=CoPFaGcc z+kgL0|J&^^{_X#x#lIdbPD)rkCKXCLcIO2io3{S2_3@Y38ttg(7;s)-#m1K}&obZ@ zn|zo-g+4gaUN#@t)t-A4#t{x<8_QZ*c#w^)9hgSZ%<(e89Phh`y8d+PAHKL1}UQSTgC@vqisVQ@CAc9)#{&VrE)l(j zC%f7?-kl>LbfoZxqxc|Jzm>c{ul@Tq2lsip${O3L@9LXhG!xF{_)H3-4<}@KRuzen$7${xQ&3gu)>Q1e`#SN!H&*%w-MiPHdgK{ zZEEk@QBlhApg;{$^#UYH9Rc-e8|iT6ThoxcS17V*xz0sWmSB((qdiT0RN!?xQ3#iN z+EjqKu7WSwZAGJmq`$}c7Unznze?Q`0Mzc7^~Z8%`mKWHk~2erGz z9|!Y;_5~x5O#@2fNI&tfjm5t{^}qd+KKa*M0B`D7|M~Qv#eX+`W1?>Z`0D`T;2{(P zl#lpZW*A7uxnY$cDN805=LO%xr_4F2q3$vgFS3!zc4&mBq$DygGNt#!Jc+|19u0dI zCio+f_0zvR%M2E=L(Ntq3New$(HflHz~9L5p0 zi2!LzvZeSc8{f_nk1eMj%FJaJX@{lF<-~KEdx1Ww-}E0b;2R8chUa1kNg+rvfh8u4 zNRy?1*yAfPQ=^}O@aex7>wFTgx)*_(zXH{PMK}wNxYQ977CEhzQv195<^MOf?|$PO z+dFT)wY~8BzrQ`EzYR|)SM*D%ybbW|(~oS=JoVW2#+&bLFTeWs_Rc$Z^bHh!zg%;* z`#^J^U;j7tl!?ays35W&Kb0lJ^WL5e2FtB;M=o8YI(T-mW86)$AZ3a+rOlMt(rDL_ zv_J8)hc@y7jSaQIm?PRmGVu>&A4^!Mo%?tTgZIS{6N$R}Ej8^KKhcuWH(BWK7H*Kw zQJt{H3dnWJ4b|?N9^5?f%ro2PpZn7G<*$5If8pVVeS}t#tMIP=)Zf?iYybZP-}(Rk zcWi499PDvL8xsS8x)*Z3q6ap)jwncibt_P$O*O(CaMR#hwQg)Bqf|89=Cf?Z4mTfr z>M<~K_rp-yPY#n|JG_do{kF$EPTd3p)AqQTXhy!fb^*hrw7K|==a|l*-g?uIF2}COTF^w4$f1*==~cYj_Ccn z+Mj1vbbYPuDSovt{xq-M!(g#3u6Ff*%6nSJ4lJA6%*FaLeS&)6@&UlddoVQ9I5nrD zSw`1r*3wKu%t*_mWgsUN|9o?YL6V>PQo&?oR#GXbW#z@#Me*dL@HGQm>mqU4J_vKt z4p89W%`ryMQ7l+_i+F{x_C|jT%{q40sVE+#*`+QA6VjugMm?;nm zxF{j#f|$IY0ytFc5=J_Ov4ihP*k-bpfHL<+gR#BDTo@hq_%Z`!{@I?_{c}@G47~c! zhibe9K>Ys809rgM-#Tt4(xkXP9IPXS~qS$U|5-x*UmyRy$>WSJW@bg;*kIR$&ldt!{+K_x~;gifjU9=6zP_+@g{|762AoV#lkm=j6xQgoEIw^%Y&kdq0}xe0OmqI^LL2F_N8Ve8J>8Ka&4 zH|3_>Gu|H8&Sjee%m|5-Aybv(2p{uMgNR6dBqdzD#YEpwW|-xT02OMY#s9tezJ6jm z`kX%<_ml5^e|zuUo7)#(cwu|y*=PJ`09HJbRJ=i$HY08{(c8+J^q_HD~WN#YWst6f{Mq&Ymqt#rF+>!1n+u4$6K!YB_)- z^>}kY%_ak)2JrAG|~R!WMm$q%*0rZQjfjI}d~iE*?(5IfQZMs?KLyMJ~( zZJl^5o7gE&n;e&Tuj%(1u3x{gJ@V+I{*?bIE&kaa)n9k;0Dxx#xuyBzXFq#s`>U`0 zh5yvwPxJ7O<6`CC9VBjY5a1EI-_F=Fp)Hqd7>^2543jkU+*LH4x+ukG>yz=JyMBi3I&0Ql%S ze4k=YT%OE0K0#m8>GB!o#r51a!A$yaFz-ZvOyQDB!^Fshr`gMZ0Qb3UC3P@6k!^gk z!h*T=@899&{P-ka_!CX-k6O7CCsguugi!`XbSq`cLYuWoF-osf`=G-mmDHhH= zT%e=`U|R1OPi&(aY>|VZ|LoHXTd3T+qLhao_Vls#4*{rak-xpJO+WU>cmCf|S)age@8}-GpZ=e` z{_n2>$c_g9{4iS|1n>}mLCgawa&31tP8suzTZ`m{dq(|MxX(F8f*17~LwO*e5hWou z{t-;dV03b4ai6h^j1&G?@N;g()&}UcP(ViAv&Q7cp%zta0CnCsNOh&9NbKNu6ow`^ zWEkwT6Wj@P=c0fKyrjue5i|JQP^&;0fDABkvY_SB&%y&+hf`ALnY-vCQe!hA{1J|> z75q)Vk&ky`phjSBI(0bIG58%Tug#chn85r>zU}ppl7lXV-e=OB#H-P%^E)Oy>E>ZT zqQnmm67Ft4fAPib)nEMG_JuEhdHdp*pWi;E?~z~eSD2XF^z|p9=~rT^h;$It-BQUwAwc?Cmq+|zc6X@|QGNZ1Vb&b$~|S#9*Cg~Nzo20a|qCW#9= zp_Im0?enz)p~nD61&s9WaBw3-j|`o!lM0+V4}F#B8!uF(_wU+}n`3Ze%kgq2n94iz z_}Ef~f61s{)f;8k^cQEY>s5bV_kZ7~v79(cwB^-TU)lcVufM+i*}wXi+h6{Nf2Zft zdN3XJPVIt!ya8WsyzS5KCJx#GY92J1s(gz<7fy>PEs=5HDhy?^*(>AtgCYKSQ^oy- zQ~*N<1TNC#vgt4hqx9Iq<*f0KA;wK>xiaNv#qi`9?+_EKwmTHYL20be7%}*G!bE(# zp+S4C=3q$0g=6aI+!wo9+>WtrRHjNl97&oXJnz_mtDoxEdduL@Q)er-a&pqDTWzDw ze&s>Z`ifb3s$cmkTWu;^an)DX`f0xUJJo4^ zj3*!@GZ7`rWJuUiF`0m|DdNG8k;R%mRW&XM8)u^5FA-;W);SV8*eqM!*hTypqaqVT zBy}|LU^k?PeryMV1w8o?J|@WcMGh~5`k?`PPncU0LAbp@?)w7lWfuwLu>v)rAgaRm z9`-LuzV~MXa~PkhZE2-HA(zZL?Pv{r)>V$ci8!PSAQGCSf3_Ta;AR-&NK9_4X-)kp z;KT|!_fqmBle==n!wh0_-(d@t1dg|Li>1&t`FK@0Q0{}c*KJ~Q@6CY4>Tvp;8&}%J z+aJC+R+-mpb=%B+v)=&Vx3zd3nRONmt2-2QkgndrNM&Bj=AdzJ;F~~|2~_`&fK?_r zFe$hpr_6Rk+cj>~CG%GT_*?K#YkN)`Zv;H5ZB4>Ek>lhteX@FhMZO*edE*%Axb6=E z_#i>A{om7ro?Ck5pC9~tSF$etDf8$4co3jZWc?P2U;7uQbBzskY9%k-KwVgR?0<$?7uadz?GIJR7 z7X9s9!SF++cfidj{`@U?W>n8lOl;EmlT=@52qI$#zwf^N_V(g;zq9@Pr!Q@v`@-k9 zFX{&ZpMLgP#U>j9*8Fxw3(zb2l}X-)dK8ZRp{KYB6deBPl%qqUOD86lU5^oX8lsG( zrwW~~-MC1#hm(x{iO^jkp^wJMssqtJ#5U^5O{E>2+ITxAabpE08{&0d?*iZbh*EvP zk0AQT5vjZH)lWQBP?=-q?|-*nmONjdzyTc7XVxbMxTvOe$W)d93v8xAu2G?VufFoi z_UHPJ|6l&)*S2qb{jau{fAKRv;Bkl9R_$Ue2^)*BIfk7n1^afV6>~&l2>`PYQ~Om0 z>1gFD7&CmskFWS1LGh02hy=0Ud;u+2ai@Y6JDGiBN;D+6-AlN4UA1M*7-V@$yL(mB z=16>=FUsf^8y>uk*Z4sv-;4oDwIz3a>3hd-Tq8F8eY?FKZI1%zcy_+jYrMvMxF@Fg z^0A-tDyuy?^7>ijE!VEtQ+$1#%E8}HSN`%Azsg%aFTV3+_rq65zP4$VQ`Q3jU5qc& zC#eT69{_x`M`Nb2bDegcVP1RHvmO)7I=4~ghJ}etpqYP?Q|U~(Fd_1&4h`7<^>-uyF zGXMS`H*3DZ&N9Ibr(xH$P$Q=!$l1(Bc>;Jx1wTzd)#&&>fRcX~K(B)PQ)2xs`0dBq zzNGC7+Q9fID<>`75zM~wRfwz!pKHDH%ly~t0s51~>WT$Ei+{#NH{{$ua9s6i|2=It zb!^|(gB}+C@A8R13w~|9^3MYR7W@2=WPbpVPyY8$|HZ4Z>jBB2)aK_&dWz*g6^3Vx zD^v_KLnI?g&Wpa1&d`f_&H(GdQ1H{Rv4Nj+Y|azL4(Apyk0YsCx75%%KS8LDpID$w znK>XF>_E?%P_xR5RPe?v>YE;j56N->_}1+NQgMKwszTNq?<$ux&OwgPC_-O{JUuWfJq>h zKmH5bmtXiDy%F$~zi*zm0`w3-9l-+E{DkE?{P@qphVk4j1ADyI4^CW!sJ`JC(FU>zRaPgl zsB^1yZupuLOuZ@l@d?O*?&f42Rb|Lf1TAAI+_nmTU9R(M$PYcB2PC{T#bbfX8VE!eSj z4XH3Dvw=d1K8HkQ#+nSVHOy^Qzjcsd3`BNGYn?VDm5K_r%p=Nii93r3d$EfzX^0oOcX4SLzTI}kUW{Q2 ziRvW#l0BSYZK^#;?vt3~jnfVcuF~)4aTQ5EeL-=O<8DPc_5PS5aa7;-13i@&v(W6t zRkzv!Kv&-4S}#H6tv6q7R~h9~j>@npU*DW*{gkiu=Hlc6P6w}@yq0lunLffExO@Qc z5q9=Ny3+Y_?^jGl{7ceFM}f(Yiye~+lNvMIq)w!k0S0ROW5OzWwZpvfoR^s-afp0z zu>&0oN@h)`#6!_hOXm>01C~h&xP6ToafIfW#Ew=Y3nOeU!mk46NbcH`L780O#p5riA>)O_v_-{SI%1jZ2ZLlecy9q3gla{ zY`&vZPQs3$&P$bp`G=Nh`~CXnLH*G_Bj+ZJjg<@wejR&n=(<(MpwKJ+_q5=@qvQFW zzWe`Bv8f+^=?S8Ct>5{lZncKw_Kvy1(?0h=drb4?3IWq zxwGu56O+$-AWS~QsmwS2$W$Im=PcGpo<{?>#4ct6;aqoX#|P&u`c|Wr4Ei&%F?Syh zqr%WG)jt#(P3FMq)#*~~gRKqom2H%btDT{ByQI;$(kTzK*H*O0d@P9J6`PME4_9Zg zgt4~Ff#jMwse=!(>lR4HvEYq>?|u7w+xNfwgYD^0KeIja>1VfRKl_>O3H?~$qk0AX z`i&dfu6xnI4+r|VC_Wz(2jZX{Z{kZ6cL8e0i$9v6UYfczj)8o~v@r2vk!wP7L$Mc$ zGXzS6!iNdzo6y-0CPfE>q<=>D<;if71_W-qS;xe82w(dSm08|LL!{Z~yJLwpV`n zOSNF_L$${o%4r(O@h^qStvq(Xe16HGkmf-VR>XWb;mAuY4#u#ePkSl{HT)+HmCuYVIM;IPidym-x zuQJN5qh8Awai3z=*j7KaKb5WZav@`Dy|GkQo74QxojW`LxJ;j*9=Ln}@CiB?M=1AR z@8`Kb$vT56-%l#0TP6e<`NYGxI2D=FNY(+G$&AU7)QPNlq&VO|6CX1jz-ZVLi_KBF zAffT$i!ykttFs7+4D)~N@sh~|h+W|$tKtZBQ)apJ!w|V}{_w(vve^R)n!RHnw{Cc( zFwY7Qrq!V60fb1Eu-C>#n9$H!Z>4sE6JRrD6E*xJ2xGmrO7@)h?_i+L@$2l7bfNY(}DC5+tFy&sviBvby zmfg_ejz7nx*KED$%38(;{$ReAFQUh>pc@cD&2k!1+VMp&O0+M^TFL(_}GIWfQ@_dW&N(KG0f z8#6lQ2m`8DJ*t_PF(HZH^9N;YoRBF&GUs-3i3oO7v^~T_S5zKn)*u~cUFp5LkSa+D((?~;3AJD7i37gu< zv6GTn(Cu^I*?~Bev+xv`kMk@bFmW7Wa~GJSF=%{f%)R>ZE88pDe)#?Gt1tEXzkYP? z@h6_x9(nB1?Zyp#ADuZ%KJx}ckGJxLi)aZsIngC~j`ne%x@LB<0o*1|Mpbo%rPKblrjB>E*Is>X`}s>h-G26yAL*F-?g6bB>|{71#)cEw z0aII2L4By`zY&<`(5$Esc0Xr>k7HzZFaG#mIo4*W?Gsx=Jha4+W7Ifd&ixN4I7tiU zAhBPtv@qUPI-{3j`eGQYFF(xjk~mU7e@`22H+fN&ul1I}uj#aYk?ww+*ffsXpVljX z5KnOz<>$p)PCWqN1iMV1pdR3^_cDFLdO%YEUtsnGwO`LA%+!!+D_Vg(VRWKNL%E`!#NXuIixZULX~&#sUCt|lNfr^gKz5G)>y(d`F|CwaBzw^}H<+FK)LKXKmC6;BvQ@NCyLs&5KhN#%;)?sXI#Gte-xo@2jWq|FidQ zOR^+Mc3sz{2T#C%;Qv2{PZXgD0TK{WAR_>0Fx_=7*lTT7bIYhaUDLy=u6{_%3^!BN zty|U1&CM?n8OiNT-rJbPHUbV@gr#O-?Bci{en4D4Chni>maB*=j z2iK)w*~Yr2yedid4h&EgJj`io106@#ClV&?zRgayh&cZYeWA_zF@&D2l6kK zn-eT@`uQdn`n!PH7qRFwWx1$#JQjz%`Wv@){1MdHs|n@lUDwhJWAf&y7F-gWDVZ=4{JhI|ZvJ^l#N6OhCi&)d!*#NH z)5CXCAo8CooIYuj5ih1353D#^d1pvB^vE%iH8+K^Skqs$)eFp~z2ms!;DeK4p|b4I z=~R`r=skvYh^7SNQ>Qh_H-uJTfuyD%6pnTB<^o%ta&(d9DXd$V8xss1#4pXfc{`Z$V&|QIkZADXr#Hmq>L&w0rUcZHHoNMwWgkJZtjk9- zJ1iK%VRK1HoAr(*H@_`3$ia>XFdicMCa-`ZFGnVIq=0-_fMC0D5d0fJIQ}IMum15L z|1oXmoij)u_eXGkgqr<_{cyarrEd;!7T3AxLoIST`et~znp)!n^0#X~AFXHJQ+9qJ zH8=JxJ*iw65)XJg+e$|tiov$;zPdjdt`z$Xm~oB{dHdgdo|rLcBY%fm&S#%(KI<3H z$uWWAW511x1zm-rXg4YHpr{{AHO&#f^%-bgqes?7LpJ1GXSd8}5XSJBNnX(iXWQQ) z!9dI?85fy2>R@ax9SU^iII+%oE`}+@*s)#Q_7%uEMmJ|cjfP(%h-4#|4L0P7j!cHU zAB8W%FVPgSGHe0bU*;1OFdTPnoaWQ{;;{1q>~A(H=7uTPBBq&5kJ)Ej^b?)UiIy)d;*9(1Rgniq zIbrWOm>(_!c04)x4z4o11lWqU4iLR91_MWZs zR3Xjq#PU<(#`Yr`z8v5amT(7G{+u_$GYO?8v%Ju$$Cej2cmI$V4+}nJY4cM6x%ual z0YAo0V5s>-fOj9knm@{YrD-8}d`tqxbT1;+I1Lx8rMIorsj?=W=!Ys*F}cat&NrVc3*7sfnncx({$D0O;A#0K{GP76zQ z+eq-l;pT?5Xl*@?`$-@pjSc=DeS=>I`mk-9b90g;?7v1Z*mj!+AECY6VoBcojrRf* zce7#*U}@yAGY{{^@s47+aqA5pAaET6%*{PY;bk3f_ZPf9rt9Z;1Rx*8_#xA#;5;V; z;xPSuz=7pN0=L)a|^4XXYum z{4lqPA&mW9NE(Tk2W@;@fBBuG8Gk>V1#U{?#&hO18N$PKVRTMj3{sSDvPocM@i9+! zB|u`#FFu8dONHNbQLX+c0lHHLFe>$WjUVQTV5E@M{mGL2$-xq%57;B@KF48m6oX-t zO1ph}(gB0{A=PUXkWDl}wE=%x7yn|S!mHV{Ka=y&V6nL|V>qUzO?}TtnZyrr(%SJ= zO90~YN*g%G=Mz^_v?=8=M)3QFg9q+#_#Goq!88x1IKKB7U`mo#4wjA|V#;gYBrsV! zfA_fV_gau&t&EX#^Ws?D``?GKtcE>2mA^IsPv$Myfma^u3t!s05(2_x;C>=5^$ zdOg_ADzzb52va!H+N!Yr*vi-zNM%Cdl!AgtvwjG?cCkKvi%;5D3P3#3$FK=`ap!&C#-9YZ{)3inm-(l^=nNxG9qzFk zs9Wg(30N4P`A|99uS^6ygnzut2bn7^s@#U}uM z%!`KswAuN{`v8C>?6@Np;?%~^2HPpL(V=b15@b0Lk`3ARs(r2$Zv2g*O##D;vB`d;{>qyJJm|^m zGdKRZ$^SGr`o5DNz56rk5B#AQy2!^Fkba7LNm zY#6t2%C9`!Az`HWv#>=z;~uJDJ+|P(Srk;wIqFl^z8J#j0tQ$5f?t#z0LkI#fAR+xfEV`yo0o8H z*+gKUJYS3(6^fc%&nick9LUj|bfQNlmg|2S#PQ}NC~||v{YdV#nAT~X5Cqb zy5YkJOnG&T)7Wyr49W*L3 zT4zl|LGRf-3htmSlYqeQsB;x{S z$H0*#8pQIP{2@uHWg4j(tNz`u&y5x~FRus!UxJt}F{5Eye-g+qf*0?}9b46yii`iY zv2hXD2Lr`=QHW=VxbP!31s}MX17dO|^?e-CaZyDU`>BB9b6bOP{u}`R_KH@{7X;65 zlS&QAew>>&7nQzp)9(#lmNaVK{pFqiKjw!2CmsNV^?WZt+B^){7dymP_)j}J_Oa!v zX@a4r4se^wC&|U@+>JhTC$^VDj>q!za5wkHN^O%-owl^Yt8M+JMkfXz z%GQ;B-iL2-4bjZWCbHzI`I8UcrR2r8_48222RmtVGw%Z(ZshaYHaGaEjV&@d_BVR# z@VwsqBl8fzn}6mE^R`pRcm5+_;^nlm2D3N)Y0tih$(xwH$yEj)J+GY>t-0x9e0tot zmhCVHps72^SRS_{$H^A_EwB&Qw8)BL4%t%ocup(OIl2q*SQRiEa$67bi$9_)+1ef{ z?cI&!Xcy$GKVHTg(SD)|78SByal{vH^%43IIm%e-S06NoQ?JN4-9_1K)b0&(;lrny zu}K4bD*r5Lc%EGI&UNe@X5>c}>|>mC(|!8EmzzMuJX!>*E5_dVsKX=>P8ztTJprlJ zjtyaP(AJ|3^y-ds08#qTAZTd7Ko9dm(ILQLDD5a)HfP45WBK^%Fhu4M(3c!AeHXR< z_5A{G$b#IRd*r@`)XsP12DOi1c`dNcqgBwO zq-jRQY3PP;2WF4Yu{zNPdzkQtG4o|P5Y^F0%TIbtd-e3^F8HE(w5wTEERWH6TGS1e zj*x{r04v6eXZ??A6yi~)=rV0Y_X&ne7m#~m>Bo(@2hR=|yUn!SC+1jQSWhudd;;1? zxR)ZlI%8hzct!@(J`&-t`tLP|G zwY|Dk;*bKCCTjg6?18bmwQr5zn}Sai8~3*D1Bvye|I2GT`RaT-1pww}1!cw!t`l#8 zqgTwver-^Q7KbjyDjRc-&ASll=&&)@sg={fog01jBQ-{E>Mz~7>5t9_KG~;!5`g_o zJ9=;aXx1O0VaJZcNTI73838gOk{ajZDiwU-D6v6)x((W&?voN^nMWK_c(A0OBe=J2HX zP?)>s(b*1m`?*OU&XaQ*D6_A7)12n=swdwxI37~G8A4A#bdAtK>|zKsW~PosS&e#T z`gsV+fKT{oCI@s;P7;WXlLwB{T;pPZ=0#M-yl%;D3E2m`lDN0>NDn8BkJ=e7$G~Vv|dYnaBNH&;@?lG zyhY1R%oO@|u7A`Kw6<<1H3ERg7KnYAaZ^v+8NWMi_#Zj#J#HVRyvrx$1V(4DY@J69 zE&gnV$JmRWNq7631ay-lJs`79QoggkeAW=#4g zF3!T@N^rKXIlamY{Fc7Q&7z)q_4`qM{Fh_v2i+Dv*j~$Wz3N}(Z~4FCUgN*V|K~sd zd1ueouQVU>-*^OaMf_2I=MnhX!SMCV=YRhCHMd+jZdvN~@a^IhT|D-n-enq;Z5D;~ zn1dg`J)xIt8FxWUos-^qCno$P)%eX|+ZwQe0Yrv1)`yE$;*LKy^T9!MHY7s{2-oIY z-RABhj|za$@fm49db)8)XveBLw$a7y#E6Q82`2x?G+#ysECq~u7hS=)=X<_U+~GLp#Tn);a!kIoUn zDZHGn=nDk*Db%q*$q8QQjAPmsb=hUfg*^M87cho1q@Tm@7)7-wdtDvGUZl_mO8+FF z9|`;%C;9S`Z0cT}=kIOP&zej$xgIRaR+IF1i({fPn z-N)U=mm+REAFKxl&k?6T`N5{V8p#W|6+dd%R27hI+;CL9IKJq>Qu#Vo3{==78wDX&m zuTRnWLXpB>1^7T9x$y?CX+&p=bUpbpmpvwU$KjD=99sE6BD)&QTHk!NyxEu?vBzh>7;ZEtBxX5?kc9CgU-v_$rZ9amzIK50 zRS#)tZK7SP8Bfk#<)p!v*Ev=wfyW6BmKXTw8$7bg532jje?x~2yom(GnC5WMCv(lX zldEf@alrWt8J;I^J~D5tY^aAR^_3qMjls^OCGQq&1RM{<7{^ z40>l$_(JP(5M9tJnmgFRr{TC{9Kb($;lMb>o=x%PZ0OoRZ83Jhj@$Gfn|)!NVVNME zGZDdM{5kKKYsBVA#FmY8#zYt97eM_{pvzBL(u%!#$6y+xh~Y#EK(^Ik7}#M3 z@J3H;PZS0)CrQ$+?3mqmKjR6F0xhcsy~ zmNCbn^iSJ9jI-EVp?9$UcI;R;Rm@H$f^)dqXAFjOD=^Ra5Wl6FtVI6XJ`I&8w|1Kc0jH-7-J?j0MO}Oy zC!vkolL(k)bwMMBDuY3S*;kuvE4MMUsDd*h_`8grQ*LkMdvT8p+uoe_-T#0$-{sIB zY`-KAC*SFco%;{o0U;zW__*la@#O*qermpm4{B~aimn4b-IpB`u=wY8HilS@@206i z616_okuC8P|Je0~B0JwxZrWUanll$s@iSh?s+T(N{v{_EPZ0P>KQ?Xx`PM;h?)enJ zkCFN2e?Rh{n@2wt5SusugZoo>xw>Vt^GN_Y=)-_CXk(+MFphj;fI=rtl1{ey} zK*~7^?E-}foMWkqaRRsggDelcF=!74-^CFE(B?Mc(c!c4*9XiNc~?jc2F|;_%;iN9 z0K8tDr461!y}8IUHgCQaP@nfk~baySt5n7HBfDiGOZbGiO~7vH4={NQ>i?z!Qi0LLX4A zzx8mlM%324;us+Q)ti(O3V&B}&0w5LF!;h0>;v{3Yoy++y3R1jj3s$uAxBF=RY%t~ z|H_Soa|n{NdE-qx>KzYwU~@mlwreeV;y6xYN27lH@q@2LrP-;%Xin*rYlc$ehzd7} zq<9lgY=4-4aA|RF*-9YB$dAV36WQ4M%{&|(tY4VZG_+F{&wP;DZTB@?K6Hu;^P%&S z-s3f?q$WN&?);6)9OTBH9~6wG!HGRNz@omv)dzZN)ok+WoGdp?a>W2uIqK*X*1j7a z&VW8a4Y2#V`q(s=qdk0L!bBQdc0L@A_|^_ja*9xSnM%(#Jx>2R#*B+x;2o4i=zuPP zc2mPd0>lcw@CwKn)WL-mB|jYJ^&@69zQ#XobHP1rIBcG6Wr?vTz}}!2f)DC)>t2<5 zZBe=oj@~fl6+OO!CQcnr-)Xd;1DqT$^znD3LkOq5<2Z+tIQBI*3TNSMBRjvE+^kEF zbz9Dr?A(D#VBC`sjcZIJsR_a92fcSz4F|7yz3C< zzXtP{e19pw+y0v0@a`@^yxSZ0J>A+q>fc}lJ{|!427~(lmon$^|L&5*8EDHank#bn zuqZwUU9oIg;JTJYYC~;pWjJjbDGOtPtL<8}#SHKuiCteDwoRH(dwsg_fkv}#ZyKw7 zTnb!$z%-Bl;?SkNF(XaFg>lI8uy?$?w;5NRt*uD7=B{=-Zn>K>?eEHn1v2r8!9d`@)n*r|0gphkwUXT-? zl8ao%;)m${4gqv@3Lifkott)K@8|;J69D`x0WOaD6M+4)KOO=g`yBwmc+;QSKLJQ5 zeE>jb6PGqMWiITM(T&=Mn8bFclMwg;ARg?r(SfB_=|$k+G%ie{)Ff z7x!Vy%a8VRqq%{hLeCvLrpUmn$Cx$ROk z+(MccSoh~qA3d7wzg9>lC+eP>CO(7e{EwU_(1qi>F|aL1AF5O??ex!1qe)qZh+WCh z`D+5)#4N-VYBo0Rl+9(^)^cEJ+P2&zPzTrXAA~sKxKEKH5YI9RWOh9{rX>w@u|LqX zSGGpJXwp0%@vpjTC(OYC1y3H{=pd^bW7<8lg*Wp(FiUd<$#^AC;2T)PlgCMRnSzC9 zj|t%RVM0oigq#Tg3B${3_Rpnr3?qB~i!(o4beBuE%fjA=3#^{{wSUDfhfV~c6n-tU zjn$izLfH14JNQvM-l1upfNFS~?dUyN;fWl;9=r8!4~bzp;|}>Gh+)hHb&E^kV3+NI z`YFi6xB4BACEW2E=8$Tc&E;=+ZZTVf z+xCv*%FA(MXn(7``XRr^i9hR>J1!AJ- z_}04E`lFoX8UW?OSAi}{7L_zb;Wh$t7mjhn>9WyQ93S7Qxa`x!>u~FUyg99Hz{K`G zZk)`i-e}&G!w(37LM~LoQ(5~Fhl4ItlZh) zVJyeEGDhtUckU}y?gd3d85ZpB&$=XL;?p+@cK`Ns#4Xe@7#lFP>7-<|oXhCp~wz&)D`?5MQ;a}4uAE0ghgkMK+W-PRxToS*kk`Luxs z-u?fFkZ}_U+1@l#|G-UQmNjk;dB>lRj{8Y~`1lEc1lmsm5Z`zDc>oZ;mD5y#jxq4{ zqC=$YnA;AP^zpM?f?QFydk-&t&^Er~X@%Y$b)1?bJ~)vVI|@>8;N2ik6O3gP;!&VS zw*{ZUt_vpdQLIjv;WBP8o5y1Bnl@wPz8gMn$|>wG`hvVK_8YwCrk|Vr$or=O`))tJ zd$UjN!-DlgP8&aJ&ABN{o4I(@(ep5Xo14$+yU@ZTXC|Uczxil2zA=fRwKBTZr)itP zqT3uJY~jHN9V#k{n8Eo@J{Xd4tnq0Prw)0J5sb5M_c+8#9DlVB)x;Nm;zKAJx5tO} z#Dao8a9Ef-3Q9u=Q(tWjv=d0*Y`97B-NuGH$Zepe%Nw(eDu_+ry57VRb-E(Bx7!_4 z)=)}zXAj3_rVb_(-my|Ho>*NQQO>wx!ih0UY|csMhiW=YwV&(~8%%lL@@{PV5umhH z246mP*pP`~C&*@UQ!zQETA-2QBsV^^a#BIFc~)y6b@=pr!|0_Qg<~2m{>(jow(rXW zmO`x`bzQ0%z@Dr0JK!+}iF4zVYs8T;>=;WsE_Vpr@z!bE*26^`LJM`U5YWmR|CRMZ zMKPTY1&}W-&T$WmhjcKzqk)Z@Pi87H`VthC_^Pxb@FF?{^UkNH4Z&U#e$x;^`L`h%T5 zpyzd$-3N=gZSU!pdvUk_>TbVp*%$juc5wZUiS_~cH3xKef%ER`ON{??W2gP>qIZlR zs^5MDJ{|!4_GA352>0aQw)Ib6zWmR7p>YwK^}~bgg|WH-#%UKDmRQ?oLE42nKy_V& z(NYLb>-Z6oVIli)etLg1dYxplCM4>Bkjy}Y?z7<%)C=|)e3vRZuXEx{6#h0kZq{7e@f=tT ziI5bTvu$@=%D4MyZ<^d?nYVi^QSZB^9$S%H(|JdVo=eGSf5`)kl~MW~0@#y?`f$q^ z$tal*ei@xNh%iJOAbD)%*v=NE|2WW;DKX5upr06ieogR#@>JC^{Oi#U7L*c+?;u(tts9I6A+{w{|a@(%zEAuWj^20aQk#GQI^ zW7TMT@$CHJ)e#DOZ=NW&PxY;tIA;zRGuHS)NwFe78`uykf60HwU@l^_qBf^;Ji6IC zS&vxv{XPYGnCI(b7jj7C#@~e+UKl!FuG1u&*PPb?ao|8z&qt5Ih@WWamg*7fm) zN0rfQytZ~kXY zRvbq@T*afWB@6^ydz4uC+5P$M7-XzA9=Oi$?nCG{CmW`*dBOi$@W40YlAXTs7Pm59 zcYE{OdTrF`R=?5KzC5q?#oaZS<-6+}v-;KDanP;2@%FnVR{vTr&ua~CIo9XKME8H) z@<;pcV+1}P0Q`OIhdYbhEAo%9vplhivG}=ao$54PsyW$%*^=h7K(as--X#oB7mc=p z#hulRIu-bJ!e^f%6AKgUy)l0l!wrvrS%Tuagp>Jj>wE&ll=f}nYMYBFi`BHD0UL1R zZ2qexk9Dh07oz6-ut1bou;6{#e;Lb-prcx-P7o^jA; z?F5YiiapqMBR-8O`i#zF7rnsvPOVC!%L$*sTGL)06rhO&ZN^kDQzBdBm*<=V9sT~S9w|HY7!yZH0&Rl9de2r%#NI=VpXJq+p2aJ%{hVcX7 zv;NXYc46=RW_=kxD(ofmsE=G0khJNW)0LR!iM`Po52KEXn-j(b>wbc$zV!Af*zqk( zY-yCLInZ~C{NUy=Lg!fES!Zi?!PP6Eu@#FCo|6MO?C7A$YjL2&s+%^-6e-+PMnRt9 z9mHv?g}3o~15*EWr(gIo#;%Pa=}+|9OzrFoV}QUm_Gdq#i!ud1T8QnJ>d15`x{MC>NbY_ir^wyxj`WK)MMlCP%{7x}~1qm2a-JqsG^mKf@@K<|?I9L&Wv zhi4lc$x-6#$M(}aIns#P6KR_hcQ7H{)Q(SZ6c-q4v+IRJWG-63l21V6Pk+#dFAZ&& z^8$krdrN&dpEwE{STr9D?fmM4nR`MMccVnn7t@=^!sdC-QA*9PY)u>;}4#diqO#=46(Hp}3+Fk|0yvBnAVVv>ivVZiU$ z(omjS&TP0RV;=Z!Lh!!x5KhJr3^yb8A%1sXI0+MndpXB5KIR`CV?g0wGUc}a4?l*8 zcaONIhZJs4;`~o9ZU|BEg#lku)AsuSQv0U>so9Y@iyIjoFUi7ddjhYGBsL&T%-ASX zRe0HIdjY%=BOI9qBlS{V)jpIMjPPtW7u2s5OrqOoF&p<4zwyv7M$#j|@HWozi4%Ul z*icrNTHMI$)Ap^x(b4u5c^?2E`_BL9khv@OVZc?V>D@j34JL1%=Ek3QLkrc#c5mSQ z!atz%(k&ZgRtn~8Z7Mt#IZlcTCTjYVZ0L!?-t<%kvwX$70>uYkZwgXB{wn2kRYQcC zG0R;$?MNwXS!1T{zK;yPTP_<&K~{feX-ej75vhBjOtvau<_aTaM^_s zIt}}rhCJDLGde=)hH0Fts~;4UeZcZOTnOI*7UMoh-c7yZM*qQ0bb-35tJeSCpc3

DpRik%S*o)8PA0P(n)eeO?+>zGl|;w<_}g3N`08l=<;fm&Ou{u&df!7RxWG+ zpg>>0;)&_+=#yZUHK<{uJh>^FKl7R*j`rly_^T+OTwrGmhS%{8)N>r5C80HZG)|t= z#0qsH|v3(>R0G~TRh>UEigktNfo zpK}72hfVBLMQCf5@Dj2$2wJ_=zs8;Pmf|4AodD~#aiB^&IW2@3Jt>T4I^^OJ_g;WB zlRnK&dz~jLqrw93=)}j1!wqfrv%zMQEhMctk@jAx)@MwM<5a=DCf@vD_v8FD0>QLn z_$+#MQ#=^T!yBR0&jm_UxrXcYiyh#Kt|!#;$CyH!&38#izS$8&7u_>f%hb!j=Hd7k>l9GdTRrK&#_H=c_a{&&5X17HLPxA^B~^`{w9~r)BfW# zz{5EJ)D-En!M+6@`Jz&t4R=2D@eD-l;NI|#Ih8gzdwE-Ij#t`L^@oUj{g^cAk@hdZKPaL!mHm*D8A&Q6}$5Su7iW6VAVuwR6 z^dva@pFUegg}8kvcg@~_XFd=?{&lL^u_HT87=GCKqp1Ew zXe<2KoO?h&$v>b2u62b|c&lqag-p9c(%7Hj#zJYx%A z)Osuj5`A!)93ONZ0}Oo1c_%$G=NEPn{zkSvz+tb2t$S76nVV|yq)$f(GP-Qm!zBx8 zmS*ko+4Bvd;P7~fFS45g5mL&g2|XJ9rp?^IXx!At7QY3Gi6J$6wfH#DP>0**HDu5a zgeJHa_Jv^x6?NxHuXzUYt!f| z$9G7@kN%Fc`t{#>G4IvOyV$MY!~T+PAZyUdUY?XQ3M^Plq`76%dsABr??)U^O}Y7ukntYk-cIHJ(|TTvgd*!>dkqBBFi@UR1#%A%_VXY-cJ_DKKON) zdD3BVYA?ea9Jy@{;C-jLfuv$n9Hb?wPsG^xxH>f(>h0^nppT%uyb;9iHUbw*l#adc zjfc5PPKHm3FU~3DXk%1~lMBe)P2=eW2Q3GR3(oCnTDb~3K2U`8{8KKSGl;%4(CC|o-F*kWpYgbF3`BJNXx9VsH4=@2!AN(>DND?3P|(loZ!Z`_%K4k{2{t4p&*Wn-bR z4>X2TziiNJv%@iutWWHy$%VolH2pk{)h7*%o~~q4c6u8l1~_gUjR#c8W1qNE||K$qHu^Oh^6(BpdTGvEUS{J5jN9_AfEH z_FeJe^gOX~8Ef>B-O%HSiJpDeF!DA$gmx`nY2&AAfXHLl7c)sr=~zKmP%*^8zxu_a z+dna=bx7V+&9Od{?;CprbHeuIv2$8YHXD-;-?=Q+tvlE;t_}UR*N^&J_*cw(zBlHt zX~VT~-{XBx_m}vW>&E0y3;x^4yL+hjbwg<{=2ib8|H>oq@c`gg9?)NdF8?nh*C1VN zm+u@@v-qKBt;`aX4GXXu;U3Vt+JXrr%Z*1BusynTS+~+WM)C00qu6|`+Xw@T(pW5( zwrhkReB)r)Tpwp_+#iwKY3qkXNxhsjlLwYLCpE7bi!)LLrRdlG@-98#w5c1E;bprNY5;?w~Mv zgX97>KR!4KXiuVk!5{sCCl`LqC*HXKl$*96b7Rg0@Mi)BL*GcBKlx{jehMcySU<$} zC7%XB$Af_HbIUS2wo1P10tb;HOM` z-*!STFZ!D!BAuGCI0KKkL${>p3nv^HvVY~X0=RK&|p^w{~m8d_Nbd2z-OjP=}lvr*m-Xq zt#dyFBIZ~y{~^at#EQ&moFYe2oeJCSA))5jpE+hu!&ibJ@n>UTDVI=xY)(VN)tRk& zoYt7OJ&p>x!$(Gp6+B>w!%I*qnhTGPc0tuL#vb1hYs)qd>QUKO-$~tYYoV;;U;!Q^_u7d|*rg8{v*I ze_(4g3 zkIkE~_CG8$2)FO6?zS!QtL~O*F9-E)TmQR$&;F`gKJ;r_-M6^Dg+o8S`Pb$h#;d;R zw*Bn9)qK>y*$8|*0Qk*@_FqN3lbw3oIOaV3^?zjD`S%<=IhXHR#A=A$(x;R$a#7=n zGj+^e#_IC0)-MQsmu0a-c~!Gu0c5cxkF-6Ymq9fEUI-IYoGz0~E&{^gN9OSbp3+Q; zI|^*_bkP->%`PPRxTxrHoOf8T<3qjoUyYM3eZbac+KU7aYVCW%!d{y#A=M4s3llPR zABiqY+3F4Jd6%9=6?JG};-yR-o8R7_HcH+L<+8Km-g^D0@$<6O@qpi$@=&Ua6>-kwtQn^+EJF91~FOBif8*2 z`#mjcW?9JKY?`eO0;KVJ3wUh4wp{{D`2$QKeZ0%!Fj+|z z0|zBGxigXEiwYC-ihV}GzBgSv_le7xcm72<{n;$a(_@-;et=mwU;oq#9%5u;Jo7Q^ z81Ts6Vm!^I9eox z@bu69AIyd#9_^SdgrIq3jZws)Z4IKUqdD#l6>T1T^iuA!Mox0CPs-|?4gYiwKY z_Ue{n>(&3Y_04^A(Y|f)zNbU~9&Yh#zkTmGufE`43;55UKl1?KFO{FolD`E0u>CqC z@bLiP*BQrOi{&{8zWc*}3h95`gU#jSSyLw714n_>(_PKT>#`>cPN`eOugHSs0_Q0w zC_IA58M~+9<*H@f#qbtPuSvVOEz(q`B;W3>QqN{g&GZ1?oANSb!;oXp@Of(gxtY)s` z3ykXi=rBP*ZC7YGKSIC>-*><#1bW5;ZaMTsC0+FReT)yGcWTi|3&)X}qh35k!8i_7%W9L7^#NcY*>7#3eljGQ-YgTDcsz^RCp{w59 zM}_9(n|``37&wO1!UEdy#7-G^^LC#^vu*-_>5slXmFwNEmu33_tm6`&n8=%@0F;~Q z&tgz>>?4Z_LC1P@`kv^3ojbTW-l@&3$*2U4jRJ3P(3o>-jI+K!tMMJbqASDUoUF1r z&iJ6>op=6pfwhmd)ZR!`f41%;`Awwbfpdz(V#mj3uZS5VD#sOE8%43!;vFgEXDgK&zbgWL%C^&2o19y^W5n#c`_pCj z@8w8H6p zfOfcSP2Y=rycgTxbh0^Z4vZ^AayckvsGXc?@uIL_peP1G`79JcL~-nOayuh&X}0;o zxv}83-B|cnuHT81eD1k1nJsy0G`l}Z{xV^CC*RE<8|772d2O&S_EP_wn;Y+yU}LO( zS1trzl9{|+PY@c`g=81xDGtplL?uV4S~+^GD=eZoEK zkW1Q0x$8^BHrV3qLdPPz_A#&s?l+inZvwU#A}nMPC{c2g<;T+zmJ|~X78b;Z9?UMc zn3tROSvtjReyx{}3wy%M!}`YY%tFk@;$z=-iG>}mY&b__#h3QJD^1*!pN(Dmt8Lus zT&N~Dyf|OM-&iog&d71I$(2FdfIM+%hAZ6s&e;SG$cX5>>S=JEv?nn9gf9pQ%iJm#hJGlMV zfaU+1?*bri_SYBw?msvBy!-E;4Fnsr?-arrF<aQNx#27%xa9LvFi2w%sJKUb{nmDcj<0aZ_%0Dy3%hUW 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

l$Ii=TiwQ5gljLQs?QR%o}3zM-TD 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 literal 0 HcmV?d00001 diff --git a/desktop-package/src/AppIcon.ico b/desktop-package/src/AppIcon.ico new file mode 100644 index 0000000000000000000000000000000000000000..20b8646e335d1c554e401579486026219c421df5 GIT binary patch literal 210558 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�DqV}GnNg;AJzf7paXQl4xk>u^?;5Uo(n;2 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 literal 0 HcmV?d00001 diff --git a/desktop-package/src/AppIcon.png b/desktop-package/src/AppIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..e61b0bf1126b74fccdc8fa97dbf65fe16a7044ef GIT binary patch literal 820303 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⪙K=H2-=<{tlO+32o%6C)q^=41^S_k{_& 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 z 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�DTUCHl~}>rr;=2hT!~{$ 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

AdDII-Zug@vLh5iG~OT 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�m)|URt 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 \ No newline at end of file diff --git a/desktop/declarations.d.ts b/desktop/declarations.d.ts new file mode 100644 index 0000000000..e0d241be42 --- /dev/null +++ b/desktop/declarations.d.ts @@ -0,0 +1 @@ +declare module "electron-windows-badge" \ No newline at end of file diff --git a/desktop/package.json b/desktop/package.json new file mode 100644 index 0000000000..707f7d7f5b --- /dev/null +++ b/desktop/package.json @@ -0,0 +1,218 @@ +{ + "name": "@hcengineering/desktop", + "version": "0.6.266", + "main": "dist/main/electron.js", + "template": "@hcengineering/webpack-package", + "scripts": { + "build": "compile", + "build:watch": "tsc", + "_phase:package": "rushx package", + "_phase:validate": "compile validate", + "package": "rushx bump && cross-env MODEL_VERSION=$(node ../common/scripts/show_version.js) NODE_ENV=production webpack --stats-error-details && echo 'done'", + "webpack": "cross-env MODEL_VERSION=$(node ../common/scripts/show_version.js) NODE_ENV=development webpack --stats-error-details --progress -w", + "devp": "cross-env MODEL_VERSION=$(node ../common/scripts/show_version.js) NODE_ENV=production CLIENT_TYPE=dev webpack --progress -w", + "dev": "cross-env MODEL_VERSION=$(node ../common/scripts/show_version.js) NODE_ENV=development webpack --progress -w", + "start": "cross-env MODEL_VERSION=$(node ../common/scripts/show_version.js) NODE_ENV=production electron .", + "start-dev": "cross-env MODEL_VERSION=$(node ../common/scripts/show_version.js) NODE_ENV=development electron .", + "format": "format", + "bump": "bump-package-version" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0", + "@vercel/webpack-asset-relocator-loader": "^1.7.3", + "node-loader": "~2.0.0", + "cross-env": "~7.0.3", + "webpack-cli": "^5.0.1", + "webpack": "^5.75.0", + "mini-css-extract-plugin": "^2.2.0", + "dotenv-webpack": "^8.0.1", + "ts-loader": "^9.2.5", + "svelte-loader": "^3.2.0", + "css-loader": "^5.2.1", + "webpack-dev-server": "^4.11.1", + "style-loader": "^3.3.1", + "file-loader": "^6.2.0", + "sass-loader": "^13.2.0", + "webpack-bundle-analyzer": "^4.7.0", + "svgo-loader": "^3.0.0", + "autoprefixer": "^10.4.14", + "postcss": "^8.4.20", + "postcss-loader": "^7.0.2", + "postcss-load-config": "^4.0.1", + "compression-webpack-plugin": "^10.0.0", + "html-webpack-plugin": "^5.5.0", + "fork-ts-checker-webpack-plugin": "~7.3.0", + "update-browserslist-db": "~1.0.11", + "browserslist": "4.21.5", + "typescript": "^5.3.3", + "ts-node": "^10.8.0", + "ts-node-dev": "^2.0.0", + "electron": "^31.3.0", + "@types/node": "~20.11.16", + "copy-webpack-plugin": "^11.0.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-n": "^15.4.0", + "eslint-plugin-promise": "^6.1.1", + "eslint": "^8.54.0", + "prettier": "^3.1.0", + "esbuild": "^0.20.0", + "esbuild-loader": "^4.0.3", + "svelte-preprocess": "^5.1.3" + }, + "dependencies": { + "@hcengineering/platform": "^0.6.11", + "@hcengineering/ui": "^0.6.15", + "@hcengineering/theme": "^0.6.5", + "@hcengineering/login": "^0.6.12", + "@hcengineering/login-assets": "^0.6.0", + "@hcengineering/login-resources": "^0.6.2", + "@hcengineering/client": "^0.6.18", + "@hcengineering/workbench": "^0.6.16", + "@hcengineering/workbench-resources": "^0.6.1", + "@hcengineering/view": "^0.6.13", + "@hcengineering/view-assets": "^0.6.11", + "@hcengineering/view-resources": "^0.6.0", + "@hcengineering/contact": "^0.6.24", + "@hcengineering/contact-resources": "^0.6.0", + "@hcengineering/task": "^0.6.20", + "@hcengineering/task-assets": "^0.6.19", + "@hcengineering/task-resources": "^0.6.0", + "@hcengineering/chunter": "^0.6.20", + "@hcengineering/chunter-assets": "^0.6.18", + "@hcengineering/chunter-resources": "^0.6.0", + "@hcengineering/recruit": "^0.6.29", + "@hcengineering/recruit-assets": "^0.6.23", + "@hcengineering/recruit-resources": "^0.6.0", + "@hcengineering/setting": "^0.6.17", + "@hcengineering/setting-assets": "^0.6.15", + "@hcengineering/setting-resources": "^0.6.0", + "@hcengineering/client-resources": "^0.6.27", + "@hcengineering/contact-assets": "^0.6.13", + "@hcengineering/activity": "^0.6.0", + "@hcengineering/activity-assets": "^0.6.3", + "@hcengineering/activity-resources": "^0.6.1", + "@hcengineering/telegram": "^0.6.21", + "@hcengineering/telegram-assets": "^0.6.0", + "@hcengineering/telegram-resources": "^0.6.0", + "@hcengineering/workbench-assets": "^0.6.14", + "@hcengineering/attachment": "^0.6.14", + "@hcengineering/attachment-assets": "^0.6.11", + "@hcengineering/attachment-resources": "^0.6.0", + "@hcengineering/lead": "^0.6.0", + "@hcengineering/lead-assets": "^0.6.0", + "@hcengineering/lead-resources": "^0.6.0", + "@hcengineering/gmail": "^0.6.22", + "@hcengineering/gmail-assets": "^0.6.0", + "@hcengineering/gmail-resources": "^0.6.0", + "@hcengineering/image-cropper": "^0.6.0", + "@hcengineering/image-cropper-resources": "^0.6.0", + "@hcengineering/inventory": "^0.6.11", + "@hcengineering/inventory-assets": "^0.6.11", + "@hcengineering/inventory-resources": "^0.6.0", + "@hcengineering/templates": "^0.6.11", + "@hcengineering/templates-assets": "^0.6.11", + "@hcengineering/templates-resources": "^0.6.0", + "@hcengineering/notification": "^0.6.23", + "@hcengineering/notification-assets": "^0.6.17", + "@hcengineering/notification-resources": "^0.6.0", + "@hcengineering/preference": "^0.6.13", + "@hcengineering/preference-assets": "^0.6.0", + "@hcengineering/core": "^0.6.32", + "@hcengineering/rekoni": "^0.6.0", + "@hcengineering/tags-assets": "^0.6.0", + "@hcengineering/tags": "^0.6.16", + "@hcengineering/tags-resources": "^0.6.0", + "@hcengineering/calendar": "^0.6.24", + "@hcengineering/calendar-assets": "^0.6.22", + "@hcengineering/calendar-resources": "^0.6.0", + "@hcengineering/presentation": "^0.6.3", + "@hcengineering/tracker": "^0.6.24", + "@hcengineering/tracker-assets": "^0.6.0", + "@hcengineering/tracker-resources": "^0.6.0", + "@hcengineering/text-editor": "^0.6.0", + "@hcengineering/text-editor-assets": "^0.6.0", + "@hcengineering/text-editor-resources": "^0.6.0", + "@hcengineering/board": "^0.6.19", + "@hcengineering/board-assets": "^0.6.19", + "@hcengineering/board-resources": "^0.6.0", + "@hcengineering/hr": "^0.6.19", + "@hcengineering/hr-assets": "^0.6.19", + "@hcengineering/hr-resources": "^0.6.0", + "@hcengineering/bitrix": "^0.6.52", + "@hcengineering/bitrix-assets": "^0.6.0", + "@hcengineering/bitrix-resources": "^0.6.0", + "@hcengineering/request": "^0.6.14", + "@hcengineering/request-assets": "^0.6.0", + "@hcengineering/request-resources": "^0.6.0", + "@hcengineering/drive": "^0.6.0", + "@hcengineering/drive-assets": "^0.6.0", + "@hcengineering/drive-resources": "^0.6.0", + "@hcengineering/support": "^0.6.5", + "@hcengineering/support-assets": "^0.6.5", + "@hcengineering/support-resources": "^0.6.0", + "@hcengineering/diffview": "^0.6.0", + "@hcengineering/diffview-assets": "^0.6.0", + "@hcengineering/diffview-resources": "^0.6.0", + "@hcengineering/time": "^0.6.0", + "@hcengineering/time-assets": "^0.6.0", + "@hcengineering/time-resources": "^0.6.0", + "@hcengineering/github": "^0.6.0", + "@hcengineering/github-assets": "^0.6.0", + "@hcengineering/github-resources": "^0.6.0", + "@hcengineering/desktop-preferences": "^0.6.0", + "@hcengineering/desktop-preferences-assets": "^0.6.0", + "@hcengineering/desktop-preferences-resources": "^0.6.0", + "@hcengineering/document": "^0.6.0", + "@hcengineering/document-assets": "^0.6.0", + "@hcengineering/document-resources": "^0.6.0", + "@hcengineering/love": "^0.6.0", + "@hcengineering/love-assets": "^0.6.0", + "@hcengineering/love-resources": "^0.6.0", + "@hcengineering/sign": "^0.6.0", + "@hcengineering/print": "^0.6.0", + "@hcengineering/print-assets": "^0.6.0", + "@hcengineering/print-resources": "^0.6.0", + "@hcengineering/guest": "^0.6.4", + "@hcengineering/guest-assets": "^0.6.0", + "@hcengineering/guest-resources": "^0.6.0", + "@hcengineering/uploader": "^0.6.0", + "@hcengineering/uploader-assets": "^0.6.0", + "@hcengineering/uploader-resources": "^0.6.0", + "@hcengineering/controlled-documents": "^0.1.0", + "@hcengineering/controlled-documents-assets": "^0.1.0", + "@hcengineering/controlled-documents-resources": "^0.1.0", + "@hcengineering/questions": "^0.1.0", + "@hcengineering/questions-assets": "^0.1.0", + "@hcengineering/questions-resources": "^0.1.0", + "@hcengineering/training": "^0.1.0", + "@hcengineering/training-assets": "^0.1.0", + "@hcengineering/training-resources": "^0.1.0", + "@hcengineering/server-training": "^0.1.0", + "@hcengineering/server-training-resources": "^0.1.0", + "@hcengineering/products": "^0.1.0", + "@hcengineering/products-assets": "^0.1.0", + "@hcengineering/products-resources": "^0.1.0", + "@hcengineering/analytics-collector": "^0.6.0", + "@hcengineering/analytics-collector-assets": "^0.6.0", + "electron-squirrel-startup": "~1.0.0", + "dotenv": "~16.0.0", + "electron-context-menu": "^4.0.1", + "electron-windows-badge": "^1.1.0", + "svelte": "^4.2.12", + "commander": "^8.1.0", + "electron-store": "^10.0.0", + "electron-log": "^5.1.7", + "electron-updater": "^6.2.1", + "livekit-client": "^2.0.10" + }, + "productName": "Huly Desktop", + "description": "Huly Desktop experience", + "keywords": [ + "electron", + "typescript", + "svelte" + ] +} diff --git a/desktop/postcss.config.js b/desktop/postcss.config.js new file mode 100644 index 0000000000..88752c6cb0 --- /dev/null +++ b/desktop/postcss.config.js @@ -0,0 +1,5 @@ +module.exports = { + plugins: [ + require('autoprefixer') + ] +} diff --git a/desktop/public/AppIcon.png b/desktop/public/AppIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..e61b0bf1126b74fccdc8fa97dbf65fe16a7044ef GIT binary patch literal 820303 zcmeFZXIxWT(+5fsP^yCTswk*P7o>!s$AU^z5$QD)=_Pa$A|fDCVx^O)C`C#@T4}-DD#n6!9$}xSCfsK)uf%%wX zJpM8;iZJ|JAlsa(@iQqfXTl~TU`hq$K7z`*>8@qhC3 ziRr)MJi+jZ`G4p?k+=MA@;Sbp^1WvPW?&Gw_~&B0|M&v+xWsa9Ps{_%4GpwFK3)nA zPCky#3L##;e^3m75Upd<%Q?V7D#Xjv8>|(gbN+7$tz-HRTk*Wq-y#7XI_J#|A4=Ww z@pqO|S5Q(=IuB%*l9B@WJGp2*zJ2#U;m1!p=br@x_-ZLC1_uW#1gk3e_`519YiepL zDyb-{sK_5n$b&<@0~|u+y}{D|5y^kWbK4mV@^|wMaP#q&`V+5%qfcOf&iV6y68i7Y zf8^6S#O;4l@&^BBv5pI<_$NeBSwTthe}f$t_P_J@|3Za0`2L@u05_NaBdtFn|0m1| z^xsMO2KsycT@g+oMQ2ZEFK6!n@G(wV@xRM|Ts**^oNL|k@$~UG@pS+>1C;@P7v`U= z|EY=pkp5eZ%x}9L#|S>IHK6jb68$IYUxWTvsKx&c{YTJ0pvM)cW$5GN<`R0_A;1~< zzbGw0@n2;A1%1ok`H$K^@$vBl{(oA*e}Mlf@(=W%+SYpP4EFI1{G%eK-fjUv6@cRZ z#{O5-Egvsme`oODb)@v4kbm<2Ro>X&?f4xz{7L4|Yxp~ffAaoS-u!>E1ysIv{0ja? z{FD2y2#fy}@lWnQ5KbU1aG;~RGbrHiM)%)s;qTUG;_RpR4>myY|0@kp{L`HN(Y*en z?f%U@ZoEMD<9h$EjsVF13dd^3z;J`%{_UGjLKv6pq01|yfm3Qb&dW0Ayr0*EHYK@w z<|_F4-E=#pXc$1h!Jl|9nqB7Jle)^&YixO6zPw;p^s_URlTNQse;0ZA zW~tS0?9!9pFHA)GUVeCU>HcTKi3=63MDAXa#r`fLaQhH}uU7?WgYXruJ)_~MtwPtL z!^{*)FsyesYrmOe;BMq2`?EqU|GxdZ3jVDH|85BX?hF3i9sYYn`1fe||9>=8^k-Rx zz8%q>hcjh2zGtV_Y_DWs7Bf}}M<%c(W1Xkil|Z7aAx;psN{U$Rv<;pAhzdENt)(;^ z?U8pVleIfW4h_pqQEYY*^rOQDV#SE<{*^6Q7Np_9Hi~!Erc0Q-J@kXl-d2|*y4GM> zztOq#qFwPM1)<56;VTi3jUeLYLuL@3AL^vq#g7Cexv|25(3I3^Dr62srMsPTO8~t@xf)XKd22q$ZbQQYOcKXVB)Lb;h<+oBpeorj3D{7<+DJ$x--mH9CGX6imW?*bD7WzG6fzLDfhy zscX@vg68c&zlTfS*d+(ikq}+Q zeY@cUMHQ?9-LB7XPjHCd-xABCyRlS&0uHb33+nEV_8z@xZ}cOnA2?LXSsX%+IrE=;q#etDhgV*#TH~suqSm!vjm@dnpLq z$~UghNgC%fWZSgM=Zi)St@ymz=nUBB*V43?rmJbCg;;FxEC8q@?gvBrE^&PPqa$}` ze_U?B-D4wSt}|$zQU)HiMt$EnWpqz-=Bj>!>&;06Paj`i{X|;NK@&DbYr#SBmk2gk z9PG2=(WGTDA*-{+pM$!rHtWD_VA59e{!S)}oNh30n?rUEvzd`fu9z5U2ZBsOZMCfZ zQDMcja&8vhl}wlX&>?A`iv<9YC|TE$*zT-^q@+qjA#NVs`qRj0Bh!;}=7G-UwT*Y6 zZgItMRQ5RU`w*gV?%e<@X9C8(ra!P^7{NB()JD6quCk~sY$bQ|any?3oCMj{GC4g3 z5XTcv+$`^^MV6}BrqaUjgs5CN6b`QkJBiuBn}$b3Joj3i5WsD#(zPhcZYutxs$Uq4 z+1(R6j$Rht0ph6B`bXX^5}pT5M9s#!s-$=wv91;#g^dKSXQ@_4s@9&ahX~cW&HSpJ z+J;_XN)d|34jm-6AwI6WwuRXj4lZiUsz5ZrwYQUXs++dgET+6U5SZ~^_XJ(cX6v>< z_#TZH1zI!i+<`3wQb}8o1LZ`RWo5(HH9J$feluOS<_6WIMuQ5DTd7xI2he6Dj~tM8 z5W@8cf=A6IUsCKTouKyY#!J-gC({QuYbzGyCu-~oOy3w#rG?vY)5(AW-_pafP8?`??csAvTavtHwC=kUgL_7n>iG6N2jPjInBunL@>!R* zbTfqg(myE3PVTqIzvn$TwwtKmT)ADv9(A_n7e7FDFhTXYz>{wg%@J#=R}}8biQj^s zYVh@qFi~@CVMAnAFv{v~S8!)OBy$(;_xA@CYiWn)8IM^Ba@PV_IH?JzFA<<}J5hUo{_99OZChn`f3v4?Mf#4LJi_^?#A7!+&`nT&8DA5jNDl#uo&l_Z4tEo(@ETb3(U zV76m_E-qHXb7CEkL@5RWHao-*yvIq?yhyB0sVlU^72~Zht_}1!5zYZ7>We{aGN`ff zIGh#_$PyxsUtwKT*wylGv(@pNZ%F3=tMMTB*jh=+BV6Dt>AFuotOw|JdaW<)W)-qe z1a^OeZng>AQ$_A}!82`yLN*urT8v?P13SZ2Cx|a@@P)@@Hws2ERrOxM2z^J2=tYul zMILEEXBp^QcJwV+5%(}G-W!(UP3c=~LH%}XGV=hh{UB1D%ThL8V#lTztfKSUM;Pim z`C~L))pyFzfP(DuRNRBp%x~lxc3k@Ivnfb=LFndv96@ApNH+dCdUnyEEmU*#SI2{; z=h~nz;R?$ycLu(!qC6+EZ*>PjlzMJn)>|Qk%uc>BAlXs1V!)-c$sDwI8EEIVOBI_T zOG>%Vf16@nYYpe*O91wx1%BW2d5{(!_U6+gg-cH&iEkUegk0Ss33UZ(`(HqO8T$TW z2+J1X^{dd1*zHrR)H*PMiZ)a0l(8eSzTj8bN_8DoS=DH_CyZl9M7cxwOHN41gf5j{ zav6_DbCMAcHwq}FjL~u!+s>qpOdz@yE2s_DeHxbaQX7?G@3YkuTMOpp3y15Lt(b=d zj~9iy`!)upgl%W0?EqW>ad>cWxN$Xj6Ogd8i_o>6$?XN5@l*;otZe|d#>#I~1FRrT z6iwcNl_nYW)Ur^BPfjd68R9Ay-eX^*16Z3JdhdairF-iVG~?NV+x<914=gaXj*olG z>|a11^v3sR1o-)W&Er5u}-xZorlzi|Ol_+hskY_xHFWvuH~KSu`ESuLksa#o1L{Z>&*NCnJygH-`lA=1HJjGw&E0ZWReZ+Y z%N=bVmJ0NJqcSWwvze(`6VFL51?<3_+NSjo=SrJ!S0?K;bE>mjaHT z|3fH7EZzRehE~(YgiT~t1=aj}QfmmbeyT07!nU!z?1fV?33}%VYqm`t(yG;~dkfeW zR8T3u9JeTZ{gXG(jyG8Y($v-i@Pe;w09R?Pv9!CKu=qVYOvFS;Aw)=idqBY}52~qkydL;=v$+SsKZ}93Q{Vq|*6}4fZfrx47l(ZXu z7rN)#!9z@(MSk1?N0KYtx_r23OpMMbQM^dVD^>t}F|=W*iiPIV*!y#vV+m$^DEV_AI*#V_}*T)Tk%z@DZ{6VQh$hFnx1ks!)IMX z-xC?Tzt{>2N^FANHAAD{8LC(t+bTxZ4u{0~h15#x(EwMX2-el;g1cc?KbGCSUC8HM zoI9=K?~-k4H)AYu{t`MQ^&vx9KV1a{7?cFaIwbIDo;15Q%YoOsIGeX0?BzM6QL!IYKqzKhoUcB&$+$X(^B zTDZKCN%ad?abZE3UOC5f;*}d$URPf!%|V#`@I70LLhy$za$XTqZIuu=OB}X$2>1H< zO(ST9Fup&h8sYb%+L7A{;uJ;x>b8By`!x$|&!(4r;gHgA@WZRDR*tGh zVmg@CzWs^|;hrApaunS?zdlN!;fK{*ln_Ehj{c zmK|!%Vp)8ne9Z!r+t!M#d91yyidn@g(|B(ochcrUvZ3x_*?vC!Fte#bT{58aA}8C^ zp3A-)+t@0WBwg9YybZqP1EF*HD+h8lhpu78hmS_-ile|o*`rqE^mW#xcFL)P<=&%Z zove-2ec!G>HVw=t_QBB}!E5suL|G8wEVL#}EG1&6R&qyHX+lgBRXX2@}LkC`3mLlR$=b1x}E3KXPTi;}wqO|WqzVWU!p$vT;RUp(H3vo#&6&u41WLL2S|E zeHCuie}S9Nv@~xTKY`10rH+N{#V!N*>2KpRNwSzWBl%3KN`Ya_3i(2|Sbo)kv3;C% zn~d33g>8Gey}Rc?e|Gyk%FrlrH41R1_qEZc7jNFE|wu`0SP*h&J3G8SY-8pn3+plu}q zYdgw*-xEFw+3c)2yEd! z@?g&R=}!(tYVT>);oY|l9YXt?f5xEQM~#Yuy*yhbNle+#&xTMJ`lKY$g&P%9^`NOVk;r%_Ftw~ zGtb>Gj5VJ;(J~*Z>u0_?bor^lOtFMZ;jdDongUj%ImL$5h{21~S4xehUfG0ln8=>8 zPaWxCH7)j3IBSP_U?T7@1aI-5lcn)?Y zinw9h1G?pNmLsk%H2FsHaGn~rj!8%1XjyW=Y(;?e?dR_Uox5>KYs~`=@%3p1+`^g0 zI@T%5fdVxM_^8m+Nz+rMGbq2q=gvBULb8gTYDnhkA$*JDpuDD>)f%Hry`5-6U;*~a zL+Th(YRf*;=c4{9>)P+qCI!-&g3tqW^IHk4r8a@^s*4KhdjL9hMP96w0$%oQMF5f3 zu2UNqu9wmX*`$~vY*u%iA%{A6kGiR>v0Q$vp5=_$=*!S^xt20dNM-Y zPv~1yg6)vOwroWqN)uXUa1M2-Z3D2A<6) zg?OfZpVE84w7zWZc^fdQ9vrC)bOI`tn)o5E`&l!bM=LJT# z_sRz+KkYiLDr@>RCQGtAWdb}W-0!l?#AYb#K!!+PZVlP&c4a7m_(zFxc;kRD8~bM34J{%D?+O=zua$GNddXm7;mtpALd7VLT9AvXE6goM*LwLFnOfDY7C zAUpLbAiTjkf+=@x`+g`XbeE9MpXzx{*!_!t@K#Zv!%HshEgScDE#-rSj2_l%4ldmK zj&&}h{mh>ut81p2j6E#$!~8W?Vx%urh~wH@sEN4V64%PF3&3{Qiq>I|>S!(>3i6^J zHF&LE5Hnbz`*bZ<^?31wA(UY6A`>ChwOHB1RaraI;*qWXa+9n~Ds2ZCstqL2c=@z9 za@SUsn}U<9)7geZ>wIG_o_B!k?4*6t)2MD22dC1J~kxG4A;y$Sn zo%QOyp2zc;sRX7GS1F$u2ghR@wUnglFjhk!&J#iPm^wVRoznTVT%fTA4G&`5b_U~e zbr(rDXzA)f*1S7NR^O6AI(d501a@;NL~uXo2J~jr-nA5CQ!)E5=_G3YYIR`dbMq^7`X&25%qL?r%}P+o|iN7|)VT@P(vzc7eslEk8eM z$({0eIPm2KTbY5H(ifw5?BG5h#$sRbTit^unWy<`!?<*^bCMf|FT-DW#vbNfMjj=9 z9{wd=L9`!A{Rr=1Z~sh8^Ypx$H+0=}7Mr2<@^kUjv0dtwG?pb0a%D0xo}PEdmt3aw zatAU)t>Mqma1+~n6Mrf{wFl85HK&7>r!W zb9Tc+*JNdIJ<&zSL&whKkKp2j#ikwF+$x}{FZe3hlC*$=uSzTQX3xDsA_NQ$X4*!` zi$^p^5F$vRVf0>2iA2Z4-j)?B%LJfR2W=+*#)E#XLH83Qyzc!MCFQ+|WK zaxmEUAA^%q^R!Qt(#FUa8bxJhUS zKMZaK%%ayFr5^y$o>De)K5| z17OiyJ>J_|V4ny-HmpP)=~o_bjpynfF4`Ubl0zM2Y55*XOdiRIcO3+KomjeHO4{BD zXxym0nQ^4Gg<>X@a`|%43`bU~Ulb}e1?hjv@lJFv9%Yd( zugLIprF?P!h|9Z+FX8Wf{Huw+Znntp#hio9&6hiMf8;dH22UL2(;o>*iLh#|yJWHD zL9mBywqp|9JdT~wue-{C{zd+9jL;>-@-Ns~J3Hr{DgkT9wy@9aj$TmcoFj()44+Wj zV2VT+S+Yrc_Gg7{IvI|_^{Y#Dosy#@V} z2A1tjG78(`BZv09DG_je0F>&Qs%ock+`mv}4LnQgc_f9F%ah=+oxpGjEN($ta%0Zv zpxQl4bt`bSK4!JnV}dX}IWlrcbwWgt+Kp;WLDWfPYU@@gHF(QcN1s!}JG6Uw7x9r) zDA4Aw{JagUe8c2W+{uPBDBp`{(fyoaJ#S@W5ZhAk9zXh+CjO)+c`HGfAEJ ziyEBH(NQ7`Wsg9spQ4>jdKCw9OFs`)_ISvRf0MDdjS}ObEmgd#i!`Dxk>$o`?N_4< zZzOUwtoMCDE?WDy8tTVv);%*-SI>GEgAIY zsD^Vya`t%R+iU_M7Y_~BarM(?MF3E>iq&hbnLzcuvgA5#Nu0O-vM>;{*^vd@-mF@# z)vb1<91dt`1xdQv1h4TiuezmXX>Zi}x3Z~|@8P{>mY_?E6Ea8_Ydkr3{?xBAyc&m9@t z1KXb2cGq$~Z8qG48}e<&luD{c(4rFsXPTbiVYAh@{cT&{si+Tp?^%VtMws>{Q_~4= z(6D9L+i{_58D@&NN|S=#R=#?0+vA?mk>`uEfqvPuk9)#?Fq9c^7yNayv_lL zgjy(L&0*Y_05J>%QhSKzK1KhwYhd{U_wqaZw+tZebwhv08@$Hl&u<^r+MlWlzGOoQN zhtP=;q3~H%V@c10G%ON$G({lO5(cow4OoZp;o)800j~tNxqIXY&orb%tu82Rtjym9 z8n+m#qCQi@;j`47=|>eG0PWMB+A77liW#;0d^uNgXLw@^6Cphv-3uYA>M9)3?``XD zRM_oT(4i4meHBjBoeGqlt2UipPuiMzpu{1`vijut$Vu1xknZK^<7G9}uAuvfGRU}c z{pZ?>Sb}ZnN3Iq!@?&Dd{0@F2YUtd<>q%ByDz#!)J@|fxGPAXhy?nl-oD^x<7P7#{ zS$SSi0>qrF<%RM1b-4G<-(t8r&P_}qc;53MByF}pySM(_k2Dc*zlEr<`fbku1+IqI zZ%(}oU9R(lTzVIl+-5HI+dkN)voZDYPb)f6$4qc}FiXtL;-#C|-HwOky4D*Om|tdP zd{)fOwWs-S>)-?gvtVV7+st(gX@VLaPZq=eS~OCw=;^OoUqGB-vb(0+FYGueD3e~D zbmzuX*OyUz2bGBaue1*E+({WRDw(+F#H_bL=&|4BmDDXR3!1a(5r-8r+XCBU@xSi> zynNJ(CnwfM6nxo+@m*bDoA5?H3D2^+wUDIxOfW zCp>nT6ylbo=s`9=DCL+X8u%7sUt`rpDa>U{V_Q>)`*nnUA!}4Nyyd3kWZ!krvNmE@ znC>kd4&DXivvAy=Q{Lms&7jC!NJLc#vcOL?QN_4I71~Xraz{V?LXw3yE%!6gg zp_SOL1Csp|mV>isc*JHlPr#$+?_=sfAcXqyWXF&ZX;Qw+d2A8Bft8K(4V?ZxazGD) zHq&bZ%69{IBmp#0#=32qvaWp#sj>z0N+Vm1ZR>_Q|KEh^NS!$v3BJAHe5x1%1eXP6ScfS8}kCL|^E-JTh_pUSiX zc2enZ6{D?dQ_^>DyFi(2LmO*L9%P;~QVaM(+&dqYu!oFi{AM@Ac@ttT7##jCIs zy%5b?xN|z#>-C)-3Ey0)s`bK-Spywk-;2bWt%btaIVDRu#w6okmlHD5OPePLP#0X~ zaV>iFzz()r>NbkTTy@a)y@M!Ae5QXEB&Z-7x4^vp9TDBKie*m{l|SlfOBK7;-sI$s z4N9Tevb_nD*HL221Z+b$V3#XM`Pdhv{l29pWn<4ir{0cu;9hOS((mr=XMXo55TBV! zr!Fk$2%h2{U*UdqTSC^~2fZMeSV;vLwyvZ?5jfQzRZk5T`LX#@4{GtdxaSY0w2E9*L3 zvG0hl=8F|KKvHm48wj!hFtpnXfCsmJ%IAe6coB5&Zn>^&et$ir;}A@I}?HJqYj22PmeB?Ru-$tvQShFtQDHr+QYv4yXRb5EWyjUd0Ie0;FJvqMDH zo(HIyL>bhK8d5IKjWgj&pI|y;p79ekhQ3QA7oMpbDSglsj_bOJeXt~SQ1ILm)*@Ja zICCPyZ(*U}!D`=k^*5Nt67=FHkjW8k3-HzPT^}YJoAY|+>SI)qinS3szh0zqT?M-& zGFqN>ZND@g0P4T3E6X1Y*`ytO1TWWoWc{cY1LF2NCcOrgaXZV z`CGwF4KvT#ZLM@<(hIBg)_=UV45y`>b++3g+;T0~{$0rNA&h+D*=Sb{HFY3w_qW+y z$870TU(iOnQdm9bcg>uk=&j@kxjCx#h`@e1ttV?D>w4vp`F1L(e&MqKq+NY!l~WLJ zVW2bo=<3gHZXM z4+3A@02+BxkZs6{uavcfnZ~LrRVyrFKFNz@2|nt1x1k)kBhifFVAMtJ8b3P-Zy1}sIb`#Q6Co(7ThI8xT`bMH6KvIUYwq#j&CXSsn$Uq8108M9^i3^2~^xRtF9 zX_folCcH#YO2AIxjgjpw7sad?)ZclN;cFZiqcL%pbeW3mfQ9BB{n8_D%ir0iOU(|f zcWmKm`71G==8m2x2JcG~zo#uY`du3EeVV%A0HDF&ylz|-d8w$AtRP3Z@(XY~0I(I4 zqILMuyho`V)Zvh#owBI#=gV+E*fv@UlsnD z?WkB$=+wg{8R02n^`5;kthCCwzQE;)w-^7=_1JBf!+6~c2S{i_Hgc^%!e2~FrM-Ho zwto0EV^~|_&2IJNj_dbsqn%3N)}sfbC6hD3S^cWW{*k(n4YUKfTAWSr;NU@dY+v=# z89T3dY#NbHS-UhV36iKE3uhRq37#S~T{`8mZBu3YlIyN4;#8o)%{( z$ndTb)F^SLFgoq10YaWnSDoNzs|=u8uL0~J)d_n;#r{QONsu)Tt7ow^1$b}U<7_!# z+81Lib{NDr0>!P1jbW#?T+xj)WO;N}Eyz33MDS>?E_x+2d_owrue!R{YH!>v%=Uga zNxL(!Gx>PiYEEavLH}s;Stf^gm1EdM(tUXgyOPaX`HFA&Y86jUThW-9%j3B^+i3z`lX&uPe7yHW;~#EMDPxeD9{k z3XL^uz}xqDY(+|^JzV&{R{GjiCudb3NtZzd%k;i-8kee|0vV{5R-7UJ`#Za4JwGlz zxNTu(-uX1Bg`cB+uaVedr4gP`67f>y!pmlo2xB# z?(|V=%0STmJ4x-3?(Ta{>1KB`=D(95^G#*Lvd=K`e<2VasQX{#42Q%$eG4n9a81?u z+09*{UODZpk%jn#H&}Ajx8^o*cc^&%Q<$%ohktyed6`2zbdh+%gR`Ce)PUwIilFDK zQap3wt6ub7tmQ~~2ny13q4SOvOmrd4ElDH51o6xm8OF#$c$`1bz^}bS>6;^$tL@;{A4_c|^r#?n{RI zE`oAN!yYTC(&(yT_9X4bVY+)!uay@8OgtC@4fOij#m{>=SZkVss%{+h!#2ZFL*T^&oZDtrk zXXDQtQX7gL> zayR_@n%)G)cEVz$8o${_o~zm8dU5+vS;L*a{-?uI+$>2y%$fO~c^DX5y(#b;VG`Q2 z(w+>>j!gXG_WL0T+HF?>zVVMA^T@18pe380(D0OfTAqA5v-@?TbEi=(nZ)FrjOiIfCuK@bU%-j49>ge z9sF?ojpQAtyYcld@pgRfGG@T;peYxM$N9LNDMVH zO>i+?_+lQvS&DDsKJ-AT?@v2 zkse}P6xc@_v#a^J7A475mn+EyxkI2NQ^J9}9mWwnLJB7qtl#+XSQoR-rmC|;;^ZDu z)a_>DGv^bT^cfM9iG#cJetpHm$+7bX@3pMQI<|DRmfA$erLrJpDbwcQDx6Yt9xmJf1WYbDh^_xt27TSE8MReElb7*I0IM^;V;Z7{f zI^K4CziNF;Nd^_BR!6@6 zCcY!Gn1YgQ?`t`J%B|AfDT}{rIiF-=Th0~d0LPP|I=&HgQqz^MOAXJpJuK}A@9TCS z3-vuM%{}`7{=EG&r92{g&o|p{MSnZ^nr$K3&OyR8zEIp5Z~JyawUb!H)W~u! z*Rn{{T3swiV_i%+N$gizAcH|&Q~-(nrL_8xScClU;rokQu6O%%IEN^8Ywg_E6XO#L zb+&&1Ly=g?t3`x;G|J0$5p9K$fT>Su?ukKsXy~l96Dc%+q$(w1R$Fh!ITN_sL)5;W zO3lFzYYMq?%N*hQ$NN@G2AXTJ>UqkOcxXaPn}$Za>&jCd@mi3UE_xD)v)ZPGOZMar zjf19^Qms2`!EK1JAIY23!3Lz0-q?U}^s(14cSIFs!wNljPh3ZVY%GZ%1z-@lV40kq z)&NfMfvbF798XNO_ioX1HVTBKO@VEfArD!0>3Wk#%uwlRn7KLk?KenS^G}O+BNh2s zmR_xW`;l&ey+r-W1i)5{n+5CA`t@Ps$6n!d@{hwXsLry@UYHQutKJ2Mb?%;e+S3KC zl=Tk4hpyegLu`(PY_Hg>xoHN%g;Tr;>64-ZliVpU0<5q?!PJtQ7U~-dpFYAZ%}ywP zypLvyPW&v)PqEt+OwnZtf=W@B5SHB!p&E6XmSlT*T$zQzx4_fH8}3(39Vx~1BGV&Nz!nW}uRhFYAUm4IQ z{QHb^?F4IaPmguUedy8o$cD$B&CU1DI&vovznPA5@rJG~0nZnQ9dt+IPUN&_4_{d- zSxen8|9#%H+w(hG#C9@@(b#8IjhoH(!E-I0h40aibdEYcqD^0G-sCslvS1do&8|zi z0;sNG=CM<1V1q-BcLP(|JQ zztcaZjU|D*3j>Ep*dH^Fvg+pT;bhHqF?KU7>&QN>1rKhoBD6qbF3KF6j%1TU*OjNN z;8<+kxDe?}n}jF;+FLa~vmn2rBjZ;}33L))iv?rbBp}2^pHTu#?y#(Q#Z7ZB-P_^V z0dAomq)kk27@ry2ij%ZM2T$R&W7ej4M>K=G28iKM?IQ&kB%Ft>vK)iJA%=HSeT%mK z>Vh+2-ox%vKbqOjurbrifed@3ty~7!kF}n*=Q8b_4cGY5T9Ui{*0Y66nopmjs2eeq zZu+0S`ZJTjBihlS@xseBD<{}U0jj>;thuqyBzR90mZ+iEAIIy$lO zwt`ZzBFhXv+g^u>f)fl=0{LuT25ccovGtx?56@oS!3>@K>VZBRke~Zf@D1H2Vt=Rd zPWqNf!vvG5m#6u`&hDnV*^fd-h}-YkrvL!v(KU@__i4D8vp>+^zbvNpYmuM(HCE&@ zm-Dr==PfMDVt%=j9^LF-l8E_!^|FUyp~szk*A3{k=QVetaDp7g`d;TwofHI(a@Za6 zo3Xp0opi4~42ZShup2xVsnXcsonZ5BKtaaS?8F7Riw7OG?ZpGbHQ>b8;OqgeBmjFw z%&&N!XVd&&_wTR|x3E3{?j`W)X^joVJ$FR8U->DDiEY^`5tvlbC2NN|max>q(_-KI z`Lr&}1F}TBia6MsqUGRj#5GyCB&xFAn@tn~XXCS@E=K83QL*@aaZ$VFt`^qVxADid)e`{kGJ ztK{^irUIu(t~hc0#?<_Hby{vu7N{!rI+VH(*xsa7XRQ^P2kuN=rjz#s8s$V9^d*^~ z@tDKiIQ(Wt!~nKo-U>4>9Uouzab(wwxmoA%67^e7<9oediWU4lVF*2z;-hxDsBPGy z&#>%KgOzA8EbkEd1Czh6rMr~d63zXZ99tAHht3S?EWWH~!1I(8#lgmBBw-g`Xjimj z5en6^pa&rTN?s~y;}Ogy&CN2jb!V6@z>W98{f|YxX5DBuuiNKhV4)>q_$SnuUlS?= znNLFO#PZxUr!R9?ekx(+@*8$%-*wliah+`aCh@#Ld0jS_rR<|xe;)eoM?tG<%f~-n zdbf>Ajn5BkJ8FlR8YJrT)w%U0g)SISuEo8FZ|$Cc;oe7I$Ph>xgu@|v$Icv2Zp2%3 zG&)DkhzPj7p;_Mn=wCtRZlCMN7UJNC=c#k$aiwafP51;72wMyNXn1I?nsEi@XLJycwEM%aB*qTW%1NzL>h>d(rUqIi2(1y=gvUNh{g_8(vv> zKf_*LJ!r2!T5`WEA&SFziLyPI48&a@+X-8J4ShNx&pqpwA8coW#J8QXUOMGNGJ;^+ zgNE_VZAM*)+;J_1gK%imOWBR-0a=BOsxevP_2$?jQiq04YQm!1%-ZeXHB}0M7EM|) z&W+V-%PQ;(2ZTrx-M>bJxgRbI2xrt16OzeXNM1A{nWiKBw zumBHccp3;M$h{Br$&sDoGdK-5GYVi2jn`pD4NQdWsHy2gGhEGSUnsGgwOUH+F+(5; z>|+GcG@=!(E@?XcmKbdMLVSJd98OCrvh`OSGWKP4;MM!fDSGsX#L6crd~I65w{}>> z1p)2|@7=xdqgC^}?@c3O_ygb#k;8c7mMpH^4R;e0>+}4Zm*@^cmJ|% z-D5y+fS!)#7jPb<5a0mtQId(KKi7U5SdszCP;D!%uX2AGU$4HH)vC zHB0uYwVgKBnJy?7k+cZIwA%LD-EIC>Ie0cVW&RquS8q_rFQ6ljw#AN^AwXPw{DP5&aWOB!scgVS0PQOv5HZ$7_1U^@p!%@;QGM~w;r)|qIp`I&_1=BHlXEdp|C?k zZ*fJS!>v)fyf)cM@ro4`^3t)Rx8JcnP4lr8O`DjQgp8KnMI4_!f!1MHfJC>xsL(2` zF|2^7y5AEVbIP^XFM0o|=j=NV_$1+lzIE8F_ip1dAdY;P(Y9Gvp9EYDMW}3R=POxr zQlkn+h8sSM(LY99rNU$?kygNHkBQ?W9MMcE!KI3?{d0dln$BU$bXbQ(tlXkNDI@jk zv+?u~+$ZRTQ(drm@}8`Hx!=4^79Mi_Ra9&*9eUTQ(lI&my^GQ2@O?SiWw9qtoA>J? z!i-8YIfog!YmKm1#KgEO3Yh!+Gj0G=U*#Lay`<)zDHVQ5cn5;yBF=8UVXh6P$LPj8DIpI%I<=_TqMamEsH+T5$PmMDJf5aC?bb|hI~ zb*>ZAJ8;-Ew}l9W#}&2t`GyqYPln|AFdbxG+pAKe?*yKkmfd~-91dLu)iHn>7N4j} zuwe4eqU-n~9(~klOJa&;3gzA}T$oR>JDLoWrf2;z!Ku}ilHb#Nm-04~GOsyy-uKZ> zR5``g9F@#icDz{v0N%LDnY(SKdsgPcglA5Y@oTl@z6=Jin?V%Y)iMMn6{VpC{aG`n zeA?A>yhG{W#3}oq>FvuEu4Nn#xMAxn7j74-#YBqSx@^~G)@CG~smssW^5EAz?~l9m zXBmw_`N7U#Ex9C0Y&x%&_zPYJp*rvK@QB|OvomHjv(xdd_q?iH9kg{eIKh-(cj;c> z(RVe%{+`pD_vaM=mrh?zoa#L%I@4rM-pPTa{gxJWCpkpAt@CHxGHezb6+J&U;q|$o# zlJpOHGPGX7QCJ5`>a^o{DQ#f7Mbco8hJVliUIC*^w~|AL)AkxCM0RLagx2i{tjvzL zY)%y>Nk`^j`gpDhz|eSO>#@`0;|RsNtZZxmq)J!bxJ0~)#4ZCZIo^WDj0kx`uJ83; zA&Nt+?lqjDO26K{RdbTcCa7+lOlF&7?Mu~*tjcBzL!}Kz-}A% zmEsMpnkvz46|FCxz#!{#%CuK znPkqL1JSwe6*`>1qqU|lCgmt9Tbp%&RYev5hh#^ z9UC|>%?I_!6awT`O#8l#{$MFGDDwZ%bl%ZyzwiIIRVl4eRM1vSTebJ@LR&@ECIm5B zJJc4lR?SvxleXTdP3;vsp+>4m)Cxjk?-3;O&F6Q{@0|Sc`YY%4$9=BXec#vf@wmuJ zSWG0|;=VcXT4sh{?VVi6F=3@LGO_5npH1Hlgqy5-dAig{ce?dO1^rUjQR6OzFOgnhH5}kB))^BxX*3?A<(NAlLtni-sK{hhaOD@j_^a9kI z+Jzi8g208T8jT&rwxF7h;sq{Ybtt+9$v6&9Fk}rs>%(EeQ7?quk$%=bc}Hrx$l3k7 zh9nJq6=b(`i!D(~nKa1r@C<)64TSu?Pp7%Vs zC+K=pHT`h5#Ig4sU4j8{r+X)Bs)nF&ZC+`-B%{s2%Rbm6Botjclf46BJ+~mcQJ39q z)KmM5yl>djaMfL0Uqwc*J$^iu4#a(Vf`5!xyVQ93o*m=%Ug5(Vr?aQgR7563b2pNM zbj{;}(wyQWyrd8GnmAja9P#=QkIgTRs%!{7m-mZdT+fqL_Eyr-d6(SEqBGU^G2P!@ z|1eh6Q!F?iCWyW(7Z z6PIk`S2>&_QDr5k;yd2e(6x4!`n!y&yl%hsr>XV7)5FF?Img9SSM3J$N3cc%ZFH2| z^(vMcV^cx9#F=O->}@;Cw_N`;m?Aa#7Wc$17Jl0O+gqC(Q5^O(D7)hL?wWWiztBOX zDO4vIcyHrNC`-k1j491f8M3i?7-Cnt($jy5Qk&wFKMmwX$t1R0$RiAF8hcA>z1#}j z?kJ2;gfPGroZ;65&U*l%cAPGn@H7yl;(?~@f)0JND|}xLBb}F{IreD8=8Wx#WTOMjQajP=Dy1T{&cu!pR-20j*P`aWiG zQ6RM|0Uzo$(T}U^+PsC{PiKQy(mhC}5$7hSbEShkyaiPjthy7+%Z7d{3>`?a2ltDm zq?0?2kbFST1zAn`f6)p^Uf`J^8izvUM?*Z-I7sz}-9kpIE!cLroQkJ_6 zHq_gyull9#Y(k5`qlm!}eBzemE7zBu4uR1jM#A?X1}|)c|B_NSKx{-2ENKKwDu@Yc zAAJG4_yM9FPp0!?X2i3c`v-Ct$GVtCgny19Y?eU+q7{j$$F_tRsFIiy1pVwel7Vj^2EQwOzo}4deIr{(l$@8s^dJ+j>#YC zO9WqS_SvR#3{nQxO{N?+cQ1`|aS3w~ql?Gm&!1E%f{!%}AmeF4^p!}?V& zwZ`oY|Im8R4ctB&s+{FS-oxe~;h1{D>g?j|d0p0S)D>NKXqcj?=#fluWy=Do&gksv zW3pvL6$|MHq7y{PTL_>ma9k{)w1N*;7u&GpZOoAX?U};#yTYy+P~@qSB=#b8%;X+p zbI+Nv){$|wE72mCf-O5)3_t0QN(rv?Sp)?gOqfHq$?=c)2&pj6kw9Dc6ku?BY9(^iBa;|2H8DrWLPF z7_$2iEw6;V%M4$xP#sm^5XOW`;~N z3@;5^s=WGx0i50&v50!$@al~W@r$qE$=^!S1O42dnlDCYKWuEj;dsv5Aj@gtch$o3 z(i7q4bx7~hbi>V!G*Sw+{3rqX3kSrO3Qe6B!X`U>1XVDi_k6FlG^)ov@R@v{9mp-= zP~4=iv4O*1nOT}RTyp6s=pG5UWA^k{(&RbUc~RsO8c_S+dpGRbcNx;>=XrQ@Z}VdI zrY$A4j$%d;EaB+djW^X?Vwk0Mi1%&8^nWHP%Ro2lpuHHWhW|kQLJH0WLOL}FanyK@ z)buy>gQBw>3ndPzi>0B$7DrGma{`Dfu{U*^ZnXgdbm#nJ`IF}__iL6=n1XO~Y(jN+ z2Y$72Ci{fXyVf3cML<&sZ{s+huQ_dKP>I@dyR^dub;xON6UnQU+sSJ}bdLw5B&ACo zES$CbG6(~p?i!+vLb(v{wOVQdcgk9WRKKt$r}em^1y>+c^$$x$TYaWaUu$s_b7RQp6ZlC-_#PLG*ast1{TYiGOv^d} zzixgxJB*vCes6bK?SgP?@O28Emo{xxMHmSuOfaULtm>bftiL$VPef_`-M^9hpHmt| z`MGSdAS`}8;`s)Q=2$6EEmFCPy`XWeiajGV`Wxx>$_#^Ze?+zDdOg%9coJus#W2RA z49ml#n5N$DNwGfa621(ayu(f^wmJEi)g3<<=>5_n_l?2s5Wl4B_u|&-9PU-sGJ_T~ z&)1$q-Ao^@YkU{wfc>X8{P&q6ngw~SljsPnjj>~wPyIUn){{j-T79<=;!PYfpmW&+ zioEy-th#OCMweMJ7WZIXfGZL851s!il(jqcyW~JymjHx zGoJ?Yy$IuK09()-favY|)(LHW|3phwS*I(MIt-%g^vvv^pRsteY^M|2@*UDG8nY zefy)5-`?hMkNLULebn|p|ksI0jbCf9czaL4kf@act(Yb zE5voit-lk@l@2GY;;d`CyN0r6tf@YfaxK3Im2uL;6Pu|CSZjK2!S(P!YQ8s=D-xfm++sKb;ISnqc?L&I+0Bg~Wv+ zDGEC|pVD~;hpASYF`v{L&h?uoX6`5tEbMqq&8Kzq9T(XM=B^*|a|!53E>6#nzH3L0 z<&C>HDQFs0@JfY+eMkuozS1bZ>r-$i%Fph@FH+{xXXY?FTj5d+)3~2%+y(imAk90w zf6KeVk1ui>l{PNlF(CftxRx9`m1QneA^+;ahT&8{^>N-2i$gi{$H{$#GY2UHqRl4< zH+u60^)MaA*1)dlqRHuUUY^O{2wahW3w?r<~z6m8>q^;A3d@6R86^n<ib|LOFgR~Gowf5NqaY}OPr9`9g!;9K9e6pKA$<> zgVeV07OXE6I&Et9e;tB-?pGxx#46R%&Iu*X)0d+bML7C1^h=i}khnhGz3m z9iw2M{RGX8BF2ykcC`(Id{*RAuh*QQM^sYEMZCsCh4_48J4aCD@5v38l#d$<3(G|m zqku`eliAqE5Y`!Iy5;0^V`L<-ufmx?C60J>9mgWY4%SHyg8OnDAvX-b54BX~o+LGc%6 z+jC)xJ4Z`92eu)p8ol}d;&+bQl$SPC3O&x0mRS7>9SxehA(h>T`SabK2B-OR?-C9# zD$a}ULxh!U;UY!+IC+!YL*T8q3N85x>T zIND&p+$XHq+_l$6k9^#(Fu}rk+LP94DOOYCw`;FIAp%z8n^b*6|FHBQSk(4jx47rz zdm=ArU2AjU2-~1BZ>6^%^LJy!4krD;2!1m|1g?fjm14Jvo?qI;liVX~B(JErL=7 zs~OQYya7KiWr|A&?EY&$4MO66GxfgZekw5HG*I#`A-bHzyRFXj!KL>Kf3?QzQ{Njr zeiL2engZ^R7Bl@!Ba=Ii@M_FI-)wxVMs}nHy3$)%1U63|To!Z%oYPkxJnsh6+Pn4H z+{o1Ht<(8BORvP@ADV_V*w9DhgUx_l_`{MDH z60g$JU+X&lD>2ELfO$a zp@$uj8g7D^Q&l*4VYPW#4F`AH*lUt@p+<&}9`ZHU!7Dsc^^!xd8`CO1Gc7&g_}=TA zDZLnL@7k>cxe#Sz7wJPP_6twh%90a|x*`c!Ea50VA4RwT)T%Hw=dxP3Zk>&Wx5F%J z<-y4v@it8qvovf`xWs}~1bJ0g>&z}pfaY#-M?QBm;1kxsR9^yBNw#(KZypKd;lc|rbVrj$JN2pBO2LNCSC5_i{ReX^^$X)(gdAt0_P=`wURoRM>E1v&= zxv{#-wUVyRTz#=s`)uI15C6u<39)xLxBC-fSq&kk zTQaZBAq<`B=EuF5b#a}!YT{F{nAJn(lgMKl_=>74nA$Boj%QVBFMS>O$TW=67RV@f z>lP;EWBH>Hvn6#;Td$ef^kOA%YO9bCJS*dUd|h8JG5Er7UT6lncu5hu*`bxV;kRHY z*f+N{9Te5(w4<^x67%^mVCAJdAthPa3WbG00RU*~4mdPq0{{g8o18*<#o%qE#kq5o z`7r;EWpahYMj`cthzyy7!hIK53E5t$BkD2%D|66ub>Q4+Gb&wd>QJp}hU=+t)#3jX zfQB1f7|7ygqcyIMXl=0x1kRlHcUy~4OulI`{&marMGK#zy~yaD*Ws`cifYs3`)R6T z?e#a|HLMViJ`bv#?nGE4_&u!ii1H^+^Kjp-8h%#2u5l#1E8s!C_0X#|82&4{ES=KM zaxfp_UR7j!YrRyE?MD=NJOWF|Y<6eI%|%U542-U=U7ln> zxGvu;Q92a@LH~tDK0y1WmngV5(Ah6L^k=HC>>*yF&rJBW+*-X=X$<%`PM9pD$_DG* zi4`L+KYQIfBy~66Aw)z2(@bptKKgjka9q~w@9m0z$cg#Vx)t*>mwEQWgg@+Z(Z9HY zq->M8Xw@>a-uV6Sqe&+p+ZuLm#@0_WzNatf{qEZNC-kQDt1G{i{d_k_5NQA7XAa5K zgNpLU`4vB56NksPnupprzD_E}8~y$JizMpfxbhRJ{~gGM_wM z(q6<&eTX$BSDi<(D!F|a7gu7MFNzLj8%(XNP#8VPl#f~Lpi?P-q6m%?qLXI#3cTEM zS-~&_pumCTs$~|gt?ABBCX0~g|Yh3d}ok7d1()Lc4frx)HnTvXmjms5y%QPt-n1R|&;ZZs2n$IeI7 zAwJF*I%nQu#e@`(os+EX@WKXl@e4Ly0gdF=`IoGQgl4zO?z>(~=k2N8I|rU%06U^S z1;rQQJtd2npP@#s6E?E8!GL)?SuAAuL{-+X(}DD8u-G{Foa9DJN#5+##WE4cbk8)z z=Y+yB0Z`1!W#Z)=Pj2E9@m=)%3;3T&1GtnaV@fqCyjLl-7h96v8m_yO4=M?8rsQ|d z`*qwe4H))+`FrLebHD$i!`u!fog;*;z(o%~LieEHIQl+Lwd>1QfW`U;UiIY4n61|G z2k6+p%y`vWNr2t@ZSz~TnaQ62e7@7dl%ZpG$>r?1wU2NK@A%(DyKhol!QuvQmb%1h zT{{YT7TOb?`FRt}W8$)gBCm%jb-z8XWEF987+E;I^$2akSCinUF=U(T^~U^_w#nz# zpGFFzqHBwV-CouJ*)(KBATY@yqR+sc)}y8Gn-;^O2-9MaKmAmfcCL%$6hWzRAe$9nX z6!NnGxg{c_1N&m(+40iIkN%%ql^f!>bmMxyTDaY=!!1-SwQD~4Sb$7E5^YpZu=l?u z>i161+2vbUV5*S%yla@|Ajray0baf83r(K{gN;yzj&d-@z6-z zKJ3ob4}Q^x@VbWn4CH;QtDM46($vXyEWae6??W5zOu2n=gSgwr>%N2Am?DCQ@`Psg zT9-~ml6%Ieg;OZFrv8u$!Xoza_mJrGqy$5E1Tk1oqPriK$Wn0)kz-D(oMBs zDxNJnkYe6;#MXrdobK#*AIVcJ;eGwQ8a>*EGh5wASdjPO9Ol#?D>Q@KrT*nwKzOr% z2r^)}E-9g?sLFfm*ky4&tLnw(qGLhmUPt7`WSlFtGOinb+<}czx184;2!?d?5mEHy z_WQ4^i%|mPtEqH`rV%##xYW>P5zrnh?BcMqWNy+6Gq|eZab2r$JTZWCq_oY@-0w+I zT{&*y_hK5?Arb2E`vpse-~M+IvwRZTv!A&p?^`7}!2I(xfE)o4EvsaAHq3<-CD^#I3qfC8Yik2|aZA+V3D=adVP|Q6V?-_Kwzn^2( zDSlLfWhm|LTz9ejU}B*^Y?9#UVixqm_Mnw$&(ZvVeM!L}yj$RFUJrpLmvqb}L2vcM z2}CpMYeH9h(@oHhC*(Bb{r>nD-6y}ovuJ>G@_kl`A-?9P2z8yB6Bwr-?|gACZ1tC-u6Lm8Uk>JreAj&-49Db>~7S5(II7ReQSU^po=PlAK^b zn1mcxMlkzG&8Gp?JB?=(K!cGaxj!4Fe|{anBVl}4iP7mxV3Wd8_a(G?o+%f1na5&R zu5sgqrgugEe_tg9)_+tg#3sJ^ZL4wYT2Ta-@U4(3Fztu$YKd%wTwLui$ck#p$+M)MQXML#oEXJagyy6|@a0BAl}ddh=Uxqw)W(LExNL4x4^!e5sS&mBA!$6 zCu<2{h%iYagtQhtlo!^tbzq0u9HRkQp;4rVOd(6#J+mM0;*;wq(r?Id=xz?9LfiBY zQ0sx`>`<-YwpX zQr?L1cj|b3cF(h&)Y<-?!bIBf54{Tmi!)oOq$o`vKOCi+#TF0YitK%>*JVYM%ysF! z_PKFV&wD#GpMnkU*`1`6w%U&4QzkTP4AzLf zzVo2?qYHYEC@Y58xP$#0IU*wC9^3IfGWH6`K*P0iHdAv(&g#?Y8qPN!pIU$1pfB9E z1;0*k9a8exWyVb(w-uxVw7hH*E)BV1K^ex}3 zx&uCz6(|?zA|kAxAyv&FjlwMtAVR{yR>=3(&8^`^HvM*O{ro9?MOc*t6vF>x3$W)) z8<|ya`&4=_|ET)|RlMe}rif3lXV;X_bk7&d+UC$jI&4hUK~P`!Y?MPayd3_Pu;cT^ zF6K|pTFLHg=0cgf+s!VEdhXQ+Nn*U8{XzKMJjkpm)s81uOajfCg8+f4u`T385`T{;z@B$#)suX0-F%`?VKiOvxpN*>obQOLrE9l7_!=J0N9?91*g%0RF}!fY z+`EdD>b2zb6C?8PPIkcTn$XkyW%OW)7C+%X6Po$A2j(L|<9A1q%A~~pxOTsV1N=Kd zdZ>N3$%$=X7vj6@gE9-7|0;HC{y7^X_n69$Khl=D50V|bRwGZ{j1A}dah-y3g##?oc~-Apt-1!f zXZGGR%CZWJlPXw}3?pfG;PDc&=rB>Ggs3heGx&1)0}F)Z+ZW9EQaSxT%T?2Z z053Kl6o(Dr>>}RCs0T0klWx}&eBz`eP=mv;BC!I3Kfyjv05FG9p_<%0C$Bz)N)LV- zaUmGYkHR3ShHQ$RC4*PziGPs>!t9}oPMet1zc`A^4%DGiuli6Db7I<{CKwstdQd&r zI3(HBcJ0#VEZU!HpPoLseNFq)-OFs8eGGhelLo%s`g!*Q1O3&)_^$tO?>WCEFg&T{ z(!PZBSWe+KyxpK1QL%kV?$ITd$V;Xm9@I_{x(?OaHrj%%tR6~eU2i`rAXf!cx@fp{ zxb4)T!cJ5O^A6L|ZdI#|!ut(-Xa%%oT!H^Q$76I>J9jM=ozj&FJg@NZ1{GUIQY_g`yxJDQUp)D zG~P}+`7QrQh9_r)9Hx(#BrEWCv>T-9A;sPKH}!rHTxxqEC$Z~X`(XqA_y_8EoA2_ES`O04PYFWF#DVpP18oWpCrK7$8TVo%p%#i?c3XpMmewC zo);O-qP>gy9+1Sa@5=@V)06tzWs+WyoWmL`{c&AEC-2=8#UN?cL(TO~bjw05A&nq) zYwvDsPM#Ff&ScI9*s#Kvt&-$p^k^wBFKN@#B%N!-lA(9tC^rbx-CS#w&i&gA<&rF@ z7w9Y1abWLI82yVc*yYm)=@zEGcMruM=SO_EPN8L2imtmtcf_#5G;#NqcigWPK|_ber2!+g1$PL=$nipO|6 zWn7>wqkM?uId~Q|BJ3`;Z3YSr`dD57X>oJoh;4*6fwlzd{H#++kEbj13VOx>3xPZZ z2Y{i+lwatn1zUVmZ9jGiJB2rzQ(-?_|J_!*s#=v_U`AHasmN53na`5o4MF4~j~-Js zgX2w+Znl$SnD7}z|Dk@bO?+?}kb*!|xB9$iD^~fIKCGsLBHk$2W+s_JA1r_-&FL;q zq&7Gh$_Sm84xibSg@jjkofOe!ikI%NlJgI3BMa#OZtXts103vpR_kP`Ukw{d9U>9_ zT=@PZGtGPWcrJsg+>PO${KP+@om#eGm@r90T1f0+bPRl+WW}e0Ii2+c{=3xiGq{^BnoDDMx%>9!C51@-13R1N zA|P*d^+ttX8Vc)lC|Z&2Nt#4-j__@>6`R?LM_St#~mF)vPV-NYt;SVR;!vRAKfig|2R+8imnXYcL3qhoTNO3vmRsmc(s!7D@`@3<%xxnY`% z^=bHf3#_76ng^e5>Q=Q}GiRDjlgbu+lkVo3gi`IPXtdz)@SRE|tgpV?+IZi1-XdR% znwoz&1-F)jYXDcU%FAdt6tb1ejFZSLfs&QPG~2#%*?4U2={kE#;mSJ5_)1TtwhqX1 zSyQpf&%>Z0AGzAJ{cs1O;(0U@ePJrFXNwOXfge=NUfgeqfSQILyu${r6l%?Mxswr| zl=bp*Y!DCtdC*i{g_A={Xf)@aAQZy3rd&&~XAY=PYY^pZ(qBjm0U0U@@(96sz?W|L zBEqhXFHt-sE+}c5S9bNuZCzU5`YCE>J2ZLR22wuBK07-+L~rrkU7pq66?om8_@B$( zPY!+)Dx2odn*1J6hdHikK>tYKXZ*Q{0F8ztRhyCPlmzt0AzU52qM*ds@U=wDz)M$L~ za!af57p!KiBx-O)K2BAn87Lf==3U#5q}9qEz{;>1Z=(tbM?GiVF+5j4#(t^jBko1b z{&J7JBTs*LXnPeRlhty5-no<*E_pegyu|pmBQ1@&q2_m}!Q*;43Z7eGT=hS@p1B=} zSnZ!|v%Dgw$|XzHc12RoA4_M+UiLnVBV9p#h8M0;9V&cM8p+_kbKw?E#WcOFNQAs5 znx0b(`R|4`Zz6OG`Ea2`-Wbdtcz*?%w|n9MTC^Q+W3Ip_%%;A%I>~Bq1ivqP9>E%b z{}NPN{aG07+ndTktZjI`_^gsNA?TktW}+9CBElGI?|13uKJR?_2>6aV(`0NeXO;qJ zzlb}m1gp4GEffC!p#ANKQpl(7Y!izEKR{xQ_nM3A(*l0IKV9ed?i|NMl^0w8PKk}$ z7f8hhIcUYox(s`MbvCFSs_q{qx&LU>Q!U}$}uOPz`!_On##NoK5GVJWY3|!_2t8u*4bW!R9)`}^avYvH0 z4+=eQbH)a>yKlR|x6bXS7j9$Rwg3my%@_Ho?2_5TbEemO4KT8+)`1pdIDT4_pc1jQ zVNLGx0D0gF~9|Ndt~bI0+zg~h`2uD)NRp7ZfA z!?)UIOtGK!yxox+4nBE_p1Ag3{Dour4J3ICFx)nfuP)62lF^#vfq$ECQpMQNQ_;_T zp!*?R+t@Sjo87HQ39UDG-V*GjRA`T)E&V5KNfV}>|!F)nr4OS553ha(-yfLH=A!R_l$xJxL2M)Rkdk~m>4DQ6N(b>%3d+qtPTJWx z*Dn>^nDOt)eCk+Lha_@nfyu=!F6rdY@e0ni{I!!fZpuQe?>!OeH~tJcffGyK%puCp z4#NfbQ#WBQy(o3qe`eaOL6NP)zZJM|Y+skQ2tkdrp^ z1y@Gp#=!RT78Gj^1BTx?8&Sujk#s3g4)5n{`7k3$D4OAa*yx(MW)LcqT z%Dwt45}a5bSXmd#Tc`5rpo%&zU?>gb_fWOVaqM`%e zPj$WR%9^@Yp{vBDyhN)qO_WWk8`B-VnmZGrH_BFYa?-s=Ki)`C*iN&(UNX8pkoXBF z2oPn@ZLVl6JNS6NK{YBxnonn+5f?DCvct;aBVv<&`Kj%3l5n?l_DmT~clx01tZ&|o zd2V52Pmtu@DC^^8*C)CMOj_IUpZ%T?&iFiaWBQ%Jf4T`Jr-G>a&kv>Z)A>|p6X;xu zB0}6JmTcC(&9Ys+ku6}f@g3nXgb=-?>Tip)cUD?8gZu$*3 z_4(+nn0a@K)YiCWI7IpMB0u+3{)kLAT->3g+!pl|DiODj)EpadPqf@?k)Qm*3T%nF#FF| zy<~&k_WPS$A+`+f*&P{axP?RNoHo0^H}T{P4diL`-imZ)J_1fDU##>D@1&hOM}MkY z?3V-1_f!^V+MQ&Eexp~8SUk?Mu$@b#roB{?m*4$vP1leW5dEHveT;wd9w^t6u;K0u zW`ERtf4ri7c;$?H2B4uh^;s{vTu5BKa7^|4GUiTkz?IEQszk&?;gr6cJ-tx56nsxg zXU@ssKzdzvLqf(SaHiC`s1!n3Z|78`d=bULCBVCmi)q%7^TJdz-wrd_+E00^ywH2e zLz%xd><`yd3D^>iYdN&$2)DER>_G7c(j6$eX`G{%rx2HMrCpG7Xnp^h;YZv5h!&h- zPue<{l?=Et)Kz&2`4yrqOzL!>`XifmxLN*#fv*yo-CjMNoBgw_Ry<_t&^arbT$7BAR|Tx8n*o=&=r?`wH{P8Z&B=u@~y84y#JrPG{S0q3h-_qaEK?g9tcwG(Op?JMBI)ZInK8dRzSY#J#Z23IF%C_3r zp1i?2(6V`)0ON8sEFOScURwogyEc3?|%Pc8+7=U`8s6RLD1`qli5#0c+m<1ski&#h7bU zCdtsA{onNs4*_`J+t?m%LsZOrjfkWxUo{5orP7k|+8G}g2EoS(P;)>hzI(#|+2<(r ztgL7z>5EP5f7jYYOyas--H;ri1kF%HUueWtQH0yHQC#YK6~!l8XKWpdEN^pqoy&aF z_}daU-ETrJ`d(djbbCfKjm?gZ?$RJ-Sr_8@%CEGniO2-GrhZu6O$bv5T&-Z>a+?Qq zl7=C#>^2i}`P~1BHQe<*y^`w72!2ld_|-K}#(*wj{k_|cDZhv)BIZm%_EL^3~+62pfi`1)6+8gOb?>2vXgS3y>+v-v$ z8n9jg{}@l_La@e;X~V|suRrwVYtJ`|MNKEfsoy(yKaJO%N|2r9&zI`4R;wV8Z3H^p zB-nh8h`{vfwXVj=`HSfF07+s&&~FU<;KA{ActdG^7_tmlaNMtCi`-K3^yTh6KdY}! z-a~K6><+wZG&2=lt}0Llp&k7y5^Z#PXDz_?D5{So z-AR}id&*a(v*Exe3^S>0n>}@2O{DX!8|y83*)fnX#7ZnsWij9?R$;SHonQnyZdi1P z3kC%}))DG{;6-|+0{341lm>qPx?H#QJy}^LXj!d}o%_+xhg=*6CCcA_M~$$0(QrHV zs4`>R_IXAxhWlh66{hfIYHI}3MJ9kk$JkO|_32CeC{#3{HE%~MiMTC!X*Wx#8ooFd z0j0zaO z6jinC^7Pq(5I@KEPsV6pm z)gvF|J#yz99WGx75q0;;Y(g6K>{Td<>QxjRyn1;Dc;aExJt*ZDZTiF>|rNwUg(( z0*jNtemvlQ1qCUVObg@s%zz>9j~?sJw5E9QS+BT3TWU-tg~=+ONSCTJPqKo|R&p)U z8+NLMlxP89f{AZ)Ppmf2u2&QC48Py#Brc0-oic|X>V_Z29XU@^b|I{t95v&`tAW3G3r$N={lQq$8K`C*gtxo!)1vnC##+ zyL4VQmW|*I ztl$bW7*WZL$)qZ2Vm;Yt3b=ZiE9%KC$i(EaRvxxrZ-cZs(3OZ9?nOW}ZIypUmPiAO zf76YBX-vq1(>ALuMkMHGv7&!2uQ)o_-q_jQy-)M+k^ke%ez$?m9Fw=c=soup%NTj~ zEEDT3r+Eyi$qrDT8m*|jnYn4)>^`9*BfQ{Tdz(h99{hOyTJ9b)tS@z}ckqDDOWM?k z#+4=D&fwu#)E5bIRF0sCHJO5zoIUrop?u) zA;sq~=Gzs*U5;-JxHW-iZ=NZs>%Uy+OF}`U25amCc(r~!ldavr1IpFuSesHcHkzb@ z7QaB*bB&+yNft_!n=M(zUwHsPExro3zs^#-@CHV9Su&c`RJH%CSM#S>rb<2M!Ky?j ztXya=Gh45r+2;ARgZ7^n4(U1uC3((-yY>0>a{fO5xv?EN=k47>DZl67r5vwVC?#v; z`EE?jM~G*g`4w!9-4-E#|Nkz4^C0x>YxTd4Ap0hV%%a(y`j{3KmK(E7yX0 zV3wCYeh+U3;XpPj>j7vlO0ouSodfPMG}CnK8=lgzwc=_>`rV(8oYX?&4zjQ+qlf~J z)c#VBb92mvDRKSW{xEgrILiYmS*4+fpEQH|31Y&^rBbNw)?+iWB3zy5NyfJpVY7a( zsGUp=8CyfA&9PQ_M}k^tB}9)p4#arzzqut^g`KRshSZ{&izVfTA9!8BfNtSCA=ox7 zgGEehVzpT$xp=T#X0}7~m|A7$PbtSuo#bO)_-+igNH4Z}O|Vg`g7r4}E9Jx%6FsCq z`PSyuYW{SAbR`VK-I@4G0s8nRtCXVV$Vd#>OihKqcbYfUJHy@>ut0pV6X09)bTVty z@o&(mgFc*iZV!C+_Fdk@f$rpgf297van)mywF~<1<9QQ|Sb7ILCx_^wTe^mBYjY69 zbC-T)t*0M878FyV)IJmAzG$b>H~2Yh9cgb-@d-vix4#yW;B_kH_o)-ZEP6!_WZsbR zhdS)^eEHdc`>4gSQ4iaU6^=SQ?@M1ig-7HB}kIUvD9W9Jx>Z>82)>nevo8!&W;% z_smg-J9f8s50&5E8uN04?%joXPq1q#{J7LzIQF`JXJ1MvJ?((oRl!+5ZP)(bVV2%T zyngTuouF{N`V!b)v9?}lkcGnHB$=9U&}9UE51nw`B@Q9dF~+K)1P;~U**u5$Hr%z4 z&{xJK)OxIGQ1j{OsKyO>zS<@c+@w0)OsJbkL5=pfST#*eQF3A1#3JWa_SfALB4Ic5 zQ_uo|j{&L#MHw^A#Vm=lpe!!ogS+W^RoV2cE~EDOsKxV$!$lf4;+F9<@=RekTLASw zYX;EJ;3d@O=C-+hqmzscGF z*OOV8%*suqZ~0cm4sqC&3=SiZ6p!7-v6fiK`O+x4L51f)7E65?BB{bM7f0Kr1Ts%# zW>rLS>!Z|3HFHZ<`B`?29IbVNf?E|@2VNoSLRfTo_{-HBx{#@39OQTgz0b1OdU10> zO|{^n=6(29N%&bwXJ3ONX11wgCnJQhz%24yjHbY>L~T8ov3Wgc6nUXVIYp7eY%Ib} z6F(d3ourILp`0dok{fNahhqwpRCUXadeVdhUWNqHvh|2rl^=F?TPD-UO)wx6{AVZn zg$HPQ^&j0oQuUEH*^QG7eYl@)-G0SZ%8c2i-Q7Q>H+bNCqS=RRq?zb(q#@@U1A}z2 zgS{y5b>pkS-9;X}n9%(Q;jj~=hyLTa)E8>;kOBhG_fxbA+m&L4n+3c+Z@lZGGKe3a z8|*&@v!@ze(tX8W+v%0^WO?a%SaaLmsuCmNGbg#!AS1+IBKtGonlAj=*t`r zWS{-_rZa;%`Km8p&sR6-Wb@{$gl&<%M)E#S<0@3Yj}uKIw(H`a>j-`XJH z%5lGEh{s4aT$Oct!c6PTho|mbt_m!DGICQl2%nXY=1ZpWa zR)vLhn#=n>KSAvk`l|hZw7fxh+PgCldOjw0NK`>0V|K!O5sdAmN@;_OA__+X< zh@i-ab1lf^v~Af&>WX`J((b+u+D7O;_#-#f7EGX|u9F8S1}-gz>kR!A)Kc?O1z~$Z zxr)i}*Q6nfq=_(r6CCu3Sv9|`;MSE-PHDW>N>7ixo@PmJ{kB6!wzw<{NF)O_WyyJ=%5Ur_g*!a%OAYx%UQ~UT1 zjkWFjrJ$eMYW~-?Ka*cDmFh^`)UU0`a&+f4dwL*2S~P!r^Ek650mjhr?Vh9P=hxFd z@qbj2Ll=#zjsJN}tRR?b2acjPNHYOK2o@dvnjmXkLY8*9_(!<7I=f=XaIC%P-5f#d zJH(jzphbddhbrD#T~->G(gFUU=%&T~=L7MoI4YXd=|?0^#wz9y7LF+nuC6L?I^Szl zM(lDVxH%^&9{#Y`2;2-=h|XWLioV?Z2|zFO&h7tbI`?>{|M-h5q9Q8glA%&4x#u!> z-K0dNP%gvVnPKiW*HB?2<&t}f%AMRbcXOBfWf;chem9%V_S^UOd;I?YJoeZ7^ZvZ{ zI_Er(W)h&}aoe^8UsO|ozM-2Kcd-F$=7+k#Z?zX5Kp3)tQvZHU5Q=OA_vVRupW6@E z*@4sy>b%O>o|6n)XTzj6rtB7+m^yjd&*ScmvNg`LT#asjglQ2pphr@XK>d>~FQjk> z@);N6r|{`i6K?uwo{`&bU|tB-4Dr0#a@bRjnD<5QRJ1Do=~YzRFL(USWQM(fM}SOp zs3*ecvq<9q6!IeL8Ime=)%>QLyaw0`6~s%;~mRtsEpyHY6i!b9t0#r zqr)c?2cB@P%0JqA>)THh3HEOHZNQJ^*J-++TQxOjmQLZOs*1gczNCT-5pz-VMu=lA zUJ;GQEL zzrNJreNUAuBs{`V7~`N2(z;ZjcA{u8#^+hDtIZh z+e?>|yO<+J>Q_zh0jK>~qFPuk*VwGdV|zo}Zsl{e<6_OWb0<$tFGAPbW&Qd1mETQh z?A*uRRy`B7Zw zcFIaB3J3R<3>^d?UJ)(~wXS&noa4Po+UfG_tcK%F*BaJKcSpLf1&*YGFn-}VXWzi8G~k8<_ONTq1K z&-h^Q6!+KTU*`hxs!Fl=K~KAY*2qQr{PVx*fy$C`&2H{Xr!uF`2T#i=)OCH?`+#yq z@#+(D=bxs;xAB0ruIZw92w#RLnuT}bbQBLhC*ob!k6Ab$C~CQE&NcgMrw#s0W%a}_ zL+lSy@xP2%s@$9UdeE<8)K%mb9iOdF_5Z{>bTVUS;qF@fJoI=_;0iz}q#~trH=+LU zrcB}hNf2$@wcG?jN3MCk&T5&;&9|%o4PSQ6pZtt>D_}5}L^5L^bwPk#cV>>T>?5wO zdt*R@eAgG^=!XA;BT0{k95U6bhO(s+?mKmuw;M~Eu<6}XA#tKJwIWMSu}Bbe-V_`M zWObXu1KfAU3>lX;6$u)%aM{EGpjH$|J(lAGRkyT_B?Rdw?HhoFg1jA%-&6yoprYP= ztcWGsk^@JE?Qdwvn4ba2Am~*f`4xpmfzj_bG4dGax2v0f3y&`f&Q>$`sSPJ|fPH1NLPOp%I7-2Tv%9zWOmc2q?$mVdLBpyX-a#RH3U4X=@Uq_KGVQ^Vsh_70!K z{q(nw6Y8RdSvn?309Q&AF zTw;Hp?PPLb;w660w zVAl7{U*{R;JH8uqOLm`fo2~X`+I11quQ&eN2qRoBM|a%C0SUoep!Y>`Wq;R1)h?2h+>R<`JUv2 zE?3hceo+2u7Ga{hpusNTQtYMMN;;T^e+ziRjfC~3%omxQ7iDaom+-N|a%-cF@is}M z>p470h(taz07e$}*d3tcU{;Hb1}2+hijW&Q$-OgHv~~5WJqZP5yqBl&#uI4~J1F;- z-ik9pgYa2Fxa=gbs>5YJ+XP%xJcm(r=?M^rkIwUqiGu(C`vc3Tl3!nPY^H>7 zE~1G{ij&M}k!b_!)PKy~6H%&j!AE8}$HXq4iB4zqrh6H_*<_ zmvLP!?{)a$gRg!kmYUR)Ndqmsk2=(!`l5o507w z*QKr%Zsce zjZZ}XNtPc#k$!i#4?N~r>C}eONg2WZsUf3#*M5&z*q!{<<#^u%E09lt^u>VuIU+Dgk~+YhI8$H@YcaNh;e*$qX{}9ae_`Q z2{~RvpUDo+awz%XF+L+TcXk@eGR^ZY-y~G3(+>yV>l39VFrf$91&M=MBkDWTTyt!z zORW5h>7_@B?QV}O?vHoq$NI&fwq}s1TCdSxQUY;=ucQ7pL+m;#eGSUIS&83=ymU@1 z!ziibmN!4*#!WFP@hvXtu`BqVdpG9+ZSrQakCIOT#mI&64w?`FO3>RvxSxGVw}aPG(6_646ob)HE-NSX@WPB(UWId_ly9}B|vyXjPi zK_|X`k)-}PTh;I-*mlBMTta+cMoA+5?cFeWU%(dL>hZgVTBp~t-P`7l7tP8=b^ZKq zR+H890z99$IvFcSn*N(%kAR4-k;U2N+aC_OytnQe@Lz$5Y6^S>pXt5OCX10Ng86B@ zT3(qyA?J^|8ZNAMIHn<&&4YsQ`s2xafccu;;}SMiuQSihZGQsu%2F$!rxnIi#j)_^M8*<0O7{3TnR87um4K8UYnO zm^>;ffOn{9F-0qEF!*;a^M6&{luB?1C*lZ+EQe_f>r<=I!k}3Um7@4e#yScaYzSO9z;Vdj#vkQ)P~uZ+fRZ z?AkOEh2@d(!RA~fiddg&`myOp-AH7hjhr3d^z-dvjlOFQ9+zxqcO*mt<`*Z}mBz(7 z=d-S;-t#tOqc4}c?hIpY3kRvjUlt0)B!({S?%;k2bq4@y^&g_)Y*WC6@k>p=DNz{7 z6^(O~0IBm-q`$>n;2n#5Qzxou3Mcvsa_UfANe{D159h($$}E>B_y?Y~ATE3r`w>2S z#svC>7#h_${;xI&{aqeN;ZZ@qu1Bq7g-Tok3}9yNzbX}_OA&WfO-d_~oyDBW_N$F#XlO^X@BH(Kn%wM+Mp zM20(yWH&u76stack*-?y-IM9;9vwy%fK7~gV;~Er(F5%Q+I@euwn`WS)@vzX_4b1U+IpH zOkzWARRf|5E|srH061c`Z|~NQ)dy!V#$LNOu6e|{uB{qd!3(e&j)J|UNm4~fnd31@ zcXps4*`|3bK+e4YO07VH1Lej&h7QD=B)oa&{G7>&br-fP8@KuCEx0tsc@L^Snss^! z1v%Ak>Mn}CH!TtT_avyFA%w^Y(cDe53fh=yEc9z-bOy(Y#=SsqiS#c@X&j5Gu#~i0_JLJt$uZLSgghJc^F~R329(hIgT&gNlQAmaxDFyV& zO9C`T?y9g~Iv zhq{I}4ks9ktkISiS*`C>Hfr+&MSWZii&F#UA~;7nR|h!l-=vQ=DTI($F<~H-*mq-ZNNq-B|EZ`j@Nt^ZV6bU%QYszkdB;#kgPc(0(5l@6ZJss@b`q znO+knBLB$>!e1OFoUwL}ms>pm#o7bAp0du{<=L?P>Pn*}d(Ry8u~+{=Q`gwB?aaao zy$RWiZ)yP+sU6w67JxAAo1TbOkU4c@IK6b|S&gQ9;X+SL@Y?O<5LkABs25PhVXfZ` z?nD%brPera}K_Ds0I)ASZfcbUetVg4i2PL{CwzG4RjV~*^*i1U%VmrQ4pwn`q*lgE8|p8 z!`fr6#5u7^ioVSwq8O{P=6n0F*=I4;T}6AX?&-j*BLb0M7VLADv+sx5%r?LN!p0$> zJS$ja9l{_RimU;bUw$uXzQ1`w}@f6$Sr= zxI(L;)KuOEo7(Ge$l@d1*;m>5whY@UuX4P(SrLEWsR&LtIK_PuLLL+jeeu9AK*lLQ zA~iaLty=2&w;)!7aGnQ>-{KR1Tfy5p6i?)}6C6W4lyYr|ypdhu_bDOWKG*D%af>VO zO918Th)<7`%}RUhZ41V=n6HK>nY;$?1}^g8%9>Av*se9-xSA)Qx2NOsOiMt!Oq^t= zJgpO?*h1-=q!XUR{u3^|@-6GE;K0PxsdJf-8wS98UCt_x`Ys<=L4jJlF|^*{--dv- zD4ZqIs5AvWEy!DSn^oBDlN`%m2y1m$TFlt=DA3T2^p_1GS29!vRX-$EHpdjBdR4|; zy?o}Jg{w>4Q3b9j2sWW)=@h+C7PFZ!0KqsF61aS^19(V*>~W>V>eG-SOZ-$oDYQF| zkyNttngdx?yJ{|UoU}$Y3*iJI5Ch=-(Mnm83D4%Q33Grs!^R6Ti&@MU;YBTtA^gu( z_VlT*kUm3HNx0oC^=@sw~a%VSobY%nh z*F29nW7M$Muip4HgnzC8M7xtjA$|JA)~! zVT1STOBnHdjDg@RLkrr6HH!;Gmw){JYCM*PXo*x#H&ESCc6~fqZuKbh)Im z+MY;(+n~f>130eJQLoa&O|Nq+043RqTQ7JU)+sT&yCosc(wFTr|0o2F0xE~wKl`HpNd$&^EjM^-Ka*+;o1V={tcYW zri?t5X(>p2_h%{E->um(Y$1^U&ahczN?okp@p>$S=6^?G3s>9KoN<<@8PFl2@^aPa zD#lAz*~mcCNBI0fwo@t$VEZF#H$O4KAg;9cSySxI%vdf$Jc@R*XM*v|?g0I`At_5~5%qUC|A8*)!NO zPzdQfDYDEO0!w0(lt0yWvl8Ry4sdpNpJ*P8Y6QDh*2WG#&$o#7=Uecc(U5rY{A$EZ~a|nYN|_G-irpr0Ss;c=Z9c!Vb6r+Bn+tzSWkxkPjFdI7v?|& z_p{BY@Q31<$NY-keDJ&gQ{kPTByUm`83`DG(EXjO$wz-0qgG({;M>)h5-+M(Wl1J_ zw@Ncl9lI?xAV2V_i0&rEgMcjk!dB&AYix@Tme3CBYyA_*6)6=Nv^mobjz1c6#P%!D zAlQ;R7>@(-6%~v|O^WP=^lr(U0~xx9<6aLAN4{3~FRhR@N~Q*mT*)2Uhh*iFzG{29 z*lOs;XoRy=G5E-}2GS_5(lJ?eK&(~f4(zuKa{n>_S0sox)ibAM{#DASXQ?kcH zvd19MSS9U0*A4YqsL(^IY5`S^=2_f~*xV{%QHipmE%P&75W&msJakjFGsjjL{^ z;+w#MVkl)Bq|4148ra-r&&Pe}tN&bwl0SP-;yOw2LPSj_2!5Z%w^HZi!wpsPllB(Y z!B-92S1}Hkvz;^TSvvL!5w2j-fX?99%AXN9{_TZ-9P5=gb>6Ou*QT5FY~nWa4>UI> zbBiGt$CNAmdUKu}m7fPm3DU8l+EXR_4OJ!@a%iK)iN!pAd7?7qOnl>I7P(u#%}?P( zoy_vVWq*HR37e7CE~B_UNkpObHD$HOZfW3^tAY}Q=Z^Sm2H+I6yiF&>^jyL{|B$=E z_q!z*+oLs{7az@}tN7fzbq6D%U#{E_@3b`W(c&(3ULKLgKRtHj&KZC?Eig}^qT&-6 zH`zrXRbYP2VxFKv+Yx&}u`8W^JMu5>DM`{lkdBMUOh_&9eoIh%+xOzfIBLDh`960) zcvY9^fAO}ODDiuMnKmY}7SQV%F+eUKZ~hju^`z4_6Fic6<;R%~2lP&XOl{XXoc;Zs zrWc~@?yUmf1}A;&9IF!Yw%`?wCpXZ$oVp~+W-iPfrGycE7@LE&SkCKxrN_K`S^JlwW${scsCcIRzl1zIbuq|O`> z0HsV1wT^3adrGk%#r?u{j9UreyRnQybyTza4Dv-L1m{`Bj6@KE&KU!akuXkkc$sX^ zynH5zN14zC097Ic4km$rHi__lrk!ko$^BmOb4@pAcK!tmRU@RJo81$tJi{WbmqF8& zW>|Lq6t5=)Hrl;1tK`kb@%$6?l-W+IHaU$2E^WPsTM9bm^)J64qlQBZQ*YYfg)9%%6^|!yodthe-}n}jauxoh zrOvB<05-SlNqF2$0?-K$BR3eh66u_LphH-Ii$ zwP8Og&)@021#6uQu&z@^t#((!FjbhF*t#Q7#cREgxDc$$KxNH=ED~n!v;C?OSdE?_ zIZlg2)Q(lrO*Cj9)dzC5#=U+PqvJqXNG#L>;hKvh6>0Y@K^qZJPq+1?f$3^m43;Df zsxb8{!W@2OD6JQ)T73x_ckD6h!@q_rA67P$tW+5-Ep+AtyfQVQPGNIPEV7Vm6;#`* z&94ofX*>w1_@!Yh4UL?vwP&S%?f!!coIVEN1qy&(SZ3qPEbD z$}q$8bXP`+b`UAqJChP|v_{)ny@?6A@t5E03JQ9JU(C(XM%Jftti}lJ`#ju!t?--X z@d-bpOZK-rp~b!GMG-c?e~FXzoh9dDZsR-))(9{%@Z!V$i;2;mu(DO&JK`XL-xBEU zo!t9*df(knrWq;y>x-ldTu1n`YMcY0|e z-Y9fsUVlTDzsB-v*`JSkhy}w33%mVAYxj$XDs$`s(Cgw_=ZW)vV-ehYgpdv1fv(YX zdoC4?R`vw3&ynD3O3kKkZNtVowmw(j{ImbiFXq;mU0Dm|)*2&>9xHjjQ}j9D`uQ9W zyxT?AIm2&Gu&Z1o80{`YlFQ_eeMSGPl-6Er(c~^=O%>%Socq#0?UjBG5X1QG~UX`SJ|dZPp(x54WhWo|sE=U&=tZCRRR6nB7ydiioHH48>Id5tJ`A zB1UJEEiQ@~IY(&9I>mTe;ggShnnJDJq;$j!6US?D%B&om?%FP{piCqR_(Zn|h+8yk zY-0~1J^lT${n-Ftt!f7(kr8q1Ka{aIQ?_c_TRDBY5^<%DISl;FL|65h*Vfp6!~tJd zQ;(QF+$9%~!SNud;__ii5un{_jVT;&1@|~2A=tg!-1VRky=H&>Du@O??zq0?dHfGT zUtMAD)`X0w!K8(O6ixKa@oLZhTKC4daCB@46?7aEvLj1x zJPf%oq3N~ttLd1%=~&h2RLuhXuula?YgWnBX6)6KAM>k*Iq446g^OB#_f*K>G)56` zL={Hcbh3lIot)I5efN@3S$af2yi%urT)QG?nA~>R8}Vt=;_EEwts>u+}tzW0(ncTd$rnuhelm zTCuH9v9Oo-`Xjue&wJmsunUK~*JF7&bs6!k9{-|Y-V?M=+v***A+5HgDL?KmPg|7i zMCqWCIOfNw+o;A9z6%-pZe2kjYrT+J@od!0Jc}+p{z59E^?U_vBeaai>CB_k(&nz0 zEUS94d+{?$O%G!;1>u3;Mbe{&mSJ}z`5Eg_8=`k4GG7BY^cCc9Tr%w~mnzQ&v%IqW z@6qBX^aabt8jo#p~W~ms|0?-OdLE374x1Tqs$L z<_M=2gM^IneqZ^RgX5HFSkmP)oH;`sl({`@WUKc1Qv8q1m>qI7&+S4ek)V3^Z z8pxTZ>6_a+2E5r?`uX?DGs)pY;b-M#CAsV?UIy9kl4hSAaQj&t!5*smT!@ii_1>P9 z=)J&YQ<+mn91#YOXnY5}V^7fADAN>=+F&N&ieGal$VGRW)Sl^-wY&JqardmJN6;A+ znX}pYbAEROdUz`X&Z(|^xXbA<@bq2V!SyGc`+%V9CQgn_Dz{qa=?pa><$(e}#gzXY z$p1%=XZucC%3!NvnfE#$FC<)?C#P4P`uM&nreXd0!b1Cw=+?IH_0h8!o?!7N#VoE; z5#0HCxpR4gD1r@bK!p(oCto%%pgJui3xeSZ?m2A3uD7@~Sj} zAxpA{wdnS?Ry@>8A9988siNk?lBBh;+oSyAY}Nvre|gmf7p|I+vfDj^ef?N=K%i zo@On-y7HF4zyZE20ClrJScdMXF(Qi|&vG0}7TiZQ5MP)dW1+~S!7Yx7BPiTwN$s$G zwnd4ZR3#I?_Ox-MeGoUqj1pccKp=WRZU|=E<0<{kyHG;WxN9GEgz#~bNBGI#yu>(ec+ zY|n-i-u};dRyH+bD$!H$%ZLq%pzkrl_*z3=ic*O$6F6NbYgF+P*}-i%K0~+XfxI?% zxu#c%yh)*NNaqa|IFIM&9*jF#jEqg*0`Ri|9p4Z?ODLASBrK%&E`>B;HPQOz{85YZ zm%RBtix%(db1&S0p4FA?T$@;X)g-7tUcRe2#7nA5+qnB z7b!cLDx@gI?)7AJL{WlQKlG);;HlPxM%So&Z!`65 zQnir94I8l$?|+ci!Cr>5?KjSfh4iuD=5vadsr`kia(fYR7C#o5i5}<4l8-mlJwN(r z_VT-FJyXyq-F6j;5saR}C|ONV0#Wwi?U3th6X{cv@1E`ak)O5Za`~zE%l&bz@WCCr zV(zj6i102%RbAUy(s$t8y!-SdhK%}BGx=+g5S#N*>4C;1nP=^dg+`MK#!O_Y zntO8M=}G0S$gIm>EwU<4CGgo@9Bv%D*dC$(0mlq2C9kE&D)sn ziAICYVe8`baH?&;8+OJQE0CU|+r!06=;Nvk+M$5O-lW9=uB^WfSwhJv*aFUySoI2u z5q~DFh7r%H(#Tb8aD_Wgw|e|7$_Ztp#PN72sbJW0;7L0gWJLmJ4Cz_z}K{ zU8}>}wN0Kx;C#M(SAhl`^66_^e((Q~%!Yh;>czhTZJAwS_;?`9G2u!2ky6qt_jESc z_1^kJNnRO#2i=5E$p_~x-($ zxIK{{(7)}g8{y)zG!Z9OxKoauWK#uQ$vcCP`BcE)e{*8v&X^``wmIg zv03-I7IQK6^yl1sNWGQ7^*Q?#0!!Fe{7+>`5@pl7B9=55x_NnXER>T~1gWy~FP ztqp|0dT(z?_Eudj2-ta{+=f*&YcW|;57J`YpsCT=73`_Tes^w^_|Fa5{1ox$4(Spn zCV~S7Ke@Odn}TQBg(+D6`w|%e0t%iYE`Q~hn%z7Ozgc)bdl*8_Z5Gu6*xtYQC}7dG ze&oz$M0%|6`UAeho%>Zj$HOnYJoaH3ZW;tjtv5`L{wL7R03)LcIuuB!~ZCV z94|xGA65FGTb(x}_x#=4N=3ULa#7D2EgkvA)?%#g^X*OeV{Z>bXS=BslTBe5vya%; z8r=O_{n%Y7h8_!@u7Iqi=>@1@l!Qsb)pW;3;arW480kE?Fh6r*&Q`})Lwc+S{)0E< z*Ue}X>ODKH&0{JyS_N?3_G{H}X$K;fekHGtxsy87r6%v#5))v4tAV6j4g` znU3Z#*(yBdNU@4mT~h!BF-UE{r-Rqx5Bs`yFI6CZ=Qa+izV>ovWV)ZE?K^7irB;V5 znFcTM|F|EL{s>B*9TlDb&mIAP=eNn5*Fg_CjDh|=DA5c$riAP+M9yyETRuuH)IMJd zOinz< z{3dY<(^HR3?-t;;aOLrzUo;isisgCmprC42LA6=W{oJ>WswUR&r*!yiZYRO|EF!db zljn|9r6|mXz0?%mnw=Atq!aMu6vH7ZJ7^_gp6%ie?^fTpfz;<5eA?`%z@-SeArBGm zr=#Fz2M=4P#ciEJf&=p8TcFd;MA1ZHA(HQT-%2!?z5gEC%51c!dqQUK%g`Qj5H?O9 zpi3qME=`=;jFdr>oRtMHEo1@{%nvO;apn`RiOLRr(L?bk>zpTcg=dmWKNMWfC_ho| zo_RTY8ct&!((2iBA)HR^o;E{#>m61(^7`p#iC;Byn)(`(->1=3F;q3LAiBLAm)M7E z&eWf`|0_qK3bSlqJ(#xW3jREFqQmKpmfpo3{l4$Sfc2~xrb_lhsg#GJlJLu`Up5&m zZ7|hO6A+zWs<$Vewf3)lTsbp*wIY=e8#eSckz*}IZpzHO!5O`IO>_uQfRUS!3D-QE zvQqV^W~wnU#m3<=QifJC-A?i%j3e%T>2koTV2S#gf<%Wq>HFuCEf}+e*vm5bC6k)$l_HKZT zHoxdqLVHC(MV702Yl<4w$CTEq@aFVxChmqfF7O}O2_0FR*SJ(&HokZ?Xe#55Dw&MI z9+M`Iq@le@P@5_dO45Mf;Y1B!|BGmAh_+kx!e%vtX1X2e)NfuM&{uzsXMa`p=-|h zq4zSYf!DuYonV=pE9$w%7kEJl82-?U-vcN1obf4g)|)i7^JV(~1%p|+D0>qi&9 zHJH$I!2u7jJ-(oR3V?v`G#Awd+O@aw-`P>HpeHgv~1jM5OlXSG~8sz!ZB~| zbM%+)Iqt|?i!Zvt+{t`48q4D*x&~7`1qRx&E6z|Qy z+0Co*cvsBG%MeXKsmVd&*23Ht7sY!3XPeLB+f|e{VQic}p?gk?k>Q!h)BHMUMn7Ar zppt)i@5CqCt_F8$ZL~CetX&`7B^#85_(I-!szFr~^?dTBp|sub`#Si{ySY12{)@lf zzWpLO(a_7ap29KKbMEY}01LOv2hObtaavfK|A*HW_l%x^KZaBoUGi2G!wARfa0#)x zZC`!|^J*4zpQX=)lkIvayVHPAzaNwe?);3t8x4_*wYd>B(A??&jYH8lP(-sa2;L%J zhz5-L3=?J2mxQwxG@%|DqMoL$P|yQ)Od{f(a6V9-u)s9N19nBAhKonxD>Z6ItB~}* zF+avA$NRNLxC*+4H0KxVY9>eYJ?BSQsZTnXkuPu!i7TnX9JvNB7q?HtDt$H63d6^%Pa)-IWT=%ED{0gU2;r25A|J&xFF+DMJ#bdPHBB=ZLdcCi~}czf#g zL!hN5Vrkc>fod-QZvLI*UQo%3c#~-GUY`o1-?Z^)bPG=D0R(Ps|+A`Jd_ zbe5kS4Eo9pZ6?o>|LgJTH)mehK|U<-Q3)=~3XlFBU`q@ty;J};#WEZjSX<-ohyP=1 zaK!b;esJSy%h5?LS@cmpV*WtcNnb5m*%w;k}gzowXKA+?kRGAFC83g4|A zC0)PuZJM(lzqwPc#)8{bnP?-v66HpyqS9-Y zIji)AHN7fN&+vZPUk+~O7fX4l#Od^c#MF0e+ZsQ5Oyw?OFn41XoX5^4_O`(Rd(96( z`}U1H4clejZEeZGU+8dNs*}f~wArd={`^_(*n>_kd~&3_0|MZ8FVXeS2fN?DcvH#5 z-4QuShc^I6ivELkz@jQ^U2ksXpE$}0NK;#t03^Kd&Z{N6rsN4&{o_*cSy$12X^ecS zRLk8KY*Y32C|&s8X%mxs@+a6j1TN^c1Aj>Gwa8`5d!q$g<_);D#&tWu%^x(%;8K<4 z`&t(PSlw9I*kW>%o<#fiPXQhzSOj!8(?A0gy~Ao>zh^W8iTNuq_IyT~15 zTz@TaDS#K`7VEtD!LDHuQeos1(Hza5h)8KvGI`Y^5U?N@x>X*nvTt2l-eCDE*X}|L zGpM<&CjN+Mf`DxF%u^B?MZUN)#b!c*MKLUdgln*d&R0WVSI3EkP#MQ#5q@JjiK!L~ zyY^VC$zVjFROW+jm<{NPE0podVrOF~=rzs@E^yp$(_=J0i#bo`S!I~TBH$WP*s2bw zm2fpj{nCbcEs2EXm>C<-Pk~60BKmUy<3~kOQ1F(gk9uSG(lWWs%FNL1+Zb_mHfRfU zw4bki90#JcgJ>W#UiklII{gd%MRl>2(=FCBMw>rP$^bQnbn^T|DbS|r@j@2Xrz&>$ALgcb15Hn;iedFDn zT5`KPA8>)h6SaM-oYJ{wl(Gro2WTDrCCsq{$fraXlaAiXTc#CeZm_OwB2 z)|VX9Bx?_sI}s>(zjCKkQ%2Uw4_5(Q=g)f;&AEN}VX? zWmPfLF)Wni*%Y+u&`d=oZ}jb@n0YBGRvDj+^S{%C(Z-D5{3ZtkIuLhJt|?xZ%?+r8 zQtDAU)yoY59&b$9jVStW5?0~B!wQZIad1Z=E!1QTt|m@z7Qf)vh^VGhuYr0_S-Ms% z<##l8P+sBk=d@01?@hqM8u7xe_$rZraTW_alNME0sTdqvO=4dAQ~f&y`M5G_`YfrU zVaE~6AsB<)qNuNO;RqM`z8=zh}lVMzk@-Dw^Pk>54CpgnfqQn7uB5HrZxiLz0-RmFj_^zzUgQ-pkw7{J>~Cu;>gj( zjvG4(DMCiN)?VDbuf1n^A}~YVUhgHw$#(8>kc?sd%;519GX+2ca{g)_X#_>?w|)6~ zbGM>|baVPSHN`Ww%ed=@@_oIlD;IfF^U&8H0HOyz)%S^WB&MJbF0P zaJQ;jc|?l%wLSWD*bxWjC9jTp*|No3fB(%QK%1QOH1-|O#PZ9KChj=&?*4>^1n`J_ z&-2I4A#03#fA_PKB3LH5p!T?j^q)R;8rCW`vnpUtb*(tA z8K|<<^pHeZ5a~B>IPl4qO53PjB8FcKE$F5M2I#`5QHy*s%JoMFw@|!6DIqs$W1?W^a9EV8nM)y%{_Kx2Y zNH#|#voP2eu4AIkRiVaGXtBzCI*r2(^JQL=r>f6*lcetJBfI9;kZgUx(U_$Z}duYLzmo#0j;jSxC)fT_7SXIRV* zULFOoS`>QNb}wKgZVJNCX`BHW)SAZ!_VJ}WvQJlIH6CeZB#0K45={YDtxja&zSDcY52E_Hvz!5$PQfJr(!ByG-Bm+w~Bx#jn6X zCOLUf!y|V>Af_SI{ z8@0ALcS=R;EEr@Xu06FxzM)c(u0nu6X;P%VL!VFPcXnr6uJKKb7#=>4Zg}jfb^e62 z@J*`O_PcigMz1cdm;YYinPf2b?TQRF%I&3T=>!%$2wwdWcFbjy?V#Z+)r^!(Yn#lM z9Q2d5k5#}iU{@Ej zGYh6)VfS+(hnlOwotAzYFci?XbD9{;BW&&ZM4Zs8DlB>_?pMQxql{Z6Znft=F5o&p z$^fg}F;UW95SPim*?XXX*r+~I#DT$XeZm3Y>Nqo^Z-*_e?!Tz1e>Ecs>KOsVE0ew! z1!z<<%c_c1NQq{2 zdPeS>|3|ez?Z0F2)~y{PH8R&e5lasqunl`A2>*OKO@l ze-%r--S)$2dtJWz9j~o+Y1&<5fcy{Z7nc(^_?~fkEg((99vHkLi*$<*5^VJp1qkY8 zFHv0|p1bruey+(!oRITBR-vEh;3$5op>Ih}9rd;nP;6tP!xat%MB2d@n0bGnvq<%3 zNc0`m=p3|a!QQvmPe^E(xO!q6M{MxS?^)O$e9-{Mr(egWX=^Sf_8goSG8eS%9TKjT zh-gyF5)l)RC=yT<&Al)B{s5WpN%*2lNeuZ37f2ht8c^xLOZT-)(G(MbI z%NtDkixSg&tb8u%lyuDpj{Fdv_zJC!79-!cq((BV@GC|5VU;Gi2+$)J-X)W-{VkA z(JtgX9G_c61bqo;+KG@a9sHRVB~1wz%7)-2^pJ@Y3w9|Fh%w#nI~Qt%HI8J{cq=b?QSe%Td`ETJ1(b3MnD$;LmN3olT<7FttOB2=wgw<$u(DutEM>)KIyBruP+1ke1r5YUu|v6Slu|WmT$NcRQ^1 zaCOr7YM{!%q;KEW*J8?O2)GK4JUA9$93%ZQTcZUTw=Adv>O?P*x4<*U}W4_y==`Zn>wcPHJYCE-5jL)O1TvyjRts_`iscVVB{dG!C(L*!-Ia5S5j_ z^XZ4c6QSQw!|j{-X1lr`*%20d-?%e!A3lF8*Yp}{GC<>C3H;oTd30Ug@Ls0Gc};kj z-v=id@7GkEz*kCq;n`jm=D>hHZ! z#%Tisk<>&no5gLfSN?Y#G-~av6k@aV?e=!Afn9zE>abRlX*`TdMo#Ak;wec? z(DjyhaS_o&_$M~Q6X_*wBd6>Q7JYgn0hEU-@)_ZSpE{D-7Te`vCsaR!opEa6{=3ec zx7aNHeb5p$N{(YPnl<81Z6VY+IKAZNS_l@Gr72z`zXB4qm@r}s3{qAgZg?AYNo0Zu zJ9}+ z=3OEzq;_CpceJF2G@5n%KLFl9A-~XrIpfe@!&VP|$GnC`SKe!OxEi~CaqYpJ+u7C_ zXWSm2ea^OP_VU(t9>Y;x`EHG?FBg5~`hFPwhsF6+o;?rb&hyq>p2~~==DOu~OW*jL z<1rn!Ggp1v*PkBU)^B;^%DL^;UBjJq8@ppxrr(%b=Lj%7dV_Gsxh9vhJ(zMJ&wMzs zK7U*7jW^!-Q@{In|L#AHNuL7fDI4g$eMBp8{{+BCbjPk~u}pjSC%*8xKdOcGfA-?V zyDxN#e_dDW`G6|dR=zyrLh5n?YE~0!g#8wyM@k&lHVWhz&sOOOvIp4IvB6t?MAv)?& zV%*ho^4uIFJGXds%eo;krMaZwd1H~Mew8U*M%H#iefkFw51o+Z$~=gVHBpTtmouSb z7-$IfBXH8LFLr8cuqjI97bqVL7mnDdU3^>{LIasEXM3MIBKniBhE8?#ShF8Ct{KqJ z++}vg4`GgyV`^~H6mpbg6wcMMHZn#WV{5SdnUsI10d<>+9eIpv=jh`v9-gCG6Wi%eYhgCg)#Gl&EX7(Jo%44T`=NXL*vQG z{@C>J-{KhAJodqB6507kiw|@0TrJP@Fr;?#yTr1Y!U-gnL!&SE@TC?6nsbye<_9^2 z>lp7)dYgQtqnR4t4AmE7>u4u;k1lbH;K`fvQ0)tk)aCR!hJke>WN1e7IFXA_b1xvZ zi@m(|)5bRCLGNdD%7P^}ljK;i4|xm;wMwiDE0RarnDOA#cy3f31m?c%9p_MT+05Ud z@UD4UR(#VhpM#^eb1{8x&4HfQ@y6BGu^z6*xrJ-IJr-~G04zw&}D9^J-Q-@ZOi>Ce0`^SKoReRJCK z<~uK{&Rlz3`4-paMF!W$+4d^q#(x#x?X!8dd~F|Zzwd{<%*G3NZfwf5R;?Y+;r zAH4h1KmBJv^Y+XCR(~w*kMYT*zy7TgicV<;vgP85Ps6$4rV*ZNX-Di7h-+R`A*gXu z%85u0lh8@fA08VVU-S3^2rUvQZWucHRZag*I8cCdNvI zH3gP92F<(qkZCg48h~#u`Q$mV7AhIt)E<8j&;?IkfKGH$yq|IV_n#4Vk-jHo^}IOh zBZCKl?B6NFo?+T`XwHqTvr%}PCqYs@xB=G`Xx&%cf2z%&s^% zh7H#9m|Bw0YI%=Km`G(mX7TZ?zuGP?|5F2h)DKCb`K;eCkL@QB&3U!yoX2IJ>xi~- ztb^uSek|qSO(mYB*36o?Dr7}*rb(yak@MJp;+YD#P59pYy;5+pPPCb$ZJHAePIaHh zaLVGCqcw%|G4>pZv_P~;u3nGxk3B{Q0W`{kMXr||10&(;CQ((%a5QV2_*M?RX@Y-+RPq#GB`&cMD7|Csyc9J)?x z$!rRuDjG*-4&jV+yt(t?|LBR%2VUu~1fB zIH&_%Jz6t;b3NcNxU_rN@^`%YTVmIVzxa*aYf*glt5sh8o4<889{V1?IQnX17hgX; z4GeYGwlSM>t~KG`+S{&9xm&L>`o_z>_QhUv;ina!QMUMK)s8n<>~gO0;)>&fX*w6MWize*hZj-_o+l2|hjvKI;1bm-iOosI zCmIa{cfcnfG>P$3yQp!@<*D-elN%C%&E>E^F-KMZPL;8Jvm`G!M>O-s6xugwM}6ld zIqWGXwaq7@aZ3*!Jz$WtOvi_s`JU?so*({EY(6FQ;K-HA90u+j{WP|@tm{SeCUS#4 z_>33EpPsUlBii5rzhz8i(V2nwlQocF?vnJOrJ2ndGcLrsuA>)|@D63z`R5xdqrH{~ zLPF3z2C8wi>5EbiNDpJ3zcDnkj}l~zj=VYOqle?rLnS$#LqmFN508;57|G=F3o70t ze{@)jW)qVUN{^Kf!HGMmgd^9REXzd!j@zRqP7tU-Oo;gsG~6NpCW@zdi< zrW-!MTzq)mv!8Pe0daADUxty7WA)_fI^nlI&ebxauBq9a0E+iqhBmv%+D3t|9@^BV z-fvX&IjVTh69uN0V+4Lwkbuve+`(P3nd)VInR9sImLq0G&SZLCu>Z*cj*Yf6G2_v~ z-{+6w_2ZssEMgCQV37<5+d2V7$9VSs=wcbzJ{lGtKgWdU4i{~Lqlqg%_1!_^bGL1C zaWt2WV{FOESqzodK2i?m7!SrcZ9Kc`w5Ch$uF;~}eE8g9N;#&iT}^U~ADvsAE8gO> z>3SDajqTs~+PwkTxN^4^c57;Ub9SuSolkRIG4QuWdAo0}`t~`azV=tWYVW=^?OGbI z&b=O7c^mT-{w-cLHh{32_t;Nq z-Jg36T1$IkS6uO}b&tv0acd~9b_L+1s$eO5WZo_$%!!y?9pWFGzOS|vIqu{@o>=LrU7CCg+cNs$mr(5 ziBUI&;0%{)k4g&wRA4%PiVd!RWnX@nK%6QvjO_Kvtsk2^VS(I;3S({c{6oNc+DIQR zp9uQK2Ha|zp(w(ub*;RH^7}@Z09w@ruYs|l%^b2X>=!=!XC)io!IkVwEf7<|M?Ymi zmhAx9qcyqs^psET{a@dO9AfUrHOFXDvmXekSwE)z%sZdDPyU18Bg3_@|NQ<8xuu_d zAY1+%7fEvLXK-@i^@7nWF+ZIf>qyMg@unF3dbr83h&pn~*L{@u)X4EQoE}G@T_*vK zEfO+$O0Xtx)QIOt48AQBPTbW5;|pLBN#mLLCi=ujSkYJfw}UioNy(4$=4M*H1XGf6 z+6d>kdVhlfm+JlC6%J8&ptyFPTr(!a#HYHfD+uTzgJIri4u#=U$GH*R zt!*BYnkJ~5s#8zBQX_7Ed_f>P;Bgp7_N6yOl%hBikqfZrIDGbu?$&9p_Acp?-_r6u ze7z7-LeAI1HO_vQL;Dw-H9FRI>eyqbNA4*sYvYQoVI8;=H($DYjLznP;ZyNqh||j5 zIl*)cX6rECt+CxVULE?j`q1B;oe%8hY;HN*S9@!0yYby$zhXk6pfZBKkZ>c7|DI!3^v(Y)=e(HiP+zQ)@(-f{c-+vBfh`|T_5 zUVktDJ^VfYt_RGnh`*^@i+8^8g?~ralK=WEJ)?PI>&&3Dp&>enq}M6KwoV(EzL+DFPn%^G zKM_u6h`{&Bgg7TTIk<=h<|N|-kG8Q4u=QgBdbK@90uL=WK{Cv}X0Fx{kVD3;LiBo=;vkNI46!+DDWLa76tX?x=NRiC zhvPcs3txJU10$|pdHCeE>vQZv#7HLQKNg6f8%2;{ zIO7cgUsnc9>LGzC+Q+V)H?`QcNizM6tCtjZ`d35dn32Q(fI;t;BbXdCbeWHz1JvNd zP0j)MrV)_Giqq$i6c2;C6~?bV&wq5dVb62L8VVncJdhwr&{RzHG*C1@#ekIUwTEM7 z=TI$!976;J{&`*wQIC^Y3l(e91KbVR@`3Yn4&RD32h=D`UX7xiMG202XN(4#Cem9p zW3+gFs|QV^>^Ad4w2Lv><3HB~-{HsRxMFQb%u#KeUHPsJ++Mp|ar=bhC^&1KTE=G` z*~yn!ejVwo869$U4vaVc@K5aUoXi? z)lUpx_i=F@Ut{2DTL*jNf(T~&`@C(uxyrBqR=;&_#p?t2y4HLfyXOnPnEG#MzNLNi zf&OQJKli!MeeQkzJ%C?&@4ffl{>|U~&7PWXP@Y|%#ua#e1K`uR*B-CgH~(M!=`a5C zx(5D_^-0>>ddlnm<--@pSA`#(N9F|Yr*o5dAE({mn;)+>Ixw%-?fQ#Fnq<}OTO4WywPp#L*sGL1R`3($>%Q^Irqj5t)O(OKo zjze2D)DHOER>yJEQ>zHhMSi)}WN{}s4sLc*6SGTQ1Z_{gYMbtjqLMg19dnLE$)Ta! zbg{ut1@0mtY=)$O38F#vE?6)S@W^eUDF_U^9Pz zN^An4!7{F(^&*=68C;NT^`ixTFmL#~jV_|W!x5m`?QwY>(r3LC%pH$nxLa&l}ud}+Zp@i^rm!cQ<{ z@oh8?wdv9ml%qcK=Qsd~cq5qHrp3iE&G$-9%$Yx#!Qm7C$T5jrpW+o0z<v}9Q9Ch)rZ>XGFvVZWSLNliItv;MNzUvRcd8Z2V zALO3NP&@u(&0yig&*PY5oWVN0Hp4lSiI-(Bh_R(cvo`V8WnU*;qT|#u0s_f$gO{fV z$QLtus8QZBgWyJmrAxuTjA7WbhYTAK~M5iyGrF4znEFiuWAX8eA7a zwIjc9k2TjYn9aG`)O9@Xmtb*qb=-dY@zsA%t8sYPU5}2dxB2DJ_fdRf<<(EWwRe1D z;NQY+|ITsGu72a~n``H|#)`RWbo^M4R`u@nU(G%hQ+O_N ztpHc%AH4IUSgmU3+G3U{w_$sWp zxmhQN>YzS~QL~=x+%TY<7-4J}6p_5Ak9v6bmfmxNw>b#f5eaK)oP5zd=Oc{4tiWKL z8$T6*S3ZBvHDd$qcAeCbPs;HTOs&pGUiO2%1jdLgz{yK&oYS>N%ApQj?oK{NfFh<9 zno-w^wdAmp|AbBA>BbK;71U3lBt^Uy(Xp0eluc2Ca~b7??tMyJu~Zq=j_@5-Yhb7} zyJoINBL3!vr8~DWnPco~PHFb{m}!p0^0jehOuRP_!!5t-eS9;=H0I75Bf{$( zHHj?bRgtSr2(7P1_66(IIGk*1VXpeYHQ-7-@a0^Z^VI|v&SbkiEu^PL>N@8i3TUqp zrKG^5o|1McUN?(UcJeea?$fnn*n3V!mgauvNMQ4m>(~bX&P1tM@Xo7!bVd!lCz?0(nWeA`#M8r7`E9^b;?+y0G5W5=)? z-*$03hOgrtzw#QRr)^F=54XFXhmnttZsqzY>Z6|WnyZM`)_DE*`lsUV@qfSl_v&Mw zjnTiZ6%TH&(UrGjwZSyk72g>BtsGbU>vVR`D|e4O=PUl6f7e!>D;Gcf8{f=$U+1y6 z<^SIl|2e%0@J&Ivi18%~yyy1mUV&VZe!A!IT>ZHMd18L>BY)@R+b`eMU+n&l&Q5Rp z0+`FDxoG*w2|#xw3gyD8C)M`8;pDHYbHk`a+W11$H-+4o%cY~Ja9O^X_6e!yXN%{8 ziBgaJB5^^@zu-gQ0y=^UIDXz>>3=blhp$Vj9>SthKaHgs#7}(a3 z={3RAeAbX-+Nmc8wW(RchKJT5bfim)nHNbQrDJc#pzJX#+)tOYmvL8mA zn^&6o^fK~^?f@n$0B+XM=h(@-T}H?P*r&-jFIr$-fMV+XW1S?-S_#eZN?y6W7+y1g znVX9v<|aG~rhkOd3^7z*5P9?lm;I1^ksL^{X301DaYh}NB(vd|wp$&?8SBP8$rT{} zgL3#q8~Zq(2jtwSp$kSwd@ul#&eGo4b!8M!P|roaQ0^+X$dmymFDZ7G=NP4*G% zVYGtM)02~P1UKT4sFi(6I=gJi$-jAkfaiS*a9UW7`Z>?K!5NQw26jk$*7B$Y9GX41 zWQ;)GgprC%TnT|t%UtgGTPBv*W^#M3DZ*&R95bDkol&Xjo;4vKz|OPB0bc8>-d2-8 zteG|O>Uv%P!RA;xO0z1;v(DBdA8JOaPYzId*o8N_4NG=!&y%bb2>anW!r|QM6q%Ug z-Dg&p-*esES+8A%F*Coj+OzWdyhhSw_h47UJvB@n&aJpWHrZhH{Cs*7))C@3Bj*q= z=K++vj+`Gso-ON}F?JtCcwQRduTAVa#@D=!-|9DJ+t<8sY1_Z;M3b|2Uhl6f^H8I6 zphxdkYo5m27h8?u>TiGb?|Bx}erw&r?f8|$_*z>rt)cw-@Aa?45#PBOKgQXy@>h_qv=LSN_)SI$mQP-_q}MW9w{Ob5^6{VyMQ4-_ANi0`l~~(YHc6>=G*@5D^E~v{=cJN1$amCzXMloUJWyN-hR4Q;Q3boKHd9o zSI^bRhx)z$e_NmY|7$#P_455$od$TuE7TX6*bwD$7@L+$D15n~)EPux;oXDCiOM{N zrgQSi+k%Wyr}cWkH-#eu0W&RiWK3=H4%wyzqCqS?WjD^85c3J&+${L!9U%+A!Jt09 zVc?6kkbL4x$T|5R0O0n5t|vhH)5n^eZz}Yg2-a%h{#0F(+$rfa37%FxYQfi&wFh7X zALubK2d*9!@{ADBgNuGImlnw`wB?zwdd3f1V`nzj=3I2}9wsRxKm6i=IzdFH84qS8 zNEjb9oT`C05zGmXx_t9%Js{Kxk+p`WhZ;Eh+{@uKIsRG?H2isk>(mdQm}-vOKx+~d zsrwavZvZDm+6Vcvk|dI)*s=C5fU)v$M<+4I1GV4j;q?cATIOd{gY;7IvhfX(%nAR9 zskeW?-EE_gc~V=&d@Lqw>N=7H<2s~G*$UC|TQcj&fOAG^vu3}LPZ;ung~nJvU4x@0>H^@FW5ooIk3dFf@MgfY)TaRx0xBUN z7aiMWk}MBYlZ_erOn0uw)Dn8;>v>vxQdGxSYM=V)tqLyw<*;wU76R)VZShzWb#CU$ z@=%-p?;HmpFe6;sjLU~vfBKA>6B*G*Ytq@vbN#rn#vU>E3kxT28R4S4?XxhB0>in~#0%YY*me_7^8mkWdwQb*V9=?J!-niCNd}Hlz(CsRo z0odZ(m)BVP`XB4B*lM=cE4TP-9RJl-&>sc- zGx~b~-}?I3zy8bett+)Mp8HSZ3LLMUpT^>!Yt9OMMNd*$AH4hd&;NNnssGw5{bg~T z!j7B&;~JKWLw6@BQ7YZi4WCa_{N)?UyDY=1Z}w4!;N8C(rDqG{^d@umEitCZe_2kH>fB4RuR|&f5r0<(8E;OU-ulU=Ja%v%&i#~X)8|z2~jlc-2 zYvK~+OLKjy!`wqK2b2ZUzw+YG2rhwRjsr@a$ zOX;f1pQatfrT!Eu&~WISgZWL~=JdTMdid${5%VEoKOvpnyuXBji{Eqf>lf83zTOye z8WO9St3;kQHOP_weL=_GU{Zjv`~XycYG8Y0J!{U!-zd-l4F_6}DgCKVYiT2CxYXQa zxsh=mxv0-O#FGLU9lW%>=|Tn32_i9X;pty$;CYoi&dc*%EprOa4iN^Hp(%)@UaHqf zO^(QABvP&z9 zVho4>O~5?xE{=fg1&cNg&1?39F~U2C3gD;BI_6tcZbhv<`~szg-h=ukhFUV3KHe1N z5|Gvp_R*+E>)~U@Ht_&R?-C5|{%w{hobhv+$N~{0jox_~NW1>CkeL(lX~krJXXG~z zCZQ|Do;+Ervd~&oJy?Hj?{vN;aTm9DF_B}29jcq*I*KzX|-@g8h?=jlg?u#p*F%LNPfv??u zYt$yzM}6(9%UJejr>4L5^FROd|Eyde@b>_UeeOTKE8xq>PjC6pm1_lF{G$Hi|Ihr) z&-|z^j{mclFJAnJe7cpO=|xyqtXwX;sq3YgU!MtcY5tKHTfSDQ6N*SWMOY>qkL-`T zFY;h=BI>7VaPu|#-sGkP>*$897t-+xjZd9FLBd(-p>grbB^qu{PUr{2Nh~1Ww{S9) z(XWCBIB^j;k!?OVfPPbf7`%wiiIE&BB%Pvj!NJO);}v54;QJ&@uDns8N!bs~-$J0y z$VGo{ME!n<3!NYmYQQtMtj$c*T||>IiwV3Ze+5L zgBe2;liRWWw|8X7ab@e6i{WUH8!}?_T}*~*UIT6VmR!csgolpF3iz0?FiMF`)Y25^ zc^;uT=9L?l^++%_we^h$e9V|K@y~K6OUUMfqY0vMgq@R-ocJAAZ2R*o1>uF3TwsHf zF}1!v9J-Ai4jHV;#*Y2K2h7ms@7zwI13zyH9OJEh!ku>yYqO5mc4#S(V>X!j+rzuX zzv|t?ys4kOJNILG(7uOnUi#W-fv>Or_Kh`X{T(+K{@RVT$4@H;yT1DA+wSQQ-x|f& z-!Ygzwy*Y6`(0x>^<8`7wjJUrugdJ<9(dDRP!G9sk!d)tADSD zM-CptN#b7hC;37XAahru>LL zT>MYpd+)s;{l#DW#aH_80lCt8ZlB^6c;11Z;+;q7dNO(+e&<{N@88m=C-3N`mV;rntADc_OH@!<2 zl`5T=H!L!t_>SDt(hrS%!IT{>rsFBq&0w@lTpRBfA1BeI%*-=mPw1#!#1ZdTj=c}Z zP0VYkaZ{&f{&@o^rB~bPj@d6akzlCxBArMeb3$W=|1M2dJ_Owi=3=i zR%nRS*8Er;OU4cJAPpWm%?AUupav)_Os!`QyZr_OhYboo&tUrzY|lMDS{1Mwx~@&f zg3evw$wgJUi66buins>k@KzfoZ9V0q>D(>|WNN2B*Z|ZHoq4klr1?oUaTk?&$uy>1 z2DYU{@z~@Yza7Vhx+dc_zcO{7f?+*&Gi%G@P>!U@e2s4n((5r-ovsUG-W2N_W2{2f zFza*FC|s(|mVxD)!|sXUn>m}${Pe&kZ{{Y!;S$>|`3Fnj5){u1B0#o z$-`MLT9NO1N5eVaJ=h0aEt+VZNitG4_!B4~A*ybeq zFkXCP*B*Ygh~3h=ayoup9mTb;cKiBY*S{(Lb$YLh?|j&Mec)clkLhjfUa!sB`L_R_ zUCrusymeZ4V^^(WuNpo6i|_fXQ}$|@C6CybNf`S!1LEQK2^KxVXV%w3CXOHt;dbG9KKju|^$ za(hzL=-jD;q3f7o*VI#;0U>{44OopjxpCy?%l6d7q+PEuaB`mYlv`dVks5?P_jhu1 z9Gx?t6F=Cneq^Mc2^_`-b{zs@L|s=XQERCWa<%|@upmaHGheRrSfb)^K++i5?s^|u zRSFW`<}^y)Xw0!Ps#)`({E4WGN$%urCGwqanfhU$c;^mgakI}w@eYH_w@eVAI?RijHF`go)!6iE!35iyvhUAWfQ&~-eRz>Qs>eypy3S-O8+*rf zMr7q*gg_m_3i!Z0bD`tfiou}<=ioUzzKJ3ijU^n8M3%K4aEq`ybfD&o@puf1I_KUhV7nsC6`mmrvjL=K1+u z$E9zcVz$Qim9~A`ZoIWHu6AP^k6rBc7u!Cs=N+XlZ|m1?U(JWikJd!IoQ-|VN9>;d z)_7AJ-Ftc8B;PHKd$qg?_MXP;{NIZlZ>qt1!Fdzjn_xTVr*Jl=b(Mdw-<-!VTkp!b zj;n+J8tb^n8RKd<27lYtYu{M=*WoA5e-9|iTmR%w{nStWFTeClzw{g2gM8x~-&mh| zHN$iNX;^{2?tU6-eXjB03h?I5t9Rdh_oqMe{&#-mt(PzVQC+0?zx?Ami_2l2+j=SDn*B#q(Uh`FE(H;P)E^T=Daq7GId&$Z(O|1IC|P3(;I$NIHsRF8+v8)S@4%(9@x(u8@`B*2`#_OY4Pt^T7aO$3Xin~@6(Lo!&*3&8NqtZ0$ z%;&cClz--NQ6raql>OmP=cP{_>@K7&@6D_YvdZBPeeu)8NioS~w>fhA*pgpA4pqg1YOUGzFF7+kT`-!~t+X1=Mk0PAZqBj=b( zlgBHNecN^DY=SqS8TQ07kBNeaphleZ!&I9G^^jfd5U=x-CNjOI`y@GD(@EVd+pn6@|gC< zb)y>W6<_A7a-x;5L5eEVsHlw(auUPd)vw0ly*a&;9Z*|MLIN-vi)R z0yg*A{&cLs^EUuK9sB88C1(*{*BsY27{>q=>u_J>|5A$=1QUSeB!(`zxUuvN2rS#M!SPQqU5q=w`NQo6 zx;4UsWIo(BIB0h4J|kbe?~)Zuu7G=SpJ}<0lRb5cF*TE;b2)u1QsyVBYw1lxYVcZn zUdib~JSMz?5KR$qG)UkjZ_vJL&#tdWa-zX;@jLB?{hM#pt(E68r&2M!! zo`($en4W+-Lb-{XW6lmVy(a)_ZD*f&(z8G0j}F-Ly#<$~ab(V|grcKJZzqT%vgAy~wASyz6ml>C z%{(69HV=#*-S-y0%sn%325+u4GtPNCnLTIu7;SE%Go#6COlv$-9C`W%_9f(bcWtk+ zj;X7dYt6;9e_b40F}tt+*5P>ohDYQ3hM~T4u6?=f8{cE>Yr7T4N4|}}m4C<4?RaDB zYhK3Nx9wuK7V)ju*e(C&-?Pi3=W(wU_gMT^>@m$-_>b$`d9WX=cVpiq-^bxSR!4Jx z9NltX*Kh4x$MBB7PU~L$md4fhy74{jtN*HVeJ+3pvv4nj`L_ORz#mutr@s8KvBT-h_>*e#P?U)%GT zfxE*V!#f93)|3QUkI7Gt!E~L5nLFrND-!mYN;R`Rz|@pu!#$NZx1hi{QStBqT{PAC zNT0DCcFxSbAPovn{T#Qh>)hYuj2d11P)&DCem4`x7K@=;*cyjmd7PQEdUEmx1i(ax z<)sbJWsZh`K-Ur&Z#vfGk$I{$c!`6djba9j2k%a~y<*(3J2ScMG(L7>p0YN_P4D2) zt1oq*$ILMilh1W;G5$7;KFOyBuh|qwUeC3~YTV<3IDx_!>yusbb#TcE0q7zKr^hf@Jh9 zE`+GF%{*$Kb?h7(Kl+(p#{<_ebMU-JxUuv{Wu+dua6kdkI*!^2scL zyRRO7-wY@gU$NURZu`JB7yf&8IrP`I-#~%CHCjjW?AXQ@S8c|(8k~)-UHq*$Iy*1p z%_|o_ZI3r^+d-b#Td`u=KLt~4`_|bped}w#V~^R@qK>`KZgF0xeJlRh{BGgNdylj6 z_b|8WzWTP#o5YHJj9(0WaqYM7R{ghpn_E6Uu*DbC9vrRlj2>>U*oRTq{zLDpaqsav zzwnZ%VKhU=vZ4sSU2(iaTz~oIAgI z0Pf)7*N^2IAg&8^PGrZM5eGjPIr&ODEM+3u2vEOIlDOo{$&d>-AkidWZ?1#U4a(G? z6J*5t)p9Ut@O3k;Ph70)bwGOnE+t=Ec3BgL%MH}7#rdF#lNzRgByxat$IGvHaKUCo zH5c5t5B=Xmx)y(R`p_Xs=FcQU%eXagv)c$X`!Ph#JX0g=D_g{ zlBwr<{8j^O?Uv2B8dqQOS5E!lw_Seqs=fJFe8*QzwXS`&>xWnFb>7u(U(W7{@p=Sz zH#D28`o!zQu7B(AI2gay&3<9r_?5dgHV%8&!kG3HUvoESm?!s^#ud}???->le;vO` z&dsgee(T)weJ|p#(`}BY;);Jte?4}toLljIOi)u>u{%!eTK9Ea{;mG0*y7q(tF_>7 zyXCt+|BIbo-#q@zJNi|CuV4Jn!%x8qj(4 za_BkSCvq;I`lP1Ui#az;T>AO0XjmE=YiKTDtur?SMDwXqUbKB<%L_P4aJfn0;)jbQ zHwn#)GPUfBQ@a)BT;r3B_>>Zqwmu2rz?K*|9_Xsab+qBtiC!ML*hpUa4nhR%m(%$b zBM%qqTqH)HEf;g#{CCdMu`G4vQQ6eixknHmICA(VK>Ag0LB37vI)V2ioMPmX$xTCM z5xwTmzCzzO7DD!-1fCT`lP$yRvoFN5Uz3^o(S@f*?KaLeKy)74@^?=;H(3A6TrwYlps5+d`DVuWa{Nw=kRHw}8pp2n z?2o4R1DGkw#{qMZPpgHZA6d8Pk%xF&j#=rsknB6cQ~pt2ayT+|$ksW43^e%3S@HHn zg_`q4uxy!IpKq-1Xzk(x^EUM@$5B~)p22Wkdu`!brB`F}WPf-n7Vtd0*jcrm343O) zbz$CnZW*4g#Mn2H>k3t6k7ZkrwHW{Cx4s8;fH@PLq2=4WtEMvu3&t^@cSi<|(RnyK z#mPI5^9^I**(>;Z6U%YBYcK}fXp?Q*lRa9^f5C$}=2C+C>JV$Z`G8&H*Vv9PS)0Y) z(%vz^&HY%vb>M7`+U<$c7}Kh|K+ z_^$1-So2;v9q;(n?wJ0X<2tV1wXeqZZ|=4?2AkL|esPa+%cp-#qguE6*XiHlyv}#6 zg&aH2HNN$TZERzYaW-b-u&)oWxAdz)-}6;*?Te{q#~-8rP&xDg2s#u%&p+$hky0Eo(>Q<1Dh#-NVrmW~qh~n}j}7|G zbvVK0$HBA2!|zjaOPS;QzdE?|7r6M?KBxmVn_Y88jI&b$J%-;4pc)2@-O zoAZ%!xXFKtq`bUY;^XY7_r!F4GLz0>%9L{`oonwd{^NKi`njL(Z7`vj&BCwSZ1m(+xZK8TtBL5RT?jQ5q57!TiM1^pxl z-};WjL>W&S9!~>`a|c7zn)0O>uqfzTq=*AD76eft}srk!b|f$gHHsh??Gs~+`TC&VAf$QDl@8W3=fyS2NI@A9X24 zy<-~s4J!3*uAzhWqs_2$NXn>Gi;9xFwV#nK6**!#ZVuGs>G9DyaZ}y8iZ#1+sXyvb z0bNJetIajWn0CC8D?U;jdu~i(X?M4 z?jF})PRG?`+(&&^>>k$!+d9kN+O><{&%@>^hH-81wTq*#zj}=o+a7;y`r5^}zvpkf z{l-Re6Fl3;J^B>-~0bl`eNO$=;G$5UVZTDm7cDC z6DQ}PT(IdmJSX(|6pAM`Dx9lkkMrdAi@AKg$kr=>Ax(HZ@xds@7;U3`agL^f)+8Vd zpXT9fBR0e6QDZL-xX@FuAJqzLcqP$LLhv`6i%AS#>p(M?@9KLI*syvSsUZ}9m~4TR z?l&g{0_PiW^6OvbK5480elBLGPIKUC?7xgH8%DU%DaJ~E6Cs#lfE@P3A@8l8gG4s&QT-f8{TY`&zgn48eeGQ!EiW{Wrg5fs`%2Q9X zpMGkfkGh?C9?cw#)dn@z>uep-gE}>`TH>$5Af{iV!Kf=&MAsN z;))C{>q$a2<1jLA8Fn#-p!Skhrk_JF6x)N&ph$J&e}gbBe34eD2#Uyym#Q<6@yp2z4F9Ob5AY9LC=x;oJOm}k2cz5+aWSM@F+GS*X=Atm z^YY12^00Q+9l2!WWQnETTP$bu#muC&hc_Ik7oY#u07%*7MwuA-($K@lD2iuHeqB)J zh7C;Z!J0JtH)1o_46@%ef9sM5EDfzy!z>DMBwy*%Id0;x!BN%GaMHx_nst1j&UkPB zfuoZMy0yoT2LH6~tih2}IUHiMn&(A6yU|L8Smw?f458TTrR_0{-)ky$NUc;_I`|^R{>zKZF zWAydYZ~Ts3?LCIm-1u*`=52q)l>bWIcScR29DP76-r!JF}q1j?3X9qBh;xORH0K3?l0g0qM-@*r7LS=9viRSU0kH9AA$U z>!MSwnTxSaN;=ucBSCR8i`?fvj2HXh+c?&c*wNs0ZrBg=kj4+y=1j~FpPI{Ew%Fd! zGYugU#6QC3bu-kUn6n&~mqG6YfS^Na!j2)}J`hNe-fBb70JT6$zq%NRZ2>lF zxYL>Ex*ZreWHoazJVtZ^_@?2xdaZqsPaRxWY<2GUFqYT?dd{m~e;YwQW3F|Z z^RN=H)!=$O?P^_x68PBQiB6mSf|>PCPc%m>k&ia7gL82#a4cqi)u^xjt3q+~wZW9P zeOGRAS3j?_eUkxxb62a{SN}C$eQ?C8#TfmoPV1;{$M^c;s?+@7Yq!T&9Cq9GRSyo2 zjyHDe)&Cg2`u8x^cwK+3rFFE2U%NfN&8yv-h~H|(5xa-oIjV6F+j#q}U*A>l7H0c) zuI;bhQ~GPpTb!q0uDmzp?D{u%&#^g*r7w2l>Tj&P$NFk+416Bf*vFOjCm;LgV%isvI%)W?zUu_V&-ry+ar{+Q zZp3{Fm6J!03b{my949xM!Ns4Gk>uSt8BmLX@_^xkQDd=-1I?J8jUL7@Mx#Jt!g13U zml>c0Q$Wpgr~2XG_nZ}u9gMN2a}q@sfV`H$CntX2!OTgv_$0C(Yv)h4tfA~fZAlVr9v_vjfMdvS}{Dr z^rRz#Z004?_G4fqo z=eYcJp%PY%uwTRRN0eJ}|lU$Xpd8`3b3cWIp1TeD!aw+R34ODchP!lU&6e z$!2}=pUtbVhN^vz0SgPe@qO+>xcX0##LlUlIpF&|J;6rS6rwvjtjAUJdMvR2MvD^G z-`t(^_TRJ1p)arYj%|MZ8(-h%!r9|u@K>+vSM0_RYaD+$*suGwf$H7k?>Lx_+h2L) ztgje+w_5d{ioa@YC4Kg-xBk_)-+udN zKX~=Qw{)-ZHZLQ2DWQ+W6O-4Md<|Uy&QHfliWlIxjAkIipSn4f;`;Gd;O9jOw%eVR~&4@=aKyR%K5nBC2<^c$76;zyt&d(Uw}{xC%?QAK+S+eRr3tY2RMG2)S9?K zGX`V#Y=ZavU8i_@h92Wtk7{wFV!HK_7%}CgrsD!w5!a;}yuYcB+WeT*Ld@-t=N2jH zC}(eSJ$HX9J})TnA2h}(MqB05MlRbwI8&|$j zLti>xqvqH(4o{(J(MWM{vv19}zT(v}BV$Z79;_+*L%BZGf3L`r=D9R{6S7Y5ru3-H z+H(vM^B*w;uXfIn+gP+fq%+O=?6IFsw8>T1<~V}`guxglx941nykX%;T}HA$;3?=A zdegI2_!z1=6l%uUiXD;+XR=34AR}k~SqFh> zqsi~!1D@3n&ydW>+SVV8cwQ@fdcaHG%z4sU0Z7jkE+iD^^Bk}Q;^vnYt`f|Cu9H$7 zv?F%c(XOefn4@OvWFHuJ)T|WPZ6xTJdKl{Ac?||T=QtdTJMng2Yc#4yVCpEwYjF%> zG#6{p{6uV{B@Jh_)!#}IP1@H^Q_r1$i>v{aiS%JR3 zeR3*#u4JzO`{%_iB2 z(Q=ycSqCpC6#kYVqUx~hUMCv-dOCBVPKXV?;o8ufV*@~1G1LWWx>aNR+{~q3BTS}Z z-e@rQqU#$5P`>jrJbb|1B+1paa8&Ln&qaMGQ%@qyh&lLoW<@?utg=CPjP1eb_Y@}| z@d+I-n$_qDlrcY}NXnxU`_Y#VJFQ3xLtV{9l8`q5^a4EvC4Vq$S&Z?lM>25Xln5yo z!Nsm@T~>M>ogRp11ctN`Aj3!*>p3ar%(F3uM6T6z>94h4IMljwc1sCQ=0gqKEZL*& zXn_%!nps=lL~Fm>KK8$=N6@6^MpsWFeUky@Ri1?zJ6DWjeqINXiQ{P*oy}3RIMmGk z=zJ_k0WrkYC-)s#uCdW|-cg*|4I`DtDJveYk9=I9#qY{(_r}fNU{F0HbyUrmiBv;N z=6O+CV#(Fx)=t(JL;qNN|B3`d76iF&@!5`-Z;McI-_WB#f3gaXfHv-AnKycN+GcH7 z+rW9>CAA07F#OY!>#R!}%rkS%1?{n3bKXJ8_Ej3{qdm1Ta+@(WYr{+&TYkr8 zObsO37!E7*j5(BDk8?!eTyNM1EXFY`!4Pejw}X@Oh<}7}NMM-`CK+alckD(iY=i4M;#t-G% zT33&&#yhSie$Pu(WaX2|oWS&>u=5D{^Ub}^fGOTRe!^4mAoakX|`#oX%O6#tk;W7pixLA>)T_Njg62flhw(b~M7 z>rMTe`=<82T-AA9ytt?KUH>cosd>7t;M=a6d%W?r%WHqt!e1Ypt#^%8<0<{tX)T@i z&Ue+?nDT_-iunK2w*cPNw*Y=y_N}w;RqA>CeOiHD;e4OcKc{`l3ViFuXa0ts`9I2q z6;C>zQN9RHwY+{rp`AKxk`;sPR~g(Yd%aA4D^XJlVdiV7(oo@;Nz4py1Hn$EU)%GqaT8L-PLh zO?fUDjXyF0KeF1c0AA05n?L285{`PAJEeI3El?mXbdNb%-V>{=Ile1O=~;v-{<5sWSj;m(ZK+)u(P)y#@az>A=gk|5<05oeUw`t5D1e(!mKY%Kn z()JA2G8Qr%i?Z0Jtn6#n(>Lij18{m{`VK*+r})&eW`JV!YG|Js$9{?pMoDH`EQ~$w ze7woZxhOHh(M*kjOHbhgkAy(RnRa63z04)Yk#l(dQ-CD0{4-8cyeR;;eCG@1$*bk# zP%r^KADg159YzxcBR7#AA4SvSKUgvzU>F~H9v}&rXfN}?m}U(Zto>J~`ok6;+YfC_ zJ%Zz3Jj`RM>Nj4i!7+2AQG-AAhdBA@UGF>xN_#M8Iiaxcvi~y1N6T?@)^DF91HcBX z$LTro_^ctrIe5cs#M6i6`sHs8$Qr+DXIxz4jLX?E;%)e8*Z3Z9yS!Wdt_em#0Q%PD5})os7A;P5xr9)DZ&wXdIk z;{gXO5FW0h$V1~WoOrLT zppy@s^MRlCpbmS;Ivn-+U3Th{&lNdnEm?|d<2OfGXFRmQk0TdJ=+1thyL(W{7RLFB zCS$`VkCWiBzw4JzcomZfTF$B=XdZ2pk+Bf2iLCX=WD*8h!QTXMSTK%FI6bbadGyF= z{-H-R(&XUCNY1Xkb>_K|Y=@FG;84os%V@Mcc#!8mHb`}oxw*~k2}*35x7wOk9f z4x}7U-5<$k4ojgYSC3Wdz0N)LB?a?#^D&Ux9akQDiJiTCevU}9Gy~-K#3DI@buA=% zlc#w4q#2yL#fX-D%+X)I5k82lf7Z%x5D5(?QR>g_H0$U8#?X_YE(EihO~xAK`!2A> zJhgzrFvG#A zX0N%kf91E1quD%QDzDc?q2sx*IQy;Ct;2cmT8DL*2MMO5Du(W79T*=?B95_d9hiFH z`_bob>Vwxhc2Dg)R{N;Q(QNP)U);5?_M#o;mESbs6xN7tTsG5BbEj9veZ8Tf{q=Bj?_ z%~5~*=IyxoJ8ob9*4wfAuYK2G{Q3f|=l^Fu_qosg(r^9NZ~Y(g^FokCxssp9-`5q$ zEA;oZgy-b9R^Tf-f8c-d;ah)`|0Yj^e2;d(ev;|Rh(0$T^J1Xq8NTCTJSQhEa^^Y6 z$w+>W=K|-W&rdMLpC>a3O$F&VLGZ(K-ZlBj&wvRaj{n3SWaH752aJAV57?!pm9dXx+${T>4P~bQ z*I_+vqMPj$YWeXPJ2OgJ0xiQJZ8T=ixtUR|$1^zfB?}~=nM>x$KH?9~trj`?g}1I^ z-U)*l+b;qTO^$X|9CKil(PFLr7|u`zF*-@bTxbu{dffS3V(6NIUzP_-&^gH0`5Zt> z^3SnYWC&N?K2G-WLYmBvS1<#Uh69b5eKM3gxZM0ZNc@a<}zF8j5SpJ`ClR~;MGus;ZMoiX;nS)@Lk?wqB#ZddOTniXC6pw`#7#fts{Px@q9kB2hv@ZIi5pO=5Yfun7 z@7#g)KGatHqfFMW^4Ukh$m?}IrMA^{KGr60wLL#HCm()Kad6c+eBG~utIqYg*|GPT zK+at;dJB%j@y;v0Gfkc|s<*ef=N(c3hZf6+{0zT=8IcJsr2-xXzo{ zwQXGWcI{XEt#NscZB2Z)^sc_^7>%oL_35v%&ByL|*RuUvt9CgZ-|DyCt@th9y}Z|a z*KxI;lJhB;>V3EUtz3PcRJ$1Z+Ktg~f8*P?vD;>iUWe;CR(JEaeNU(Sjji3-4ebx~ z2LU<9{7tZ5`N~)JNwoCm{u8hQ&))#}1nh)s2|x2QKl4Lh{pL5{|Ht3?!oQ(Qj(^#g z9l0{`6Uipd_;^*}EaD4kE-ZaPJ(qUeDDuIV|L_&Ce!>TRUT_V?&p$sPFjU_*ra9zp zTadWoIHj+Exo{BJ7=?`(P4v$b=x8B)kpWJ9$Na#ky=-FEL=8RHJW1ll=kRfj*m>dS z+xtGbmLI4&z2Q!s0!z@fjJ`W>Om^Ir%GXaIshb6!5=T9?dO(1>(WbX^L@7{rFY)GL zozF&ngE~mGJ@1Z(ntbprFID&)FLey?sOU7Z-i(8RM-5&l_-f~T(BmKe*!dLyQ~^IU z*I=!n2~88;YauMAe%f*&m-+i<&N%YXx<38vur;J6uZ@zYzUI(KKCi{fb@(D|PWL10 z?xyDsIBM-$c5Y3 zU5nlz`=!KtCd^MAwR9i1uK2kzfY)61S{kOYj)xDHb=t=cVEo>V{scWdC-yu!ru&s( z9EtZhJaE!b#6L$t>?Vm*0<}0d!A=I7g`ohLezVWcY;cEtI>}=^p=diOyXOw;f#b&- zs#a;pZ?1i(JWUuZ;nvN3DJ33F2Bh%7{=xXrBPanbf|M1*n_1a zmIrl+npCpqEHwL%G}q=|ktv_xGhfe0-b7cyq5~u=Q=b zJ_ohg8nv%^Z(*ys^;+L8ADY#_rB~mrzTEcJXM8K?tvs7se*5Zly!+a>G>Or!v3TEX z`@PV(W_%OP*I{qPZ~3k@{C8gc*l>;;g%M>`rBVM@blO?I^LYe zaAKP~7oJAz& zC$LT=LiuFCr`LJu2Z$e#!#LD(RrJ;i{onE(#^n&XxcKXd#TfG*Zgl#J!`xhm7fU&@ z2~s~jH*#t5&Ol&J(*9K5u4o;fd=8ARC#(EEYSr)uR8MOsEz8!M1pKLltpZ-$)W;|O z{P=>Ni(dAX(eU$W$ysCav15v9ZN|8enWc(j$T`$M(xQQ8UZ#_@uuwRim*JL=jH1b|2D=pLInQnxmv zVJ z8L>?!`qOfh`m2GCY|X+Uwuj}|v8NnAHm>nJp70}?cB*WTQEs&DSiO1N0CgPDCx`ZEPV>X~C3s2ZGeTC7pxK2}ch zV3Vk^_SA?Sz02ZePG?!)ukVi+BMakTK_rn6LePLJ`(CR*^cN^qg$Y3kafI z(CYN#lK@v{et|}QWWyzqe9D^}+Q|=JkB3-by-_%Gou91AXO?mfziQ<214-Rnpd-hD zg8>(}CDiTaPpPILUfVNHHaONZfx4Kt<>lwxg?7f)mwn9DTH$*=1T%BHMKDpCzQztP|Z3l z*eKG$B|}#q%&~7Kw{LWpmUUF}QbK-OyxA{k320II)n_&~%;#Wtez{E*cD9Nfc|d6mq<@@e211t? zek?U=bRuuY_0UHyq*>|n`Dds%the8&8l7Dmc9gZ96nLyD(aci;j#c&*4ZrJx1F4T# z(OF>h;2CC%QMBQYhL1fzCk6_}F$@^f;p4gPS)bZR&3V#T*6Sf`&T9z3^9+3)di^J7 z{3mA5({-@Og!yS*j7O6&W@BWcC7e-X_&H{e=N2H1118#5l~Z?PZt~G#PPu@zJ*B%g z!nDj?`ezFJQwmP%IZJ{@{XED^a8SoQ&f3m30-Iwxygh!Xcj~(kZG230Kt_sN?KuE;ZJLvK+tscX@vF{`mB0IH zwcoMYJ9gFIvEtj`irw?=IydHO7ss(uyZLs%dE5V{_IIQ6-Ef~;=gzV1r}EzfhyKp7 zZFD+jztpaOk9W@Q!}i4&v;EgtF}Hg1-O7pYTHoe3R&M)^somO&q2G3K_xgo>@#@v9 zZ|lD<|3~x&-2e0SuYdi&`@P@$J>T2h<39WU;8)=J4S+xRHNTtjD_{A{%fI*czVZIM z?|%Nz^Sl27{t-R1=M`5cBRP12<hQNEl6vtqXKnXvtVi5~87qg^F1Z?^&l^n~1XGWQaGOt~ zvoyqW!AH8?T1(X?Q^|n?Jl|4;xuQ^3u)T;tuuVq%>Hr=V?HkE=+E`DlEQiI z$vO*m$`5t;hO18Nu^*6}7)6hn*C=AMpRKnwEM)G%m+P#HV;I4uKla9B7guaGIxc?u ziM0{m5Bwe1-q`wzscz3{#nLxMPlL1DHI4?D;^%m*$F;BXtH1Lv4}TwxF|K{B2Y>O`ST%3?Kd!I&9^+Hb>)O_N3jQ&@^4mX#eM+o4 z?eB5E+xRWrYPR1Pe0|`r-F{zmDr~4|g96^2?=< z6F>a$&*@hI{u};VK>a;{mtXtZ*K%Sh@wxxLt-$je0N=Nz|48DuzV@|ze*edQ;*b5C zZ@>NWFY2AMZ|g?vZ9nbVaMCDko?G6rV`)_(E?6(TJAsr$js6fH33Sp!gu?(x3?cs81Q^i#nI_F1S)t z=!^ZU6^em!TNA+-?6O-NvDnYsG>Lr6X~#;554Lwrc?{LUT9;jga$I;Ke1{dF$iBoV)DW1UY4ol`|Q zra@|ho8xqIcxMGXHw_r66;EvDYlOmCv*>iC@fmG*ju9cvZzT+zqNvpu@?ZuZN<}8OMA7Z>A4$zc9OpBaSptd{_i2vF$8*s8(mKM> zPfE0WugZ=SE9ewY*KOpz52&z}TI;+!L9-#uROM^(cwzOPYe;mZ=8bp)O|H})uO z%{Lm+f!9YS8O_-Rg6dhpItp}skf$v*WsH4o+gB`oAK;7GeeLGzxcEKSE2h|ux#g=C zJ#FiNzs0F9jB|VSSL;N?YE8v=+`jn6+gFbbJk@T*u|Uu749A z*ygY9>-de+*Dm+5eq(Fj>z|?n_gZ^-)$RCRUyY~Yt8)*JznZVZHvZlAt))GBSDSTe zUAw=PdvmYryJO|v@?C2vcK4fy-EnK}xSZ>_{`QJ<^Ut>c{;2xj)3*Tr>$&;==t;7q z=l&0L1)g`rALw#Fnv9P#KKSAn|FM7SW->8!Jv6`r%3W0XJ#K z#SKqbKzeX3GJ7_BU&Z*M5MFQ4gmUAF>`!Dh>LqUG%P|SY~M8r4no@X!AV98|47xx2#(IEcv8zapcWhJe1IgU>n>(&+)c}wo<<{NOJC4{{L9odl zOk!Qfb0!>5VP`)$TO8UJpIG(I{e1v0M%NQ}HL$mzahvzkObYyi^$>{PYrnjz82N84lU>N_~`V(V*PF5_FdHxDdh9<2r5 zRb%_g-x%WfuRi>{-NM|`yM^02+uraYG!iuqpWf_WZ(A6DSFII?L@+a{(00%G7=Jr8mG$y(v`f>KvL(HbzM z;b;A49SDP0DZWVqC(X#^#SA-Ib1|UF_>TmlXU*(O=M^^k>MbQL<}Dm!``A3lCkGI@ zd4TdBRAH`!wHn)FX$6;D)Q_-z8jv5K>u_-D56m}VSvwrU^6tU^&))m|`nFwHUhlp8 zo)ak$iAGAK6HLnwnrqH6$DC{KAK$(A_j}F( zM~-n!2KE)JOt!1D>|y+#%oQ&CLpAfAvyd!xbrv zYmNmXI5+)kP^-0yJ4DDvq}K#Kd80Aslku}1j23_8nFK7WlRvENQQepQw+^g$ zoE-jarS4dQL+|+JMovTLS}>2^sLo_Krx2G|{)R$h;ySvRVWX<#!QPQqB4`c?o}t!` z2gYu~yM|CUtH@^@VC;od=g1RcZ0-(@u$g1Ooe|B7(fQgyUd7`oA}!E)pJ$FU4o~pW zMLs^@RMVyco_6NdohItrdbsR;#gO;lp7z}j;l60WFfP_pae9y>kIPma`n)f(e`g;& zIgcOXt;3g=8b$8+gU3*{A=9ZhX!qp^h;fWT}!)5f<_ZAs+moy`N+-pp`Ek zT%#};P4)0b<|0U+C~#AOLW@&q-08!nSc0HpL8fKwOmb3?&fgHIuYiuHyb_n3$8RQh zKKaA|r}SL7kqerfY!uUGYYwit^rRH-_yOXgns#YC=n9khd(z`V2M*UozQhivbllwN zwQD3mxaMNAc@UAG@G}G5Y|UBKKMFk6=#qkk^X&}wfw5iL z4E?wTfZNPM_`U7CFG|P$M1wCmKuoQzJ~bMa6NHCNxlstv53A(D6wRm=bH~cq{5HT2 z4nPdozjj0w51`!WZ4Rl1r`dqr&0bR6_2j_z&doUXJXf2202?==&2QX2mdr4=)ZO3S zF{3QLfu|O5h+v#tKZc|y81L{s=9-^tqB+_RfBDAG5d}*%LISmra7o`AIO0xnrS-Ap zn-%6oe$Hb!O*VSj9nUx_l;(Uqa`xljxyy=r;_mI`2s8hU6!G4z{d#X7sSTLu;niRA1I1%{{Zr= z>Ls6-Y$d$cvHJG!!%^(+@uTh9{j^-0_ZKC19(xX*<8wLf+SVT|$M)XewhjB8xAy8c zFL>G`Oe|l1U9R$W&W$hq+c$6C@P`5a-9P!0Kl$G^-lzL7AMn-VE2#jthOg}xUxA$Y zKKtZ<(qXA=GUVXtMYM1Bq8{tOxD(-WsBehEaKX&WDz>m7*!u}qE~cfYDVz^pE}Wra zjIS=#!ExfD`Rm7ubFwoI3zuSG6xjKJ$%2(@rd~JE_fvbkPR@9fUsxhD)?%NPN4fSV zi4IFJnthl%!8~*}`aE97B<<28wnLGxkXU|Q0gdhTxvycv>gXL8Q(@cZ*#<(rbQh9IjMi8FJgmgu}~kPRRQ ze6%7s3!QrVA?t;i*y9x0$bg|p9dKlx+Eya*wj8(Yd#SGw3X35m_C<7z;j-z%7^;Ij zX-=YMfeC9YxP>p|v6)OOA_o~Ev&?+)1E&?PdqLe6+EWAj#8JBWb{EcYnM142ORCn% zp@tJ!9;zX!fgb|Tc=&A_dyvC2c1E5NV=aw^3-Z~w2k$6adD{X~1DE)TaBcRmXRNA@ z-}S3B<7G4;9I_Wp$p+#LhQ)`2PCoxkJu#nq={?8xwTsn7fN&FSX< zF>{jce;l5kXy2Fi754!ukh{ANK>SMi-W6aQ=y(7B-hZHrukYv(_KOQK-(*5F7cTxJ zTn8sjho{#_0DRE-L?MmuEa&6^oNF1ANLCB)b^Q52Mc)G-_TloUs2cO8#3!=$N($!U z#sYR0Ul5LrA7IRe08`_>*)t@TB|Zi&o|0QN2kuC)@+jRLX7@B_C~57Gs#o|^{WTzXIUJh^cu9pX7RBk|F(#c@k2 z0)R>EYy)7q84q_Kj1U$)z4J4lD>3oyId;P4JN|wp=>dnc@bg5GAyOaNfAsstSYUe>2_F{6JW-j>^CHcUsC3P4uoej*j86D`% zJ3bC8j5C8v?edVsKnY;te0BJYWex`57LJ=Vl=e4^6yArx6IbrRu)olz)-$ro%+4@~ zhAcVSn;i52v3Wm38-DN0a!O8GPm$Rt?Tf4D26^^JXuO}IQj09Duz4T2^qjkFH!ozX zNmmVKcxm*fzN0<7!)G8FQacauO03i~HuJLb9D2UX&@mk=dFSbT%K^4avD?46+8A%S_V?}I#}`a-+6tc8@(`bp+n&EAW3 z8`)0TC%kq}Yk$<3JiQ3VafllP2PE0=W}g~6R2<*kCtYvpu9kTd+G+uO>|J4Cawc#zKVv7)qk}^_ z)R}`^;nTMqoR$Ccg^U~{IMIxk4>uw_U>O}T`Dxyk!xHYDpJe-)aJGqMatRONkh^^w zrZpxq9M>GdX90^obAyw3Mk8RsMqa$HAV(je`y&po%4XzQ+Z(Iz~Hk;$8RLPq6SXE+_Gs80;hD@Kx;@$g) zfXR9KeRF)~BU}B-*YUb+<#Uazcpu6W3>$TqY zJI95Jv~#%II(`n*IPJl2Eb_KtXS{VC-+Qoa#TQfk?u)6e<0lUlYgA8ewDulowPTc{ zw%u<(aC^LQ$d7D~ba%gZjURFJSa_E&_DB9N%^9C}+3%bkKk};%3`@tvd7t(OkFHBO ziff$e>8opB+ddCq+wG3sy^T$T3edLez_5ZiZ^;7*Z!2cdy?|qP8 z+b^a9um1+{7gKjf{qA?a`{|$k*`NLR-~R32{*QFQ`(Nmg`K390b4j8Tgqyk?fO+Hg zL8%Mp9-Mm$*4a-?@;j%4p+a{=;kGnaynUnqiTU*kGMK7z9J47A^V0(R@*rW_wqmN?VjC`XhgspIj zFL`OOCgYQR5)i@UI~+vdA~1@6& z8_Uy`DM3Tg_eL5FE&GzI?Q!4azJz(`002M$NklAvk*izpu1evrb$2c|SS zO6g!I;TnTE8I0~8hgyB1jV{=k7P>jM@u^#mN9dV<3e}ikko_>i@spSB-S)%Oi~q(n z=9ZXi01pWyR68Q&2ir7@PC|R(+(h|XMlw*p?te~2y1YW=v?hibZFiBGlw8>ciODVL zX;*mXle8{n=J#}L-=U5ZAtoPUnB5!GoT5RJZiNvCLhCg_BfU}dL1!Xvy%==j_EO;Iz5wTapa2J@rkG-3-uXC zVm)QD&92fN+!uHbfraACFPg2NdpfSmq(zU zS1>n^K2SYaaTj;$i-Q{D+M>DE8(U0u9bf3qm#E2wzIf!_8W)~N7<9d{xW}r`-LHE5 zDmP~1bxdE~ou`Xwn94mbcHA7=-}%6Gp2g5_9CF8%>G5sb_D8yn zt)0GpTUYrWYG>kgHNE~;np(K&>Nn{>rIbOq8S6@ zcJ$&8{*2yd8%U^oF?w_)a(Yi)J zr=>eAHZA6nj{05v(yP9yQ9$vQ2Lb%E_MwK8Ee~pdnH^`v=*>osohY@YmLx!I4LxNK zHD)gJavshPC;&LMOo(HbGC9{ceTR0K{YAmd1&wmu`9hmt_aQ{)$#fE@$71K0IiF>sb=yF&<@|aZ855rEhBO&S zKAdC6N{dHjW;^lZdwiOgU@#v25VV))>pPttH#(qn;+cfV7%?k1ASX{?W=FU^_80k7<66gvva6VZ5^H)zd4liKECUpvlsVV z|J)qGe;Llrv;DT*9ME;H)wRFl!EN0mzk6)(UCR5M-}~6_T=i*R?w#jd-s9ryzx&$M zbCUVd*S_|(UzPaJ!So(z<6q^UUj?qKm7ibC*GQ@WPrm-*FaF|3-}uIF|A9_R|484C z;UeTyisQqiRpO$B%L%SfbP|x&H~mpWuTz8dnDfW(aOPOUGjH;_FbX%8*bP}HBhU_H z#PP9~H$+{8b75@jten$2xpSi8kA3ixLymdkUSqq!;-Bjxq_o7bzZH`aPFjeK-Ojda zb@b#;%gNZWjg7uH^oBUb6Bb|8pV$(TXEBKlw_m4B!##Z1PJ@G)_y$T35Z>yKyzyYA z014dGWIk2OW9D<}Z@_TjtsmbH%0;3U#Y88Wr8VCt`IQv_q0)R3*O)x~iK5iS!gFeH zo;akocn1epKBeu~-4B7B50@lI6{lxHOoC3!wjy3VFeH|3(x3dOq5Rt-U%7gIHY+}S zi<9Vk%#BC(>Fja2(Jk}zO-Vf$RZ#mukMq0AX}!;=#1u%2<1ISo-o_NjeWmBr?JDIp z$El;|9K2(RDEu0MAL8EsF*Jt={XkFSFtx7OgE6(Nq~A9MR|JFo<5@h89Ou;6ah){x zo~b#$)ONg_XD&#kCogY%h#5Gsh$f4lxiuaSbDx~Xr{8?BGerK8$Elw(06Q)7WFV%| z`_pz2WF}F{-Oc$+UK9z%+H>C)T*gt-*?tEi;RLpP*7vLWQ)MpT*-(?&C_w6 zPbv;)=>lR5S=6p01H%|y`NS4D`I2(nj$o3;Foo&O;-qpMDQ`OtBSga0F9Qb_j8|G7 zP;*WiopY#lKq4}a=6U#l5aTd0y!^j~>x#B( z6!XXjTk*)v5qY=j+t;?od)w9CzOmb*-*RzV-@Mv47JYH`Ls!1yiz&Wizc*Loi~%q#t^0v~_xd*AcdUUUKb2cLfW=3mow#=r8lMlLy?o=D{Ee?8|XX7T%v~!@EBwCB>;t8a6oIJ)4jcoy7$z>f_#vz7c8)5w$7rfzG{CRVP4H(7#(s>o^AkZb_FKtsQIXy$DqydSBu517MWCkP8MC?b>8;s*qP z$O)Yq^ENMnROeqe#^v}9+*J5oO^(XdeD;AiI%D8fn=S*dlaKeg(H?mUp)5V8t1#D` zU3JaPc@dI@RTFIrQkB<`039*=#+6y>85DolvMrkIZ{@PD0Nn4M_0KvbhL6*-&pk9R=M_g zXI)=LwbT23RyiWmHis3n+WuQE*Tz;ZXUFu#)0d~Z;;P?cbk(=7y>Y64S6{#O8^5`F z-m9)Xe)zELeWN;X8w;LsbLRI@!tS`_}OQl z{fhcO#5VUr?@nYBy~zq2#J**sxEM_kf(J*66-9!I1l&ULF3PjisH?K1M7q@XY}!9 z-Za<4V(Js6*RtiS{izS&%#*i$3!bTTF;HivPb+yqgF z)Y`sDJ0Pp&JvD=&hHf8-xKVF?>TbQ^kR+;kV4$#4V8!EsaOP8C>s2y8;+LVs(8i6_aT)f^7ydM&$8Ky3dK?3A9wx@BWCt+JBC&z#v zn{@6GlSOip8k0TaXFC`AR!Vno+)bj!9>+nzi{bJ)=D~V9EH{oFmv7IF4d-!a^DPl= zd-0<7jV&A+^bNb)cBd5^$4%x8TV?v3ADDs$-nSB$`8U3g8FJ?spZyP8=0&fZ*k(~= z=Juxw^5Gcf#W84%R!PDxJ`KRf#K=!C*XWEt`snky8N%*uWjrA@e{(C28*`kZjY}O}tVI(J4Gl!Sd4W%Z? zJm6BN;*Hwl_*s*wk^oKl`K$h#XSu1VWxFQ!KAJ;j}2?W)=mA!P73uyMMgfa$)|N1sBy+B zo->cL&DN8PMqRu?>O6g7Ww7N9<2{;&y>qL5`(P`!_O094ZAagwb7YK6&-tNx{2Bur zt^HlL@n)~CeR+3}%(8hO;qUhPl&e1Ax)f8}yZUm`@1=g_ZI8aVV(78ca!qpOQ+?x< zr+PbSwa3LgiUS^d`5s|vFQz{9=pMzw_EOti#g(V=s^8dR?s1Ey-}vgQt3P_=Juap` zFZIQ?e+gUL`(WRN+4+{YJ-$8mHV^XltF5|@;i+zOZhQ3`Tc3?X$I|_G+cw7|xxVFX ztkHk=!yo>T|9Sk+zw@2%_&);t(I5ShFYz96z3M((1zwB(;cELV^B?QF6{9{m`;YaP z|3A|q`?;S4oS5L}Vw44aY*#Op!$l7!ISiuk2}sUF14Ow_VI37g&XmMDr>hFAq3)>TC52pr_nLbM|bbABQc)-Jvn+&e4 z;oF~FqH&uXJAB$>lwS%kbqF{7je$>Otp|&ae5^mfd4th7bHLDISTY_PRqXFTdww8E z2bWpg3EUe}SG)H_VRr7kN+*}v+=5~I(@uo;#PqM~E zef%j#b4x}hN=@g++^LvD&cvJ4p+XIBYRN4e(`Ls6#aMDcB$(#0M01W>w&oG80aH^g zG~0>46F?6!IT!_ALq7mne)U(MI>_tfA)VyZFXuG&Q%^x1yj~I@{-O31Oyi^`2ixlC z>_mlf$-^aO+SI~9R~)PDD&@i80tg*yWIWS*EggN<7X}?T9|g`6PsXxn%x-hkSQ;~q zfUUC!F|=g+04P&rC~;?08t*GcCXSJ_L8*}+#K@j0#~B|llUcTn5cV@ef($R-IfrIj zo;i>Q7?Qzv;-VXt%m>WGvTu_=`avhj@r}-N0B2II6a$W{PK2Lx(8QO*%&c5Xe2(T4 zY#U7F%NpK}owo+iTF_m`?TfTGLZTOd?*!#HpyKnXH+vESUau93h_lU3dd%Wu5 z*tV_5*7k@S8~EDlOJ9BEV)qzbecPkk4Lt2`uO5?@xB3=~$$A9d5BIMWh z^Q*w4_o$y=^uL{vsQFL6`OR)F#&ji4@M*H2F#N@&Ng?>6Ax04 z)tg_#*?$=NdqsXQh(0_L&hgWHoCCWYG(H!QYi4x*z@luKT5}C&oD9dw&2@8PNy>AV z8>w0YmuX^m+%p$}WCWX<1nav``eCb(>)$PaLujBGMdoVp}IU!wBB4!k+D8b>dJ3u-PvV7y(viiJR%1E2d)BgHJQr z=q{E0%_W_4rVn?wT{tElt`al7iybv_qxZl#Bg&8K_<{ytRw?P-4#DGbjtA9!&ikM) zm$01rU4|h8n}S{b&cNw7qm}F7A;tu91Yyd9n)6Ip86}3d(1T$nlJXdZu?d)=FYdrcg~I<`C>y~{*E`_ zUEVw|agU$i-ZpPP{q)nX>(>CjFa4Zw@64~`4^@G@1AHjWr3 z+_6aT#o1gfaM{DlO}gvmfAoCJ0@f!s3r2I`T{pf!G)9L+Z#;ddKiB`|t_^}5l)~zF zcX!L10Wpb{=6n%-#h;S}5vxxu014JHqr;*^dg4G&UR;2A4wA{d;N&d!JkhY;Iw0t{ z7yvKj6-$-V8$Y;kQ3rBL2E=Ac#6ul_C?s)opp>0C6@d;8`+);fn8M4013? zC5v?SQ?TaXSRpV5r=C;IH2D}Z+^Ka#x}uKT*st%&Stc_Cq{{8!jd4?Zr@XYDo~lC<&l``ytz$7+`tn`#G1toyVVU7KH2@r}Fl7 zo#8=PC)ouLdMPKfX zy<@;_J3d`%qeoX<<=(6oPv6!!#Z+HR?R&g+y-}ChZ-4uv&;GxE`S<=GU3dMu4ijG-?LA+| zj*b>COu6{hKtCKb`P6Q2G8=NB;WLd38Q*LO>VwS`dE$S4@@1u{bE4)3;yPe;QL3?< zlOcuVi4IO)!6z_lf7*e-1*H+{)H33YjojsDrPs+1jN*8Xvie3!y3QTH_}Fpyt~wNd z@|UT6pb|;(6+3@L0ZlnGuQ?w|&CG0OZRf+w7(4vuCIX#*6cYfD)}~`?Gg#~3iLcg` zmE@K>_$%wap-Nup2W+OxE%md~5G+FX@sfef^TJ}kHg#e$HTEBWYAC3}$T$09cNZVuDso~i9 zHg-ceQ8U6c+mZSmgT>YYHGg>TxVvr{oqdFzLkU_d(bZs#VraRr@ay%!KaM+teQV=RiS=5l-C8zC$5#L@U zOPm_U*XqIyiSO z=xDB0#DhV1_KUIY?vc;7Z~4hwmSJ@nCj|# z_vx6P_MBgB^u;1SYUQl0IXvfg$Jg(!Z*H~U$JMvr@gC){{cFc}`!U8=>^&#!yA`)} zmG8XhUy8f!J8pRzs~pug-o3x$>VL;I?sI(GukxLHbKWu7p5xwrUsf(>bGiH1UVU-T z>A~G?=<0_|1G9CHe1d$sF7EEjxVCzX?yvvmZ~o@r;y(gZ|Jwh2Dlm6>Kc8T)QF7Ju zFaO`K|AF4pe%&`%Qmsn|j>3=L@QJmG<%7ju0o0m?y>OAq;S!EAJ@3yw=-dHdk? zJ(Og}QlR`{G1&^ zB9kWjH5Qp-3qRX5yd)tw>WiFz1NY2>3{5)6BZSZ&<3=Dh{ z{N|d2ZIkC4SvBroyLUlSG)06vIO`F$lv<+e;7)_y)G@}u>uQmq#@`$@t0&9M<5*{0 z1|vK$!USFg0EZ{tIAfc+@W8^0kB5mbPtc8P4{u+^Vw+>vggX!Sp-(Ji>aQ+)jLBr< zVVPu_dgs-2Jkw)x{2s^71ANT#8$q3I?xRay=tn8Rug=$5J3#^3$M?SWu4x)EIHp!i zfLhG_i0^$`7uo(aUp)L1YDhn@pjy_!ELqZT`KgTYV zRrG{OyL^EM$LG;(pW#8T)(0AWFnG3|k#HVT4dO#?PxMlgTF=EvgdD+7ycX6J6Wo5x z*@7)z?U+&|R)X6TaWH#dU~Z^wA|7C4CC1$f^71z1+&KDy$sQMa#~N$~D6jf?8xa6t zCTr)zW$ff5P%a=Kgq=plwAr3bez<0983C}o_F-U64D1Qq^to2}J9c{KHuW-@_Zle$7#FtMVrl7rA^YmP9e$5>; zaxwL}ST1QlKsfUlbN$LwuN?>79)m6CU0)vbmG7MBY3;XMzPs(N-*%G?Uvbry`;LEv zdl$Ao?cWuHn2o!Awp@F;>a#JmJ?g<1`y5yOHm-57ZGEx3uYF@{$Hwv~c5TJp`^{VK zJJ060+wSAdx8+B1@4g#zx9uG6ynDQH<%6qBbuaaBH2&tkbL?2f)$b+#FJmk3z26+Q zZ5?uRsl7e6Eq5&Zum8%g{7SzC&{Hht*Y<%c@cIDY0~h#4?|Ogo$xr@;j`ff9_4`~6 z2*iQmgF_ePpX>j{pUaTB(l|GxbJEX++I6t$sDtE$;~+GrFLfM1wzrdpzs@BbZK0IgC#uvbK_u-7<>T^pN8b^drrG&&b`R@*o9* zw8PtRC?^;A62EwQ(;LUC+aR21JU@CZe01mi!%i0_lV+S+`r<$41W@A5Jt?LBQ0C*n zsf&ipAuVr2?5u=C%gt2sVP8l?msjl8PV8(aS(UfznpxP_eBRjdP;y*Q5}H_fD5jht zldm84;N{!~bamzqzaYY07pKj=VC65$%<-y0@+27Z6jsf+;}%^^+}whr2B||n>6M3_ z#(O4X&nbTE!6Yp+*?}YZ*oj6mWNLI?R1fxb0b?7xpYsh5P}CZt@m$7~!0{xWycd?(dAKM)YBgnU55uSuPrh|` zJsqM54?IzFOSYFTQoK{w=!ig)TlEwzCai~2j3&Dqw`1aEiZ7$>`WFHuRZ4{40i zBG`;Guk5eQNESEygKInUQWl<{3`<80(3!`=)W3aw?LI{v+u_xC$1f+a?#JWeuIDn_ z=NQ`d^0qHGeqF$CJ#z8%JBM<=q}%=*hurb*8>@NjapP^>=BXVWnBulv%%gsDA@6!_ zj>_%fsxSS0431VjeXn7vr>}4E<-|rqzcHI{%RzrJr|R2pe&ljs-!{gz(bG1*y4~-G zRhtX>-fDlzh7bH3v*X=4YpZ^bw_H2hdUID#U;ImX7PI}{#kaAI1J5I_JC-s0V4K$? zOm)rWj;(&jykp8iUp(^8^{&VMW!j^d@b6=AV(2Y|Z(P3p7x2ISH-Ilw<)0n<#iRFU z=X_;&TmkN<-u}+lzy1$(r}Dq($oth?3GuN`+T1&9AQkte0SJn#4p4m>!ok7?6qhA) z;MnH#Fz0f)PG>zAv_8diBGN14oRm&roOJW=ph4?opb<9$wrPN3PEZj0vd9Fih`?fn z*Ur-}=(!*XMNR_3NsWaux!+F?*25&DzYTCEC?`BM=Ay}?xj9Nrm@f|{U{6NQ)mb^B zEYUE^r)5G9zZqqSx5ErebInQG+y*BHr)ocHs~Jme4ps+u2FXT4>eTt*hdi3-!OV6@ zt;jvwFNMQL%`r~rdSW*h9K}d>7+j=8b`6||#%p`nMf%32UlHuw{n7dc!|~RViIh%c z88_upTbxAc_*9oz36cGnV}z8NpC2qSC$LWfg@`?z+RM72K;gMlxzyD$`D9j{KA$KVbi~NqCs%SG8@^!E!Y$Qs zk6InymNAK-9N+K(qxIZHDCbP}#suLR%NAbsBYU2M>s+0$-2CkZ$c1$+kXPF};$}?# z#AIZpJ*W`6S}=J67Hk?EDca~U_4QnVYbSDUg#&Y|5O!4L<6u5N801xJlKqj4+9dHK zioWYKmVY%&gq{ziCYRrYOQ>Pe+_{iT4FUz`xgL(Dmi-2s^AapEu+LoW3_*P8otJ!y zsSh^ViI*Xy@|hC?x|4s%$<>_IkDuoy+rgs`dGb894G(XV%_*>MugsGeu9EtzKB?Qu zfe^%8tz+l7^v{WRF2`Ll?|yfD?Ty!d=YhQa>eIfq_HZEI+g*2$1^%wXXYXU1^Eo~+ z*vj=>KAUUH+jr}cU$S9;DOP>kga27tdD_EO`JM;*dux5_Q~So=F}0Py_U&8U=B-?R z@EceEd*3*BeaE%G57+iV-nrC9U(UO{F}2Y@$8*Pby!orU_s?OT({KOgLl3^~?%Q!O z9fL1NZRM)IoGmUE=pZ@8eNza7>7cQ^u16QC|WFI)p zEB&{=^{r1`g-<^Euk^dEzp4v8-P7pr?{h(+b2OI?KInAZavhTmW34aPIGp=bQY+A zJvoqH=9ruu&b(lV=J}JG1T>7pN6(FeQ()i*C$kJrD*0w1*W~522OkaJPMBEMPwaVE zKxNDc@A#1$TcUNr4hiAh3>-8aX&8Ua=>p?1j?hek{nXuGBXwk3j3l0Kn&2ib6rMB^ zR@q&g(N8MCob&kb@P#}&5B3-2NjbSp?9L6lF#@%Rmu4H;bROvB?_V>Bk_lQ{9@Jjc zc?z-v@nQvLu}Gfb$q|%u7M=zb4|)6+A+V`&^0uEknHhBINgN&x5rY@Uj*p)SCXHg` zlbqB54=CkhMe^#`t>NGC^GC`qO(OUdnlZR#VQDcz|doYk4Vp~P;3 ze0)7;H_`_vfw}A6CaY*HlE|sIS$6L7Z!2jk-HRz&(5nH;3^lp zdu-+2{$Q}xxAEF<{T<8rQQYlQ9{Sz(xOnVaF8;2oFZ#Rf&hZG-oa$T5xo%sz*4A9U zOy4}46I|6bcKMnUO;{NcBL^EdxZU4?wh7b`mMu*EIA%(%x3l+wmBTqZp?2A5F*5Q+99MD*t)p#amPjH04%ADBT z%sXFsK*bH`6vcV9#-M24{u2Ag(9q(?_oXKl=Vn$L@Vc7ks`+F}>C0&)05$6(X42AU zd&)*;2d79*Z4}OvlX@Y{QvhuYwv|&g)KX|<&vqXtOwC;~{>{gqvdgREMrrie$uSn+ zgh0zvwMm-o(QT4CWTI>f*ICX!MyytD{1LphKjfPsL)X9zbwj|5ZQ%ltI~+R*W3-(g zBW@m?AA@VIelTDa$Bn&)Us1UE2)lZ@6IWx$drEI@J}C#7{RAJosKbYPaHF1=bdJ|^ zNFTU`7(Dsp+dyEioDZpa$%%!vdi@w{jaCq;bz4kOW0uhv_C0*V7ArZnw$ZbVsg?JB z`!NP4t^8Rg=vYrqQe$E>8-K^4oEttk8iP%H)xLGO@`TKDmQP;rODRA0F&fk~&(GTd zjUA)+S}XZnGvnqr`?S$o`2mAZTll6T$xUm9sNqV|-iOH4!@x6_fIzCnso6XC>Wv;p z`^cc7>!`6~qp!_=h5$<**z6PGR8B+tV;jGA;a4UIYJI+N;pF5A*F$}ivgqjMHOKH2 z-TkreRg7J0+y>iiy0h~!bde~96$ib>sR^0JhPv}WrrB@#MjPDa6)o7tDUKZPxY}By z?N@*DK)&Wyug9_KhjsJa$F*&I7_T+&zmMWR(rq5>KW(dTdw6%e<_-VWzi+(lzi;?= zyv>CkT-%;!b@lC-{t@o32UFjTua2Ijwykfh+B$Au-yL(uL*MytpDpj$=y$9w*Qb4B zH(&HyxApabuM4{J*RQy3+qy@b)orf&)YkFti{H9;$@OXf68=6X#`xWRw{GWq$KCme zeaClPEdA!+KIn_z^U(g{QVnBVd_l;Sb_P$ zN2`2VISR&y2!I-j$+4d>r8=y`2UlvBXeoa z658}yD~a4FT{%GICO+oP%QXJnRP}1EZ)i7jWzk*BA_ZSlq@T zUtO0*rrETy&)R&#`qR+iOG=(VsG1{oCE?-dNXie5ghVxyWt6dNfIj1uVd{f@Zk80$ zIH^QK{Pew8A3~J2`a3d^2g3^W-iDFCPb^HYYc7`tfN%IWSK@NYg`!oGb8?r(x77bMlnn zq1h~e(;EC37%`XZho+H5Sk@+ylVYOr*c@0*iV)xPU?BjfJ^s|~?8nxTOY-o(A}+t2 zqPD&;`u}(8SdEieIZRW#(q)(SQGIp%M89M*Dx0j5;Bv_2~#j7OfdTdcM zU}qahX1kp8%8ZHS>Btv69KKP<-nyb2Q22=}d-Eq06VuQ6MnZ-{4IlUng0-)r&zt8b+KMqfAaxn#(JR=`)dqhhML&eDI{}QmbTy?EMGBRhreCk)Z z{kFr^55uabr`6VYmL01)@Z~@*4?4+jl*fC6OVXWy51^HwjxS%>ahYO= zvEgT(dNFI2i|X>BgP$g=8$&Ju4e!Ws9 z+3ic8CEIB*qf3r~B-N?4d1ekza!TAJD|zO0xLa@eI9=a)f#!9*Op+T4=BJ?+-_R1v zxXD9K_<=$1c=T#lEh__xUu@+@&wk>J;v9lYXL8&lun6(;y44pR_ zgd4|!SQ;PMbF(j->rh|viI2~l60uv;T$tUFvB&rHo|8RJ{-++!OAh2d`9N^!aN7nC zj>5Ju;}op()3E2FLo3}(MJl1rgWfP?QVn-yh`(n{QWL`oPDp!~;tJ5Pa+!RWje4;h z)j;CJ*Z&nt_MVRq8G^AB@EGjSNXZwQ0&HZCq2uHjo(oVd*^ZJ(>?D_v9*(Z*dfzxW z7+9{>d7|n5=bqZD)eav^_cd(KwI{I!>bQ6~or&@)|F%^}-?ruI=!-?(`7{1`v>pFl z@t(u(xovs#F}H2oGPph7a<|vkmAAI~H%9gJmFu&6IEyKN$GhJ?)uThkufFIWjlsQ7 z!*^rLUtVr3H$V1`e-vZecb;IkZTl8?w^zThV7hGmOY)tE@txy7zWZ!`u#fDU1NnX1 z9eW>dp2lsD?T+^Y@ONx0eCpT!5m#ex{G-^z!QTRa_utbW0(>*~Oz&Ta27B$lR0Uoi z0DP%(eR=SAzx&-cc>T^dzVV;vaQnlzZ$JNBJNc*D)j9fnAo-wRSNHDDNtzpTK9p$ny*hP@$tMYFyMJcxSgMz`>g`p`P9%49T+ef&wWC{G0kR?`O_`Oy$sG3 zUlujfkYt8v<|2|`75Ll$ObT^duI<8h;&mwCn|A3S2}eHt)L|u~=Wlpw>zfJ#gO7h~ zP=a?Z3?xt|D;TSh2Wuu~8yYZfVjJ0Rz9+>$etfF#?JDe)M=8eFV?-_5OOnUf(3scI zFV-R3G8tse{)CS`ogaDQj@~KC>|E$^GIzY;OPvTC9-Qz?z5~t^4*RknwGLQW;6>Lt zT7rZHn_oyqCIuBDpX8&JCnjn=X;_wjeKQ9@Z8^p`&YT6|YVxlZjAxa0EuVa5!}MDO z&b?R|$$j#HHq#La4+M1Vr3TF|f%~nZ_)14iEuavXLmP7rK%LBuhc0Qvo;Y}EEPvN( zJp_T1W8Kd;@pK3iT67%L?2|D%UUA;b%u61LoS5LDGa(5iube8g->`kW*lc@Gg(nSb z6~%Ke7k=aQ#CQ~E^B{vMALA`|TwcbH+CA1iZvF4v#ohJy80Bw|eaju+{T_|C-_8sD zqgFlr`{enE10BANy*aUUe3$pQ@!Mm2t~F1vn;U#}cm18K9Q9$`rMltz^hZDXkuJ(V z`oq8atH08{(nlZl-U<1&eV7VxoABB`U4XC8nv*0n>2|oM#{g=K!cBmYd*cM zEk0J=gZKsns*Ah6N{YmM^W9Hz;1SXnwHT3o<3tJy);Swv?DaKJ^9q+dB`Buxa})ID z6V-V*$dl$ePw!t*@Pr_KI_GPCa1ui+8hoBehD!G|Td?awoP5u>FYuoi5;vFTTs+~F zo)BQj$FaXFWWI>XrEqQ8%$q?wRgTFYBq;n`tvn;`wOm`jVNdG1%Evhfby~@Cn40x zM5c{RK$#@4D2GWR9!@s=+T37n2mIW!v<)Q zc5TT+EfLl_K*s_P%-b=-RU2}G({aZeH2PxOi%9JpKM?i7uPt9B5fO+G2+FZy#U@Ct**!Fvn`K;BAEjg zy;|P_CU1s9o`&rG4h;hvmB;j`TQiGVO&ErUD>{OpJVYLLy96zpx$SN|x%NH6oKJGk zK2wgk-Z+YHe^GPro&5rJ_KOi_`=NKeGnvy#G>>tKU$+U$}j`T3*y|3E= z-eQa!koB^GvwdWBDE%JmhwKC=hSZ6}!*w30Jl}S_`ZS;VcHI6E+uc^KJNAyl{v5Wx z_%zS0+wyZ9TfgP{(!>8~DWn zzJ2`|cW%{{YmX~~zw_7suCLGTH>PrPqTe!pV2ay3#cf^l*gE9;*Qev+?&F@_>_A^P0yNxwipA3>IofRMV&1 z6OWm@gxsLS8^2>4*$P&k&xNx@o(R~0C>{c3Lq%L~Yx^2$yirdnlQa0?yebsG#%ruN zSS!xNWnGEPNaw0ku&kXI2H8JnEx6kHu6cVZ{&ry3#&HAXMbc~ zC}Z^YkVq&rsZpGu#(*A~m{Vm-IsC=x$qgv98Z?6ZN>C<`VPvKpaTgYeII$$2Z*1j5 zj<(H13Fp(I%4kORv6E%+#?&x7)bsjST`daFd2Jv z64ZR`!0#X?a7uW1o9wv8+shc+hnZUWqFY>% zlNs9aup-*7`Mv}4HK)L#^LCRlzmg(OGQ@jR1S z*u`yMpcXC$5=?~_7!lmUyPg_%f3HvIPW4SVzS7>-*xZVb4`*Aa9=tS4lmZ`p?)S>o%Ok5gqhS%_2qJMW`$W3|V(oR9F^UZ3K&tvTE=#XhIM+c$2@ zjfIZZc*w=kv+zE>+ugo>w_IE~=^M9vj33p!zU}XRn+uzMr~2f1$1gjvD zBj4M`VcYpsrmy^nqqg?<7#(A$J>n?l-WU6byL{Rg-fE7V?!N!|=b!(F`j>$Jw`8CG z?tHJ~uciVN_qBcC3VibR?YBPr^wYnqx6>c$K+tud4j?TY6fC^CSMH6y53yd=`N}>A zHNL!fm(K;|oX9nY9!Qx^4pKwcCt?Z|fAD(c=Jj3xah`JwJY3+Y9pA)H1m+PN5L)I3 zMM%!gj^_!0+}ZWytD727&V@C#k;0td%Hf&`I1MjqMvFgd9L;LI1DP3i#hTi2GeUgo z=Xx>`{D`4uv_<9(uiC0%*jQ^04#}!W>T3t7bdg{^w$VCgIJHRCm~r7>(M?XeQE_ep z86)g?sYgmP#`Dq`N}WHMM)VFbKss^ZI`gFWL!wdH&o@X?kUJ?4HhD#rOk|tf0s#zM zJ=aFsXPcW1o_8>=3Aq*z-1hOeL!z9o@){chywo#Q(3%>%la>ii7|^8CS_FruZ%1Vn zcJ@E}tQ@GZU)Bw$I$V4>UQ_YKdg{Y%*$%%Fkse<+k~%UP4Vcrw$&WF|jegR&`B%f{ zIYsNak>^-E#>H-S=_%fAHMoYlg;w1*u{az zPK~lp1NLz=+n}`smj?w1%uyPYka$j&v7>y@$ccup9Y^%o7RPp8()mS?-HW=(*g3`} zIzf&O8QV&O6wNDjI4&d9XtN;GG)K0DUcQOnWC7%c+R)7FY5dua@@xJrQ_ACnkB#ie zEBk8J3FG9>+~A64tV#aZ&#V;8c@MsG7x2W~T+Q9waN;-Ip5jg3w)!Tc$Lo#RzM!}5 z?)~T{`Ho@C@m1ctjaIP}G%yW6*| z*y=WK`F3Bf`jww~*H^M`mEQjFv(G;JO^Ls|{a@t|Qvv^e`iG%@WmN@!qJL}g*^htp zul_rIE!AIZ(Z%y8{bWZ+*eMbR2p5*Lo*4bcKL@cbIzaaogbrn)hr=BwB~B&`u(5C; zyYm6v7{_K)P71xa25ui>$JJwUtf`NGDQ@$A-Zr6fP z(&waQ_{ccgWd2EgRCaPqXU33FQBO}^T=ev!I&mD!ndwAqwku!eKuxVqX!&P;QRd`5 z;cSByykk3u4n~hr$)~17)Ldoqw!>+B*iNn&Mw(1%@P$A5#uPs0peCN|r{iIlyYw0znf30;ciakgD&;BcC6w+ z+r?Z@k~~}_&dnY;;@ijjJ!5hSZ?hA`AYw<31%IIB7+4_1&d8l}CvKP$EAu%yLuSHD zf8E&DMBvC^v7a17lw&LatsT$DV&iK5V0fd?r!g%lLv}m!K+D?@-|=&Z$t5cBDA}9?lY*I@pF<}u zqG@Ko>IrLbC#JGM-eWsDd2+-S-t0q3rnx&&$02tFz;x+u!?uv090Qe#^DD$M&54IX$sCU(g=;*RQtrjoI8gE>Fj`m#1Uw zja#2bnDW%Nd*qIbD;NEa^~he`=6H^?eAwY_UygfUJ3aHH-y9oX+r0-<-IlAPuiTu< zyKR+=x%c>>Yb(Co)j#TsXfcl#bc!gPPU=frs9Ye!do z``Q|7W2$RkANn0*>%n$h?&evZM}4u6{NdxiXLvaHKi97S{Lg>=*MH651$b>Ar~*05 zejxI{<+MJ#{@@2c_&fSa|3B5v&o6|%;gpsO-gSU+%^*Do2ry(02rr{ocMdw_xstKi zu@6c)_duh!PT=%HlE9o;6+%2x5XUi!+`@|vO4OHT zAl4CAKPv>>+REvE8NX|AP#)CJ^<5Ma&{&J{9K>Z4-otCXoc!=YeJU7Z!b`*P z%VK*l{l-Po5}%0UHFaC~ao;KmY!1uuvgPL0tDTR44XiLzx>-Bc%f zE430IFlfzdLMd*(wu4b~O-NiV=V*)OJ-C@033;BJ9|8-t^w_#RpYS-Tf(MswlpRn9 z0*rccW@O$J*Yold?eaP<7z4H9T*Y9B=oqi1dCH^rU*b~P@TJ!UXEi&}LX$29wqF!kTOV2iIEzqZ;KR|dEJux-wbMQ*Eq`|9bpu3S4G z?0dX@@A}PE84NNv8O2wJzPR#Y+ihczYcE%^9dCTMRWa=wvs~M!82Z}py87?_eK?xq zBi?e|W8L%ExW>HmZvM)U|G$;| zPxbcz{?7RJH2ECWtNy2~!0Q8mpR#c8;pTUbPe1DIN12YM2n*jLgzL&W`5I?f*S*IXyur!!RDaF zCJOwtGJ9tH;;Q0Djys&Z+`Va z7a+PRrY>1G9}<$rTs9Kk&3Pl)e)*BybrWWQd7U+J)v})6x@sow9pf}K55tmW>MR|@ zh408YkKdV_a;14cocZSlvpEq%L5Ks^@YI)!-I#W+g@zZr-5kdx;b6=*9hj4l-1;-N zX=3*QMfMGj$K+rF%Y#3T67U`VE5i`u?bxjRqm>HhH(A*{XH=eedglhM9H?>kf#?$f zoqfq;n(sS@iG5eDkeInVzR90?B%wZd64nlsEBkNx9g#UEw5Qt}W$VU|S~;&deVA~3 z%q<-IJ9_BCC%J*8Y7m>vmu!wn1|KInPxLs(C)<}ql8o0{g~#4AK$bQ?&Li^#$paqj z;fSxeDIQJv5R(~@KUy#oTspQVifIFgiX3?u(Jd`Wb~6L8BgcDdl>E8sU?AMhYwDP$mvOPnyQoP4C?70AuDA-q~-Vp~0gc z_9y!cZOmFTw(baa^L&ZL%l70I>_F_&eT_Lu4tOR*H*xJE4syPSl5M6k#3=l8#za4D zC_IM$7({)Gzf2KpuYte~-X6>>@O3+$IEy1CVEum0eB+<}>#5(#|Ec<#m-J6-y5@ZI z*~87d<5q58pN@CFwUz7M*G`XreUZChd(N+TFm27FeAUyJr*g-+77KF6jppTbIX0@g z=F;)T+~r4c(KWYnv@bV2TQ2V-U2Ttiil=Xk;Uu*^6{*2%MWVQ)j<#$$q>zdd0K`Zd~zwz%xbNu!q%kSFSr@dQiKyT|LB3TOk z=)gy%m47W@PD=YB!INqp=8QW@^RX&kTKIVc)dT!(x&(tqj zYM+2OkxENzuJqimCjvQygBl`wI8MxoMqi$S7<<7_4-(p(*>IwBUDP}7Jav^z0u704 z16X77Mt!x6yq^5dK`bIa^tiwT%81?*LPd>IKl0cuGjwRfk;ovm1xt)9_Ve7rV5Duj zxHpm;n^e|$lw7uKkNSnzBZ;Jhf2(aP$_VFzg|YJ&FlGSJq4)Mue&zwt#@xZ_b)|pV zuTN_xcVmyU`TVy4gg|@022hy@oCJPmVFz!Gfgy9edEaF}Wz0h$>0ArTnX%_Y{^D|` z>S@+Tbl6c!W?ME_WTVxqitu=naEJdB{>bR?TpU#}0m<%66oVazApt(@<;Esm@*`t| zJ#Nmfkn(Y!nivRf^UdY_CMZ;i7(wdP?wVK3pvIqMB$`!qcMM{cXU+@VMpdUy*+(0c zREU>+JBMH}SIZ%NBW-*HV)W+lLCx*&kyiw>R z6l+I~JZ8lryX#`VAi6egj-5SYZ+khXouj`*mF2 z=QwKLoXFMRV{F_#9zI)#eAkt`{N>x@>;10Q^mp!Z71iyrVeKk>?ml3uYrpZ0 zhpv2^XZzG|W0CKz{`BPpQ$6zJrBj%X>;D$rYx{5&==H{ji}1IY`RiZ*`mbp}{`fKrfiPZ2k9Txjdd%gA52oHM z*J@Z-rL|Fmjzy+pG)!F4BH2ccx*TP%VJsytg7+dd2eVbMx>YwxhCH-KWx>R9QA{pk z3~>zU_DO?~jDc#UN;yt2N5siD_s$VDgmm`B5e6#~o=H#Z3CeF$SO?nv=}>lj?XGCR zEl&uW*hajhM>03E7p<;~ePZIuNf?-e z+T9dZW*C3=)HeC@3PEBuHV`=^@8Den+cWQDm(IB5i|F5>maA)$)opLLgaRxKo#)7w%1s7=e6uZcLgsiemkLHTTuav6rI|-7 z0s7xHx?N4}q7RwjsT*;@HGZ}mba~}mG-I$(z{MxQlHHDw_~^nD158O!dTz>HH?S<^ zuTC#=a6TrD3!mzfe>lb<{FAZN&Bj=Vg&RENR_H69dM^OaOum4=$60 z{YP&c`!vo;A={SR?QZ|;+)<@^Kg_1jJbmtQz>MR)*3LOO?AkRiEX;*ue2&vNXz8&* zCHslv;T7L?n4~K^j`-R`(N-P3)#w6@!(f`IohLtXH zY+b4+Mt$02+p)JE+ar$ZcaPlGIQZVV%U?Y{)z!b_Vl?)NL+68U{@(BXUVjas@Ynt; ztiXBy{t7u?sXqG1clN*Z$tVA*_V&+oXzI@WmHjm`}dF z62XJ0y;8~V_~OExz^bu=Vsw3gfJqsNS~y+czu}Lxq2ealdE=9uQJb%K+xSVBY|022 zWc3n;$4c~Z!obKs2?|0wRA3~qEo-xz4bq7d+Mt;F@YpM|eHqIq4=qyL!*{ueOEv2+;)HT|8@yqttpUMzp7hp$qmGmH*&k7(#UF9@sd!}#ZDJeg z?L#c5V169cMuyAvh|)3duqPFi5xy>9%`N}r#9osX5n>P~K5PeC>m6RUiC**RZ&Mqjy77(T3+u#&A={Z)v`NL>jI3qV z0Ge1aMb{UIZNqi+GmqL#_5ZW?K0TXdS$0=tMpkyar9wug{RcOuN@^s#tJ?;ZY|Ds2 z3L$|6mPaW|2s}WZ@GbiL^r%NnTP-!sq$WssSQBt#sX=OqK?9W$$@;Ce*SY(-@w`!y znZ>By^TxerpS{;wd!KXvJoi3tWF&)`cyaPLZ{|5k;rbX7r8T?aG8y%{wVZa$+&Kp8 ziV121Z+&xva{ibWyy^iDgXyamrm)Kr!n%q0+$R@pa=Q2UI-kwi^_Y+ymr-gQ9gV3e zUlzMWSJgTXYStYUs$olQcpmL|uD$gazx9D=o}!CwUw^S1?|BTM{yVS!t@ECJt8K?O zpM3Z6OIZB7KE`nGzWV8D#EWU4$n&+@_|}FGyIc9iw!iz!FK^@U`LnsCkLat@z7%w6 z`1vx1aWRb*+j#NqH-2;QKWoMB7`$?~T}(MIX@c8)#$fS%hy!l7YT&C~KI8g!eDiCU z^C28s#nD&)r5uenN5|FJ{%3hN?w)VwyyL1%-&p${yW3l{wQe68Z1rL5y#8FvK%9@s} zcBD`U*0`)c+>{|UUw)uf9a%nJ0%T35CUmv=zoj+$WY*|f%l@~vU{USy&P!WsQ9!cf z$y~4OF_?Xmhv zNNKGfi#&vk1HU)`nJw!}{vIQrYNQgDojDe^<+11PA-l9%%)z-qN-X)au9mScb3DbG zOw?4lxkhFjujgPfQFGlX&bKwffo)C9wR1rKIzvgKznLJceb71goO9-1B0QuK&>#OM z*)NEkmvW#$*G=GDLx`opKMfpU`N-YSIk%2SFfhKMz%aqw!)i{hS$-^*`VZz5N8VMY z?Bs-GqUYh!<(im__7t-VH`s7V-g(B;;uOiieWzUWlI~2bq>ohW4!jV4mS+6eNL-4d&gz_b6!37Wv-E<6}q$d ze&L*PfuYUTz=$Qjg4IN^|5v%t0my6H*;aNmG{9qiP+BW|_ z&+^FCe9wGn(AvL*t-t-oIO?*Ap*t-=|&W=6v?Rf2KbPSKy{%$+C;_!EU<>6=hP#w== zt*89<)op(IVz=)Z?jFDA{Y9M3C+Egj>zNPUy~d5(@elbMyZ7baa=g>O0YHuaocN#r z`JX?(00_ReZ@mJqi~6mX?nNS>6z_ibcYpWad-wnTKmVg19)C->LY}bm3E~@*F1~!! z>&gPHo7FxN+`DvvT1dE9xuMBztQCp*LYB{MVMYV@x!C8Xcs|TD_5-*@$)g{h)YJxw zHGZn$roKuQ6b^rUQ4>4-){+|y4=Bv}sztMsr2ik`o=o!c0(9LVcqz!ZJo+H1Qu#FQ z-!M2YO;d9a?7bMt%?lA4+L%mpZBa6qp$B(t)`*8!UT!^q)g6pba`Z(tlEL~54Q2LP zL!zY&eb8hbJSWw|gB?L@yEe;)Qm#gxH%X?QIS`xq&|k+?0ZP;leq-YBhaKZH|4TII z-Q*>1+^n0cpoE^%ETdxQoFX(F3brl7D}bN#W0ph002W?2)`PlQkK*8>gZKpIJd=Xs z@ARTRaseeU*Oms1TbImy{}eHfWw@+Vn%7DLr}udpJ})1Z?wrJc??39mXLsrNcxagQ z#y@#yUXY#H;=~@0RdQwxVDFYX#i^Eitpx>HHCi5Z{!Dgi@RyMqSI0LhG=u;}bG4or zI6Ud?Zyq!#V|05CX3m2Yrt9t(bWN=1rq>y1HP*P$p+Gagmmuw?gE84^|(Ej+3$41Y+gq3GqpH^arFl{ta3)M`MKiGJ< zkNTde8n)kP9Ma2qF&EzW0JrRORP0Lu^-%`6)5^y|Ee+zgC>;cjQ<_5>`J*`l*9DwB z;BxI~?1ZL=+#R_pp zwl(ANzIe21uQ1DV=J4QO_{~Lw@m}KNTbxPmx;zi^Os!jQ=fo}+ySmu-cGu{*{T;ux zifKK?avk4&9hXz=?upTg#eRn0xW;$CHHyVYtM>Mn8^rs2I2*rpite0?ZQuCE_8(iz zU7zuHZ96wM8($9G+r|;QkGJnxtnruhiQn5@r}Mx2;XU(JZ?6-$w(2o1X2*+rsV|?t zHrQPY{+=hq7~h+G?}YhO{r{%!KmOxC{^S2u7(VviKM;5F>-eKr;Ndyqqgk)O7gyjX zKlzFOs>;`2ef2MO*8i5yW1q`D$vMw`vE{*s%Z`T;T(-5R=i=ZI!w*5ulnW%+sch>w z;0r7KVDNH1T^VwLp-ZE8Er^Kd-^w`1PFZz%`L}9EF3fOJ8#FH(6awrgI>{D4O$ z=|`1%s7NE}@<5au0<7E&c+n3ki5bNQhDN>9W8=|8xiO;~P5Brn9Qa^E?OJnl(nN7) z@zPrr9}jILNRGJ4FQ;Ob$J7tA^4tbr4o8q59}Fb1;j4A7*yrUx2;=wtkag;22}o-A z(q`^6I$Rk(W`%jJ-sad2e`XS`jbjp?YjPv)zsbVOkZ?frTTw5N&(~+QQ40^r^x5a64}$afG)!T+Sxj}-v5uG2Iraj58h}wo zdLp)5Z&TzZHZaxE<8O~oHX#ShTs_~(ZvP1@Avv^d4a)FKFn!lZHj)PyQLBQ92D6c^ zSgvOc?Lm>&JRKV?KXWi3`3%j<&FVRLu?(=UJk!Z5FXbdSy*k&f-t%ER`KBA7M&j=4 z6{0aCiro#8KcBcKRFJrA?h|LN@QHtTvb|;qpnD(V-)-XM)9=Z;Zb7WO7&C#*4X+%W3>R-u`NW*>*Yjy5YO$ z+FIK#wmQ3imZ$ORcTB%^x4kjgyUxa*;XjnWyxpVmOdAZbXWQo2ZY}NWuXgLAuO^rs zuYKos{8HbX&B3@@_1(Gk7uR^TI;P)P#(svKbDQyp+Fh?&cR%B9FX_Sc=kx%o(H=LL z>TLhk#LpZ$5619X8`yFiEB}sLeqR2$CH$8Dw}Af=f8VW&dF{XZ3h+t%+Wvo70X@9_ zBR^z*?|W}KjeRcn6OxOAAAdsULdm!vo4J4<%i@BTr%y~CpnIXpMwdq%%U|JKkmHP& zH2rXz8ccvI0bW|zT%&gUSXIQP*3 zAz@h=#YB)A6mdN|pWYW6b^T1>{&LCj|6R}guvz?wYr zHB4PX5R;0G==Zeq7m8?AyEeU=|B=C_Ktp!7C?&hW)nK0dkjo%4Bcj&(p-g*Sza!px z=o%rK?0wfIaYevPT~4Dwvm{sYQAaX0N7uXKr13d}%ehxf=2SlAB&mJcdE`>;ImA@X zd7|U3#m-M>6j(G68E!~N123+)weMg852YFuozCCz0g-~J&r>pZy)dQ;*ENVr1EUr( zPF~gFWOH8yH;lL)jz^C1IXBcP1b2>Mv&rL_?$+igug1Y~qp{PReuPWSd zcBFL&b%`EcJK>?oVeZx$zdEu)>G>zKvo$YY2w(AsF9@s)W3{_aV{-V5xS6BpT3a!% z0sUG7?5xP8ZQtS%ImdhP4@0@V9049T#?hu;X>J|IXCBXTI!=AJTJZarPV64vIqosI zwB~DkkGF4QP1LUX#ofo?p83k(ad6%6qgigp^t6qO=lT8_uC+d6?AW%!wif(5)*S7@ z?l@!G_HFF8!7-*4-?5#y9hma{OS4(S^0x-K`?%bj><5QCXMwGe*v_%z<>4!)efh+8 zP1`2cw(<4RR}Z_G_Kj7O9^ZZzEcUL&xUD+(adq$hj(3knb!y-FgMa(|?|+}U{G-i( zwSRdlaNf~=d6K`WW_$$HS`#)kaNJny#_^NT^|-zran-J;jIIe9{?dkGaq3UL43M6`bx>yYM@=|t zNmXFp92#lhXl#kw-V}%H=VBZ&hYIP%>dtn_6C2#%3^nVt%k6Dg4lKe_6E< zCxR@1=AQdcYjj9qDnb{(we;nP&vC_QJ_dYgqPX)5k3M7P05mq(wQ}-v?+X@=Z&I%N z^4TwmtFD}jmK2s8-pF%WawFMRJiQXnR$DzfYKhOlp5$0kW_u27}VL8{@>V)WE8S zEp3~*%~m}Ath<@!7>oYIoG0POJz8zT)3T4#YY@}>g?4>7cb&vrOYQ2lhl367L2vwy zPc4p*&3Qzwk7-4@esTKS%sapFt?9Lzob`83jH}`LrCmJ!+U@WBXZebG*6&=z(fu~< zL%i0yb8Y;#ckc4&JFjXK_Y#*l*bi~5LEl{UJ<~0wwcIfsx5nb@-`e#RORT!Z(cd-7 zYhO$`#ox6yzS#D}z;8@-iuq7~&vnNVr&Y6gwx9UN=#;zh`*_%&4`Mr1V-oDj! z=XVcz{cx>I&=1l51Wr&sIdYBaLX|PstDcwj-&cDKlEak`2VW!}J$_jDHzL;3&BVpz z#)8>TVlH6oJJqFGNFPiY=kbD@N3GOnZFCe-wW-+zBKA1Px!`9)xwthK#!BtJQ)o~9 zs32=i_6ZKn!+Dk*>^wLe4M9}j`K#0-dL5~ar+9>>rN-1OlD+d-g-G<_@grXFsV(&h zeR!e|C+nO%gsntsLA=IxlIbeiXirR_)@W@6wBZBJP+c0nLZAO}NuwlrXjvq9&Q zg#MiZa|g$NiogpsxcK3yWr1Ym%9rDy}NzGGVprGB#7>A`jb{6TM&q7n`|-^(-?Pk6}#{tsXp;s zzp!YKV!5Zr4$)Fwu9Khx1qbBoZ}0{RRKD-Y4D5(ecGuy&90SrHa=Do!mw=gS_?gM7 zkz+BOQYn@BJ_vOvC*~C&*z#w-a!};>>0Jx#sSRHi2ero^XE8t7faY(B%{)fiIaY03 z+8pK&m%+p0T%;UxjVDgTo6p1Ob(5-dr%az)_=L;(ih0?D+ME}?YR){J z*TIF%q>>7XesGbmwVZPp?zEaPxBVr-kQZ+&RESyoQ=7See}!OxrAvg=9Md~ z>z_4%+BKv{(_`|?*0~h-pew#P^oXe$M?N*zXe&F9S8mq^Zm=6)-9>+>l{~Gf{d@d{ z**ex$}&!{nf0F`cHLC-|8O&{JpQf`s$w% z|ARmH1HWSx``UlE72pZ+wf&M-;5UEsH~lLUJ-_@YzjgkEudnp^r5lod`VYe~&R;w1 zZ*ueT__n`sfz%ta?yJ7F`X)PngFv>MyW9+nmopE^1R$0iJ>R2wDm8!K@KMtXm}uzu z6W2-c7w%*lD4&GAe8*JoMC%wXlwGRQc(r{NEd%G;{0EyvPBk^JgK+2$U_y zM7?pzXY3?^E2Mu=%9gG*#m$!((NpxHUGt?HHd=dG;-$W1yRyjQnENXz&M#%;Wn9!^ zs*U1ltQn%_#v432{R*X!&J+GOj>bqA_|()j&$$vzeb#}aKg4NSuN+5Qo|z2yTIALk zv?=!G3$cvBX5-k%vXJJX-v6cndh$D_Fl#;8W1KvLiEK29_4*|VjYT}G7^mw*ceEKh zp9#{XcWq!eR>?IHqX3nIKb+AV;lpD-sJM2tBk#J1Ifs)@Ab>OPsJmX~gRaiP(Q)Qz zOCp@~nF4tu>na6c>~)#>r#k!qsY79eEasg_T=TwX8gcCcyKp4nKjr9rt*fxtg9N@8 zfX{I!DHzfxe~>dU&L?hDHkH?H&Ks!WJ2Y|gWh3ijJbBRaT7Y+ukv$O^yceNgVt7Fs zhNK36{25vdHvw(QouP7)%r)boac%{Z+F_~=FNCb=M+!pL2WR+&63Q13#nkYssr7Mezi!XT{270h~T6eU`=Y#=cpRo|O zb)Qt9dz084Cks)7LTIYT*ZT^1{8mO|w%lF}Q~^08;L z{=zY~#?9w?L7N z`gVNhsZAWa=jFz48w{=eGyRSKkX?;Crhj|p?q^KC9YE{0xw+$j8;EyZ(&3Qs=mC=B}4o_0W`>HP9a(@WUkm zrKIO(5X)}!z-LZ7Vi{q*YUcRi3vddt6&3dNKjxan6JxX|7mQ}}F+252DH8$mUh|xY z)0k83crqW^nJ3j>c{~$2tO1pmmmJ(#J4E?T@?ZM)5SqDKkl$jJYmRAVQIAB=O1#vI)cohNaM z^FzzvKGByvZk@0E$bv(YoD(w4$Jk-brvcZ&dZgt%?_hd@*0ksV(a#Ft2%iU*V9?J? z7&WbYkrLjCtwr1gd&G{3*b7-h;wNYWZQs9{sG3W(rQKjhA+=e8owm-sczSc#<@}F} zb;-;arxqmc^D)_w=%XSXtwm~hJPrXOC*Dxc@xW`}gB4W&yo3?4M1p}e_sI1mEToN&a zoq)Gq*9FbZ1<5Lov21epi*@R94U?1S4|1`Aa~}21Iez1-iM%#+PyLM5tbNl-^DWndiRQBguiDkW4y z&ix33541S=*yTj`$*#{8|FuCO7#pLD&p&fR%Lif?n+p>TV_ir*A*uPH$3E?<6BWk^ zc^l0-T}NX^5K)3TLwLwYO_sfC1SY}zjRLnX(Y|O2M7?ffocdM!8~w(eMjd|n@0{(; zE;UA^YX^+n{GgYY{>+g*b8QdbAmKY-tFfES-DsLB$3tE;XzH!4-p7Ufb|;=ah*SWD zgS9=bCn5^od1g3wEFg1U;1K*$PHvwJ^0!3KTMxtM?=ld}8FD~gyR#m1E?&aI@!R=4 zN_!m;*PrB?WW&c#$T9ab#xBQI^I(|zIgSpiyIu^3Cm*GNaBdz5d9jm+eUEM@jF0Ae zjiZ$OEgN2(&pGP(WsDI1sHx{cov$Bsxh~L8H+cZpe9%KXXV^0Q%{q? zVEsyz&M{?VT{uqQ^e0_pHE>S)RZosdV&<>9di>6u6)PsQ@kDIq^XGUkgCfv$F|ujR zflqC`!8jbe^G?pzx$)S1VE~`HT-(^hST}f%;h0vRdE>id>=vKa`aICCdG7xA;xj+| zp8s%b7yqo^nC5GL$AjJYdmP@g`1Wn>;v1*m@vXo8#qaosY`Eo@+y2hO&$c-m(>T7Z zapyE2xZ3pPRHwY+nzudvXRSKLwSNh_^K1;fHeOD*ZvE|vb*qnl=dMj(Y&FYayz|!I zzOmicehE|m?%{N+zdG$(W8=Hl&AsD02mE&pwCcy^#lK^Ewzh4{_eRIy=bwG{*+0?t z55asf?^?yb_TPR5=JoE|3%oM30)O;Jf8@_3y~_SApV;~Ps(KgU!B;0Y=eH34Z51cH z9r&(~vVM?5M%?cZti`IwHnnI&Q`XEbM2}og7JI0G1<=}9mpvN#EdzaP(AbLbm7LTd>ESvb zI{dMoO(Mo+WTx-<`DAKKLc?% za}WY&Q?{cs7i_l9My4J5H!`GUb-TP1$5`@>*QKy_Y>o>DE|(iwK6f(9X4cKw{|+(MuJjaJnj? z%kLA72k~6z#)(PXSk0HYqQ$>A5L>+g{8jnpgMht{NAmK823%MFc89Ub>f#}Mze$V}k;Z6QgAnyNtBLKBaH+Jrq3BVLOfxfhfPkl7B&)V0g zkY|&{wL)~*lT9pMFu5P%q7|F4UCfi8aHdn7mw3Zv17|+Dw?@Y2w-tsX39kVp~P zqi?O&-a5=Fiku^eAA8P!v@GfUg);;Sxkh^wTyqMqCklqMQ-Y?WC+cQrYNrM=d+yTb z3opWEnxIkVf`YlI#4wLh{U^yFIzIq=L*m}n{EkdHV2NLW*v&if&ZE*fhL30Np-Au8 zLty;O=iG{&^w_Q^Yv*_uVdk;1mY3h0TMp+OF7e)r$}h(nllShs*Ih20gYAnGb+p!- z9z5{gAm5s`6sH~C4D5T)f5#1q=aUb$2ko0iWAtaOTJ!koC&#wSedgQsY}~f12Y+kS zPhUJXZI8>rxBWrBjBUJncW%e6YwOns7rU|c)oh%;$7ge!;~BnO@NFC4_|DlJ{cUsc z&Dp+s^u?50-R5n)B+OJ(M zB*YX@iiFsY4<{Ucx7)uxU|pPQxfsV5=DfUGVv4k0FyVM_-P9DGQz{?7;pK;U(}yEV zu};Z({dp~qhu`hhdnapc0KItZW2+6 zZ&pK~Bh+~?y*!T+p%(22VBQoEoAnSLpLWNNrxEp0H;1SDKJdbGjH79lhrPp&?3lbB zlACX1gTfaTDLp(lky}9)5p3~8bGH_N8hxY(UKoC#)0TJ?A(k0R9xamikG#!`2}*P4 z%cIWMKC^Q?&C?oXW%;Y0(PKZdSSOF8K0nbPRfCO!0y^vD7w%xpb7bOlZA?Z0rsC-^ zrZLvf8ro@0tb+mPYftE$zX&jQiy-BeURaC~imAQEiDSxAVqb&fw=J62N=Xb6rW{`* zIQ=I%_OT)m%*7e-XjBRA%zGx|F90d1jl2WT@ojAKpP&ff!28(B1giMS=4+(F$(?gg zh`|D;Ca()n#_G;mdyI$1N_FiCkSp9GKt1?|A3d(KAWu&roW}r0Bz)x81*n)GM8Rl# z@6w+-$WLAFY{s^OT*Xm)hIkV09zOA)m|WrUcIyC8BeH9_mZ2S<|Fd z7QSd1fz)t`x`uJuo=`e@&VfTBdEdufu?Knw;yFco`Fp$wINJIKQ|k4fvI(bJxaXhz zaMhxx3e9USA?h@80_m2nv3AP2hi z^RjK8!tJdmjE{+M&0Xz>&+CzW)|n@r)-1tXJ1u3As@=Xh+T(9*(SD(C^R|80*xILF zf$FcXFO?=m~{oCF;8^8TqYh$om zGn&tIi>KeM*gLQOV#~wdbBgS@L~9W{?70G&j0X-fB1(#mwj$mvR~V`T!Hn3 z@hufzX{>-xMxDGrlKn5<@gFVgODjI+^II#Ozecdbo1ebEoDa46r4{#)!a?d1^bd)o zt6(llytMX$`oj=DzjgOTXbiYuGt2|Kf2)6zrLqw;+!vrU{SQddd(&<;p1m(WIW%V+ zt1-X6fH5Cm@A*p~i~Q`?sIMld&7AVK9c*Cb*is z`eO|_DD_}$pqqFU!|s234Iy~cYl9h;>71r6@(_n&U%2Ex4Sy2bMg2#Tm))5!b<_C$ znXL>(;Ts;($Ia`L>OcxtH{oxey^`(GJ^T9?V?9Ll<_@l}-G>nbs zg{}JO$%T3vRyFCZiZG2D$unctpW|T8?7j9QXSTqs?WHLW=R@SAnR@#o>@@7utUbA| zV=AwG>Rq3eqUQ&A#+d^Op|g+Q4h?5y#MTa%cy#HATY7k|t81fp&R-1JjL9o7csBXZ z7nO?pTvN||h3{i>eL7$XV@C_orsCZa-SgXVQOI!)%315w;5pzksJ@W$Tk?r;eEdVK zjRLZMnJ>qXm^j7DVV46fIQgtB91WB$?=(91gQ+RP#(FNY!i+2X>JubdMEm$b1*!ct zkTA_7Vw6PzW z^Ie`E2aCWRK4W5R{;TeX$7fEe^R+8no4v$lGfp;sK5M-e!!1S+2*x{x&@B$vy2M(a zFQnz4m~rJ#{e;|Bos2s-=exzSrrMJ)U`uq@-`Y8(9c$J()<>VueeQ3Mt@txng~9Nj z8R8>;+Sq8}CHGk?jm=a4uuk}w#(Nya(5QdwiF)*1=d5Qj)n(k{-xyrt<=y?nY4ukt z-sgL;#e=wWh}GAAD{bG_sn+H*pZei-+j`G5h(BA4U&KRy>)prj@wG0-8(;fg=Y9MV z@6Lxu>v@5VZ{zTNsBLWZwy#`#jn~Kcz7gBFYT>Wl_#U%nUAL_Xk5yzKI=dIO8?EPPSAcVabXQZ-Z`oD3a1|eeu7m`Oc(CCV2J5uBaaZM zA;JeCeKsC+``}+(YqOs!xESXL+PN?RP8>52&2r#ejgN3VObLv0a$)KZ^%HB&Ao=fo z!8oV$abd@B_292c8=eiQ-g7h1l4-1Ss$;Ne5u}HBW#h5$*K{zE^F@fiVCs3Y^W!f9n*8{)cn_* zZ3rN}RG&JSPeYgPd^y$QM^2p+Jx78E6RmuCA+Kwt2xU-*G~3CiLG7%4N8;L4Tz#+1 zIOUjmSd`>yUN;@Y9t&bhHRIIl`ACpRN|MD~tiWEIi<~+H@;U2xcFcSGKz<4}Ctqi~bmt0ZtIWqI+Mfm#9 zAyVrF);NOGx!{LV804IT`xxKnVn|FfwfWp$@S5pcMwfW3ZeXeHU}G5r z*KR`Nf9RAKZLgyOwg+H+YSOs#a~}TBai8cPQee*o)ckagTy3Ku$ z!)i)EUtD<{gT53J$G`DtbX=S9_Tk?-Yd1&n<&M@@ZVbL|a9(QV_IMXp z?(P+1aliWf^Uo%^qCfxuKmbWZK~(AgMzOE`cVB_|)cNj0zv2qHp_MF`rl+)rw@$zxD93~ z8i-exIL6v5O&U_M&cpEx{le{wRRGs0Eq929+Cq zexuLBjQi94p z3Tx+l8n;hEa?FOIBJ$#_fjC55uU~?2p)(=FQ+qOIr4Rwl~m`!Y(p%=Iw46sY|13a{dwPu_bq_^_n}7S^-|m%$%8H=Gt|oMr#ubfMT>> z?((ICG|AyF$cPcr&M$>NZ<3Gsp~alfn)u-h0t#%?0Bg)~ppn5Y?K)QwuFr_;IC!}9 zjK|5^h=1lxJ?MtuJ#q4QMglTT#uJo8u6x&oUoYoJA5gI&oEZ2V6D#`z+7KwCVGLtl zs?gEY{RN&x+f#h&0YYvc<1U??*P01{2!A~3nVT?Phk0wi=12ezl(qKcm~*aCi)K)Y zMyzet*lSJPxyU!0=PJMJp*O^Rjv!xhFn)P14HiTFNT| z8vLaA_Cs+epM@u8IdTt%yqE*aJms9Ut{+=RE6uxqs4 zI_YbpJvRESA;+L<@e{Ad@r5_9TI!9vuL?YRyyzL!H}o9+)obQyNPS_ zu~E2>#0ut?Kh`(^Yk;k*!IQkar5jLI@K!nKCU0$J@z3ju&u8= z`r6f{uMRQnj<;R>Gas>X?>Sz=mqQQcSzW|vca3`vFfZ}z?-vHmRX<}|{k0kQ+A5aV zUeo&N@7vbFZXBDox$#`{+%+|J>px{a`nLdnGX8vfas#~%zu5}puJg?}ujnT$@WUVe z@YjF+^UwaLH=lg+4|I9)Nv>y3T_hU#Or75{aS?DL`z4Ks9F1xI>u(qgxjwnT7$c>z zFP<3oohZq^ew(=Q?7}o=9>^Q&#oXWg8g00C)WXYE=*c^Cn37T+0}}^&@J3n2;d!I; zZ);#q{j7`gdo1MWF-I0|q}3rjV`AX(8aGk7DEn&HpceU%2_G+{@F8Ezn(SHY;J3E( z3f%k=C4Vzf#nkB9HJm(neNvE`oIu^M!l%9-SM!7;VlL;;yl7j8oEAxf)CMN1k&JGf z;3tUg8j?4sqW+gG&I7|Iu&K6P2lc5z=7E0nd_0Luo)A?#CI=a*ZRbOxSZp-)3haI) zV;h&6v&L3aO!}PHdHWsh;H)-ztu1j!8pf&SwWd}T=HE8Ez{I*w^}!ggyypvv(WUm} zq?`H5%si4bwU5sPb}eXZhSadzTBJm@*PpJtp^K7r=Wa7-W4B;zzYLF?w3(X>=WktC zg+MchIj%E4Yo{@Xg8Vb_tSdOlo%zo(mfN$ZN@A@6KaKiWN$WA5>(@c;e7w~AVZ|wh zRsq-YkyLlswSICW?gQguEtm5E5e-LxE--4FbKYnL3`@^hi!QvQ6A!RU({OZ{7Yz0o z(TOjv%T6roGkA4f%b>44Xjdx3wkEK#qhLamWlsJ}C05tIe6PjSd>tFGM`=kk(;PiR zg6nx}U0jCBn9nE}VRJk$$<`5-@z0uDQ#P?92?Sq7n5RG2)DLe|yhct{Yy*~A2YV{=uK8dkiVqop|4SHJA) zG1J8s1=f*9{cIXrqw^qSz^uj2Ke>sYc^BU~kO!PLzFcr$z0qpT;HZJ$c;e%JaOxEY z8(&|94sZ0@mD9L$wjTAgJEmOv&FdI^b@0`$&c$(>K<>v1--d zaXIwOQB1kT?D&pt|J_FG-ZthQdo~8Yb)MCC=QRiZ`?XZ9jR99b_Dc;6TaVc@+|v14 zxKEV-f7bsE;2-NBUH`wI;a`2@Tb zKN$1jM@*LftP|YhiP-PUU0grjaPj-bH8%mce*R3{X%G(@V_F`L9G55m3#rB)(Y&Zn zS-yegqRs;YsTpT}%8f(#sSahRx5fqTP+s_nit~y7f&|!vq{;f|kEch(q>Rx&NJ40= z77o8K%ELAF@xDMkb1Y2qED9FpR6DsIgvYnvJF*r@%uSG+mMe2EveB|usil=FGRKgd zAc&X?Lj%{V+9=Pd<%`~ok;cP1Vez&VQ=?fS#`8V`#&2XXF0rGb8aULJnY>UqHbeac ztx1Bfd2H#V?z!QR0F>6{#n<&R_XOaPCv)}`7|6*F0prE@DjCOx6in7e2ta=MN8wsi z9$K%z8tsr*2L(@OEl}%2A&ZW2H7ifC{<4blr~^gnmFci{y(SKu_|(Xnx^8o4p0+I| z5ogMrMqoTnP8e@)>~)+PP<4{KD4bDnxYhkZ&6bEhG#NkE?NeGk539q@pKG zUbYLChV<}7mivSiwIil(_!lEU&LnLkDPi(Cj!%Q?Lzt9` zKo+(b*Qx6nhnnx%>Mv!yQ36Aafet~TV8LC@{{Wl_2a7#L;6(*3?j%vqJZHdn80K=V z(tNyPKJ2aEJkpQWKwNO^%`Avp%SLcDeJ&H%O$ps-C5qIeC(+Jtk3d>rsiaOvDx-l| zCMp^s15%#?NjfBTw=p zb&+ko$+<3`po$+Y>NS3No-4Hst{Lf_sr-(oKmSP-d8J9~u{-N1Zoj11YtxrLleFtG zZQuH=DUHsvef^ui?armR^0vP|Ftyun-?oWU`%5}tcWm3lXlQKz&RPE*!!t}{XkeFD zd-r!tvH08WIq*Nj)xYys;~x8v=KYv&jq2Qe_i^XA>qNJ0`|-8r`a5o4KUnN%{_U#` zo^~H^4Pslr*!nt-(&N6ENAH!7INP%|-MTO7pxgS2DUWeu&A-Rn-tpS%dHJWlzppR+ zexUK|7XWK# z2F_1BHycXFojHYRSL-x%9ssBVu(rI6Mbl8b*-dt^8ZsXmb8Ne;M^An;5gwSV2QUBR z$%|zl;FE`leyj~f8xL;E>9QI3hk7QRYhp}&kk@;>(?%Dp>Qal^N$wk+o;Fq0nj=v1nmMIbLC5%`2^cBGXCdHs%Pb_ zdFla>`nw+I0UnNzL+VD{H6Fi=b^dVryGj?I8RU9F2dw_E*2w7`@nsEcCgk-RD6S~T z(PnX^#z4;`&YLvPUnZE&n^;m5C8CnEM)hET501SP4r+d_!>FTNbI*(@NN&@1bgd_w&mdx61yYkqe^?u@PwUXw8aoGhXvJg%*%o(q@=%kt@Xuz1 zY&2a93}STNhg-Y&2^|c6w5zdgu#C+m4|T51Yrp&_$JEhUofBU5Mw9yq-p2RoG4;XU8}VxHYrMW4uhz4^`1a)EWvO}L z)CSY7TKi?UxW;x5@7dbmhu5tf{B5<1#SflwW5qT`PrmjW2e&V(^%q-R6W6Y|U3OAvGtd?;~P`^9>3RekKf1S>6$h7)_$f}e6=>Oz7O?X zgPrGY-!XeVh<)|dS3jB@*9rEaq_43TS0Go{i{aP6$F9J;uiyStpQv-=P^S-@>m_ME z>d#G2cL#q!>Nb-fE=Ip;_d|qpI~ORrTzGzv&L^+9GJN{W@*6J+?U);JUPAEXg3<@V zyqCz6TnRFC%f+1!N&ZSL&G$Uw%%|C1Z>WgV7(4mOs^%H))3H^*F_{XxK=G5 zXX6Bw(0sVsINqAZ(IpqT{bdtclWXKG;QyxGLOFIq$*(q=)Rc!n`INiA;dMgvET%$~ zI1kpU*k7pevX^6Eo^*g3uXx^PghkVH!iEw~YsJ@kU77OaAIK8N&}=k z8r&G_mq^!)-ao9bfPwTFQRk!03%u_Yk_#7(e(;lO(&U4O+VZzfE@i3#h&DU@nNKO# z0iOVJT0j5i0oXk7@^U8IYj1%h9JO^GqhY{Vn;AMG^|sZY+)*Od^*i&|`uK(9aK!{v zAf(FLm*d?phFy>RUiX<_*9xD6P;lKDdpJ9^5Le}1s~jt@|EzCcx;S5Gk?c(2!fAm4 zL=m)_j-PYP5?rxyl&hgtx|^``p>v1^XqY~=7EHbo@>=M+ggY(L%ZCHJlXxK8f2QWJ zSpy$OohP}kFbeLj%|bU1v80Gj$L1(!)?OoQcfny3^V%DnT|UPz3>A3(s>?Y&kHM<* z@unVaG|%HP?yna9wrZ4DoqL>dvDh2maea(wjC;Ps^Qci@ zdGzGy#<*Mc?&Dn(n2y`ub9CGuJsSPybX;Ha77vHm-tf`N!7kpzWO)zu3hZ*e+a*E$W-A`1S7q{L{Ptb^PsC zU>>c$9r=~DSK#aaCV$;mA3c1K>qOPgfZTp$%CKJ_U3`QQ^>40><3{>+EKyI^tXyddX2rGFx@B&;Zg*-Q|4HaI*D<5Et_8W>NT&at zf#;5Z#=f`U*C2i)y|Y^u%iNiIYL*`lpt-)fZshJ-m`E)s9)FeXa$d?AMUZaQ@Vbb? z+$NCDt5=PQZ5234?76a*ge${wWX|Xw?G;Cn++4%dM>AIa%xHL4mW_~M!8bRW{l>(( zIET^7kIBz2@yAScS)iHuH53MLC^L!}h`2 zPWc2z)m+pGM?ki-kyd|_Z9MCKH1S*H4wAL&F7qG<8S@# ztFPYm3q$^HTd%&MxWjjz6Xa=~`0w2EieX$$`j=X@ioN5uUSs8S-2Ov(z@Sx3d;C2| znyWpSI}ZGAjTcJ~zZzg`7qj_0h93-Tjvt$b-Er{_Xje>e{c_`uYn;BEJ@1_ZOk1(^ zcg*&If0px^znabQtZ%N(uRi<_X>8oKcb@vUKK6&S%W3Y8>AUS5vUQ8~G5oJ@{@3BR zT!EMGB;Qi-SCRI`7hin#=l|wk|L^(~`ge5V=5t9;a#-5C_a`VPuYFo2RvzSPoZQgU zhs$r)@%h29SdE>ed|woKNg<-kd0wXVU_lYn`Cy+To&tKB&zcHA`v$b38}Nb*}7--!FAfjoYL%^Couk&znH$dmQJm8IszVtj)NM{&mF zQCF-Vj`aXGQ*d3>bjD!yb6y1e+xo;kUnB<{eJ?K(*Bphh%J>*%2F>H*aW|lN*4sk3 zCz;O&jgxD5)*T-j4$d*~WRvYe+{aU^cvNJHCs3`6iM$_ARZp2nUK*Mfo(Bp%KT(5JAbo?9Jds zhdRx`C$E9Q;l>wyV|)owJ#kcvza>EBlmI6~&p!#A1!X+~S`$2!co?u|!*q=3)Pj5` zAz#mH1HgD;GU_pHj5#?^rO}x@_8aH~#-%FqLTFyRLPL0=xrC7>#kn_HC&bof9%%XtsjWp+^>r}{59~a;j8eVGVCHtWc z>3eyFN+I6Y{1Ghn(waJ?+d3TcJZHMQ?iRJ{vF>1-%XI>p zOiYTl#+-8xITdbw#hyChRl~vTeBPp?>!@1bj<#&BbL+|m(=qm2#q!yxQFBah?Ul>x zxL)#|Z*moe@1bS_!lb)$A3i67qk8N_89ElxAkg2 z(=6{vp@T@-`3mC_v__E_Y287@g383pitVxGKiBC zJ)698?F$AyUkF@F+@wOZeK@9>s7nQj-b}cuMUwz*KE$)dPZ%A;0Glvfu3sUpMr~wB zLoqr04zC>i1aomX**qu3l#G!&eF*DE#T+0eqio}Mr*-uk*)@meNCn}PX~Bne#>2u$ zOq(TH^X9^*ceK^qQ(x#S5WF!(;T} zu`|AUa0zIKp$!OY=7&y48ezg^TLgSwcJd7U=_ z*~I*!2+pn?ldj9IlYBJ)W|XXu-5Q~iR%3ZFk~imjv=5qEsMnj$DalbI%{?|X+S3@v zK90V$xD5MH){6`h)`5S`Yh>gCaJ8Yz!EsD=?D6KdS&fyT`_G<(=t7F7qd<4-~J z0@rF?lS##BbtM4Ybzvar0#}j59fM4Rm)=8m&N&%sk9IK}F}OqaIm9imTAW+g8FaBo zp7Tz^2B&V4PDX*9G;#8tMW{{?Jy)laE9ezKhI`CaBLI|}sZ&d>3J7aWfNCeN{Jx#X z9h~f|UIxjt`G(JY8^<@Zvp#t4E!?mDaE}gaxAkQE#hc!#vL<|y(ncIkam`oXo=bhk zQ~<5XNq%qWb(@-+|M=kymlzc_X6eyv⪙K=H2-=<{tlO+32o%6C)q^=41^S_k{_& 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 z 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�DTUCHl~}>rr;=2hT!~{$ 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�m)|URt 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', 'Remote server URL (front). E.g. https://huly.app') + +let opts: OptionValues | null = null + +export function getOptions (): OptionValues { + if (opts === null) { + program.parse(process.argv.slice(1), { from: 'user' }) + + opts = program.opts() + } + + return opts +} diff --git a/desktop/src/main/menu.ts b/desktop/src/main/menu.ts new file mode 100644 index 0000000000..ca7dbddbb8 --- /dev/null +++ b/desktop/src/main/menu.ts @@ -0,0 +1,46 @@ +// +// Copyright © 2024 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { Menu, MenuItemConstructorOptions } from 'electron' + +const isMac = process.platform === 'darwin' + +export const addMenus = (sendCommand: (cmd: string, ...args: any[]) => void): void => { + const template: MenuItemConstructorOptions[] = [ + { + label: 'File', + submenu: [ + { + label: 'Settings', + accelerator: 'Meta+,', + click: () => sendCommand('open-settings') + }, + { + label: 'Logout', + click: () => sendCommand('logout') + }, + { role: isMac ? 'close' : 'quit' } + ] + }, + { role: 'editMenu' }, + { role: 'viewMenu' }, + { role: 'windowMenu' } + ] + if (isMac) { + template.unshift({ role: 'appMenu' }) + } + const menu = Menu.buildFromTemplate(template) + Menu.setApplicationMenu(menu) +} diff --git a/desktop/src/main/permissions.ts b/desktop/src/main/permissions.ts new file mode 100644 index 0000000000..8c74b75ba2 --- /dev/null +++ b/desktop/src/main/permissions.ts @@ -0,0 +1,84 @@ +// +// Copyright © 2024 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { Session, systemPreferences } from 'electron' +import log from 'electron-log' + +export function addPermissionHandlers (session: Session): void { + session.setPermissionRequestHandler((webContents, permission, result, details) => { + log.info('permissions requested: ', permission, details) + + if (process.platform !== 'darwin') { + result(true) + return + } + + if (permission !== 'media') { + result(true) + return + } + + const audioGranted = (details as any).mediaTypes?.includes('audio') === true ? askForMediaAccess('microphone') : Promise.resolve(true) + const videoGranted = (details as any).mediaTypes?.includes('video') === true ? askForMediaAccess('camera') : Promise.resolve(true) + + Promise.all([audioGranted, videoGranted]).then( + (res) => { result(res.every(r => r)) }, + () => { result(false) } + ) + }) + + session.setPermissionCheckHandler((webContents, permission, requestingOrigin, details) => { + if (process.platform !== 'darwin') { + return true + } + + if (permission !== 'media') { + return true + } + + if (details.mediaType === 'audio') { + return systemPreferences.getMediaAccessStatus('microphone') === 'granted' + } + + if (details.mediaType === 'video') { + return systemPreferences.getMediaAccessStatus('camera') === 'granted' + } + + return false + }) +} + +async function askForMediaAccess (type: 'microphone' | 'camera'): Promise { + try { + if (process.platform !== 'darwin') { + return true + } + + const status = systemPreferences.getMediaAccessStatus(type) + log.info(`Current ${type} access status:`, status) + + if (status === 'not-determined') { + const success = await systemPreferences.askForMediaAccess(type) + log.info(`Result of ${type} access:`, success ? 'granted' : 'denied') + return success + } + + return status === 'granted' + } catch (error) { + log.error(`Could not get ${type} permission:`, error.message) + } + + return false +} diff --git a/desktop/src/main/start.ts b/desktop/src/main/start.ts new file mode 100644 index 0000000000..55d410dade --- /dev/null +++ b/desktop/src/main/start.ts @@ -0,0 +1,397 @@ +// +// Copyright © 2024 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { BrowserWindow, CookiesSetDetails, Notification, app, ipcMain, nativeImage, shell, dialog, systemPreferences, desktopCapturer } from 'electron' +import contextMenu from 'electron-context-menu' +import WinBadge from 'electron-windows-badge' +import Store from 'electron-store' +import * as path from 'path' +import { config as dotenvConfig } from 'dotenv' +import log from 'electron-log' +import { ProgressInfo, UpdateInfo } from 'electron-updater' + +import autoUpdater from './updater' +import { NotificationParams, Config } from '../ui/types' +import { addMenus } from './menu' +import { getOptions } from './args' +import { addPermissionHandlers } from './permissions' + +let mainWindow: BrowserWindow | undefined +let winBadge: any + +const isMac = process.platform === 'darwin' +const isWindows = process.platform === 'win32' +const isDev = process.env.NODE_ENV === 'development' + +const sessionPartition = !isDev ? 'persist:huly' : 'persist:huly_dev' +const iconKey = path.join(app.getAppPath(), 'dist', 'ui', 'public', 'AppIcon.png') + +const defaultWidth = 1440 +const defaultHeight = 960 + +const envPath = path.join(app.getAppPath(), isDev ? '.env-dev' : '.env') +console.log('do loading env from', envPath) +dotenvConfig({ + path: envPath +}) +const options = getOptions() + +// Note: using electron-store here as local storage is not available in the main process +// before the window is created +const settings = new Store() +const oldFront = readServerUrl() + +if (options.server !== undefined) { + ;(settings as any).set('server', options.server) +} + +const FRONT_URL = readServerUrl() +const serverChanged = oldFront !== FRONT_URL + +function readServerUrl (): string { + if (isDev) { + return process.env.FRONT_URL ?? 'http://localhost:8087' + } + + return ((settings as any).get('server', process.env.FRONT_URL) as string) ?? 'https://huly.app' +} + +// Handle creating/removing shortcuts on Windows when installing/uninstalling. +if (require('electron-squirrel-startup') === true) { + app.quit() +} + +console.log('Running Huly', process.env.MODEL_VERSION, isMac, isDev, process.env.NODE_ENV) + +function hookOpenWindow (window: BrowserWindow): void { + window.webContents.setWindowOpenHandler(({ url }) => { + console.log('opening window', url) + + /* + We need to detect if url is "our" or external. We should + open external urls in system browser + + When we open local URLs it would be as file:///workbench/my-spc/tracker/TSK-2 + As we load only our index.html there is no security problem to pass such URLs + to open arg as well + */ + if (url.indexOf(FRONT_URL) !== 0 && url.indexOf('file://') !== 0) { + void shell.openExternal(url) + } else { + void (async (): Promise => { + const bounds = mainWindow?.getBounds() + const childWindow = new BrowserWindow({ + width: bounds?.width ?? defaultWidth, + height: bounds?.height ?? defaultHeight, + x: (bounds?.x ?? 0) + 25, + y: (bounds?.y ?? 0) + 25, + titleBarStyle: isMac ? 'hidden' : 'default', + trafficLightPosition: { x: 10, y: 10 }, + icon: nativeImage.createFromPath(iconKey), + webPreferences: { + devTools: true, + sandbox: false, + partition: sessionPartition, + preload: path.join(app.getAppPath(), 'dist', 'main', 'preload.js'), + additionalArguments: [ + `--open=${encodeURI( + new URL(url).pathname + .split('/') + .filter((it) => it.length > 0) + .join('/') + )}` + ] + } + }) + // await childWindow.webContents.openDevTools() + await childWindow.loadFile(path.join('dist', 'ui', 'index.html')) + hookOpenWindow(childWindow) + })() + } + return { action: 'deny' } + }) +} + +const createWindow = async (): Promise => { + mainWindow = new BrowserWindow({ + width: defaultWidth, + height: defaultHeight, + titleBarStyle: isMac ? 'hidden' : 'default', + trafficLightPosition: { x: 10, y: 10 }, + icon: nativeImage.createFromPath(iconKey), + webPreferences: { + devTools: true, + sandbox: false, + backgroundThrottling: false, + partition: sessionPartition, + preload: path.join(app.getAppPath(), 'dist', 'main', 'preload.js') + } + }) + app.dock?.setIcon(nativeImage.createFromPath(iconKey)) + // await mainWindow.webContents.openDevTools() + if (isDev) { + mainWindow.webContents.openDevTools() + } + await mainWindow.loadFile(path.join('dist', 'ui', 'index.html')) + addPermissionHandlers(mainWindow.webContents.session) + + // In this example, only windows with the `about:blank` url will be created. + // All other urls will be blocked. + hookOpenWindow(mainWindow) + + if (isMac) { + mainWindow.on('close', (event) => { + // Prevent the default behavior (which would quit the app) + event.preventDefault() + // Hide the window + mainWindow?.hide() + }) + } else if (isWindows) { + winBadge = new WinBadge(mainWindow, { + font: '14px arial' + }) + } +} + +addMenus((cmd: string, ...args: any[]) => { + mainWindow?.webContents.send(cmd, args) +}) + +contextMenu({ + showSaveImageAs: false, + showInspectElement: false, + showSelectAll: false +}) + +ipcMain.on('set-badge', (event, badge: number) => { + app.dock?.setBadge(badge > 0 ? `${badge}` : '') + app.badgeCount = badge + + if (isWindows && winBadge !== undefined) { + winBadge.update(badge) + } +}) + +ipcMain.on('dock-bounce', (event) => { + app.dock?.bounce('informational') +}) + +ipcMain.on('send-notification', (event, notificationParams: NotificationParams) => { + if (Notification.isSupported()) { + const notification = new Notification(notificationParams) + + notification.on('click', () => { + mainWindow?.show() + mainWindow?.webContents.send('handle-notification-navigation') + }) + + notification.show() + } +}) + +ipcMain.on('set-title', (event, title) => { + const webContents = event.sender + const win = BrowserWindow.fromWebContents(webContents) + win?.setTitle(title) +}) + +ipcMain.on('set-combined-config', (event, config: Config) => { + log.info('Config set: ', config) + + const updatesUrl = process.env.DESKTOP_UPDATES_URL ?? config.DESKTOP_UPDATES_URL ?? 'https://dist.huly.io' + const updatesChannel = process.env.DESKTOP_UPDATES_CHANNEL ?? config.DESKTOP_UPDATES_CHANNEL ?? 'huly' + + autoUpdater.setFeedURL({ + provider: 'generic', + url: updatesUrl, + channel: updatesChannel + }) + void autoUpdater.checkForUpdatesAndNotify() +}) + +ipcMain.handle('get-main-config', (event, path) => { + const cfg = { + CONFIG_URL: process.env.CONFIG_URL ?? '', + FRONT_URL, + INITIAL_URL: process.env.INITIAL_URL ?? '', + MODEL_VERSION: process.env.MODEL_VERSION ?? '' + } + return cfg +}) +ipcMain.handle('get-host', (event, path) => { + return new URL(FRONT_URL).host +}) + +ipcMain.on('set-front-cookie', function (event, host: string, name: string, value: string) { + const webContents = event.sender + const win = BrowserWindow.fromWebContents(webContents) + const cv: CookiesSetDetails = { + url: host, + name, + value, + path: '/', + secure: true, + sameSite: 'no_restriction', + httpOnly: true, + domain: process.env.FRONT_DOMAIN + } + void win?.webContents?.session.cookies.set(cv) +}) + +const DEEP_LINKS_PROTOCOL = 'huly' +/* + Copy-paste from official tutorial for deep links + https://www.electronjs.org/docs/latest/tutorial/launch-app-from-url-in-another-app +*/ +if (process.defaultApp) { + if (process.argv.length >= 2) { + app.setAsDefaultProtocolClient(DEEP_LINKS_PROTOCOL, process.execPath, [path.resolve(process.argv[1])]) + } +} else { + app.setAsDefaultProtocolClient(DEEP_LINKS_PROTOCOL) +} + +const gotTheLock = app.requestSingleInstanceLock() + +if (!gotTheLock) { + app.quit() +} + +let deepLink = '' +let haveDeepLinkHandler = false +function tryToOpenDeepLink (link?: string): void { + if (mainWindow == null || !haveDeepLinkHandler) { + if (link != null) { + deepLink = link + } + return + } + + const url = link ?? deepLink + const httpsUrl = url.replace(`${DEEP_LINKS_PROTOCOL}://`, 'https://') + mainWindow.webContents.send('handle-deep-link', httpsUrl) +} + +// Add windows / linux handler for second instance +// This is because Windows try to open second instance from the deep link +app.on('second-instance', (event, commandLine, workingDirectory) => { + if (mainWindow != null) { + if (mainWindow.isMinimized()) mainWindow.restore() + mainWindow.focus() + } + + const url = commandLine.pop() + console.log('Opening url', url) + + if (url != null) { + tryToOpenDeepLink(url) + } +}) + +ipcMain.on('on-deep-link-handler', () => { + haveDeepLinkHandler = true + tryToOpenDeepLink() +}) + +ipcMain.handle('get-screen-access', () => systemPreferences.getMediaAccessStatus('screen') === 'granted') +ipcMain.handle('get-screen-sources', () => { + return desktopCapturer.getSources({ types: ['window', 'screen'], fetchWindowIcons: true, thumbnailSize: { width: 225, height: 135 } }).then(async sources => { + return sources.map(source => { + return { + ...source, + appIconURL: source.appIcon?.toDataURL(), + thumbnailURL: source.thumbnail.toDataURL() + } + }) + }) +}) + +// MacOS implementation +// Handle the protocol. In this case, we choose to show an Error Box. +app.on('open-url', (event, url) => { + if (url == null) { + return + } + tryToOpenDeepLink(url) +}) + +async function onReady (): Promise { + await createWindow() + + const customProtocolArg = process.argv.find((arg) => arg.startsWith(`${DEEP_LINKS_PROTOCOL}://`)) ?? '' + tryToOpenDeepLink(customProtocolArg) + + if (serverChanged) { + mainWindow?.webContents.send('logout') + } +} + +app.on('ready', () => { + void onReady() +}) + +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit() + } +}) + +if (isMac) { + app.on('activate', () => { + if (mainWindow != null && (mainWindow.isMinimized() || !mainWindow.isVisible())) { + mainWindow.show() + } + }) + + app.on('before-quit', () => { + // Note: in case the app is exited by auto-updater all windows will be destroyed at this point + if (mainWindow === undefined || mainWindow.isDestroyed()) return + + mainWindow?.removeAllListeners('close') + mainWindow?.close() + }) +} + +autoUpdater.on('update-available', (info: UpdateInfo) => { + void dialog + .showMessageBox({ + type: 'info', + buttons: ['Update & Restart', 'Quit'], + defaultId: 0, + message: `A new version ${info.version} is available and it is required to continue. It will be downloaded and installed automatically.` + }) + .then(({ response }) => { + log.info(`Update dialog exit code: ${response}`) // eslint-disable-line no-console + + if (response !== 0) { + app.quit() + } + }) +}) + +autoUpdater.on('download-progress', (progressObj: ProgressInfo) => { + if (mainWindow === undefined) return + + mainWindow.setProgressBar(progressObj.percent / 100) + mainWindow.webContents.send('handle-update-download-progress', progressObj.percent) +}) + +autoUpdater.on('update-downloaded', (info) => { + // We have listeners that prevents the app from being exited on mac + app.removeAllListeners('window-all-closed') + mainWindow?.removeAllListeners('close') + + autoUpdater.quitAndInstall() +}) diff --git a/desktop/src/main/updater.ts b/desktop/src/main/updater.ts new file mode 100644 index 0000000000..dccae169b2 --- /dev/null +++ b/desktop/src/main/updater.ts @@ -0,0 +1,42 @@ +// +// Copyright © 2024 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import log from 'electron-log' +import { autoUpdater } from 'electron-updater' + +autoUpdater.logger = log + +autoUpdater.on('update-available', (info) => { + log.info('Update available. ', info) +}) +autoUpdater.on('update-not-available', (info) => { + log.info('Update not available.') +}) +autoUpdater.on('error', (err) => { + log.info('Error in auto-updater. ' + err) +}) +autoUpdater.on('download-progress', (progressObj) => { + let msg = 'Download speed: ' + progressObj.bytesPerSecond + + msg = msg + ' - Downloaded ' + progressObj.percent + '%' + msg = msg + ' (' + progressObj.transferred + '/' + progressObj.total + ')' + log.info(msg) +}) + +autoUpdater.on('update-downloaded', (info) => { + log.info('Update downloaded') +}) + +export default autoUpdater diff --git a/desktop/src/ui/index.ejs b/desktop/src/ui/index.ejs new file mode 100644 index 0000000000..57a6957751 --- /dev/null +++ b/desktop/src/ui/index.ejs @@ -0,0 +1,14 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/desktop/src/ui/index.ts b/desktop/src/ui/index.ts new file mode 100644 index 0000000000..5d583d2135 --- /dev/null +++ b/desktop/src/ui/index.ts @@ -0,0 +1,77 @@ +import login, { loginId } from '@hcengineering/login' +import { setMetadata, getMetadata } from '@hcengineering/platform' +import presentation, { closeClient, setDownloadProgress } from '@hcengineering/presentation' +import { settingId } from '@hcengineering/setting' +import { + closePanel, + closePopup, + createApp, + fetchMetadataLocalStorage, + getCurrentLocation, + getCurrentResolvedLocation, + navigate, + parseLocation, + setMetadataLocalStorage +} from '@hcengineering/ui' + +import { workbenchId } from '@hcengineering/workbench' +import { notificationId } from '@hcengineering/notification' + +import { configurePlatform } from './platform' +import { IPCMainExposed } from './types' +import { defineScreenShare } from './screenShare' + +defineScreenShare() + +void configurePlatform().then(() => { + createApp(document.body) +}) + +window.addEventListener('DOMContentLoaded', () => { + const ipcMain = (window as any).electron as IPCMainExposed + + ipcMain.on('open-settings', () => { + closePopup() + closePanel() + const loc = getCurrentResolvedLocation() + loc.fragment = undefined + loc.query = undefined + loc.path[2] = settingId + loc.path.length = 3 + navigate(loc) + }) + + ipcMain.on('logout', () => { + const tokens = fetchMetadataLocalStorage(login.metadata.LoginTokens) + if (tokens !== null) { + const loc = getCurrentLocation() + loc.path.splice(1, 1) + setMetadataLocalStorage(login.metadata.LoginTokens, tokens) + } + setMetadata(presentation.metadata.Token, null) + setMetadataLocalStorage(login.metadata.LastToken, null) + setMetadataLocalStorage(login.metadata.LoginEndpoint, null) + setMetadataLocalStorage(login.metadata.LoginEmail, null) + void closeClient().then(() => { + navigate({ path: [loginId] }) + }) + }) + + ipcMain.handleDeepLink((urlString) => { + const urlObject = new URL(urlString) + navigate(parseLocation(urlObject)) + }) + + ipcMain.handleNotificationNavigation(() => { + // For now navigate only to Inbox + const frontUrl = getMetadata(presentation.metadata.FrontUrl) ?? window.location.origin + const location = getCurrentResolvedLocation() + const urlString = `${frontUrl}/${workbenchId}/${location.path[1]}/${notificationId}` + const urlObject = new URL(urlString) + navigate(parseLocation(urlObject)) + }) + + ipcMain.handleUpdateDownloadProgress((progress) => { + setDownloadProgress(progress) + }) +}) diff --git a/desktop/src/ui/notifications.ts b/desktop/src/ui/notifications.ts new file mode 100644 index 0000000000..7b37aa8e82 --- /dev/null +++ b/desktop/src/ui/notifications.ts @@ -0,0 +1,205 @@ +import contact, { PersonAccount, formatName } from '@hcengineering/contact' +import { Ref, TxOperations } from '@hcengineering/core' +import notification, { DocNotifyContext, CommonInboxNotification, ActivityInboxNotification, InboxNotification } from '@hcengineering/notification' +import { IntlString, addEventListener, translate } from '@hcengineering/platform' +import { getClient } from '@hcengineering/presentation' +import { location } from '@hcengineering/ui' +import workbench, { workbenchId } from '@hcengineering/workbench' +import desktopPreferences, { defaultNotificationPreference } from '@hcengineering/desktop-preferences' +import { activePreferences } from '@hcengineering/desktop-preferences-resources' +import { InboxNotificationsClientImpl, getDisplayInboxData } from '@hcengineering/notification-resources' + +import { IPCMainExposed } from './types' + +let client: TxOperations + +async function hydrateNotificationAsYouCan (lastNotification: InboxNotification): Promise<{ title: string, body: string } | undefined> { + // Let's try to do our best and figure out from who we have an notification + + if (client === undefined) { + return undefined + } + + if (lastNotification === undefined) { + return undefined + } + + let intlTitle: IntlString | undefined + let titleParams + + if (lastNotification._class === notification.class.CommonInboxNotification) { + intlTitle = (lastNotification as CommonInboxNotification).message + titleParams = (lastNotification as CommonInboxNotification).props + } else if (lastNotification._class === notification.class.ActivityInboxNotification) { + intlTitle = (lastNotification as ActivityInboxNotification).title + titleParams = (lastNotification as ActivityInboxNotification).intlParams + } + + if (intlTitle !== undefined && lastNotification.body !== undefined) { + const intlParams = lastNotification.intlParams ?? {} + + if (lastNotification.intlParamsNotLocalized !== undefined) { + for (const param in lastNotification.intlParamsNotLocalized) { + const value = lastNotification.intlParamsNotLocalized[param] + intlParams[param] = await translate(value, {}) + } + } + const title = await translate(intlTitle, titleParams ?? {}) + const body = await translate(lastNotification.body, lastNotification.intlParams ?? {}) + + // Do not show notification if there is no translate + if (title === intlTitle as string || body === lastNotification.body as string) { + return undefined + } + + return { title, body } + } + + const title = await translate(desktopPreferences.string.HaveGotANotification, {}) + + // Do not show notification if there is no translate + if (title === lastNotification.title as string) { + return undefined + } + + const noPersonData = { + title, + body: '' + } + + const account = await client.findOne(contact.class.PersonAccount, { _id: lastNotification.modifiedBy as Ref }) + + if (account == null) { + return noPersonData + } + + const person = await client.findOne(contact.class.Person, { _id: account.person }) + + if (person == null) { + return noPersonData + } + + return { + title, + body: formatName(person.name) + } +} + +function getLasUnViewedNotification ( + notifications: InboxNotification[], + notificationHistory: Map +): InboxNotification | undefined { + let lastNotification + let lastTime = 0 + + for (const n of notifications) { + if (notificationHistory.has(n._id as string)) { + continue + } + + const createdOn = n.createdOn ?? n.modifiedOn + + notificationHistory.set(n._id as string, createdOn) + + if (createdOn > lastTime) { + lastTime = createdOn + lastNotification = n + } + } + + return lastNotification +} + +/** + * @public + */ +export function configureNotifications (): void { + let preferences = defaultNotificationPreference + let prevUnViewdNotificationsCount = 0 + + // For now we want to track all notifications which happends after the launch + // because we generate them on a client + let initTimestamp = 0 + const notificationHistory = new Map() + + addEventListener(workbench.event.NotifyConnection, async (event, account: PersonAccount) => { + client = getClient() + const electronAPI: IPCMainExposed = (window as any).electron + + const inboxClient = InboxNotificationsClientImpl.getClient() + + async function handleNotifications (notificationsByContext: Map, InboxNotification[]>): Promise { + const inboxData = await getDisplayInboxData(notificationsByContext) + + if (notificationHistory.size === 0) { + for (const [, notifications] of inboxData) { + for (const n of notifications) { + notificationHistory.set(n._id as string, n.createdOn ?? n.modifiedOn) + } + } + } + + const unViewedNotifications: InboxNotification[] = Array.from(inboxData.values()).flat().filter(({ isViewed }) => !isViewed) + // const notificationsAfterLaunch = notifications.filter((p) => p.txes.some((p) => p.modifiedOn > initTimestamp)) + // We need to get the most recent notifications + + if (prevUnViewdNotificationsCount !== unViewedNotifications.length) { + if (preferences.showUnreadCounter) { + electronAPI.setBadge(unViewedNotifications.length) + } + if (preferences.bounceAppIcon) { + electronAPI.dockBounce() + } + prevUnViewdNotificationsCount = unViewedNotifications.length + } + + const notification = getLasUnViewedNotification(unViewedNotifications, notificationHistory) + + if (preferences.showNotifications && initTimestamp > 0 && notification !== undefined) { + // const notification = notificationsAfterLaunch[notificationsAfterLaunch.length - 1] + const notificationData = await hydrateNotificationAsYouCan(notification) + if (notificationData !== undefined) { + if (notificationData.body === '') { + notificationData.body = await translate(desktopPreferences.string.TotalNotificationsCount, { + count: prevUnViewdNotificationsCount + }) + } + + electronAPI.sendNotification({ + silent: !preferences.playSound, + ...notificationData + }) + } + } + + if (initTimestamp === 0) { + initTimestamp = Date.now() + } + } + + inboxClient.inboxNotificationsByContext.subscribe(data => { + void handleNotifications(data) + }) + + activePreferences.subscribe((newPreferences) => { + if (preferences.showUnreadCounter && !newPreferences.showUnreadCounter) { + electronAPI.setBadge(0) + } + if (!preferences.showUnreadCounter && newPreferences.showUnreadCounter) { + electronAPI.setBadge(prevUnViewdNotificationsCount) + } + preferences = newPreferences + }) + }) + + addEventListener(workbench.event.NotifyTitle, async (event, title: string) => { + ;((window as any).electron as IPCMainExposed).setTitle(title) + }) + + location.subscribe((location) => { + if (!(location.path[0] === workbenchId || location.path[0] === workbench.component.WorkbenchApp)) { + // We need to clear badge + ;((window as any).electron as IPCMainExposed).setBadge(0) + } + }) +} diff --git a/desktop/src/ui/platform.ts b/desktop/src/ui/platform.ts new file mode 100644 index 0000000000..6b3085f3d9 --- /dev/null +++ b/desktop/src/ui/platform.ts @@ -0,0 +1,340 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// + +import { + Plugin, + addEventListener, + addLocation, + addStringsLoader, + getMetadata, + platformId, + setMetadata +} from '@hcengineering/platform' + +import { activityId } from '@hcengineering/activity' +import { attachmentId } from '@hcengineering/attachment' +import { boardId } from '@hcengineering/board' +import calendar, { calendarId } from '@hcengineering/calendar' +import { chunterId } from '@hcengineering/chunter' +import client, { clientId } from '@hcengineering/client' +import contactPlugin, { contactId } from '@hcengineering/contact' +import { documentId } from '@hcengineering/document' +import { driveId } from '@hcengineering/drive' +import gmail, { gmailId } from '@hcengineering/gmail' +import { hrId } from '@hcengineering/hr' +import { imageCropperId } from '@hcengineering/image-cropper' +import { inventoryId } from '@hcengineering/inventory' +import { leadId } from '@hcengineering/lead' +import login, { loginId } from '@hcengineering/login' +import notification, { notificationId } from '@hcengineering/notification' +import { recruitId } from '@hcengineering/recruit' +import rekoni from '@hcengineering/rekoni' +import { requestId } from '@hcengineering/request' +import { settingId } from '@hcengineering/setting' +import { supportId } from '@hcengineering/support' +import { tagsId } from '@hcengineering/tags' +import { taskId } from '@hcengineering/task' +import telegram, { telegramId } from '@hcengineering/telegram' +import { templatesId } from '@hcengineering/templates' +import tracker, { trackerId } from '@hcengineering/tracker' +import uiPlugin, { getCurrentLocation, locationStorageKeyId, navigate, setLocationStorageKey } from '@hcengineering/ui' +import { uploaderId } from '@hcengineering/uploader' +import { viewId } from '@hcengineering/view' +import workbench, { workbenchId } from '@hcengineering/workbench' +import { diffviewId } from '@hcengineering/diffview' +import { timeId } from '@hcengineering/time' +import { desktopPreferencesId } from '@hcengineering/desktop-preferences' +import guest, { guestId } from '@hcengineering/guest' +import { bitrixId } from '@hcengineering/bitrix' +import { productsId } from '@hcengineering/products' +import { questionsId } from '@hcengineering/questions' +import { trainingId } from '@hcengineering/training' +import { documentsId } from '@hcengineering/controlled-documents' + +import '@hcengineering/activity-assets' +import '@hcengineering/attachment-assets' +import '@hcengineering/bitrix-assets' +import '@hcengineering/board-assets' +import '@hcengineering/calendar-assets' +import '@hcengineering/chunter-assets' +import '@hcengineering/contact-assets' +import '@hcengineering/document-assets' +import '@hcengineering/drive-assets' +import '@hcengineering/gmail-assets' +import '@hcengineering/hr-assets' +import '@hcengineering/inventory-assets' +import '@hcengineering/lead-assets' +import '@hcengineering/login-assets' +import '@hcengineering/notification-assets' +import '@hcengineering/preference-assets' +import '@hcengineering/recruit-assets' +import '@hcengineering/request-assets' +import '@hcengineering/setting-assets' +import '@hcengineering/support-assets' +import '@hcengineering/tags-assets' +import '@hcengineering/task-assets' +import '@hcengineering/telegram-assets' +import '@hcengineering/templates-assets' +import '@hcengineering/tracker-assets' +import '@hcengineering/view-assets' +import '@hcengineering/workbench-assets' +import '@hcengineering/guest-assets' +import '@hcengineering/uploader-assets' +import '@hcengineering/diffview-assets' +import '@hcengineering/time-assets' +import '@hcengineering/desktop-preferences-assets' +import '@hcengineering/love-assets' +import '@hcengineering/print-assets' +import '@hcengineering/questions-assets' +import '@hcengineering/training-assets' +import '@hcengineering/products-assets' +import '@hcengineering/controlled-documents-assets' +import '@hcengineering/analytics-collector-assets' + +import { coreId } from '@hcengineering/core' +import presentation, { parsePreviewConfig, presentationId } from '@hcengineering/presentation' +import textEditor, { textEditorId } from '@hcengineering/text-editor' +import love, { loveId } from '@hcengineering/love' +import print, { printId } from '@hcengineering/print' +import sign from '@hcengineering/sign' +import analyticsCollector, { analyticsCollectorId } from '@hcengineering/analytics-collector' + +import { setDefaultLanguage } from '@hcengineering/theme' +import { configureNotifications } from './notifications' +import { Config, IPCMainExposed, Branding } from './types' + +import '@hcengineering/github-assets' +import github, { githubId } from '@hcengineering/github' +import { uiId } from '@hcengineering/ui/src/plugin' +import { preferenceId } from '@hcengineering/preference' + +function configureI18n (): void { + // Add localization + addStringsLoader(platformId, async (lang: string) => await import(`@hcengineering/platform/lang/${lang}.json`)) + addStringsLoader(coreId, async (lang: string) => await import(`@hcengineering/core/lang/${lang}.json`)) + addStringsLoader( + presentationId, + async (lang: string) => await import(`@hcengineering/presentation/lang/${lang}.json`) + ) + addStringsLoader(textEditorId, async (lang: string) => await import(`@hcengineering/text-editor-assets/lang/${lang}.json`)) + addStringsLoader(uiId, async (lang: string) => await import(`@hcengineering/ui/lang/${lang}.json`)) + addStringsLoader(uploaderId, async (lang: string) => await import(`@hcengineering/uploader-assets/lang/${lang}.json`)) + addStringsLoader(activityId, async (lang: string) => await import(`@hcengineering/activity-assets/lang/${lang}.json`)) + addStringsLoader( + attachmentId, + async (lang: string) => await import(`@hcengineering/attachment-assets/lang/${lang}.json`) + ) + addStringsLoader(bitrixId, async (lang: string) => await import(`@hcengineering/bitrix-assets/lang/${lang}.json`)) + addStringsLoader(boardId, async (lang: string) => await import(`@hcengineering/board-assets/lang/${lang}.json`)) + addStringsLoader(calendarId, async (lang: string) => await import(`@hcengineering/calendar-assets/lang/${lang}.json`)) + addStringsLoader(chunterId, async (lang: string) => await import(`@hcengineering/chunter-assets/lang/${lang}.json`)) + addStringsLoader(contactId, async (lang: string) => await import(`@hcengineering/contact-assets/lang/${lang}.json`)) + addStringsLoader(driveId, async (lang: string) => await import(`@hcengineering/drive-assets/lang/${lang}.json`)) + addStringsLoader(gmailId, async (lang: string) => await import(`@hcengineering/gmail-assets/lang/${lang}.json`)) + addStringsLoader(hrId, async (lang: string) => await import(`@hcengineering/hr-assets/lang/${lang}.json`)) + addStringsLoader( + inventoryId, + async (lang: string) => await import(`@hcengineering/inventory-assets/lang/${lang}.json`) + ) + addStringsLoader(leadId, async (lang: string) => await import(`@hcengineering/lead-assets/lang/${lang}.json`)) + addStringsLoader(loginId, async (lang: string) => await import(`@hcengineering/login-assets/lang/${lang}.json`)) + addStringsLoader( + notificationId, + async (lang: string) => await import(`@hcengineering/notification-assets/lang/${lang}.json`) + ) + addStringsLoader( + preferenceId, + async (lang: string) => await import(`@hcengineering/preference-assets/lang/${lang}.json`) + ) + addStringsLoader(recruitId, async (lang: string) => await import(`@hcengineering/recruit-assets/lang/${lang}.json`)) + addStringsLoader(requestId, async (lang: string) => await import(`@hcengineering/request-assets/lang/${lang}.json`)) + addStringsLoader(settingId, async (lang: string) => await import(`@hcengineering/setting-assets/lang/${lang}.json`)) + addStringsLoader(supportId, async (lang: string) => await import(`@hcengineering/support-assets/lang/${lang}.json`)) + addStringsLoader(tagsId, async (lang: string) => await import(`@hcengineering/tags-assets/lang/${lang}.json`)) + addStringsLoader(taskId, async (lang: string) => await import(`@hcengineering/task-assets/lang/${lang}.json`)) + addStringsLoader(telegramId, async (lang: string) => await import(`@hcengineering/telegram-assets/lang/${lang}.json`)) + addStringsLoader( + templatesId, + async (lang: string) => await import(`@hcengineering/templates-assets/lang/${lang}.json`) + ) + addStringsLoader(trackerId, async (lang: string) => await import(`@hcengineering/tracker-assets/lang/${lang}.json`)) + addStringsLoader(viewId, async (lang: string) => await import(`@hcengineering/view-assets/lang/${lang}.json`)) + addStringsLoader( + workbenchId, + async (lang: string) => await import(`@hcengineering/workbench-assets/lang/${lang}.json`) + ) + + addStringsLoader( + desktopPreferencesId, + async (lang: string) => await import(`@hcengineering/desktop-preferences-assets/lang/${lang}.json`) + ) + addStringsLoader(diffviewId, async (lang: string) => await import(`@hcengineering/diffview-assets/lang/${lang}.json`)) + addStringsLoader(documentId, async (lang: string) => await import(`@hcengineering/document-assets/lang/${lang}.json`)) + addStringsLoader(timeId, async (lang: string) => await import(`@hcengineering/time-assets/lang/${lang}.json`)) + addStringsLoader(githubId, async (lang: string) => await import(`@hcengineering/github-assets/lang/${lang}.json`)) + addStringsLoader(documentsId, async (lang: string) => await import(`@hcengineering/controlled-documents-assets/lang/${lang}.json`)) + addStringsLoader(productsId, async (lang: string) => await import(`@hcengineering/products-assets/lang/${lang}.json`)) + addStringsLoader(questionsId, async (lang: string) => await import(`@hcengineering/questions-assets/lang/${lang}.json`)) + addStringsLoader(trainingId, async (lang: string) => await import(`@hcengineering/training-assets/lang/${lang}.json`)) + addStringsLoader(guestId, async (lang: string) => await import(`@hcengineering/guest-assets/lang/${lang}.json`)) + addStringsLoader(loveId, async (lang: string) => await import(`@hcengineering/love-assets/lang/${lang}.json`)) + addStringsLoader(printId, async (lang: string) => await import(`@hcengineering/print-assets/lang/${lang}.json`)) + addStringsLoader(analyticsCollectorId, async (lang: string) => await import(`@hcengineering/analytics-collector-assets/lang/${lang}.json`)) +} + +export async function configurePlatform (): Promise { + configureI18n() + + const ipcMain = (window as any).electron as IPCMainExposed + const config: Config = await ipcMain.config() + const myBranding: Branding = await ipcMain.branding() + // await (await fetch(devConfig? '/config-dev.json' : '/config.json')).json() + console.log('loading configuration', config) + console.log('loaded branding', myBranding) + + const title = myBranding.title ?? 'Huly Desktop' + ipcMain.setTitle(title) + + setMetadata(login.metadata.AccountsUrl, config.ACCOUNTS_URL) + setMetadata(presentation.metadata.UploadURL, config.UPLOAD_URL) + setMetadata(presentation.metadata.CollaboratorUrl, config.COLLABORATOR_URL) + setMetadata(presentation.metadata.CollaboratorApiUrl, config.COLLABORATOR_API_URL) + setMetadata(presentation.metadata.PreviewConfig, parsePreviewConfig(config.PREVIEW_CONFIG)) + setMetadata(presentation.metadata.FrontUrl, config.FRONT_URL) + + setMetadata(textEditor.metadata.CollaboratorUrl, config.COLLABORATOR_URL) + + setMetadata(github.metadata.GithubApplication, config.GITHUB_APP ?? '') + setMetadata(github.metadata.GithubClientID, config.GITHUB_CLIENTID ?? '') + setMetadata(github.metadata.GithubURL, config.GITHUB_URL ?? '') + + if (config.MODEL_VERSION != null) { + console.log('Minimal Model version requirement', config.MODEL_VERSION) + setMetadata(presentation.metadata.RequiredVersion, config.MODEL_VERSION) + } + setMetadata(telegram.metadata.TelegramURL, config.TELEGRAM_URL ?? 'http://localhost:8086') + setMetadata(gmail.metadata.GmailURL, config.GMAIL_URL ?? 'http://localhost:8087') + setMetadata(calendar.metadata.CalendarServiceURL, config.CALENDAR_URL ?? 'http://localhost:8095') + setMetadata(notification.metadata.PushPublicKey, config.PUSH_PUBLIC_KEY) + + setMetadata(rekoni.metadata.RekoniUrl, config.REKONI_URL) + setMetadata(contactPlugin.metadata.LastNameFirst, myBranding.lastNameFirst === 'true' ?? false) + setMetadata(love.metadata.ServiceEnpdoint, config.LOVE_ENDPOINT) + setMetadata(love.metadata.WebSocketURL, config.LIVEKIT_WS) + setMetadata(print.metadata.PrintURL, config.PRINT_URL) + setMetadata(sign.metadata.SignURL, config.SIGN_URL) + setMetadata(uiPlugin.metadata.DefaultApplication, login.component.LoginApp) + setMetadata(analyticsCollector.metadata.EndpointURL, config.ANALYTICS_COLLECTOR_URL) + + const languages = myBranding.languages !== undefined && myBranding.languages !== '' ? myBranding.languages.split(',').map((l) => l.trim()) : ['en', 'ru', 'es', 'pt'] + + setMetadata(uiPlugin.metadata.Languages, languages) + + setMetadata( + uiPlugin.metadata.Routes, + new Map([ + [workbenchId, workbench.component.WorkbenchApp], + [loginId, login.component.LoginApp], + [calendarId, calendar.component.ConnectApp], + [guestId, guest.component.GuestApp] + ]) + ) + + addLocation(coreId, async () => ({ default: async () => ({}) })) + addLocation(presentationId, async () => ({ default: async () => ({}) })) + + addLocation(clientId, async () => await import('@hcengineering/client-resources')) + addLocation(loginId, async () => await import('@hcengineering/login-resources')) + addLocation(workbenchId, async () => await import('@hcengineering/workbench-resources')) + addLocation(viewId, async () => await import('@hcengineering/view-resources')) + addLocation(taskId, async () => await import('@hcengineering/task-resources')) + addLocation(contactId, async () => await import('@hcengineering/contact-resources')) + addLocation(chunterId, async () => await import('@hcengineering/chunter-resources')) + addLocation(recruitId, async () => await import('@hcengineering/recruit-resources')) + addLocation(activityId, async () => await import('@hcengineering/activity-resources')) + addLocation(settingId, async () => await import('@hcengineering/setting-resources')) + addLocation(leadId, async () => await import('@hcengineering/lead-resources')) + addLocation(telegramId, async () => await import('@hcengineering/telegram-resources')) + addLocation(attachmentId, async () => await import('@hcengineering/attachment-resources')) + addLocation(gmailId, async () => await import('@hcengineering/gmail-resources')) + addLocation(imageCropperId, async () => await import('@hcengineering/image-cropper-resources')) + addLocation(inventoryId, async () => await import('@hcengineering/inventory-resources')) + addLocation(templatesId, async () => await import('@hcengineering/templates-resources')) + addLocation(notificationId, async () => await import('@hcengineering/notification-resources')) + addLocation(tagsId, async () => await import('@hcengineering/tags-resources')) + addLocation(calendarId, async () => await import('@hcengineering/calendar-resources')) + + addLocation(trackerId, async () => await import('@hcengineering/tracker-resources')) + addLocation(boardId, async () => await import('@hcengineering/board-resources')) + addLocation(hrId, async () => await import('@hcengineering/hr-resources')) + addLocation(bitrixId, async () => await import('@hcengineering/bitrix-resources')) + addLocation(requestId, async () => await import('@hcengineering/request-resources')) + addLocation(driveId, async () => await import('@hcengineering/drive-resources')) + addLocation(supportId, async () => await import('@hcengineering/support-resources')) + addLocation(diffviewId, async () => await import('@hcengineering/diffview-resources')) + addLocation(documentId, async () => await import('@hcengineering/document-resources')) + addLocation(timeId, async () => await import('@hcengineering/time-resources')) + addLocation(questionsId, async () => await import('@hcengineering/questions-resources')) + addLocation(trainingId, async () => await import('@hcengineering/training-resources')) + addLocation(productsId, async () => await import('@hcengineering/products-resources')) + addLocation(documentsId, async () => await import('@hcengineering/controlled-documents-resources')) + addLocation(uploaderId, async () => await import('@hcengineering/uploader-resources')) + addLocation(githubId, async () => await import(/* webpackChunkName: "github" */ '@hcengineering/github-resources')) + addLocation( + desktopPreferencesId, + async () => await import(/* webpackChunkName: "desktop-preferences" */ '@hcengineering/desktop-preferences-resources') + ) + addLocation(guestId, () => import(/* webpackChunkName: "guest" */ '@hcengineering/guest-resources')) + addLocation(loveId, () => import(/* webpackChunkName: "love" */ '@hcengineering/love-resources')) + addLocation(printId, () => import(/* webpackChunkName: "print" */ '@hcengineering/print-resources')) + addLocation(textEditorId, () => import(/* webpackChunkName: "text-editor" */ '@hcengineering/text-editor-resources')) + + setMetadata(client.metadata.FilterModel, true) + setMetadata(client.metadata.ExtraPlugins, ['preference' as Plugin]) + + // Use binary response transfer for faster performance and small transfer sizes. + setMetadata(client.metadata.UseBinaryProtocol, true) + // Disable for now, since it causes performance issues on linux/docker/kubernetes boxes for now. + setMetadata(client.metadata.UseProtocolCompression, true) + + setMetadata(uiPlugin.metadata.PlatformTitle, title) + setMetadata(workbench.metadata.PlatformTitle, title) + setDefaultLanguage(myBranding.defaultLanguage ?? 'en') + setMetadata(workbench.metadata.DefaultApplication, myBranding.defaultApplication ?? 'tracker') + setMetadata(workbench.metadata.DefaultSpace, myBranding.defaultSpace ?? tracker.project.DefaultProject) + setMetadata(workbench.metadata.DefaultSpecial, myBranding.defaultSpecial ?? 'issues') + + addEventListener(workbench.event.NotifyConnection, async (evt) => { + await ipcMain.setFrontCookie( + config.FRONT_URL, + presentation.metadata.Token.replaceAll(':', '-'), + getMetadata(presentation.metadata.Token) ?? '' + ) + }) + + configureNotifications() + + if (config.INITIAL_URL !== '') { + setLocationStorageKey('uberflow_child') + } + + const last = localStorage.getItem(locationStorageKeyId) + if (config.INITIAL_URL !== '') { + console.log('NAVIGATE', config.INITIAL_URL, getCurrentLocation()) + // NavigationExpandedDefault=false fills buggy: + // — Navigator closes in unpredictable way + // — Many sections of the have have no default central content so without + // navigator is looks like something is broken + // Should consifer if we want to fix this + // setMetadata(workbench.metadata.NavigationExpandedDefault, false) + navigate({ + path: config.INITIAL_URL.split('/') + }) + } else if (last !== null) { + navigate(JSON.parse(last)) + } else { + navigate({ path: [] }) + } + console.log('Initial location is: ', getCurrentLocation()) +} diff --git a/desktop/src/ui/preload.ts b/desktop/src/ui/preload.ts new file mode 100644 index 0000000000..357cf71dec --- /dev/null +++ b/desktop/src/ui/preload.ts @@ -0,0 +1,113 @@ +// preload.js + +import { BrandingMap, Config, IPCMainExposed, NotificationParams } from './types' + +import { contextBridge, ipcRenderer } from 'electron' + +/** + * @public + */ +export function concatLink (host: string, path: string): string { + if (!host.endsWith('/') && !path.startsWith('/')) { + return `${host}/${path}` + } else if (host.endsWith('/') && path.startsWith('/')) { + const newPath = path.slice(1) + return `${host}${newPath}` + } else { + return `${host}${path}` + } +} + +const openArg = (process.argv.find((it) => it.startsWith('--open=')) ?? '').split('--open=')[1] +console.log('Open passed', openArg) +let configPromise: Promise | undefined + +const expose: IPCMainExposed = { + setBadge: (badge: number) => { + ipcRenderer.send('set-badge', badge) + }, + setTitle: (title: string) => { + ipcRenderer.send('set-title', title) + }, + dockBounce: () => { + ipcRenderer.send('dock-bounce') + }, + sendNotification: (notificationParams: NotificationParams) => { + ipcRenderer.send('send-notification', notificationParams) + }, + + config: async () => { + if (configPromise === undefined) { + configPromise = new Promise((resolve, reject) => { + ipcRenderer.invoke('get-main-config').then( + async (mainConfig) => { + const serverConfig = await (await fetch(concatLink(mainConfig.FRONT_URL, mainConfig.CONFIG_URL))).json() + const combinedConfig = { + ...serverConfig, + ...mainConfig, + INITIAL_URL: openArg ?? '', + UPLOAD_URL: concatLink(mainConfig.FRONT_URL, serverConfig.UPLOAD_URL), + MODEL_VERSION: mainConfig.MODEL_VERSION + } + + ipcRenderer.send('set-combined-config', combinedConfig) + + resolve(combinedConfig) + }, + (err) => { + reject(err) + } + ) + }) + } + + return await configPromise + }, + branding: async () => { + const cfg = await expose.config() + const branding: BrandingMap = await ( + await fetch(cfg.BRANDING_URL ?? concatLink(cfg.FRONT_URL, 'branding.json')) + ).json() + const host = await ipcRenderer.invoke('get-host') + return branding[host] ?? {} + }, + on: (event: string, op: (...args: any[]) => void) => { + ipcRenderer.on(event, (channel: any, args: any[]) => { + console.log('on handle', args) + op(channel, args) + }) + }, + + handleDeepLink: (callback) => { + ipcRenderer.on('handle-deep-link', (event, value) => { + try { + if (typeof value === 'string' && value !== '') { + callback(value) + } + } catch (e) { + // Just do nothing. Nothing is ok if there is something with URL + } + }) + ipcRenderer.send('on-deep-link-handler') + }, + + handleNotificationNavigation: (callback) => { + ipcRenderer.on('handle-notification-navigation', (event) => { + callback() + }) + }, + + handleUpdateDownloadProgress: (callback) => { + ipcRenderer.on('handle-update-download-progress', (event, value) => { + callback(value) + }) + }, + + async setFrontCookie (host: string, name: string, value: string): Promise { + ipcRenderer.send('set-front-cookie', host, name, value) + }, + + getScreenAccess: () => ipcRenderer.invoke('get-screen-access'), + getScreenSources: () => ipcRenderer.invoke('get-screen-sources') +} +contextBridge.exposeInMainWorld('electron', expose) diff --git a/desktop/src/ui/screenShare.ts b/desktop/src/ui/screenShare.ts new file mode 100644 index 0000000000..c7f121b430 --- /dev/null +++ b/desktop/src/ui/screenShare.ts @@ -0,0 +1,126 @@ +import log from 'electron-log' +import love from '@hcengineering/love' +import { setCustomCreateScreenTracks } from '@hcengineering/love-resources' +import { showPopup } from '@hcengineering/ui' +import { Track, LocalTrack, LocalAudioTrack, LocalVideoTrack, ParticipantEvent, TrackInvalidError, ScreenShareCaptureOptions, DeviceUnsupportedError, ScreenSharePresets } from 'livekit-client' + +import { IPCMainExposed } from './types' + +export function defineScreenShare (): void { + setCustomCreateScreenTracks(async function electronCreateScreenTracks (options?: ScreenShareCaptureOptions) { + const ipcMain = (window as any).electron as IPCMainExposed + const sources = await ipcMain.getScreenSources() + + const hasAccess = await ipcMain.getScreenAccess() + if (!hasAccess) { + log.error('No screen access granted') + throw new Error('No screen access granted') + } + + if (navigator.mediaDevices.getDisplayMedia === undefined) { + throw new DeviceUnsupportedError('getDisplayMedia not supported') + } + + return await new Promise((resolve, reject) => { + let wasSelected = false + + showPopup( + love.component.SelectScreenSourcePopup, + { + sources + }, + 'top', + () => { + if (!wasSelected) { + reject(new Error('No source selected')) + } + }, + (val) => { + if (val != null) { + wasSelected = true + if (options === undefined) { + options = {} + } + + if (options.resolution === undefined) { + options.resolution = ScreenSharePresets.h1080fps30.resolution + } + + const constraints = screenCaptureToDisplayMediaStreamOptions(options) + + if (constraints.video === undefined) { + log.error('Wrong video options specified') + throw new Error('Wrong video options specified') + } + + constraints.video = { + mandatory: { + ...(typeof constraints.video === 'boolean' ? {} : constraints.video), + chromeMediaSource: 'desktop', + chromeMediaSourceId: val + } + } as any + + void window.navigator.mediaDevices.getUserMedia(constraints).then((stream) => { + const tracks = stream.getVideoTracks() + if (tracks.length === 0) { + log.error('No video track found') + throw new TrackInvalidError('No video track found') + } + const screenVideo = new LocalVideoTrack(tracks[0], undefined, false, { + loggerName: this.roomOptions.loggerName, + loggerContextCb: () => this.logContext + }) + screenVideo.source = Track.Source.ScreenShare + if (options?.contentHint !== undefined) { + screenVideo.mediaStreamTrack.contentHint = options.contentHint + } + + const localTracks: Array = [screenVideo] + if (stream.getAudioTracks().length > 0) { + this.emit(ParticipantEvent.AudioStreamAcquired) + const screenAudio = new LocalAudioTrack( + stream.getAudioTracks()[0], + undefined, + false, + this.audioContext, + { loggerName: this.roomOptions.loggerName, loggerContextCb: () => this.logContext } + ) + screenAudio.source = Track.Source.ScreenShareAudio + localTracks.push(screenAudio) + } + resolve(localTracks) + }) + } + } + ) + }) + }) +} + +function screenCaptureToDisplayMediaStreamOptions ( + options: ScreenShareCaptureOptions +): DisplayMediaStreamOptions { + let videoConstraints: MediaTrackConstraints | boolean = options.video ?? true + // treat 0 as uncapped + if (options.resolution !== undefined && options.resolution.width > 0 && options.resolution.height > 0) { + videoConstraints = typeof videoConstraints === 'boolean' ? {} : videoConstraints + videoConstraints = { + ...videoConstraints, + width: { ideal: options.resolution.width }, + height: { ideal: options.resolution.height }, + frameRate: options.resolution.frameRate + } + } + + return { + audio: options.audio ?? false, + video: videoConstraints, + // @ts-expect-error support for experimental display media features + controller: options.controller, + selfBrowserSurface: options.selfBrowserSurface, + surfaceSwitching: options.surfaceSwitching, + systemAudio: options.systemAudio, + preferCurrentTab: options.preferCurrentTab + } +} diff --git a/desktop/src/ui/types.ts b/desktop/src/ui/types.ts new file mode 100644 index 0000000000..d87eec0466 --- /dev/null +++ b/desktop/src/ui/types.ts @@ -0,0 +1,79 @@ +import { ScreenSource } from '@hcengineering/love' + +/** + * @public + */ +export interface Config { + ACCOUNTS_URL: string + COLLABORATOR_URL: string + COLLABORATOR_API_URL: string + FRONT_URL: string + UPLOAD_URL: string + MODEL_VERSION?: string + TELEGRAM_URL: string + GMAIL_URL: string + CALENDAR_URL: string + REKONI_URL: string + INITIAL_URL: string + GITHUB_APP: string + GITHUB_CLIENTID: string + GITHUB_URL: string + CONFIG_URL: string + LOVE_ENDPOINT?: string + LIVEKIT_WS?: string + SIGN_URL?: string + PRINT_URL?: string + PUSH_PUBLIC_KEY: string + ANALYTICS_COLLECTOR_URL?: string + BRANDING_URL?: string + PREVIEW_CONFIG: string + DESKTOP_UPDATES_URL?: string + DESKTOP_UPDATES_CHANNEL?: string +} + +export interface Branding { + title?: string + links?: { + rel: string + href: string + type?: string + sizes?: string + }[] + languages?: string + lastNameFirst?: string + defaultLanguage?: string + defaultApplication?: string + defaultSpace?: string + defaultSpecial?: string + initWorkspace?: string +} + +export type BrandingMap = Record + +/** + * @public + */ +export interface NotificationParams { + title: string + body: string + silent: boolean +} + +/** + * @public + */ +export interface IPCMainExposed { + setBadge: (badge: number) => void + setTitle: (title: string) => void + config: () => Promise + branding: () => Promise + on: (event: string, op: (channel: any, args: any[]) => void) => void + handleDeepLink: (callback: (url: string) => void) => void + handleNotificationNavigation: (callback: () => void) => void + handleUpdateDownloadProgress: (callback: (progress: number) => void) => void + setFrontCookie: (host: string, name: string, value: string) => Promise + dockBounce: () => void + sendNotification: (notififationParams: NotificationParams) => void + getScreenAccess: () => Promise + getScreenSources: () => Promise +} diff --git a/desktop/tests/fixtures/deep-link.html b/desktop/tests/fixtures/deep-link.html new file mode 100644 index 0000000000..c5a0f77a63 --- /dev/null +++ b/desktop/tests/fixtures/deep-link.html @@ -0,0 +1,58 @@ + + + +
+

Open static url in app

+
+ Open in the app + +
+
+

Open any url in app

+ + + + +
+ + \ No newline at end of file diff --git a/desktop/tsconfig.json b/desktop/tsconfig.json new file mode 100644 index 0000000000..ae348f3bc8 --- /dev/null +++ b/desktop/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "outDir": "dist", + "noImplicitAny": true, + "module": "esnext", + "target": "es2021", + "allowJs": true, + "declaration": true, + "strictNullChecks": true, + "sourceMap": true, + "skipLibCheck": true, + "moduleResolution": "node", + "allowSyntheticDefaultImports": true, + "lib": ["es2016", "dom", "ES2021.String", "ESNext.Array"] + } +} diff --git a/desktop/webpack.config.js b/desktop/webpack.config.js new file mode 100644 index 0000000000..0e33fac985 --- /dev/null +++ b/desktop/webpack.config.js @@ -0,0 +1,342 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// + +const Dotenv = require('dotenv-webpack') +const path = require('path') +const CompressionPlugin = require('compression-webpack-plugin') +const DefinePlugin = require('webpack').DefinePlugin +const HtmlWebpackPlugin = require('html-webpack-plugin') +const CopyPlugin = require('copy-webpack-plugin') + +const mode = process.env.NODE_ENV || 'development' +const prod = mode === 'production' +const dev = (process.env.CLIENT_TYPE ?? '') === 'dev' || mode === 'development' +const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin') +console.log('mode', mode) +const { EsbuildPlugin } = require('esbuild-loader') + +const doValidate = !prod || (process.env.DO_VALIDATE === 'true') + +/** + * @type {Configuration} + */ +module.exports = [ + { + mode: dev ? 'development' : mode, + entry: { + serviceWorker: '@hcengineering/notification/src/serviceWorker.ts' + }, + module: { + rules: [ + { + test: /\.ts$/, + exclude: /(node_modules|\.webpack)/, + use: { + loader: 'esbuild-loader', + options: { + target: 'es2021', + keepNames: true, + minify: !prod, + sourcemap: !prod + } + } + } + ] + }, + output: { + path: __dirname + '/dist', + filename: '[name].js', + chunkFilename: '[name].js', + publicPath: '/', + pathinfo: false + }, + resolve: { + extensions: ['.ts', '.js'], + conditionNames: ['svelte', 'browser', 'import'] + } + }, + { + mode: dev ? 'development' : mode, + entry: { + electron: './src/main/start.ts', + preload: './src/ui/preload.ts' + }, + target: 'electron-main', + plugins: [ + ...(doValidate ? [new ForkTsCheckerWebpackPlugin()] : []), + new Dotenv({ path: prod ? '.env' : '.env-dev' }), + new DefinePlugin({ + 'process.env.MODEL_VERSION': JSON.stringify(process.env.MODEL_VERSION) + }) + ], + module: { + rules: [ + // Add support for native node modules + { + // We're specifying native_modules in the test because the asset relocator loader generates a + // "fake" .node file which is really a cjs file. + test: /native_modules[/\\].+\.node$/, + use: 'node-loader' + }, + { + test: /[/\\]node_modules[/\\].+\.(m?js|node)$/, + parser: { amd: false }, + use: { + loader: '@vercel/webpack-asset-relocator-loader', + options: { + outputAssetBase: 'native_modules' + } + } + }, + { + test: /\.ts$/, + exclude: /(node_modules|\.webpack)/, + use: { + loader: 'esbuild-loader', + options: { + target: 'es2021', + keepNames: true, + minify: !prod, + sourcemap: !prod + } + } + } + ] + }, + output: { + globalObject: 'this', + path: path.join(__dirname, '/dist/main/'), + publicPath: '', + clean: true + }, + resolve: { + extensions: ['.ts', '.js'], + conditionNames: ['svelte', 'browser', 'import'] + } + }, + + // ------ UI Part -------------------------- + { + entry: { + bundle: ['@hcengineering/theme/styles/global.scss', ...['./src/ui/index.ts']] + }, + ignoreWarnings: [ + { + message: /a11y-/ + }, + /warning from compiler/, + (warning) => true + ], + resolve: { + symlinks: true, + alias: { + svelte: path.resolve('node_modules', 'svelte/src/runtime'), + '@hcengineering/platform-rig/profiles/ui/svelte': path.resolve('node_modules', 'svelte/src/runtime') + }, + fallback: { + crypto: false, + path: false, + fs: false + }, + extensions: ['.mjs', '.js', '.svelte', '.ts'], + conditionNames: ['svelte', 'browser', 'import'] + }, + output: { + path: path.join(__dirname, '/dist/ui/'), + filename: 'bundle.js', + publicPath: '', + chunkFormat: false, + clean: true + }, + optimization: prod + ? { + minimize: true, + minimizer: [ + new EsbuildPlugin({ + target: 'es2021', + keepNames: true, + minify: !prod, + sourcemap: !prod + }) + ] + } + : {}, + module: { + rules: [ + { + test: /\.ts?$/, + loader: 'esbuild-loader', + options: { + target: 'es2021', + keepNames: true, + minify: !prod, + sourcemap: !prod + }, + exclude: /node_modules/ + }, + { + test: /\.svelte$/, + use: { + loader: 'svelte-loader', + options: { + compilerOptions: { + dev + }, + emitCss: true, + hotReload: dev, + preprocess: require('svelte-preprocess')({ + postcss: true, + sourceMap: dev + }), + hotOptions: { + // Prevent preserving local component state + preserveLocalState: true, + + // If this string appears anywhere in your component's code, then local + // state won't be preserved, even when noPreserveState is false + noPreserveStateKey: '@!hmr', + + // Prevent doing a full reload on next HMR update after fatal error + noReload: true, + + // Try to recover after runtime errors in component init + optimistic: false, + + // --- Advanced --- + + // Prevent adding an HMR accept handler to components with + // accessors option to true, or to components with named exports + // (from + +
+
+ +
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ + diff --git a/plugins/desktop-preferences-resources/src/index.ts b/plugins/desktop-preferences-resources/src/index.ts new file mode 100644 index 0000000000..99501e91da --- /dev/null +++ b/plugins/desktop-preferences-resources/src/index.ts @@ -0,0 +1,25 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { type Resources } from '@hcengineering/platform' +import DesktopPreferencesPresenter from './components/DesktopPreferencesPresenter.svelte' + +export default async (): Promise => ({ + component: { + DesktopPreferencesPresenter + } +}) + +export * from './utils' diff --git a/plugins/desktop-preferences-resources/src/plugin.ts b/plugins/desktop-preferences-resources/src/plugin.ts new file mode 100644 index 0000000000..1bdf55b1f6 --- /dev/null +++ b/plugins/desktop-preferences-resources/src/plugin.ts @@ -0,0 +1,19 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { mergeIds } from '@hcengineering/platform' +import desktopPreferences, { desktopPreferencesId } from '@hcengineering/desktop-preferences' + +export default mergeIds(desktopPreferencesId, desktopPreferences, {}) diff --git a/plugins/desktop-preferences-resources/src/utils.ts b/plugins/desktop-preferences-resources/src/utils.ts new file mode 100644 index 0000000000..5a2334fd55 --- /dev/null +++ b/plugins/desktop-preferences-resources/src/utils.ts @@ -0,0 +1,28 @@ +import { writable } from 'svelte/store' + +import { createQuery } from '@hcengineering/presentation' +import desktopPreferences, { + defaultNotificationPreference, + type DesktopNotificationPreference, + type DesktopNotificationPreferenceData +} from '@hcengineering/desktop-preferences' + +// /** +// * @public +// */ +export const activePreferences = writable( + defaultNotificationPreference +) + +const preferencesQuery = createQuery(true) +preferencesQuery.query( + desktopPreferences.class.DesktopNotificationPreference, + {}, + (res: DesktopNotificationPreference[]) => { + if (res?.length > 0) { + activePreferences.set(res[0]) + } else { + activePreferences.set(defaultNotificationPreference) + } + } +) diff --git a/plugins/desktop-preferences-resources/svelte.config.js b/plugins/desktop-preferences-resources/svelte.config.js new file mode 100644 index 0000000000..944a06f73e --- /dev/null +++ b/plugins/desktop-preferences-resources/svelte.config.js @@ -0,0 +1,5 @@ +const sveltePreprocess = require('svelte-preprocess') + +module.exports = { + preprocess: sveltePreprocess() +}; \ No newline at end of file diff --git a/plugins/desktop-preferences-resources/tsconfig.json b/plugins/desktop-preferences-resources/tsconfig.json new file mode 100644 index 0000000000..fb6ccb2d18 --- /dev/null +++ b/plugins/desktop-preferences-resources/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "./node_modules/@hcengineering/platform-rig/profiles/ui/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "declarationDir": "./types" + } +} \ No newline at end of file diff --git a/plugins/desktop-preferences/.eslintrc.js b/plugins/desktop-preferences/.eslintrc.js new file mode 100644 index 0000000000..72235dc283 --- /dev/null +++ b/plugins/desktop-preferences/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.json' + } +} diff --git a/plugins/desktop-preferences/.npmignore b/plugins/desktop-preferences/.npmignore new file mode 100644 index 0000000000..e3ec093c38 --- /dev/null +++ b/plugins/desktop-preferences/.npmignore @@ -0,0 +1,4 @@ +* +!/lib/** +!CHANGELOG.md +/lib/**/__tests__/ diff --git a/plugins/desktop-preferences/config/rig.json b/plugins/desktop-preferences/config/rig.json new file mode 100644 index 0000000000..0110930f55 --- /dev/null +++ b/plugins/desktop-preferences/config/rig.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig" +} diff --git a/plugins/desktop-preferences/jest.config.js b/plugins/desktop-preferences/jest.config.js new file mode 100644 index 0000000000..2cfd408b67 --- /dev/null +++ b/plugins/desktop-preferences/jest.config.js @@ -0,0 +1,7 @@ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'], + roots: ["./src"], + coverageReporters: ["text-summary", "html"] +} diff --git a/plugins/desktop-preferences/package.json b/plugins/desktop-preferences/package.json new file mode 100644 index 0000000000..8e09db09f7 --- /dev/null +++ b/plugins/desktop-preferences/package.json @@ -0,0 +1,45 @@ +{ + "name": "@hcengineering/desktop-preferences", + "version": "0.6.0", + "main": "lib/index.js", + "svelte": "src/index.ts", + "types": "types/index.d.ts", + "files": [ + "lib/**/*", + "types/**/*", + "tsconfig.json" + ], + "author": "Hardcore Engineering Inc.", + "scripts": { + "build": "compile", + "build:watch": "compile", + "format": "format src", + "test": "jest --passWithNoTests --silent", + "_phase:build": "compile transpile src", + "_phase:test": "jest --passWithNoTests --silent", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-n": "^15.4.0", + "eslint": "^8.54.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "prettier": "^3.1.0", + "typescript": "^5.3.3", + "jest": "^29.7.0", + "ts-jest": "^29.1.1", + "@types/jest": "^29.5.5" + }, + "dependencies": { + "@hcengineering/ui": "^0.6.15", + "@hcengineering/core": "^0.6.32", + "@hcengineering/platform": "^0.6.11", + "@hcengineering/preference": "^0.6.13", + "@hcengineering/notification": "^0.6.23" + } +} diff --git a/plugins/desktop-preferences/src/index.ts b/plugins/desktop-preferences/src/index.ts new file mode 100644 index 0000000000..8393c71fa3 --- /dev/null +++ b/plugins/desktop-preferences/src/index.ts @@ -0,0 +1,80 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { Ref, Class, Data } from '@hcengineering/core' +import { Preference } from '@hcengineering/preference' +import { NotificationPreferencesGroup } from '@hcengineering/notification' +import type { Asset, IntlString, Plugin } from '@hcengineering/platform' +import { plugin } from '@hcengineering/platform' +import { AnyComponent } from '@hcengineering/ui' + +/** + * @public + */ +export interface DesktopNotificationPreference extends Preference { + showNotifications: boolean + playSound: boolean + bounceAppIcon: boolean + showUnreadCounter: boolean +} + +/** + * @public + */ +export type DesktopNotificationPreferenceData = Omit, 'attachedTo'> + +/** + * @public + */ +export type PreferenceKey = keyof DesktopNotificationPreferenceData + +/** + * @public + */ +export const defaultNotificationPreference: DesktopNotificationPreferenceData = { + showNotifications: true, + playSound: false, + bounceAppIcon: false, + showUnreadCounter: true +} + +/** + * @public + */ +export const desktopPreferencesId = 'desktop-preferences' as Plugin + +export default plugin(desktopPreferencesId, { + class: { + DesktopNotificationPreference: '' as Ref> + }, + component: { + DesktopPreferencesPresenter: '' as AnyComponent + }, + icon: { + NotificationMessage: '' as Asset + }, + string: { + ShowNotifications: '' as IntlString, + SoundAndAppearance: '' as IntlString, + PlaySound: '' as IntlString, + BounceAppIcon: '' as IntlString, + ShowBadge: '' as IntlString, + HaveGotANotification: '' as IntlString, + TotalNotificationsCount: '' as IntlString + }, + ids: { + DesktopNotificationPreferencesGroup: '' as Ref + } +}) diff --git a/plugins/desktop-preferences/tsconfig.json b/plugins/desktop-preferences/tsconfig.json new file mode 100644 index 0000000000..59e4fd4297 --- /dev/null +++ b/plugins/desktop-preferences/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "./node_modules/@hcengineering/platform-rig/profiles/default/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "declarationDir": "./types", + "tsBuildInfoFile": ".build/build.tsbuildinfo" + } +} \ No newline at end of file diff --git a/plugins/diffview-assets/.eslintrc.js b/plugins/diffview-assets/.eslintrc.js new file mode 100644 index 0000000000..e73094bc7e --- /dev/null +++ b/plugins/diffview-assets/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.json' + } +} diff --git a/plugins/diffview-assets/assets/icons.svg b/plugins/diffview-assets/assets/icons.svg new file mode 100644 index 0000000000..9ebf0a90ba --- /dev/null +++ b/plugins/diffview-assets/assets/icons.svg @@ -0,0 +1,2 @@ + + diff --git a/plugins/diffview-assets/config/rig.json b/plugins/diffview-assets/config/rig.json new file mode 100644 index 0000000000..b75800b9b7 --- /dev/null +++ b/plugins/diffview-assets/config/rig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig", + "rigProfile": "assets" +} diff --git a/plugins/diffview-assets/jest.config.js b/plugins/diffview-assets/jest.config.js new file mode 100644 index 0000000000..2cfd408b67 --- /dev/null +++ b/plugins/diffview-assets/jest.config.js @@ -0,0 +1,7 @@ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'], + roots: ["./src"], + coverageReporters: ["text-summary", "html"] +} diff --git a/plugins/diffview-assets/lang/en.json b/plugins/diffview-assets/lang/en.json new file mode 100644 index 0000000000..56e1b9e970 --- /dev/null +++ b/plugins/diffview-assets/lang/en.json @@ -0,0 +1,14 @@ +{ + "string": { + "ViewMode": "View mode", + "Unified": "Unified", + "Split": "Split", + "Viewed": "Viewed", + "ShowDiff": "Show diff", + "NoChanges": "File diff has no changes", + "LargeDiffsAreHidden": "Large diffs are not rendered by default.", + "FileIsTooLarge": "File is too large to be displayed.", + "FileWasRenamed": "File was renamed without changes.", + "FileWasDeleted": "File was deleted." + } +} diff --git a/plugins/diffview-assets/lang/ru.json b/plugins/diffview-assets/lang/ru.json new file mode 100644 index 0000000000..49b8a9a5ed --- /dev/null +++ b/plugins/diffview-assets/lang/ru.json @@ -0,0 +1,14 @@ +{ + "string": { + "ViewMode": "Режим представления", + "Unified": "Совместный", + "Split": "Раздельный", + "Viewed": "Просмотрено", + "ShowDiff": "Показать изменения", + "NoChanges": "Нет изменений", + "LargeDiffsAreHidden": "Большие изменения не отображаются по-умолчанию.", + "FileIsTooLarge": "Файл слишком большой для отображения.", + "FileWasRenamed": "Файл был переименован без изменений.", + "FileWasDeleted": "Файл был удалён." + } +} diff --git a/plugins/diffview-assets/package.json b/plugins/diffview-assets/package.json new file mode 100644 index 0000000000..01bbb4ae20 --- /dev/null +++ b/plugins/diffview-assets/package.json @@ -0,0 +1,39 @@ +{ + "name": "@hcengineering/diffview-assets", + "version": "0.6.0", + "main": "src/index.ts", + "author": "Copyright © Hardcore Engineering Inc.", + "template": "@hcengineering/assets-package", + "license": "EPL-2.0", + "scripts": { + "build": "compile", + "test": "jest --passWithNoTests --silent", + "build:docs": "", + "format": "format src", + "build:watch": "compile", + "_phase:build": "compile transpile src", + "_phase:test": "jest --passWithNoTests --silent", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-n": "^15.4.0", + "eslint-plugin-promise": "^6.1.1", + "eslint": "^8.54.0", + "prettier": "^3.1.0", + "@types/node": "~20.11.16", + "jest": "^29.7.0", + "ts-jest": "^29.1.1", + "@types/jest": "^29.5.5", + "typescript": "^5.3.3" + }, + "dependencies": { + "@hcengineering/platform": "^0.6.11", + "@hcengineering/diffview": "^0.6.0" + } +} diff --git a/plugins/diffview-assets/src/__tests__/lang.test.ts b/plugins/diffview-assets/src/__tests__/lang.test.ts new file mode 100644 index 0000000000..cf96c6dcf7 --- /dev/null +++ b/plugins/diffview-assets/src/__tests__/lang.test.ts @@ -0,0 +1,6 @@ +import { makeLocalesTest } from '@hcengineering/platform' + +it( + 'Locales are equale', + makeLocalesTest((lang) => import(`../../lang/${lang}.json`)) +) diff --git a/plugins/diffview-assets/src/index.ts b/plugins/diffview-assets/src/index.ts new file mode 100644 index 0000000000..2cd85bad20 --- /dev/null +++ b/plugins/diffview-assets/src/index.ts @@ -0,0 +1,14 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// diff --git a/plugins/diffview-assets/tsconfig.json b/plugins/diffview-assets/tsconfig.json new file mode 100644 index 0000000000..4449c73536 --- /dev/null +++ b/plugins/diffview-assets/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "./node_modules/@hcengineering/platform-rig/profiles/assets/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "declarationDir": "./types", + "types": ["node", "jest"], + "tsBuildInfoFile": ".build/build.tsbuildinfo" + } +} \ No newline at end of file diff --git a/plugins/diffview-resources/.eslintrc.js b/plugins/diffview-resources/.eslintrc.js new file mode 100644 index 0000000000..bb8fd7450d --- /dev/null +++ b/plugins/diffview-resources/.eslintrc.js @@ -0,0 +1,4 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], + parserOptions: { tsconfigRootDir: __dirname } +} diff --git a/plugins/diffview-resources/.prettierrc b/plugins/diffview-resources/.prettierrc new file mode 100644 index 0000000000..792942803a --- /dev/null +++ b/plugins/diffview-resources/.prettierrc @@ -0,0 +1,22 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "trailingComma": "none", + "tabWidth": 2, + "semi": false, + "singleQuote": true, + "printWidth": 120, + "useTabs": false, + "bracketSpacing": true, + "proseWrap": "preserve", + "plugins": [ + "prettier-plugin-svelte" + ], + "overrides": [ + { + "files": "*.svelte", + "options": { + "parser": "svelte" + } + } + ] +} \ No newline at end of file diff --git a/plugins/diffview-resources/config/rig.json b/plugins/diffview-resources/config/rig.json new file mode 100644 index 0000000000..bcad6f7c33 --- /dev/null +++ b/plugins/diffview-resources/config/rig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig", + "rigProfile": "ui" +} diff --git a/plugins/diffview-resources/jest.config.js b/plugins/diffview-resources/jest.config.js new file mode 100644 index 0000000000..2cfd408b67 --- /dev/null +++ b/plugins/diffview-resources/jest.config.js @@ -0,0 +1,7 @@ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'], + roots: ["./src"], + coverageReporters: ["text-summary", "html"] +} diff --git a/plugins/diffview-resources/package.json b/plugins/diffview-resources/package.json new file mode 100644 index 0000000000..b511bb4fcd --- /dev/null +++ b/plugins/diffview-resources/package.json @@ -0,0 +1,53 @@ +{ + "name": "@hcengineering/diffview-resources", + "version": "0.6.0", + "main": "src/index.ts", + "author": "Copyright © Hardcore Engineering Inc.", + "license": "EPL-2.0", + "scripts": { + "build": "compile ui", + "build:docs": "api-extractor run --local", + "format": "format src", + "svelte-check": "do-svelte-check", + "_phase:svelte-check": "do-svelte-check", + "build:watch": "compile ui", + "_phase:build": "compile ui", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "svelte-loader": "^3.2.0", + "sass": "^1.53.0", + "svelte-preprocess": "^5.1.3", + "@hcengineering/platform-rig": "^0.6.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-n": "^15.4.0", + "eslint-plugin-promise": "^6.1.1", + "prettier-plugin-svelte": "^3.2.2", + "eslint": "^8.54.0", + "prettier": "^3.1.0", + "svelte-check": "^3.6.9", + "typescript": "^5.3.3", + "jest": "^29.7.0", + "ts-jest": "^29.1.1", + "@types/jest": "^29.5.5", + "eslint-plugin-svelte": "^2.35.1", + "svelte-eslint-parser": "^0.33.1" + }, + "dependencies": { + "svelte": "^4.2.12", + "@hcengineering/core": "^0.6.32", + "@hcengineering/platform": "^0.6.11", + "@hcengineering/presentation": "^0.6.3", + "@hcengineering/ui": "^0.6.15", + "@hcengineering/view": "^0.6.13", + "@hcengineering/view-resources": "^0.6.0", + "@hcengineering/diffview": "^0.6.0", + "fast-equals": "^5.0.1", + "highlight.js": "~11.8.0", + "diff2html": "~3.4.35" + } +} diff --git a/plugins/diffview-resources/postcss.config.js b/plugins/diffview-resources/postcss.config.js new file mode 100644 index 0000000000..88752c6cb0 --- /dev/null +++ b/plugins/diffview-resources/postcss.config.js @@ -0,0 +1,5 @@ +module.exports = { + plugins: [ + require('autoprefixer') + ] +} diff --git a/plugins/diffview-resources/src/components/DiffView.svelte b/plugins/diffview-resources/src/components/DiffView.svelte new file mode 100644 index 0000000000..5072f744ca --- /dev/null +++ b/plugins/diffview-resources/src/components/DiffView.svelte @@ -0,0 +1,62 @@ + + + +
+ + { + saveMode(detail) + }} + /> +
+ +{#each diffFiles as diffFile} + {@const fileViewed = isFileViewed(diffFile)} + +{/each} diff --git a/plugins/diffview-resources/src/components/DiffViewModeDropdown.svelte b/plugins/diffview-resources/src/components/DiffViewModeDropdown.svelte new file mode 100644 index 0000000000..d72c353e09 --- /dev/null +++ b/plugins/diffview-resources/src/components/DiffViewModeDropdown.svelte @@ -0,0 +1,38 @@ + + + + diff --git a/plugins/diffview-resources/src/components/FileDiffContent.svelte b/plugins/diffview-resources/src/components/FileDiffContent.svelte new file mode 100644 index 0000000000..02664d4fae --- /dev/null +++ b/plugins/diffview-resources/src/components/FileDiffContent.svelte @@ -0,0 +1,228 @@ + + + +
+ {#if highlighted === undefined} + + {:else} + + + {#if mode === 'unified'} + + + + {:else} + + + + + {/if} + + + {#each highlighted as hhunk} + {@const hunk = hhunk.hunk} + + {#if mode === 'unified'} + {@const lines = prepareLinesForUnifiedView(hhunk.lines)} + + + + + {#each lines as line} + {@const lineClass = codeLineClass(line)} + + + + + + {/each} + {:else} + {@const lines = prepareLinesForSplitView(hhunk.lines)} + + + + + {#each lines as line} + {@const before = line.before} + {@const after = line.after} + + {@const beforeLineClass = codeLineClass(before)} + {@const afterLineClass = codeLineClass(after)} + + + + + + + {/each} + {/if} + {/each} + +
+ + {hunk.header}
{line.oldNumber ?? ''}{line.newNumber ?? ''} + {@html line.content} +
+ {hunk.header}
{before.oldNumber ?? ''} + {@html before.content} + {after.newNumber ?? ''} + {@html after.content} +
+ {/if} +
+ + diff --git a/plugins/diffview-resources/src/components/FileDiffHeader.svelte b/plugins/diffview-resources/src/components/FileDiffHeader.svelte new file mode 100644 index 0000000000..d74c450ff9 --- /dev/null +++ b/plugins/diffview-resources/src/components/FileDiffHeader.svelte @@ -0,0 +1,121 @@ + + + +
+ +
+ {#if showExpand} + + {/if} + +
+ {formatFileName(file)} +
+ + +
copyFileNameToClipboard()}> + +
+
+ +
+ {#if showChanges} +
+
+ + + {file.stats.addedLines} +
+
+ + + {file.stats.deletedLines} +
+
+ {/if} + + {#if showViewed} +
+
+ {/if} +
+
+ + diff --git a/plugins/diffview-resources/src/components/FileDiffView.svelte b/plugins/diffview-resources/src/components/FileDiffView.svelte new file mode 100644 index 0000000000..e90d262a31 --- /dev/null +++ b/plugins/diffview-resources/src/components/FileDiffView.svelte @@ -0,0 +1,151 @@ + + + +
+ +
+ { + expanded = !expanded + dispatch('expanded', expanded) + }} + on:viewed={(evt) => { + viewed = evt.detail + expanded = !viewed + dispatch('change', { fileName: file.fileName, sha: file.sha, viewed }) + }} + /> +
+ + + {#if expanded} +
+ {#if file.hunks.length === 0} + {@const label = getNoChangesLabel(file)} +
+ +
+ {/if} + {#if hideDiffLabel} +
+
+ {:else} + + {/if} +
+ {/if} +
+ + diff --git a/plugins/diffview-resources/src/components/InlineDiffView.svelte b/plugins/diffview-resources/src/components/InlineDiffView.svelte new file mode 100644 index 0000000000..a3862e8fd1 --- /dev/null +++ b/plugins/diffview-resources/src/components/InlineDiffView.svelte @@ -0,0 +1,48 @@ + + + +{#each diffFiles as diffFile} + { + onExpand?.(evt.detail) + }} + /> +{/each} diff --git a/plugins/diffview-resources/src/components/theme/github-dark.scss b/plugins/diffview-resources/src/components/theme/github-dark.scss new file mode 100644 index 0000000000..ec02d58fa3 --- /dev/null +++ b/plugins/diffview-resources/src/components/theme/github-dark.scss @@ -0,0 +1,94 @@ +pre code.hljs { + display: block; + overflow-x: auto; + padding: 1em; +} +code.hljs { + padding: 3px 5px; +} /*! + Theme: GitHub Dark + Description: Dark theme as seen on github.com + Author: github.com + Maintainer: @Hirse + Updated: 2021-05-15 + + Outdated base version: https://github.com/primer/github-syntax-dark + Current colors taken from GitHub's CSS +*/ +.hljs { + color: #c9d1d9; + // background: #0d1117; +} +.hljs-doctag, +.hljs-keyword, +.hljs-meta .hljs-keyword, +.hljs-template-tag, +.hljs-template-variable, +.hljs-type, +.hljs-variable.language_ { + color: #ff7b72; +} +.hljs-title, +.hljs-title.class_, +.hljs-title.class_.inherited__, +.hljs-title.function_ { + color: #d2a8ff; +} +.hljs-attr, +.hljs-attribute, +.hljs-literal, +.hljs-meta, +.hljs-number, +.hljs-operator, +.hljs-selector-attr, +.hljs-selector-class, +.hljs-selector-id, +.hljs-variable { + color: #79c0ff; +} +.hljs-meta .hljs-string, +.hljs-regexp, +.hljs-string { + color: #a5d6ff; +} +.hljs-built_in, +.hljs-symbol { + color: #ffa657; +} +.hljs-code, +.hljs-comment, +.hljs-formula { + color: #8b949e; +} +.hljs-name, +.hljs-quote, +.hljs-selector-pseudo, +.hljs-selector-tag { + color: #7ee787; +} +.hljs-subst { + color: #c9d1d9; +} +.hljs-section { + color: #1f6feb; + font-weight: 700; +} +.hljs-bullet { + color: #f2cc60; +} +.hljs-emphasis { + color: #c9d1d9; + font-style: italic; +} +.hljs-strong { + color: #c9d1d9; + font-weight: 700; +} +.hljs-addition { + color: #aff5b4; + background-color: #033a16; +} +.hljs-deletion { + color: #ffdcd7; + background-color: #67060c; +} diff --git a/plugins/diffview-resources/src/components/theme/github.scss b/plugins/diffview-resources/src/components/theme/github.scss new file mode 100644 index 0000000000..56c08082b0 --- /dev/null +++ b/plugins/diffview-resources/src/components/theme/github.scss @@ -0,0 +1,94 @@ +pre code.hljs { + display: block; + overflow-x: auto; + padding: 1em; +} +code.hljs { + padding: 3px 5px; +} /*! + Theme: GitHub + Description: Light theme as seen on github.com + Author: github.com + Maintainer: @Hirse + Updated: 2021-05-15 + + Outdated base version: https://github.com/primer/github-syntax-light + Current colors taken from GitHub's CSS +*/ +.hljs { + color: #24292e; + // background: #fff; +} +.hljs-doctag, +.hljs-keyword, +.hljs-meta .hljs-keyword, +.hljs-template-tag, +.hljs-template-variable, +.hljs-type, +.hljs-variable.language_ { + color: #d73a49; +} +.hljs-title, +.hljs-title.class_, +.hljs-title.class_.inherited__, +.hljs-title.function_ { + color: #6f42c1; +} +.hljs-attr, +.hljs-attribute, +.hljs-literal, +.hljs-meta, +.hljs-number, +.hljs-operator, +.hljs-selector-attr, +.hljs-selector-class, +.hljs-selector-id, +.hljs-variable { + color: #005cc5; +} +.hljs-meta .hljs-string, +.hljs-regexp, +.hljs-string { + color: #032f62; +} +.hljs-built_in, +.hljs-symbol { + color: #e36209; +} +.hljs-code, +.hljs-comment, +.hljs-formula { + color: #6a737d; +} +.hljs-name, +.hljs-quote, +.hljs-selector-pseudo, +.hljs-selector-tag { + color: #22863a; +} +.hljs-subst { + color: #24292e; +} +.hljs-section { + color: #005cc5; + font-weight: 700; +} +.hljs-bullet { + color: #735c0f; +} +.hljs-emphasis { + color: #24292e; + font-style: italic; +} +.hljs-strong { + color: #24292e; + font-weight: 700; +} +.hljs-addition { + color: #22863a; + background-color: #f0fff4; +} +.hljs-deletion { + color: #b31d28; + background-color: #ffeef0; +} diff --git a/plugins/diffview-resources/src/highlight/highlight.ts b/plugins/diffview-resources/src/highlight/highlight.ts new file mode 100644 index 0000000000..96c37bca6c --- /dev/null +++ b/plugins/diffview-resources/src/highlight/highlight.ts @@ -0,0 +1,59 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import hljs from 'highlight.js' +import { hljsDefineSvelte } from './languages/svelte-hljs' + +hljs.registerLanguage('svelte', hljsDefineSvelte) + +export interface HighlightOptions { + language: string +} + +export function highlightText (text: string, options: HighlightOptions): string { + // We should always use highlighter because it sanitizes the input + // We have to always use highlighter to ensure that the input is sanitized + const validLanguage = options.language !== '' && hljs.getLanguage(options.language) !== undefined + const language = validLanguage ? options.language : 'text' + + const { value: highlighted } = hljs.highlight(text, { language }) + const normalized = normalizeHighlightTags(highlighted) + return normalized +} + +export function highlightLines (lines: string[], options: HighlightOptions): string[] { + const highlighted = highlightText(lines.join('\n'), options) + return highlighted.split('\n') +} + +function normalizeHighlightTags (highlighted: string): string { + const openTags: string[] = [] + + const normalized = highlighted.replace(/(]*>)|(<\/span>)|(\n)/g, (match) => { + if (match === '\n') { + return ''.repeat(openTags.length) + '\n' + openTags.join('') + } + + if (match === '') { + openTags.pop() + } else { + openTags.push(match) + } + + return match + }) + + return normalized +} diff --git a/plugins/diffview-resources/src/highlight/index.ts b/plugins/diffview-resources/src/highlight/index.ts new file mode 100644 index 0000000000..c8a9cdde3b --- /dev/null +++ b/plugins/diffview-resources/src/highlight/index.ts @@ -0,0 +1,17 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +export * from './highlight' +export * from './render' diff --git a/plugins/diffview-resources/src/highlight/languages/svelte-hljs.ts b/plugins/diffview-resources/src/highlight/languages/svelte-hljs.ts new file mode 100644 index 0000000000..a47af00f5d --- /dev/null +++ b/plugins/diffview-resources/src/highlight/languages/svelte-hljs.ts @@ -0,0 +1,48 @@ +export function hljsDefineSvelte (hljs: any): any { + return { + subLanguage: 'xml', + contains: [ + hljs.COMMENT('', { + relevance: 10 + }), + { + begin: /^(\s*)()/gm, + end: /^(\s*)(<\/script>)/gm, + subLanguage: 'javascript', + excludeBegin: true, + excludeEnd: true, + contains: [ + { + begin: /^(\s*)(\$:)/gm, + end: /(\s*)/gm, + className: 'keyword' + } + ] + }, + { + begin: /^(\s*)()/gm, + end: /^(\s*)(<\/style>)/gm, + subLanguage: 'css', + excludeBegin: true, + excludeEnd: true + }, + { + begin: /\{/gm, + end: /\}/gm, + subLanguage: 'javascript', + contains: [ + { + begin: /[{]/, + end: /[}]/, + skip: true + }, + { + begin: /([#:/@])(if|else|each|await|then|catch|debug|html)/gm, + className: 'keyword', + relevance: 10 + } + ] + } + ] + } +} diff --git a/plugins/diffview-resources/src/highlight/render.ts b/plugins/diffview-resources/src/highlight/render.ts new file mode 100644 index 0000000000..6b2905d572 --- /dev/null +++ b/plugins/diffview-resources/src/highlight/render.ts @@ -0,0 +1,86 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { type DiffHunk, type DiffLine, DiffLineType, EmptyLine } from '@hcengineering/diffview' +import { type HighlightOptions, highlightLines } from './highlight' + +export interface RenderOptions { + syntaxHighlight: { + language: string + } +} + +export interface DiffLineRenderResult { + before: DiffLine + after: DiffLine +} + +export interface DiffHunkRenderResult { + hunk: DiffHunk + lines: DiffLineRenderResult[] +} + +export function renderHunk (hunk: DiffHunk, options: RenderOptions): DiffHunkRenderResult { + const syntaxHighlight = options.syntaxHighlight + + const highlightOptions: HighlightOptions = { language: syntaxHighlight.language } + + const { before, after } = splitDiffLines(hunk.lines) + const beforeHighlighted = highlightDiffLines(before, highlightOptions) + const afterHighlighted = highlightDiffLines(after, highlightOptions) + + const lines: DiffLineRenderResult[] = [] + while (beforeHighlighted.length > 0 || afterHighlighted.length > 0) { + const beforeLine = beforeHighlighted.shift() ?? EmptyLine + const afterLine = afterHighlighted.shift() ?? EmptyLine + lines.push({ before: beforeLine, after: afterLine }) + } + + return { hunk, lines } +} + +function splitDiffLines (lines: DiffLine[]): { before: DiffLine[], after: DiffLine[] } { + const before: DiffLine[] = [] + const after: DiffLine[] = [] + + for (const line of lines) { + if (line.type === DiffLineType.CONTEXT) { + before.push(line) + after.push(line) + } else if (line.type === DiffLineType.DELETE) { + before.push(line) + after.push(EmptyLine) + } else if (line.type === DiffLineType.INSERT) { + before.push(EmptyLine) + after.push(line) + } else { + before.push(line) + after.push(line) + } + } + + return { before, after } +} + +function highlightDiffLines (lines: DiffLine[], options: HighlightOptions): DiffLine[] { + // Highlight entire diff hunk content, it is more accurate than highlighting line-by-line + const content = lines.filter((line) => line.type !== DiffLineType.EMPTY).map((line) => line.content) + const highlighted = highlightLines(content, options) + + // Reconstruct DiffLine items with highlighted content + return lines.map((line) => + line.type === DiffLineType.EMPTY ? { ...line } : { ...line, content: highlighted.shift() ?? '' } + ) +} diff --git a/plugins/diffview-resources/src/index.ts b/plugins/diffview-resources/src/index.ts new file mode 100644 index 0000000000..4d1c1636e6 --- /dev/null +++ b/plugins/diffview-resources/src/index.ts @@ -0,0 +1,24 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { type Resources } from '@hcengineering/platform' +import DiffView from './components/DiffView.svelte' +import InlineDiffView from './components/InlineDiffView.svelte' +export default async (): Promise => ({ + component: { + DiffView, + InlineDiffView + } +}) diff --git a/plugins/diffview-resources/src/parser.ts b/plugins/diffview-resources/src/parser.ts new file mode 100644 index 0000000000..c94c82d8f5 --- /dev/null +++ b/plugins/diffview-resources/src/parser.ts @@ -0,0 +1,103 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { type Diff2HtmlConfig, parse } from 'diff2html' +import { + type DiffBlock as D2HDiffBlock, + type DiffFile as D2HDiffFile, + type DiffLine as D2HDiffLine +} from 'diff2html/lib/types' +import { + type Diff, + type DiffFile, + type DiffFileType, + type DiffHunk, + type DiffLine, + DiffLineType +} from '@hcengineering/diffview' +import { isDevNullName } from './utils' + +const diff2htmlConfig: Diff2HtmlConfig = { + diffMaxChanges: 10000 +} + +/** + * @public + */ +export function parseDiff (diff: Diff): DiffFile[] { + const files = parse(diff, diff2htmlConfig) + return files.map(mapFile) +} + +function mapFile (file: D2HDiffFile): DiffFile { + const { language, oldName, newName, addedLines, deletedLines, isBinary, isTooBig } = file + + const fileName = isDevNullName(newName) ? oldName : newName + const sha = file.checksumAfter ?? '' + + const diffType = mapFileDiffType(file) + const stats = { addedLines, deletedLines } + const hunks = isTooBig === true ? [] : file.blocks.map(mapHunk) + + return { hunks, language, oldName, newName, fileName, sha, isBinary, isTooBig, diffType, stats } +} + +function mapHunk (block: D2HDiffBlock): DiffHunk { + const { header, oldStartLine, newStartLine } = block + const lines = block.lines.map(mapLine) + + return { header, oldStartLine, newStartLine, lines } +} + +function mapLine (line: D2HDiffLine): DiffLine { + const { type, oldNumber, newNumber } = line + const { prefix, content } = parseContentLine(line.content) + + switch (type) { + case 'context': + return { type: DiffLineType.CONTEXT, oldNumber, newNumber, prefix, content } + case 'insert': + return { type: DiffLineType.INSERT, oldNumber: undefined, newNumber, prefix, content } + case 'delete': + return { type: DiffLineType.DELETE, oldNumber, newNumber: undefined, prefix, content } + default: + throw new Error(`Unexpected line type: ${type}`) + } +} + +function mapFileDiffType (file: D2HDiffFile): DiffFileType { + if (file.isNew === true) { + return 'add' + } + if (file.isDeleted === true) { + return 'delete' + } + if (file.isRename === true) { + return 'rename' + } + if (file.isCopy === true) { + return 'copy' + } + return 'modify' +} + +const prefixLength = 1 + +function parseContentLine (line: string): { prefix: string, content: string } { + return { + prefix: line.substring(0, prefixLength), + content: line.substring(prefixLength) + } +} diff --git a/plugins/diffview-resources/src/plugin.ts b/plugins/diffview-resources/src/plugin.ts new file mode 100644 index 0000000000..4b2fcbc754 --- /dev/null +++ b/plugins/diffview-resources/src/plugin.ts @@ -0,0 +1,28 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { type IntlString, mergeIds } from '@hcengineering/platform' +import diffview, { diffviewId } from '@hcengineering/diffview' + +export default mergeIds(diffviewId, diffview, { + string: { + ShowDiff: '' as IntlString, + LargeDiffsAreHidden: '' as IntlString, + NoChanges: '' as IntlString, + FileIsTooLarge: '' as IntlString, + FileWasRenamed: '' as IntlString, + FileWasDeleted: '' as IntlString + } +}) diff --git a/plugins/diffview-resources/src/utils.ts b/plugins/diffview-resources/src/utils.ts new file mode 100644 index 0000000000..a6840dcb70 --- /dev/null +++ b/plugins/diffview-resources/src/utils.ts @@ -0,0 +1,37 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { type DiffFile } from '@hcengineering/diffview' + +export function isDevNullName (name: string): boolean { + return name === '/dev/null' +} + +export function getFileName (file: DiffFile): string { + const { oldName, newName } = file + return isDevNullName(newName) ? oldName : newName +} + +export function formatFileName (file: DiffFile): string { + const { oldName, newName } = file + + if (oldName !== newName && !isDevNullName(oldName) && !isDevNullName(newName)) { + return oldName + ' → ' + newName + } else if (!isDevNullName(newName)) { + return newName + } else { + return oldName + } +} diff --git a/plugins/diffview-resources/svelte.config.js b/plugins/diffview-resources/svelte.config.js new file mode 100644 index 0000000000..944a06f73e --- /dev/null +++ b/plugins/diffview-resources/svelte.config.js @@ -0,0 +1,5 @@ +const sveltePreprocess = require('svelte-preprocess') + +module.exports = { + preprocess: sveltePreprocess() +}; \ No newline at end of file diff --git a/plugins/diffview-resources/tsconfig.json b/plugins/diffview-resources/tsconfig.json new file mode 100644 index 0000000000..fb6ccb2d18 --- /dev/null +++ b/plugins/diffview-resources/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "./node_modules/@hcengineering/platform-rig/profiles/ui/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "declarationDir": "./types" + } +} \ No newline at end of file diff --git a/plugins/diffview/.eslintrc.js b/plugins/diffview/.eslintrc.js new file mode 100644 index 0000000000..72235dc283 --- /dev/null +++ b/plugins/diffview/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.json' + } +} diff --git a/plugins/diffview/.npmignore b/plugins/diffview/.npmignore new file mode 100644 index 0000000000..e3ec093c38 --- /dev/null +++ b/plugins/diffview/.npmignore @@ -0,0 +1,4 @@ +* +!/lib/** +!CHANGELOG.md +/lib/**/__tests__/ diff --git a/plugins/diffview/config/rig.json b/plugins/diffview/config/rig.json new file mode 100644 index 0000000000..0110930f55 --- /dev/null +++ b/plugins/diffview/config/rig.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig" +} diff --git a/plugins/diffview/jest.config.js b/plugins/diffview/jest.config.js new file mode 100644 index 0000000000..2cfd408b67 --- /dev/null +++ b/plugins/diffview/jest.config.js @@ -0,0 +1,7 @@ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'], + roots: ["./src"], + coverageReporters: ["text-summary", "html"] +} diff --git a/plugins/diffview/package.json b/plugins/diffview/package.json new file mode 100644 index 0000000000..3c28cc1734 --- /dev/null +++ b/plugins/diffview/package.json @@ -0,0 +1,44 @@ +{ + "name": "@hcengineering/diffview", + "version": "0.6.0", + "main": "lib/index.js", + "svelte": "src/index.ts", + "types": "types/index.d.ts", + "files": [ + "lib/**/*", + "types/**/*", + "tsconfig.json" + ], + "author": "Copyright © Hardcore Engineering Inc.", + "license": "EPL-2.0", + "scripts": { + "build": "compile", + "build:watch": "compile", + "format": "format src", + "test": "jest --passWithNoTests --silent", + "_phase:build": "compile transpile src", + "_phase:test": "jest --passWithNoTests --silent", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-n": "^15.4.0", + "eslint": "^8.54.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "prettier": "^3.1.0", + "typescript": "^5.3.3", + "jest": "^29.7.0", + "ts-jest": "^29.1.1", + "@types/jest": "^29.5.5" + }, + "dependencies": { + "@hcengineering/core": "^0.6.32", + "@hcengineering/platform": "^0.6.11", + "@hcengineering/ui": "^0.6.15" + } +} diff --git a/plugins/diffview/src/index.ts b/plugins/diffview/src/index.ts new file mode 100644 index 0000000000..f7be7e7c07 --- /dev/null +++ b/plugins/diffview/src/index.ts @@ -0,0 +1,59 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import type { IntlString, Plugin } from '@hcengineering/platform' +import { plugin } from '@hcengineering/platform' +import { AnyComponent } from '@hcengineering/ui' + +export * from './types' + +/** + * @public + */ +export const diffviewId = 'diffview' as Plugin + +/** + * @public + */ +export type Diff = string + +/** + * @public + */ +export type DiffViewMode = 'unified' | 'split' + +/** + * @public + */ +export interface DiffFileId { + fileName: string + sha: string +} + +/** + * @public + */ +export default plugin(diffviewId, { + component: { + DiffView: '' as AnyComponent, + InlineDiffView: '' as AnyComponent + }, + string: { + ViewMode: '' as IntlString, + Unified: '' as IntlString, + Split: '' as IntlString, + Viewed: '' as IntlString + } +}) diff --git a/plugins/diffview/src/types.ts b/plugins/diffview/src/types.ts new file mode 100644 index 0000000000..fe90f2233d --- /dev/null +++ b/plugins/diffview/src/types.ts @@ -0,0 +1,123 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @public + */ +export enum DiffLineType { + INSERT = 'insert', + DELETE = 'delete', + CONTEXT = 'context', + EMPTY = 'empty' +} + +/** + * @public + */ +export interface DiffLineDeleted { + type: DiffLineType.DELETE + oldNumber: number + newNumber: undefined +} + +/** + * @public + */ +export interface DiffLineInserted { + type: DiffLineType.INSERT + oldNumber: undefined + newNumber: number +} + +/** + * @public + */ +export interface DiffLineContext { + type: DiffLineType.CONTEXT + oldNumber: number + newNumber: number +} + +/** + * @public + */ +export interface DiffLineEmpty { + type: DiffLineType.EMPTY + oldNumber: undefined + newNumber: undefined +} + +/** + * @public + */ +export interface DiffLineContent { + prefix: string + content: string +} + +/** + * @public + */ +export type DiffLine = (DiffLineDeleted | DiffLineInserted | DiffLineContext | DiffLineEmpty) & DiffLineContent + +/** + * @public + */ +export const EmptyLine: DiffLine = { + type: DiffLineType.EMPTY, + oldNumber: undefined, + newNumber: undefined, + prefix: '', + content: '' +} + +/** + * @public + */ +export interface DiffHunk { + header: string + lines: DiffLine[] + oldStartLine: number + newStartLine: number +} + +/** + * @public + */ +export interface DiffFileStats { + addedLines: number + deletedLines: number +} + +/** + * @public + */ +export type DiffFileType = 'add' | 'delete' | 'modify' | 'rename' | 'copy' + +/** + * @public + */ +export interface DiffFile { + fileName: string + sha: string + hunks: DiffHunk[] + diffType: DiffFileType + language: string + oldName: string + newName: string + isBinary?: boolean + isTooBig?: boolean + stats: DiffFileStats +} diff --git a/plugins/diffview/tsconfig.json b/plugins/diffview/tsconfig.json new file mode 100644 index 0000000000..59e4fd4297 --- /dev/null +++ b/plugins/diffview/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "./node_modules/@hcengineering/platform-rig/profiles/default/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "declarationDir": "./types", + "tsBuildInfoFile": ".build/build.tsbuildinfo" + } +} \ No newline at end of file diff --git a/plugins/love-assets/package.json b/plugins/love-assets/package.json index 457b725152..532a34ae5d 100644 --- a/plugins/love-assets/package.json +++ b/plugins/love-assets/package.json @@ -2,7 +2,7 @@ "name": "@hcengineering/love-assets", "version": "0.6.0", "main": "src/index.ts", - "author": "Uberflow Contributors", + "author": "Copyright © Hardcore Engineering Inc.", "template": "@hcengineering/assets-package", "license": "EPL-2.0", "scripts": { diff --git a/plugins/love/package.json b/plugins/love/package.json index 62ce97b910..8b214191fb 100644 --- a/plugins/love/package.json +++ b/plugins/love/package.json @@ -9,7 +9,7 @@ "types/**/*", "tsconfig.json" ], - "author": "Uberflow Contributors", + "author": "Copyright © Hardcore Engineering Inc.", "license": "EPL-2.0", "scripts": { "build": "compile", diff --git a/plugins/print-assets/package.json b/plugins/print-assets/package.json index 37c14f87ba..5dd07911c5 100644 --- a/plugins/print-assets/package.json +++ b/plugins/print-assets/package.json @@ -2,7 +2,7 @@ "name": "@hcengineering/print-assets", "version": "0.6.0", "main": "src/index.ts", - "author": "Uberflow Contributors", + "author": "Copyright © Hardcore Engineering Inc.", "template": "@hcengineering/assets-package", "license": "EPL-2.0", "scripts": { diff --git a/plugins/print/package.json b/plugins/print/package.json index 1e20a0190f..265833f6d3 100644 --- a/plugins/print/package.json +++ b/plugins/print/package.json @@ -9,7 +9,7 @@ "types/**/*", "tsconfig.json" ], - "author": "Uberflow Contributors", + "author": "Copyright © Hardcore Engineering Inc.", "license": "EPL-2.0", "scripts": { "build": "compile", diff --git a/plugins/sign/package.json b/plugins/sign/package.json index 0f86373539..768074d28b 100644 --- a/plugins/sign/package.json +++ b/plugins/sign/package.json @@ -9,7 +9,7 @@ "types/**/*", "tsconfig.json" ], - "author": "Uberflow Contributors", + "author": "Copyright © Hardcore Engineering Inc.", "license": "EPL-2.0", "scripts": { "build": "compile", diff --git a/plugins/time-assets/package.json b/plugins/time-assets/package.json index 6526d041a2..d06a1f7dde 100644 --- a/plugins/time-assets/package.json +++ b/plugins/time-assets/package.json @@ -2,7 +2,7 @@ "name": "@hcengineering/time-assets", "version": "0.6.0", "main": "src/index.ts", - "author": "Uberflow Contributors", + "author": "Copyright © Hardcore Engineering Inc.", "template": "@hcengineering/assets-package", "license": "EPL-2.0", "scripts": { diff --git a/plugins/time-resources/package.json b/plugins/time-resources/package.json index 4f52fb967f..20709b519f 100644 --- a/plugins/time-resources/package.json +++ b/plugins/time-resources/package.json @@ -2,7 +2,7 @@ "name": "@hcengineering/time-resources", "version": "0.6.0", "main": "src/index.ts", - "author": "Uberflow Contributors", + "author": "Copyright © Hardcore Engineering Inc.", "license": "EPL-2.0", "scripts": { "build": "compile ui", diff --git a/plugins/time/package.json b/plugins/time/package.json index 853b4b054b..70fae0761b 100644 --- a/plugins/time/package.json +++ b/plugins/time/package.json @@ -9,7 +9,7 @@ "types/**/*", "tsconfig.json" ], - "author": "Uberflow Contributors", + "author": "Copyright © Hardcore Engineering Inc.", "license": "EPL-2.0", "scripts": { "build": "compile", diff --git a/pods/account/package.json b/pods/account/package.json index 3d6cd452c6..719afe5104 100644 --- a/pods/account/package.json +++ b/pods/account/package.json @@ -62,6 +62,8 @@ "@koa/cors": "^5.0.0", "@hcengineering/server-token": "^0.6.11", "@hcengineering/server-core": "^0.6.1", - "@hcengineering/model-all": "^0.6.0" + "@hcengineering/model-all": "^0.6.0", + "@hcengineering/analytics": "^0.6.0", + "@hcengineering/analytics-service": "^0.6.0" } } diff --git a/pods/account/src/__start.ts b/pods/account/src/__start.ts index f891ce1c73..113f03a061 100644 --- a/pods/account/src/__start.ts +++ b/pods/account/src/__start.ts @@ -1,30 +1,48 @@ // -// Copyright © 2022 Hardcore Engineering Inc. +// Copyright © 2023 Hardcore Engineering Inc. // -// Licensed under the Eclipse Public License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. You may -// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// -// See the License for the specific language governing permissions and -// limitations under the License. -// - +import { Analytics } from '@hcengineering/analytics' +import { MeasureMetricsContext, metricsToString, newMetrics, type Tx } from '@hcengineering/core' import { loadBrandingMap } from '@hcengineering/server-core' -import { serveAccount } from '@hcengineering/account-service' -import { MeasureMetricsContext, newMetrics, type Tx } from '@hcengineering/core' +import { configureAnalytics, SplitLogger } from '@hcengineering/analytics-service' import builder, { getModelVersion, migrateOperations } from '@hcengineering/model-all' +import { writeFile } from 'fs/promises' +import { join } from 'path' +import { serveAccount } from '@hcengineering/account-service' const enabled = (process.env.MODEL_ENABLED ?? '*').split(',').map((it) => it.trim()) const disabled = (process.env.MODEL_DISABLED ?? '').split(',').map((it) => it.trim()) const txes = JSON.parse(JSON.stringify(builder(enabled, disabled).getTxes())) as Tx[] -const metricsContext = new MeasureMetricsContext('account', {}, {}, newMetrics()) +configureAnalytics(process.env.SENTRY_DSN, {}) +Analytics.setTag('application', 'transactor') + +const metricsContext = new MeasureMetricsContext( + 'account', + {}, + {}, + newMetrics(), + new SplitLogger('account', { + root: join(process.cwd(), 'logs'), + enableConsole: (process.env.ENABLE_CONSOLE ?? 'true') === 'true' + }) +) + +let oldMetricsValue = '' + +const intTimer = setInterval(() => { + const val = metricsToString(metricsContext.metrics, 'Account', 140) + if (val !== oldMetricsValue) { + oldMetricsValue = val + void writeFile('metrics.txt', val).catch((err) => { + console.error(err) + }) + } +}, 30000) const brandingPath = process.env.BRANDING_PATH -serveAccount(metricsContext, getModelVersion(), txes, migrateOperations, '', loadBrandingMap(brandingPath)) +serveAccount(metricsContext, getModelVersion(), txes, migrateOperations, '', loadBrandingMap(brandingPath), () => { + clearInterval(intTimer) +}) diff --git a/pods/backup/package.json b/pods/backup/package.json index cc73be451d..86c36c2c6f 100644 --- a/pods/backup/package.json +++ b/pods/backup/package.json @@ -54,6 +54,8 @@ "@hcengineering/client-resources": "^0.6.27", "@hcengineering/core": "^0.6.32", "dotenv": "~16.0.0", - "@hcengineering/backup-service": "^0.6.0" + "@hcengineering/backup-service": "^0.6.0", + "@hcengineering/analytics": "^0.6.0", + "@hcengineering/analytics-service": "^0.6.0" } } diff --git a/pods/backup/src/index.ts b/pods/backup/src/index.ts index a52fe1ad28..8648efad7b 100644 --- a/pods/backup/src/index.ts +++ b/pods/backup/src/index.ts @@ -13,21 +13,58 @@ // limitations under the License. // +import { Analytics } from '@hcengineering/analytics' import { startBackup } from '@hcengineering/backup-service' -import { MeasureMetricsContext } from '@hcengineering/core' +import { MeasureMetricsContext, metricsToString, newMetrics } from '@hcengineering/core' import { DummyDbAdapter, DummyFullTextAdapter, type PipelineFactory } from '@hcengineering/server-core' import { createServerPipeline } from '@hcengineering/server-pipeline' +import { configureAnalytics, SplitLogger } from '@hcengineering/analytics-service' +import { writeFile } from 'fs/promises' +import { join } from 'path' -const ctx = new MeasureMetricsContext('backup-service', {}) -startBackup(ctx, (mongoUrl, storageAdapter) => { +const metricsContext = new MeasureMetricsContext( + 'github', + {}, + {}, + newMetrics(), + new SplitLogger('backup-service', { + root: join(process.cwd(), 'logs'), + enableConsole: (process.env.ENABLE_CONSOLE ?? 'true') === 'true' + }) +) + +const sentryDSN = process.env.SENTRY_DSN + +configureAnalytics(sentryDSN, {}) +Analytics.setTag('application', 'backup-service') + +let oldMetricsValue = '' + +const intTimer = setInterval(() => { + const val = metricsToString(metricsContext.metrics, 'Backup', 140) + if (val !== oldMetricsValue) { + oldMetricsValue = val + void writeFile('metrics.txt', val).catch((err) => { + console.error(err) + }) + } +}, 30000) + +const onClose = (): void => { + clearInterval(intTimer) + metricsContext.info('Closed') +} + +startBackup(metricsContext, (mongoUrl, storageAdapter) => { const factory: PipelineFactory = createServerPipeline( - ctx, + metricsContext, mongoUrl, { externalStorage: storageAdapter, fullTextUrl: '', indexParallel: 0, indexProcessing: 0, + disableTriggers: true, rekoniUrl: '', usePassedCtx: true }, @@ -47,3 +84,6 @@ startBackup(ctx, (mongoUrl, storageAdapter) => { ) return factory }) + +process.on('SIGINT', onClose) +process.on('SIGTERM', onClose) diff --git a/pods/collaborator/package.json b/pods/collaborator/package.json index 5b1ab2a6e6..1824082a25 100644 --- a/pods/collaborator/package.json +++ b/pods/collaborator/package.json @@ -47,6 +47,8 @@ "dependencies": { "@hcengineering/core": "^0.6.32", "@hcengineering/collaborator": "^0.6.0", - "@hcengineering/platform": "^0.6.11" + "@hcengineering/platform": "^0.6.11", + "@hcengineering/analytics": "^0.6.0", + "@hcengineering/analytics-service": "^0.6.0" } } diff --git a/pods/collaborator/src/__start.ts b/pods/collaborator/src/__start.ts index cb7e70c2e3..56be4a901f 100644 --- a/pods/collaborator/src/__start.ts +++ b/pods/collaborator/src/__start.ts @@ -13,9 +13,39 @@ // limitations under the License. // -import { MeasureMetricsContext, newMetrics } from '@hcengineering/core' +import { Analytics } from '@hcengineering/analytics' +import { MeasureMetricsContext, metricsToString, newMetrics } from '@hcengineering/core' import { startCollaborator } from '@hcengineering/collaborator' +import { configureAnalytics, SplitLogger } from '@hcengineering/analytics-service' +import { writeFile } from 'fs/promises' +import { join } from 'path' -const ctx = new MeasureMetricsContext('collaborator', {}, {}, newMetrics()) +configureAnalytics(process.env.SENTRY_DSN, {}) +Analytics.setTag('application', 'collaborator') -void startCollaborator(ctx) +const ctx = new MeasureMetricsContext( + 'collaborator', + {}, + {}, + newMetrics(), + new SplitLogger('collaborator', { + root: join(process.cwd(), 'logs'), + enableConsole: (process.env.ENABLE_CONSOLE ?? 'true') === 'true' + }) +) + +let oldMetricsValue = '' + +const intTimer = setInterval(() => { + const val = metricsToString(ctx.metrics, 'Collaborator', 140) + if (val !== oldMetricsValue) { + oldMetricsValue = val + void writeFile('metrics.txt', val).catch((err) => { + console.error(err) + }) + } +}, 30000) + +void startCollaborator(ctx, () => { + clearInterval(intTimer) +}) diff --git a/pods/front/Dockerfile b/pods/front/Dockerfile index ea4a47bff9..acdf2ad0a7 100644 --- a/pods/front/Dockerfile +++ b/pods/front/Dockerfile @@ -12,6 +12,7 @@ ENV LD_PRELOAD=libjemalloc.so.2 ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true COPY bundle/bundle.js ./ +COPY bundle/bundle.js.map ./ COPY dist/ ./dist/ EXPOSE 8080 diff --git a/pods/front/package.json b/pods/front/package.json index 4ff1dcda4a..b4fff43f88 100644 --- a/pods/front/package.json +++ b/pods/front/package.json @@ -14,7 +14,7 @@ "_phase:package": "rushx package", "_phase:docker-build": "rushx docker:build", "_phase:docker-staging": "rushx docker:staging", - "bundle": "mkdir -p bundle && esbuild src/__start.ts --keep-names --define:process.env.MODEL_VERSION=$(node ../../common/scripts/show_version.js) --bundle --minify --platform=node --external:sharp > bundle/bundle.js", + "bundle": "mkdir -p bundle && esbuild src/__start.ts --keep-names --define:process.env.MODEL_VERSION=$(node ../../common/scripts/show_version.js) --bundle --minify --platform=node --external:sharp --outfile=bundle/bundle.js --log-level=error --sourcemap=external", "package": "rm -rf ./dist && cp -r ../../dev/prod/dist . && cp -r ../../dev/prod/public/* ./dist/ && rm ./dist/config.json", "docker:build": "../../common/scripts/docker_build.sh hardcoreeng/front", "docker:staging": "../../common/scripts/docker_tag.sh hardcoreeng/front staging", @@ -68,6 +68,8 @@ "@hcengineering/server-token": "^0.6.11", "@hcengineering/attachment": "^0.6.14", "body-parser": "^1.20.2", - "sharp": "~0.32.0" + "sharp": "~0.32.0", + "@hcengineering/analytics": "^0.6.0", + "@hcengineering/analytics-service": "^0.6.0" } } diff --git a/pods/front/src/__start.ts b/pods/front/src/__start.ts index 24c6005920..1a8662e455 100644 --- a/pods/front/src/__start.ts +++ b/pods/front/src/__start.ts @@ -1,17 +1,42 @@ // -// Copyright © 2020, 2021 Anticrm Platform Contributors. -// Copyright © 2021 Hardcore Engineering Inc. -// -// Licensed under the Eclipse Public License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. You may -// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright © 2023 Hardcore Engineering Inc. // -import '@hcengineering/front/src/__start' +import { Analytics } from '@hcengineering/analytics' +import { MeasureMetricsContext, newMetrics } from '@hcengineering/core' +import { startFront } from '@hcengineering/front/src/starter' +import { configureAnalytics, SplitLogger } from '@hcengineering/analytics-service' +import { join } from 'path' + +configureAnalytics(process.env.SENTRY_DSN, {}) +Analytics.setTag('application', 'front') + +const metricsContext = new MeasureMetricsContext( + 'front', + {}, + {}, + newMetrics(), + new SplitLogger('front', { + root: join(process.cwd(), 'logs'), + enableConsole: (process.env.ENABLE_CONSOLE ?? 'true') === 'true' + }) +) + +startFront(metricsContext, { + GITHUB_APP: process.env.GITHUB_APP ?? '', + GITHUB_CLIENTID: process.env.GITHUB_CLIENTID ?? '', + INTERCOM_APP_ID: process.env.INTERCOM_APP_ID ?? '', + INTERCOM_API_URL: process.env.INTERCOM_API_URL ?? '', + GITHUB_URL: process.env.GITHUB_URL ?? '', + SENTRY_DSN: process.env.SENTRY_DSN ?? '', + LIVEKIT_WS: process.env.LIVEKIT_WS ?? '', + LOVE_ENDPOINT: process.env.LOVE_ENDPOINT ?? '', + SIGN_URL: process.env.SIGN_URL ?? '', + PRINT_URL: process.env.PRINT_URL ?? '', + PUSH_PUBLIC_KEY: process.env.PUSH_PUBLIC_KEY ?? '', + POSTHOG_API_KEY: process.env.POSTHOG_API_KEY, + POSTHOG_HOST: process.env.POSTHOG_HOST, + DESKTOP_UPDATES_URL: process.env.DESKTOP_UPDATES_URL, + DESKTOP_UPDATES_CHANNEL: process.env.DESKTOP_UPDATES_CHANNEL, + ANALYTICS_COLLECTOR_URL: process.env.ANALYTICS_COLLECTOR_URL +}) diff --git a/pods/server/Dockerfile b/pods/server/Dockerfile index c733cd4a02..60431253c7 100644 --- a/pods/server/Dockerfile +++ b/pods/server/Dockerfile @@ -1,8 +1,6 @@ FROM node:20 -ENV NODE_ENV production - -WORKDIR /app +WORKDIR /usr/src/app RUN npm install --ignore-scripts=false --verbose bufferutil utf-8-validate @mongodb-js/zstd snappy --unsafe-perm RUN npm install --ignore-scripts=false --verbose uNetworking/uWebSockets.js#v20.43.0 @@ -13,9 +11,9 @@ ENV LD_PRELOAD=libjemalloc.so.2 ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true COPY bundle/bundle.js ./ +COPY bundle/bundle.js.map ./ RUN mv node_modules/uWebSockets.js/*.node . EXPOSE 8080 - ENV UWS_HTTP_MAX_HEADERS_SIZE 32768 -CMD [ "node", "./bundle.js" ] +CMD node --enable-source-maps --inspect bundle.js diff --git a/pods/server/package.json b/pods/server/package.json index e7a3348ccb..a6c37d705e 100644 --- a/pods/server/package.json +++ b/pods/server/package.json @@ -8,18 +8,20 @@ "template": "@hcengineering/node-package", "license": "EPL-2.0", "scripts": { - "start": "cross-env MONGO_URL=mongodb://localhost:27017 ELASTIC_URL=http://localhost:9200 MINIO_ENDPOINT=localhost MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin METRICS_CONSOLE=false SERVER_SECRET=secret REKONI_URL=http://localhost:4004 FRONT_URL=http://localhost:8080 MODEL_VERSION=$(node ../../common/scripts/show_version.js) GIT_REVISION=$(git describe --all --long) node --nolazy -r ts-node/register src/__start.ts", + "start": "rush bundle --to @hcengineering/server && cross-env NODE_ENV=production ELASTIC_INDEX_NAME=local_storage_index MODEL_VERSION=$(node ../../common/scripts/show_version.js) ACCOUNTS_URL=http://localhost:3000 REKONI_URL=http://localhost:4004 MONGO_URL=mongodb://localhost:27017 ELASTIC_URL=http://localhost:9200 FRONT_URL=http://localhost:8087 UPLOAD_URL=/upload MINIO_ENDPOINT=localhost MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin METRICS_CONSOLE=true SERVER_SECRET=secret node --inspect --enable-source-maps bundle/bundle.js", + "start-u": "rush bundle --to @hcengineering/server && cp ./node_modules/@hcengineering/uws/lib/*.node ./bundle/ && cross-env NODE_ENV=production SERVER_PROVIDER=uweb ELASTIC_INDEX_NAME=local_storage_index MODEL_VERSION=$(node ../../common/scripts/show_version.js) ACCOUNTS_URL=http://localhost:3000 REKONI_URL=http://localhost:4004 MONGO_URL=mongodb://localhost:27017 ELASTIC_URL=http://localhost:9200 FRONT_URL=http://localhost:8087 UPLOAD_URL=/upload MINIO_ENDPOINT=localhost MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin METRICS_CONSOLE=true SERVER_SECRET=secret node --inspect bundle/bundle.js", + "start-flame": "rush bundle --to @hcengineering/server && cross-env NODE_ENV=production ELASTIC_INDEX_NAME=local_storage_index MODEL_VERSION=$(node ../../common/scripts/show_version.js) ACCOUNTS_URL=http://localhost:3000 REKONI_URL=http://localhost:4004 MONGO_URL=mongodb://localhost:27017 ELASTIC_URL=http://localhost:9200 FRONT_URL=http://localhost:8087 UPLOAD_URL=/upload MINIO_ENDPOINT=localhost MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin METRICS_CONSOLE=true SERVER_SECRET=secret clinic flame --dest ./out -- node --nolazy -r ts-node/register --enable-source-maps src/__start.ts", "build": "compile", "_phase:bundle": "rushx bundle", "_phase:docker-build": "rushx docker:build", "_phase:docker-staging": "rushx docker:staging", - "bundle": "mkdir -p bundle && esbuild src/__start.ts --keep-names --bundle --external:*.node --sourcemap=inline --minify --platform=node --external:bufferutil --external:utf-8-validate --define:process.env.MODEL_VERSION=$(node ../../common/scripts/show_version.js) --define:process.env.GIT_REVISION=$(../../common/scripts/git_version.sh) > bundle/bundle.js", + "bundle": "mkdir -p bundle && esbuild src/__start.ts --minify --bundle --keep-names --platform=node --external:*.node --external:bufferutil --external:utf-8-validate --define:process.env.MODEL_VERSION=$(node ../../common/scripts/show_version.js) --define:process.env.GIT_REVISION=$(../../common/scripts/git_version.sh) --outfile=bundle/bundle.js --log-level=error --sourcemap=external", "docker:build": "../../common/scripts/docker_build.sh hardcoreeng/transactor", + "docker:tbuild": "docker build -t hardcoreeng/transactor . --platform=linux/amd64 && ../../common/scripts/docker_tag_push.sh hardcoreeng/transactor", "docker:staging": "../../common/scripts/docker_tag.sh hardcoreeng/transactor staging", "docker:push": "../../common/scripts/docker_tag.sh hardcoreeng/transactor", "build:watch": "compile", "format": "format src", - "docker:tbuild": "docker build -t hardcoreeng/transactor . --platform=linux/amd64 && ../../common/scripts/docker_tag_push.sh hardcoreeng/transactor", "test": "jest --passWithNoTests --silent --forceExit", "_phase:build": "compile transpile src", "_phase:test": "jest --passWithNoTests --silent --forceExit", @@ -35,6 +37,7 @@ "eslint-plugin-promise": "^6.1.1", "eslint-plugin-n": "^15.4.0", "eslint": "^8.54.0", + "eslint-config-prettier": "^8.8.0", "@types/ws": "^8.5.11", "ts-node": "^10.8.0", "esbuild": "^0.20.0", @@ -51,10 +54,26 @@ "@hcengineering/platform": "^0.6.11", "@hcengineering/server-core": "^0.6.1", "@hcengineering/server-ws": "^0.6.11", - "@hcengineering/server-token": "^0.6.11", + "@hcengineering/uws": "^0.6.0", "@hcengineering/server": "^0.6.4", "@hcengineering/server-storage": "^0.6.0", "@hcengineering/server-pipeline": "^0.6.0", + "@hcengineering/mongo": "^0.6.1", + "@hcengineering/elastic": "^0.6.0", + "elastic-apm-node": "~3.26.0", + "@hcengineering/server-token": "^0.6.11", + "@hcengineering/middleware": "^0.6.0", + "@hcengineering/minio": "^0.6.0", + "@hcengineering/openai": "^0.6.0", + "@hcengineering/translate": "^0.6.0", + "@hcengineering/server-github": "^0.6.0", + "@hcengineering/server-github-resources": "^0.6.0", + "@hcengineering/github": "^0.6.0", + "@hcengineering/github-assets": "^0.6.0", + "@hcengineering/server-analytics-collector": "^0.6.0", + "@hcengineering/server-analytics-collector-resources": "^0.6.0", + "@hcengineering/analytics": "^0.6.0", + "@hcengineering/analytics-service": "^0.6.0", "@hcengineering/contact": "^0.6.24", "@hcengineering/notification": "^0.6.23", "@hcengineering/server-notification": "^0.6.1" diff --git a/pods/server/src/__start.ts b/pods/server/src/__start.ts index 5a54cb09d6..8ea676b062 100644 --- a/pods/server/src/__start.ts +++ b/pods/server/src/__start.ts @@ -1,40 +1,47 @@ // -// Copyright © 2020, 2021 Anticrm Platform Contributors. -// Copyright © 2021 Hardcore Engineering Inc. -// -// Licensed under the Eclipse Public License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. You may -// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright © 2023 Hardcore Engineering Inc // // Add this to the VERY top of the first file loaded in your app +import { Analytics } from '@hcengineering/analytics' import contactPlugin from '@hcengineering/contact' +import { MeasureMetricsContext, newMetrics } from '@hcengineering/core' import notification from '@hcengineering/notification' import { setMetadata } from '@hcengineering/platform' -import { serverConfigFromEnv } from '@hcengineering/server' +import { getMetricsContext, serverConfigFromEnv } from '@hcengineering/server' import { storageConfigFromEnv } from '@hcengineering/server-storage' import serverCore, { type StorageConfiguration, loadBrandingMap } from '@hcengineering/server-core' import serverNotification from '@hcengineering/server-notification' import serverToken from '@hcengineering/server-token' -import { start } from '.' import { serverFactories } from '@hcengineering/server-ws/src/factories' +import { SplitLogger, configureAnalytics } from '@hcengineering/analytics-service' +import { join } from 'path' +import { start } from '.' const serverFactory = serverFactories[(process.env.SERVER_PROVIDER as string) ?? 'ws'] ?? serverFactories.ws -const config = serverConfigFromEnv() +configureAnalytics(process.env.SENTRY_DSN, {}) +Analytics.setTag('application', 'transactor') +// Force create server metrics context with proper logging +getMetricsContext( + () => + new MeasureMetricsContext( + 'server', + {}, + {}, + newMetrics(), + new SplitLogger('server', { + root: join(process.cwd(), 'logs'), + enableConsole: (process.env.ENABLE_CONSOLE ?? 'true') === 'true' + }) + ) +) + +const config = serverConfigFromEnv() const storageConfig: StorageConfiguration = storageConfigFromEnv() -const cursorMaxTime = process.env.SERVER_CURSOR_MAXTIMEMS - const lastNameFirst = process.env.LAST_NAME_FIRST === 'true' -setMetadata(serverCore.metadata.CursorMaxTimeMS, cursorMaxTime) +setMetadata(contactPlugin.metadata.LastNameFirst, lastNameFirst) setMetadata(serverCore.metadata.FrontUrl, config.frontUrl) setMetadata(serverCore.metadata.UploadURL, config.uploadUrl) setMetadata(serverToken.metadata.Secret, config.serverSecret) @@ -42,16 +49,8 @@ setMetadata(serverNotification.metadata.SesUrl, config.sesUrl ?? '') setMetadata(notification.metadata.PushPublicKey, config.pushPublicKey) setMetadata(serverNotification.metadata.PushPrivateKey, config.pushPrivateKey) setMetadata(serverNotification.metadata.PushSubject, config.pushSubject) -setMetadata(contactPlugin.metadata.LastNameFirst, lastNameFirst) setMetadata(serverCore.metadata.ElasticIndexName, config.elasticIndexName) -setMetadata(serverCore.metadata.ElasticIndexVersion, 'v1') -// eslint-disable-next-line @typescript-eslint/no-floating-promises -console.log( - `starting server on ${config.serverPort} git_version: ${process.env.GIT_REVISION ?? ''} model_version: ${ - process.env.MODEL_VERSION ?? '' - }` -) const shutdown = start(config.url, { fullTextUrl: config.elasticUrl, storageConfig, @@ -59,11 +58,11 @@ const shutdown = start(config.url, { port: config.serverPort, serverFactory, indexParallel: 2, - indexProcessing: 50, + indexProcessing: 500, productId: '', brandingMap: loadBrandingMap(config.brandingPath), - enableCompression: config.enableCompression, - accountsUrl: config.accountsUrl + accountsUrl: config.accountsUrl, + enableCompression: config.enableCompression }) const close = (): void => { @@ -74,12 +73,8 @@ const close = (): void => { }) } -process.on('uncaughtException', (e) => { - console.error(e) -}) - process.on('unhandledRejection', (reason, promise) => { - console.error('Unhandled Rejection at:', promise, 'reason:', reason) + console.log('Unhandled Rejection at:', promise, 'reason:', reason) }) process.on('SIGINT', close) diff --git a/qms-tests/docker-compose.yaml b/qms-tests/docker-compose.yaml index 2527c23ed1..1bba36f48c 100644 --- a/qms-tests/docker-compose.yaml +++ b/qms-tests/docker-compose.yaml @@ -137,14 +137,5 @@ services: resources: limits: memory: 1024M - # qms-workers: - # image: hardcoreeng/qms-workers - # restart: always - # links: - # - transactor - # - account - # environment: - # - SECRET=secret - # - ACCOUNTS_URL=http://account:3003 volumes: files: diff --git a/rush.json b/rush.json index be489dcfb6..456ad418d8 100644 --- a/rush.json +++ b/rush.json @@ -466,6 +466,11 @@ "projectFolder": "packages/analytics", "shouldPublish": false }, + { + "packageName": "@hcengineering/analytics-service", + "projectFolder": "packages/analytics-service", + "shouldPublish": false + }, { "packageName": "@hcengineering/storage", "projectFolder": "packages/storage", @@ -1911,6 +1916,166 @@ "packageName": "@hcengineering/model-server-training", "projectFolder": "models/server-training", "shouldPublish": false + }, + { + "packageName": "@hcengineering/desktop", + "projectFolder": "desktop", + "shouldPublish": false + }, + { + "packageName": "desktop", + "projectFolder": "desktop-package", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/diffview", + "projectFolder": "plugins/diffview", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/diffview-assets", + "projectFolder": "plugins/diffview-assets", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/diffview-resources", + "projectFolder": "plugins/diffview-resources", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/github", + "projectFolder": "services/github/github", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/github-assets", + "projectFolder": "services/github/github-assets", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/github-resources", + "projectFolder": "services/github/github-resources", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/model-github", + "projectFolder": "services/github/model-github", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/pod-github", + "projectFolder": "services/github/pod-github", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/server-github", + "projectFolder": "services/github/server-github", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/server-github-resources", + "projectFolder": "services/github/server-github-resources", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/server-github-model", + "projectFolder": "services/github/server-github-model", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/desktop-preferences", + "projectFolder": "plugins/desktop-preferences", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/desktop-preferences-assets", + "projectFolder": "plugins/desktop-preferences-assets", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/desktop-preferences-resources", + "projectFolder": "plugins/desktop-preferences-resources", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/model-desktop-preferences", + "projectFolder": "models/desktop-preferences", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/pod-ses", + "projectFolder": "services/ses/pod-ses", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/pod-telegram", + "projectFolder": "services/telegram/pod-telegram", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/pod-gmail", + "projectFolder": "services/gmail/pod-gmail", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/pod-calendar", + "projectFolder": "services/calendar/pod-calendar", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/qms-doc-import-tool", + "projectFolder": "dev/doc-import-tool", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/pod-love", + "projectFolder": "services/love", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/pod-print", + "projectFolder": "services/print/pod-print", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/pod-sign", + "projectFolder": "services/sign/pod-sign", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/rekoni-service", + "projectFolder": "services/rekoni", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/pod-analytics-collector", + "projectFolder": "services/analytics-collector/pod-analytics-collector", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/analytics-collector", + "projectFolder": "plugins/analytics-collector", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/analytics-collector-assets", + "projectFolder": "plugins/analytics-collector-assets", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/model-analytics-collector", + "projectFolder": "models/analytics-collector", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/server-analytics-collector", + "projectFolder": "server-plugins/analytics-collector", + "shouldPublish": false + }, + { + "packageName": "@hcengineering/server-analytics-collector-resources", + "projectFolder": "server-plugins/analytics-collector-resources", + "shouldPublish": false } ] } diff --git a/server-plugins/analytics-collector-resources/.eslintrc.js b/server-plugins/analytics-collector-resources/.eslintrc.js new file mode 100644 index 0000000000..72235dc283 --- /dev/null +++ b/server-plugins/analytics-collector-resources/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.json' + } +} diff --git a/server-plugins/analytics-collector-resources/.npmignore b/server-plugins/analytics-collector-resources/.npmignore new file mode 100644 index 0000000000..e3ec093c38 --- /dev/null +++ b/server-plugins/analytics-collector-resources/.npmignore @@ -0,0 +1,4 @@ +* +!/lib/** +!CHANGELOG.md +/lib/**/__tests__/ diff --git a/server-plugins/analytics-collector-resources/.prettierignore b/server-plugins/analytics-collector-resources/.prettierignore new file mode 100644 index 0000000000..21c8f7d149 --- /dev/null +++ b/server-plugins/analytics-collector-resources/.prettierignore @@ -0,0 +1 @@ +tsdoc-metadata.json \ No newline at end of file diff --git a/server-plugins/analytics-collector-resources/config/rig.json b/server-plugins/analytics-collector-resources/config/rig.json new file mode 100644 index 0000000000..0110930f55 --- /dev/null +++ b/server-plugins/analytics-collector-resources/config/rig.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig" +} diff --git a/server-plugins/analytics-collector-resources/jest.config.js b/server-plugins/analytics-collector-resources/jest.config.js new file mode 100644 index 0000000000..2cfd408b67 --- /dev/null +++ b/server-plugins/analytics-collector-resources/jest.config.js @@ -0,0 +1,7 @@ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'], + roots: ["./src"], + coverageReporters: ["text-summary", "html"] +} diff --git a/server-plugins/analytics-collector-resources/package.json b/server-plugins/analytics-collector-resources/package.json new file mode 100644 index 0000000000..48f87fac88 --- /dev/null +++ b/server-plugins/analytics-collector-resources/package.json @@ -0,0 +1,48 @@ +{ + "name": "@hcengineering/server-analytics-collector-resources", + "version": "0.6.0", + "main": "lib/index.js", + "svelte": "src/index.ts", + "types": "types/index.d.ts", + "files": [ + "lib/**/*", + "types/**/*", + "tsconfig.json" + ], + "author": "Hardcore Engineering Inc.", + "scripts": { + "build": "compile", + "build:watch": "compile", + "format": "format src", + "test": "jest --passWithNoTests --silent", + "_phase:build": "compile transpile src", + "_phase:test": "jest --passWithNoTests --silent", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0", + "@types/jest": "^29.5.5", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint": "^8.54.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-n": "^15.4.0", + "eslint-plugin-promise": "^6.1.1", + "jest": "^29.7.0", + "prettier": "^3.1.0", + "ts-jest": "^29.1.1", + "typescript": "^5.3.3" + }, + "dependencies": { + "@hcengineering/chunter": "^0.6.20", + "@hcengineering/contact": "^0.6.24", + "@hcengineering/core": "^0.6.32", + "@hcengineering/platform": "^0.6.11", + "@hcengineering/server-core": "^0.6.1", + "@hcengineering/server-templates": "^0.6.0", + "@hcengineering/templates": "^0.6.11", + "@hcengineering/analytics-collector": "^0.6.0" + } +} diff --git a/server-plugins/analytics-collector-resources/src/index.ts b/server-plugins/analytics-collector-resources/src/index.ts new file mode 100644 index 0000000000..8c6f050453 --- /dev/null +++ b/server-plugins/analytics-collector-resources/src/index.ts @@ -0,0 +1,19 @@ +// +// Copyright © 2024 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +export * from './utils' + +// eslint-disable-next-line @typescript-eslint/explicit-function-return-type +export default async () => ({}) diff --git a/server-plugins/analytics-collector-resources/src/utils.ts b/server-plugins/analytics-collector-resources/src/utils.ts new file mode 100644 index 0000000000..6a2e2e24f6 --- /dev/null +++ b/server-plugins/analytics-collector-resources/src/utils.ts @@ -0,0 +1,57 @@ +// +// Copyright © 2024 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +import chunter, { Channel } from '@hcengineering/chunter' +import core, { AccountRole, Ref, TxOperations } from '@hcengineering/core' +import analyticsCollector, { getAnalyticsChannelName } from '@hcengineering/analytics-collector' +import contact, { Person } from '@hcengineering/contact' +import { translate } from '@hcengineering/platform' + +export async function getOrCreateAnalyticsChannel ( + client: TxOperations, + email: string, + workspace: string, + person?: Person +): Promise | undefined> { + const channel = await client.findOne(chunter.class.Channel, { + [`${analyticsCollector.mixin.AnalyticsChannel}.workspace`]: workspace, + [`${analyticsCollector.mixin.AnalyticsChannel}.email`]: email + }) + + if (channel !== undefined) { + return channel._id + } + + const accounts = await client.findAll(contact.class.PersonAccount, { role: { $ne: AccountRole.Guest } }) + + const _id = await client.createDoc(chunter.class.Channel, core.space.Space, { + name: getAnalyticsChannelName(workspace, email), + topic: await translate(analyticsCollector.string.AnalyticsChannelDescription, { + user: person?.name ?? email, + workspace + }), + description: '', + private: false, + members: accounts.map(({ _id }) => _id), + autoJoin: true, + archived: false + }) + + await client.createMixin(_id, chunter.class.Channel, core.space.Space, analyticsCollector.mixin.AnalyticsChannel, { + workspace, + email + }) + + return _id +} diff --git a/server-plugins/analytics-collector-resources/tsconfig.json b/server-plugins/analytics-collector-resources/tsconfig.json new file mode 100644 index 0000000000..59e4fd4297 --- /dev/null +++ b/server-plugins/analytics-collector-resources/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "./node_modules/@hcengineering/platform-rig/profiles/default/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "declarationDir": "./types", + "tsBuildInfoFile": ".build/build.tsbuildinfo" + } +} \ No newline at end of file diff --git a/server-plugins/analytics-collector/.eslintrc.js b/server-plugins/analytics-collector/.eslintrc.js new file mode 100644 index 0000000000..72235dc283 --- /dev/null +++ b/server-plugins/analytics-collector/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.json' + } +} diff --git a/server-plugins/analytics-collector/.npmignore b/server-plugins/analytics-collector/.npmignore new file mode 100644 index 0000000000..e3ec093c38 --- /dev/null +++ b/server-plugins/analytics-collector/.npmignore @@ -0,0 +1,4 @@ +* +!/lib/** +!CHANGELOG.md +/lib/**/__tests__/ diff --git a/server-plugins/analytics-collector/config/rig.json b/server-plugins/analytics-collector/config/rig.json new file mode 100644 index 0000000000..0110930f55 --- /dev/null +++ b/server-plugins/analytics-collector/config/rig.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig" +} diff --git a/server-plugins/analytics-collector/jest.config.js b/server-plugins/analytics-collector/jest.config.js new file mode 100644 index 0000000000..2cfd408b67 --- /dev/null +++ b/server-plugins/analytics-collector/jest.config.js @@ -0,0 +1,7 @@ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'], + roots: ["./src"], + coverageReporters: ["text-summary", "html"] +} diff --git a/server-plugins/analytics-collector/package.json b/server-plugins/analytics-collector/package.json new file mode 100644 index 0000000000..e6384ec673 --- /dev/null +++ b/server-plugins/analytics-collector/package.json @@ -0,0 +1,45 @@ +{ + "name": "@hcengineering/server-analytics-collector", + "version": "0.6.0", + "main": "lib/index.js", + "svelte": "src/index.ts", + "types": "types/index.d.ts", + "files": [ + "lib/**/*", + "types/**/*", + "tsconfig.json" + ], + "author": "Hardcore Engineering Inc.", + "scripts": { + "build": "compile", + "build:watch": "compile", + "format": "format src", + "test": "jest --passWithNoTests --silent", + "_phase:build": "compile transpile src", + "_phase:test": "jest --passWithNoTests --silent", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0", + "@types/jest": "^29.5.5", + "@types/node": "~20.11.16", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint": "^8.54.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-n": "^15.4.0", + "eslint-plugin-promise": "^6.1.1", + "jest": "^29.7.0", + "prettier": "^3.1.0", + "ts-jest": "^29.1.1", + "typescript": "^5.3.3" + }, + "dependencies": { + "@hcengineering/analytics-collector": "^0.6.0", + "@hcengineering/platform": "^0.6.11", + "@hcengineering/core": "^0.6.32", + "@hcengineering/server-core": "^0.6.1" + } +} diff --git a/server-plugins/analytics-collector/src/index.ts b/server-plugins/analytics-collector/src/index.ts new file mode 100644 index 0000000000..a892c5d893 --- /dev/null +++ b/server-plugins/analytics-collector/src/index.ts @@ -0,0 +1,18 @@ +// +// Copyright © 2024 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import type { Plugin } from '@hcengineering/platform' + +export const serverAnalyticsCollectorId = 'server-analytics-collector' as Plugin diff --git a/server-plugins/analytics-collector/tsconfig.json b/server-plugins/analytics-collector/tsconfig.json new file mode 100644 index 0000000000..59e4fd4297 --- /dev/null +++ b/server-plugins/analytics-collector/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "./node_modules/@hcengineering/platform-rig/profiles/default/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "declarationDir": "./types", + "tsBuildInfoFile": ".build/build.tsbuildinfo" + } +} \ No newline at end of file diff --git a/server/core/src/plugin.ts b/server/core/src/plugin.ts index 64d60c4868..8fbac478f3 100644 --- a/server/core/src/plugin.ts +++ b/server/core/src/plugin.ts @@ -42,7 +42,6 @@ const serverCore = plugin(serverCoreId, { metadata: { FrontUrl: '' as Metadata, UploadURL: '' as Metadata, - CursorMaxTimeMS: '' as Metadata, ElasticIndexName: '' as Metadata, ElasticIndexVersion: '' as Metadata } diff --git a/services/analytics-collector/pod-analytics-collector/.eslintrc.js b/services/analytics-collector/pod-analytics-collector/.eslintrc.js new file mode 100644 index 0000000000..72235dc283 --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.json' + } +} diff --git a/services/analytics-collector/pod-analytics-collector/.npmignore b/services/analytics-collector/pod-analytics-collector/.npmignore new file mode 100644 index 0000000000..e3ec093c38 --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/.npmignore @@ -0,0 +1,4 @@ +* +!/lib/** +!CHANGELOG.md +/lib/**/__tests__/ diff --git a/services/analytics-collector/pod-analytics-collector/Dockerfile b/services/analytics-collector/pod-analytics-collector/Dockerfile new file mode 100644 index 0000000000..05f99cc8df --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/Dockerfile @@ -0,0 +1,8 @@ +FROM node:20-alpine + +WORKDIR /usr/src/app + +COPY bundle/bundle.js ./ + +EXPOSE 4007 +CMD [ "node", "bundle.js" ] diff --git a/services/analytics-collector/pod-analytics-collector/config/rig.json b/services/analytics-collector/pod-analytics-collector/config/rig.json new file mode 100644 index 0000000000..0110930f55 --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/config/rig.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig" +} diff --git a/services/analytics-collector/pod-analytics-collector/jest.config.js b/services/analytics-collector/pod-analytics-collector/jest.config.js new file mode 100644 index 0000000000..2cfd408b67 --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/jest.config.js @@ -0,0 +1,7 @@ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'], + roots: ["./src"], + coverageReporters: ["text-summary", "html"] +} diff --git a/services/analytics-collector/pod-analytics-collector/package.json b/services/analytics-collector/pod-analytics-collector/package.json new file mode 100644 index 0000000000..b1ea87c06b --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/package.json @@ -0,0 +1,104 @@ +{ + "name": "@hcengineering/pod-analytics-collector", + "version": "0.6.0", + "main": "lib/index.js", + "svelte": "src/index.ts", + "types": "types/index.d.ts", + "files": [ + "lib/**/*", + "types/**/*", + "tsconfig.json" + ], + "author": "Hardcore Engineering Inc.", + "scripts": { + "build": "compile", + "build:watch": "compile", + "test": "jest --passWithNoTests --silent", + "_phase:bundle": "rushx bundle", + "_phase:docker-build": "rushx docker:build", + "_phase:docker-staging": "rushx docker:staging", + "bundle": "mkdir -p bundle && esbuild src/index.ts --bundle --platform=node > bundle/bundle.js", + "docker:build": "../../../common/scripts/docker_build.sh hardcoreeng/analytics-collector", + "docker:staging": "../../../common/scripts/docker_tag.sh hardcoreeng/analytics-collector staging", + "docker:push": "../../../common/scripts/docker_tag.sh hardcoreeng/analytics-collector", + "docker:tbuild": "rush bundle --to @hcengineering/pod-analytics-collector && docker build -t hardcoreeng/analytics-collector . --platform=linux/amd64 && ../../../common/scripts/docker_tag_push.sh hardcoreeng/analytics-collector", + "run-local": "cross-env APP_ID=$(cat ../../../../uberflow_private/appid) PRIVATE_KEY=\"$(cat ../../../../uberflow_private/private-key.pem)\" CLIENT_ID=$(cat ../../../../uberflow_private/client-id) CLIENT_SECRET=$(cat ../../../../uberflow_private/client-secret) SERVER_SECRET=secret ACCOUNTS_URL=http://localhost:3000/ COLLABORATOR_URL=http://localhost:3078 COLLABORATOR_API_URL=http://localhost:3078 MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin MINIO_ENDPOINT=localhost ts-node src/index.ts", + "format": "format src", + "_phase:build": "compile transpile src", + "_phase:test": "jest --passWithNoTests --silent", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0", + "@tsconfig/node16": "^1.0.4", + "@types/cors": "^2.8.12", + "@types/express": "^4.17.13", + "@types/node": "~20.11.16", + "@types/ws": "^8.5.11", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", + "esbuild": "^0.20.0", + "eslint": "^8.54.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-n": "^15.4.0", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^6.1.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.1", + "@types/jest": "^29.5.5", + "prettier": "^3.1.0", + "ts-node": "^10.8.0", + "typescript": "^5.3.3" + }, + "dependencies": { + "@hcengineering/account": "^0.6.0", + "@hcengineering/chunter": "^0.6.20", + "@hcengineering/chunter-assets": "^0.6.18", + "@hcengineering/client": "^0.6.18", + "@hcengineering/client-resources": "^0.6.27", + "@hcengineering/contact": "^0.6.24", + "@hcengineering/contact-assets": "^0.6.13", + "@hcengineering/core": "^0.6.32", + "@hcengineering/document": "^0.6.0", + "@hcengineering/document-assets": "^0.6.0", + "@hcengineering/drive": "^0.6.0", + "@hcengineering/drive-assets": "^0.6.0", + "@hcengineering/hr": "^0.6.19", + "@hcengineering/hr-assets": "^0.6.19", + "@hcengineering/lead": "^0.6.0", + "@hcengineering/lead-assets": "^0.6.0", + "@hcengineering/love": "^0.6.0", + "@hcengineering/love-assets": "^0.6.0", + "@hcengineering/notification": "^0.6.23", + "@hcengineering/notification-assets": "^0.6.17", + "@hcengineering/platform": "^0.6.11", + "@hcengineering/preference": "^0.6.13", + "@hcengineering/preference-assets": "^0.6.0", + "@hcengineering/recruit": "^0.6.29", + "@hcengineering/recruit-assets": "^0.6.23", + "@hcengineering/server-core": "^0.6.1", + "@hcengineering/server-token": "^0.6.11", + "@hcengineering/setting": "^0.6.17", + "@hcengineering/setting-assets": "^0.6.15", + "@hcengineering/text": "^0.6.5", + "@hcengineering/time": "^0.6.0", + "@hcengineering/time-assets": "^0.6.0", + "@hcengineering/tracker": "^0.6.24", + "@hcengineering/tracker-assets": "^0.6.0", + "@hcengineering/view": "^0.6.13", + "@hcengineering/view-assets": "^0.6.11", + "@hcengineering/workbench": "^0.6.16", + "@hcengineering/workbench-assets": "^0.6.14", + "@hcengineering/analytics-collector": "^0.6.0", + "@hcengineering/analytics-collector-assets": "^0.6.0", + "@hcengineering/server-analytics-collector-resources": "^0.6.0", + "@hcengineering/server-client": "^0.6.0", + "cors": "^2.8.5", + "dotenv": "~16.0.0", + "express": "^4.19.2", + "puppeteer": "^22.6.1", + "ws": "^8.18.0" + } +} diff --git a/services/analytics-collector/pod-analytics-collector/src/account.ts b/services/analytics-collector/pod-analytics-collector/src/account.ts new file mode 100644 index 0000000000..bc4174648f --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/src/account.ts @@ -0,0 +1,21 @@ +import config from './config' +import { WorkspaceLoginInfo } from '@hcengineering/account' + +export async function getWorkspaceInfo (token: string): Promise { + const accountsUrl = config.AccountsUrl + const workspaceInfo = await ( + await fetch(accountsUrl, { + method: 'POST', + headers: { + Authorization: 'Bearer ' + token, + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + method: 'getWorkspaceInfo', + params: [] + }) + }) + ).json() + + return workspaceInfo.result as WorkspaceLoginInfo +} diff --git a/services/analytics-collector/pod-analytics-collector/src/collector.ts b/services/analytics-collector/pod-analytics-collector/src/collector.ts new file mode 100644 index 0000000000..1c1192f28e --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/src/collector.ts @@ -0,0 +1,173 @@ +import { generateToken, Token } from '@hcengineering/server-token' +import { AnalyticEvent } from '@hcengineering/analytics-collector' +import { AccountRole, getWorkspaceId, Timestamp, toWorkspaceString, WorkspaceId } from '@hcengineering/core' + +import { WorkspaceClient } from './workspaceClient' +import config from './config' +import { getWorkspaceInfo } from './account' + +const clearEventsTimeout = 10 * 60 * 1000 // 10 hour +const eventsTimeToLive = 60 * 60 * 1000 // 1 hour +const closeWorkspaceTimeout = 10 * 60 * 1000 // 10 minutes + +export class Collector { + private readonly workspaces: Map = new Map() + private readonly closeWorkspaceTimeouts: Map = new Map() + private readonly createdWorkspaces: Set = new Set() + + supportClient: WorkspaceClient | undefined = undefined + eventsByEmail = new Map() + + periodicTimer: NodeJS.Timeout + + constructor () { + this.periodicTimer = setInterval(() => { + void this.clearEvents() + }, clearEventsTimeout) + } + + async clearEvents (): Promise { + const now = Date.now() + + for (const [key, events] of this.eventsByEmail.entries()) { + const firstValidIndex = events.findIndex((event) => now - event.timestamp < eventsTimeToLive) + + if (firstValidIndex === -1) { + this.eventsByEmail.delete(key) + } else { + this.eventsByEmail.set(key, events.slice(firstValidIndex)) + } + } + } + + async closeWorkspaceClient (workspaceId: WorkspaceId): Promise { + const workspace = toWorkspaceString(workspaceId) + const timeoutId = this.closeWorkspaceTimeouts.get(workspace) + + if (timeoutId !== undefined) { + clearTimeout(timeoutId) + this.closeWorkspaceTimeouts.delete(workspace) + } + + const client = this.workspaces.get(workspace) + + if (client !== undefined) { + await client.close() + this.workspaces.delete(workspace) + } + } + + async getWorkspaceClient (workspaceId: WorkspaceId): Promise { + const workspace = toWorkspaceString(workspaceId) + const wsClient = this.workspaces.get(workspace) ?? new WorkspaceClient(workspaceId) + + if (!this.workspaces.has(workspace)) { + this.workspaces.set(workspace, wsClient) + } + + const timeoutId = this.closeWorkspaceTimeouts.get(workspace) + + if (timeoutId !== undefined) { + clearTimeout(timeoutId) + } + + const newTimeoutId = setTimeout(() => { + void this.closeWorkspaceClient(workspaceId) + }, closeWorkspaceTimeout) + + this.closeWorkspaceTimeouts.set(workspace, newTimeoutId) + + return wsClient + } + + collect (events: AnalyticEvent[], token: Token): void { + if (toWorkspaceString(token.workspace) === config.SupportWorkspace) { + return + } + + const existingEvents = this.eventsByEmail.get(token.email) ?? [] + + this.eventsByEmail.set(token.email, existingEvents.concat(events)) + void this.pushEvents(events, token) + } + + getSupportWorkspaceClient (): WorkspaceClient { + if (this.supportClient === undefined) { + this.supportClient = new WorkspaceClient(getWorkspaceId(config.SupportWorkspace)) + } + + return this.supportClient + } + + async isWorkspaceCreated (token: Token): Promise { + const ws = toWorkspaceString(token.workspace) + + if (this.createdWorkspaces.has(ws)) { + return true + } + + console.info('isWorkspaceCreated', token.email, token.workspace.name) + const info = await getWorkspaceInfo(generateToken(token.email, token.workspace, token.extra)) + + console.log('workspace info', info?.workspace, info?.email, info?.endpoint) + + if (info === undefined) { + return false + } + if (info?.creating === true) { + return false + } + + this.createdWorkspaces.add(ws) + return true + } + + async pushEvents (events: AnalyticEvent[], token: Token): Promise { + const isCreated = await this.isWorkspaceCreated(token) + + if (!isCreated) { + return + } + + const fromWsClient = await this.getWorkspaceClient(token.workspace) + const account = await fromWsClient.getAccount(token.email) + + if (account === undefined) { + console.error('Cannnot found account', { email: token.email, workspace: toWorkspaceString(token.workspace) }) + return + } + + if (account.role !== AccountRole.Owner) { + return + } + + const person = await fromWsClient.getPerson(account) + const client = this.getSupportWorkspaceClient() + + await client.pushEvents(events, token.email, token.workspace, person) + } + + getEvents (start?: Timestamp, end?: Timestamp): AnalyticEvent[] { + const events = Array.from(this.eventsByEmail.values()) + .flat() + .sort((e1, e2) => e1.timestamp - e2.timestamp) + + if (start === undefined && end === undefined) { + return events + } + + if (start === undefined && end !== undefined) { + return events.filter((e) => e.timestamp <= end) + } + + if (end === undefined && start !== undefined) { + return events.filter((e) => e.timestamp >= start) + } + + return events.filter((e) => e.timestamp >= (start ?? 0) && e.timestamp <= (end ?? 0)) + } + + async close (): Promise { + clearInterval(this.periodicTimer) + } +} diff --git a/services/analytics-collector/pod-analytics-collector/src/config.ts b/services/analytics-collector/pod-analytics-collector/src/config.ts new file mode 100644 index 0000000000..b9704aa3c8 --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/src/config.ts @@ -0,0 +1,46 @@ +// +// Copyright © 2024 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +export interface Config { + Port: number + DbURL: string + Secret: string + ServiceID: string + SupportWorkspace: string + AccountsUrl: string +} + +const parseNumber = (str: string | undefined): number | undefined => (str !== undefined ? Number(str) : undefined) + +const config: Config = (() => { + const params: Partial = { + Port: parseNumber(process.env.PORT) ?? 4007, + DbURL: process.env.MONGO_URL, + Secret: process.env.SECRET, + ServiceID: process.env.SERVICE_ID ?? 'analytics-collector-service', + SupportWorkspace: process.env.SUPPORT_WORKSPACE, + AccountsUrl: process.env.ACCOUNTS_URL + } + + const missingEnv = (Object.keys(params) as Array).filter((key) => params[key] === undefined) + + if (missingEnv.length > 0) { + throw Error(`Missing config for attributes: ${missingEnv.join(', ')}`) + } + + return params as Config +})() + +export default config diff --git a/services/analytics-collector/pod-analytics-collector/src/error.ts b/services/analytics-collector/pod-analytics-collector/src/error.ts new file mode 100644 index 0000000000..74f470ab06 --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/src/error.ts @@ -0,0 +1,39 @@ +// +// Copyright © 2024 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +const generateMessage = (code: number): string => { + if (code === 401) { + return 'Unauthorized' + } + + if (code === 404) { + return 'Not Found' + } + + if (code === 400) { + return 'Bad Request' + } + + return 'Error' +} + +export class ApiError extends Error { + readonly code: number + + constructor (code: number, message?: string) { + super(message ?? generateMessage(code)) + this.code = code + } +} diff --git a/services/analytics-collector/pod-analytics-collector/src/format.ts b/services/analytics-collector/pod-analytics-collector/src/format.ts new file mode 100644 index 0000000000..887e77b11c --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/src/format.ts @@ -0,0 +1,400 @@ +// +// Copyright © 2024 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import analyticsCollector, { AnalyticEvent, AnalyticEventType } from '@hcengineering/analytics-collector' +import chunter, { chunterId } from '@hcengineering/chunter' +import contact, { contactId } from '@hcengineering/contact' +import document, { documentId } from '@hcengineering/document' +import drive, { driveId } from '@hcengineering/drive' +import love, { loveId } from '@hcengineering/love' +import notification, { notificationId } from '@hcengineering/notification' +import recruit, { recruitId } from '@hcengineering/recruit' +import time, { timeId } from '@hcengineering/time' +import tracker, { trackerId } from '@hcengineering/tracker' +import { Class, Doc, Hierarchy, Markup, Ref } from '@hcengineering/core' +import { MarkupNode, MarkupNodeType, MarkupMark, MarkupMarkType } from '@hcengineering/text' +import { translate } from '@hcengineering/platform' + +export async function eventToMarkup (event: AnalyticEvent, hierarchy: Hierarchy): Promise { + switch (event.event) { + case AnalyticEventType.CustomEvent: + return formatCustomEvent(event) + case AnalyticEventType.Error: + return await formatErrorEvent(event) + case AnalyticEventType.Navigation: + return await formatNavigationEvent(event, hierarchy) + case AnalyticEventType.SetTag: + return await formatSetTagEvent(event) + case AnalyticEventType.SetUser: + return undefined + } +} + +function toMarkup (items: MarkupNode[]): Markup { + return JSON.stringify({ + type: 'doc', + content: [ + { + type: 'paragraph', + content: items + } + ] + }) +} + +function toText (text: string, display: 'normal' | 'bold' | 'code' = 'normal'): MarkupNode { + const marks: MarkupMark[] = [] + if (display === 'bold') { + marks.push({ type: MarkupMarkType.bold, attrs: {} }) + } + + if (display === 'code') { + marks.push({ type: MarkupMarkType.code, attrs: {} }) + } + + return { type: MarkupNodeType.text, text, marks } +} + +function formatCustomEvent (event: AnalyticEvent): string | undefined { + const text = event.params.event as string | undefined + + if (text === undefined || text === '') return + + return toMarkup([toText(text)]) +} + +async function formatErrorEvent (event: AnalyticEvent): Promise { + const error = event.params.error + + if (error === undefined || (typeof error === 'object' && Object.keys(error).length === 0)) { + return + } + + const text = await translate(analyticsCollector.string.Error, {}) + + return toMarkup([toText(text), toText(error.message ?? JSON.stringify(error), 'code')]) +} + +async function formatSetTagEvent (event: AnalyticEvent): Promise { + const key = event.params.key + + if (key === undefined || key === '' || key === 'workspace') return + + const value = event.params.value + const setLabel = await translate(analyticsCollector.string.Set, {}) + const toLabel = await translate(analyticsCollector.string.To, {}) + + return toMarkup([toText(setLabel), toText(key, 'bold'), toText(toLabel), toText(value, 'bold')]) +} + +async function formatNavigationEvent (event: AnalyticEvent, hierarchy: Hierarchy): Promise { + const path = event.params.path as string | undefined + + if (path === undefined || path === '') return + const location = parseLocation(new URL('http://localhost:8080' + path)) + + if (location.path.length < 3) { + return undefined + } + + return toMarkup(await formatPath(location, hierarchy)) +} + +async function formatPath (location: Location, hierarchy: Hierarchy): Promise { + const { path } = location + + const app = path[2] + + if (app === chunterId) { + const app = await translate(chunter.string.Chat, {}) + return await formatLocWithThreads(location, hierarchy, app) + } + + if (app === notificationId) { + const app = await translate(notification.string.Inbox, {}) + return await formatLocWithThreads(location, hierarchy, app) + } + + if (app === timeId) { + return await formatTimeLoc(location, hierarchy) + } + + if (app === loveId) { + const app = await translate(love.string.Office, {}) + return await navigateToApp(app) + } + + if (app === contactId) { + return await formatContactsLoc(location) + } + + if (app === recruitId) { + return await formatRecruitLoc(location, hierarchy) + } + + if (app === trackerId) { + return await formatTrackerLoc(location, hierarchy) + } + + if (app === documentId) { + return await formatDocumentLoc(location, hierarchy) + } + + if (app === 'team') { + const app = await translate(time.string.Team, {}) + return await navigateToApp(app) + } + + if (app === driveId) { + return await formatDriveLoc(location) + } + + return await formatDefaultLoc(location) +} + +async function navigateToApp (app: string): Promise { + const workbench = await translate(analyticsCollector.string.Workbench, {}) + + return [toText(workbench, 'bold'), toText(app)] +} + +async function navigateToSpecial (app: string, special: string, id?: string): Promise { + const openSpecial = await translate(analyticsCollector.string.OpenSpecial, { special }) + + return [ + toText(app, 'bold'), + toText(': ', 'bold'), + toText(openSpecial), + ...(id !== undefined ? [toText(' '), toText(id, 'code')] : []) + ] +} + +async function formatLocWithThreads (location: Location, hierarchy: Hierarchy, app: string): Promise { + const { path } = location + + if (path.length < 4) { + return await navigateToApp(app) + } + + const [_id, _class] = decodeURIComponent(path[3]).split('|') + + if (_id === undefined || _class === undefined) { + return await navigateToSpecial(app, path[3]) + } + + const label = await translate(hierarchy.getClass(_class as Ref>).label, {}) + const thread = await translate(chunter.string.Thread, {}) + + const openSpecial = await translate(analyticsCollector.string.OpenSpecial, { special: thread }) + + return [ + ...(await navigateToSpecial(app, label, _id)), + ...(path[4] !== undefined ? [toText(', '), toText(openSpecial), toText(path[4], 'code')] : []) + ] +} + +async function formatTimeLoc (location: Location, hierarchy: Hierarchy): Promise { + const { fragment } = location + const app = await translate(time.string.Planner, {}) + + if (fragment === undefined || fragment === '') { + return await navigateToApp(app) + } + + const [, _id, _class] = decodeURIComponent(fragment).split('|') + + if (_id === undefined || _class === undefined) { + return await navigateToApp(app) + } + + const label = await translate(hierarchy.getClass(_class as Ref>).label, {}) + + return await navigateToSpecial(app, label, _id) +} + +async function formatRecruitLoc (location: Location, hierarchy: Hierarchy): Promise { + const { path } = location + const app = await translate(recruit.string.RecruitApplication, {}) + + if (path.length < 4) { + return await navigateToApp(app) + } + + const applicationClass = hierarchy.getClass(recruit.class.Applicant) + const vacancyClass = hierarchy.getClass(recruit.class.Vacancy) + const reviewClass = hierarchy.getClass(recruit.class.Review) + const talentClass = hierarchy.getClass(recruit.mixin.Candidate) + const vacancyListClass = hierarchy.getClass(recruit.mixin.VacancyList) + + const [prefix] = path[3].split('-') + let label: string | undefined + + if (prefix === applicationClass.shortLabel) { + label = await translate(applicationClass.label, {}) + } + + if (prefix === vacancyClass.shortLabel) { + label = await translate(vacancyClass.label, {}) + } + + if (prefix === reviewClass.shortLabel) { + label = await translate(reviewClass.label, {}) + } + + if (prefix === talentClass.shortLabel) { + label = await translate(talentClass.label, {}) + } + + if (prefix === vacancyListClass.shortLabel) { + label = await translate(vacancyListClass.label, {}) + } + + if (label !== undefined) { + return await navigateToSpecial(app, label, path[3]) + } + + return await navigateToSpecial(app, path[3]) +} + +async function formatTrackerLoc (location: Location, hierarchy: Hierarchy): Promise { + const { path, fragment } = location + const app = await translate(tracker.string.TrackerApplication, {}) + + if (path.length < 4) { + return await navigateToApp(app) + } + + if (path.length === 4) { + const issue = await translate(tracker.string.Issue, {}) + return await navigateToSpecial(app, issue, path[3]) + } + + const [, _id, _class] = fragment !== undefined ? decodeURIComponent(fragment).split('|') : [] + + if (_id === undefined || _class === undefined) { + const toSpecialLabel = await navigateToSpecial(app, path[4]) + const inProject = await translate(analyticsCollector.string.InProject, {}) + return [...toSpecialLabel, toText(inProject), toText(path[3], 'code')] + } + + const clazz = hierarchy.getClass(_class as Ref>) + const label = await translate(clazz.label, {}) + const openSpecial = await translate(analyticsCollector.string.OpenSpecial, { special: label }) + const inProject = await translate(analyticsCollector.string.InProject, {}) + + return [ + toText(app, 'bold'), + toText(': ', 'bold'), + toText(openSpecial), + toText(_id, 'code'), + toText(inProject), + toText(path[3], 'code') + ] +} + +async function formatDriveLoc (location: Location): Promise { + const { path } = location + const app = await translate(drive.string.Drive, {}) + + if (path.length < 4) { + return await navigateToApp(app) + } + + if (path.length === 4) { + return await navigateToSpecial(app, path[3]) + } + + const label = await translate(drive.string.Folder, {}) + + return await navigateToSpecial(app, label, path[4]) +} + +async function formatContactsLoc (location: Location): Promise { + const { path } = location + const app = await translate(contact.string.Contacts, {}) + + if (path.length < 4) { + return await navigateToApp(app) + } + + const spaces = ['employees', 'contacts', 'persons', 'companies'] + + if (spaces.includes(path[3])) { + return await navigateToSpecial(app, path[3]) + } + + return [ + toText(app, 'bold'), + toText(': ', 'bold'), + toText(await translate(analyticsCollector.string.Open, {})), + toText(path[3], 'code') + ] +} + +async function formatDocumentLoc (location: Location, hierarchy: Hierarchy): Promise { + const { path } = location + const app = await translate(document.string.Documents, {}) + + if (path.length < 4) { + return await navigateToApp(app) + } + + const clazz = hierarchy.getClass(document.class.Document) + const label = await translate(clazz.label, {}) + return await navigateToSpecial(app, label, path[3]) +} + +async function formatDefaultLoc (location: Location, app?: string): Promise { + const { path } = location + if (path.length < 4) { + return await navigateToApp(app ?? path[2]) + } + + return await navigateToSpecial(app ?? path[2], path[3]) +} + +export interface Location { + path: string[] + fragment?: string +} + +export function parseLocation (location: URL): Location { + return { + path: parsePath(location.pathname), + fragment: parseHash(location.hash) + } +} + +function parsePath (path: string): string[] { + const split = path.split('/').map((ps) => decodeURIComponent(ps)) + if (split.length >= 1) { + if (split[0] === '') { + split.splice(0, 1) + } + } + if (split.length >= 1) { + if (split[split.length - 1] === '') { + split.splice(split.length - 1, 1) + } + } + return split +} + +function parseHash (hash: string): string { + if (hash.startsWith('#')) { + return decodeURIComponent(hash.substring(1)) + } + return decodeURIComponent(hash) +} diff --git a/services/analytics-collector/pod-analytics-collector/src/index.ts b/services/analytics-collector/pod-analytics-collector/src/index.ts new file mode 100644 index 0000000000..7826330a41 --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/src/index.ts @@ -0,0 +1,20 @@ +// +// Copyright © 2024 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { config } from 'dotenv' +import { main } from './main' + +config() +void main() diff --git a/services/analytics-collector/pod-analytics-collector/src/loaders.ts b/services/analytics-collector/pod-analytics-collector/src/loaders.ts new file mode 100644 index 0000000000..527bd6e1e8 --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/src/loaders.ts @@ -0,0 +1,60 @@ +import { analyticsCollectorId } from '@hcengineering/analytics-collector' +import { chunterId } from '@hcengineering/chunter' +import { contactId } from '@hcengineering/contact' +import { coreId } from '@hcengineering/core' +import { documentId } from '@hcengineering/document' +import { driveId } from '@hcengineering/drive' +import { hrId } from '@hcengineering/hr' +import { leadId } from '@hcengineering/lead' +import { loveId } from '@hcengineering/love' +import { notificationId } from '@hcengineering/notification' +import { preferenceId } from '@hcengineering/preference' +import { recruitId } from '@hcengineering/recruit' +import { settingId } from '@hcengineering/setting' +import { timeId } from '@hcengineering/time' +import { trackerId } from '@hcengineering/tracker' +import { viewId } from '@hcengineering/view' +import { workbenchId } from '@hcengineering/workbench' + +import analyticsCollectorEn from '@hcengineering/analytics-collector-assets/lang/en.json' +import chunterEn from '@hcengineering/chunter-assets/lang/en.json' +import contactEn from '@hcengineering/contact-assets/lang/en.json' +import coreEng from '@hcengineering/core/lang/en.json' +import documentEn from '@hcengineering/document-assets/lang/en.json' +import driveEn from '@hcengineering/drive-assets/lang/en.json' +import hrEn from '@hcengineering/hr-assets/lang/en.json' +import leadEn from '@hcengineering/lead-assets/lang/en.json' +import loveEn from '@hcengineering/love-assets/lang/en.json' +import notificationEn from '@hcengineering/notification-assets/lang/en.json' +import platformEng from '@hcengineering/platform/lang/en.json' +import preferenceEn from '@hcengineering/preference-assets/lang/en.json' +import recruitEn from '@hcengineering/recruit-assets/lang/en.json' +import settingEn from '@hcengineering/setting-assets/lang/en.json' +import timeEn from '@hcengineering/time-assets/lang/en.json' +import trackerEn from '@hcengineering/tracker-assets/lang/en.json' +import viewEn from '@hcengineering/view-assets/lang/en.json' +import workbenchEn from '@hcengineering/workbench-assets/lang/en.json' + +import { addStringsLoader, platformId } from '@hcengineering/platform' + +export function registerLoaders (): void { + addStringsLoader(coreId, async (lang: string) => coreEng) + addStringsLoader(platformId, async (lang: string) => platformEng) + + addStringsLoader(analyticsCollectorId, async (lang: string) => analyticsCollectorEn) + addStringsLoader(chunterId, async (lang: string) => chunterEn) + addStringsLoader(contactId, async (lang: string) => contactEn) + addStringsLoader(documentId, async (lang: string) => documentEn) + addStringsLoader(driveId, async (lang: string) => driveEn) + addStringsLoader(hrId, async (lang: string) => hrEn) + addStringsLoader(leadId, async (lang: string) => leadEn) + addStringsLoader(notificationId, async (lang: string) => notificationEn) + addStringsLoader(preferenceId, async (lang: string) => preferenceEn) + addStringsLoader(recruitId, async (lang: string) => recruitEn) + addStringsLoader(settingId, async (lang: string) => settingEn) + addStringsLoader(timeId, async (lang: string) => timeEn) + addStringsLoader(trackerId, async (lang: string) => trackerEn) + addStringsLoader(viewId, async (lang: string) => viewEn) + addStringsLoader(workbenchId, async (lang: string) => workbenchEn) + addStringsLoader(loveId, async (lang: string) => loveEn) +} diff --git a/services/analytics-collector/pod-analytics-collector/src/main.ts b/services/analytics-collector/pod-analytics-collector/src/main.ts new file mode 100644 index 0000000000..41de678498 --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/src/main.ts @@ -0,0 +1,55 @@ +// +// Copyright © 2024 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { setMetadata } from '@hcengineering/platform' +import serverToken from '@hcengineering/server-token' + +import config from './config' +import { createServer, listen } from './server' +import { Collector } from './collector' +import { registerLoaders } from './loaders' +import serverClient from '@hcengineering/server-client' + +export const main = async (): Promise => { + setMetadata(serverToken.metadata.Secret, config.Secret) + setMetadata(serverClient.metadata.Endpoint, config.AccountsUrl) + setMetadata(serverClient.metadata.UserAgent, config.ServiceID) + + console.log('Analytics service') + console.log(config.AccountsUrl) + console.log(config.DbURL) + console.log(config.SupportWorkspace) + + registerLoaders() + + const collector = new Collector() + + const app = createServer(collector) + const server = listen(app, config.Port) + + const shutdown = (): void => { + void collector.close() + server.close(() => process.exit()) + } + + process.on('SIGINT', shutdown) + process.on('SIGTERM', shutdown) + process.on('uncaughtException', (e) => { + console.error(e) + }) + process.on('unhandledRejection', (e) => { + console.error(e) + }) +} diff --git a/services/analytics-collector/pod-analytics-collector/src/platform.ts b/services/analytics-collector/pod-analytics-collector/src/platform.ts new file mode 100644 index 0000000000..a8b94af0d1 --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/src/platform.ts @@ -0,0 +1,22 @@ +// +// Copyright © 2024 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { Client } from '@hcengineering/core' +import { createClient, getTransactorEndpoint } from '@hcengineering/server-client' + +export async function connectPlatform (token: string): Promise { + const endpoint = await getTransactorEndpoint(token) + return await createClient(endpoint, token) +} diff --git a/services/analytics-collector/pod-analytics-collector/src/server.ts b/services/analytics-collector/pod-analytics-collector/src/server.ts new file mode 100644 index 0000000000..71610c1318 --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/src/server.ts @@ -0,0 +1,172 @@ +// +// Copyright © 2024 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { Token, decodeToken } from '@hcengineering/server-token' +import cors from 'cors' +import express, { type Express, type NextFunction, type Request, type Response } from 'express' +import { IncomingHttpHeaders, type Server } from 'http' +import { AnalyticEvent } from '@hcengineering/analytics-collector' + +import { ApiError } from './error' +import { Collector } from './collector' + +const extractCookieToken = (cookie?: string): Token | null => { + if (cookie === undefined || cookie === null) { + return null + } + + const cookies = cookie.split(';') + const tokenCookie = cookies.find((cookie) => cookie.toLocaleLowerCase().includes('token')) + if (tokenCookie === undefined) { + return null + } + + const encodedToken = tokenCookie.split('=')[1] + if (encodedToken === undefined) { + return null + } + + return decodeToken(encodedToken) +} + +const extractAuthorizationToken = (authorization?: string): Token | null => { + if (authorization === undefined || authorization === null) { + return null + } + const encodedToken = authorization.split(' ')[1] + + if (encodedToken === undefined) { + return null + } + + return decodeToken(encodedToken) +} + +const extractToken = (headers: IncomingHttpHeaders): Token => { + try { + const token = extractCookieToken(headers.cookie) ?? extractAuthorizationToken(headers.authorization) + + if (token === null) { + throw new ApiError(401) + } + + return token + } catch { + throw new ApiError(401) + } +} + +type AsyncRequestHandler = (req: Request, res: Response, token: Token, next: NextFunction) => Promise + +const handleRequest = async ( + fn: AsyncRequestHandler, + req: Request, + res: Response, + next: NextFunction +): Promise => { + try { + const token = extractToken(req.headers) + await fn(req, res, token, next) + } catch (err: unknown) { + next(err) + } +} + +const wrapRequest = (fn: AsyncRequestHandler) => (req: Request, res: Response, next: NextFunction) => { + void handleRequest(fn, req, res, next) +} + +function isContentValid (body: any[]): boolean { + return !body.some((it) => { + if (it == null) { + return true + } + + if (!('event' in it)) { + return true + } + + if (!('params' in it)) { + return true + } + + return !('timestamp' in it) + }) +} + +function handleGetEventsRequest (req: Request, res: Response, collector: Collector): void { + const qStart = req.query.start as string + const qEnd = req.query.end as string + + const start = qStart != null ? parseInt(qStart) : undefined + const end = qEnd != null ? parseInt(qEnd) : undefined + + res.status(200) + res.contentType('application/json') + res.send(collector.getEvents(start, end)) +} + +export function createServer (collector: Collector): Express { + const app = express() + app.use(cors()) + app.use(express.json()) + + app.post( + '/collect', + wrapRequest(async (req, res, token) => { + if (req.body == null || !Array.isArray(req.body)) { + throw new ApiError(400) + } + + if (!isContentValid(req.body)) { + throw new ApiError(400) + } + + const events: AnalyticEvent[] = req.body + + collector.collect(events, token) + + res.status(200) + res.json({}) + }) + ) + + app.get( + '/events', + wrapRequest(async (req, res) => { + handleGetEventsRequest(req, res, collector) + }) + ) + + app.use((err: any, _req: any, res: any, _next: any) => { + console.log(err) + if (err instanceof ApiError) { + res.status(err.code).send({ code: err.code, message: err.message }) + return + } + + res.status(500).send(err.message?.length > 0 ? { message: err.message } : err) + }) + + return app +} + +export function listen (e: Express, port: number, host?: string): Server { + const cb = (): void => { + console.log(`Analytics collector service has been started at ${host ?? '*'}:${port}`) + } + + return host !== undefined ? e.listen(port, host, cb) : e.listen(port, cb) +} diff --git a/services/analytics-collector/pod-analytics-collector/src/workspaceClient.ts b/services/analytics-collector/pod-analytics-collector/src/workspaceClient.ts new file mode 100644 index 0000000000..4e2df0bf82 --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/src/workspaceClient.ts @@ -0,0 +1,131 @@ +// +// Copyright © 2024 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import core, { + Client, + Ref, + systemAccountEmail, + toWorkspaceString, + TxOperations, + WorkspaceId +} from '@hcengineering/core' +import { generateToken } from '@hcengineering/server-token' +import chunter, { Channel } from '@hcengineering/chunter' +import contact, { Person, PersonAccount } from '@hcengineering/contact' +import { AnalyticEvent } from '@hcengineering/analytics-collector' +import { getOrCreateAnalyticsChannel } from '@hcengineering/server-analytics-collector-resources' + +import { connectPlatform } from './platform' +import { eventToMarkup } from './format' + +export class WorkspaceClient { + client: Client | undefined + opClient: TxOperations | undefined + + initializePromise: Promise | undefined = undefined + + channelIdByKey = new Map>() + + constructor (readonly workspace: WorkspaceId) { + this.initializePromise = this.initClient().then(() => { + this.initializePromise = undefined + }) + } + + private async initClient (): Promise { + const token = generateToken(systemAccountEmail, this.workspace) + this.client = await connectPlatform(token) + + if (this.client === undefined) { + return + } + + this.opClient = new TxOperations(this.client, core.account.System) + } + + async getAccount (email: string): Promise { + if (this.initializePromise instanceof Promise) { + await this.initializePromise + } + + if (this.opClient === undefined) { + return + } + + return await this.opClient.findOne(contact.class.PersonAccount, { email }) + } + + async getPerson (account: PersonAccount): Promise { + if (this.initializePromise instanceof Promise) { + await this.initializePromise + } + + if (this.opClient === undefined) { + return + } + + return await this.opClient.findOne(contact.class.Person, { _id: account.person }) + } + + async pushEvents (events: AnalyticEvent[], email: string, workspace: WorkspaceId, person?: Person): Promise { + if (this.initializePromise instanceof Promise) { + await this.initializePromise + } + + if (this.opClient === undefined) { + return + } + + const wsString = toWorkspaceString(workspace) + const channelKey = `${email}-${wsString}` + + const channel = + this.channelIdByKey.get(channelKey) ?? (await getOrCreateAnalyticsChannel(this.opClient, email, wsString, person)) + + if (channel === undefined) { + return + } + + this.channelIdByKey.set(channelKey, channel) + + for (const event of events) { + const markup = await eventToMarkup(event, this.opClient.getHierarchy()) + + if (markup === undefined) { + continue + } + + await this.opClient.addCollection( + chunter.class.ChatMessage, + channel, + channel, + chunter.class.Channel, + 'messages', + { message: markup }, + undefined, + event.timestamp + ) + } + } + + async close (): Promise { + if (this.client === undefined) { + return + } + + await this.opClient?.close() + await this.client.close() + } +} diff --git a/services/analytics-collector/pod-analytics-collector/tsconfig.json b/services/analytics-collector/pod-analytics-collector/tsconfig.json new file mode 100644 index 0000000000..59e4fd4297 --- /dev/null +++ b/services/analytics-collector/pod-analytics-collector/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "./node_modules/@hcengineering/platform-rig/profiles/default/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "declarationDir": "./types", + "tsBuildInfoFile": ".build/build.tsbuildinfo" + } +} \ No newline at end of file diff --git a/services/calendar/pod-calendar/.eslintrc.js b/services/calendar/pod-calendar/.eslintrc.js new file mode 100644 index 0000000000..72235dc283 --- /dev/null +++ b/services/calendar/pod-calendar/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.json' + } +} diff --git a/services/calendar/pod-calendar/.npmignore b/services/calendar/pod-calendar/.npmignore new file mode 100644 index 0000000000..e3ec093c38 --- /dev/null +++ b/services/calendar/pod-calendar/.npmignore @@ -0,0 +1,4 @@ +* +!/lib/** +!CHANGELOG.md +/lib/**/__tests__/ diff --git a/services/calendar/pod-calendar/Dockerfile b/services/calendar/pod-calendar/Dockerfile new file mode 100644 index 0000000000..bb64763a26 --- /dev/null +++ b/services/calendar/pod-calendar/Dockerfile @@ -0,0 +1,9 @@ + +FROM node:20-alpine + +WORKDIR /usr/src/app + +COPY bundle/bundle.js ./ + +EXPOSE 8095 +CMD [ "node", "bundle.js" ] diff --git a/services/calendar/pod-calendar/config/rig.json b/services/calendar/pod-calendar/config/rig.json new file mode 100644 index 0000000000..0110930f55 --- /dev/null +++ b/services/calendar/pod-calendar/config/rig.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig" +} diff --git a/services/calendar/pod-calendar/jest.config.js b/services/calendar/pod-calendar/jest.config.js new file mode 100644 index 0000000000..2cfd408b67 --- /dev/null +++ b/services/calendar/pod-calendar/jest.config.js @@ -0,0 +1,7 @@ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'], + roots: ["./src"], + coverageReporters: ["text-summary", "html"] +} diff --git a/services/calendar/pod-calendar/package.json b/services/calendar/pod-calendar/package.json new file mode 100644 index 0000000000..fd9738742b --- /dev/null +++ b/services/calendar/pod-calendar/package.json @@ -0,0 +1,79 @@ +{ + "name": "@hcengineering/pod-calendar", + "version": "0.6.0", + "main": "lib/index.js", + "svelte": "src/index.ts", + "types": "types/index.d.ts", + "files": [ + "lib/**/*", + "types/**/*", + "tsconfig.json" + ], + "author": "Hardcore Engineering Inc.", + "scripts": { + "build": "compile", + "build:watch": "compile", + "test": "jest --passWithNoTests --silent", + "_phase:bundle": "rushx bundle", + "_phase:docker-build": "rushx docker:build", + "_phase:docker-staging": "rushx docker:staging", + "bundle": "mkdir -p bundle && esbuild src/index.ts --bundle --platform=node > bundle/bundle.js", + "docker:build": "../../../common/scripts/docker_build.sh hardcoreeng/calendar", + "docker:staging": "../../../common/scripts/docker_tag.sh hardcoreeng/calendar staging", + "docker:push": "../../../common/scripts/docker_tag.sh hardcoreeng/calendar", + "run-local": "cross-env ts-node src/index.ts", + "format": "format src", + "_phase:build": "compile transpile src", + "_phase:test": "jest --passWithNoTests --silent", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "@tsconfig/node16": "^1.0.4", + "@types/cors": "^2.8.12", + "@types/express": "^4.17.13", + "@types/node": "~20.11.16", + "@types/node-fetch": "~2.6.2", + "@types/ws": "^8.5.11", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@hcengineering/platform-rig": "^0.6.0", + "jest": "^29.7.0", + "ts-jest": "^29.1.1", + "@types/jest": "^29.5.5", + "@typescript-eslint/parser": "^6.11.0", + "esbuild": "^0.20.0", + "eslint": "^8.54.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-n": "^15.4.0", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^6.1.1", + "prettier": "^3.1.0", + "ts-node-dev": "^2.0.0", + "typescript": "^5.3.3" + }, + "dependencies": { + "@hcengineering/attachment": "^0.6.14", + "@hcengineering/calendar": "^0.6.24", + "@hcengineering/client": "^0.6.18", + "@hcengineering/client-resources": "^0.6.27", + "@hcengineering/contact": "^0.6.24", + "@hcengineering/core": "^0.6.32", + "@hcengineering/platform": "^0.6.11", + "@hcengineering/setting": "^0.6.17", + "@hcengineering/text": "^0.6.5", + "@hcengineering/server-client": "^0.6.0", + "dotenv": "~16.0.0", + "cors": "^2.8.5", + "express": "^4.19.2", + "fast-equals": "^5.0.1", + "file-api": "^0.10.4", + "form-data": "^4.0.0", + "googleapis": "^122.0.0", + "google-auth-library": "^8.0.2", + "jwt-simple": "^0.5.6", + "mongodb": "^6.8.0", + "node-fetch": "^2.6.6", + "ws": "^8.18.0" + } +} diff --git a/services/calendar/pod-calendar/src/base64.ts b/services/calendar/pod-calendar/src/base64.ts new file mode 100644 index 0000000000..7c6165d691 --- /dev/null +++ b/services/calendar/pod-calendar/src/base64.ts @@ -0,0 +1,26 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +export function encode64 (str: string): string { + return Buffer.from(str).toString('base64') +} + +export function decode64 (str: string): string { + return Buffer.from(str, 'base64').toString('utf8') +} + +export function arrayBufferToBase64 (buffer: ArrayBuffer): string { + return Buffer.from(buffer).toString('base64') +} diff --git a/services/calendar/pod-calendar/src/calendar.ts b/services/calendar/pod-calendar/src/calendar.ts new file mode 100644 index 0000000000..03daf71223 --- /dev/null +++ b/services/calendar/pod-calendar/src/calendar.ts @@ -0,0 +1,1259 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import calendar, { + Calendar, + Event, + ExternalCalendar, + ReccuringEvent, + ReccuringInstance, + Visibility +} from '@hcengineering/calendar' +import { Contact } from '@hcengineering/contact' +import core, { + Account, + AttachedData, + Client, + Data, + DocumentUpdate, + Ref, + TxOperations, + TxUpdateDoc, + generateId +} from '@hcengineering/core' +import setting from '@hcengineering/setting' +import { htmlToMarkup, markupToHTML } from '@hcengineering/text' +import { deepEqual } from 'fast-equals' +import type { Credentials, OAuth2Client } from 'google-auth-library' +import { calendar_v3, google } from 'googleapis' +import type { Collection, Db } from 'mongodb' +import { encode64 } from './base64' +import { CalendarController } from './calendarController' +import config from './config' +import type { CalendarHistory, EventHistory, EventWatch, ProjectCredentials, State, Token, User, Watch } from './types' +import { encodeReccuring, isToken, parseRecurrenceStrings } from './utils' +import type { WorkspaceClient } from './workspaceClient' +import { RateLimiter } from './rateLimiter' + +const SCOPES = [ + 'https://www.googleapis.com/auth/calendar.calendars.readonly', + 'https://www.googleapis.com/auth/calendar.calendarlist.readonly', + 'https://www.googleapis.com/auth/calendar.events', + 'https://www.googleapis.com/auth/userinfo.email' +] +const DUMMY_RESOURCE = 'Dummy' + +export class CalendarClient { + private readonly oAuth2Client: OAuth2Client + private readonly calendar: calendar_v3.Calendar + private readonly tokens: Collection + private readonly calendarHistories: Collection + private readonly histories: Collection + private readonly client: TxOperations + private me: string | undefined = undefined + private readonly watches: EventWatch[] = [] + private calendarWatch: Watch | undefined = undefined + private refreshTimer: NodeJS.Timeout | undefined = undefined + private readonly activeSync: Record = {} + private readonly rateLimiter = new RateLimiter(1000, 500) + + isClosed: boolean = false + + private constructor ( + credentials: ProjectCredentials, + private readonly user: User, + mongo: Db, + client: Client, + private readonly workspace: WorkspaceClient + ) { + const { client_secret, client_id, redirect_uris } = credentials.web // eslint-disable-line + this.oAuth2Client = new google.auth.OAuth2(client_id, client_secret, redirect_uris[0]) // eslint-disable-line + this.calendar = google.calendar({ version: 'v3', auth: this.oAuth2Client }) + this.tokens = mongo.collection('tokens') + this.histories = mongo.collection('histories') + this.calendarHistories = mongo.collection('calendarHistories') + this.client = new TxOperations(client, this.user.userId) + } + + static async create ( + credentials: ProjectCredentials, + user: User | Token, + mongo: Db, + client: Client, + workspace: WorkspaceClient + ): Promise { + const calendarClient = new CalendarClient(credentials, user, mongo, client, workspace) + if (isToken(user)) { + await calendarClient.setToken(user) + await calendarClient.refreshToken() + await calendarClient.addClient() + void calendarClient.startSync() + } + return calendarClient + } + + static getAutUrl (redirectURL: string, workspace: string, userId: Ref, token: string): string { + const credentials = JSON.parse(config.Credentials) + const { client_secret, client_id, redirect_uris } = credentials.web // eslint-disable-line + const oAuth2Client = new google.auth.OAuth2(client_id, client_secret, redirect_uris[0]) // eslint-disable-line + const state: State = { + token, + redirectURL, + workspace, + userId, + email: '' + } + const authUrl = oAuth2Client.generateAuthUrl({ + access_type: 'offline', + scope: SCOPES, + state: encode64(JSON.stringify(state)) + }) + return authUrl + } + + async authorize (code: string): Promise { + const token = await this.oAuth2Client.getToken(code) + await this.setToken(token.tokens) + const me = await this.getMe() + const providedScopes = token.tokens.scope?.split(' ') ?? [] + for (const scope of SCOPES) { + if (providedScopes.findIndex((p) => p === scope) === -1) { + const integrations = await this.client.findAll(setting.class.Integration, { + createdBy: this.user.userId, + type: calendar.integrationType.Calendar + }) + for (const integration of integrations.filter((p) => p.value === '')) { + await this.client.remove(integration) + } + + const updated = integrations.find((p) => p.disabled && p.value === me) + if (updated !== undefined) { + await this.client.update(updated, { + disabled: true, + error: calendar.string.NotAllPermissions + }) + } else { + await this.client.createDoc(setting.class.Integration, core.space.Workspace, { + type: calendar.integrationType.Calendar, + disabled: true, + error: calendar.string.NotAllPermissions, + value: me + }) + } + throw new Error( + `Not all scopes provided, provided: ${providedScopes.join(', ')} required: ${SCOPES.join(', ')}` + ) + } + } + await this.refreshToken() + await this.addClient() + + const integrations = await this.client.findAll(setting.class.Integration, { + createdBy: this.user.userId, + type: calendar.integrationType.Calendar + }) + + const updated = integrations.find((p) => p.disabled && p.value === me) + + for (const integration of integrations.filter((p) => p.value === '')) { + await this.client.remove(integration) + } + if (updated !== undefined) { + await this.client.update(updated, { + disabled: false, + error: null + }) + } else { + await this.client.createDoc(setting.class.Integration, core.space.Workspace, { + type: calendar.integrationType.Calendar, + disabled: false, + value: me + }) + } + + await this.startSync(me) + void this.syncOurEvents() + + return me + } + + async signout (byError: boolean = false): Promise { + try { + await this.close() + await this.oAuth2Client.revokeCredentials() + } catch {} + await this.tokens.deleteOne({ + userId: this.user.userId, + workspace: this.user.workspace + }) + const integration = await this.client.findOne(setting.class.Integration, { + createdBy: this.user.userId, + type: calendar.integrationType.Calendar, + value: this.user.email + }) + if (integration !== undefined) { + if (byError) { + await this.client.update(integration, { disabled: true }) + } else { + await this.client.remove(integration) + } + } + this.workspace.removeClient(this.user.email) + } + + async startSync (me?: string): Promise { + try { + if (me === undefined) { + me = await this.getMe() + } + await this.syncCalendars(me) + const calendars = this.workspace.getMyCalendars(me) + for (const calendar of calendars) { + if (calendar.externalId !== undefined) { + void this.sync(calendar.externalId, me) + } + } + } catch (err) { + console.log('Start sync error', this.user.workspace, this.user.userId, err) + } + } + + async startSyncCalendar (calendar: ExternalCalendar): Promise { + const me = await this.getMe() + void this.sync(calendar.externalId, me) + } + + async close (): Promise { + if (this.refreshTimer !== undefined) clearTimeout(this.refreshTimer) + for (const watch of this.watches) { + clearTimeout(watch.timer) + try { + if (watch.resourceId !== DUMMY_RESOURCE) { + await this.rateLimiter.take(1) + await this.calendar.channels.stop({ requestBody: { id: watch.channelId, resourceId: watch.resourceId } }) + } + } catch (err) { + console.log('close error', err) + } + } + if (this.calendarWatch !== undefined) { + clearTimeout(this.calendarWatch.timer) + try { + await this.rateLimiter.take(1) + await this.calendar.channels.stop({ + requestBody: { id: this.calendarWatch.channelId, resourceId: this.calendarWatch.resourceId } + }) + } catch (err) { + console.log('close error', err) + } + } + this.isClosed = true + } + + private async getMe (): Promise { + if (this.me !== undefined) { + return this.me + } + + const info = await google.oauth2({ version: 'v2', auth: this.oAuth2Client }).userinfo.get() + this.me = info.data.email ?? '' + return this.me + } + + // #region Token + + private async getCurrentToken (): Promise { + return await this.tokens.findOne({ + userId: this.user.userId, + workspace: this.user.workspace, + email: this.me ?? this.user.email + }) + } + + private async updateCurrentToken (token: Credentials): Promise { + await this.tokens.updateOne( + { + userId: this.user.userId, + workspace: this.user.workspace, + email: this.me ?? this.user.email + }, + { + $set: { + ...token + } + } + ) + } + + private async addClient (): Promise { + try { + const me = await this.getMe() + const controller = CalendarController.getCalendarController() + controller.addClient(me, this) + } catch (err) { + console.log('Add client error', this.user.workspace, this.user.userId, err) + } + } + + private async setToken (token: Credentials): Promise { + try { + this.oAuth2Client.setCredentials(token) + } catch (err: any) { + console.log('Set token error', this.user.workspace, this.user.userId, err) + await this.checkError(err) + throw err + } + } + + private async updateToken (token: Credentials): Promise { + try { + const currentToken = await this.getCurrentToken() + if (currentToken != null) { + await this.updateCurrentToken(token) + } else { + await this.tokens.insertOne({ + userId: this.user.userId, + email: this.me ?? this.user.email, + workspace: this.user.workspace, + token: this.user.token, + ...token + }) + } + } catch (err) { + console.log('update token error', this.user.workspace, this.user.userId, err) + } + } + + private async refreshToken (): Promise { + try { + const res = await this.oAuth2Client.refreshAccessToken() + await this.updateToken(res.credentials) + this.refreshTimer = setTimeout( + () => { + void this.refreshToken() + }, + 30 * 60 * 1000 + ) + } catch (err: any) { + console.log("Couldn't refresh token, error:", err) + if (err?.response?.data?.error === 'invalid_grant' || err.message === 'No refresh token is set.') { + await this.signout(true) + } else { + this.refreshTimer = setTimeout( + () => { + void this.refreshToken() + }, + 15 * 60 * 1000 + ) + } + throw err + } + } + + // #endregion + + // #region Calendars + + private async watchCalendar (): Promise { + try { + const current = this.calendarWatch + if (current !== undefined) { + clearTimeout(current.timer) + await this.rateLimiter.take(1) + await this.calendar.channels.stop({ requestBody: { id: current.channelId, resourceId: current.resourceId } }) + } + const channelId = generateId() + const me = await this.getMe() + const body = { id: channelId, address: config.WATCH_URL, type: 'webhook', token: `user=${me}&mode=calendar` } + await this.rateLimiter.take(1) + const res = await this.calendar.calendarList.watch({ requestBody: body }) + if (res.data.expiration != null && res.data.resourceId !== null) { + const time = Number(res.data.expiration) - new Date().getTime() + // eslint-disable-next-line + const timer = setTimeout(() => void this.watchCalendar(), time) + this.calendarWatch = { + channelId, + resourceId: res.data.resourceId ?? '', + timer + } + } + } catch (err) { + console.log('Calendar watch error', err) + } + } + + async syncCalendars (me: string): Promise { + const history = await this.getCalendarHistory(me) + await this.calendarSync(history?.historyId) + await this.watchCalendar() + } + + private async calendarSync (syncToken?: string, pageToken?: string): Promise { + try { + await this.rateLimiter.take(1) + const res = await this.calendar.calendarList.list({ + syncToken, + pageToken + }) + if (res.status === 410) { + await this.calendarSync() + return + } + const nextPageToken = res.data.nextPageToken + for (const calendar of res.data.items ?? []) { + try { + await this.syncCalendar(calendar) + } catch (err) { + console.log('save calendar error', JSON.stringify(event), err) + } + } + if (nextPageToken != null) { + await this.calendarSync(syncToken, nextPageToken) + } + if (res.data.nextSyncToken != null) { + await this.setCalendarHistoryId(res.data.nextSyncToken) + } + } catch (err: any) { + if (err?.response?.status === 410) { + await this.calendarSync() + return + } + console.log('Calendar sync error', this.user.workspace, this.user.userId, err) + } + } + + private async syncCalendar (val: calendar_v3.Schema$CalendarListEntry): Promise { + if (val.id != null) { + const exists = await this.client.findOne(calendar.class.ExternalCalendar, { + externalId: val.id, + externalUser: this.me ?? '' + }) + if (exists === undefined) { + const data: Data = { + name: val.summary ?? '', + visibility: 'freeBusy', + hidden: false, + externalId: val.id, + externalUser: this.me ?? '', + default: false + } + if (val.primary === true) { + const primaryExists = await this.client.findOne( + calendar.class.ExternalCalendar, + { + createdBy: this.user.userId + }, + { projection: { _id: 1 } } + ) + if (primaryExists === undefined) { + data.default = true + } + } + await this.client.createDoc(calendar.class.ExternalCalendar, calendar.space.Calendar, data) + } else { + const update: DocumentUpdate = {} + if (exists.name !== val.summary) { + update.name = val.summary ?? exists.name + } + if (Object.keys(update).length > 0) { + await this.client.update(exists, update) + } + } + } + } + + private async getCalendarHistory (me: string): Promise { + return await this.calendarHistories.findOne({ + email: me, + userId: this.user.userId, + workspace: this.user.workspace + }) + } + + private async setCalendarHistoryId (historyId: string): Promise { + const me = await this.getMe() + await this.calendarHistories.updateOne( + { + userId: this.user.userId, + workspace: this.user.workspace, + email: me + }, + { + $set: { + historyId + } + }, + { upsert: true } + ) + } + + // #endregion + + // #region Events + + // #region Incoming + + async stopWatch (calendar: ExternalCalendar): Promise { + for (const watch of this.watches) { + if (watch.calendarId === calendar.externalId) { + clearTimeout(watch.timer) + try { + if (watch.resourceId !== DUMMY_RESOURCE) { + await this.rateLimiter.take(1) + await this.calendar.channels.stop({ requestBody: { id: watch.channelId, resourceId: watch.resourceId } }) + } + } catch (err) { + console.log('close error', err) + } + } + } + } + + private async watch (calendarId: string): Promise { + try { + const index = this.watches.findIndex((p) => p.calendarId === calendarId) + if (index !== -1) { + const current = this.watches[index] + if (current !== undefined) { + clearTimeout(current.timer) + if (current.resourceId !== DUMMY_RESOURCE) { + await this.rateLimiter.take(1) + await this.calendar.channels.stop({ + requestBody: { id: current.channelId, resourceId: current.resourceId } + }) + } + } + this.watches.splice(index, 1) + } + const channelId = generateId() + const me = await this.getMe() + const body = { + id: channelId, + address: config.WATCH_URL, + type: 'webhook', + token: `user=${me}&mode=events&calendarId=${calendarId}` + } + await this.rateLimiter.take(1) + const res = await this.calendar.events.watch({ calendarId, requestBody: body }) + if (res.data.expiration != null && res.data.resourceId != null) { + const time = Number(res.data.expiration) - new Date().getTime() + // eslint-disable-next-line + const timer = setTimeout(() => void this.watch(calendarId), time) + this.watches.push({ + calendarId, + channelId, + resourceId: res.data.resourceId ?? '', + timer + }) + } + } catch (err: any) { + if (err?.errors?.[0]?.reason === 'pushNotSupportedForRequestedResource') { + await this.dummyWatch(calendarId) + } else { + console.log('Watch error', err) + await this.checkError(err) + } + } + } + + private async checkError (err: any): Promise { + if (err?.response?.data?.error === 'invalid_grant') { + await this.signout(true) + return true + } + return false + } + + private async dummyWatch (calendarId: string): Promise { + const me = await this.getMe() + const timer = setTimeout( + () => { + void this.sync(calendarId, me) + }, + 6 * 60 * 60 * 1000 + ) + this.watches.push({ + calendarId, + channelId: DUMMY_RESOURCE, + resourceId: DUMMY_RESOURCE, + timer + }) + } + + async sync (calendarId: string, me: string): Promise { + if (this.isClosed) return + if (this.activeSync[calendarId]) return + this.activeSync[calendarId] = true + await this.syncEvents(calendarId, me) + this.activeSync[calendarId] = false + await this.watch(calendarId) + } + + private async getEventHistory (calendarId: string, me: string): Promise { + return await this.histories.findOne({ + calendarId, + email: me, + userId: this.user.userId, + workspace: this.user.workspace + }) + } + + private async setEventHistoryId (calendarId: string, historyId: string): Promise { + const me = await this.getMe() + await this.histories.updateOne( + { + calendarId, + userId: this.user.userId, + workspace: this.user.workspace, + email: me + }, + { + $set: { + historyId + } + }, + { upsert: true } + ) + } + + private async syncEvents (calendarId: string, me: string): Promise { + const history = await this.getEventHistory(calendarId, me) + await this.eventsSync(calendarId, history?.historyId) + } + + private async eventsSync (calendarId: string, syncToken?: string, pageToken?: string): Promise { + try { + await this.rateLimiter.take(1) + const res = await this.calendar.events.list({ + calendarId, + syncToken, + pageToken, + showDeleted: syncToken != null + }) + if (res.status === 410) { + await this.eventsSync(calendarId) + return + } + const nextPageToken = res.data.nextPageToken + for (const event of res.data.items ?? []) { + try { + await this.syncEvent(calendarId, event, res.data.accessRole ?? 'reader') + } catch (err) { + console.log('save event error', JSON.stringify(event), err) + } + } + if (nextPageToken != null) { + await this.eventsSync(calendarId, syncToken, nextPageToken) + } + if (res.data.nextSyncToken != null) { + await this.setEventHistoryId(calendarId, res.data.nextSyncToken) + } + } catch (err: any) { + if (err?.response?.status === 410) { + await this.eventsSync(calendarId) + return + } + await this.checkError(err) + console.log('Event sync error', this.user.workspace, this.user.userId, err) + } + } + + private async syncEvent (calendarId: string, event: calendar_v3.Schema$Event, accessRole: string): Promise { + console.log('SYNC EVENT CALL', calendarId, JSON.stringify(event)) + if (event.id != null) { + const me = await this.getMe() + const calendars = this.workspace.getMyCalendars(me) + const _calendar = + calendars.find((p) => p.externalId === event.organizer?.email) ?? + calendars.find((p) => p.externalId === calendarId) ?? + calendars[0] + console.log('Target space', _calendar) + if (_calendar !== undefined) { + const exists = (await this.client.findOne(calendar.class.Event, { + eventId: event.id, + calendar: _calendar._id + })) as Event | undefined + if (exists === undefined) { + await this.saveExtEvent(event, accessRole, _calendar) + } else { + await this.updateExtEvent(event, exists) + } + } + } + } + + private async updateExtEvent (event: calendar_v3.Schema$Event, current: Event): Promise { + console.log('UPDATE EVENT', current._id, JSON.stringify(event)) + if (event.status === 'cancelled' && current._class !== calendar.class.ReccuringInstance) { + console.log('REMOVE EVENT', current._id) + await this.client.remove(current) + return + } + const data: Partial> = await this.parseUpdateData(event) + if (event.recurringEventId != null) { + const diff = this.getEventDiff( + { + ...data, + recurringEventId: event.recurringEventId as Ref, + originalStartTime: parseDate(event.originalStartTime), + isCancelled: event.status === 'cancelled' + }, + current as ReccuringInstance + ) + if (Object.keys(diff).length > 0) { + console.log('UPDATE REC INSTANCE DIFF', JSON.stringify(diff), JSON.stringify(current)) + await this.client.update(current, diff) + } + } else { + if (event.recurrence != null) { + const parseRule = parseRecurrenceStrings(event.recurrence) + const diff = this.getEventDiff( + { + ...data, + rules: parseRule.rules, + exdate: parseRule.exdate, + rdate: parseRule.rdate + }, + current as ReccuringEvent + ) + if (Object.keys(diff).length > 0) { + console.log('UPDATE REC EVENT DIFF', JSON.stringify(diff), JSON.stringify(current)) + await this.client.update(current, diff) + } + } else { + const diff = this.getEventDiff(data, current) + if (Object.keys(diff).length > 0) { + console.log('UPDATE EVENT DIFF', JSON.stringify(diff), JSON.stringify(current)) + await this.client.update(current, diff) + } + } + } + } + + private async saveExtEvent ( + event: calendar_v3.Schema$Event, + accessRole: string, + _calendar: ExternalCalendar + ): Promise { + const data: AttachedData = await this.parseData(event, accessRole, _calendar._id) + if (event.recurringEventId != null) { + const parseRule = parseRecurrenceStrings(event.recurrence ?? []) + const id = await this.client.addCollection( + calendar.class.ReccuringInstance, + calendar.space.Calendar, + calendar.ids.NoAttached, + calendar.class.Event, + 'events', + { + ...data, + recurringEventId: event.recurringEventId, + originalStartTime: parseDate(event.originalStartTime), + isCancelled: event.status === 'cancelled', + rules: parseRule.rules, + exdate: parseRule.exdate, + rdate: parseRule.rdate, + timeZone: event.start?.timeZone ?? event.end?.timeZone ?? 'Etc/GMT' + } + ) + console.log('SAVE INSTANCE', id, JSON.stringify(event)) + } else if (event.status !== 'cancelled') { + if (event.recurrence != null) { + const parseRule = parseRecurrenceStrings(event.recurrence) + const id = await this.client.addCollection( + calendar.class.ReccuringEvent, + calendar.space.Calendar, + calendar.ids.NoAttached, + calendar.class.Event, + 'events', + { + ...data, + rules: parseRule.rules, + exdate: parseRule.exdate, + rdate: parseRule.rdate, + originalStartTime: data.date, + timeZone: event.start?.timeZone ?? event.end?.timeZone ?? 'Etc/GMT' + } + ) + console.log('SAVE REC EVENT', id, JSON.stringify(event)) + } else { + const id = await this.client.addCollection( + calendar.class.Event, + calendar.space.Calendar, + calendar.ids.NoAttached, + calendar.class.Event, + 'events', + data + ) + console.log('SAVE EVENT', id, JSON.stringify(event)) + } + } + } + + private getEventDiff(data: Partial>, current: T): Partial> { + const res = {} + for (const key in data) { + if (!deepEqual((data as any)[key], (current as any)[key])) { + ;(res as any)[key] = (data as any)[key] + } + } + return res + } + + private async parseUpdateData (event: calendar_v3.Schema$Event): Promise>> { + const res: Partial> = {} + if (event.attendees !== undefined) { + const participants = await this.getParticipants(event) + res.participants = participants[0] + if (participants[1].length > 0) { + res.externalParticipants = participants[1] + } + } + if (event.location != null) { + res.location = event.location + } + if (event.description != null) { + res.description = htmlToMarkup(event.description) + } + if (event.summary != null) { + res.title = event.summary + } + if (event.start != null) { + res.date = parseDate(event.start) + } + if (event.end != null) { + res.dueDate = parseDate(event.end) + } + if (event.visibility != null && event.visibility !== 'default') { + res.visibility = + event.visibility === 'public' + ? 'public' + : (event.extendedProperties?.private?.visibility as Visibility) ?? 'private' + } + + return res + } + + private getAccess ( + event: calendar_v3.Schema$Event, + accessRole: string + ): 'freeBusyReader' | 'reader' | 'writer' | 'owner' { + if (accessRole !== 'owner') { + return accessRole as 'freeBusyReader' | 'reader' | 'writer' + } + if (event.creator?.self === true) { + return 'owner' + } else { + return 'reader' + } + } + + private async parseData ( + event: calendar_v3.Schema$Event, + accessRole: string, + _calendar: Ref + ): Promise> { + const participants = await this.getParticipants(event) + const res: AttachedData = { + date: parseDate(event.start), + dueDate: parseDate(event.end), + allDay: event.start?.date != null, + description: htmlToMarkup(event.description ?? ''), + title: event.summary ?? '', + location: event.location ?? undefined, + participants: participants[0], + eventId: event.id ?? '', + calendar: _calendar, + access: this.getAccess(event, accessRole), + timeZone: event.start?.timeZone ?? event.end?.timeZone ?? 'Etc/GMT' + } + if (participants[1].length > 0) { + res.externalParticipants = participants[1] + } + if (event.visibility != null && event.visibility !== 'default') { + res.visibility = + event.visibility === 'public' + ? 'public' + : (event.extendedProperties?.private?.visibility as Visibility) ?? 'private' + } + return res + } + + private getParticipant (value: string): { + contact?: Ref + extra?: string + } { + const integration = this.workspace.integrations.byEmail.get(value) + if (integration != null) { + return { + contact: integration + } + } + const contact = this.workspace.contacts.byEmail.get(value) + if (contact !== undefined) { + return { + contact + } + } + return { + extra: value + } + } + + private async getParticipants (event: calendar_v3.Schema$Event): Promise<[Ref[], string[]]> { + const contacts = new Set>() + const extra = new Set() + if (event.creator?.email != null) { + const res = this.getParticipant(event.creator.email) + if (res.contact !== undefined) { + contacts.add(res.contact) + } + if (res.extra !== undefined) { + extra.add(res.extra) + } + } + for (const attendee of event.attendees ?? []) { + if (attendee.email != null) { + const res = this.getParticipant(attendee.email) + if (res.contact !== undefined) { + contacts.add(res.contact) + } + if (res.extra !== undefined) { + extra.add(res.extra) + } + } + } + return [Array.from(contacts), Array.from(extra)] + } + + // #endregion + + // #region Outcoming + + private areDatesEqual (first: calendar_v3.Schema$EventDateTime, second: calendar_v3.Schema$EventDateTime): boolean { + if (first.date != null && second.date != null) { + return new Date(first.date).getTime() === new Date(second.date).getTime() + } + if (first.dateTime != null && second.dateTime != null) { + return new Date(first.dateTime).getTime() === new Date(second.dateTime).getTime() + } + return false + } + + private async createRecInstance (calendarId: string, event: ReccuringInstance): Promise { + const body = this.convertBody(event) + const req: calendar_v3.Params$Resource$Events$Instances = { + calendarId, + eventId: event.recurringEventId + } + await this.rateLimiter.take(1) + const instancesResp = await this.calendar.events.instances(req) + const items = instancesResp.data.items + const target = items?.find( + (p) => + p.originalStartTime != null && + body.originalStartTime != null && + this.areDatesEqual(p.originalStartTime, body.originalStartTime) + ) + if (target?.id != null) { + body.id = target.id + await this.rateLimiter.take(1) + await this.calendar.events.update({ + calendarId, + eventId: target.id, + requestBody: body + }) + await this.client.update(event, { eventId: body.id ?? '' }) + } + } + + async createEvent (event: Event): Promise { + try { + const _calendar = this.workspace.calendars.byId.get(event.calendar as Ref) + if (_calendar !== undefined) { + if (event._class === calendar.class.ReccuringInstance) { + await this.createRecInstance(_calendar.externalId, event as ReccuringInstance) + } else { + const body = this.convertBody(event) + await this.rateLimiter.take(1) + await this.calendar.events.insert({ + calendarId: _calendar.externalId, + requestBody: body + }) + } + } + } catch (err: any) { + await this.checkError(err) + // eslint-disable-next-line + throw new Error(`Create event error, ${this.user.workspace}, ${this.user.userId}, ${event._id}, ${err?.message}`) + } + } + + async updateEvent (event: Event, tx: TxUpdateDoc): Promise { + const _calendar = this.workspace.calendars.byId.get(event.calendar as Ref) + const calendarId = _calendar?.externalId + if (calendarId !== undefined) { + try { + await this.rateLimiter.take(1) + const current = await this.calendar.events.get({ calendarId, eventId: event.eventId }) + if (current?.data !== undefined) { + if (current.data.organizer?.self === true) { + const ev = this.applyUpdate(current.data, event) + await this.rateLimiter.take(1) + await this.calendar.events.update({ + calendarId, + eventId: event.eventId, + requestBody: ev + }) + } + } + } catch (err: any) { + if (err.code === 404) { + await this.createEvent(event) + } else { + console.log('Update event error', this.user.workspace, this.user.userId, err) + await this.checkError(err) + } + } + } + } + + async remove (eventId: string, calendarId: string): Promise { + const current = await this.calendar.events.get({ calendarId, eventId }) + if (current?.data !== undefined) { + if (current.data.organizer?.self === true) { + await this.rateLimiter.take(1) + await this.calendar.events.delete({ + eventId, + calendarId + }) + } + } + } + + async removeEvent (event: Event): Promise { + try { + const _calendar = this.workspace.calendars.byId.get(event.calendar as Ref) + if (_calendar !== undefined) { + await this.remove(event.eventId, _calendar.externalId) + } + } catch (err) { + console.log('Remove event error', this.user.workspace, this.user.userId, err) + } + } + + async syncOurEvents (): Promise { + const me = await this.getMe() + const events = await this.client.findAll(calendar.class.Event, { + access: 'owner', + createdBy: this.user.userId, + calendar: { $in: this.workspace.getMyCalendars(me).map((p) => p._id) } + }) + for (const event of events) { + await this.syncMyEvent(event) + } + await this.workspace.updateSyncTime() + } + + async syncMyEvent (event: Event): Promise { + if (event.access === 'owner' || event.access === 'writer') { + try { + const space = this.workspace.calendars.byId.get(event.calendar as Ref) + if (space !== undefined && space.externalUser === this.me) { + if (!(await this.update(event, space))) { + await this.create(event, space) + } + } + } catch (err: any) { + console.log('Sync event error', this.user.workspace, this.user.userId, event._id, err.message) + } + } + } + + private async create (event: Event, space: ExternalCalendar): Promise { + const body = this.convertBody(event) + const calendarId = space?.externalId + if (calendarId !== undefined) { + await this.rateLimiter.take(1) + await this.calendar.events.insert({ + calendarId, + requestBody: body + }) + } + } + + private async update (event: Event, space: ExternalCalendar): Promise { + const calendarId = space?.externalId + if (calendarId !== undefined) { + try { + await this.rateLimiter.take(1) + const current = await this.calendar.events.get({ calendarId, eventId: event.eventId }) + if (current !== undefined) { + const ev = this.applyUpdate(current.data, event) + await this.rateLimiter.take(1) + await this.calendar.events.update({ + calendarId, + eventId: event.eventId, + requestBody: ev + }) + } + return true + } catch (err: any) { + if (err.code === 404) { + return false + } else { + throw err + } + } + } + return false + } + + private convertBody (event: Event): calendar_v3.Schema$Event { + const res: calendar_v3.Schema$Event = { + start: convertDate(event.date, event.allDay, getTimezone(event)), + end: convertDate(event.dueDate, event.allDay, getTimezone(event)), + id: event.eventId, + description: markupToHTML(event.description), + summary: event.title + } + if (event.location != null) { + res.location = event.location + } + if (event.visibility !== undefined) { + res.visibility = event.visibility === 'public' ? 'public' : 'private' + } + if (event.visibility === 'freeBusy') { + res.extendedProperties = { + private: { + visibility: 'freeBusy' + } + } + } + if (event.reminders !== undefined) { + res.reminders = { + useDefault: false, + overrides: event.reminders.map((p) => { + return { method: 'popup', minutes: p / 60 / 1000 } + }) + } + } + const attendees = this.getAttendees(event) + if (attendees.length > 0) { + res.attendees = attendees.map((p) => { + if (p === this.me) { + return { email: p, responseStatus: 'accepted', self: true } + } + return { email: p } + }) + } + if (event._class === calendar.class.ReccuringInstance) { + const instance = event as ReccuringInstance + res.recurringEventId = instance.recurringEventId + res.originalStartTime = convertDate(instance.originalStartTime ?? event.date, event.allDay, instance.timeZone) + res.status = instance.isCancelled === true ? 'cancelled' : undefined + } + if (event._class === calendar.class.ReccuringEvent) { + const rec = event as ReccuringEvent + res.recurrence = encodeReccuring(rec.rules, rec.rdate, rec.exdate) + } + return res + } + + private applyUpdate (event: calendar_v3.Schema$Event, current: Event): calendar_v3.Schema$Event { + if (current.title !== event.summary) { + event.summary = current.title + } + if (current.visibility !== undefined) { + const newVisibility = current.visibility === 'public' ? 'public' : 'private' + if (newVisibility !== event.visibility) { + event.visibility = newVisibility + } + if (current.visibility === 'freeBusy') { + event.extendedProperties = { + ...event.extendedProperties, + private: { + visibility: 'freeBusy' + } + } + } + } + const description = htmlToMarkup(event.description ?? '') + if (current.description !== description) { + event.description = description + } + if (current.location !== event.location) { + event.location = current.location + } + const attendees = this.getAttendees(current) + if (attendees.length > 0 && event.attendees !== undefined) { + for (const attendee of attendees) { + if (event.attendees.findIndex((p) => p.email === attendee) === -1) { + event.attendees.push({ email: attendee }) + } + } + } + event.start = convertDate(current.date, event.start?.date !== undefined, getTimezone(current)) + event.end = convertDate(current.dueDate, event.end?.date !== undefined, getTimezone(current)) + if (current._class === calendar.class.ReccuringEvent) { + const rec = current as ReccuringEvent + event.recurrence = encodeReccuring(rec.rules, rec.rdate, rec.exdate) + } + return event + } + + private getAttendees (event: Event): string[] { + const res = new Set() + for (const participant of event.participants) { + const integrations = this.workspace.integrations.byContact.get(participant) ?? [] + const integration = integrations.find((p) => p === this.me) ?? integrations[0] + if (integration !== undefined && integration !== '') { + res.add(integration) + } else { + const contact = this.workspace.contacts.byId.get(participant) + if (contact !== undefined) { + res.add(contact) + } + } + } + for (const ext of event.externalParticipants ?? []) { + res.add(ext) + } + return Array.from(res) + } + + // #endregion + + // #endregion +} + +function parseDate (date: calendar_v3.Schema$EventDateTime | undefined): number { + if (date?.dateTime != null) { + return new Date(date.dateTime).getTime() + } + if (date?.date != null) { + return new Date(date.date).getTime() + } + return 0 +} + +function convertDate (value: number, allDay: boolean, timeZone: string | undefined): calendar_v3.Schema$EventDateTime { + return allDay + ? { date: new Date(value).toISOString().split('T')[0] } + : { dateTime: new Date(value).toISOString(), timeZone: timeZone ?? 'Etc/GMT' } +} + +function getTimezone (event: Event): string | undefined { + return event.timeZone +} diff --git a/services/calendar/pod-calendar/src/calendarController.ts b/services/calendar/pod-calendar/src/calendarController.ts new file mode 100644 index 0000000000..b13d08fe23 --- /dev/null +++ b/services/calendar/pod-calendar/src/calendarController.ts @@ -0,0 +1,140 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { Account, Ref } from '@hcengineering/core' +import { type Db } from 'mongodb' +import { type CalendarClient } from './calendar' +import config from './config' +import { type ProjectCredentials, type Token, type User } from './types' +import { WorkspaceClient } from './workspaceClient' + +export class CalendarController { + private readonly workspaces: Map = new Map() + + private readonly credentials: ProjectCredentials + private readonly clients: Map = new Map() + + protected static _instance: CalendarController + + private constructor (private readonly mongo: Db) { + this.credentials = JSON.parse(config.Credentials) + CalendarController._instance = this + } + + static getCalendarController (mongo?: Db): CalendarController { + if (CalendarController._instance !== undefined) { + return CalendarController._instance + } + if (mongo === undefined) throw new Error('CalendarController not exist') + return new CalendarController(mongo) + } + + async startAll (): Promise { + const tokens = await this.mongo.collection('tokens').find().toArray() + for (const token of tokens) { + try { + await this.createClient(token) + } catch (err) { + console.error(`Couldn't create client for ${token.workspace} ${token.userId}`) + } + } + + for (const client of this.workspaces.values()) { + void client.sync() + } + } + + push (email: string, mode: 'events' | 'calendar', calendarId?: string): void { + const clients = this.clients.get(email) + for (const client of clients ?? []) { + if (mode === 'calendar') { + void client.syncCalendars(email) + } + if (mode === 'events' && calendarId !== undefined) { + void client.sync(calendarId, email) + } + } + } + + addClient (email: string, client: CalendarClient): void { + const clients = this.clients.get(email) + if (clients === undefined) { + this.clients.set(email, [client]) + } else { + clients.push(client) + this.clients.set(email, clients) + } + } + + removeClient (email: string): void { + const clients = this.clients.get(email) + if (clients !== undefined) { + this.clients.set( + email, + clients.filter((p) => !p.isClosed) + ) + } + } + + async getUserId (email: string, workspace: string): Promise> { + const workspaceClient = await this.getWorkspaceClient(workspace) + return await workspaceClient.getUserId(email) + } + + async signout (workspace: string, value: string): Promise { + const workspaceClient = await this.getWorkspaceClient(workspace) + const clients = await workspaceClient.signout(value) + if (clients === 0) { + this.workspaces.delete(workspace) + } + } + + removeWorkspace (workspace: string): void { + this.workspaces.delete(workspace) + } + + async close (): Promise { + for (const workspace of this.workspaces.values()) { + await workspace.close() + } + this.workspaces.clear() + } + + async createClient (user: Token): Promise { + const workspace = await this.getWorkspaceClient(user.workspace) + const newClient = await workspace.createCalendarClient(user) + return newClient + } + + async newClient (user: User, code: string): Promise { + const workspace = await this.getWorkspaceClient(user.workspace) + const newClient = await workspace.newCalendarClient(user, code) + return newClient + } + + private async getWorkspaceClient (workspace: string): Promise { + let res = this.workspaces.get(workspace) + if (res === undefined) { + try { + res = await WorkspaceClient.create(this.credentials, this.mongo, workspace, this) + this.workspaces.set(workspace, res) + } catch (err) { + console.error(`Couldn't create workspace worker for ${workspace}, reason: ${JSON.stringify(err)}`) + throw err + } + } + return res + } +} diff --git a/services/calendar/pod-calendar/src/client.ts b/services/calendar/pod-calendar/src/client.ts new file mode 100644 index 0000000000..fa222927d8 --- /dev/null +++ b/services/calendar/pod-calendar/src/client.ts @@ -0,0 +1,22 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { type Client } from '@hcengineering/core' +import { createClient, getTransactorEndpoint } from '@hcengineering/server-client' + +export async function getClient (token: string): Promise { + const endpoint = await getTransactorEndpoint(token) + return await createClient(endpoint, token) +} diff --git a/services/calendar/pod-calendar/src/config.ts b/services/calendar/pod-calendar/src/config.ts new file mode 100644 index 0000000000..73327ac3df --- /dev/null +++ b/services/calendar/pod-calendar/src/config.ts @@ -0,0 +1,72 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +interface Config { + Port: number + + MongoURI: string + MongoDB: string + AccountsURL: string + UploadUrl: string + ServiceID: string + Secret: string + Credentials: string + WATCH_URL: string + SystemEmail: string +} + +const envMap: { [key in keyof Config]: string } = { + Port: 'PORT', + + MongoURI: 'MONGO_URI', + MongoDB: 'MONGO_DB', + + AccountsURL: 'ACCOUNTS_URL', + UploadUrl: 'UPLOAD_URL', + ServiceID: 'SERVICE_ID', + Secret: 'SECRET', + Credentials: 'Credentials', + SystemEmail: 'SYSTEM_EMAIL', + WATCH_URL: 'WATCH_URL' +} + +const parseNumber = (str: string | undefined): number | undefined => (str !== undefined ? Number(str) : undefined) + +const config: Config = (() => { + const params: Partial = { + Port: parseNumber(process.env[envMap.Port]) ?? 8095, + MongoDB: process.env[envMap.MongoDB] ?? 'calendar-service', + MongoURI: process.env[envMap.MongoURI], + AccountsURL: process.env[envMap.AccountsURL], + UploadUrl: process.env[envMap.UploadUrl], + ServiceID: process.env[envMap.ServiceID] ?? 'calendar-service', + Secret: process.env[envMap.Secret], + SystemEmail: process.env[envMap.SystemEmail] ?? 'anticrm@hc.engineering', + Credentials: process.env[envMap.Credentials], + WATCH_URL: process.env[envMap.WATCH_URL] + } + + const missingEnv = (Object.keys(params) as Array) + .filter((key) => params[key] === undefined) + .map((key) => envMap[key]) + + if (missingEnv.length > 0) { + throw Error(`Missing env variables: ${missingEnv.join(', ')}`) + } + + return params as Config +})() + +export default config diff --git a/services/calendar/pod-calendar/src/error.ts b/services/calendar/pod-calendar/src/error.ts new file mode 100644 index 0000000000..585b319bb2 --- /dev/null +++ b/services/calendar/pod-calendar/src/error.ts @@ -0,0 +1,23 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +export class ApiError extends Error { + constructor ( + readonly code: string, + readonly message: string + ) { + super(message) + } +} diff --git a/services/calendar/pod-calendar/src/index.ts b/services/calendar/pod-calendar/src/index.ts new file mode 100644 index 0000000000..6606ad0d66 --- /dev/null +++ b/services/calendar/pod-calendar/src/index.ts @@ -0,0 +1,20 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// eslint-disable-next-line +require('dotenv').config() +// eslint-disable-next-line +const { main } = require('./main') +void main() diff --git a/services/calendar/pod-calendar/src/jwt.ts b/services/calendar/pod-calendar/src/jwt.ts new file mode 100644 index 0000000000..a83e4c3001 --- /dev/null +++ b/services/calendar/pod-calendar/src/jwt.ts @@ -0,0 +1,21 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { encode as jwtEncode, decode as jwtDecode } from 'jwt-simple' + +import config from './config' + +export const encode = (data: any): string => jwtEncode(data, config.Secret) +export const decode = (data: string): any => jwtDecode(data, config.Secret) diff --git a/services/calendar/pod-calendar/src/main.ts b/services/calendar/pod-calendar/src/main.ts new file mode 100644 index 0000000000..3d3a050b77 --- /dev/null +++ b/services/calendar/pod-calendar/src/main.ts @@ -0,0 +1,153 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { type IncomingHttpHeaders } from 'http' +import { decode64 } from './base64' +import { CalendarClient } from './calendar' +import { CalendarController } from './calendarController' +import config from './config' +import { decode } from './jwt' +import { createServer, listen } from './server' +import { closeDB, getDB } from './storage' +import { type Endpoint, type State } from './types' +import { setMetadata } from '@hcengineering/platform' +import serverClient from '@hcengineering/server-client' + +const extractToken = (header: IncomingHttpHeaders): any => { + try { + return header.authorization?.slice(7) ?? '' + } catch { + return undefined + } +} + +export const main = async (): Promise => { + setMetadata(serverClient.metadata.Endpoint, config.AccountsURL) + setMetadata(serverClient.metadata.UserAgent, config.ServiceID) + + const db = await getDB() + const calendarController = CalendarController.getCalendarController(db) + await calendarController.startAll() + const endpoints: Endpoint[] = [ + { + endpoint: '/signin', + type: 'get', + handler: async (req, res) => { + try { + const token = extractToken(req.headers) + + if (token === undefined) { + res.status(401).send() + return + } + const redirectURL = req.query.redirectURL as string + + const { email, workspace } = decode(token) + const userId = await calendarController.getUserId(email, workspace) + const url = CalendarClient.getAutUrl(redirectURL, workspace, userId, token) + res.send(url) + } catch (err) { + console.log('signin error', err) + res.status(500).send() + } + } + }, + { + endpoint: '/signin/code', + type: 'get', + handler: async (req, res) => { + const code = req.query.code as string + const state = JSON.parse(decode64(req.query.state as string)) as unknown as State + try { + await calendarController.newClient(state, code) + res.redirect(state.redirectURL) + } catch (err) { + console.log(err) + res.redirect(state.redirectURL) + } + } + }, + { + endpoint: '/signout', + type: 'get', + handler: async (req, res) => { + try { + const token = extractToken(req.headers) + + if (token === undefined) { + res.status(401).send() + return + } + + const value = req.query.value as string + + const { workspace } = decode(token) + await calendarController.signout(workspace, value) + } catch (err) { + console.log('signout error', err) + } + + res.send() + } + }, + { + endpoint: '/push', + type: 'post', + handler: async (req, res) => { + const state = req.headers['x-goog-resource-state'] + const token = req.headers['x-goog-channel-token'] + if (state === 'exists' && typeof token === 'string') { + const params = token.split('&') + const data: Record = {} + for (const param of params) { + const [key, val] = param.split('=') + if (key !== undefined && val !== undefined) { + data[key] = val + } + } + if (data.mode === undefined || data.user === undefined) { + res.status(400).send({ err: "'data' is missing" }) + return + } + calendarController.push(data.user, data.mode as 'events' | 'calendar', data.calendarId) + } + + res.send() + } + } + ] + + const server = listen(createServer(endpoints), config.Port) + + const shutdown = (): void => { + server.close(() => { + void calendarController + .close() + .then(async () => { + await closeDB() + }) + .then(() => process.exit()) + }) + } + + process.on('SIGINT', shutdown) + process.on('SIGTERM', shutdown) + process.on('uncaughtException', (e) => { + console.error(e) + }) + process.on('unhandledRejection', (e) => { + console.error(e) + }) +} diff --git a/services/calendar/pod-calendar/src/rateLimiter.ts b/services/calendar/pod-calendar/src/rateLimiter.ts new file mode 100644 index 0000000000..ea4a986ec4 --- /dev/null +++ b/services/calendar/pod-calendar/src/rateLimiter.ts @@ -0,0 +1,34 @@ +export class RateLimiter { + private tokens: number + private lastRefillTime: number + + constructor ( + private readonly refillInterval: number, + private readonly maxTokens: number + ) { + this.tokens = maxTokens + this.lastRefillTime = Date.now() + } + + private refillTokens (): void { + const now = Date.now() + const elapsedTime = now - this.lastRefillTime + const tokensToAdd = (elapsedTime / this.refillInterval) * this.maxTokens + + this.tokens = Math.min(this.tokens + tokensToAdd, this.maxTokens) + this.lastRefillTime = now + } + + public async take (count: number): Promise { + if (count > this.maxTokens) throw new Error('Cannot take more tokens than the maximum allowed') + this.refillTokens() + + while (this.tokens < count) { + // Wait for the next refill + await new Promise((resolve) => setTimeout(resolve, this.refillInterval)) + this.refillTokens() + } + + this.tokens -= count + } +} diff --git a/services/calendar/pod-calendar/src/server.ts b/services/calendar/pod-calendar/src/server.ts new file mode 100644 index 0000000000..0ea6afbb15 --- /dev/null +++ b/services/calendar/pod-calendar/src/server.ts @@ -0,0 +1,68 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import cors from 'cors' +import express, { type Express, type NextFunction, type Request, type Response } from 'express' +import { type Server } from 'http' +import { ApiError } from './error' +import { type Endpoint, type RequestHandler } from './types' + +const catchError = (fn: RequestHandler) => (req: Request, res: Response, next: NextFunction) => { + void (async () => { + try { + await fn(req, res, next) + } catch (err: unknown) { + next(err) + } + })() +} + +export function createServer (endpoints: Endpoint[]): Express { + const app = express() + + app.use(cors()) + app.use(express.json()) + + endpoints.forEach((endpoint) => { + if (endpoint.type === 'get') { + app.get(endpoint.endpoint, catchError(endpoint.handler)) + } else if (endpoint.type === 'post') { + app.post(endpoint.endpoint, catchError(endpoint.handler)) + } + }) + + app.use((_req, res, _next) => { + res.status(404).send({ message: 'Not found' }) + }) + + app.use((err: any, _req: any, res: any, _next: any) => { + if (err instanceof ApiError) { + res.status(400).send({ code: err.code, message: err.message }) + return + } + + res.status(500).send({ message: err.message }) + }) + + return app +} + +export function listen (e: Express, port: number, host?: string): Server { + const cb = (): void => { + console.log(`Calendar service has been started at ${host ?? '*'}:${port}`) + } + + return host !== undefined ? e.listen(port, host, cb) : e.listen(port, cb) +} diff --git a/services/calendar/pod-calendar/src/storage.ts b/services/calendar/pod-calendar/src/storage.ts new file mode 100644 index 0000000000..783100494e --- /dev/null +++ b/services/calendar/pod-calendar/src/storage.ts @@ -0,0 +1,36 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { MongoClient } from 'mongodb' + +import config from './config' + +let client: MongoClient | undefined +export const getDB = (() => { + return async () => { + if (client === undefined) { + client = new MongoClient(config.MongoURI) + await client.connect() + } + + return client.db(config.MongoDB) + } +})() + +export const closeDB: () => Promise = async () => { + if (client !== undefined) { + await client.close() + } +} diff --git a/services/calendar/pod-calendar/src/types.ts b/services/calendar/pod-calendar/src/types.ts new file mode 100644 index 0000000000..45b9ede9c4 --- /dev/null +++ b/services/calendar/pod-calendar/src/types.ts @@ -0,0 +1,103 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { RecurringRule } from '@hcengineering/calendar' +import type { Account, Ref, Timestamp } from '@hcengineering/core' +import type { NextFunction, Request, Response } from 'express' +import type { Credentials } from 'google-auth-library' + +export interface Watch { + timer: NodeJS.Timeout + channelId: string + resourceId: string +} + +export interface EventWatch { + timer: NodeJS.Timeout + calendarId: string + channelId: string + resourceId: string +} + +export type Token = User & Credentials + +export interface CalendarHistory { + userId: Ref + workspace: string + email: string + historyId: string +} + +export interface EventHistory { + calendarId: string + userId: Ref + workspace: string + email: string + historyId: string +} + +export interface SyncHistory { + workspace: string + timestamp: number +} + +export interface ReccuringData { + rules: RecurringRule[] + exdate: Timestamp[] + rdate: Timestamp[] +} + +export interface User { + email: string + userId: Ref + workspace: string + token: string +} + +export type State = User & { + redirectURL: string +} + +export interface AttachedFile { + size?: number + file: string + type?: string + lastModified: number + name: string +} + +export type RequestType = 'get' | 'post' + +export type RequestHandler = (req: Request, res: Response, next?: NextFunction) => Promise + +export interface Endpoint { + endpoint: string + type: RequestType + handler: RequestHandler +} + +export interface ProjectCredentials { + web: ProjectCredentialsData +} + +export interface ProjectCredentialsData { + client_id: string + project_id: string + auth_uri: string + token_uri: string + auth_provider_x509_cert_url: string + client_secret: string + redirect_uris: string[] +} diff --git a/services/calendar/pod-calendar/src/utils.ts b/services/calendar/pod-calendar/src/utils.ts new file mode 100644 index 0000000000..fa7d70185d --- /dev/null +++ b/services/calendar/pod-calendar/src/utils.ts @@ -0,0 +1,251 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import { RecurringRule } from '@hcengineering/calendar' +import { Timestamp } from '@hcengineering/core' +import { ReccuringData, type Token, type User } from './types' + +export class DeferredPromise { + public readonly promise: Promise + private _resolve: (x: T) => void = () => {} + private _reject: (err: any) => void = () => {} + + constructor () { + this.promise = new Promise((resolve, reject) => { + this._resolve = resolve + this._reject = reject + }) + } + + get resolve (): typeof this._resolve { + return this._resolve + } + + get reject (): typeof this._reject { + return this._reject + } +} + +export function isToken (user: User | Token): user is Token { + return (user as Token).access_token !== undefined +} + +export function parseRecurrenceStrings (recurrenceStrings: string[]): ReccuringData { + const res: ReccuringData = { + rdate: [], + rules: [], + exdate: [] + } + for (const str of recurrenceStrings) { + const [type, value] = str.split(':') + if (type === 'RRULE') { + res.rules.push(parseRecurrenceString(value)) + } + if (type === 'EXDATE') { + const values = value.split(',') + for (const val of values) { + try { + res.exdate.push(new Date(val).getTime()) + } catch (err) { + console.log('Convert exdate error', val) + } + } + } + if (type === 'RDATE') { + const values = value.split(',') + for (const val of values) { + try { + res.exdate.push(new Date(val).getTime()) + } catch (err) { + console.log('Convert rdate error', val) + } + } + } + } + console.log('parseRecurrenceStrings', recurrenceStrings, JSON.stringify(res)) + return res +} + +// parse 19700101T000000Z +function parseDate (dateString: string): Timestamp { + const year = parseInt(dateString.slice(0, 4)) + const month = parseInt(dateString.slice(4, 6)) - 1 + const day = parseInt(dateString.slice(6, 8)) + const hour = parseInt(dateString.slice(9, 11)) + const minute = parseInt(dateString.slice(11, 13)) + const second = parseInt(dateString.slice(13, 15)) + + return Date.UTC(year, month, day, isNaN(hour) ? 0 : hour, isNaN(minute) ? 0 : minute, isNaN(second) ? 0 : second) +} + +function parseRecurrenceString (recurrenceString: string): RecurringRule { + const rule: RecurringRule = { + freq: 'DAILY' // Default frequency + } + + const lines = recurrenceString.split(';') + + for (const line of lines) { + const [property, value] = line.split('=') + if (property !== undefined && value !== undefined) { + switch (property) { + case 'FREQ': + rule.freq = value as RecurringRule['freq'] + break + case 'UNTIL': { + const res = parseDate(value) + rule.endDate = res + break + } + case 'COUNT': + rule.count = parseInt(value, 10) + break + case 'INTERVAL': + rule.interval = parseInt(value, 10) + break + case 'BYSECOND': + rule.bySecond = value.split(',').map((s) => parseInt(s, 10)) + break + case 'BYMINUTE': + rule.byMinute = value.split(',').map((m) => parseInt(m, 10)) + break + case 'BYHOUR': + rule.byHour = value.split(',').map((h) => parseInt(h, 10)) + break + case 'BYDAY': + rule.byDay = value.split(',') + break + case 'BYMONTHDAY': + rule.byMonthDay = value.split(',').map((d) => parseInt(d, 10)) + break + case 'BYYEARDAY': + rule.byYearDay = value.split(',').map((d) => parseInt(d, 10)) + break + case 'BYWEEKNO': + rule.byWeekNo = value.split(',').map((w) => parseInt(w, 10)) + break + case 'BYMONTH': + rule.byMonth = value.split(',').map((m) => parseInt(m, 10)) + break + case 'BYSETPOS': + rule.bySetPos = value.split(',').map((s) => parseInt(s, 10)) + break + case 'WKST': + rule.wkst = value as RecurringRule['wkst'] + break + default: + // Ignore unrecognized properties + break + } + } + } + + return rule +} + +function encodeRecurringRuleToRFC5545 (rule: RecurringRule): string { + let result = `RRULE:FREQ=${rule.freq}` + + if (rule.endDate !== undefined) { + const endDate = new Date(rule.endDate) + const endDateString = endDate.toISOString().replace(/-|:|\.\d+/g, '') + result += `;UNTIL=${endDateString}` + } + + if (rule.count !== undefined) { + result += `;COUNT=${rule.count}` + } + + if (rule.interval !== undefined) { + result += `;INTERVAL=${rule.interval}` + } + + if (rule.bySecond != null && rule.bySecond.length > 0) { + result += `;BYSECOND=${rule.bySecond.join(',')}` + } + + if (rule.byMinute != null && rule.byMinute.length > 0) { + result += `;BYMINUTE=${rule.byMinute.join(',')}` + } + + if (rule.byHour != null && rule.byHour.length > 0) { + result += `;BYHOUR=${rule.byHour.join(',')}` + } + + if (rule.byDay != null && rule.byDay.length > 0) { + result += `;BYDAY=${rule.byDay.join(',')}` + } + + if (rule.byMonthDay != null && rule.byMonthDay.length > 0) { + result += `;BYMONTHDAY=${rule.byMonthDay.join(',')}` + } + + if (rule.byYearDay != null && rule.byYearDay.length > 0) { + result += `;BYYEARDAY=${rule.byYearDay.join(',')}` + } + + if (rule.byWeekNo != null && rule.byWeekNo.length > 0) { + result += `;BYWEEKNO=${rule.byWeekNo.join(',')}` + } + + if (rule.byMonth != null && rule.byMonth.length > 0) { + result += `;BYMONTH=${rule.byMonth.join(',')}` + } + + if (rule.bySetPos != null && rule.bySetPos.length > 0) { + result += `;BYSETPOS=${rule.bySetPos.join(',')}` + } + + if (rule.wkst !== undefined) { + result += `;WKST=${rule.wkst}` + } + + return result +} + +function encodeTimestampsToEXDATE (timestamps: Timestamp[]): string { + const exdateValues = timestamps.map((timestamp) => { + const date = new Date(timestamp) + return date.toISOString().replace(/-|:|\.\d+/g, '') + }) + + const exdateString = `EXDATE:${exdateValues.join(',')}` + return exdateString +} + +function encodeTimestampsToRDATE (timestamps: Timestamp[]): string { + const rdateValues = timestamps.map((timestamp) => { + const date = new Date(timestamp) + return date.toISOString().replace(/-|:|\.\d+/g, '') + }) + + const rdateString = `RDATE:${rdateValues.join(',')}` + return rdateString +} + +export function encodeReccuring (rules: RecurringRule[], rdates: number[], exdates: number[]): string[] { + const res: string[] = [] + for (const rule of rules) { + res.push(encodeRecurringRuleToRFC5545(rule)) + } + if (rdates.length > 0) { + res.push(encodeTimestampsToRDATE(rdates)) + } + if (exdates.length > 0) { + res.push(encodeTimestampsToEXDATE(exdates)) + } + + return res +} diff --git a/services/calendar/pod-calendar/src/workspaceClient.ts b/services/calendar/pod-calendar/src/workspaceClient.ts new file mode 100644 index 0000000000..fd846f99e3 --- /dev/null +++ b/services/calendar/pod-calendar/src/workspaceClient.ts @@ -0,0 +1,603 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// Licensed under the Eclipse Public License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. You may +// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import calendar, { Event, ExternalCalendar } from '@hcengineering/calendar' +import contact, { Channel, Contact, type Employee, type PersonAccount } from '@hcengineering/contact' +import core, { + TxProcessor, + toIdMap, + type Account, + type Client, + type Doc, + type Ref, + type Tx, + type TxCreateDoc, + type TxRemoveDoc, + type TxUpdateDoc, + TxOperations +} from '@hcengineering/core' +import setting, { Integration } from '@hcengineering/setting' +import { Collection, type Db } from 'mongodb' +import { CalendarClient } from './calendar' +import { getClient } from './client' +import config from './config' +import { encode } from './jwt' +import { SyncHistory, type ProjectCredentials, type User } from './types' +import { CalendarController } from './calendarController' + +export class WorkspaceClient { + private readonly txHandlers: ((...tx: Tx[]) => Promise)[] = [] + + private client!: Client + private readonly clients: Map = new Map() + private readonly syncHistory: Collection + private channels = new Map, Channel>() + private readonly calendarsByEmail = new Map() + readonly calendars = { + byId: new Map, ExternalCalendar>(), + byExternal: new Map() + } + + readonly contacts = { + byId: new Map, string>(), + byEmail: new Map>() + } + + readonly integrations = { + byId: new Map, Integration>(), + byContact: new Map, string[]>(), + byEmail: new Map>() + } + + private constructor ( + private readonly credentials: ProjectCredentials, + private readonly mongo: Db, + private readonly workspace: string, + private readonly serviceController: CalendarController + ) { + this.syncHistory = mongo.collection('syncHistories') + } + + static async create ( + credentials: ProjectCredentials, + mongo: Db, + workspace: string, + serviceController: CalendarController + ): Promise { + const instance = new WorkspaceClient(credentials, mongo, workspace, serviceController) + await instance.initClient(workspace) + return instance + } + + async createCalendarClient (user: User): Promise { + const current = this.getCalendarClient(user.email) + if (current !== undefined) return current + const newClient = await CalendarClient.create(this.credentials, user, this.mongo, this.client, this) + this.clients.set(user.email, newClient) + return newClient + } + + async newCalendarClient (user: User, code: string): Promise { + const newClient = await CalendarClient.create(this.credentials, user, this.mongo, this.client, this) + const email = await newClient.authorize(code) + if (this.clients.has(email)) { + await newClient.close() + throw new Error('Client already exist') + } + this.clients.set(email, newClient) + return newClient + } + + async close (): Promise { + for (const client of this.clients.values()) { + await client.close() + } + this.clients.clear() + await this.client?.close() + } + + async getUserId (email: string): Promise> { + const user = await this.client.findOne(core.class.Account, { + email + }) + if (user === undefined) { + throw new Error('User not found') + } + return user._id + } + + async signout (value: string, byError: boolean = false): Promise { + const client = this.clients.get(value) + if (client !== undefined) { + await client.signout(byError) + } else { + const integration = await this.client.findOne(setting.class.Integration, { + type: calendar.integrationType.Calendar, + value + }) + if (integration !== undefined) { + const txOp = new TxOperations(this.client, core.account.System) + if (byError) { + await txOp.update(integration, { disabled: true }) + } else { + await txOp.remove(integration) + } + } + } + this.clients.delete(value) + return this.clients.size + } + + removeClient (email: string): void { + this.clients.delete(email) + this.serviceController.removeClient(email) + if (this.clients.size > 0) return + this.serviceController.removeWorkspace(this.workspace) + } + + private getCalendarClient (email: string): CalendarClient | undefined { + return this.clients.get(email) + } + + private getCalendarClientByCalendar (id: Ref): CalendarClient | undefined { + const calendar = this.calendars.byId.get(id) + return calendar != null ? this.clients.get(calendar.externalUser) : undefined + } + + private async initClient (workspace: string): Promise { + const token = encode({ + email: config.SystemEmail, + workspace + }) + const client = await getClient(token) + client.notify = (...tx: Tx[]) => { + void this.txHandler(...tx) + } + + this.client = client + await this.init() + return this.client + } + + private async txHandler (...tx: Tx[]): Promise { + await Promise.all( + this.txHandlers.map(async (handler) => { + await handler(...tx) + }) + ) + } + + private async init (): Promise { + await this.checkUsers() + await this.initContacts() + await this.initIntegrations() + await this.initCalendars() + } + + async sync (): Promise { + await this.getNewEvents() + } + + // #region Events + + private async getSyncTime (): Promise { + const res = await this.syncHistory.findOne({ + workspace: this.workspace + }) + return res?.timestamp + } + + async updateSyncTime (): Promise { + const timestamp = Date.now() + await this.syncHistory.updateOne( + { + workspace: this.workspace + }, + { + $set: { + timestamp + } + }, + { upsert: true } + ) + } + + async getNewEvents (): Promise { + const lastSync = await this.getSyncTime() + const query = lastSync !== undefined ? { modifiedOn: { $gt: lastSync } } : {} + const newEvents = await this.client.findAll(calendar.class.Event, query) + this.txHandlers.push(async (...tx: Tx[]) => { + await this.txEventHandler(...tx) + }) + for (const newEvent of newEvents) { + const client = this.getCalendarClientByCalendar(newEvent.calendar as Ref) + if (client === undefined) { + return + } + await client.syncMyEvent(newEvent) + await this.updateSyncTime() + } + } + + private async txEventHandler (...txes: Tx[]): Promise { + for (const tx of txes) { + const actualTx = TxProcessor.extractTx(tx) + switch (actualTx._class) { + case core.class.TxCreateDoc: { + await this.txCreateEvent(actualTx as TxCreateDoc) + return + } + case core.class.TxUpdateDoc: { + await this.txUpdateEvent(actualTx as TxUpdateDoc) + return + } + case core.class.TxRemoveDoc: { + await this.txRemoveEvent(actualTx as TxRemoveDoc) + } + } + } + } + + private async txCreateEvent (tx: TxCreateDoc): Promise { + const hierarhy = this.client.getHierarchy() + if (hierarhy.isDerived(tx.objectClass, calendar.class.Event)) { + const doc = TxProcessor.createDoc2Doc(tx as TxCreateDoc) + const client = this.getCalendarClientByCalendar(doc.calendar as Ref) + if (client === undefined) { + return + } + try { + await client.createEvent(doc) + await this.updateSyncTime() + } catch (err) { + console.log(err) + } + } + } + + private async handleMove (tx: TxUpdateDoc): Promise { + const event = await this.client.findOne(calendar.class.Event, { _id: tx.objectId }) + if (event === undefined) { + return + } + try { + const txes = await this.client.findAll(core.class.TxCollectionCUD, { + 'tx.objectId': tx.objectId + }) + const extracted = txes.map((tx) => TxProcessor.extractTx(tx)).filter((p) => p._id !== tx._id) + const ev = TxProcessor.buildDoc2Doc(extracted) + if (ev !== undefined) { + const oldClient = this.getCalendarClientByCalendar(ev.calendar as Ref) + if (oldClient !== undefined) { + const oldCalendar = this.calendars.byId.get(ev.calendar as Ref) + if (oldCalendar !== undefined) { + await oldClient.remove(event.eventId, oldCalendar.externalId) + } + } + } + } catch (err) { + console.log('Error on remove event', err) + } + try { + const client = this.getCalendarClientByCalendar(event.calendar as Ref) + if (client !== undefined) { + await client.syncMyEvent(event) + } + await this.updateSyncTime() + } catch (err) { + console.log('Error on move event', err) + } + } + + private async txUpdateEvent (tx: TxUpdateDoc): Promise { + const hierarhy = this.client.getHierarchy() + if (hierarhy.isDerived(tx.objectClass, calendar.class.Event)) { + if (tx.operations.space !== undefined) { + await this.handleMove(tx as TxUpdateDoc) + return + } + const event = await this.client.findOne(calendar.class.Event, { _id: (tx as TxUpdateDoc).objectId }) + if (event === undefined) { + return + } + const client = this.getCalendarClientByCalendar(event.calendar as Ref) + if (client === undefined) { + return + } + try { + await client.updateEvent(event, tx as TxUpdateDoc) + await this.updateSyncTime() + } catch (err) { + console.log(err) + } + } + } + + private async txRemoveEvent (tx: TxRemoveDoc): Promise { + const hierarhy = this.client.getHierarchy() + if (hierarhy.isDerived(tx.objectClass, calendar.class.Event)) { + const txes = await this.client.findAll(core.class.TxCollectionCUD, { + 'tx.objectId': tx.objectId + }) + const ev = TxProcessor.buildDoc2Doc(txes.map((tx) => TxProcessor.extractTx(tx))) + if (ev === undefined) return + const client = this.getCalendarClientByCalendar(ev?.calendar as Ref) + if (client === undefined) { + return + } + await client.removeEvent(ev) + await this.updateSyncTime() + } + } + + // #endregion + + // #region Calendars + + private async initCalendars (): Promise { + const calendars = await this.client.findAll(calendar.class.ExternalCalendar, {}) + this.calendars.byId = toIdMap(calendars) + this.calendars.byExternal.clear() + this.calendarsByEmail.clear() + for (const calendar of calendars) { + const arr = this.calendarsByEmail.get(calendar.externalUser) ?? [] + arr.push(calendar) + this.calendarsByEmail.set(calendar.externalUser, arr) + const arrByExt = this.calendars.byExternal.get(calendar.externalId) ?? [] + arrByExt.push(calendar) + this.calendars.byExternal.set(calendar.externalId, arrByExt) + } + this.txHandlers.push(async (...txes: Tx[]) => { + for (const tx of txes) { + await this.txCalendarHandler(tx) + } + }) + } + + getMyCalendars (email: string): ExternalCalendar[] { + return this.calendarsByEmail.get(email) ?? [] + } + + private async txCalendarHandler (tx: Tx): Promise { + const actualTx = TxProcessor.extractTx(tx) + if (actualTx._class === core.class.TxCreateDoc) { + if ((actualTx as TxCreateDoc).objectClass === calendar.class.ExternalCalendar) { + const calendar = TxProcessor.createDoc2Doc(actualTx as TxCreateDoc) + this.calendars.byId.set(calendar._id, calendar) + const arr = this.calendars.byExternal.get(calendar.externalId) ?? [] + arr.push(calendar) + this.calendars.byExternal.set(calendar.externalId, arr) + const arrByExt = this.calendarsByEmail.get(calendar.externalUser) ?? [] + arrByExt.push(calendar) + this.calendarsByEmail.set(calendar.externalUser, arrByExt) + } + } + if (actualTx._class === core.class.TxRemoveDoc) { + const remTx = actualTx as TxRemoveDoc + const calendar = this.calendars.byId.get(remTx.objectId) + if (calendar !== undefined) { + const arr = this.calendarsByEmail.get(calendar.externalUser) ?? [] + const index = arr.findIndex((p) => p._id === calendar._id) + if (index !== -1) { + arr.splice(index, 1) + this.calendarsByEmail.set(calendar.externalUser, arr) + } + this.calendars.byId.delete(remTx.objectId) + const arrByExt = this.calendars.byExternal.get(calendar.externalId) ?? [] + const indexByExt = arrByExt.findIndex((p) => p._id === calendar._id) + if (index !== -1) { + arrByExt.splice(indexByExt, 1) + this.calendars.byExternal.set(calendar.externalId, arrByExt) + } + } + } + } + + // #endregion + + // #region Contacts + + private async initContacts (): Promise { + const channels = await this.client.findAll(contact.class.Channel, { provider: contact.channelProvider.Email }) + this.channels = toIdMap(channels) + const accounts = await this.client.findAll(contact.class.PersonAccount, {}) + for (const acc of accounts) { + this.contacts.byEmail.set(acc.email, acc.person) + this.contacts.byId.set(acc.person, acc.email) + } + for (const channel of channels) { + if (channel.value !== '') { + this.contacts.byEmail.set(channel.value, channel.attachedTo as Ref) + this.contacts.byId.set(channel.attachedTo as Ref, channel.value) + } + } + this.txHandlers.push(async (...txes: Tx[]) => { + for (const tx of txes) { + await this.txChannelHandler(tx) + } + }) + } + + private async txChannelHandler (tx: Tx): Promise { + const actualTx = TxProcessor.extractTx(tx) + if (actualTx._class === core.class.TxCreateDoc) { + if ((actualTx as TxCreateDoc).objectClass === contact.class.Channel) { + const channel = TxProcessor.createDoc2Doc(actualTx as TxCreateDoc) + if (channel.provider === contact.channelProvider.Email) { + this.contacts.byEmail.set(channel.value, channel.attachedTo as Ref) + this.contacts.byId.set(channel.attachedTo as Ref, channel.value) + this.channels.set(channel._id, channel) + } + } + } + if (actualTx._class === core.class.TxUpdateDoc) { + const updateTx = actualTx as TxUpdateDoc + if (updateTx.operations.value !== undefined) { + const channel = this.channels.get(updateTx.objectId) + if (channel !== undefined) { + const oldValue = channel.value + this.contacts.byEmail.delete(oldValue) + TxProcessor.updateDoc2Doc(channel, updateTx) + this.contacts.byEmail.set(channel.value, channel.attachedTo as Ref) + this.contacts.byId.set(channel.attachedTo as Ref, channel.value) + this.channels.set(channel._id, channel) + } + } + } + if (actualTx._class === core.class.TxRemoveDoc) { + const remTx = actualTx as TxRemoveDoc + const channel = this.channels.get(remTx.objectId) + if (channel !== undefined) { + this.contacts.byEmail.delete(channel.value) + this.contacts.byId.delete(channel.attachedTo as Ref) + this.channels.delete(channel._id) + } + } + } + + // #endregion + + // #region Integrations + + private async initIntegrations (): Promise { + const accounts = toIdMap(await this.client.findAll(contact.class.PersonAccount, {})) + const integrations = await this.client.findAll(setting.class.Integration, { + type: calendar.integrationType.Calendar + }) + for (const integration of integrations) { + const person = accounts.get((integration.createdBy ?? integration.modifiedBy) as Ref) + if (person != null) { + this.integrations.byEmail.set(integration.value, person.person) + const arr = this.integrations.byContact.get(person.person) ?? [] + arr.push(integration.value) + this.integrations.byContact.set(person.person, arr) + this.integrations.byId.set(integration._id, integration) + } + } + this.txHandlers.push(async (...txes: Tx[]) => { + for (const tx of txes) { + await this.txIntegrationHandler(tx) + } + }) + } + + private addContactIntegration (integration: Integration, account: PersonAccount): void { + const arr = this.integrations.byContact.get(account.person) ?? [] + arr.push(integration.value) + this.integrations.byContact.set(account.person, arr) + } + + private removeContactIntegration (integration: Integration, account: PersonAccount): void { + const arr = this.integrations.byContact.get(account.person) + if (arr !== undefined) { + const index = arr.findIndex((p) => p === integration.value) + if (index !== -1) { + arr.splice(index, 1) + if (arr.length > 0) { + this.integrations.byContact.set(account.person, arr) + } else { + this.integrations.byContact.delete(account.person) + } + } + } + } + + private async addIntegration (integration: Integration): Promise { + const account = await this.client.findOne(contact.class.PersonAccount, { + _id: (integration.createdBy ?? integration.modifiedBy) as Ref + }) + if (account != null) { + if (integration.value !== '') { + this.integrations.byEmail.set(integration.value, account.person) + this.addContactIntegration(integration, account) + } + this.integrations.byId.set(integration._id, integration) + } + } + + private async removeIntegration (integration: Integration): Promise { + const account = await this.client.findOne(contact.class.PersonAccount, { + _id: (integration.createdBy ?? integration.modifiedBy) as Ref + }) + if (account != null) { + this.removeContactIntegration(integration, account) + } + this.integrations.byEmail.delete(integration.value) + this.integrations.byId.delete(integration._id) + } + + private async txIntegrationHandler (tx: Tx): Promise { + const actualTx = TxProcessor.extractTx(tx) + if (actualTx._class === core.class.TxCreateDoc) { + if ((actualTx as TxCreateDoc).objectClass === setting.class.Integration) { + const integration = TxProcessor.createDoc2Doc(actualTx as TxCreateDoc) + if (integration.type === calendar.integrationType.Calendar) { + await this.addIntegration(integration) + } + } + } + if (actualTx._class === core.class.TxRemoveDoc) { + const remTx = actualTx as TxRemoveDoc + const integration = this.integrations.byId.get(remTx.objectId) + if (integration !== undefined) { + await this.removeIntegration(integration) + } + } + } + + // #endregion + + // #region Users + + async checkUsers (): Promise { + const removedEmployees = await this.client.findAll(contact.mixin.Employee, { + active: false + }) + const accounts = await this.client.findAll(contact.class.PersonAccount, { + person: { $in: removedEmployees.map((p) => p._id) } + }) + this.txHandlers.push(async (...txes: Tx[]) => { + for (const tx of txes) { + await this.txEmployeeHandler(tx) + } + }) + for (const acc of accounts) { + await this.deactivateUser(acc) + } + } + + private async deactivateUser (acc: PersonAccount): Promise { + const integrations = this.integrations.byContact.get(acc.person) ?? [] + for (const integration of integrations) { + if (integration !== '') { + await this.signout(integration, true) + } + } + } + + private async txEmployeeHandler (tx: Tx): Promise { + if (tx._class !== core.class.TxUpdateDoc) return + const ctx = tx as TxUpdateDoc + if (!this.client.getHierarchy().isDerived(ctx.objectClass, contact.class.PersonAccount)) return + if (ctx.operations.active === false) { + const acc = await this.client.findOne(contact.class.PersonAccount, { person: ctx.objectId }) + if (acc !== undefined) { + await this.deactivateUser(acc) + } + } + } + + // #endregion +} diff --git a/services/calendar/pod-calendar/tsconfig.json b/services/calendar/pod-calendar/tsconfig.json new file mode 100644 index 0000000000..59e4fd4297 --- /dev/null +++ b/services/calendar/pod-calendar/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "./node_modules/@hcengineering/platform-rig/profiles/default/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "declarationDir": "./types", + "tsBuildInfoFile": ".build/build.tsbuildinfo" + } +} \ No newline at end of file diff --git a/services/github/github-assets/.eslintrc.js b/services/github/github-assets/.eslintrc.js new file mode 100644 index 0000000000..e73094bc7e --- /dev/null +++ b/services/github/github-assets/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/assets/eslint.config.json'], + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.json' + } +} diff --git a/services/github/github-assets/assets/icons.svg b/services/github/github-assets/assets/icons.svg new file mode 100644 index 0000000000..15df30b336 --- /dev/null +++ b/services/github/github-assets/assets/icons.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/services/github/github-assets/config/rig.json b/services/github/github-assets/config/rig.json new file mode 100644 index 0000000000..b75800b9b7 --- /dev/null +++ b/services/github/github-assets/config/rig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig", + "rigProfile": "assets" +} diff --git a/services/github/github-assets/jest.config.js b/services/github/github-assets/jest.config.js new file mode 100644 index 0000000000..2cfd408b67 --- /dev/null +++ b/services/github/github-assets/jest.config.js @@ -0,0 +1,7 @@ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'], + roots: ["./src"], + coverageReporters: ["text-summary", "html"] +} diff --git a/services/github/github-assets/lang/en.json b/services/github/github-assets/lang/en.json new file mode 100644 index 0000000000..8b57fcbf27 --- /dev/null +++ b/services/github/github-assets/lang/en.json @@ -0,0 +1,90 @@ +{ + "string": { + "Github": "Github", + "GithubDesc": "Github integration", + "Settings": "Configure", + "Connect": "Map repository to project", + "Configure": "Configure {title} GitHub App", + "NoIntegrationsConfigured": "

There is no {title} GitHub App associated with this workspace. You must first install the {title} GitHub App and grant it access to your repositories.

If you are installing it for a GitHub organization, you need to have the appropriate permissions, or you should ask your colleagues to install it.

If you plan like to switch use of integration to another {title} workspace, please uninstall it first.

", + "InstallApp": "Install Github App", + "ConnectionPending": "Waiting for integration service", + "Repository": "Repository", + "NoRepository": "Repository not selected", + "RepositoryInfo": "in", + "RepositoryIn": " in ", + "AssignRepository": "Assign repository", + "WithoutRepository": "Create Issue without GitHub", + "CreateGithubIssue": "Create Issue on ", + "PullRequest": "Pull request", + "PullRequests": "Pull requests", + "ChangedFiles": "Changed files ({files})", + "ReviewedFiles": "Reviewed files ({files})", + "All": "All", + "Active": "Active", + "Closed": "Closed", + "PRFile": "File", + "PRCommit": "Commit", + "PRReview": "Review", + "PRDraft": "Draft PR", + "PRMergedAt": "Merged At", + "PRClosedAt": "Closed At", + "MergeCommitSHA": "Merge commit SHA", + "ConfigLabel": "Github", + "ConfigDescription": "Bi-directional synchronization with Github", + "Authorize": "Authorize {title} GitHub App", + "ReAuthorize": "Re-authorize {title} GitHub App", + "PleaseAuthorizeAs": "You need to authorize the {title} GitHub App to access your GitHub account.", + "PleaseConnectToProject": "Please connect repository to project to start using integration", + "ConnectProject": "Connect repository (available {available})", + "Enable": "Enable", + "Disable": "Disable", + "Disabled": "Disabled", + "ProjectsInSync": "- repositories ({of}/{sync})", + "ProjectsConfig": "Github Projects (new)", + "AuthorizeAs": "as {login}", + "Integrations": "GitHub App Integrations", + "Options": "Options", + "Projects": "Projects ({count})", + "GithubIssue": "GitHub Issue", + "OnlyOrganizationError": "Only organization accounts are supported", + "Mergeable": "Ready to Merge", + "IssueRepositoryTarget": "into", + "ComponentForRepository": "Use component for Github repository", + "GithubUser": "Github", + "SyncEnabled": "Synchronization enabled", + "IssueConnectedActivityInfo": "Connected to Issue #{number} inside {repoName}", + "PullRequestConnectedActivityInfo": "Connected to Pull Request #{number} inside {repoName}", + "PullRequestMergedActivityInfo": "Pull request Merged", + "ReviewPending": "Pending", + "ReviewCommented": "Commented", + "ReviewApproved": "Approved", + "ReviewChangesRequested": "Changes requested", + "ReviewDismissed": "Dismissed", + "PullRequestMergeState": "Merge state", + "PullRequestReviewDecision": "Review state", + "Conflict": "Conflict detected", + "ReadyForMerge": "Yes", + "PROpen": "Open", + "PRMerged": "Merged", + "PRClosed": "Closed", + "AuthenticatedWithGithub": "Authorized with Github {login}", + "AuthenticatedWithGithubEmployee": "Please merge or remove Github person", + "AuthenticatedWithGithubRequired": "Please authorize Github application to act on behind you to perform actions", + "Processing": "Processing authentication/installation", + "AutoClose": "Processing complete, Tab will be auto-closed in {time} seconds.", + "PleaseRetry": "Please retry authentication", + "Updated": "Updated", + "LinkToProject": "Connect to {title}", + "UnlinkFromProject": "Disconnect", + "UnlinkRepository": "Disconnect repository from project?", + "UnlinkMessage": "

Disconnect repository {repositoryName} from {prjName}?

All synchronized issues/pull requests {total} will be not touched.

Would you like to continue?

", + "LinkedWith": "Connected with", + "SelectWorkspaceToInstallApp": "Installation should be performed from Workspace integration settings.", + "SelectWorkspaceToInstallAppMsg": "Please uninstall application and try again.", + "Uninstall": "Installed Github Apps", + "AuthenticationRevokedGithub": "Re-authorization for {login} is required for the proper functioning of the GitHub App", + "UnlinkInstallationTitle": "Uninstall Github App", + "UnlinkInstallation": "Are you sure you want to uninstall the GitHub App? Synchronization will be disabled.", + "RemoveInstallation": "Uninstall" + } +} diff --git a/services/github/github-assets/lang/pt.json b/services/github/github-assets/lang/pt.json new file mode 100644 index 0000000000..cf23c737a5 --- /dev/null +++ b/services/github/github-assets/lang/pt.json @@ -0,0 +1,90 @@ +{ + "string": { + "Github": "Github", + "GithubDesc": "Integração com o Github", + "Settings": "Configurar", + "Connect": "Mapear repositório ao projeto", + "Configure": "Configurar {title} GitHub App", + "NoIntegrationsConfigured": "

Não há {title} GitHub App associado a este workspace. Você deve primeiro instalar o {title} GitHub App e conceder acesso aos seus repositórios.

Se você estiver instalando para uma organização do GitHub, você precisa ter as permissões adequadas ou pedir para seus colegas instalarem.

Se você planeja mudar o uso da integração para outro workspace do {title}, desinstale-o primeiro.

", + "InstallApp": "Instalar Github App", + "ConnectionPending": "Aguardando serviço de integração", + "Repository": "Repositório", + "NoRepository": "Repositório não selecionado", + "RepositoryInfo": "em", + "RepositoryIn": " em ", + "AssignRepository": "Atribuir repositório", + "WithoutRepository": "Criar Issue sem o GitHub", + "CreateGithubIssue": "Criar Issue em ", + "PullRequest": "Pull request", + "PullRequests": "Pull requests", + "ChangedFiles": "Arquivos modificados ({files})", + "ReviewedFiles": "Arquivos revisados ({files})", + "All": "Todos", + "Active": "Ativo", + "Closed": "Fechado", + "PRFile": "Arquivo", + "PRCommit": "Commit", + "PRReview": "Revisão", + "PRDraft": "Rascunho PR", + "PRMergedAt": "Mergeado em", + "PRClosedAt": "Fechado em", + "MergeCommitSHA": "Merge commit SHA", + "ConfigLabel": "Github", + "ConfigDescription": "Sincronização bidirecional com o Github", + "Authorize": "Autorizar {title} GitHub App", + "ReAuthorize": "Reautorizar {title} GitHub App", + "PleaseAuthorizeAs": "Você precisa autorizar o {title} GitHub App para acessar sua conta do GitHub.", + "PleaseConnectToProject": "Por favor, conecte o repositório ao projeto para começar a usar a integração", + "ConnectProject": "Conectar repositório (disponível {available})", + "Enable": "Habilitar", + "Disable": "Desabilitar", + "Disabled": "Desabilitado", + "ProjectsInSync": "- repositórios ({of}/{sync})", + "ProjectsConfig": "Projetos do Github (novo)", + "AuthorizeAs": "como {login}", + "Integrations": "Integrações do aplicativo Huly Github", + "Options": "Opções", + "Projects": "Projetos ({count})", + "GithubIssue": "Issue do Github", + "OnlyOrganizationError": "Somente contas de organização são suportadas", + "Mergeable": "Pronto para ser mergeado", + "IssueRepositoryTarget": "em", + "ComponentForRepository": "Usar componente para repositório do Github", + "GithubUser": "Github", + "SyncEnabled": "Sincronização habilitada", + "IssueConnectedActivityInfo": "Conectado à Issue #{number} dentro de {repoName}", + "PullRequestConnectedActivityInfo": "Conectado ao Pull Request #{number} dentro de {repoName}", + "PullRequestMergedActivityInfo": "Pull request mergeado", + "ReviewPending": "Pendente", + "ReviewCommented": "Comentado", + "ReviewApproved": "Aprovado", + "ReviewChangesRequested": "Alterações solicitadas", + "ReviewDismissed": "Rejeitado", + "PullRequestMergeState": "Estado de merge", + "PullRequestReviewDecision": "Estado de revisão", + "Conflict": "Conflito detectado", + "ReadyForMerge": "Sim", + "PROpen": "Aberto", + "PRMerged": "Mergeado", + "PRClosed": "Fechado", + "AuthenticatedWithGithub": "Autorizado com o Github {login}", + "AuthenticatedWithGithubEmployee": "Por favor, faça merge ou remova a pessoa do Github", + "AuthenticatedWithGithubRequired": "Por favor, autorize a aplicação do Github a agir em seu nome para realizar ações", + "Processing": "Processando autenticação/instalação", + "AutoClose": "Processamento concluído, a guia será fechada automaticamente em {time} segundos.", + "PleaseRetry": "Por favor, tente novamente a autenticação", + "Updated": "Atualizado", + "LinkToProject": "Conectar ao {title}", + "UnlinkFromProject": "Desconectar", + "UnlinkRepository": "Desconectar repositório do projeto?", + "UnlinkMessage": "

Desconectar o repositório {repositoryName} de {prjName}?

Todas as issues/pull requests sincronizadas {total} não serão afetadas.

Deseja continuar?

", + "LinkedWith": "Conectado com", + "SelectWorkspaceToInstallApp": "A instalação deve ser feita nas configurações de integração do Workspace.", + "SelectWorkspaceToInstallAppMsg": "Por favor, desinstale o aplicativo e tente novamente.", + "Uninstall": "Aplicativos Github instalados", + "AuthenticationRevokedGithub": "É necessária uma nova autorização para {login} para o funcionamento adequado do aplicativo GitHub", + "UnlinkInstallationTitle": "Desinstalar aplicativo Github", + "UnlinkInstallation": "Tem certeza de que deseja desinstalar o aplicativo GitHub? A sincronização será desabilitada.", + "RemoveInstallation": "Desinstalar" + } +} diff --git a/services/github/github-assets/lang/ru.json b/services/github/github-assets/lang/ru.json new file mode 100644 index 0000000000..5b2f990dc0 --- /dev/null +++ b/services/github/github-assets/lang/ru.json @@ -0,0 +1,90 @@ +{ + "string": { + "Github": "Github", + "GithubDesc": "Интеграция с Github", + "Settings": "Настройки", + "Connect": "Подключить", + "Configure": "Настроить установленное приложение Github", + "NoIntegrationsConfigured": "

Не найдено {title} GitHub App, связанного с текущим пространством. Вам нужно сначала установить {title} GitHub App и предоставить ему доступ к вашим репозиториям.

Если вы устанавливаете его для GitHub организации, вам нужно иметь соответствующие права или попросить одного из ваших коллег установить приложение.

Если вы планируете переключить интеграцию в другое пространство {title}, то вам нужно сначала удалить приложение, чтобы отвязать его от предыдущего пространства.

", + "InstallApp": "Установить приложение Github", + "ConnectionPending": "Ожидание сервиса синхронизации", + "Repository": "Репозиторий", + "NoRepository": "Репозиторий не выбран", + "RepositoryInfo": "вашего", + "RepositoryIn": " в ", + "AssignRepository": "Выбрать репозиторий", + "CreateGithubIssue": "Создать Задачу в ", + "WithoutRepository": "Создать задачу без GitHub", + "PullRequest": "Пулл реквест", + "PullRequests": "Пулл реквесты", + "ChangedFiles": "Изменённые файлы ({files})", + "ReviewedFiles": "Просмотрено файлов ({files})", + "All": "Все", + "Active": "Активные", + "Closed": "Закрытие", + "PRFile": "Файл", + "PRReview": "Ревью", + "PRCommit": "Коммит", + "PRDraft": "Драфт", + "PRMergedAt": "Влито в дату", + "PRClosedAt": "Закрыто в дату", + "MergeCommitSHA": "Дайджест влитого кода", + "ConfigLabel": "Github", + "ConfigDescription": "Двусторонняя синхронизация с Github", + "Authorize": "Авторизоваться", + "ReAuthorize": "Переавторизоваться", + "PleaseAuthorizeAs": "Пожалуйста, дайте Github приложению возможность выступать от вашего имени:", + "PleaseConnectToProject": "Пожалуйста, соедините проект с репозиторием, чтобы начать использовать интеграцию", + "ConnectProject": "Подключить репозиторий (доступно {available})", + "Enable": "Включить", + "Disable": "Выключить", + "Disabled": "Выключено", + "ProjectsInSync": "- репозиториев ({of}/{sync})", + "ProjectsConfig": "Github Проекты (Новые)", + "AuthorizeAs": "Авторизован как: {login}", + "Integrations": "Huly Github интеграции", + "Options": "Опции", + "Projects": "Проекты ({count})", + "GithubIssue": "Github тикет", + "OnlyOrganizationError": "Поддерживаются только Аккаунты организации", + "Mergeable": "Готовность к влитию", + "IssueRepositoryTarget": "Репозиторий", + "ComponentForRepository": "Выберите репозиторий через компонент", + "GithubUser": "Github", + "SyncEnabled": "Синхронизация включена", + "IssueConnectedActivityInfo": "Связано с Github задачей #{number} в репозитории {repoName}", + "PullRequestConnectedActivityInfo": "Связано с Github Пулл Реквестом #{number} в репозитории {repoName}", + "PullRequestMergedActivityInfo": "Pull request Merged", + "ReviewPending": "Ревью в процессе", + "ReviewCommented": "Комментировано", + "ReviewApproved": "Одобрено", + "ReviewChangesRequested": "Требуется изменения", + "ReviewDismissed": "Отклонено", + "PullRequestMergeState": "Состояние влития", + "PullRequestReviewDecision": "Состояние Ревью", + "Conflict": "Нет, Конфликтует", + "ReadyForMerge": "Да", + "PROpen": "Открыт", + "PRMerged": "Влито", + "PRClosed": "Закрыто", + "AuthenticatedWithGithub": "Авторизация с Github успешна {login}", + "AuthenticatedWithGithubEmployee": "Пожалуйста удалите или слейте Github персону", + "AuthenticatedWithGithubRequired": "Пожалуйста авторизуйте Github приложение для действий от вашего имени", + "Processing": "Происходит авторизация/установка", + "AutoClose": "Процесс завершен, Вкладка будет автоматически закрыта через {time} секунд.", + "PleaseRetry": "Пожалуйста повторите авторизацию", + "Updated": "Обновлено", + "LinkToProject": "Подключить к {title}", + "UnlinkFromProject": "Отключить", + "UnlinkRepository": "Отключить репозиторий от проекта?", + "UnlinkMessage": "

Отключить репозиторий {repositoryName} от {prjName}?

Все синхронизованные задачи/пулл реквесты {total} останутся не тронутыми.

Желаете ли вы продолжить?

", + "LinkedWith": "Подключено к", + "SelectWorkspaceToInstallApp": "Установка должна производиться из настроек интеграции Github. ", + "SelectWorkspaceToInstallAppMsg": "Удалите приложение и повторите попытку.", + "Uninstall": "Установленное приложение Github", + "AuthenticationRevokedGithub": "Требуется повторная авторизация для {login} для правильной работы приложения GitHub", + "UnlinkInstallationTitle": "Удалить приложение Github", + "UnlinkInstallation": "Вы уверены, что хотите удалить приложение GitHub? Синхронизация будет отключена.", + "RemoveInstallation": "Удалить" + } +} diff --git a/services/github/github-assets/lang/sp.json b/services/github/github-assets/lang/sp.json new file mode 100644 index 0000000000..d94ecdf1b9 --- /dev/null +++ b/services/github/github-assets/lang/sp.json @@ -0,0 +1,90 @@ +{ + "string": { + "Github": "Github", + "GithubDesc": "Integración de Github", + "Settings": "Configurar", + "Connect": "Asociar repositorio al proyecto", + "Configure": "Configurar aplicación de GitHub {title}", + "NoIntegrationsConfigured": "

No hay una aplicación de GitHub asociada a este espacio de trabajo. Primero debes instalar la aplicación de GitHub {title} y otorgarle acceso a tus repositorios.

Si la estás instalando para una organización de GitHub, debes tener los permisos adecuados o pedir a tus colegas que la instalen.

Si deseas cambiar el uso de la integración a otro espacio de trabajo de {title}, desinstálala primero.

", + "InstallApp": "Instalar aplicación de Github", + "ConnectionPending": "Esperando el servicio de integración", + "Repository": "Repositorio", + "NoRepository": "Repositorio no seleccionado", + "RepositoryInfo": "en", + "RepositoryIn": " en ", + "AssignRepository": "Asignar repositorio", + "WithoutRepository": "Crear problema sin GitHub", + "CreateGithubIssue": "Crear problema en ", + "PullRequest": "Solicitud de extracción", + "PullRequests": "Solicitudes de extracción", + "ChangedFiles": "Archivos modificados ({files})", + "ReviewedFiles": "Archivos revisados ({files})", + "All": "Todos", + "Active": "Activo", + "Closed": "Cerrado", + "PRFile": "Archivo", + "PRCommit": "Confirmación", + "PRReview": "Revisión", + "PRDraft": "Borrador de PR", + "PRMergedAt": "Combinado en", + "PRClosedAt": "Cerrado en", + "MergeCommitSHA": "SHA de la confirmación de combinación", + "ConfigLabel": "Github", + "ConfigDescription": "Sincronización bidireccional con Github", + "Authorize": "Autorizar aplicación de GitHub {title}", + "ReAuthorize": "Volver a autorizar aplicación de GitHub {title}", + "PleaseAuthorizeAs": "Debes autorizar la aplicación de GitHub {title} para acceder a tu cuenta de GitHub.", + "PleaseConnectToProject": "Por favor, conecta el repositorio al proyecto para comenzar a usar la integración", + "ConnectProject": "Conectar repositorio (disponible {available})", + "Enable": "Habilitar", + "Disable": "Deshabilitar", + "Disabled": "Deshabilitado", + "ProjectsInSync": "- repositorios ({of}/{sync})", + "ProjectsConfig": "Proyectos de Github (nuevo)", + "AuthorizeAs": "como {login}", + "Integrations": "Integraciones de la aplicación de Github de Huly", + "Options": "Opciones", + "Projects": "Proyectos ({count})", + "GithubIssue": "Problema de Github", + "OnlyOrganizationError": "Solo se admiten cuentas de organizaciones", + "Mergeable": "Listo para combinar", + "IssueRepositoryTarget": "en", + "ComponentForRepository": "Usar componente para el repositorio de Github", + "GithubUser": "Github", + "SyncEnabled": "Sincronización habilitada", + "IssueConnectedActivityInfo": "Conectado al problema #{number} en {repoName}", + "PullRequestConnectedActivityInfo": "Conectado a la solicitud de extracción #{number} en {repoName}", + "PullRequestMergedActivityInfo": "Solicitud de extracción combinada", + "ReviewPending": "Pendiente", + "ReviewCommented": "Comentado", + "ReviewApproved": "Aprobado", + "ReviewChangesRequested": "Cambios solicitados", + "ReviewDismissed": "Descartado", + "PullRequestMergeState": "Estado de combinación", + "PullRequestReviewDecision": "Estado de revisión", + "Conflict": "Se detectó un conflicto", + "ReadyForMerge": "Sí", + "PROpen": "Abierto", + "PRMerged": "Combinado", + "PRClosed": "Cerrado", + "AuthenticatedWithGithub": "Autorizado con Github {login}", + "AuthenticatedWithGithubEmployee": "Por favor, combina o elimina a la persona de Github", + "AuthenticatedWithGithubRequired": "Por favor, autoriza la aplicación de Github para actuar en tu nombre y realizar acciones", + "Processing": "Procesando autenticación/instalación", + "AutoClose": "Procesamiento completo, la pestaña se cerrará automáticamente en {time} segundos.", + "PleaseRetry": "Por favor, vuelve a intentar la autenticación", + "Updated": "Actualizado", + "LinkToProject": "Conectar a {title}", + "UnlinkFromProject": "Desconectar", + "UnlinkRepository": "¿Desconectar el repositorio del proyecto?", + "UnlinkMessage": "

¿Desconectar el repositorio {repositoryName} de {prjName}?

Todos los problemas/solicitudes de extracción sincronizados {total} no se verán afectados.

¿Deseas continuar?

", + "LinkedWith": "Conectado con", + "SelectWorkspaceToInstallApp": "La instalación debe realizarse desde la configuración de integración del espacio de trabajo.", + "SelectWorkspaceToInstallAppMsg": "Por favor, desinstala la aplicación e intenta nuevamente.", + "Uninstall": "Aplicaciones de Github instaladas", + "AuthenticationRevokedGithub": "Se requiere una nueva autorización para {login} para el correcto funcionamiento de la aplicación de GitHub", + "UnlinkInstallationTitle": "Desinstalar aplicación de Github", + "UnlinkInstallation": "¿Estás seguro de que deseas desinstalar la aplicación de GitHub? La sincronización se deshabilitará.", + "RemoveInstallation": "Desinstalar" + } +} diff --git a/services/github/github-assets/package.json b/services/github/github-assets/package.json new file mode 100644 index 0000000000..99cfa621bc --- /dev/null +++ b/services/github/github-assets/package.json @@ -0,0 +1,38 @@ +{ + "name": "@hcengineering/github-assets", + "version": "0.6.0", + "main": "src/index.ts", + "author": "Hardcore Engineering Inc.", + "template": "@hcengineering/assets-package", + "scripts": { + "build": "compile", + "test": "jest --passWithNoTests --silent", + "build:docs": "", + "format": "format src", + "build:watch": "compile", + "_phase:build": "compile transpile src", + "_phase:test": "jest --passWithNoTests --silent", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-n": "^15.4.0", + "eslint-plugin-promise": "^6.1.1", + "eslint": "^8.54.0", + "prettier": "^3.1.0", + "@types/node": "~20.11.16", + "jest": "^29.7.0", + "ts-jest": "^29.1.1", + "@types/jest": "^29.5.5", + "typescript": "^5.3.3" + }, + "dependencies": { + "@hcengineering/platform": "^0.6.11", + "@hcengineering/github": "^0.6.0" + } +} diff --git a/services/github/github-assets/src/__tests__/lang.test.ts b/services/github/github-assets/src/__tests__/lang.test.ts new file mode 100644 index 0000000000..cf96c6dcf7 --- /dev/null +++ b/services/github/github-assets/src/__tests__/lang.test.ts @@ -0,0 +1,6 @@ +import { makeLocalesTest } from '@hcengineering/platform' + +it( + 'Locales are equale', + makeLocalesTest((lang) => import(`../../lang/${lang}.json`)) +) diff --git a/services/github/github-assets/src/index.ts b/services/github/github-assets/src/index.ts new file mode 100644 index 0000000000..21d7e26bfa --- /dev/null +++ b/services/github/github-assets/src/index.ts @@ -0,0 +1,16 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// + +import { loadMetadata } from '@hcengineering/platform' +import github from '@hcengineering/github' + +const icons = require('../assets/icons.svg') as string // eslint-disable-line +loadMetadata(github.icon, { + Github: `${icons}#github`, + GithubRepository: `${icons}#repository`, + PullRequest: `${icons}#pullRequest`, + PullRequestMerged: `${icons}#pullRequestMerged`, + PullRequestClosed: `${icons}#pullRequestClosed`, + Forks: `${icons}#forks` +}) diff --git a/services/github/github-assets/tsconfig.json b/services/github/github-assets/tsconfig.json new file mode 100644 index 0000000000..4449c73536 --- /dev/null +++ b/services/github/github-assets/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "./node_modules/@hcengineering/platform-rig/profiles/assets/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "declarationDir": "./types", + "types": ["node", "jest"], + "tsBuildInfoFile": ".build/build.tsbuildinfo" + } +} \ No newline at end of file diff --git a/services/github/github-resources/.eslintrc.js b/services/github/github-resources/.eslintrc.js new file mode 100644 index 0000000000..bb8fd7450d --- /dev/null +++ b/services/github/github-resources/.eslintrc.js @@ -0,0 +1,4 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/ui/eslint.config.json'], + parserOptions: { tsconfigRootDir: __dirname } +} diff --git a/services/github/github-resources/.prettierrc b/services/github/github-resources/.prettierrc new file mode 100644 index 0000000000..792942803a --- /dev/null +++ b/services/github/github-resources/.prettierrc @@ -0,0 +1,22 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "trailingComma": "none", + "tabWidth": 2, + "semi": false, + "singleQuote": true, + "printWidth": 120, + "useTabs": false, + "bracketSpacing": true, + "proseWrap": "preserve", + "plugins": [ + "prettier-plugin-svelte" + ], + "overrides": [ + { + "files": "*.svelte", + "options": { + "parser": "svelte" + } + } + ] +} \ No newline at end of file diff --git a/services/github/github-resources/config/rig.json b/services/github/github-resources/config/rig.json new file mode 100644 index 0000000000..bcad6f7c33 --- /dev/null +++ b/services/github/github-resources/config/rig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig", + "rigProfile": "ui" +} diff --git a/services/github/github-resources/jest.config.js b/services/github/github-resources/jest.config.js new file mode 100644 index 0000000000..2cfd408b67 --- /dev/null +++ b/services/github/github-resources/jest.config.js @@ -0,0 +1,7 @@ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'], + roots: ["./src"], + coverageReporters: ["text-summary", "html"] +} diff --git a/services/github/github-resources/package.json b/services/github/github-resources/package.json new file mode 100644 index 0000000000..d9a9c4090a --- /dev/null +++ b/services/github/github-resources/package.json @@ -0,0 +1,71 @@ +{ + "name": "@hcengineering/github-resources", + "version": "0.6.0", + "main": "src/index.ts", + "author": "Hardcore Engineering Inc.", + "scripts": { + "build": "compile ui", + "build:docs": "api-extractor run --local", + "format": "format src", + "build:watch": "compile ui", + "_phase:build": "compile ui", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0", + "svelte-loader": "^3.2.0", + "sass": "^1.53.0", + "svelte-preprocess": "^5.1.3", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-n": "^15.4.0", + "eslint": "^8.54.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "prettier-plugin-svelte": "^3.2.2", + "prettier": "^3.1.0", + "svelte-check": "^3.6.9", + "typescript": "^5.3.3", + "@types/qs": "~6.9.7", + "jest": "^29.7.0", + "ts-jest": "^29.1.1", + "@types/jest": "^29.5.5", + "eslint-plugin-svelte": "^2.35.1", + "svelte-eslint-parser": "^0.33.1" + }, + "dependencies": { + "@hcengineering/platform": "^0.6.11", + "svelte": "^4.2.12", + "@hcengineering/github": "^0.6.0", + "@hcengineering/ui": "^0.6.15", + "@hcengineering/presentation": "^0.6.3", + "@hcengineering/text": "^0.6.5", + "@hcengineering/text-editor": "^0.6.0", + "@hcengineering/text-editor-resources": "^0.6.0", + "@hcengineering/analytics": "^0.6.0", + "@hcengineering/contact": "^0.6.24", + "@hcengineering/contact-resources": "^0.6.0", + "@hcengineering/setting": "^0.6.17", + "@hcengineering/login": "^0.6.12", + "@hcengineering/core": "^0.6.32", + "@hcengineering/view": "^0.6.13", + "@hcengineering/view-resources": "^0.6.0", + "@hcengineering/setting-resources": "^0.6.0", + "@hcengineering/client": "^0.6.18", + "@hcengineering/chunter": "^0.6.20", + "fast-equals": "^5.0.1", + "@hcengineering/task": "^0.6.20", + "@hcengineering/tracker": "^0.6.24", + "@hcengineering/panel": "^0.6.23", + "@hcengineering/attachment-resources": "^0.6.0", + "@hcengineering/chunter-resources": "^0.6.0", + "@hcengineering/notification": "^0.6.23", + "@hcengineering/tracker-resources": "^0.6.0", + "@hcengineering/preference": "^0.6.13", + "@hcengineering/diffview": "^0.6.0", + "@hcengineering/activity": "^0.6.0", + "@hcengineering/activity-resources": "^0.6.1" + } +} diff --git a/services/github/github-resources/postcss.config.js b/services/github/github-resources/postcss.config.js new file mode 100644 index 0000000000..88752c6cb0 --- /dev/null +++ b/services/github/github-resources/postcss.config.js @@ -0,0 +1,5 @@ +module.exports = { + plugins: [ + require('autoprefixer') + ] +} diff --git a/services/github/github-resources/src/components/AuthenticationCheck.svelte b/services/github/github-resources/src/components/AuthenticationCheck.svelte new file mode 100644 index 0000000000..4c2f6a9fae --- /dev/null +++ b/services/github/github-resources/src/components/AuthenticationCheck.svelte @@ -0,0 +1,42 @@ + + +{#if spaceObj !== undefined} + {#if auth === undefined || auth.login === '' || auth.error != null} + {#if !readonly} + { + void onAuthorize() + }} + /> + {/if} + {:else} + + {/if} +{/if} diff --git a/services/github/github-resources/src/components/Configure.svelte b/services/github/github-resources/src/components/Configure.svelte new file mode 100644 index 0000000000..e674473c62 --- /dev/null +++ b/services/github/github-resources/src/components/Configure.svelte @@ -0,0 +1,8 @@ + + + diff --git a/services/github/github-resources/src/components/Connect.svelte b/services/github/github-resources/src/components/Connect.svelte new file mode 100644 index 0000000000..46cce16a99 --- /dev/null +++ b/services/github/github-resources/src/components/Connect.svelte @@ -0,0 +1,174 @@ + + + + dispatch('close')} + on:changeContent +> + {#if loading} + + {:else} + { + selectedTab = result.detail.id + }} + /> +
+ {#if selectedTab === 'personal'} +
+ {#if auth} + + {:else} +
+ {:else if selectedTab === 'installations'} +
+ +
+ {#if integrations.length === 0} +
+
+ {#await translate(github.string.NoIntegrationsConfigured, { appName: getMetadata(github.metadata.GithubApplication), title: getMetadata(ui.metadata.PlatformTitle) }) then msg} + + {/await} +
+ + + +
+
+
+ {/if} +
+
+ {/if} +
+ {/if} + + {#if selectedTab === 'personal'} + {#if auth !== undefined && $ticker - (auth?.authRequestTime ?? 0) > 0 && auth.login === ''} +
+
+ {/if} + + + + {#if !isCollapsed} + +
+ { + const { fileName, sha, viewed } = evt.detail + handleFileViewed(fileName, sha, viewed) + }} + /> +
+
+ {/if} + {/if} + + + diff --git a/services/github/github-resources/src/components/PullRequestMergeState.svelte b/services/github/github-resources/src/components/PullRequestMergeState.svelte new file mode 100644 index 0000000000..268f76e68c --- /dev/null +++ b/services/github/github-resources/src/components/PullRequestMergeState.svelte @@ -0,0 +1,44 @@ + + +{#if pr} + {#if pr.state === GithubPullRequestState.open} +
+ +
+ + {#if pr.mergeable === 'CONFLICTING' && !small} +
+
+ {/if} + {:else if pr.state === GithubPullRequestState.merged} +
+ + {#if !small} +
+ {:else if pr.state === GithubPullRequestState.closed} +
+ + {#if !small} +
+ {/if} +{/if} diff --git a/services/github/github-resources/src/components/PullRequests.svelte b/services/github/github-resources/src/components/PullRequests.svelte new file mode 100644 index 0000000000..a19765ffea --- /dev/null +++ b/services/github/github-resources/src/components/PullRequests.svelte @@ -0,0 +1,84 @@ + + + +{#if query !== undefined && modeSelectorProps !== undefined} + {#key query && currentSpace} + + {/key} +{/if} diff --git a/services/github/github-resources/src/components/PullRequestsView.svelte b/services/github/github-resources/src/components/PullRequestsView.svelte new file mode 100644 index 0000000000..fe61335c0d --- /dev/null +++ b/services/github/github-resources/src/components/PullRequestsView.svelte @@ -0,0 +1,95 @@ + + + + + + + + + {#if asideFloat && $$slots.aside} +
+ +{:else} + +{/if} diff --git a/services/github/github-resources/src/components/RepositorySelector.svelte b/services/github/github-resources/src/components/RepositorySelector.svelte new file mode 100644 index 0000000000..d4d7561d44 --- /dev/null +++ b/services/github/github-resources/src/components/RepositorySelector.svelte @@ -0,0 +1,111 @@ + + + + { + if (ev.detail != null) { + value = ev.detail + } + }} +> + + {#if selectedRepository !== undefined} +
+ +
+ {selectedRepository.name} + {/if} +
+
diff --git a/services/github/github-resources/src/components/languageColors.ts b/services/github/github-resources/src/components/languageColors.ts new file mode 100644 index 0000000000..346d48e382 --- /dev/null +++ b/services/github/github-resources/src/components/languageColors.ts @@ -0,0 +1,200 @@ +export const githubLanguageColors: Record = { + ABAP: '#E8274B', + ActionScript: '#882B0F', + Ada: '#02f88c', + Agda: '#315665', + 'AGS Script': '#B9D9FF', + Alloy: '#64C800', + AMPL: '#E6EFBB', + ANTLR: '#9DC3FF', + 'API Blueprint': '#2ACCA8', + APL: '#5A8164', + Arc: '#aa2afe', + Arduino: '#bd79d1', + ASP: '#6a40fd', + AspectJ: '#a957b0', + Assembly: '#6E4C13', + ATS: '#1ac620', + AutoHotkey: '#6594b9', + AutoIt: '#1C3552', + BlitzMax: '#cd6400', + Boo: '#d4bec1', + Brainfuck: '#2F2530', + 'C Sharp': '#178600', + C: '#555555', + Chapel: '#8dc63f', + Cirru: '#ccccff', + Clarion: '#db901e', + Clean: '#3F85AF', + Click: '#E4E6F3', + Clojure: '#db5855', + CoffeeScript: '#244776', + 'ColdFusion CFC': '#ed2cd6', + ColdFusion: '#ed2cd6', + 'Common Lisp': '#3fb68b', + 'Component Pascal': '#b0ce4e', + cpp: '#f34b7d', + Crystal: '#776791', + CSS: '#563d7c', + D: '#ba595e', + Dart: '#00B4AB', + Diff: '#88dddd', + DM: '#447265', + Dogescript: '#cca760', + Dylan: '#6c616e', + E: '#ccce35', + Eagle: '#814C05', + eC: '#913960', + ECL: '#8a1267', + edn: '#db5855', + Eiffel: '#946d57', + Elixir: '#6e4a7e', + Elm: '#60B5CC', + 'Emacs Lisp': '#c065db', + EmberScript: '#FFF4F3', + Erlang: '#B83998', + 'F#': '#b845fc', + Factor: '#636746', + Fancy: '#7b9db4', + Fantom: '#dbded5', + FLUX: '#88ccff', + Forth: '#341708', + FORTRAN: '#4d41b1', + FreeMarker: '#0050b2', + Frege: '#00cafe', + 'Game Maker Language': '#8fb200', + Glyph: '#e4cc98', + Gnuplot: '#f0a9f0', + Go: '#375eab', + Golo: '#88562A', + Gosu: '#82937f', + 'Grammatical Framework': '#79aa7a', + Groovy: '#e69f56', + Handlebars: '#01a9d6', + Harbour: '#0e60e3', + Haskell: '#29b544', + Haxe: '#df7900', + HTML: '#e44b23', + Hy: '#7790B2', + IDL: '#a3522f', + Io: '#a9188d', + Ioke: '#078193', + Isabelle: '#FEFE00', + J: '#9EEDFF', + Java: '#b07219', + JavaScript: '#f1e05a', + JFlex: '#DBCA00', + JSONiq: '#40d47e', + Julia: '#a270ba', + 'Jupyter Notebook': '#DA5B0B', + Kotlin: '#F18E33', + KRL: '#28431f', + Lasso: '#999999', + Latte: '#A8FF97', + Lex: '#DBCA00', + LFE: '#004200', + LiveScript: '#499886', + LOLCODE: '#cc9900', + LookML: '#652B81', + LSL: '#3d9970', + Lua: '#000080', + Makefile: '#427819', + Mask: '#f97732', + Matlab: '#bb92ac', + Max: '#c4a79c', + MAXScript: '#00a6a6', + Mercury: '#ff2b2b', + Metal: '#8f14e9', + Mirah: '#c7a938', + MTML: '#b7e1f4', + NCL: '#28431f', + Nemerle: '#3d3c6e', + nesC: '#94B0C7', + NetLinx: '#0aa0ff', + 'NetLinx+ERB': '#747faa', + NetLogo: '#ff6375', + NewLisp: '#87AED7', + Nimrod: '#37775b', + Nit: '#009917', + Nix: '#7e7eff', + Nu: '#c9df40', + 'Objective-C': '#438eff', + 'Objective-C++': '#6866fb', + 'Objective-J': '#ff0c5a', + OCaml: '#3be133', + Omgrofl: '#cabbff', + ooc: '#b0b77e', + Opal: '#f7ede0', + Oxygene: '#cdd0e3', + Oz: '#fab738', + Pan: '#cc0000', + Papyrus: '#6600cc', + Parrot: '#f3ca0a', + Pascal: '#b0ce4e', + PAWN: '#dbb284', + Perl: '#0298c3', + Perl6: '#0000fb', + PHP: '#4F5D95', + PigLatin: '#fcd7de', + Pike: '#005390', + PLSQL: '#dad8d8', + PogoScript: '#d80074', + Processing: '#0096D8', + Prolog: '#74283c', + 'Propeller Spin': '#7fa2a7', + Puppet: '#302B6D', + 'Pure Data': '#91de79', + PureBasic: '#5a6986', + PureScript: '#1D222D', + Python: '#3572A5', + QML: '#44a51c', + R: '#198ce7', + Racket: '#22228f', + 'Ragel in Ruby Host': '#9d5200', + RAML: '#77d9fb', + Rebol: '#358a5b', + Red: '#ee0000', + "Ren'Py": '#ff7f7f', + Rouge: '#cc0088', + Ruby: '#701516', + Rust: '#dea584', + SaltStack: '#646464', + SAS: '#B34936', + Scala: '#DC322F', + Scheme: '#1e4aec', + Self: '#0579aa', + Shell: '#89e051', + Shen: '#120F14', + Slash: '#007eff', + Slim: '#ff8f77', + Smalltalk: '#596706', + SourcePawn: '#5c7611', + SQF: '#3F3F3F', + Squirrel: '#800000', + Stan: '#b2011d', + 'Standard ML': '#dc566d', + SuperCollider: '#46390b', + Swift: '#ffac45', + SystemVerilog: '#DAE1C2', + Tcl: '#e4cc98', + TeX: '#3D6117', + Turing: '#45f715', + TypeScript: '#2b7489', + 'Unified Parallel C': '#4e3617', + 'Unity3D Asset': '#ab69a1', + UnrealScript: '#a54c4d', + Vala: '#fbe5cd', + Verilog: '#b2b7f8', + VHDL: '#adb2cb', + VimL: '#199f4b', + 'Visual Basic': '#945db7', + Volt: '#1F1F1F', + Vue: '#2c3e50', + 'Web Ontology Language': '#9cc9dd', + wisp: '#7582D1', + X10: '#4B6BEF', + xBase: '#403a40', + XC: '#99DA07', + XQuery: '#5232e7', + Zephir: '#118f9e' +} diff --git a/services/github/github-resources/src/components/presenters/GithubIssuePresenter.svelte b/services/github/github-resources/src/components/presenters/GithubIssuePresenter.svelte new file mode 100644 index 0000000000..6e37564a17 --- /dev/null +++ b/services/github/github-resources/src/components/presenters/GithubIssuePresenter.svelte @@ -0,0 +1,27 @@ + + +{#if ghIssue !== undefined && ghIssue.url !== '' && repository !== undefined} +
+ +
+{/if} diff --git a/services/github/github-resources/src/components/presenters/GithubReviewPresenter.svelte b/services/github/github-resources/src/components/presenters/GithubReviewPresenter.svelte new file mode 100644 index 0000000000..b06a6803eb --- /dev/null +++ b/services/github/github-resources/src/components/presenters/GithubReviewPresenter.svelte @@ -0,0 +1,112 @@ + + + +{#if value?.state !== GithubPullRequestReviewState.Commented || (value?.state === GithubPullRequestReviewState.Commented && (value?.body?.length ?? 0) > 0 && !isEmptyMarkup(value?.body ?? ''))} +
+ + + + + +
+
+ +
+
+
+
+
+{/if} + + diff --git a/services/github/github-resources/src/components/presenters/GithubReviewThreadPresenter.svelte b/services/github/github-resources/src/components/presenters/GithubReviewThreadPresenter.svelte new file mode 100644 index 0000000000..2cc9984bdd --- /dev/null +++ b/services/github/github-resources/src/components/presenters/GithubReviewThreadPresenter.svelte @@ -0,0 +1,190 @@ + + + +
+ + + + + +
+ {#if comments.length > 0} + { + expanded = value + } + }} + /> + {/if} + {#if expanded} +
+ {#each comments as comment} + + {/each} +
+ +
+ {#if githubConfiguration.ResolveThreadSupported} +
+ {/if} +
+
+
+
+ + diff --git a/services/github/github-resources/src/components/presenters/MergeableValuePresenter.svelte b/services/github/github-resources/src/components/presenters/MergeableValuePresenter.svelte new file mode 100644 index 0000000000..0e6533a8d1 --- /dev/null +++ b/services/github/github-resources/src/components/presenters/MergeableValuePresenter.svelte @@ -0,0 +1,16 @@ + + +
+ {#if value === PullRequestMergeable.CONFLICTING} +
diff --git a/services/github/github-resources/src/components/presenters/PullRequestNotificationPresenter.svelte b/services/github/github-resources/src/components/presenters/PullRequestNotificationPresenter.svelte new file mode 100644 index 0000000000..376c2c07c0 --- /dev/null +++ b/services/github/github-resources/src/components/presenters/PullRequestNotificationPresenter.svelte @@ -0,0 +1,42 @@ + + + +{#if value} +
+
+ {value.identifier} + + {currentProject?.name} + +
+ + {value.title} + {#if ghIssue} + # {ghIssue.githubNumber} + {/if} + +
+{/if} diff --git a/services/github/github-resources/src/components/presenters/PullRequestPresenter.svelte b/services/github/github-resources/src/components/presenters/PullRequestPresenter.svelte new file mode 100644 index 0000000000..44fa98aa7c --- /dev/null +++ b/services/github/github-resources/src/components/presenters/PullRequestPresenter.svelte @@ -0,0 +1,29 @@ + + + + diff --git a/services/github/github-resources/src/components/presenters/PullRequestReviewDecisionValuePresenter.svelte b/services/github/github-resources/src/components/presenters/PullRequestReviewDecisionValuePresenter.svelte new file mode 100644 index 0000000000..17e6cdab38 --- /dev/null +++ b/services/github/github-resources/src/components/presenters/PullRequestReviewDecisionValuePresenter.svelte @@ -0,0 +1,52 @@ + + +
+
+ + {#if !small} +
+
+ {/if} +
+
diff --git a/services/github/github-resources/src/components/presenters/PullRequestStateValuePresenter.svelte b/services/github/github-resources/src/components/presenters/PullRequestStateValuePresenter.svelte new file mode 100644 index 0000000000..411890bfbb --- /dev/null +++ b/services/github/github-resources/src/components/presenters/PullRequestStateValuePresenter.svelte @@ -0,0 +1,18 @@ + + +
+ {#if value === GithubPullRequestState.open} +
diff --git a/services/github/github-resources/src/components/presenters/RepositoryPresenter.svelte b/services/github/github-resources/src/components/presenters/RepositoryPresenter.svelte new file mode 100644 index 0000000000..7f367c3d30 --- /dev/null +++ b/services/github/github-resources/src/components/presenters/RepositoryPresenter.svelte @@ -0,0 +1,17 @@ + + + +
+ + {value.name} +
diff --git a/services/github/github-resources/src/components/presenters/ReviewCommentPresenter.svelte b/services/github/github-resources/src/components/presenters/ReviewCommentPresenter.svelte new file mode 100644 index 0000000000..f4ec11eddc --- /dev/null +++ b/services/github/github-resources/src/components/presenters/ReviewCommentPresenter.svelte @@ -0,0 +1,58 @@ + + +{#if comment} +
+
+
+ {#if $$slots.icon} + + {:else if person} + + {:else} + + {/if} +
+
+ {#if person} + + {:else} +
+
+ {/if} + + {getDisplayTime(comment.createdOn ?? 0)} +
+
+
+ +
+
+{/if} + + diff --git a/services/github/github-resources/src/components/presenters/TitlePresenter.svelte b/services/github/github-resources/src/components/presenters/TitlePresenter.svelte new file mode 100644 index 0000000000..1a7c3200ef --- /dev/null +++ b/services/github/github-resources/src/components/presenters/TitlePresenter.svelte @@ -0,0 +1,21 @@ + + + +{#if value} + +{/if} diff --git a/services/github/github-resources/src/components/utils.ts b/services/github/github-resources/src/components/utils.ts new file mode 100644 index 0000000000..2a49911c2c --- /dev/null +++ b/services/github/github-resources/src/components/utils.ts @@ -0,0 +1,111 @@ +import { Analytics } from '@hcengineering/analytics' +import core, { concatLink, getCurrentAccount, toIdMap, type IdMap } from '@hcengineering/core' +import { PlatformError, getMetadata, unknownError } from '@hcengineering/platform' +import presentation, { createQuery, getClient } from '@hcengineering/presentation' +import { location } from '@hcengineering/ui' +import { + makeQuery, + type GithubAuthentication, + type GithubIntegrationRepository, + type GithubProject +} from '@hcengineering/github' +import { get, writable } from 'svelte/store' +import github from '../plugin' + +export async function onAuthorize (login?: string): Promise { + const meId = getCurrentAccount()._id + const state = btoa( + JSON.stringify({ + accountId: meId, + workspace: get(location).path[1], + token: getMetadata(presentation.metadata.Token), + op: 'authorize' + }) + ) + const client = getClient() + + const config = await client.findOne(github.class.GithubAuthentication, {}) + + if (config !== undefined) { + await client.remove(config) + } + await client.createDoc(github.class.GithubAuthentication, core.space.Workspace, { + attachedTo: meId, + login: '', + error: null, + authRequestTime: Date.now(), + createdAt: new Date(), + followers: 0, + following: 0, + nodeId: '', + updatedAt: new Date(), + url: '', + repositories: 0, + organizations: { totalCount: 0, nodes: [] }, + closedIssues: 0, + openIssues: 0, + mergedPRs: 0, + openPRs: 0, + closedPRs: 0, + repositoryDiscussions: 0, + starredRepositories: 0 + }) + + Analytics.handleEvent('Authorize github clicked') + + const url = + 'https://github.com/login/oauth/authorize?' + + makeQuery({ + client_id: getMetadata(github.metadata.GithubClientID), + login: '', + state, + allow_signup: 'true' + }) + window.open(url) +} + +const repositoryQuery = createQuery(true) + +/** + * @public + */ +export const integrationRepositories = writable>(new Map()) + +repositoryQuery.query(github.class.GithubIntegrationRepository, {}, (res) => { + integrationRepositories.set(toIdMap(res)) +}) + +const projectQuery = createQuery(true) + +/** + * @public + */ +export const githubProjects = writable>(new Map()) + +projectQuery.query(github.mixin.GithubProject, {}, (res) => { + githubProjects.set(toIdMap(res)) +}) + +const authQuery = createQuery(true) +export const githubAuth = writable(undefined) +authQuery.query(github.class.GithubAuthentication, {}, (res) => { + githubAuth.set(res.shift()) +}) + +/** + * @public + */ +export async function sendGHServiceRequest (path: string, args: Record): Promise { + const githubURL = getMetadata(github.metadata.GithubURL) + if (githubURL === undefined) { + // We could try use recognition service to find some document properties. + throw new PlatformError(unknownError('Github integration is not configured')) + } + return await fetch(concatLink(concatLink(githubURL, '/api/v1/'), path), { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(args) + }) +} diff --git a/services/github/github-resources/src/configuration.ts b/services/github/github-resources/src/configuration.ts new file mode 100644 index 0000000000..5eb37732e9 --- /dev/null +++ b/services/github/github-resources/src/configuration.ts @@ -0,0 +1,6 @@ +/** + * @public + */ +export const githubConfiguration = { + ResolveThreadSupported: false +} diff --git a/services/github/github-resources/src/index.ts b/services/github/github-resources/src/index.ts new file mode 100644 index 0000000000..e706a87ec1 --- /dev/null +++ b/services/github/github-resources/src/index.ts @@ -0,0 +1,90 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// + +import { type Data, type Ref, type Space, type TxOperations } from '@hcengineering/core' +import { type Resources } from '@hcengineering/platform' +import { getClient, type DocCreateFunction, type DocCreatePhase } from '@hcengineering/presentation' +import tracker, { type Issue } from '@hcengineering/tracker' +import { type GithubIntegrationRepository } from '@hcengineering/github' +import AuthenticationCheck from './components/AuthenticationCheck.svelte' +import GithubIssueHeader from './components/GithubIssueHeader.svelte' +import Configure from './components/Configure.svelte' +import Connect from './components/Connect.svelte' +import ConnectApp from './components/ConnectApp.svelte' +import EditPullRequest from './components/EditPullRequest.svelte' +import GithubIcon from './components/GithubIcon.svelte' +import GithubIssueInfo from './components/GithubIssueInfo.svelte' +import GithubIssueInfoHeader from './components/GithubIssueInfoHeader.svelte' +import PullRequestMergeState from './components/PullRequestMergeState.svelte' +import PullRequests from './components/PullRequests.svelte' +import RepositoryPresenterRef from './components/RepositoryPresenterRef.svelte' +import RepositoryPresenterRefEditor from './components/RepositoryPresenterRefEditor.svelte' +import GithubReviewPresenter from './components/presenters/GithubReviewPresenter.svelte' +import GithubReviewThreadPresenter from './components/presenters/GithubReviewThreadPresenter.svelte' +import MergeableValuePresenter from './components/presenters/MergeableValuePresenter.svelte' +import PullRequestNotificationPresenter from './components/presenters/PullRequestNotificationPresenter.svelte' +import PullRequestPresenter from './components/presenters/PullRequestPresenter.svelte' +import PullRequestReviewDecisionValuePresenter from './components/presenters/PullRequestReviewDecisionValuePresenter.svelte' +import PullRequestStateValuePresenter from './components/presenters/PullRequestStateValuePresenter.svelte' +import RepositoryPresenter from './components/presenters/RepositoryPresenter.svelte' +import TitlePresenter from './components/presenters/TitlePresenter.svelte' +import GithubIssuePresenter from './components/presenters/GithubIssuePresenter.svelte' +import github from './plugin' + +async function updateIssue ( + client: TxOperations, + id: Ref, + space: Space, + issue: Data, + settings: Record, + phase: DocCreatePhase +): Promise { + // We should add mixin only in post phase. + if (client.getHierarchy().hasMixin(space, github.mixin.GithubProject) && phase === 'post') { + // No actions required for now. + await client.createMixin(id, tracker.class.Issue, space._id, github.mixin.GithubIssue, { + githubNumber: 0, + repository: settings.repository as Ref, + url: '' + }) + } +} + +export default async (): Promise => ({ + component: { + Connect, + Configure, + GithubIcon, + ConnectApp, + PullRequestPresenter, + PullRequestNotificationPresenter, + PullRequests, + EditPullRequest, + GithubReviewPresenter, + GithubReviewThreadPresenter, + TitlePresenter, + RepositoryPresenter, + RepositoryPresenterRef, + RepositoryPresenterRefEditor, + AuthenticationCheck, + GithubIssueHeader, + GithubIssueInfo, + GithubIssueInfoHeader, + MergeableValuePresenter, + PullRequestReviewDecisionValuePresenter, + PullRequestStateValuePresenter, + PullRequestMergeState, + GithubIssuePresenter + }, + handler: { + DisconnectHandler: async () => {} + }, + functions: { + ShowForRepositoryOnly: async (spaces: Space[]) => { + const client = getClient() + return spaces.some((it) => client.getHierarchy().hasMixin(it, github.mixin.GithubProject)) + }, + UpdateIssue: updateIssue as DocCreateFunction + } +}) diff --git a/services/github/github-resources/src/plugin.ts b/services/github/github-resources/src/plugin.ts new file mode 100644 index 0000000000..07144e2c1b --- /dev/null +++ b/services/github/github-resources/src/plugin.ts @@ -0,0 +1,101 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// + +import { type IntlString, mergeIds } from '@hcengineering/platform' + +import github, { githubId } from '@hcengineering/github' +import { type Ref } from '@hcengineering/core' +import { type Handler, type IntegrationType } from '@hcengineering/setting' +import { type AnyComponent } from '@hcengineering/ui' + +export default mergeIds(githubId, github, { + string: { + Github: '' as IntlString, + GithubDesc: '' as IntlString, + Settings: '' as IntlString, + Connect: '' as IntlString, + Configure: '' as IntlString, + InstallApp: '' as IntlString, + NoIntegrationsConfigured: '' as IntlString, + ConnectionPending: '' as IntlString, + Repository: '' as IntlString, + NoRepository: '' as IntlString, + RepositoryInfo: '' as IntlString, + WithoutRepository: '' as IntlString, + RepositoryIn: '' as IntlString, + AssignRepository: '' as IntlString, + CreateGithubIssue: '' as IntlString, + PullRequests: '' as IntlString, + ChangedFiles: '' as IntlString, + ReviewedFiles: '' as IntlString, + All: '' as IntlString, + Active: '' as IntlString, + Closed: '' as IntlString, + Authorize: '' as IntlString, + ReAuthorize: '' as IntlString, + PleaseConnectToProject: '' as IntlString, + ConnectProject: '' as IntlString, + Enable: '' as IntlString, + Disable: '' as IntlString, + Disabled: '' as IntlString, + ProjectsInSync: '' as IntlString, + ProjectsConfig: '' as IntlString, + AuthorizeAs: '' as IntlString, + PleaseAuthorizeAs: '' as IntlString, + Integrations: '' as IntlString, + Options: '' as IntlString, + Projects: '' as IntlString, + OnlyOrganizationError: '' as IntlString, + IssueRepositoryTarget: '' as IntlString, + ComponentForRepository: '' as IntlString, + SyncEnabled: '' as IntlString, + ReviewPending: '' as IntlString, + ReviewCommented: '' as IntlString, + ReviewApproved: '' as IntlString, + ReviewChangesRequested: '' as IntlString, + ReviewDismissed: '' as IntlString, + + Conflict: '' as IntlString, + ReadyForMerge: '' as IntlString, + PROpen: '' as IntlString, + PRMerged: '' as IntlString, + PRClosed: '' as IntlString, + + InfoLogin: '' as IntlString, + + Processing: '' as IntlString, + AutoClose: '' as IntlString, + PleaseRetry: '' as IntlString, + Updated: '' as IntlString, + LinkToProject: '' as IntlString, + UnlinkFromProject: '' as IntlString, + LinkedWith: '' as IntlString, + + UnlinkRepository: '' as IntlString, + UnlinkMessage: '' as IntlString, + UnlinkInstallationTitle: '' as IntlString, + UnlinkInstallation: '' as IntlString, + RemoveInstallation: '' as IntlString, + SelectWorkspaceToInstallApp: '' as IntlString, + SelectWorkspaceToInstallAppMsg: '' as IntlString, + Uninstall: '' as IntlString + }, + component: { + GithubIcon: '' as AnyComponent, + EditPullRequest: '' as AnyComponent, + PullRequests: '' as AnyComponent, + RepositoryPresenter: '' as AnyComponent, + RepositoryPresenterRef: '' as AnyComponent, + RepositoryPresenterRefEditor: '' as AnyComponent, + GithubIssueInfo: '' as AnyComponent, + GithubIssueInfoHeader: '' as AnyComponent, + GithubIssuePresenter: '' as AnyComponent + }, + handler: { + DisconnectHandler: '' as Handler + }, + integrationType: { + Github: '' as Ref + } +}) diff --git a/services/github/github-resources/svelte.config.js b/services/github/github-resources/svelte.config.js new file mode 100644 index 0000000000..944a06f73e --- /dev/null +++ b/services/github/github-resources/svelte.config.js @@ -0,0 +1,5 @@ +const sveltePreprocess = require('svelte-preprocess') + +module.exports = { + preprocess: sveltePreprocess() +}; \ No newline at end of file diff --git a/services/github/github-resources/tsconfig.json b/services/github/github-resources/tsconfig.json new file mode 100644 index 0000000000..fb6ccb2d18 --- /dev/null +++ b/services/github/github-resources/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "./node_modules/@hcengineering/platform-rig/profiles/ui/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "declarationDir": "./types" + } +} \ No newline at end of file diff --git a/services/github/github.graphql b/services/github/github.graphql new file mode 100644 index 0000000000..b95c8eb539 --- /dev/null +++ b/services/github/github.graphql @@ -0,0 +1,59647 @@ +directive @requiredCapabilities( + requiredCapabilities: [String!] +) on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION + +""" +Marks an element of a GraphQL schema as only available via a preview header +""" +directive @preview( + """ + The identifier of the API preview that toggles this field. + """ + toggledBy: String! +) on ARGUMENT_DEFINITION | ENUM | ENUM_VALUE | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | INPUT_OBJECT | INTERFACE | OBJECT | SCALAR | UNION + +""" +Defines what type of global IDs are accepted for a mutation argument of type ID. +""" +directive @possibleTypes( + """ + Abstract type of accepted global ID + """ + abstractType: String + + """ + Accepted types of global IDs. + """ + concreteTypes: [String!]! +) on INPUT_FIELD_DEFINITION + +""" +Autogenerated input type of AbortQueuedMigrations +""" +input AbortQueuedMigrationsInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the organization that is running the migrations. + """ + ownerId: ID! @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +Autogenerated return type of AbortQueuedMigrations +""" +type AbortQueuedMigrationsPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Did the operation succeed? + """ + success: Boolean +} + +""" +Autogenerated input type of AcceptEnterpriseAdministratorInvitation +""" +input AcceptEnterpriseAdministratorInvitationInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the invitation being accepted + """ + invitationId: ID! @possibleTypes(concreteTypes: ["EnterpriseAdministratorInvitation"]) +} + +""" +Autogenerated return type of AcceptEnterpriseAdministratorInvitation +""" +type AcceptEnterpriseAdministratorInvitationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The invitation that was accepted. + """ + invitation: EnterpriseAdministratorInvitation + + """ + A message confirming the result of accepting an administrator invitation. + """ + message: String +} + +""" +Autogenerated input type of AcceptTopicSuggestion +""" +input AcceptTopicSuggestionInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The name of the suggested topic. + """ + name: String! + + """ + The Node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of AcceptTopicSuggestion +""" +type AcceptTopicSuggestionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The accepted topic. + """ + topic: Topic +} + +""" +Represents an object which can take actions on GitHub. Typically a User or Bot. +""" +interface Actor { + """ + A URL pointing to the actor's public avatar. + """ + avatarUrl( + """ + The size of the resulting square image. + """ + size: Int + ): URI! + + """ + The username of the actor. + """ + login: String! + + """ + The HTTP path for this actor. + """ + resourcePath: URI! + + """ + The HTTP URL for this actor. + """ + url: URI! +} + +""" +Location information for an actor +""" +type ActorLocation { + """ + City + """ + city: String + + """ + Country name + """ + country: String + + """ + Country code + """ + countryCode: String + + """ + Region name + """ + region: String + + """ + Region or state code + """ + regionCode: String +} + +""" +The actor's type. +""" +enum ActorType { + """ + Indicates a team actor. + """ + TEAM + + """ + Indicates a user actor. + """ + USER +} + +""" +Autogenerated input type of AddAssigneesToAssignable +""" +input AddAssigneesToAssignableInput { + """ + The id of the assignable object to add assignees to. + """ + assignableId: ID! @possibleTypes(concreteTypes: ["Issue", "PullRequest"], abstractType: "Assignable") + + """ + The id of users to add as assignees. + """ + assigneeIds: [ID!]! @possibleTypes(concreteTypes: ["User"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated return type of AddAssigneesToAssignable +""" +type AddAssigneesToAssignablePayload { + """ + The item that was assigned. + """ + assignable: Assignable + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of AddComment +""" +input AddCommentInput { + """ + The contents of the comment. + """ + body: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the subject to modify. + """ + subjectId: ID! @possibleTypes(concreteTypes: ["Issue", "PullRequest"], abstractType: "IssueOrPullRequest") +} + +""" +Autogenerated return type of AddComment +""" +type AddCommentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The edge from the subject's comment connection. + """ + commentEdge: IssueCommentEdge + + """ + The subject + """ + subject: Node + + """ + The edge from the subject's timeline connection. + """ + timelineEdge: IssueTimelineItemEdge +} + +""" +Autogenerated input type of AddDiscussionComment +""" +input AddDiscussionCommentInput { + """ + The contents of the comment. + """ + body: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the discussion to comment on. + """ + discussionId: ID! @possibleTypes(concreteTypes: ["Discussion"]) + + """ + The Node ID of the discussion comment within this discussion to reply to. + """ + replyToId: ID @possibleTypes(concreteTypes: ["DiscussionComment"]) +} + +""" +Autogenerated return type of AddDiscussionComment +""" +type AddDiscussionCommentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The newly created discussion comment. + """ + comment: DiscussionComment +} + +""" +Autogenerated input type of AddDiscussionPollVote +""" +input AddDiscussionPollVoteInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the discussion poll option to vote for. + """ + pollOptionId: ID! @possibleTypes(concreteTypes: ["DiscussionPollOption"]) +} + +""" +Autogenerated return type of AddDiscussionPollVote +""" +type AddDiscussionPollVotePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The poll option that a vote was added to. + """ + pollOption: DiscussionPollOption +} + +""" +Autogenerated input type of AddEnterpriseOrganizationMember +""" +input AddEnterpriseOrganizationMemberInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise which owns the organization. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The ID of the organization the users will be added to. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) + + """ + The role to assign the users in the organization + """ + role: OrganizationMemberRole + + """ + The IDs of the enterprise members to add. + """ + userIds: [ID!]! +} + +""" +Autogenerated return type of AddEnterpriseOrganizationMember +""" +type AddEnterpriseOrganizationMemberPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The users who were added to the organization. + """ + users: [User!] +} + +""" +Autogenerated input type of AddEnterpriseSupportEntitlement +""" +input AddEnterpriseSupportEntitlementInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the Enterprise which the admin belongs to. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The login of a member who will receive the support entitlement. + """ + login: String! +} + +""" +Autogenerated return type of AddEnterpriseSupportEntitlement +""" +type AddEnterpriseSupportEntitlementPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A message confirming the result of adding the support entitlement. + """ + message: String +} + +""" +Autogenerated input type of AddLabelsToLabelable +""" +input AddLabelsToLabelableInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ids of the labels to add. + """ + labelIds: [ID!]! @possibleTypes(concreteTypes: ["Label"]) + + """ + The id of the labelable object to add labels to. + """ + labelableId: ID! @possibleTypes(concreteTypes: ["Discussion", "Issue", "PullRequest"], abstractType: "Labelable") +} + +""" +Autogenerated return type of AddLabelsToLabelable +""" +type AddLabelsToLabelablePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The item that was labeled. + """ + labelable: Labelable +} + +""" +Autogenerated input type of AddProjectCard +""" +input AddProjectCardInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The content of the card. Must be a member of the ProjectCardItem union + """ + contentId: ID @possibleTypes(concreteTypes: ["Issue", "PullRequest"], abstractType: "ProjectCardItem") + + """ + The note on the card. + """ + note: String + + """ + The Node ID of the ProjectColumn. + """ + projectColumnId: ID! @possibleTypes(concreteTypes: ["ProjectColumn"]) +} + +""" +Autogenerated return type of AddProjectCard +""" +type AddProjectCardPayload { + """ + The edge from the ProjectColumn's card connection. + """ + cardEdge: ProjectCardEdge + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ProjectColumn + """ + projectColumn: ProjectColumn +} + +""" +Autogenerated input type of AddProjectColumn +""" +input AddProjectColumnInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The name of the column. + """ + name: String! + + """ + The Node ID of the project. + """ + projectId: ID! @possibleTypes(concreteTypes: ["Project"]) +} + +""" +Autogenerated return type of AddProjectColumn +""" +type AddProjectColumnPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The edge from the project's column connection. + """ + columnEdge: ProjectColumnEdge + + """ + The project + """ + project: Project +} + +""" +Autogenerated input type of AddProjectV2DraftIssue +""" +input AddProjectV2DraftIssueInput { + """ + The IDs of the assignees of the draft issue. + """ + assigneeIds: [ID!] @possibleTypes(concreteTypes: ["User"]) + + """ + The body of the draft issue. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the Project to add the draft issue to. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + The title of the draft issue. A project item can also be created by providing + the URL of an Issue or Pull Request if you have access. + """ + title: String! +} + +""" +Autogenerated return type of AddProjectV2DraftIssue +""" +type AddProjectV2DraftIssuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The draft issue added to the project. + """ + projectItem: ProjectV2Item +} + +""" +Autogenerated input type of AddProjectV2ItemById +""" +input AddProjectV2ItemByIdInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the Issue or Pull Request to add. + """ + contentId: ID! + @possibleTypes(concreteTypes: ["DraftIssue", "Issue", "PullRequest"], abstractType: "ProjectV2ItemContent") + + """ + The ID of the Project to add the item to. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated return type of AddProjectV2ItemById +""" +type AddProjectV2ItemByIdPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The item added to the project. + """ + item: ProjectV2Item +} + +""" +Autogenerated input type of AddPullRequestReviewComment +""" +input AddPullRequestReviewCommentInput { + """ + The text of the comment. This field is required + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `body` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The SHA of the commit to comment on. + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `commitOID` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + commitOID: GitObjectID + + """ + The comment id to reply to. + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `inReplyTo` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + inReplyTo: ID @possibleTypes(concreteTypes: ["PullRequestReviewComment"]) + + """ + The relative path of the file to comment on. + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `path` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + path: String + + """ + The line index in the diff to comment on. + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `position` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + position: Int + + """ + The node ID of the pull request reviewing + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `pullRequestId` will be removed. use + addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + pullRequestId: ID @possibleTypes(concreteTypes: ["PullRequest"]) + + """ + The Node ID of the review to modify. + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `pullRequestReviewId` will be removed. use + addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + pullRequestReviewId: ID @possibleTypes(concreteTypes: ["PullRequestReview"]) +} + +""" +Autogenerated return type of AddPullRequestReviewComment +""" +type AddPullRequestReviewCommentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The newly created comment. + """ + comment: PullRequestReviewComment + + """ + The edge from the review's comment connection. + """ + commentEdge: PullRequestReviewCommentEdge +} + +""" +Autogenerated input type of AddPullRequestReview +""" +input AddPullRequestReviewInput { + """ + The contents of the review body comment. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The review line comments. + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `comments` will be removed. use the `threads` argument instead + **Reason:** We are deprecating comment fields that use diff-relative positioning + """ + comments: [DraftPullRequestReviewComment] + + """ + The commit OID the review pertains to. + """ + commitOID: GitObjectID + + """ + The event to perform on the pull request review. + """ + event: PullRequestReviewEvent + + """ + The Node ID of the pull request to modify. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) + + """ + The review line comment threads. + """ + threads: [DraftPullRequestReviewThread] +} + +""" +Autogenerated return type of AddPullRequestReview +""" +type AddPullRequestReviewPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The newly created pull request review. + """ + pullRequestReview: PullRequestReview + + """ + The edge from the pull request's review connection. + """ + reviewEdge: PullRequestReviewEdge +} + +""" +Autogenerated input type of AddPullRequestReviewThread +""" +input AddPullRequestReviewThreadInput { + """ + Body of the thread's first comment. + """ + body: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The line of the blob to which the thread refers, required for line-level + threads. The end of the line range for multi-line comments. + """ + line: Int + + """ + Path to the file being commented on. + """ + path: String! + + """ + The node ID of the pull request reviewing + """ + pullRequestId: ID @possibleTypes(concreteTypes: ["PullRequest"]) + + """ + The Node ID of the review to modify. + """ + pullRequestReviewId: ID @possibleTypes(concreteTypes: ["PullRequestReview"]) + + """ + The side of the diff on which the line resides. For multi-line comments, this is the side for the end of the line range. + """ + side: DiffSide = RIGHT + + """ + The first line of the range to which the comment refers. + """ + startLine: Int + + """ + The side of the diff on which the start line resides. + """ + startSide: DiffSide = RIGHT + + """ + The level at which the comments in the corresponding thread are targeted, can be a diff line or a file + """ + subjectType: PullRequestReviewThreadSubjectType = LINE +} + +""" +Autogenerated return type of AddPullRequestReviewThread +""" +type AddPullRequestReviewThreadPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The newly created thread. + """ + thread: PullRequestReviewThread +} + +""" +Autogenerated input type of AddPullRequestReviewThreadReply +""" +input AddPullRequestReviewThreadReplyInput { + """ + The text of the reply. + """ + body: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the pending review to which the reply will belong. + """ + pullRequestReviewId: ID @possibleTypes(concreteTypes: ["PullRequestReview"]) + + """ + The Node ID of the thread to which this reply is being written. + """ + pullRequestReviewThreadId: ID! @possibleTypes(concreteTypes: ["PullRequestReviewThread"]) +} + +""" +Autogenerated return type of AddPullRequestReviewThreadReply +""" +type AddPullRequestReviewThreadReplyPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The newly created reply. + """ + comment: PullRequestReviewComment +} + +""" +Autogenerated input type of AddReaction +""" +input AddReactionInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The name of the emoji to react with. + """ + content: ReactionContent! + + """ + The Node ID of the subject to modify. + """ + subjectId: ID! + @possibleTypes( + concreteTypes: [ + "CommitComment" + "Discussion" + "DiscussionComment" + "Issue" + "IssueComment" + "PullRequest" + "PullRequestReview" + "PullRequestReviewComment" + "Release" + "TeamDiscussion" + "TeamDiscussionComment" + ] + abstractType: "Reactable" + ) +} + +""" +Autogenerated return type of AddReaction +""" +type AddReactionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The reaction object. + """ + reaction: Reaction + + """ + The reaction groups for the subject. + """ + reactionGroups: [ReactionGroup!] + + """ + The reactable subject. + """ + subject: Reactable +} + +""" +Autogenerated input type of AddStar +""" +input AddStarInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Starrable ID to star. + """ + starrableId: ID! @possibleTypes(concreteTypes: ["Gist", "Repository", "Topic"], abstractType: "Starrable") +} + +""" +Autogenerated return type of AddStar +""" +type AddStarPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The starrable. + """ + starrable: Starrable +} + +""" +Autogenerated input type of AddUpvote +""" +input AddUpvoteInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the discussion or comment to upvote. + """ + subjectId: ID! @possibleTypes(concreteTypes: ["Discussion", "DiscussionComment"], abstractType: "Votable") +} + +""" +Autogenerated return type of AddUpvote +""" +type AddUpvotePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The votable subject. + """ + subject: Votable +} + +""" +Autogenerated input type of AddVerifiableDomain +""" +input AddVerifiableDomainInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The URL of the domain + """ + domain: URI! + + """ + The ID of the owner to add the domain to + """ + ownerId: ID! @possibleTypes(concreteTypes: ["Enterprise", "Organization"], abstractType: "VerifiableDomainOwner") +} + +""" +Autogenerated return type of AddVerifiableDomain +""" +type AddVerifiableDomainPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The verifiable domain that was added. + """ + domain: VerifiableDomain +} + +""" +Represents an 'added_to_merge_queue' event on a given pull request. +""" +type AddedToMergeQueueEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The user who added this Pull Request to the merge queue + """ + enqueuer: User + id: ID! + + """ + The merge queue where this pull request was added to. + """ + mergeQueue: MergeQueue + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest +} + +""" +Represents a 'added_to_project' event on a given issue or pull request. +""" +type AddedToProjectEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + Project referenced by event. + """ + project: Project @preview(toggledBy: "starfox-preview") + + """ + Project card referenced by this project event. + """ + projectCard: ProjectCard @preview(toggledBy: "starfox-preview") + + """ + Column name referenced by this project event. + """ + projectColumnName: String! @preview(toggledBy: "starfox-preview") +} + +""" +Represents an announcement banner. +""" +interface AnnouncementBanner { + """ + The text of the announcement + """ + announcement: String + + """ + The expiration date of the announcement, if any + """ + announcementExpiresAt: DateTime + + """ + Whether the announcement can be dismissed by the user + """ + announcementUserDismissible: Boolean +} + +""" +A GitHub App. +""" +type App implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The description of the app. + """ + description: String + id: ID! + + """ + The IP addresses of the app. + """ + ipAllowListEntries( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for IP allow list entries returned. + """ + orderBy: IpAllowListEntryOrder = {field: ALLOW_LIST_VALUE, direction: ASC} + ): IpAllowListEntryConnection! + + """ + The hex color code, without the leading '#', for the logo background. + """ + logoBackgroundColor: String! + + """ + A URL pointing to the app's logo. + """ + logoUrl( + """ + The size of the resulting image. + """ + size: Int + ): URI! + + """ + The name of the app. + """ + name: String! + + """ + A slug based on the name of the app for use in URLs. + """ + slug: String! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The URL to the app's homepage. + """ + url: URI! +} + +""" +Autogenerated input type of ApproveDeployments +""" +input ApproveDeploymentsInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Optional comment for approving deployments + """ + comment: String = "" + + """ + The ids of environments to reject deployments + """ + environmentIds: [ID!]! + + """ + The node ID of the workflow run containing the pending deployments. + """ + workflowRunId: ID! @possibleTypes(concreteTypes: ["WorkflowRun"]) +} + +""" +Autogenerated return type of ApproveDeployments +""" +type ApproveDeploymentsPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The affected deployments. + """ + deployments: [Deployment!] +} + +""" +Autogenerated input type of ApproveVerifiableDomain +""" +input ApproveVerifiableDomainInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the verifiable domain to approve. + """ + id: ID! @possibleTypes(concreteTypes: ["VerifiableDomain"]) +} + +""" +Autogenerated return type of ApproveVerifiableDomain +""" +type ApproveVerifiableDomainPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The verifiable domain that was approved. + """ + domain: VerifiableDomain +} + +""" +Autogenerated input type of ArchiveProjectV2Item +""" +input ArchiveProjectV2ItemInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the ProjectV2Item to archive. + """ + itemId: ID! @possibleTypes(concreteTypes: ["ProjectV2Item"]) + + """ + The ID of the Project to archive the item from. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated return type of ArchiveProjectV2Item +""" +type ArchiveProjectV2ItemPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The item archived from the project. + """ + item: ProjectV2Item +} + +""" +Autogenerated input type of ArchiveRepository +""" +input ArchiveRepositoryInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the repository to mark as archived. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of ArchiveRepository +""" +type ArchiveRepositoryPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The repository that was marked as archived. + """ + repository: Repository +} + +""" +An object that can have users assigned to it. +""" +interface Assignable { + """ + A list of Users assigned to this object. + """ + assignees( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserConnection! +} + +""" +Represents an 'assigned' event on any assignable object. +""" +type AssignedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the assignable associated with the event. + """ + assignable: Assignable! + + """ + Identifies the user or mannequin that was assigned. + """ + assignee: Assignee + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Identifies the user who was assigned. + """ + user: User + @deprecated(reason: "Assignees can now be mannequins. Use the `assignee` field instead. Removal on 2020-01-01 UTC.") +} + +""" +Types that can be assigned to issues. +""" +union Assignee = Bot | Mannequin | Organization | User + +""" +An entry in the audit log. +""" +interface AuditEntry { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Types that can initiate an audit log event. +""" +union AuditEntryActor = Bot | Organization | User + +""" +Ordering options for Audit Log connections. +""" +input AuditLogOrder { + """ + The ordering direction. + """ + direction: OrderDirection + + """ + The field to order Audit Logs by. + """ + field: AuditLogOrderField +} + +""" +Properties by which Audit Log connections can be ordered. +""" +enum AuditLogOrderField { + """ + Order audit log entries by timestamp + """ + CREATED_AT +} + +""" +Represents a 'auto_merge_disabled' event on a given pull request. +""" +type AutoMergeDisabledEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The user who disabled auto-merge for this Pull Request + """ + disabler: User + id: ID! + + """ + PullRequest referenced by event + """ + pullRequest: PullRequest + + """ + The reason auto-merge was disabled + """ + reason: String + + """ + The reason_code relating to why auto-merge was disabled + """ + reasonCode: String +} + +""" +Represents a 'auto_merge_enabled' event on a given pull request. +""" +type AutoMergeEnabledEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The user who enabled auto-merge for this Pull Request + """ + enabler: User + id: ID! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest +} + +""" +Represents an auto-merge request for a pull request +""" +type AutoMergeRequest { + """ + The email address of the author of this auto-merge request. + """ + authorEmail: String + + """ + The commit message of the auto-merge request. If a merge queue is required by + the base branch, this value will be set by the merge queue when merging. + """ + commitBody: String + + """ + The commit title of the auto-merge request. If a merge queue is required by + the base branch, this value will be set by the merge queue when merging + """ + commitHeadline: String + + """ + When was this auto-merge request was enabled. + """ + enabledAt: DateTime + + """ + The actor who created the auto-merge request. + """ + enabledBy: Actor + + """ + The merge method of the auto-merge request. If a merge queue is required by + the base branch, this value will be set by the merge queue when merging. + """ + mergeMethod: PullRequestMergeMethod! + + """ + The pull request that this auto-merge request is set against. + """ + pullRequest: PullRequest! +} + +""" +Represents a 'auto_rebase_enabled' event on a given pull request. +""" +type AutoRebaseEnabledEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The user who enabled auto-merge (rebase) for this Pull Request + """ + enabler: User + id: ID! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest +} + +""" +Represents a 'auto_squash_enabled' event on a given pull request. +""" +type AutoSquashEnabledEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The user who enabled auto-merge (squash) for this Pull Request + """ + enabler: User + id: ID! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest +} + +""" +Represents a 'automatic_base_change_failed' event on a given pull request. +""" +type AutomaticBaseChangeFailedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + The new base for this PR + """ + newBase: String! + + """ + The old base for this PR + """ + oldBase: String! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest! +} + +""" +Represents a 'automatic_base_change_succeeded' event on a given pull request. +""" +type AutomaticBaseChangeSucceededEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + The new base for this PR + """ + newBase: String! + + """ + The old base for this PR + """ + oldBase: String! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest! +} + +""" +A (potentially binary) string encoded using base64. +""" +scalar Base64String + +""" +Represents a 'base_ref_changed' event on a given issue or pull request. +""" +type BaseRefChangedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the name of the base ref for the pull request after it was changed. + """ + currentRefName: String! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + Identifies the name of the base ref for the pull request before it was changed. + """ + previousRefName: String! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest! +} + +""" +Represents a 'base_ref_deleted' event on a given pull request. +""" +type BaseRefDeletedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the name of the Ref associated with the `base_ref_deleted` event. + """ + baseRefName: String + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest +} + +""" +Represents a 'base_ref_force_pushed' event on a given pull request. +""" +type BaseRefForcePushedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the after commit SHA for the 'base_ref_force_pushed' event. + """ + afterCommit: Commit + + """ + Identifies the before commit SHA for the 'base_ref_force_pushed' event. + """ + beforeCommit: Commit + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest! + + """ + Identifies the fully qualified ref name for the 'base_ref_force_pushed' event. + """ + ref: Ref +} + +""" +Represents non-fractional signed whole numeric values. Since the value may +exceed the size of a 32-bit integer, it's encoded as a string. +""" +scalar BigInt + +""" +Represents a Git blame. +""" +type Blame { + """ + The list of ranges from a Git blame. + """ + ranges: [BlameRange!]! +} + +""" +Represents a range of information from a Git blame. +""" +type BlameRange { + """ + Identifies the recency of the change, from 1 (new) to 10 (old). This is + calculated as a 2-quantile and determines the length of distance between the + median age of all the changes in the file and the recency of the current + range's change. + """ + age: Int! + + """ + Identifies the line author + """ + commit: Commit! + + """ + The ending line for the range + """ + endingLine: Int! + + """ + The starting line for the range + """ + startingLine: Int! +} + +""" +Represents a Git blob. +""" +type Blob implements GitObject & Node { + """ + An abbreviated version of the Git object ID + """ + abbreviatedOid: String! + + """ + Byte size of Blob object + """ + byteSize: Int! + + """ + The HTTP path for this Git object + """ + commitResourcePath: URI! + + """ + The HTTP URL for this Git object + """ + commitUrl: URI! + id: ID! + + """ + Indicates whether the Blob is binary or text. Returns null if unable to determine the encoding. + """ + isBinary: Boolean + + """ + Indicates whether the contents is truncated + """ + isTruncated: Boolean! + + """ + The Git object ID + """ + oid: GitObjectID! + + """ + The Repository the Git object belongs to + """ + repository: Repository! + + """ + UTF8 text data or null if the Blob is binary + """ + text: String +} + +""" +A special type of user which takes actions on behalf of GitHub Apps. +""" +type Bot implements Actor & Node & UniformResourceLocatable { + """ + A URL pointing to the GitHub App's public avatar. + """ + avatarUrl( + """ + The size of the resulting square image. + """ + size: Int + ): URI! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + The username of the actor. + """ + login: String! + + """ + The HTTP path for this bot + """ + resourcePath: URI! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this bot + """ + url: URI! +} + +""" +Types which can be actors for `BranchActorAllowance` objects. +""" +union BranchActorAllowanceActor = App | Team | User + +""" +Parameters to be used for the branch_name_pattern rule +""" +type BranchNamePatternParameters { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean! + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +Parameters to be used for the branch_name_pattern rule +""" +input BranchNamePatternParametersInput { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +A branch protection rule. +""" +type BranchProtectionRule implements Node { + """ + Can this branch be deleted. + """ + allowsDeletions: Boolean! + + """ + Are force pushes allowed on this branch. + """ + allowsForcePushes: Boolean! + + """ + Is branch creation a protected operation. + """ + blocksCreations: Boolean! + + """ + A list of conflicts matching branches protection rule and other branch protection rules + """ + branchProtectionRuleConflicts( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): BranchProtectionRuleConflictConnection! + + """ + A list of actors able to force push for this branch protection rule. + """ + bypassForcePushAllowances( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): BypassForcePushAllowanceConnection! + + """ + A list of actors able to bypass PRs for this branch protection rule. + """ + bypassPullRequestAllowances( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): BypassPullRequestAllowanceConnection! + + """ + The actor who created this branch protection rule. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + Will new commits pushed to matching branches dismiss pull request review approvals. + """ + dismissesStaleReviews: Boolean! + id: ID! + + """ + Can admins overwrite branch protection. + """ + isAdminEnforced: Boolean! + + """ + Whether users can pull changes from upstream when the branch is locked. Set to + `true` to allow fork syncing. Set to `false` to prevent fork syncing. + """ + lockAllowsFetchAndMerge: Boolean! + + """ + Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. + """ + lockBranch: Boolean! + + """ + Repository refs that are protected by this rule + """ + matchingRefs( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filters refs with query on name + """ + query: String + ): RefConnection! + + """ + Identifies the protection rule pattern. + """ + pattern: String! + + """ + A list push allowances for this branch protection rule. + """ + pushAllowances( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): PushAllowanceConnection! + + """ + The repository associated with this branch protection rule. + """ + repository: Repository + + """ + Whether the most recent push must be approved by someone other than the person who pushed it + """ + requireLastPushApproval: Boolean! + + """ + Number of approving reviews required to update matching branches. + """ + requiredApprovingReviewCount: Int + + """ + List of required deployment environments that must be deployed successfully to update matching branches + """ + requiredDeploymentEnvironments: [String] + + """ + List of required status check contexts that must pass for commits to be accepted to matching branches. + """ + requiredStatusCheckContexts: [String] + + """ + List of required status checks that must pass for commits to be accepted to matching branches. + """ + requiredStatusChecks: [RequiredStatusCheckDescription!] + + """ + Are approving reviews required to update matching branches. + """ + requiresApprovingReviews: Boolean! + + """ + Are reviews from code owners required to update matching branches. + """ + requiresCodeOwnerReviews: Boolean! + + """ + Are commits required to be signed. + """ + requiresCommitSignatures: Boolean! + + """ + Are conversations required to be resolved before merging. + """ + requiresConversationResolution: Boolean! + + """ + Does this branch require deployment to specific environments before merging + """ + requiresDeployments: Boolean! + + """ + Are merge commits prohibited from being pushed to this branch. + """ + requiresLinearHistory: Boolean! + + """ + Are status checks required to update matching branches. + """ + requiresStatusChecks: Boolean! + + """ + Are branches required to be up to date before merging. + """ + requiresStrictStatusChecks: Boolean! + + """ + Is pushing to matching branches restricted. + """ + restrictsPushes: Boolean! + + """ + Is dismissal of pull request reviews restricted. + """ + restrictsReviewDismissals: Boolean! + + """ + A list review dismissal allowances for this branch protection rule. + """ + reviewDismissalAllowances( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ReviewDismissalAllowanceConnection! +} + +""" +A conflict between two branch protection rules. +""" +type BranchProtectionRuleConflict { + """ + Identifies the branch protection rule. + """ + branchProtectionRule: BranchProtectionRule + + """ + Identifies the conflicting branch protection rule. + """ + conflictingBranchProtectionRule: BranchProtectionRule + + """ + Identifies the branch ref that has conflicting rules + """ + ref: Ref +} + +""" +The connection type for BranchProtectionRuleConflict. +""" +type BranchProtectionRuleConflictConnection { + """ + A list of edges. + """ + edges: [BranchProtectionRuleConflictEdge] + + """ + A list of nodes. + """ + nodes: [BranchProtectionRuleConflict] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type BranchProtectionRuleConflictEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: BranchProtectionRuleConflict +} + +""" +The connection type for BranchProtectionRule. +""" +type BranchProtectionRuleConnection { + """ + A list of edges. + """ + edges: [BranchProtectionRuleEdge] + + """ + A list of nodes. + """ + nodes: [BranchProtectionRule] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type BranchProtectionRuleEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: BranchProtectionRule +} + +""" +Information about a sponsorship to make for a user or organization with a GitHub +Sponsors profile, as part of sponsoring many users or organizations at once. +""" +input BulkSponsorship { + """ + The amount to pay to the sponsorable in US dollars. Valid values: 1-12000. + """ + amount: Int! + + """ + The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given. + """ + sponsorableId: ID @possibleTypes(concreteTypes: ["Organization", "User"], abstractType: "Sponsorable") + + """ + The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given. + """ + sponsorableLogin: String +} + +""" +Types that can represent a repository ruleset bypass actor. +""" +union BypassActor = App | Team + +""" +A user, team, or app who has the ability to bypass a force push requirement on a protected branch. +""" +type BypassForcePushAllowance implements Node { + """ + The actor that can force push. + """ + actor: BranchActorAllowanceActor + + """ + Identifies the branch protection rule associated with the allowed user, team, or app. + """ + branchProtectionRule: BranchProtectionRule + id: ID! +} + +""" +The connection type for BypassForcePushAllowance. +""" +type BypassForcePushAllowanceConnection { + """ + A list of edges. + """ + edges: [BypassForcePushAllowanceEdge] + + """ + A list of nodes. + """ + nodes: [BypassForcePushAllowance] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type BypassForcePushAllowanceEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: BypassForcePushAllowance +} + +""" +A user, team, or app who has the ability to bypass a pull request requirement on a protected branch. +""" +type BypassPullRequestAllowance implements Node { + """ + The actor that can bypass. + """ + actor: BranchActorAllowanceActor + + """ + Identifies the branch protection rule associated with the allowed user, team, or app. + """ + branchProtectionRule: BranchProtectionRule + id: ID! +} + +""" +The connection type for BypassPullRequestAllowance. +""" +type BypassPullRequestAllowanceConnection { + """ + A list of edges. + """ + edges: [BypassPullRequestAllowanceEdge] + + """ + A list of nodes. + """ + nodes: [BypassPullRequestAllowance] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type BypassPullRequestAllowanceEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: BypassPullRequestAllowance +} + +""" +The Common Vulnerability Scoring System +""" +type CVSS { + """ + The CVSS score associated with this advisory + """ + score: Float! + + """ + The CVSS vector string associated with this advisory + """ + vectorString: String +} + +""" +A common weakness enumeration +""" +type CWE implements Node { + """ + The id of the CWE + """ + cweId: String! + + """ + A detailed description of this CWE + """ + description: String! + id: ID! + + """ + The name of this CWE + """ + name: String! +} + +""" +The connection type for CWE. +""" +type CWEConnection { + """ + A list of edges. + """ + edges: [CWEEdge] + + """ + A list of nodes. + """ + nodes: [CWE] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type CWEEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: CWE +} + +""" +Autogenerated input type of CancelEnterpriseAdminInvitation +""" +input CancelEnterpriseAdminInvitationInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the pending enterprise administrator invitation. + """ + invitationId: ID! @possibleTypes(concreteTypes: ["EnterpriseAdministratorInvitation"]) +} + +""" +Autogenerated return type of CancelEnterpriseAdminInvitation +""" +type CancelEnterpriseAdminInvitationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The invitation that was canceled. + """ + invitation: EnterpriseAdministratorInvitation + + """ + A message confirming the result of canceling an administrator invitation. + """ + message: String +} + +""" +Autogenerated input type of CancelSponsorship +""" +input CancelSponsorshipInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the user or organization who is acting as the sponsor, paying for + the sponsorship. Required if sponsorLogin is not given. + """ + sponsorId: ID @possibleTypes(concreteTypes: ["Organization", "User"], abstractType: "Sponsor") + + """ + The username of the user or organization who is acting as the sponsor, paying + for the sponsorship. Required if sponsorId is not given. + """ + sponsorLogin: String + + """ + The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given. + """ + sponsorableId: ID @possibleTypes(concreteTypes: ["Organization", "User"], abstractType: "Sponsorable") + + """ + The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given. + """ + sponsorableLogin: String +} + +""" +Autogenerated return type of CancelSponsorship +""" +type CancelSponsorshipPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The tier that was being used at the time of cancellation. + """ + sponsorsTier: SponsorsTier +} + +""" +Autogenerated input type of ChangeUserStatus +""" +input ChangeUserStatusInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The emoji to represent your status. Can either be a native Unicode emoji or an emoji name with colons, e.g., :grinning:. + """ + emoji: String + + """ + If set, the user status will not be shown after this date. + """ + expiresAt: DateTime + + """ + Whether this status should indicate you are not fully available on GitHub, e.g., you are away. + """ + limitedAvailability: Boolean = false + + """ + A short description of your current status. + """ + message: String + + """ + The ID of the organization whose members will be allowed to see the status. If + omitted, the status will be publicly visible. + """ + organizationId: ID @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +Autogenerated return type of ChangeUserStatus +""" +type ChangeUserStatusPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Your updated status. + """ + status: UserStatus +} + +""" +A single check annotation. +""" +type CheckAnnotation { + """ + The annotation's severity level. + """ + annotationLevel: CheckAnnotationLevel + + """ + The path to the file that this annotation was made on. + """ + blobUrl: URI! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The position of this annotation. + """ + location: CheckAnnotationSpan! + + """ + The annotation's message. + """ + message: String! + + """ + The path that this annotation was made on. + """ + path: String! + + """ + Additional information about the annotation. + """ + rawDetails: String + + """ + The annotation's title + """ + title: String +} + +""" +The connection type for CheckAnnotation. +""" +type CheckAnnotationConnection { + """ + A list of edges. + """ + edges: [CheckAnnotationEdge] + + """ + A list of nodes. + """ + nodes: [CheckAnnotation] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Information from a check run analysis to specific lines of code. +""" +input CheckAnnotationData { + """ + Represents an annotation's information level + """ + annotationLevel: CheckAnnotationLevel! + + """ + The location of the annotation + """ + location: CheckAnnotationRange! + + """ + A short description of the feedback for these lines of code. + """ + message: String! + + """ + The path of the file to add an annotation to. + """ + path: String! + + """ + Details about this annotation. + """ + rawDetails: String + + """ + The title that represents the annotation. + """ + title: String +} + +""" +An edge in a connection. +""" +type CheckAnnotationEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: CheckAnnotation +} + +""" +Represents an annotation's information level. +""" +enum CheckAnnotationLevel { + """ + An annotation indicating an inescapable error. + """ + FAILURE + + """ + An annotation indicating some information. + """ + NOTICE + + """ + An annotation indicating an ignorable error. + """ + WARNING +} + +""" +A character position in a check annotation. +""" +type CheckAnnotationPosition { + """ + Column number (1 indexed). + """ + column: Int + + """ + Line number (1 indexed). + """ + line: Int! +} + +""" +Information from a check run analysis to specific lines of code. +""" +input CheckAnnotationRange { + """ + The ending column of the range. + """ + endColumn: Int + + """ + The ending line of the range. + """ + endLine: Int! + + """ + The starting column of the range. + """ + startColumn: Int + + """ + The starting line of the range. + """ + startLine: Int! +} + +""" +An inclusive pair of positions for a check annotation. +""" +type CheckAnnotationSpan { + """ + End position (inclusive). + """ + end: CheckAnnotationPosition! + + """ + Start position (inclusive). + """ + start: CheckAnnotationPosition! +} + +""" +The possible states for a check suite or run conclusion. +""" +enum CheckConclusionState { + """ + The check suite or run requires action. + """ + ACTION_REQUIRED + + """ + The check suite or run has been cancelled. + """ + CANCELLED + + """ + The check suite or run has failed. + """ + FAILURE + + """ + The check suite or run was neutral. + """ + NEUTRAL + + """ + The check suite or run was skipped. + """ + SKIPPED + + """ + The check suite or run was marked stale by GitHub. Only GitHub can use this conclusion. + """ + STALE + + """ + The check suite or run has failed at startup. + """ + STARTUP_FAILURE + + """ + The check suite or run has succeeded. + """ + SUCCESS + + """ + The check suite or run has timed out. + """ + TIMED_OUT +} + +""" +A check run. +""" +type CheckRun implements Node & RequirableByPullRequest & UniformResourceLocatable { + """ + The check run's annotations + """ + annotations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): CheckAnnotationConnection + + """ + The check suite that this run is a part of. + """ + checkSuite: CheckSuite! + + """ + Identifies the date and time when the check run was completed. + """ + completedAt: DateTime + + """ + The conclusion of the check run. + """ + conclusion: CheckConclusionState + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The corresponding deployment for this job, if any + """ + deployment: Deployment + + """ + The URL from which to find full details of the check run on the integrator's site. + """ + detailsUrl: URI + + """ + A reference for the check run on the integrator's system. + """ + externalId: String + id: ID! + + """ + Whether this is required to pass before merging for a specific pull request. + """ + isRequired( + """ + The id of the pull request this is required for + """ + pullRequestId: ID + + """ + The number of the pull request this is required for + """ + pullRequestNumber: Int + ): Boolean! + + """ + The name of the check for this check run. + """ + name: String! + + """ + Information about a pending deployment, if any, in this check run + """ + pendingDeploymentRequest: DeploymentRequest + + """ + The permalink to the check run summary. + """ + permalink: URI! + + """ + The repository associated with this check run. + """ + repository: Repository! + + """ + The HTTP path for this check run. + """ + resourcePath: URI! + + """ + Identifies the date and time when the check run was started. + """ + startedAt: DateTime + + """ + The current status of the check run. + """ + status: CheckStatusState! + + """ + The check run's steps + """ + steps( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Step number + """ + number: Int + ): CheckStepConnection + + """ + A string representing the check run's summary + """ + summary: String + + """ + A string representing the check run's text + """ + text: String + + """ + A string representing the check run + """ + title: String + + """ + The HTTP URL for this check run. + """ + url: URI! +} + +""" +Possible further actions the integrator can perform. +""" +input CheckRunAction { + """ + A short explanation of what this action would do. + """ + description: String! + + """ + A reference for the action on the integrator's system. + """ + identifier: String! + + """ + The text to be displayed on a button in the web UI. + """ + label: String! +} + +""" +The connection type for CheckRun. +""" +type CheckRunConnection { + """ + A list of edges. + """ + edges: [CheckRunEdge] + + """ + A list of nodes. + """ + nodes: [CheckRun] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type CheckRunEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: CheckRun +} + +""" +The filters that are available when fetching check runs. +""" +input CheckRunFilter { + """ + Filters the check runs created by this application ID. + """ + appId: Int + + """ + Filters the check runs by this name. + """ + checkName: String + + """ + Filters the check runs by this type. + """ + checkType: CheckRunType + + """ + Filters the check runs by these conclusions. + """ + conclusions: [CheckConclusionState!] + + """ + Filters the check runs by this status. Superceded by statuses. + """ + status: CheckStatusState + + """ + Filters the check runs by this status. Overrides status. + """ + statuses: [CheckStatusState!] +} + +""" +Descriptive details about the check run. +""" +input CheckRunOutput { + """ + The annotations that are made as part of the check run. + """ + annotations: [CheckAnnotationData!] + + """ + Images attached to the check run output displayed in the GitHub pull request UI. + """ + images: [CheckRunOutputImage!] + + """ + The summary of the check run (supports Commonmark). + """ + summary: String! + + """ + The details of the check run (supports Commonmark). + """ + text: String + + """ + A title to provide for this check run. + """ + title: String! +} + +""" +Images attached to the check run output displayed in the GitHub pull request UI. +""" +input CheckRunOutputImage { + """ + The alternative text for the image. + """ + alt: String! + + """ + A short image description. + """ + caption: String + + """ + The full URL of the image. + """ + imageUrl: URI! +} + +""" +The possible states of a check run in a status rollup. +""" +enum CheckRunState { + """ + The check run requires action. + """ + ACTION_REQUIRED + + """ + The check run has been cancelled. + """ + CANCELLED + + """ + The check run has been completed. + """ + COMPLETED + + """ + The check run has failed. + """ + FAILURE + + """ + The check run is in progress. + """ + IN_PROGRESS + + """ + The check run was neutral. + """ + NEUTRAL + + """ + The check run is in pending state. + """ + PENDING + + """ + The check run has been queued. + """ + QUEUED + + """ + The check run was skipped. + """ + SKIPPED + + """ + The check run was marked stale by GitHub. Only GitHub can use this conclusion. + """ + STALE + + """ + The check run has failed at startup. + """ + STARTUP_FAILURE + + """ + The check run has succeeded. + """ + SUCCESS + + """ + The check run has timed out. + """ + TIMED_OUT + + """ + The check run is in waiting state. + """ + WAITING +} + +""" +Represents a count of the state of a check run. +""" +type CheckRunStateCount { + """ + The number of check runs with this state. + """ + count: Int! + + """ + The state of a check run. + """ + state: CheckRunState! +} + +""" +The possible types of check runs. +""" +enum CheckRunType { + """ + Every check run available. + """ + ALL + + """ + The latest check run. + """ + LATEST +} + +""" +The possible states for a check suite or run status. +""" +enum CheckStatusState { + """ + The check suite or run has been completed. + """ + COMPLETED + + """ + The check suite or run is in progress. + """ + IN_PROGRESS + + """ + The check suite or run is in pending state. + """ + PENDING + + """ + The check suite or run has been queued. + """ + QUEUED + + """ + The check suite or run has been requested. + """ + REQUESTED + + """ + The check suite or run is in waiting state. + """ + WAITING +} + +""" +A single check step. +""" +type CheckStep { + """ + Identifies the date and time when the check step was completed. + """ + completedAt: DateTime + + """ + The conclusion of the check step. + """ + conclusion: CheckConclusionState + + """ + A reference for the check step on the integrator's system. + """ + externalId: String + + """ + The step's name. + """ + name: String! + + """ + The index of the step in the list of steps of the parent check run. + """ + number: Int! + + """ + Number of seconds to completion. + """ + secondsToCompletion: Int + + """ + Identifies the date and time when the check step was started. + """ + startedAt: DateTime + + """ + The current status of the check step. + """ + status: CheckStatusState! +} + +""" +The connection type for CheckStep. +""" +type CheckStepConnection { + """ + A list of edges. + """ + edges: [CheckStepEdge] + + """ + A list of nodes. + """ + nodes: [CheckStep] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type CheckStepEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: CheckStep +} + +""" +A check suite. +""" +type CheckSuite implements Node { + """ + The GitHub App which created this check suite. + """ + app: App + + """ + The name of the branch for this check suite. + """ + branch: Ref + + """ + The check runs associated with a check suite. + """ + checkRuns( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Filters the check runs by this type. + """ + filterBy: CheckRunFilter + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): CheckRunConnection + + """ + The commit for this check suite + """ + commit: Commit! + + """ + The conclusion of this check suite. + """ + conclusion: CheckConclusionState + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The user who triggered the check suite. + """ + creator: User + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + A list of open pull requests matching the check suite. + """ + matchingPullRequests( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + The base ref name to filter the pull requests by. + """ + baseRefName: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + The head ref name to filter the pull requests by. + """ + headRefName: String + + """ + A list of label names to filter the pull requests by. + """ + labels: [String!] + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for pull requests returned from the connection. + """ + orderBy: IssueOrder + + """ + A list of states to filter the pull requests by. + """ + states: [PullRequestState!] + ): PullRequestConnection + + """ + The push that triggered this check suite. + """ + push: Push + + """ + The repository associated with this check suite. + """ + repository: Repository! + + """ + The HTTP path for this check suite + """ + resourcePath: URI! + + """ + The status of this check suite. + """ + status: CheckStatusState! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this check suite + """ + url: URI! + + """ + The workflow run associated with this check suite. + """ + workflowRun: WorkflowRun +} + +""" +The auto-trigger preferences that are available for check suites. +""" +input CheckSuiteAutoTriggerPreference { + """ + The node ID of the application that owns the check suite. + """ + appId: ID! + + """ + Set to `true` to enable automatic creation of CheckSuite events upon pushes to the repository. + """ + setting: Boolean! +} + +""" +The connection type for CheckSuite. +""" +type CheckSuiteConnection { + """ + A list of edges. + """ + edges: [CheckSuiteEdge] + + """ + A list of nodes. + """ + nodes: [CheckSuite] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type CheckSuiteEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: CheckSuite +} + +""" +The filters that are available when fetching check suites. +""" +input CheckSuiteFilter { + """ + Filters the check suites created by this application ID. + """ + appId: Int + + """ + Filters the check suites by this name. + """ + checkName: String +} + +""" +An object which can have its data claimed or claim data from another. +""" +union Claimable = Mannequin | User + +""" +Autogenerated input type of ClearLabelsFromLabelable +""" +input ClearLabelsFromLabelableInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the labelable object to clear the labels from. + """ + labelableId: ID! @possibleTypes(concreteTypes: ["Discussion", "Issue", "PullRequest"], abstractType: "Labelable") +} + +""" +Autogenerated return type of ClearLabelsFromLabelable +""" +type ClearLabelsFromLabelablePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The item that was unlabeled. + """ + labelable: Labelable +} + +""" +Autogenerated input type of ClearProjectV2ItemFieldValue +""" +input ClearProjectV2ItemFieldValueInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the field to be cleared. + """ + fieldId: ID! + @possibleTypes( + concreteTypes: ["ProjectV2Field", "ProjectV2IterationField", "ProjectV2SingleSelectField"] + abstractType: "ProjectV2FieldConfiguration" + ) + + """ + The ID of the item to be cleared. + """ + itemId: ID! @possibleTypes(concreteTypes: ["ProjectV2Item"]) + + """ + The ID of the Project. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated return type of ClearProjectV2ItemFieldValue +""" +type ClearProjectV2ItemFieldValuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated item. + """ + projectV2Item: ProjectV2Item +} + +""" +Autogenerated input type of CloneProject +""" +input CloneProjectInput { + """ + The description of the project. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Whether or not to clone the source project's workflows. + """ + includeWorkflows: Boolean! + + """ + The name of the project. + """ + name: String! + + """ + The visibility of the project, defaults to false (private). + """ + public: Boolean + + """ + The source project to clone. + """ + sourceId: ID! @possibleTypes(concreteTypes: ["Project"]) + + """ + The owner ID to create the project under. + """ + targetOwnerId: ID! @possibleTypes(concreteTypes: ["Organization", "Repository", "User"], abstractType: "ProjectOwner") +} + +""" +Autogenerated return type of CloneProject +""" +type CloneProjectPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the JobStatus for populating cloned fields. + """ + jobStatusId: String + + """ + The new cloned project. + """ + project: Project +} + +""" +Autogenerated input type of CloneTemplateRepository +""" +input CloneTemplateRepositoryInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A short description of the new repository. + """ + description: String + + """ + Whether to copy all branches from the template to the new repository. Defaults + to copying only the default branch of the template. + """ + includeAllBranches: Boolean = false + + """ + The name of the new repository. + """ + name: String! + + """ + The ID of the owner for the new repository. + """ + ownerId: ID! @possibleTypes(concreteTypes: ["Organization", "User"], abstractType: "RepositoryOwner") + + """ + The Node ID of the template repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + Indicates the repository's visibility level. + """ + visibility: RepositoryVisibility! +} + +""" +Autogenerated return type of CloneTemplateRepository +""" +type CloneTemplateRepositoryPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new repository. + """ + repository: Repository +} + +""" +An object that can be closed +""" +interface Closable { + """ + Indicates if the object is closed (definition of closed may depend on type) + """ + closed: Boolean! + + """ + Identifies the date and time when the object was closed. + """ + closedAt: DateTime + + """ + Indicates if the object can be closed by the viewer. + """ + viewerCanClose: Boolean! + + """ + Indicates if the object can be reopened by the viewer. + """ + viewerCanReopen: Boolean! +} + +""" +Autogenerated input type of CloseDiscussion +""" +input CloseDiscussionInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the discussion to be closed. + """ + discussionId: ID! @possibleTypes(concreteTypes: ["Discussion"]) + + """ + The reason why the discussion is being closed. + """ + reason: DiscussionCloseReason = RESOLVED +} + +""" +Autogenerated return type of CloseDiscussion +""" +type CloseDiscussionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The discussion that was closed. + """ + discussion: Discussion +} + +""" +Autogenerated input type of CloseIssue +""" +input CloseIssueInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the issue to be closed. + """ + issueId: ID! @possibleTypes(concreteTypes: ["Issue"]) + + """ + The reason the issue is to be closed. + """ + stateReason: IssueClosedStateReason +} + +""" +Autogenerated return type of CloseIssue +""" +type CloseIssuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The issue that was closed. + """ + issue: Issue +} + +""" +Autogenerated input type of ClosePullRequest +""" +input ClosePullRequestInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the pull request to be closed. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +Autogenerated return type of ClosePullRequest +""" +type ClosePullRequestPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The pull request that was closed. + """ + pullRequest: PullRequest +} + +""" +Represents a 'closed' event on any `Closable`. +""" +type ClosedEvent implements Node & UniformResourceLocatable { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Object that was closed. + """ + closable: Closable! + + """ + Object which triggered the creation of this event. + """ + closer: Closer + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + The HTTP path for this closed event. + """ + resourcePath: URI! + + """ + The reason the issue state was changed to closed. + """ + stateReason: IssueStateReason + + """ + The HTTP URL for this closed event. + """ + url: URI! +} + +""" +The object which triggered a `ClosedEvent`. +""" +union Closer = Commit | PullRequest + +""" +The Code of Conduct for a repository +""" +type CodeOfConduct implements Node { + """ + The body of the Code of Conduct + """ + body: String + id: ID! + + """ + The key for the Code of Conduct + """ + key: String! + + """ + The formal name of the Code of Conduct + """ + name: String! + + """ + The HTTP path for this Code of Conduct + """ + resourcePath: URI + + """ + The HTTP URL for this Code of Conduct + """ + url: URI +} + +""" +Collaborators affiliation level with a subject. +""" +enum CollaboratorAffiliation { + """ + All collaborators the authenticated user can see. + """ + ALL + + """ + All collaborators with permissions to an organization-owned subject, regardless of organization membership status. + """ + DIRECT + + """ + All outside collaborators of an organization-owned subject. + """ + OUTSIDE +} + +""" +Represents a comment. +""" +interface Comment { + """ + The actor who authored the comment. + """ + author: Actor + + """ + Author's association with the subject of the comment. + """ + authorAssociation: CommentAuthorAssociation! + + """ + The body as Markdown. + """ + body: String! + + """ + The body rendered to HTML. + """ + bodyHTML: HTML! + + """ + The body rendered to text. + """ + bodyText: String! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Check if this comment was created via an email reply. + """ + createdViaEmail: Boolean! + + """ + The actor who edited the comment. + """ + editor: Actor + id: ID! + + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + + """ + The moment the editor made the last edit + """ + lastEditedAt: DateTime + + """ + Identifies when the comment was published at. + """ + publishedAt: DateTime + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + A list of edits to this content. + """ + userContentEdits( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserContentEditConnection + + """ + Did the viewer author this comment. + """ + viewerDidAuthor: Boolean! +} + +""" +A comment author association with repository. +""" +enum CommentAuthorAssociation { + """ + Author has been invited to collaborate on the repository. + """ + COLLABORATOR + + """ + Author has previously committed to the repository. + """ + CONTRIBUTOR + + """ + Author has not previously committed to GitHub. + """ + FIRST_TIMER + + """ + Author has not previously committed to the repository. + """ + FIRST_TIME_CONTRIBUTOR + + """ + Author is a placeholder for an unclaimed user. + """ + MANNEQUIN + + """ + Author is a member of the organization that owns the repository. + """ + MEMBER + + """ + Author has no association with the repository. + """ + NONE + + """ + Author is the owner of the repository. + """ + OWNER +} + +""" +The possible errors that will prevent a user from updating a comment. +""" +enum CommentCannotUpdateReason { + """ + Unable to create comment because repository is archived. + """ + ARCHIVED + + """ + You cannot update this comment + """ + DENIED + + """ + You must be the author or have write access to this repository to update this comment. + """ + INSUFFICIENT_ACCESS + + """ + Unable to create comment because issue is locked. + """ + LOCKED + + """ + You must be logged in to update this comment. + """ + LOGIN_REQUIRED + + """ + Repository is under maintenance. + """ + MAINTENANCE + + """ + At least one email address must be verified to update this comment. + """ + VERIFIED_EMAIL_REQUIRED +} + +""" +Represents a 'comment_deleted' event on a given issue or pull request. +""" +type CommentDeletedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The user who authored the deleted comment. + """ + deletedCommentAuthor: Actor + id: ID! +} + +""" +Represents a Git commit. +""" +type Commit implements GitObject & Node & Subscribable & UniformResourceLocatable { + """ + An abbreviated version of the Git object ID + """ + abbreviatedOid: String! + + """ + The number of additions in this commit. + """ + additions: Int! + + """ + The merged Pull Request that introduced the commit to the repository. If the + commit is not present in the default branch, additionally returns open Pull + Requests associated with the commit + """ + associatedPullRequests( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for pull requests. + """ + orderBy: PullRequestOrder = {field: CREATED_AT, direction: ASC} + ): PullRequestConnection + + """ + Authorship details of the commit. + """ + author: GitActor + + """ + Check if the committer and the author match. + """ + authoredByCommitter: Boolean! + + """ + The datetime when this commit was authored. + """ + authoredDate: DateTime! + + """ + The list of authors for this commit based on the git author and the Co-authored-by + message trailer. The git author will always be first. + """ + authors( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): GitActorConnection! + + """ + Fetches `git blame` information. + """ + blame( + """ + The file whose Git blame information you want. + """ + path: String! + ): Blame! + + """ + We recommend using the `changedFilesIfAvailable` field instead of + `changedFiles`, as `changedFiles` will cause your request to return an error + if GitHub is unable to calculate the number of changed files. + """ + changedFiles: Int! + @deprecated( + reason: "`changedFiles` will be removed. Use `changedFilesIfAvailable` instead. Removal on 2023-01-01 UTC." + ) + + """ + The number of changed files in this commit. If GitHub is unable to calculate + the number of changed files (for example due to a timeout), this will return + `null`. We recommend using this field instead of `changedFiles`. + """ + changedFilesIfAvailable: Int + + """ + The check suites associated with a commit. + """ + checkSuites( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Filters the check suites by this type. + """ + filterBy: CheckSuiteFilter + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): CheckSuiteConnection + + """ + Comments made on the commit. + """ + comments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): CommitCommentConnection! + + """ + The HTTP path for this Git object + """ + commitResourcePath: URI! + + """ + The HTTP URL for this Git object + """ + commitUrl: URI! + + """ + The datetime when this commit was committed. + """ + committedDate: DateTime! + + """ + Check if committed via GitHub web UI. + """ + committedViaWeb: Boolean! + + """ + Committer details of the commit. + """ + committer: GitActor + + """ + The number of deletions in this commit. + """ + deletions: Int! + + """ + The deployments associated with a commit. + """ + deployments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Environments to list deployments for + """ + environments: [String!] + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for deployments returned from the connection. + """ + orderBy: DeploymentOrder = {field: CREATED_AT, direction: ASC} + ): DeploymentConnection + + """ + The tree entry representing the file located at the given path. + """ + file( + """ + The path for the file + """ + path: String! + ): TreeEntry + + """ + The linear commit history starting from (and including) this commit, in the same order as `git log`. + """ + history( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + If non-null, filters history to only show commits with matching authorship. + """ + author: CommitAuthor + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + If non-null, filters history to only show commits touching files under this path. + """ + path: String + + """ + Allows specifying a beginning time or date for fetching commits. + """ + since: GitTimestamp + + """ + Allows specifying an ending time or date for fetching commits. + """ + until: GitTimestamp + ): CommitHistoryConnection! + id: ID! + + """ + The Git commit message + """ + message: String! + + """ + The Git commit message body + """ + messageBody: String! + + """ + The commit message body rendered to HTML. + """ + messageBodyHTML: HTML! + + """ + The Git commit message headline + """ + messageHeadline: String! + + """ + The commit message headline rendered to HTML. + """ + messageHeadlineHTML: HTML! + + """ + The Git object ID + """ + oid: GitObjectID! + + """ + The organization this commit was made on behalf of. + """ + onBehalfOf: Organization + + """ + The parents of a commit. + """ + parents( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): CommitConnection! + + """ + The datetime when this commit was pushed. + """ + pushedDate: DateTime @deprecated(reason: "`pushedDate` is no longer supported. Removal on 2023-07-01 UTC.") + + """ + The Repository this commit belongs to + """ + repository: Repository! + + """ + The HTTP path for this commit + """ + resourcePath: URI! + + """ + Commit signing information, if present. + """ + signature: GitSignature + + """ + Status information for this commit + """ + status: Status + + """ + Check and Status rollup information for this commit. + """ + statusCheckRollup: StatusCheckRollup + + """ + Returns a list of all submodules in this repository as of this Commit parsed from the .gitmodules file. + """ + submodules( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): SubmoduleConnection! + + """ + Returns a URL to download a tarball archive for a repository. + Note: For private repositories, these links are temporary and expire after five minutes. + """ + tarballUrl: URI! + + """ + Commit's root Tree + """ + tree: Tree! + + """ + The HTTP path for the tree of this commit + """ + treeResourcePath: URI! + + """ + The HTTP URL for the tree of this commit + """ + treeUrl: URI! + + """ + The HTTP URL for this commit + """ + url: URI! + + """ + Check if the viewer is able to change their subscription status for the repository. + """ + viewerCanSubscribe: Boolean! + + """ + Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. + """ + viewerSubscription: SubscriptionState + + """ + Returns a URL to download a zipball archive for a repository. + Note: For private repositories, these links are temporary and expire after five minutes. + """ + zipballUrl: URI! +} + +""" +Specifies an author for filtering Git commits. +""" +input CommitAuthor { + """ + Email addresses to filter by. Commits authored by any of the specified email addresses will be returned. + """ + emails: [String!] + + """ + ID of a User to filter by. If non-null, only commits authored by this user + will be returned. This field takes precedence over emails. + """ + id: ID +} + +""" +Parameters to be used for the commit_author_email_pattern rule +""" +type CommitAuthorEmailPatternParameters { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean! + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +Parameters to be used for the commit_author_email_pattern rule +""" +input CommitAuthorEmailPatternParametersInput { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +Represents a comment on a given Commit. +""" +type CommitComment implements Comment & Deletable & Minimizable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment { + """ + The actor who authored the comment. + """ + author: Actor + + """ + Author's association with the subject of the comment. + """ + authorAssociation: CommentAuthorAssociation! + + """ + Identifies the comment body. + """ + body: String! + + """ + The body rendered to HTML. + """ + bodyHTML: HTML! + + """ + The body rendered to text. + """ + bodyText: String! + + """ + Identifies the commit associated with the comment, if the commit exists. + """ + commit: Commit + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Check if this comment was created via an email reply. + """ + createdViaEmail: Boolean! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The actor who edited the comment. + """ + editor: Actor + id: ID! + + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + + """ + Returns whether or not a comment has been minimized. + """ + isMinimized: Boolean! + + """ + The moment the editor made the last edit + """ + lastEditedAt: DateTime + + """ + Returns why the comment was minimized. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + minimizedReason: String + + """ + Identifies the file path associated with the comment. + """ + path: String + + """ + Identifies the line position associated with the comment. + """ + position: Int + + """ + Identifies when the comment was published at. + """ + publishedAt: DateTime + + """ + A list of reactions grouped by content left on the subject. + """ + reactionGroups: [ReactionGroup!] + + """ + A list of Reactions left on the Issue. + """ + reactions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Allows filtering Reactions by emoji. + """ + content: ReactionContent + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Allows specifying the order in which reactions are returned. + """ + orderBy: ReactionOrder + ): ReactionConnection! + + """ + The repository associated with this node. + """ + repository: Repository! + + """ + The HTTP path permalink for this commit comment. + """ + resourcePath: URI! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL permalink for this commit comment. + """ + url: URI! + + """ + A list of edits to this content. + """ + userContentEdits( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserContentEditConnection + + """ + Check if the current viewer can delete this object. + """ + viewerCanDelete: Boolean! + + """ + Check if the current viewer can minimize this object. + """ + viewerCanMinimize: Boolean! + + """ + Can user react to this subject + """ + viewerCanReact: Boolean! + + """ + Check if the current viewer can update this object. + """ + viewerCanUpdate: Boolean! + + """ + Reasons why the current viewer can not update this comment. + """ + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + + """ + Did the viewer author this comment. + """ + viewerDidAuthor: Boolean! +} + +""" +The connection type for CommitComment. +""" +type CommitCommentConnection { + """ + A list of edges. + """ + edges: [CommitCommentEdge] + + """ + A list of nodes. + """ + nodes: [CommitComment] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type CommitCommentEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: CommitComment +} + +""" +A thread of comments on a commit. +""" +type CommitCommentThread implements Node & RepositoryNode { + """ + The comments that exist in this thread. + """ + comments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): CommitCommentConnection! + + """ + The commit the comments were made on. + """ + commit: Commit + id: ID! + + """ + The file the comments were made on. + """ + path: String + + """ + The position in the diff for the commit that the comment was made on. + """ + position: Int + + """ + The repository associated with this node. + """ + repository: Repository! +} + +""" +The connection type for Commit. +""" +type CommitConnection { + """ + A list of edges. + """ + edges: [CommitEdge] + + """ + A list of nodes. + """ + nodes: [Commit] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Ordering options for commit contribution connections. +""" +input CommitContributionOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field by which to order commit contributions. + """ + field: CommitContributionOrderField! +} + +""" +Properties by which commit contribution connections can be ordered. +""" +enum CommitContributionOrderField { + """ + Order commit contributions by how many commits they represent. + """ + COMMIT_COUNT + + """ + Order commit contributions by when they were made. + """ + OCCURRED_AT +} + +""" +This aggregates commits made by a user within one repository. +""" +type CommitContributionsByRepository { + """ + The commit contributions, each representing a day. + """ + contributions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for commit contributions returned from the connection. + """ + orderBy: CommitContributionOrder = {field: OCCURRED_AT, direction: DESC} + ): CreatedCommitContributionConnection! + + """ + The repository in which the commits were made. + """ + repository: Repository! + + """ + The HTTP path for the user's commits to the repository in this time range. + """ + resourcePath: URI! + + """ + The HTTP URL for the user's commits to the repository in this time range. + """ + url: URI! +} + +""" +An edge in a connection. +""" +type CommitEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Commit +} + +""" +The connection type for Commit. +""" +type CommitHistoryConnection { + """ + A list of edges. + """ + edges: [CommitEdge] + + """ + A list of nodes. + """ + nodes: [Commit] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +A message to include with a new commit +""" +input CommitMessage { + """ + The body of the message. + """ + body: String + + """ + The headline of the message. + """ + headline: String! +} + +""" +Parameters to be used for the commit_message_pattern rule +""" +type CommitMessagePatternParameters { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean! + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +Parameters to be used for the commit_message_pattern rule +""" +input CommitMessagePatternParametersInput { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +A git ref for a commit to be appended to. + +The ref must be a branch, i.e. its fully qualified name must start +with `refs/heads/` (although the input is not required to be fully +qualified). + +The Ref may be specified by its global node ID or by the +`repositoryNameWithOwner` and `branchName`. + +### Examples + +Specify a branch using a global node ID: + + { "id": "MDM6UmVmMTpyZWZzL2hlYWRzL21haW4=" } + +Specify a branch using `repositoryNameWithOwner` and `branchName`: + + { + "repositoryNameWithOwner": "github/graphql-client", + "branchName": "main" + } +""" +input CommittableBranch { + """ + The unqualified name of the branch to append the commit to. + """ + branchName: String + + """ + The Node ID of the Ref to be updated. + """ + id: ID + + """ + The nameWithOwner of the repository to commit to. + """ + repositoryNameWithOwner: String +} + +""" +Parameters to be used for the committer_email_pattern rule +""" +type CommitterEmailPatternParameters { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean! + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +Parameters to be used for the committer_email_pattern rule +""" +input CommitterEmailPatternParametersInput { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +Represents a comparison between two commit revisions. +""" +type Comparison implements Node { + """ + The number of commits ahead of the base branch. + """ + aheadBy: Int! + + """ + The base revision of this comparison. + """ + baseTarget: GitObject! + + """ + The number of commits behind the base branch. + """ + behindBy: Int! + + """ + The commits which compose this comparison. + """ + commits( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ComparisonCommitConnection! + + """ + The head revision of this comparison. + """ + headTarget: GitObject! + id: ID! + + """ + The status of this comparison. + """ + status: ComparisonStatus! +} + +""" +The connection type for Commit. +""" +type ComparisonCommitConnection { + """ + The total count of authors and co-authors across all commits. + """ + authorCount: Int! + + """ + A list of edges. + """ + edges: [CommitEdge] + + """ + A list of nodes. + """ + nodes: [Commit] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +The status of a git comparison between two refs. +""" +enum ComparisonStatus { + """ + The head ref is ahead of the base ref. + """ + AHEAD + + """ + The head ref is behind the base ref. + """ + BEHIND + + """ + The head ref is both ahead and behind of the base ref, indicating git history has diverged. + """ + DIVERGED + + """ + The head ref and base ref are identical. + """ + IDENTICAL +} + +""" +Represents a 'connected' event on a given issue or pull request. +""" +type ConnectedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Reference originated in a different repository. + """ + isCrossRepository: Boolean! + + """ + Issue or pull request that made the reference. + """ + source: ReferencedSubject! + + """ + Issue or pull request which was connected. + """ + subject: ReferencedSubject! +} + +""" +Represents a contribution a user made on GitHub, such as opening an issue. +""" +interface Contribution { + """ + Whether this contribution is associated with a record you do not have access to. For + example, your own 'first issue' contribution may have been made on a repository you can no + longer access. + """ + isRestricted: Boolean! + + """ + When this contribution was made. + """ + occurredAt: DateTime! + + """ + The HTTP path for this contribution. + """ + resourcePath: URI! + + """ + The HTTP URL for this contribution. + """ + url: URI! + + """ + The user who made this contribution. + """ + user: User! +} + +""" +A calendar of contributions made on GitHub by a user. +""" +type ContributionCalendar { + """ + A list of hex color codes used in this calendar. The darker the color, the more contributions it represents. + """ + colors: [String!]! + + """ + Determine if the color set was chosen because it's currently Halloween. + """ + isHalloween: Boolean! + + """ + A list of the months of contributions in this calendar. + """ + months: [ContributionCalendarMonth!]! + + """ + The count of total contributions in the calendar. + """ + totalContributions: Int! + + """ + A list of the weeks of contributions in this calendar. + """ + weeks: [ContributionCalendarWeek!]! +} + +""" +Represents a single day of contributions on GitHub by a user. +""" +type ContributionCalendarDay { + """ + The hex color code that represents how many contributions were made on this day compared to others in the calendar. + """ + color: String! + + """ + How many contributions were made by the user on this day. + """ + contributionCount: Int! + + """ + Indication of contributions, relative to other days. Can be used to indicate + which color to represent this day on a calendar. + """ + contributionLevel: ContributionLevel! + + """ + The day this square represents. + """ + date: Date! + + """ + A number representing which day of the week this square represents, e.g., 1 is Monday. + """ + weekday: Int! +} + +""" +A month of contributions in a user's contribution graph. +""" +type ContributionCalendarMonth { + """ + The date of the first day of this month. + """ + firstDay: Date! + + """ + The name of the month. + """ + name: String! + + """ + How many weeks started in this month. + """ + totalWeeks: Int! + + """ + The year the month occurred in. + """ + year: Int! +} + +""" +A week of contributions in a user's contribution graph. +""" +type ContributionCalendarWeek { + """ + The days of contributions in this week. + """ + contributionDays: [ContributionCalendarDay!]! + + """ + The date of the earliest square in this week. + """ + firstDay: Date! +} + +""" +Varying levels of contributions from none to many. +""" +enum ContributionLevel { + """ + Lowest 25% of days of contributions. + """ + FIRST_QUARTILE + + """ + Highest 25% of days of contributions. More contributions than the third quartile. + """ + FOURTH_QUARTILE + + """ + No contributions occurred. + """ + NONE + + """ + Second lowest 25% of days of contributions. More contributions than the first quartile. + """ + SECOND_QUARTILE + + """ + Second highest 25% of days of contributions. More contributions than second quartile, less than the fourth quartile. + """ + THIRD_QUARTILE +} + +""" +Ordering options for contribution connections. +""" +input ContributionOrder { + """ + The ordering direction. + """ + direction: OrderDirection! +} + +""" +A contributions collection aggregates contributions such as opened issues and commits created by a user. +""" +type ContributionsCollection { + """ + Commit contributions made by the user, grouped by repository. + """ + commitContributionsByRepository( + """ + How many repositories should be included. + """ + maxRepositories: Int = 25 + ): [CommitContributionsByRepository!]! + + """ + A calendar of this user's contributions on GitHub. + """ + contributionCalendar: ContributionCalendar! + + """ + The years the user has been making contributions with the most recent year first. + """ + contributionYears: [Int!]! + + """ + Determine if this collection's time span ends in the current month. + """ + doesEndInCurrentMonth: Boolean! + + """ + The date of the first restricted contribution the user made in this time + period. Can only be non-null when the user has enabled private contribution counts. + """ + earliestRestrictedContributionDate: Date + + """ + The ending date and time of this collection. + """ + endedAt: DateTime! + + """ + The first issue the user opened on GitHub. This will be null if that issue was + opened outside the collection's time range and ignoreTimeRange is false. If + the issue is not visible but the user has opted to show private contributions, + a RestrictedContribution will be returned. + """ + firstIssueContribution: CreatedIssueOrRestrictedContribution + + """ + The first pull request the user opened on GitHub. This will be null if that + pull request was opened outside the collection's time range and + ignoreTimeRange is not true. If the pull request is not visible but the user + has opted to show private contributions, a RestrictedContribution will be returned. + """ + firstPullRequestContribution: CreatedPullRequestOrRestrictedContribution + + """ + The first repository the user created on GitHub. This will be null if that + first repository was created outside the collection's time range and + ignoreTimeRange is false. If the repository is not visible, then a + RestrictedContribution is returned. + """ + firstRepositoryContribution: CreatedRepositoryOrRestrictedContribution + + """ + Does the user have any more activity in the timeline that occurred prior to the collection's time range? + """ + hasActivityInThePast: Boolean! + + """ + Determine if there are any contributions in this collection. + """ + hasAnyContributions: Boolean! + + """ + Determine if the user made any contributions in this time frame whose details + are not visible because they were made in a private repository. Can only be + true if the user enabled private contribution counts. + """ + hasAnyRestrictedContributions: Boolean! + + """ + Whether or not the collector's time span is all within the same day. + """ + isSingleDay: Boolean! + + """ + A list of issues the user opened. + """ + issueContributions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Should the user's first issue ever be excluded from the result. + """ + excludeFirst: Boolean = false + + """ + Should the user's most commented issue be excluded from the result. + """ + excludePopular: Boolean = false + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for contributions returned from the connection. + """ + orderBy: ContributionOrder = {direction: DESC} + ): CreatedIssueContributionConnection! + + """ + Issue contributions made by the user, grouped by repository. + """ + issueContributionsByRepository( + """ + Should the user's first issue ever be excluded from the result. + """ + excludeFirst: Boolean = false + + """ + Should the user's most commented issue be excluded from the result. + """ + excludePopular: Boolean = false + + """ + How many repositories should be included. + """ + maxRepositories: Int = 25 + ): [IssueContributionsByRepository!]! + + """ + When the user signed up for GitHub. This will be null if that sign up date + falls outside the collection's time range and ignoreTimeRange is false. + """ + joinedGitHubContribution: JoinedGitHubContribution + + """ + The date of the most recent restricted contribution the user made in this time + period. Can only be non-null when the user has enabled private contribution counts. + """ + latestRestrictedContributionDate: Date + + """ + When this collection's time range does not include any activity from the user, use this + to get a different collection from an earlier time range that does have activity. + """ + mostRecentCollectionWithActivity: ContributionsCollection + + """ + Returns a different contributions collection from an earlier time range than this one + that does not have any contributions. + """ + mostRecentCollectionWithoutActivity: ContributionsCollection + + """ + The issue the user opened on GitHub that received the most comments in the specified + time frame. + """ + popularIssueContribution: CreatedIssueContribution + + """ + The pull request the user opened on GitHub that received the most comments in the + specified time frame. + """ + popularPullRequestContribution: CreatedPullRequestContribution + + """ + Pull request contributions made by the user. + """ + pullRequestContributions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Should the user's first pull request ever be excluded from the result. + """ + excludeFirst: Boolean = false + + """ + Should the user's most commented pull request be excluded from the result. + """ + excludePopular: Boolean = false + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for contributions returned from the connection. + """ + orderBy: ContributionOrder = {direction: DESC} + ): CreatedPullRequestContributionConnection! + + """ + Pull request contributions made by the user, grouped by repository. + """ + pullRequestContributionsByRepository( + """ + Should the user's first pull request ever be excluded from the result. + """ + excludeFirst: Boolean = false + + """ + Should the user's most commented pull request be excluded from the result. + """ + excludePopular: Boolean = false + + """ + How many repositories should be included. + """ + maxRepositories: Int = 25 + ): [PullRequestContributionsByRepository!]! + + """ + Pull request review contributions made by the user. Returns the most recently + submitted review for each PR reviewed by the user. + """ + pullRequestReviewContributions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for contributions returned from the connection. + """ + orderBy: ContributionOrder = {direction: DESC} + ): CreatedPullRequestReviewContributionConnection! + + """ + Pull request review contributions made by the user, grouped by repository. + """ + pullRequestReviewContributionsByRepository( + """ + How many repositories should be included. + """ + maxRepositories: Int = 25 + ): [PullRequestReviewContributionsByRepository!]! + + """ + A list of repositories owned by the user that the user created in this time range. + """ + repositoryContributions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Should the user's first repository ever be excluded from the result. + """ + excludeFirst: Boolean = false + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for contributions returned from the connection. + """ + orderBy: ContributionOrder = {direction: DESC} + ): CreatedRepositoryContributionConnection! + + """ + A count of contributions made by the user that the viewer cannot access. Only + non-zero when the user has chosen to share their private contribution counts. + """ + restrictedContributionsCount: Int! + + """ + The beginning date and time of this collection. + """ + startedAt: DateTime! + + """ + How many commits were made by the user in this time span. + """ + totalCommitContributions: Int! + + """ + How many issues the user opened. + """ + totalIssueContributions( + """ + Should the user's first issue ever be excluded from this count. + """ + excludeFirst: Boolean = false + + """ + Should the user's most commented issue be excluded from this count. + """ + excludePopular: Boolean = false + ): Int! + + """ + How many pull requests the user opened. + """ + totalPullRequestContributions( + """ + Should the user's first pull request ever be excluded from this count. + """ + excludeFirst: Boolean = false + + """ + Should the user's most commented pull request be excluded from this count. + """ + excludePopular: Boolean = false + ): Int! + + """ + How many pull request reviews the user left. + """ + totalPullRequestReviewContributions: Int! + + """ + How many different repositories the user committed to. + """ + totalRepositoriesWithContributedCommits: Int! + + """ + How many different repositories the user opened issues in. + """ + totalRepositoriesWithContributedIssues( + """ + Should the user's first issue ever be excluded from this count. + """ + excludeFirst: Boolean = false + + """ + Should the user's most commented issue be excluded from this count. + """ + excludePopular: Boolean = false + ): Int! + + """ + How many different repositories the user left pull request reviews in. + """ + totalRepositoriesWithContributedPullRequestReviews: Int! + + """ + How many different repositories the user opened pull requests in. + """ + totalRepositoriesWithContributedPullRequests( + """ + Should the user's first pull request ever be excluded from this count. + """ + excludeFirst: Boolean = false + + """ + Should the user's most commented pull request be excluded from this count. + """ + excludePopular: Boolean = false + ): Int! + + """ + How many repositories the user created. + """ + totalRepositoryContributions( + """ + Should the user's first repository ever be excluded from this count. + """ + excludeFirst: Boolean = false + ): Int! + + """ + The user who made the contributions in this collection. + """ + user: User! +} + +""" +Autogenerated input type of ConvertProjectCardNoteToIssue +""" +input ConvertProjectCardNoteToIssueInput { + """ + The body of the newly created issue. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ProjectCard ID to convert. + """ + projectCardId: ID! @possibleTypes(concreteTypes: ["ProjectCard"]) + + """ + The ID of the repository to create the issue in. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + The title of the newly created issue. Defaults to the card's note text. + """ + title: String +} + +""" +Autogenerated return type of ConvertProjectCardNoteToIssue +""" +type ConvertProjectCardNoteToIssuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated ProjectCard. + """ + projectCard: ProjectCard +} + +""" +Autogenerated input type of ConvertPullRequestToDraft +""" +input ConvertPullRequestToDraftInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the pull request to convert to draft + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +Autogenerated return type of ConvertPullRequestToDraft +""" +type ConvertPullRequestToDraftPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The pull request that is now a draft. + """ + pullRequest: PullRequest +} + +""" +Represents a 'convert_to_draft' event on a given pull request. +""" +type ConvertToDraftEvent implements Node & UniformResourceLocatable { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest! + + """ + The HTTP path for this convert to draft event. + """ + resourcePath: URI! + + """ + The HTTP URL for this convert to draft event. + """ + url: URI! +} + +""" +Represents a 'converted_note_to_issue' event on a given issue or pull request. +""" +type ConvertedNoteToIssueEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + Project referenced by event. + """ + project: Project @preview(toggledBy: "starfox-preview") + + """ + Project card referenced by this project event. + """ + projectCard: ProjectCard @preview(toggledBy: "starfox-preview") + + """ + Column name referenced by this project event. + """ + projectColumnName: String! @preview(toggledBy: "starfox-preview") +} + +""" +Represents a 'converted_to_discussion' event on a given issue. +""" +type ConvertedToDiscussionEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The discussion that the issue was converted into. + """ + discussion: Discussion + id: ID! +} + +""" +Autogenerated input type of CopyProjectV2 +""" +input CopyProjectV2Input { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Include draft issues in the new project + """ + includeDraftIssues: Boolean = false + + """ + The owner ID of the new project. + """ + ownerId: ID! @possibleTypes(concreteTypes: ["Organization", "User"], abstractType: "OrganizationOrUser") + + """ + The ID of the source Project to copy. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + The title of the project. + """ + title: String! +} + +""" +Autogenerated return type of CopyProjectV2 +""" +type CopyProjectV2Payload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The copied project. + """ + projectV2: ProjectV2 +} + +""" +Autogenerated input type of CreateAttributionInvitation +""" +input CreateAttributionInvitationInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the owner scoping the reattributable data. + """ + ownerId: ID! @possibleTypes(concreteTypes: ["Bot", "Enterprise", "Mannequin", "Organization", "User"]) + + """ + The Node ID of the account owning the data to reattribute. + """ + sourceId: ID! @possibleTypes(concreteTypes: ["Bot", "Enterprise", "Mannequin", "Organization", "User"]) + + """ + The Node ID of the account which may claim the data. + """ + targetId: ID! @possibleTypes(concreteTypes: ["Bot", "Enterprise", "Mannequin", "Organization", "User"]) +} + +""" +Autogenerated return type of CreateAttributionInvitation +""" +type CreateAttributionInvitationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The owner scoping the reattributable data. + """ + owner: Organization + + """ + The account owning the data to reattribute. + """ + source: Claimable + + """ + The account which may claim the data. + """ + target: Claimable +} + +""" +Autogenerated input type of CreateBranchProtectionRule +""" +input CreateBranchProtectionRuleInput { + """ + Can this branch be deleted. + """ + allowsDeletions: Boolean + + """ + Are force pushes allowed on this branch. + """ + allowsForcePushes: Boolean + + """ + Is branch creation a protected operation. + """ + blocksCreations: Boolean + + """ + A list of User, Team, or App IDs allowed to bypass force push targeting matching branches. + """ + bypassForcePushActorIds: [ID!] + + """ + A list of User, Team, or App IDs allowed to bypass pull requests targeting matching branches. + """ + bypassPullRequestActorIds: [ID!] + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Will new commits pushed to matching branches dismiss pull request review approvals. + """ + dismissesStaleReviews: Boolean + + """ + Can admins overwrite branch protection. + """ + isAdminEnforced: Boolean + + """ + Whether users can pull changes from upstream when the branch is locked. Set to + `true` to allow fork syncing. Set to `false` to prevent fork syncing. + """ + lockAllowsFetchAndMerge: Boolean + + """ + Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. + """ + lockBranch: Boolean + + """ + The glob-like pattern used to determine matching branches. + """ + pattern: String! + + """ + A list of User, Team, or App IDs allowed to push to matching branches. + """ + pushActorIds: [ID!] + + """ + The global relay id of the repository in which a new branch protection rule should be created in. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + Whether the most recent push must be approved by someone other than the person who pushed it + """ + requireLastPushApproval: Boolean + + """ + Number of approving reviews required to update matching branches. + """ + requiredApprovingReviewCount: Int + + """ + The list of required deployment environments + """ + requiredDeploymentEnvironments: [String!] + + """ + List of required status check contexts that must pass for commits to be accepted to matching branches. + """ + requiredStatusCheckContexts: [String!] + + """ + The list of required status checks + """ + requiredStatusChecks: [RequiredStatusCheckInput!] + + """ + Are approving reviews required to update matching branches. + """ + requiresApprovingReviews: Boolean + + """ + Are reviews from code owners required to update matching branches. + """ + requiresCodeOwnerReviews: Boolean + + """ + Are commits required to be signed. + """ + requiresCommitSignatures: Boolean + + """ + Are conversations required to be resolved before merging. + """ + requiresConversationResolution: Boolean + + """ + Are successful deployments required before merging. + """ + requiresDeployments: Boolean + + """ + Are merge commits prohibited from being pushed to this branch. + """ + requiresLinearHistory: Boolean + + """ + Are status checks required to update matching branches. + """ + requiresStatusChecks: Boolean + + """ + Are branches required to be up to date before merging. + """ + requiresStrictStatusChecks: Boolean + + """ + Is pushing to matching branches restricted. + """ + restrictsPushes: Boolean + + """ + Is dismissal of pull request reviews restricted. + """ + restrictsReviewDismissals: Boolean + + """ + A list of User, Team, or App IDs allowed to dismiss reviews on pull requests targeting matching branches. + """ + reviewDismissalActorIds: [ID!] +} + +""" +Autogenerated return type of CreateBranchProtectionRule +""" +type CreateBranchProtectionRulePayload { + """ + The newly created BranchProtectionRule. + """ + branchProtectionRule: BranchProtectionRule + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of CreateCheckRun +""" +input CreateCheckRunInput { + """ + Possible further actions the integrator can perform, which a user may trigger. + """ + actions: [CheckRunAction!] + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The time that the check run finished. + """ + completedAt: DateTime + + """ + The final conclusion of the check. + """ + conclusion: CheckConclusionState + + """ + The URL of the integrator's site that has the full details of the check. + """ + detailsUrl: URI + + """ + A reference for the run on the integrator's system. + """ + externalId: String + + """ + The SHA of the head commit. + """ + headSha: GitObjectID! + + """ + The name of the check. + """ + name: String! + + """ + Descriptive details about the run. + """ + output: CheckRunOutput + + """ + The node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + The time that the check run began. + """ + startedAt: DateTime + + """ + The current status. + """ + status: RequestableCheckStatusState +} + +""" +Autogenerated return type of CreateCheckRun +""" +type CreateCheckRunPayload { + """ + The newly created check run. + """ + checkRun: CheckRun + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of CreateCheckSuite +""" +input CreateCheckSuiteInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The SHA of the head commit. + """ + headSha: GitObjectID! + + """ + The Node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of CreateCheckSuite +""" +type CreateCheckSuitePayload { + """ + The newly created check suite. + """ + checkSuite: CheckSuite + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of CreateCommitOnBranch +""" +input CreateCommitOnBranchInput { + """ + The Ref to be updated. Must be a branch. + """ + branch: CommittableBranch! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The git commit oid expected at the head of the branch prior to the commit + """ + expectedHeadOid: GitObjectID! + + """ + A description of changes to files in this commit. + """ + fileChanges: FileChanges + + """ + The commit message the be included with the commit. + """ + message: CommitMessage! +} + +""" +Autogenerated return type of CreateCommitOnBranch +""" +type CreateCommitOnBranchPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new commit. + """ + commit: Commit + + """ + The ref which has been updated to point to the new commit. + """ + ref: Ref +} + +""" +Autogenerated input type of CreateDeployment +""" +input CreateDeploymentInput @preview(toggledBy: "flash-preview") { + """ + Attempt to automatically merge the default branch into the requested ref, defaults to true. + """ + autoMerge: Boolean = true + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Short description of the deployment. + """ + description: String = "" + + """ + Name for the target deployment environment. + """ + environment: String = "production" + + """ + JSON payload with extra information about the deployment. + """ + payload: String = "{}" + + """ + The node ID of the ref to be deployed. + """ + refId: ID! @possibleTypes(concreteTypes: ["Ref"]) + + """ + The node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + The status contexts to verify against commit status checks. To bypass required + contexts, pass an empty array. Defaults to all unique contexts. + """ + requiredContexts: [String!] + + """ + Specifies a task to execute. + """ + task: String = "deploy" +} + +""" +Autogenerated return type of CreateDeployment +""" +type CreateDeploymentPayload @preview(toggledBy: "flash-preview") { + """ + True if the default branch has been auto-merged into the deployment ref. + """ + autoMerged: Boolean + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new deployment. + """ + deployment: Deployment +} + +""" +Autogenerated input type of CreateDeploymentStatus +""" +input CreateDeploymentStatusInput @preview(toggledBy: "flash-preview") { + """ + Adds a new inactive status to all non-transient, non-production environment + deployments with the same repository and environment name as the created + status's deployment. + """ + autoInactive: Boolean = true + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The node ID of the deployment. + """ + deploymentId: ID! @possibleTypes(concreteTypes: ["Deployment"]) + + """ + A short description of the status. Maximum length of 140 characters. + """ + description: String = "" + + """ + If provided, updates the environment of the deploy. Otherwise, does not modify the environment. + """ + environment: String + + """ + Sets the URL for accessing your environment. + """ + environmentUrl: String = "" + + """ + The log URL to associate with this status. This URL should contain + output to keep the user updated while the task is running or serve as + historical information for what happened in the deployment. + """ + logUrl: String = "" + + """ + The state of the deployment. + """ + state: DeploymentStatusState! +} + +""" +Autogenerated return type of CreateDeploymentStatus +""" +type CreateDeploymentStatusPayload @preview(toggledBy: "flash-preview") { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new deployment status. + """ + deploymentStatus: DeploymentStatus +} + +""" +Autogenerated input type of CreateDiscussion +""" +input CreateDiscussionInput { + """ + The body of the discussion. + """ + body: String! + + """ + The id of the discussion category to associate with this discussion. + """ + categoryId: ID! @possibleTypes(concreteTypes: ["DiscussionCategory"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the repository on which to create the discussion. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + The title of the discussion. + """ + title: String! +} + +""" +Autogenerated return type of CreateDiscussion +""" +type CreateDiscussionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The discussion that was just created. + """ + discussion: Discussion +} + +""" +Autogenerated input type of CreateEnterpriseOrganization +""" +input CreateEnterpriseOrganizationInput { + """ + The logins for the administrators of the new organization. + """ + adminLogins: [String!]! + + """ + The email used for sending billing receipts. + """ + billingEmail: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise owning the new organization. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The login of the new organization. + """ + login: String! + + """ + The profile name of the new organization. + """ + profileName: String! +} + +""" +Autogenerated return type of CreateEnterpriseOrganization +""" +type CreateEnterpriseOrganizationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The enterprise that owns the created organization. + """ + enterprise: Enterprise + + """ + The organization that was created. + """ + organization: Organization +} + +""" +Autogenerated input type of CreateEnvironment +""" +input CreateEnvironmentInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The name of the environment. + """ + name: String! + + """ + The node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of CreateEnvironment +""" +type CreateEnvironmentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new or existing environment. + """ + environment: Environment +} + +""" +Autogenerated input type of CreateIpAllowListEntry +""" +input CreateIpAllowListEntryInput { + """ + An IP address or range of addresses in CIDR notation. + """ + allowListValue: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Whether the IP allow list entry is active when an IP allow list is enabled. + """ + isActive: Boolean! + + """ + An optional name for the IP allow list entry. + """ + name: String + + """ + The ID of the owner for which to create the new IP allow list entry. + """ + ownerId: ID! @possibleTypes(concreteTypes: ["App", "Enterprise", "Organization"], abstractType: "IpAllowListOwner") +} + +""" +Autogenerated return type of CreateIpAllowListEntry +""" +type CreateIpAllowListEntryPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The IP allow list entry that was created. + """ + ipAllowListEntry: IpAllowListEntry +} + +""" +Autogenerated input type of CreateIssue +""" +input CreateIssueInput { + """ + The Node ID for the user assignee for this issue. + """ + assigneeIds: [ID!] @possibleTypes(concreteTypes: ["User"]) + + """ + The body for the issue description. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The name of an issue template in the repository, assigns labels and assignees from the template to the issue + """ + issueTemplate: String + + """ + An array of Node IDs of labels for this issue. + """ + labelIds: [ID!] @possibleTypes(concreteTypes: ["Label"]) + + """ + The Node ID of the milestone for this issue. + """ + milestoneId: ID @possibleTypes(concreteTypes: ["Milestone"]) + + """ + An array of Node IDs for projects associated with this issue. + """ + projectIds: [ID!] @possibleTypes(concreteTypes: ["Project"]) + + """ + The Node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + The title for the issue. + """ + title: String! +} + +""" +Autogenerated return type of CreateIssue +""" +type CreateIssuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new issue. + """ + issue: Issue +} + +""" +Autogenerated input type of CreateLabel +""" +input CreateLabelInput @preview(toggledBy: "bane-preview") { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A 6 character hex code, without the leading #, identifying the color of the label. + """ + color: String! + + """ + A brief description of the label, such as its purpose. + """ + description: String + + """ + The name of the label. + """ + name: String! + + """ + The Node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of CreateLabel +""" +type CreateLabelPayload @preview(toggledBy: "bane-preview") { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new label. + """ + label: Label +} + +""" +Autogenerated input type of CreateLinkedBranch +""" +input CreateLinkedBranchInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the issue to link to. + """ + issueId: ID! @possibleTypes(concreteTypes: ["Issue"]) + + """ + The name of the new branch. Defaults to issue number and title. + """ + name: String + + """ + The commit SHA to base the new branch on. + """ + oid: GitObjectID! + + """ + ID of the repository to create the branch in. Defaults to the issue repository. + """ + repositoryId: ID @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of CreateLinkedBranch +""" +type CreateLinkedBranchPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new branch issue reference. + """ + linkedBranch: LinkedBranch +} + +""" +Autogenerated input type of CreateMigrationSource +""" +input CreateMigrationSourceInput { + """ + The migration source access token. + """ + accessToken: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The GitHub personal access token of the user importing to the target repository. + """ + githubPat: String + + """ + The migration source name. + """ + name: String! + + """ + The ID of the organization that will own the migration source. + """ + ownerId: ID! @possibleTypes(concreteTypes: ["Organization"]) + + """ + The migration source type. + """ + type: MigrationSourceType! + + """ + The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`. + """ + url: String +} + +""" +Autogenerated return type of CreateMigrationSource +""" +type CreateMigrationSourcePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The created migration source. + """ + migrationSource: MigrationSource +} + +""" +Autogenerated input type of CreateProject +""" +input CreateProjectInput { + """ + The description of project. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The name of project. + """ + name: String! + + """ + The owner ID to create the project under. + """ + ownerId: ID! @possibleTypes(concreteTypes: ["Organization", "Repository", "User"], abstractType: "ProjectOwner") + + """ + A list of repository IDs to create as linked repositories for the project + """ + repositoryIds: [ID!] @possibleTypes(concreteTypes: ["Repository"]) + + """ + The name of the GitHub-provided template. + """ + template: ProjectTemplate +} + +""" +Autogenerated return type of CreateProject +""" +type CreateProjectPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new project. + """ + project: Project +} + +""" +Autogenerated input type of CreateProjectV2Field +""" +input CreateProjectV2FieldInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The data type of the field. + """ + dataType: ProjectV2CustomFieldType! + + """ + The name of the field. + """ + name: String! + + """ + The ID of the Project to create the field in. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + Options for a single select field. At least one value is required if data_type is SINGLE_SELECT + """ + singleSelectOptions: [ProjectV2SingleSelectFieldOptionInput!] +} + +""" +Autogenerated return type of CreateProjectV2Field +""" +type CreateProjectV2FieldPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new field. + """ + projectV2Field: ProjectV2FieldConfiguration +} + +""" +Autogenerated input type of CreateProjectV2 +""" +input CreateProjectV2Input { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The owner ID to create the project under. + """ + ownerId: ID! @possibleTypes(concreteTypes: ["Organization", "User"], abstractType: "OrganizationOrUser") + + """ + The repository to link the project to. + """ + repositoryId: ID @possibleTypes(concreteTypes: ["Repository"]) + + """ + The team to link the project to. The team will be granted read permissions. + """ + teamId: ID @possibleTypes(concreteTypes: ["Team"]) + + """ + The title of the project. + """ + title: String! +} + +""" +Autogenerated return type of CreateProjectV2 +""" +type CreateProjectV2Payload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new project. + """ + projectV2: ProjectV2 +} + +""" +Autogenerated input type of CreatePullRequest +""" +input CreatePullRequestInput { + """ + The name of the branch you want your changes pulled into. This should be an existing branch + on the current repository. You cannot update the base branch on a pull request to point + to another repository. + """ + baseRefName: String! + + """ + The contents of the pull request. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Indicates whether this pull request should be a draft. + """ + draft: Boolean = false + + """ + The name of the branch where your changes are implemented. For cross-repository pull requests + in the same network, namespace `head_ref_name` with a user like this: `username:branch`. + """ + headRefName: String! + + """ + The Node ID of the head repository. + """ + headRepositoryId: ID @possibleTypes(concreteTypes: ["Repository"]) + + """ + Indicates whether maintainers can modify the pull request. + """ + maintainerCanModify: Boolean = true + + """ + The Node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + The title of the pull request. + """ + title: String! +} + +""" +Autogenerated return type of CreatePullRequest +""" +type CreatePullRequestPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new pull request. + """ + pullRequest: PullRequest +} + +""" +Autogenerated input type of CreateRef +""" +input CreateRefInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The fully qualified name of the new Ref (ie: `refs/heads/my_new_branch`). + """ + name: String! + + """ + The GitObjectID that the new Ref shall target. Must point to a commit. + """ + oid: GitObjectID! + + """ + The Node ID of the Repository to create the Ref in. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of CreateRef +""" +type CreateRefPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The newly created ref. + """ + ref: Ref +} + +""" +Autogenerated input type of CreateRepository +""" +input CreateRepositoryInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A short description of the new repository. + """ + description: String + + """ + Indicates if the repository should have the issues feature enabled. + """ + hasIssuesEnabled: Boolean = true + + """ + Indicates if the repository should have the wiki feature enabled. + """ + hasWikiEnabled: Boolean = false + + """ + The URL for a web page about this repository. + """ + homepageUrl: URI + + """ + The name of the new repository. + """ + name: String! + + """ + The ID of the owner for the new repository. + """ + ownerId: ID @possibleTypes(concreteTypes: ["Organization", "User"], abstractType: "RepositoryOwner") + + """ + When an organization is specified as the owner, this ID identifies the team + that should be granted access to the new repository. + """ + teamId: ID @possibleTypes(concreteTypes: ["Team"]) + + """ + Whether this repository should be marked as a template such that anyone who + can access it can create new repositories with the same files and directory structure. + """ + template: Boolean = false + + """ + Indicates the repository's visibility level. + """ + visibility: RepositoryVisibility! +} + +""" +Autogenerated return type of CreateRepository +""" +type CreateRepositoryPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new repository. + """ + repository: Repository +} + +""" +Autogenerated input type of CreateRepositoryRuleset +""" +input CreateRepositoryRulesetInput { + """ + A list of actors that are allowed to bypass rules in this ruleset. + """ + bypassActors: [RepositoryRulesetBypassActorInput!] + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The set of conditions for this ruleset + """ + conditions: RepositoryRuleConditionsInput! + + """ + The enforcement level for this ruleset + """ + enforcement: RuleEnforcement! + + """ + The name of the ruleset. + """ + name: String! + + """ + The list of rules for this ruleset + """ + rules: [RepositoryRuleInput!] + + """ + The global relay id of the source in which a new ruleset should be created in. + """ + sourceId: ID! @possibleTypes(concreteTypes: ["Organization", "Repository"], abstractType: "RuleSource") + + """ + The target of the ruleset. + """ + target: RepositoryRulesetTarget +} + +""" +Autogenerated return type of CreateRepositoryRuleset +""" +type CreateRepositoryRulesetPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The newly created Ruleset. + """ + ruleset: RepositoryRuleset +} + +""" +Autogenerated input type of CreateSponsorsListing +""" +input CreateSponsorsListingInput { + """ + The country or region where the sponsorable's bank account is located. + Required if fiscalHostLogin is not specified, ignored when fiscalHostLogin is specified. + """ + billingCountryOrRegionCode: SponsorsCountryOrRegionCode + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The email address we should use to contact you about the GitHub Sponsors + profile being created. This will not be shared publicly. Must be a verified + email address already on your GitHub account. Only relevant when the + sponsorable is yourself. Defaults to your primary email address on file if omitted. + """ + contactEmail: String + + """ + The username of the supported fiscal host's GitHub organization, if you want + to receive sponsorship payouts through a fiscal host rather than directly to a + bank account. For example, 'Open-Source-Collective' for Open Source Collective + or 'numfocus' for numFOCUS. Case insensitive. See https://docs.github.com/sponsors/receiving-sponsorships-through-github-sponsors/using-a-fiscal-host-to-receive-github-sponsors-payouts + for more information. + """ + fiscalHostLogin: String + + """ + The URL for your profile page on the fiscal host's website, e.g., + https://opencollective.com/babel or https://numfocus.org/project/bokeh. + Required if fiscalHostLogin is specified. + """ + fiscallyHostedProjectProfileUrl: String + + """ + Provide an introduction to serve as the main focus that appears on your GitHub + Sponsors profile. It's a great opportunity to help potential sponsors learn + more about you, your work, and why their sponsorship is important to you. + GitHub-flavored Markdown is supported. + """ + fullDescription: String + + """ + The country or region where the sponsorable resides. This is for tax purposes. + Required if the sponsorable is yourself, ignored when sponsorableLogin + specifies an organization. + """ + residenceCountryOrRegionCode: SponsorsCountryOrRegionCode + + """ + The username of the organization to create a GitHub Sponsors profile for, if + desired. Defaults to creating a GitHub Sponsors profile for the authenticated + user if omitted. + """ + sponsorableLogin: String +} + +""" +Autogenerated return type of CreateSponsorsListing +""" +type CreateSponsorsListingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new GitHub Sponsors profile. + """ + sponsorsListing: SponsorsListing +} + +""" +Autogenerated input type of CreateSponsorsTier +""" +input CreateSponsorsTierInput { + """ + The value of the new tier in US dollars. Valid values: 1-12000. + """ + amount: Int! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A description of what this tier is, what perks sponsors might receive, what a sponsorship at this tier means for you, etc. + """ + description: String! + + """ + Whether sponsorships using this tier should happen monthly/yearly or just once. + """ + isRecurring: Boolean = true + + """ + Whether to make the tier available immediately for sponsors to choose. + Defaults to creating a draft tier that will not be publicly visible. + """ + publish: Boolean = false + + """ + Optional ID of the private repository that sponsors at this tier should gain + read-only access to. Must be owned by an organization. + """ + repositoryId: ID @possibleTypes(concreteTypes: ["Repository"]) + + """ + Optional name of the private repository that sponsors at this tier should gain + read-only access to. Must be owned by an organization. Necessary if + repositoryOwnerLogin is given. Will be ignored if repositoryId is given. + """ + repositoryName: String + + """ + Optional login of the organization owner of the private repository that + sponsors at this tier should gain read-only access to. Necessary if + repositoryName is given. Will be ignored if repositoryId is given. + """ + repositoryOwnerLogin: String + + """ + The ID of the user or organization who owns the GitHub Sponsors profile. + Defaults to the current user if omitted and sponsorableLogin is not given. + """ + sponsorableId: ID @possibleTypes(concreteTypes: ["Organization", "User"], abstractType: "Sponsorable") + + """ + The username of the user or organization who owns the GitHub Sponsors profile. + Defaults to the current user if omitted and sponsorableId is not given. + """ + sponsorableLogin: String + + """ + Optional message new sponsors at this tier will receive. + """ + welcomeMessage: String +} + +""" +Autogenerated return type of CreateSponsorsTier +""" +type CreateSponsorsTierPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new tier. + """ + sponsorsTier: SponsorsTier +} + +""" +Autogenerated input type of CreateSponsorship +""" +input CreateSponsorshipInput { + """ + The amount to pay to the sponsorable in US dollars. Required if a tierId is not specified. Valid values: 1-12000. + """ + amount: Int + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Whether the sponsorship should happen monthly/yearly or just this one time. Required if a tierId is not specified. + """ + isRecurring: Boolean + + """ + Specify whether others should be able to see that the sponsor is sponsoring + the sponsorable. Public visibility still does not reveal which tier is used. + """ + privacyLevel: SponsorshipPrivacy = PUBLIC + + """ + Whether the sponsor should receive email updates from the sponsorable. + """ + receiveEmails: Boolean = true + + """ + The ID of the user or organization who is acting as the sponsor, paying for + the sponsorship. Required if sponsorLogin is not given. + """ + sponsorId: ID @possibleTypes(concreteTypes: ["Organization", "User"], abstractType: "Sponsor") + + """ + The username of the user or organization who is acting as the sponsor, paying + for the sponsorship. Required if sponsorId is not given. + """ + sponsorLogin: String + + """ + The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given. + """ + sponsorableId: ID @possibleTypes(concreteTypes: ["Organization", "User"], abstractType: "Sponsorable") + + """ + The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given. + """ + sponsorableLogin: String + + """ + The ID of one of sponsorable's existing tiers to sponsor at. Required if amount is not specified. + """ + tierId: ID @possibleTypes(concreteTypes: ["SponsorsTier"]) +} + +""" +Autogenerated return type of CreateSponsorship +""" +type CreateSponsorshipPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The sponsorship that was started. + """ + sponsorship: Sponsorship +} + +""" +Autogenerated input type of CreateSponsorships +""" +input CreateSponsorshipsInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Specify whether others should be able to see that the sponsor is sponsoring + the sponsorables. Public visibility still does not reveal the dollar value of + the sponsorship. + """ + privacyLevel: SponsorshipPrivacy = PUBLIC + + """ + Whether the sponsor should receive email updates from the sponsorables. + """ + receiveEmails: Boolean = false + + """ + The username of the user or organization who is acting as the sponsor, paying for the sponsorships. + """ + sponsorLogin: String! + + """ + The list of maintainers to sponsor and for how much apiece. + """ + sponsorships: [BulkSponsorship!]! +} + +""" +Autogenerated return type of CreateSponsorships +""" +type CreateSponsorshipsPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The users and organizations who received a sponsorship. + """ + sponsorables: [Sponsorable!] +} + +""" +Autogenerated input type of CreateTeamDiscussionComment +""" +input CreateTeamDiscussionCommentInput { + """ + The content of the comment. This field is required. + + **Upcoming Change on 2024-07-01 UTC** + **Description:** `body` will be removed. Follow the guide at + https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to + find a suitable replacement. + **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the discussion to which the comment belongs. This field is required. + + **Upcoming Change on 2024-07-01 UTC** + **Description:** `discussionId` will be removed. Follow the guide at + https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to + find a suitable replacement. + **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. + """ + discussionId: ID @possibleTypes(concreteTypes: ["TeamDiscussion"]) +} + +""" +Autogenerated return type of CreateTeamDiscussionComment +""" +type CreateTeamDiscussionCommentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new comment. + """ + teamDiscussionComment: TeamDiscussionComment + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) +} + +""" +Autogenerated input type of CreateTeamDiscussion +""" +input CreateTeamDiscussionInput { + """ + The content of the discussion. This field is required. + + **Upcoming Change on 2024-07-01 UTC** + **Description:** `body` will be removed. Follow the guide at + https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to + find a suitable replacement. + **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + If true, restricts the visibility of this discussion to team members and + organization admins. If false or not specified, allows any organization member + to view this discussion. + + **Upcoming Change on 2024-07-01 UTC** + **Description:** `private` will be removed. Follow the guide at + https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to + find a suitable replacement. + **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. + """ + private: Boolean + + """ + The ID of the team to which the discussion belongs. This field is required. + + **Upcoming Change on 2024-07-01 UTC** + **Description:** `teamId` will be removed. Follow the guide at + https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to + find a suitable replacement. + **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. + """ + teamId: ID @possibleTypes(concreteTypes: ["Team"]) + + """ + The title of the discussion. This field is required. + + **Upcoming Change on 2024-07-01 UTC** + **Description:** `title` will be removed. Follow the guide at + https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to + find a suitable replacement. + **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. + """ + title: String +} + +""" +Autogenerated return type of CreateTeamDiscussion +""" +type CreateTeamDiscussionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new discussion. + """ + teamDiscussion: TeamDiscussion + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) +} + +""" +Represents the contribution a user made by committing to a repository. +""" +type CreatedCommitContribution implements Contribution { + """ + How many commits were made on this day to this repository by the user. + """ + commitCount: Int! + + """ + Whether this contribution is associated with a record you do not have access to. For + example, your own 'first issue' contribution may have been made on a repository you can no + longer access. + """ + isRestricted: Boolean! + + """ + When this contribution was made. + """ + occurredAt: DateTime! + + """ + The repository the user made a commit in. + """ + repository: Repository! + + """ + The HTTP path for this contribution. + """ + resourcePath: URI! + + """ + The HTTP URL for this contribution. + """ + url: URI! + + """ + The user who made this contribution. + """ + user: User! +} + +""" +The connection type for CreatedCommitContribution. +""" +type CreatedCommitContributionConnection { + """ + A list of edges. + """ + edges: [CreatedCommitContributionEdge] + + """ + A list of nodes. + """ + nodes: [CreatedCommitContribution] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of commits across days and repositories in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type CreatedCommitContributionEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: CreatedCommitContribution +} + +""" +Represents the contribution a user made on GitHub by opening an issue. +""" +type CreatedIssueContribution implements Contribution { + """ + Whether this contribution is associated with a record you do not have access to. For + example, your own 'first issue' contribution may have been made on a repository you can no + longer access. + """ + isRestricted: Boolean! + + """ + The issue that was opened. + """ + issue: Issue! + + """ + When this contribution was made. + """ + occurredAt: DateTime! + + """ + The HTTP path for this contribution. + """ + resourcePath: URI! + + """ + The HTTP URL for this contribution. + """ + url: URI! + + """ + The user who made this contribution. + """ + user: User! +} + +""" +The connection type for CreatedIssueContribution. +""" +type CreatedIssueContributionConnection { + """ + A list of edges. + """ + edges: [CreatedIssueContributionEdge] + + """ + A list of nodes. + """ + nodes: [CreatedIssueContribution] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type CreatedIssueContributionEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: CreatedIssueContribution +} + +""" +Represents either a issue the viewer can access or a restricted contribution. +""" +union CreatedIssueOrRestrictedContribution = CreatedIssueContribution | RestrictedContribution + +""" +Represents the contribution a user made on GitHub by opening a pull request. +""" +type CreatedPullRequestContribution implements Contribution { + """ + Whether this contribution is associated with a record you do not have access to. For + example, your own 'first issue' contribution may have been made on a repository you can no + longer access. + """ + isRestricted: Boolean! + + """ + When this contribution was made. + """ + occurredAt: DateTime! + + """ + The pull request that was opened. + """ + pullRequest: PullRequest! + + """ + The HTTP path for this contribution. + """ + resourcePath: URI! + + """ + The HTTP URL for this contribution. + """ + url: URI! + + """ + The user who made this contribution. + """ + user: User! +} + +""" +The connection type for CreatedPullRequestContribution. +""" +type CreatedPullRequestContributionConnection { + """ + A list of edges. + """ + edges: [CreatedPullRequestContributionEdge] + + """ + A list of nodes. + """ + nodes: [CreatedPullRequestContribution] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type CreatedPullRequestContributionEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: CreatedPullRequestContribution +} + +""" +Represents either a pull request the viewer can access or a restricted contribution. +""" +union CreatedPullRequestOrRestrictedContribution = CreatedPullRequestContribution | RestrictedContribution + +""" +Represents the contribution a user made by leaving a review on a pull request. +""" +type CreatedPullRequestReviewContribution implements Contribution { + """ + Whether this contribution is associated with a record you do not have access to. For + example, your own 'first issue' contribution may have been made on a repository you can no + longer access. + """ + isRestricted: Boolean! + + """ + When this contribution was made. + """ + occurredAt: DateTime! + + """ + The pull request the user reviewed. + """ + pullRequest: PullRequest! + + """ + The review the user left on the pull request. + """ + pullRequestReview: PullRequestReview! + + """ + The repository containing the pull request that the user reviewed. + """ + repository: Repository! + + """ + The HTTP path for this contribution. + """ + resourcePath: URI! + + """ + The HTTP URL for this contribution. + """ + url: URI! + + """ + The user who made this contribution. + """ + user: User! +} + +""" +The connection type for CreatedPullRequestReviewContribution. +""" +type CreatedPullRequestReviewContributionConnection { + """ + A list of edges. + """ + edges: [CreatedPullRequestReviewContributionEdge] + + """ + A list of nodes. + """ + nodes: [CreatedPullRequestReviewContribution] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type CreatedPullRequestReviewContributionEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: CreatedPullRequestReviewContribution +} + +""" +Represents the contribution a user made on GitHub by creating a repository. +""" +type CreatedRepositoryContribution implements Contribution { + """ + Whether this contribution is associated with a record you do not have access to. For + example, your own 'first issue' contribution may have been made on a repository you can no + longer access. + """ + isRestricted: Boolean! + + """ + When this contribution was made. + """ + occurredAt: DateTime! + + """ + The repository that was created. + """ + repository: Repository! + + """ + The HTTP path for this contribution. + """ + resourcePath: URI! + + """ + The HTTP URL for this contribution. + """ + url: URI! + + """ + The user who made this contribution. + """ + user: User! +} + +""" +The connection type for CreatedRepositoryContribution. +""" +type CreatedRepositoryContributionConnection { + """ + A list of edges. + """ + edges: [CreatedRepositoryContributionEdge] + + """ + A list of nodes. + """ + nodes: [CreatedRepositoryContribution] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type CreatedRepositoryContributionEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: CreatedRepositoryContribution +} + +""" +Represents either a repository the viewer can access or a restricted contribution. +""" +union CreatedRepositoryOrRestrictedContribution = CreatedRepositoryContribution | RestrictedContribution + +""" +Represents a mention made by one issue or pull request to another. +""" +type CrossReferencedEvent implements Node & UniformResourceLocatable { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Reference originated in a different repository. + """ + isCrossRepository: Boolean! + + """ + Identifies when the reference was made. + """ + referencedAt: DateTime! + + """ + The HTTP path for this pull request. + """ + resourcePath: URI! + + """ + Issue or pull request that made the reference. + """ + source: ReferencedSubject! + + """ + Issue or pull request to which the reference was made. + """ + target: ReferencedSubject! + + """ + The HTTP URL for this pull request. + """ + url: URI! + + """ + Checks if the target will be closed when the source is merged. + """ + willCloseTarget: Boolean! +} + +""" +An ISO-8601 encoded date string. +""" +scalar Date + +""" +An ISO-8601 encoded UTC date string. +""" +scalar DateTime + +""" +Autogenerated input type of DeclineTopicSuggestion +""" +input DeclineTopicSuggestionInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The name of the suggested topic. + """ + name: String! + + """ + The reason why the suggested topic is declined. + """ + reason: TopicSuggestionDeclineReason! + + """ + The Node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of DeclineTopicSuggestion +""" +type DeclineTopicSuggestionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The declined topic. + """ + topic: Topic +} + +""" +The possible base permissions for repositories. +""" +enum DefaultRepositoryPermissionField { + """ + Can read, write, and administrate repos by default + """ + ADMIN + + """ + No access + """ + NONE + + """ + Can read repos by default + """ + READ + + """ + Can read and write repos by default + """ + WRITE +} + +""" +Entities that can be deleted. +""" +interface Deletable { + """ + Check if the current viewer can delete this object. + """ + viewerCanDelete: Boolean! +} + +""" +Autogenerated input type of DeleteBranchProtectionRule +""" +input DeleteBranchProtectionRuleInput { + """ + The global relay id of the branch protection rule to be deleted. + """ + branchProtectionRuleId: ID! @possibleTypes(concreteTypes: ["BranchProtectionRule"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated return type of DeleteBranchProtectionRule +""" +type DeleteBranchProtectionRulePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of DeleteDeployment +""" +input DeleteDeploymentInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the deployment to be deleted. + """ + id: ID! @possibleTypes(concreteTypes: ["Deployment"]) +} + +""" +Autogenerated return type of DeleteDeployment +""" +type DeleteDeploymentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of DeleteDiscussionComment +""" +input DeleteDiscussionCommentInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node id of the discussion comment to delete. + """ + id: ID! @possibleTypes(concreteTypes: ["DiscussionComment"]) +} + +""" +Autogenerated return type of DeleteDiscussionComment +""" +type DeleteDiscussionCommentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The discussion comment that was just deleted. + """ + comment: DiscussionComment +} + +""" +Autogenerated input type of DeleteDiscussion +""" +input DeleteDiscussionInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the discussion to delete. + """ + id: ID! @possibleTypes(concreteTypes: ["Discussion"]) +} + +""" +Autogenerated return type of DeleteDiscussion +""" +type DeleteDiscussionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The discussion that was just deleted. + """ + discussion: Discussion +} + +""" +Autogenerated input type of DeleteEnvironment +""" +input DeleteEnvironmentInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the environment to be deleted. + """ + id: ID! @possibleTypes(concreteTypes: ["Environment"]) +} + +""" +Autogenerated return type of DeleteEnvironment +""" +type DeleteEnvironmentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of DeleteIpAllowListEntry +""" +input DeleteIpAllowListEntryInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the IP allow list entry to delete. + """ + ipAllowListEntryId: ID! @possibleTypes(concreteTypes: ["IpAllowListEntry"]) +} + +""" +Autogenerated return type of DeleteIpAllowListEntry +""" +type DeleteIpAllowListEntryPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The IP allow list entry that was deleted. + """ + ipAllowListEntry: IpAllowListEntry +} + +""" +Autogenerated input type of DeleteIssueComment +""" +input DeleteIssueCommentInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the comment to delete. + """ + id: ID! @possibleTypes(concreteTypes: ["IssueComment"]) +} + +""" +Autogenerated return type of DeleteIssueComment +""" +type DeleteIssueCommentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of DeleteIssue +""" +input DeleteIssueInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the issue to delete. + """ + issueId: ID! @possibleTypes(concreteTypes: ["Issue"]) +} + +""" +Autogenerated return type of DeleteIssue +""" +type DeleteIssuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The repository the issue belonged to + """ + repository: Repository +} + +""" +Autogenerated input type of DeleteLabel +""" +input DeleteLabelInput @preview(toggledBy: "bane-preview") { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the label to be deleted. + """ + id: ID! @possibleTypes(concreteTypes: ["Label"]) +} + +""" +Autogenerated return type of DeleteLabel +""" +type DeleteLabelPayload @preview(toggledBy: "bane-preview") { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of DeleteLinkedBranch +""" +input DeleteLinkedBranchInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the linked branch + """ + linkedBranchId: ID! @possibleTypes(concreteTypes: ["LinkedBranch"]) +} + +""" +Autogenerated return type of DeleteLinkedBranch +""" +type DeleteLinkedBranchPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The issue the linked branch was unlinked from. + """ + issue: Issue +} + +""" +Autogenerated input type of DeletePackageVersion +""" +input DeletePackageVersionInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the package version to be deleted. + """ + packageVersionId: ID! @possibleTypes(concreteTypes: ["PackageVersion"]) +} + +""" +Autogenerated return type of DeletePackageVersion +""" +type DeletePackageVersionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Whether or not the operation succeeded. + """ + success: Boolean +} + +""" +Autogenerated input type of DeleteProjectCard +""" +input DeleteProjectCardInput { + """ + The id of the card to delete. + """ + cardId: ID! @possibleTypes(concreteTypes: ["ProjectCard"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated return type of DeleteProjectCard +""" +type DeleteProjectCardPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The column the deleted card was in. + """ + column: ProjectColumn + + """ + The deleted card ID. + """ + deletedCardId: ID +} + +""" +Autogenerated input type of DeleteProjectColumn +""" +input DeleteProjectColumnInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the column to delete. + """ + columnId: ID! @possibleTypes(concreteTypes: ["ProjectColumn"]) +} + +""" +Autogenerated return type of DeleteProjectColumn +""" +type DeleteProjectColumnPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The deleted column ID. + """ + deletedColumnId: ID + + """ + The project the deleted column was in. + """ + project: Project +} + +""" +Autogenerated input type of DeleteProject +""" +input DeleteProjectInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Project ID to update. + """ + projectId: ID! @possibleTypes(concreteTypes: ["Project"]) +} + +""" +Autogenerated return type of DeleteProject +""" +type DeleteProjectPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The repository or organization the project was removed from. + """ + owner: ProjectOwner +} + +""" +Autogenerated input type of DeleteProjectV2Field +""" +input DeleteProjectV2FieldInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the field to delete. + """ + fieldId: ID! + @possibleTypes( + concreteTypes: ["ProjectV2Field", "ProjectV2IterationField", "ProjectV2SingleSelectField"] + abstractType: "ProjectV2FieldConfiguration" + ) +} + +""" +Autogenerated return type of DeleteProjectV2Field +""" +type DeleteProjectV2FieldPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The deleted field. + """ + projectV2Field: ProjectV2FieldConfiguration +} + +""" +Autogenerated input type of DeleteProjectV2 +""" +input DeleteProjectV2Input { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the Project to delete. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated input type of DeleteProjectV2Item +""" +input DeleteProjectV2ItemInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the item to be removed. + """ + itemId: ID! @possibleTypes(concreteTypes: ["ProjectV2Item"]) + + """ + The ID of the Project from which the item should be removed. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated return type of DeleteProjectV2Item +""" +type DeleteProjectV2ItemPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the deleted item. + """ + deletedItemId: ID +} + +""" +Autogenerated return type of DeleteProjectV2 +""" +type DeleteProjectV2Payload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The deleted Project. + """ + projectV2: ProjectV2 +} + +""" +Autogenerated input type of DeleteProjectV2Workflow +""" +input DeleteProjectV2WorkflowInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the workflow to be removed. + """ + workflowId: ID! @possibleTypes(concreteTypes: ["ProjectV2Workflow"]) +} + +""" +Autogenerated return type of DeleteProjectV2Workflow +""" +type DeleteProjectV2WorkflowPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the deleted workflow. + """ + deletedWorkflowId: ID + + """ + The project the deleted workflow was in. + """ + projectV2: ProjectV2 +} + +""" +Autogenerated input type of DeletePullRequestReviewComment +""" +input DeletePullRequestReviewCommentInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the comment to delete. + """ + id: ID! @possibleTypes(concreteTypes: ["PullRequestReviewComment"]) +} + +""" +Autogenerated return type of DeletePullRequestReviewComment +""" +type DeletePullRequestReviewCommentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The pull request review the deleted comment belonged to. + """ + pullRequestReview: PullRequestReview + + """ + The deleted pull request review comment. + """ + pullRequestReviewComment: PullRequestReviewComment +} + +""" +Autogenerated input type of DeletePullRequestReview +""" +input DeletePullRequestReviewInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the pull request review to delete. + """ + pullRequestReviewId: ID! @possibleTypes(concreteTypes: ["PullRequestReview"]) +} + +""" +Autogenerated return type of DeletePullRequestReview +""" +type DeletePullRequestReviewPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The deleted pull request review. + """ + pullRequestReview: PullRequestReview +} + +""" +Autogenerated input type of DeleteRef +""" +input DeleteRefInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the Ref to be deleted. + """ + refId: ID! @possibleTypes(concreteTypes: ["Ref"]) +} + +""" +Autogenerated return type of DeleteRef +""" +type DeleteRefPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of DeleteRepositoryRuleset +""" +input DeleteRepositoryRulesetInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The global relay id of the repository ruleset to be deleted. + """ + repositoryRulesetId: ID! @possibleTypes(concreteTypes: ["RepositoryRuleset"]) +} + +""" +Autogenerated return type of DeleteRepositoryRuleset +""" +type DeleteRepositoryRulesetPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of DeleteTeamDiscussionComment +""" +input DeleteTeamDiscussionCommentInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the comment to delete. + """ + id: ID! @possibleTypes(concreteTypes: ["TeamDiscussionComment"]) +} + +""" +Autogenerated return type of DeleteTeamDiscussionComment +""" +type DeleteTeamDiscussionCommentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of DeleteTeamDiscussion +""" +input DeleteTeamDiscussionInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The discussion ID to delete. + """ + id: ID! @possibleTypes(concreteTypes: ["TeamDiscussion"]) +} + +""" +Autogenerated return type of DeleteTeamDiscussion +""" +type DeleteTeamDiscussionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of DeleteVerifiableDomain +""" +input DeleteVerifiableDomainInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the verifiable domain to delete. + """ + id: ID! @possibleTypes(concreteTypes: ["VerifiableDomain"]) +} + +""" +Autogenerated return type of DeleteVerifiableDomain +""" +type DeleteVerifiableDomainPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The owning account from which the domain was deleted. + """ + owner: VerifiableDomainOwner +} + +""" +Represents a 'demilestoned' event on a given issue or pull request. +""" +type DemilestonedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Identifies the milestone title associated with the 'demilestoned' event. + """ + milestoneTitle: String! + + """ + Object referenced by event. + """ + subject: MilestoneItem! +} + +""" +A Dependabot Update for a dependency in a repository +""" +type DependabotUpdate implements RepositoryNode { + """ + The error from a dependency update + """ + error: DependabotUpdateError + + """ + The associated pull request + """ + pullRequest: PullRequest + + """ + The repository associated with this node. + """ + repository: Repository! +} + +""" +An error produced from a Dependabot Update +""" +type DependabotUpdateError { + """ + The body of the error + """ + body: String! + + """ + The error code + """ + errorType: String! + + """ + The title of the error + """ + title: String! +} + +""" +A dependency manifest entry +""" +type DependencyGraphDependency @preview(toggledBy: "hawkgirl-preview") { + """ + Does the dependency itself have dependencies? + """ + hasDependencies: Boolean! + + """ + The original name of the package, as it appears in the manifest. + """ + packageLabel: String! + @deprecated( + reason: "`packageLabel` will be removed. Use normalized `packageName` field instead. Removal on 2022-10-01 UTC." + ) + + """ + The dependency package manager + """ + packageManager: String + + """ + The name of the package in the canonical form used by the package manager. + """ + packageName: String! + + """ + The repository containing the package + """ + repository: Repository + + """ + The dependency version requirements + """ + requirements: String! +} + +""" +The connection type for DependencyGraphDependency. +""" +type DependencyGraphDependencyConnection @preview(toggledBy: "hawkgirl-preview") { + """ + A list of edges. + """ + edges: [DependencyGraphDependencyEdge] + + """ + A list of nodes. + """ + nodes: [DependencyGraphDependency] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DependencyGraphDependencyEdge @preview(toggledBy: "hawkgirl-preview") { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DependencyGraphDependency +} + +""" +The possible ecosystems of a dependency graph package. +""" +enum DependencyGraphEcosystem { + """ + GitHub Actions + """ + ACTIONS + + """ + PHP packages hosted at packagist.org + """ + COMPOSER + + """ + Go modules + """ + GO + + """ + Java artifacts hosted at the Maven central repository + """ + MAVEN + + """ + JavaScript packages hosted at npmjs.com + """ + NPM + + """ + .NET packages hosted at the NuGet Gallery + """ + NUGET + + """ + Python packages hosted at PyPI.org + """ + PIP + + """ + Dart packages hosted at pub.dev + """ + PUB + + """ + Ruby gems hosted at RubyGems.org + """ + RUBYGEMS + + """ + Rust crates + """ + RUST + + """ + Swift packages + """ + SWIFT +} + +""" +Dependency manifest for a repository +""" +type DependencyGraphManifest implements Node @preview(toggledBy: "hawkgirl-preview") { + """ + Path to view the manifest file blob + """ + blobPath: String! + + """ + A list of manifest dependencies + """ + dependencies( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): DependencyGraphDependencyConnection + + """ + The number of dependencies listed in the manifest + """ + dependenciesCount: Int + + """ + Is the manifest too big to parse? + """ + exceedsMaxSize: Boolean! + + """ + Fully qualified manifest filename + """ + filename: String! + id: ID! + + """ + Were we able to parse the manifest? + """ + parseable: Boolean! + + """ + The repository containing the manifest + """ + repository: Repository! +} + +""" +The connection type for DependencyGraphManifest. +""" +type DependencyGraphManifestConnection @preview(toggledBy: "hawkgirl-preview") { + """ + A list of edges. + """ + edges: [DependencyGraphManifestEdge] + + """ + A list of nodes. + """ + nodes: [DependencyGraphManifest] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DependencyGraphManifestEdge @preview(toggledBy: "hawkgirl-preview") { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DependencyGraphManifest +} + +""" +A repository deploy key. +""" +type DeployKey implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + The deploy key. + """ + key: String! + + """ + Whether or not the deploy key is read only. + """ + readOnly: Boolean! + + """ + The deploy key title. + """ + title: String! + + """ + Whether or not the deploy key has been verified. + """ + verified: Boolean! +} + +""" +The connection type for DeployKey. +""" +type DeployKeyConnection { + """ + A list of edges. + """ + edges: [DeployKeyEdge] + + """ + A list of nodes. + """ + nodes: [DeployKey] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DeployKeyEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DeployKey +} + +""" +Represents a 'deployed' event on a given pull request. +""" +type DeployedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The deployment associated with the 'deployed' event. + """ + deployment: Deployment! + id: ID! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest! + + """ + The ref associated with the 'deployed' event. + """ + ref: Ref +} + +""" +Represents triggered deployment instance. +""" +type Deployment implements Node { + """ + Identifies the commit sha of the deployment. + """ + commit: Commit + + """ + Identifies the oid of the deployment commit, even if the commit has been deleted. + """ + commitOid: String! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the actor who triggered the deployment. + """ + creator: Actor! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The deployment description. + """ + description: String + + """ + The latest environment to which this deployment was made. + """ + environment: String + id: ID! + + """ + The latest environment to which this deployment was made. + """ + latestEnvironment: String + + """ + The latest status of this deployment. + """ + latestStatus: DeploymentStatus + + """ + The original environment to which this deployment was made. + """ + originalEnvironment: String + + """ + Extra information that a deployment system might need. + """ + payload: String + + """ + Identifies the Ref of the deployment, if the deployment was created by ref. + """ + ref: Ref + + """ + Identifies the repository associated with the deployment. + """ + repository: Repository! + + """ + The current state of the deployment. + """ + state: DeploymentState + + """ + A list of statuses associated with the deployment. + """ + statuses( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): DeploymentStatusConnection + + """ + The deployment task. + """ + task: String + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The connection type for Deployment. +""" +type DeploymentConnection { + """ + A list of edges. + """ + edges: [DeploymentEdge] + + """ + A list of nodes. + """ + nodes: [Deployment] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DeploymentEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Deployment +} + +""" +Represents a 'deployment_environment_changed' event on a given pull request. +""" +type DeploymentEnvironmentChangedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The deployment status that updated the deployment environment. + """ + deploymentStatus: DeploymentStatus! + id: ID! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest! +} + +""" +Ordering options for deployment connections +""" +input DeploymentOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order deployments by. + """ + field: DeploymentOrderField! +} + +""" +Properties by which deployment connections can be ordered. +""" +enum DeploymentOrderField { + """ + Order collection by creation time + """ + CREATED_AT +} + +""" +A protection rule. +""" +type DeploymentProtectionRule { + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The teams or users that can review the deployment + """ + reviewers( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): DeploymentReviewerConnection! + + """ + The timeout in minutes for this protection rule. + """ + timeout: Int! + + """ + The type of protection rule. + """ + type: DeploymentProtectionRuleType! +} + +""" +The connection type for DeploymentProtectionRule. +""" +type DeploymentProtectionRuleConnection { + """ + A list of edges. + """ + edges: [DeploymentProtectionRuleEdge] + + """ + A list of nodes. + """ + nodes: [DeploymentProtectionRule] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DeploymentProtectionRuleEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DeploymentProtectionRule +} + +""" +The possible protection rule types. +""" +enum DeploymentProtectionRuleType { + """ + Required reviewers + """ + REQUIRED_REVIEWERS + + """ + Wait timer + """ + WAIT_TIMER +} + +""" +A request to deploy a workflow run to an environment. +""" +type DeploymentRequest { + """ + Whether or not the current user can approve the deployment + """ + currentUserCanApprove: Boolean! + + """ + The target environment of the deployment + """ + environment: Environment! + + """ + The teams or users that can review the deployment + """ + reviewers( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): DeploymentReviewerConnection! + + """ + The wait timer in minutes configured in the environment + """ + waitTimer: Int! + + """ + The wait timer in minutes configured in the environment + """ + waitTimerStartedAt: DateTime +} + +""" +The connection type for DeploymentRequest. +""" +type DeploymentRequestConnection { + """ + A list of edges. + """ + edges: [DeploymentRequestEdge] + + """ + A list of nodes. + """ + nodes: [DeploymentRequest] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DeploymentRequestEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DeploymentRequest +} + +""" +A deployment review. +""" +type DeploymentReview implements Node { + """ + The comment the user left. + """ + comment: String! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The environments approved or rejected + """ + environments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): EnvironmentConnection! + id: ID! + + """ + The decision of the user. + """ + state: DeploymentReviewState! + + """ + The user that reviewed the deployment. + """ + user: User! +} + +""" +The connection type for DeploymentReview. +""" +type DeploymentReviewConnection { + """ + A list of edges. + """ + edges: [DeploymentReviewEdge] + + """ + A list of nodes. + """ + nodes: [DeploymentReview] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DeploymentReviewEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DeploymentReview +} + +""" +The possible states for a deployment review. +""" +enum DeploymentReviewState { + """ + The deployment was approved. + """ + APPROVED + + """ + The deployment was rejected. + """ + REJECTED +} + +""" +Users and teams. +""" +union DeploymentReviewer = Team | User + +""" +The connection type for DeploymentReviewer. +""" +type DeploymentReviewerConnection { + """ + A list of edges. + """ + edges: [DeploymentReviewerEdge] + + """ + A list of nodes. + """ + nodes: [DeploymentReviewer] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DeploymentReviewerEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DeploymentReviewer +} + +""" +The possible states in which a deployment can be. +""" +enum DeploymentState { + """ + The pending deployment was not updated after 30 minutes. + """ + ABANDONED + + """ + The deployment is currently active. + """ + ACTIVE + + """ + An inactive transient deployment. + """ + DESTROYED + + """ + The deployment experienced an error. + """ + ERROR + + """ + The deployment has failed. + """ + FAILURE + + """ + The deployment is inactive. + """ + INACTIVE + + """ + The deployment is in progress. + """ + IN_PROGRESS + + """ + The deployment is pending. + """ + PENDING + + """ + The deployment has queued + """ + QUEUED + + """ + The deployment was successful. + """ + SUCCESS + + """ + The deployment is waiting. + """ + WAITING +} + +""" +Describes the status of a given deployment attempt. +""" +type DeploymentStatus implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the actor who triggered the deployment. + """ + creator: Actor! + + """ + Identifies the deployment associated with status. + """ + deployment: Deployment! + + """ + Identifies the description of the deployment. + """ + description: String + + """ + Identifies the environment of the deployment at the time of this deployment status + """ + environment: String @preview(toggledBy: "flash-preview") + + """ + Identifies the environment URL of the deployment. + """ + environmentUrl: URI + id: ID! + + """ + Identifies the log URL of the deployment. + """ + logUrl: URI + + """ + Identifies the current state of the deployment. + """ + state: DeploymentStatusState! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The connection type for DeploymentStatus. +""" +type DeploymentStatusConnection { + """ + A list of edges. + """ + edges: [DeploymentStatusEdge] + + """ + A list of nodes. + """ + nodes: [DeploymentStatus] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DeploymentStatusEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DeploymentStatus +} + +""" +The possible states for a deployment status. +""" +enum DeploymentStatusState { + """ + The deployment experienced an error. + """ + ERROR + + """ + The deployment has failed. + """ + FAILURE + + """ + The deployment is inactive. + """ + INACTIVE + + """ + The deployment is in progress. + """ + IN_PROGRESS + + """ + The deployment is pending. + """ + PENDING + + """ + The deployment is queued + """ + QUEUED + + """ + The deployment was successful. + """ + SUCCESS + + """ + The deployment is waiting. + """ + WAITING +} + +""" +Autogenerated input type of DequeuePullRequest +""" +input DequeuePullRequestInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the pull request to be dequeued. + """ + id: ID! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +Autogenerated return type of DequeuePullRequest +""" +type DequeuePullRequestPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The merge queue entry of the dequeued pull request. + """ + mergeQueueEntry: MergeQueueEntry +} + +""" +The possible sides of a diff. +""" +enum DiffSide { + """ + The left side of the diff. + """ + LEFT + + """ + The right side of the diff. + """ + RIGHT +} + +""" +Autogenerated input type of DisablePullRequestAutoMerge +""" +input DisablePullRequestAutoMergeInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the pull request to disable auto merge on. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +Autogenerated return type of DisablePullRequestAutoMerge +""" +type DisablePullRequestAutoMergePayload { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The pull request auto merge was disabled on. + """ + pullRequest: PullRequest +} + +""" +Represents a 'disconnected' event on a given issue or pull request. +""" +type DisconnectedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Reference originated in a different repository. + """ + isCrossRepository: Boolean! + + """ + Issue or pull request from which the issue was disconnected. + """ + source: ReferencedSubject! + + """ + Issue or pull request which was disconnected. + """ + subject: ReferencedSubject! +} + +""" +A discussion in a repository. +""" +type Discussion implements Closable & Comment & Deletable & Labelable & Lockable & Node & Reactable & RepositoryNode & Subscribable & Updatable & Votable { + """ + Reason that the conversation was locked. + """ + activeLockReason: LockReason + + """ + The comment chosen as this discussion's answer, if any. + """ + answer: DiscussionComment + + """ + The time when a user chose this discussion's answer, if answered. + """ + answerChosenAt: DateTime + + """ + The user who chose this discussion's answer, if answered. + """ + answerChosenBy: Actor + + """ + The actor who authored the comment. + """ + author: Actor + + """ + Author's association with the subject of the comment. + """ + authorAssociation: CommentAuthorAssociation! + + """ + The main text of the discussion post. + """ + body: String! + + """ + The body rendered to HTML. + """ + bodyHTML: HTML! + + """ + The body rendered to text. + """ + bodyText: String! + + """ + The category for this discussion. + """ + category: DiscussionCategory! + + """ + Indicates if the object is closed (definition of closed may depend on type) + """ + closed: Boolean! + + """ + Identifies the date and time when the object was closed. + """ + closedAt: DateTime + + """ + The replies to the discussion. + """ + comments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): DiscussionCommentConnection! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Check if this comment was created via an email reply. + """ + createdViaEmail: Boolean! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The actor who edited the comment. + """ + editor: Actor + id: ID! + + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + + """ + A list of labels associated with the object. + """ + labels( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for labels returned from the connection. + """ + orderBy: LabelOrder = {field: CREATED_AT, direction: ASC} + ): LabelConnection + + """ + The moment the editor made the last edit + """ + lastEditedAt: DateTime + + """ + `true` if the object is locked + """ + locked: Boolean! + + """ + The number identifying this discussion within the repository. + """ + number: Int! + + """ + The poll associated with this discussion, if one exists. + """ + poll: DiscussionPoll + + """ + Identifies when the comment was published at. + """ + publishedAt: DateTime + + """ + A list of reactions grouped by content left on the subject. + """ + reactionGroups: [ReactionGroup!] + + """ + A list of Reactions left on the Issue. + """ + reactions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Allows filtering Reactions by emoji. + """ + content: ReactionContent + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Allows specifying the order in which reactions are returned. + """ + orderBy: ReactionOrder + ): ReactionConnection! + + """ + The repository associated with this node. + """ + repository: Repository! + + """ + The path for this discussion. + """ + resourcePath: URI! + + """ + Identifies the reason for the discussion's state. + """ + stateReason: DiscussionStateReason + + """ + The title of this discussion. + """ + title: String! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + Number of upvotes that this subject has received. + """ + upvoteCount: Int! + + """ + The URL for this discussion. + """ + url: URI! + + """ + A list of edits to this content. + """ + userContentEdits( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserContentEditConnection + + """ + Indicates if the object can be closed by the viewer. + """ + viewerCanClose: Boolean! + + """ + Check if the current viewer can delete this object. + """ + viewerCanDelete: Boolean! + + """ + Can user react to this subject + """ + viewerCanReact: Boolean! + + """ + Indicates if the object can be reopened by the viewer. + """ + viewerCanReopen: Boolean! + + """ + Check if the viewer is able to change their subscription status for the repository. + """ + viewerCanSubscribe: Boolean! + + """ + Check if the current viewer can update this object. + """ + viewerCanUpdate: Boolean! + + """ + Whether or not the current user can add or remove an upvote on this subject. + """ + viewerCanUpvote: Boolean! + + """ + Did the viewer author this comment. + """ + viewerDidAuthor: Boolean! + + """ + Whether or not the current user has already upvoted this subject. + """ + viewerHasUpvoted: Boolean! + + """ + Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. + """ + viewerSubscription: SubscriptionState +} + +""" +A category for discussions in a repository. +""" +type DiscussionCategory implements Node & RepositoryNode { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + A description of this category. + """ + description: String + + """ + An emoji representing this category. + """ + emoji: String! + + """ + This category's emoji rendered as HTML. + """ + emojiHTML: HTML! + id: ID! + + """ + Whether or not discussions in this category support choosing an answer with the markDiscussionCommentAsAnswer mutation. + """ + isAnswerable: Boolean! + + """ + The name of this category. + """ + name: String! + + """ + The repository associated with this node. + """ + repository: Repository! + + """ + The slug of this category. + """ + slug: String! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The connection type for DiscussionCategory. +""" +type DiscussionCategoryConnection { + """ + A list of edges. + """ + edges: [DiscussionCategoryEdge] + + """ + A list of nodes. + """ + nodes: [DiscussionCategory] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DiscussionCategoryEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DiscussionCategory +} + +""" +The possible reasons for closing a discussion. +""" +enum DiscussionCloseReason { + """ + The discussion is a duplicate of another + """ + DUPLICATE + + """ + The discussion is no longer relevant + """ + OUTDATED + + """ + The discussion has been resolved + """ + RESOLVED +} + +""" +A comment on a discussion. +""" +type DiscussionComment implements Comment & Deletable & Minimizable & Node & Reactable & Updatable & UpdatableComment & Votable { + """ + The actor who authored the comment. + """ + author: Actor + + """ + Author's association with the subject of the comment. + """ + authorAssociation: CommentAuthorAssociation! + + """ + The body as Markdown. + """ + body: String! + + """ + The body rendered to HTML. + """ + bodyHTML: HTML! + + """ + The body rendered to text. + """ + bodyText: String! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Check if this comment was created via an email reply. + """ + createdViaEmail: Boolean! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The time when this replied-to comment was deleted + """ + deletedAt: DateTime + + """ + The discussion this comment was created in + """ + discussion: Discussion + + """ + The actor who edited the comment. + """ + editor: Actor + id: ID! + + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + + """ + Has this comment been chosen as the answer of its discussion? + """ + isAnswer: Boolean! + + """ + Returns whether or not a comment has been minimized. + """ + isMinimized: Boolean! + + """ + The moment the editor made the last edit + """ + lastEditedAt: DateTime + + """ + Returns why the comment was minimized. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + minimizedReason: String + + """ + Identifies when the comment was published at. + """ + publishedAt: DateTime + + """ + A list of reactions grouped by content left on the subject. + """ + reactionGroups: [ReactionGroup!] + + """ + A list of Reactions left on the Issue. + """ + reactions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Allows filtering Reactions by emoji. + """ + content: ReactionContent + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Allows specifying the order in which reactions are returned. + """ + orderBy: ReactionOrder + ): ReactionConnection! + + """ + The threaded replies to this comment. + """ + replies( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): DiscussionCommentConnection! + + """ + The discussion comment this comment is a reply to + """ + replyTo: DiscussionComment + + """ + The path for this discussion comment. + """ + resourcePath: URI! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + Number of upvotes that this subject has received. + """ + upvoteCount: Int! + + """ + The URL for this discussion comment. + """ + url: URI! + + """ + A list of edits to this content. + """ + userContentEdits( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserContentEditConnection + + """ + Check if the current viewer can delete this object. + """ + viewerCanDelete: Boolean! + + """ + Can the current user mark this comment as an answer? + """ + viewerCanMarkAsAnswer: Boolean! + + """ + Check if the current viewer can minimize this object. + """ + viewerCanMinimize: Boolean! + + """ + Can user react to this subject + """ + viewerCanReact: Boolean! + + """ + Can the current user unmark this comment as an answer? + """ + viewerCanUnmarkAsAnswer: Boolean! + + """ + Check if the current viewer can update this object. + """ + viewerCanUpdate: Boolean! + + """ + Whether or not the current user can add or remove an upvote on this subject. + """ + viewerCanUpvote: Boolean! + + """ + Reasons why the current viewer can not update this comment. + """ + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + + """ + Did the viewer author this comment. + """ + viewerDidAuthor: Boolean! + + """ + Whether or not the current user has already upvoted this subject. + """ + viewerHasUpvoted: Boolean! +} + +""" +The connection type for DiscussionComment. +""" +type DiscussionCommentConnection { + """ + A list of edges. + """ + edges: [DiscussionCommentEdge] + + """ + A list of nodes. + """ + nodes: [DiscussionComment] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DiscussionCommentEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DiscussionComment +} + +""" +The connection type for Discussion. +""" +type DiscussionConnection { + """ + A list of edges. + """ + edges: [DiscussionEdge] + + """ + A list of nodes. + """ + nodes: [Discussion] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DiscussionEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Discussion +} + +""" +Ways in which lists of discussions can be ordered upon return. +""" +input DiscussionOrder { + """ + The direction in which to order discussions by the specified field. + """ + direction: OrderDirection! + + """ + The field by which to order discussions. + """ + field: DiscussionOrderField! +} + +""" +Properties by which discussion connections can be ordered. +""" +enum DiscussionOrderField { + """ + Order discussions by creation time. + """ + CREATED_AT + + """ + Order discussions by most recent modification time. + """ + UPDATED_AT +} + +""" +A poll for a discussion. +""" +type DiscussionPoll implements Node { + """ + The discussion that this poll belongs to. + """ + discussion: Discussion + id: ID! + + """ + The options for this poll. + """ + options( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + How to order the options for the discussion poll. + """ + orderBy: DiscussionPollOptionOrder = {field: AUTHORED_ORDER, direction: ASC} + ): DiscussionPollOptionConnection + + """ + The question that is being asked by this poll. + """ + question: String! + + """ + The total number of votes that have been cast for this poll. + """ + totalVoteCount: Int! + + """ + Indicates if the viewer has permission to vote in this poll. + """ + viewerCanVote: Boolean! + + """ + Indicates if the viewer has voted for any option in this poll. + """ + viewerHasVoted: Boolean! +} + +""" +An option for a discussion poll. +""" +type DiscussionPollOption implements Node { + id: ID! + + """ + The text for this option. + """ + option: String! + + """ + The discussion poll that this option belongs to. + """ + poll: DiscussionPoll + + """ + The total number of votes that have been cast for this option. + """ + totalVoteCount: Int! + + """ + Indicates if the viewer has voted for this option in the poll. + """ + viewerHasVoted: Boolean! +} + +""" +The connection type for DiscussionPollOption. +""" +type DiscussionPollOptionConnection { + """ + A list of edges. + """ + edges: [DiscussionPollOptionEdge] + + """ + A list of nodes. + """ + nodes: [DiscussionPollOption] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type DiscussionPollOptionEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: DiscussionPollOption +} + +""" +Ordering options for discussion poll option connections. +""" +input DiscussionPollOptionOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order poll options by. + """ + field: DiscussionPollOptionOrderField! +} + +""" +Properties by which discussion poll option connections can be ordered. +""" +enum DiscussionPollOptionOrderField { + """ + Order poll options by the order that the poll author specified when creating the poll. + """ + AUTHORED_ORDER + + """ + Order poll options by the number of votes it has. + """ + VOTE_COUNT +} + +""" +The possible states of a discussion. +""" +enum DiscussionState { + """ + A discussion that has been closed + """ + CLOSED + + """ + A discussion that is open + """ + OPEN +} + +""" +The possible state reasons of a discussion. +""" +enum DiscussionStateReason { + """ + The discussion is a duplicate of another + """ + DUPLICATE + + """ + The discussion is no longer relevant + """ + OUTDATED + + """ + The discussion was reopened + """ + REOPENED + + """ + The discussion has been resolved + """ + RESOLVED +} + +""" +Autogenerated input type of DismissPullRequestReview +""" +input DismissPullRequestReviewInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The contents of the pull request review dismissal message. + """ + message: String! + + """ + The Node ID of the pull request review to modify. + """ + pullRequestReviewId: ID! @possibleTypes(concreteTypes: ["PullRequestReview"]) +} + +""" +Autogenerated return type of DismissPullRequestReview +""" +type DismissPullRequestReviewPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The dismissed pull request review. + """ + pullRequestReview: PullRequestReview +} + +""" +The possible reasons that a Dependabot alert was dismissed. +""" +enum DismissReason { + """ + A fix has already been started + """ + FIX_STARTED + + """ + This alert is inaccurate or incorrect + """ + INACCURATE + + """ + Vulnerable code is not actually used + """ + NOT_USED + + """ + No bandwidth to fix this + """ + NO_BANDWIDTH + + """ + Risk is tolerable to this project + """ + TOLERABLE_RISK +} + +""" +Autogenerated input type of DismissRepositoryVulnerabilityAlert +""" +input DismissRepositoryVulnerabilityAlertInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The reason the Dependabot alert is being dismissed. + """ + dismissReason: DismissReason! + + """ + The Dependabot alert ID to dismiss. + """ + repositoryVulnerabilityAlertId: ID! @possibleTypes(concreteTypes: ["RepositoryVulnerabilityAlert"]) +} + +""" +Autogenerated return type of DismissRepositoryVulnerabilityAlert +""" +type DismissRepositoryVulnerabilityAlertPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Dependabot alert that was dismissed + """ + repositoryVulnerabilityAlert: RepositoryVulnerabilityAlert +} + +""" +A draft issue within a project. +""" +type DraftIssue implements Node { + """ + A list of users to assigned to this draft issue. + """ + assignees( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserConnection! + + """ + The body of the draft issue. + """ + body: String! + + """ + The body of the draft issue rendered to HTML. + """ + bodyHTML: HTML! + + """ + The body of the draft issue rendered to text. + """ + bodyText: String! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created this draft issue. + """ + creator: Actor + id: ID! + + """ + List of items linked with the draft issue (currently draft issue can be linked to only one item). + """ + projectV2Items( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectV2ItemConnection! + + """ + Projects that link to this draft issue (currently draft issue can be linked to only one project). + """ + projectsV2( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectV2Connection! + + """ + The title of the draft issue + """ + title: String! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +Specifies a review comment to be left with a Pull Request Review. +""" +input DraftPullRequestReviewComment { + """ + Body of the comment to leave. + """ + body: String! + + """ + Path to the file being commented on. + """ + path: String! + + """ + Position in the file to leave a comment on. + """ + position: Int! +} + +""" +Specifies a review comment thread to be left with a Pull Request Review. +""" +input DraftPullRequestReviewThread { + """ + Body of the comment to leave. + """ + body: String! + + """ + The line of the blob to which the thread refers. The end of the line range for multi-line comments. + """ + line: Int! + + """ + Path to the file being commented on. + """ + path: String! + + """ + The side of the diff on which the line resides. For multi-line comments, this is the side for the end of the line range. + """ + side: DiffSide = RIGHT + + """ + The first line of the range to which the comment refers. + """ + startLine: Int + + """ + The side of the diff on which the start line resides. + """ + startSide: DiffSide = RIGHT +} + +""" +Autogenerated input type of EnablePullRequestAutoMerge +""" +input EnablePullRequestAutoMergeInput { + """ + The email address to associate with this merge. + """ + authorEmail: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Commit body to use for the commit when the PR is mergable; if omitted, a + default message will be used. NOTE: when merging with a merge queue any input + value for commit message is ignored. + """ + commitBody: String + + """ + Commit headline to use for the commit when the PR is mergable; if omitted, a + default message will be used. NOTE: when merging with a merge queue any input + value for commit headline is ignored. + """ + commitHeadline: String + + """ + The expected head OID of the pull request. + """ + expectedHeadOid: GitObjectID + + """ + The merge method to use. If omitted, defaults to `MERGE`. NOTE: when merging + with a merge queue any input value for merge method is ignored. + """ + mergeMethod: PullRequestMergeMethod = MERGE + + """ + ID of the pull request to enable auto-merge on. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +Autogenerated return type of EnablePullRequestAutoMerge +""" +type EnablePullRequestAutoMergePayload { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The pull request auto-merge was enabled on. + """ + pullRequest: PullRequest +} + +""" +Autogenerated input type of EnqueuePullRequest +""" +input EnqueuePullRequestInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The expected head OID of the pull request. + """ + expectedHeadOid: GitObjectID + + """ + Add the pull request to the front of the queue. + """ + jump: Boolean + + """ + The ID of the pull request to enqueue. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +Autogenerated return type of EnqueuePullRequest +""" +type EnqueuePullRequestPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The merge queue entry for the enqueued pull request. + """ + mergeQueueEntry: MergeQueueEntry +} + +""" +An account to manage multiple organizations with consolidated policy and billing. +""" +type Enterprise implements AnnouncementBanner & Node { + """ + The text of the announcement + """ + announcement: String + + """ + The expiration date of the announcement, if any + """ + announcementExpiresAt: DateTime + + """ + Whether the announcement can be dismissed by the user + """ + announcementUserDismissible: Boolean + + """ + A URL pointing to the enterprise's public avatar. + """ + avatarUrl( + """ + The size of the resulting square image. + """ + size: Int + ): URI! + + """ + Enterprise billing information visible to enterprise billing managers. + """ + billingInfo: EnterpriseBillingInfo + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The description of the enterprise. + """ + description: String + + """ + The description of the enterprise as HTML. + """ + descriptionHTML: HTML! + id: ID! + + """ + The location of the enterprise. + """ + location: String + + """ + A list of users who are members of this enterprise. + """ + members( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Only return members within the selected GitHub Enterprise deployment + """ + deployment: EnterpriseUserDeployment + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Only return members with this two-factor authentication status. Does not + include members who only have an account on a GitHub Enterprise Server instance. + """ + hasTwoFactorEnabled: Boolean = null + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for members returned from the connection. + """ + orderBy: EnterpriseMemberOrder = {field: LOGIN, direction: ASC} + + """ + Only return members within the organizations with these logins + """ + organizationLogins: [String!] + + """ + The search string to look for. + """ + query: String + + """ + The role of the user in the enterprise organization or server. + """ + role: EnterpriseUserAccountMembershipRole + ): EnterpriseMemberConnection! + + """ + The name of the enterprise. + """ + name: String! + + """ + A list of organizations that belong to this enterprise. + """ + organizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for organizations returned from the connection. + """ + orderBy: OrganizationOrder = {field: LOGIN, direction: ASC} + + """ + The search string to look for. + """ + query: String + + """ + The viewer's role in an organization. + """ + viewerOrganizationRole: RoleInOrganization + ): OrganizationConnection! + + """ + Enterprise information visible to enterprise owners or enterprise owners' + personal access tokens (classic) with read:enterprise or admin:enterprise scope. + """ + ownerInfo: EnterpriseOwnerInfo + + """ + The HTTP path for this enterprise. + """ + resourcePath: URI! + + """ + The URL-friendly identifier for the enterprise. + """ + slug: String! + + """ + The HTTP URL for this enterprise. + """ + url: URI! + + """ + Is the current viewer an admin of this enterprise? + """ + viewerIsAdmin: Boolean! + + """ + The URL of the enterprise website. + """ + websiteUrl: URI +} + +""" +The connection type for User. +""" +type EnterpriseAdministratorConnection { + """ + A list of edges. + """ + edges: [EnterpriseAdministratorEdge] + + """ + A list of nodes. + """ + nodes: [User] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +A User who is an administrator of an enterprise. +""" +type EnterpriseAdministratorEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: User + + """ + The role of the administrator. + """ + role: EnterpriseAdministratorRole! +} + +""" +An invitation for a user to become an owner or billing manager of an enterprise. +""" +type EnterpriseAdministratorInvitation implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The email of the person who was invited to the enterprise. + """ + email: String + + """ + The enterprise the invitation is for. + """ + enterprise: Enterprise! + id: ID! + + """ + The user who was invited to the enterprise. + """ + invitee: User + + """ + The user who created the invitation. + """ + inviter: User + + """ + The invitee's pending role in the enterprise (owner or billing_manager). + """ + role: EnterpriseAdministratorRole! +} + +""" +The connection type for EnterpriseAdministratorInvitation. +""" +type EnterpriseAdministratorInvitationConnection { + """ + A list of edges. + """ + edges: [EnterpriseAdministratorInvitationEdge] + + """ + A list of nodes. + """ + nodes: [EnterpriseAdministratorInvitation] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type EnterpriseAdministratorInvitationEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: EnterpriseAdministratorInvitation +} + +""" +Ordering options for enterprise administrator invitation connections +""" +input EnterpriseAdministratorInvitationOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order enterprise administrator invitations by. + """ + field: EnterpriseAdministratorInvitationOrderField! +} + +""" +Properties by which enterprise administrator invitation connections can be ordered. +""" +enum EnterpriseAdministratorInvitationOrderField { + """ + Order enterprise administrator member invitations by creation time + """ + CREATED_AT +} + +""" +The possible administrator roles in an enterprise account. +""" +enum EnterpriseAdministratorRole { + """ + Represents a billing manager of the enterprise account. + """ + BILLING_MANAGER + + """ + Represents an owner of the enterprise account. + """ + OWNER +} + +""" +The possible values for the enterprise allow private repository forking policy value. +""" +enum EnterpriseAllowPrivateRepositoryForkingPolicyValue { + """ + Members can fork a repository to an organization within this enterprise. + """ + ENTERPRISE_ORGANIZATIONS + + """ + Members can fork a repository to their enterprise-managed user account or an organization inside this enterprise. + """ + ENTERPRISE_ORGANIZATIONS_USER_ACCOUNTS + + """ + Members can fork a repository to their user account or an organization, either inside or outside of this enterprise. + """ + EVERYWHERE + + """ + Members can fork a repository only within the same organization (intra-org). + """ + SAME_ORGANIZATION + + """ + Members can fork a repository to their user account or within the same organization. + """ + SAME_ORGANIZATION_USER_ACCOUNTS + + """ + Members can fork a repository to their user account. + """ + USER_ACCOUNTS +} + +""" +Metadata for an audit entry containing enterprise account information. +""" +interface EnterpriseAuditEntryData { + """ + The HTTP path for this enterprise. + """ + enterpriseResourcePath: URI + + """ + The slug of the enterprise. + """ + enterpriseSlug: String + + """ + The HTTP URL for this enterprise. + """ + enterpriseUrl: URI +} + +""" +Enterprise billing information visible to enterprise billing managers and owners. +""" +type EnterpriseBillingInfo { + """ + The number of licenseable users/emails across the enterprise. + """ + allLicensableUsersCount: Int! + + """ + The number of data packs used by all organizations owned by the enterprise. + """ + assetPacks: Int! + + """ + The bandwidth quota in GB for all organizations owned by the enterprise. + """ + bandwidthQuota: Float! + + """ + The bandwidth usage in GB for all organizations owned by the enterprise. + """ + bandwidthUsage: Float! + + """ + The bandwidth usage as a percentage of the bandwidth quota. + """ + bandwidthUsagePercentage: Int! + + """ + The storage quota in GB for all organizations owned by the enterprise. + """ + storageQuota: Float! + + """ + The storage usage in GB for all organizations owned by the enterprise. + """ + storageUsage: Float! + + """ + The storage usage as a percentage of the storage quota. + """ + storageUsagePercentage: Int! + + """ + The number of available licenses across all owned organizations based on the unique number of billable users. + """ + totalAvailableLicenses: Int! + + """ + The total number of licenses allocated. + """ + totalLicenses: Int! +} + +""" +The possible values for the enterprise base repository permission setting. +""" +enum EnterpriseDefaultRepositoryPermissionSettingValue { + """ + Organization members will be able to clone, pull, push, and add new collaborators to all organization repositories. + """ + ADMIN + + """ + Organization members will only be able to clone and pull public repositories. + """ + NONE + + """ + Organizations in the enterprise choose base repository permissions for their members. + """ + NO_POLICY + + """ + Organization members will be able to clone and pull all organization repositories. + """ + READ + + """ + Organization members will be able to clone, pull, and push all organization repositories. + """ + WRITE +} + +""" +The possible values for an enabled/disabled enterprise setting. +""" +enum EnterpriseEnabledDisabledSettingValue { + """ + The setting is disabled for organizations in the enterprise. + """ + DISABLED + + """ + The setting is enabled for organizations in the enterprise. + """ + ENABLED + + """ + There is no policy set for organizations in the enterprise. + """ + NO_POLICY +} + +""" +The possible values for an enabled/no policy enterprise setting. +""" +enum EnterpriseEnabledSettingValue { + """ + The setting is enabled for organizations in the enterprise. + """ + ENABLED + + """ + There is no policy set for organizations in the enterprise. + """ + NO_POLICY +} + +""" +The connection type for OrganizationInvitation. +""" +type EnterpriseFailedInvitationConnection { + """ + A list of edges. + """ + edges: [EnterpriseFailedInvitationEdge] + + """ + A list of nodes. + """ + nodes: [OrganizationInvitation] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! + + """ + Identifies the total count of unique users in the connection. + """ + totalUniqueUserCount: Int! +} + +""" +A failed invitation to be a member in an enterprise organization. +""" +type EnterpriseFailedInvitationEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: OrganizationInvitation +} + +""" +An identity provider configured to provision identities for an enterprise. +Visible to enterprise owners or enterprise owners' personal access tokens +(classic) with read:enterprise or admin:enterprise scope. +""" +type EnterpriseIdentityProvider implements Node { + """ + The digest algorithm used to sign SAML requests for the identity provider. + """ + digestMethod: SamlDigestAlgorithm + + """ + The enterprise this identity provider belongs to. + """ + enterprise: Enterprise + + """ + ExternalIdentities provisioned by this identity provider. + """ + externalIdentities( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter to external identities with the users login + """ + login: String + + """ + Filter to external identities with valid org membership only + """ + membersOnly: Boolean + + """ + Filter to external identities with the users userName/NameID attribute + """ + userName: String + ): ExternalIdentityConnection! + id: ID! + + """ + The x509 certificate used by the identity provider to sign assertions and responses. + """ + idpCertificate: X509Certificate + + """ + The Issuer Entity ID for the SAML identity provider. + """ + issuer: String + + """ + Recovery codes that can be used by admins to access the enterprise if the identity provider is unavailable. + """ + recoveryCodes: [String!] + + """ + The signature algorithm used to sign SAML requests for the identity provider. + """ + signatureMethod: SamlSignatureAlgorithm + + """ + The URL endpoint for the identity provider's SAML SSO. + """ + ssoUrl: URI +} + +""" +An object that is a member of an enterprise. +""" +union EnterpriseMember = EnterpriseUserAccount | User + +""" +The connection type for EnterpriseMember. +""" +type EnterpriseMemberConnection { + """ + A list of edges. + """ + edges: [EnterpriseMemberEdge] + + """ + A list of nodes. + """ + nodes: [EnterpriseMember] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +A User who is a member of an enterprise through one or more organizations. +""" +type EnterpriseMemberEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: EnterpriseMember +} + +""" +Ordering options for enterprise member connections. +""" +input EnterpriseMemberOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order enterprise members by. + """ + field: EnterpriseMemberOrderField! +} + +""" +Properties by which enterprise member connections can be ordered. +""" +enum EnterpriseMemberOrderField { + """ + Order enterprise members by creation time + """ + CREATED_AT + + """ + Order enterprise members by login + """ + LOGIN +} + +""" +The possible values for the enterprise members can create repositories setting. +""" +enum EnterpriseMembersCanCreateRepositoriesSettingValue { + """ + Members will be able to create public and private repositories. + """ + ALL + + """ + Members will not be able to create public or private repositories. + """ + DISABLED + + """ + Organization administrators choose whether to allow members to create repositories. + """ + NO_POLICY + + """ + Members will be able to create only private repositories. + """ + PRIVATE + + """ + Members will be able to create only public repositories. + """ + PUBLIC +} + +""" +The possible values for the members can make purchases setting. +""" +enum EnterpriseMembersCanMakePurchasesSettingValue { + """ + The setting is disabled for organizations in the enterprise. + """ + DISABLED + + """ + The setting is enabled for organizations in the enterprise. + """ + ENABLED +} + +""" +The connection type for Organization. +""" +type EnterpriseOrganizationMembershipConnection { + """ + A list of edges. + """ + edges: [EnterpriseOrganizationMembershipEdge] + + """ + A list of nodes. + """ + nodes: [Organization] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An enterprise organization that a user is a member of. +""" +type EnterpriseOrganizationMembershipEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Organization + + """ + The role of the user in the enterprise membership. + """ + role: EnterpriseUserAccountMembershipRole! +} + +""" +The connection type for User. +""" +type EnterpriseOutsideCollaboratorConnection { + """ + A list of edges. + """ + edges: [EnterpriseOutsideCollaboratorEdge] + + """ + A list of nodes. + """ + nodes: [User] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +A User who is an outside collaborator of an enterprise through one or more organizations. +""" +type EnterpriseOutsideCollaboratorEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: User + + """ + The enterprise organization repositories this user is a member of. + """ + repositories( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for repositories. + """ + orderBy: RepositoryOrder = {field: NAME, direction: ASC} + ): EnterpriseRepositoryInfoConnection! +} + +""" +Enterprise information visible to enterprise owners or enterprise owners' +personal access tokens (classic) with read:enterprise or admin:enterprise scope. +""" +type EnterpriseOwnerInfo { + """ + A list of all of the administrators for this enterprise. + """ + admins( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Only return administrators with this two-factor authentication status. + """ + hasTwoFactorEnabled: Boolean = null + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for administrators returned from the connection. + """ + orderBy: EnterpriseMemberOrder = {field: LOGIN, direction: ASC} + + """ + Only return members within the organizations with these logins + """ + organizationLogins: [String!] + + """ + The search string to look for. + """ + query: String + + """ + The role to filter by. + """ + role: EnterpriseAdministratorRole + ): EnterpriseAdministratorConnection! + + """ + A list of users in the enterprise who currently have two-factor authentication disabled. + """ + affiliatedUsersWithTwoFactorDisabled( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserConnection! + + """ + Whether or not affiliated users with two-factor authentication disabled exist in the enterprise. + """ + affiliatedUsersWithTwoFactorDisabledExist: Boolean! + + """ + The setting value for whether private repository forking is enabled for repositories in organizations in this enterprise. + """ + allowPrivateRepositoryForkingSetting: EnterpriseEnabledDisabledSettingValue! + + """ + A list of enterprise organizations configured with the provided private repository forking setting value. + """ + allowPrivateRepositoryForkingSettingOrganizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for organizations with this setting. + """ + orderBy: OrganizationOrder = {field: LOGIN, direction: ASC} + + """ + The setting value to find organizations for. + """ + value: Boolean! + ): OrganizationConnection! + + """ + The value for the allow private repository forking policy on the enterprise. + """ + allowPrivateRepositoryForkingSettingPolicyValue: EnterpriseAllowPrivateRepositoryForkingPolicyValue + + """ + The setting value for base repository permissions for organizations in this enterprise. + """ + defaultRepositoryPermissionSetting: EnterpriseDefaultRepositoryPermissionSettingValue! + + """ + A list of enterprise organizations configured with the provided base repository permission. + """ + defaultRepositoryPermissionSettingOrganizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for organizations with this setting. + """ + orderBy: OrganizationOrder = {field: LOGIN, direction: ASC} + + """ + The permission to find organizations for. + """ + value: DefaultRepositoryPermissionField! + ): OrganizationConnection! + + """ + A list of domains owned by the enterprise. Visible to enterprise owners or + enterprise owners' personal access tokens (classic) with admin:enterprise scope. + """ + domains( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Filter whether or not the domain is approved. + """ + isApproved: Boolean = null + + """ + Filter whether or not the domain is verified. + """ + isVerified: Boolean = null + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for verifiable domains returned. + """ + orderBy: VerifiableDomainOrder = {field: DOMAIN, direction: ASC} + ): VerifiableDomainConnection! + + """ + Enterprise Server installations owned by the enterprise. + """ + enterpriseServerInstallations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Whether or not to only return installations discovered via GitHub Connect. + """ + connectedOnly: Boolean = false + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for Enterprise Server installations returned. + """ + orderBy: EnterpriseServerInstallationOrder = {field: HOST_NAME, direction: ASC} + ): EnterpriseServerInstallationConnection! + + """ + A list of failed invitations in the enterprise. + """ + failedInvitations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + The search string to look for. + """ + query: String + ): EnterpriseFailedInvitationConnection! + + """ + The setting value for whether the enterprise has an IP allow list enabled. + """ + ipAllowListEnabledSetting: IpAllowListEnabledSettingValue! + + """ + The IP addresses that are allowed to access resources owned by the enterprise. + Visible to enterprise owners or enterprise owners' personal access tokens + (classic) with admin:enterprise scope. + """ + ipAllowListEntries( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for IP allow list entries returned. + """ + orderBy: IpAllowListEntryOrder = {field: ALLOW_LIST_VALUE, direction: ASC} + ): IpAllowListEntryConnection! + + """ + The setting value for whether the enterprise has IP allow list configuration for installed GitHub Apps enabled. + """ + ipAllowListForInstalledAppsEnabledSetting: IpAllowListForInstalledAppsEnabledSettingValue! + + """ + Whether or not the base repository permission is currently being updated. + """ + isUpdatingDefaultRepositoryPermission: Boolean! + + """ + Whether the two-factor authentication requirement is currently being enforced. + """ + isUpdatingTwoFactorRequirement: Boolean! + + """ + The setting value for whether organization members with admin permissions on a + repository can change repository visibility. + """ + membersCanChangeRepositoryVisibilitySetting: EnterpriseEnabledDisabledSettingValue! + + """ + A list of enterprise organizations configured with the provided can change repository visibility setting value. + """ + membersCanChangeRepositoryVisibilitySettingOrganizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for organizations with this setting. + """ + orderBy: OrganizationOrder = {field: LOGIN, direction: ASC} + + """ + The setting value to find organizations for. + """ + value: Boolean! + ): OrganizationConnection! + + """ + The setting value for whether members of organizations in the enterprise can create internal repositories. + """ + membersCanCreateInternalRepositoriesSetting: Boolean + + """ + The setting value for whether members of organizations in the enterprise can create private repositories. + """ + membersCanCreatePrivateRepositoriesSetting: Boolean + + """ + The setting value for whether members of organizations in the enterprise can create public repositories. + """ + membersCanCreatePublicRepositoriesSetting: Boolean + + """ + The setting value for whether members of organizations in the enterprise can create repositories. + """ + membersCanCreateRepositoriesSetting: EnterpriseMembersCanCreateRepositoriesSettingValue + + """ + A list of enterprise organizations configured with the provided repository creation setting value. + """ + membersCanCreateRepositoriesSettingOrganizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for organizations with this setting. + """ + orderBy: OrganizationOrder = {field: LOGIN, direction: ASC} + + """ + The setting to find organizations for. + """ + value: OrganizationMembersCanCreateRepositoriesSettingValue! + ): OrganizationConnection! + + """ + The setting value for whether members with admin permissions for repositories can delete issues. + """ + membersCanDeleteIssuesSetting: EnterpriseEnabledDisabledSettingValue! + + """ + A list of enterprise organizations configured with the provided members can delete issues setting value. + """ + membersCanDeleteIssuesSettingOrganizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for organizations with this setting. + """ + orderBy: OrganizationOrder = {field: LOGIN, direction: ASC} + + """ + The setting value to find organizations for. + """ + value: Boolean! + ): OrganizationConnection! + + """ + The setting value for whether members with admin permissions for repositories can delete or transfer repositories. + """ + membersCanDeleteRepositoriesSetting: EnterpriseEnabledDisabledSettingValue! + + """ + A list of enterprise organizations configured with the provided members can delete repositories setting value. + """ + membersCanDeleteRepositoriesSettingOrganizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for organizations with this setting. + """ + orderBy: OrganizationOrder = {field: LOGIN, direction: ASC} + + """ + The setting value to find organizations for. + """ + value: Boolean! + ): OrganizationConnection! + + """ + The setting value for whether members of organizations in the enterprise can invite outside collaborators. + """ + membersCanInviteCollaboratorsSetting: EnterpriseEnabledDisabledSettingValue! + + """ + A list of enterprise organizations configured with the provided members can invite collaborators setting value. + """ + membersCanInviteCollaboratorsSettingOrganizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for organizations with this setting. + """ + orderBy: OrganizationOrder = {field: LOGIN, direction: ASC} + + """ + The setting value to find organizations for. + """ + value: Boolean! + ): OrganizationConnection! + + """ + Indicates whether members of this enterprise's organizations can purchase additional services for those organizations. + """ + membersCanMakePurchasesSetting: EnterpriseMembersCanMakePurchasesSettingValue! + + """ + The setting value for whether members with admin permissions for repositories can update protected branches. + """ + membersCanUpdateProtectedBranchesSetting: EnterpriseEnabledDisabledSettingValue! + + """ + A list of enterprise organizations configured with the provided members can update protected branches setting value. + """ + membersCanUpdateProtectedBranchesSettingOrganizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for organizations with this setting. + """ + orderBy: OrganizationOrder = {field: LOGIN, direction: ASC} + + """ + The setting value to find organizations for. + """ + value: Boolean! + ): OrganizationConnection! + + """ + The setting value for whether members can view dependency insights. + """ + membersCanViewDependencyInsightsSetting: EnterpriseEnabledDisabledSettingValue! + + """ + A list of enterprise organizations configured with the provided members can view dependency insights setting value. + """ + membersCanViewDependencyInsightsSettingOrganizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for organizations with this setting. + """ + orderBy: OrganizationOrder = {field: LOGIN, direction: ASC} + + """ + The setting value to find organizations for. + """ + value: Boolean! + ): OrganizationConnection! + + """ + Indicates if email notification delivery for this enterprise is restricted to verified or approved domains. + """ + notificationDeliveryRestrictionEnabledSetting: NotificationRestrictionSettingValue! + + """ + The OIDC Identity Provider for the enterprise. + """ + oidcProvider: OIDCProvider + + """ + The setting value for whether organization projects are enabled for organizations in this enterprise. + """ + organizationProjectsSetting: EnterpriseEnabledDisabledSettingValue! + + """ + A list of enterprise organizations configured with the provided organization projects setting value. + """ + organizationProjectsSettingOrganizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for organizations with this setting. + """ + orderBy: OrganizationOrder = {field: LOGIN, direction: ASC} + + """ + The setting value to find organizations for. + """ + value: Boolean! + ): OrganizationConnection! + + """ + A list of outside collaborators across the repositories in the enterprise. + """ + outsideCollaborators( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Only return outside collaborators with this two-factor authentication status. + """ + hasTwoFactorEnabled: Boolean = null + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + The login of one specific outside collaborator. + """ + login: String + + """ + Ordering options for outside collaborators returned from the connection. + """ + orderBy: EnterpriseMemberOrder = {field: LOGIN, direction: ASC} + + """ + Only return outside collaborators within the organizations with these logins + """ + organizationLogins: [String!] + + """ + The search string to look for. + """ + query: String + + """ + Only return outside collaborators on repositories with this visibility. + """ + visibility: RepositoryVisibility + ): EnterpriseOutsideCollaboratorConnection! + + """ + A list of pending administrator invitations for the enterprise. + """ + pendingAdminInvitations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for pending enterprise administrator invitations returned from the connection. + """ + orderBy: EnterpriseAdministratorInvitationOrder = {field: CREATED_AT, direction: DESC} + + """ + The search string to look for. + """ + query: String + + """ + The role to filter by. + """ + role: EnterpriseAdministratorRole + ): EnterpriseAdministratorInvitationConnection! + + """ + A list of pending collaborator invitations across the repositories in the enterprise. + """ + pendingCollaboratorInvitations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for pending repository collaborator invitations returned from the connection. + """ + orderBy: RepositoryInvitationOrder = {field: CREATED_AT, direction: DESC} + + """ + The search string to look for. + """ + query: String + ): RepositoryInvitationConnection! + + """ + A list of pending member invitations for organizations in the enterprise. + """ + pendingMemberInvitations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Only return invitations matching this invitation source + """ + invitationSource: OrganizationInvitationSource + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Only return invitations within the organizations with these logins + """ + organizationLogins: [String!] + + """ + The search string to look for. + """ + query: String + ): EnterprisePendingMemberInvitationConnection! + + """ + The setting value for whether repository projects are enabled in this enterprise. + """ + repositoryProjectsSetting: EnterpriseEnabledDisabledSettingValue! + + """ + A list of enterprise organizations configured with the provided repository projects setting value. + """ + repositoryProjectsSettingOrganizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for organizations with this setting. + """ + orderBy: OrganizationOrder = {field: LOGIN, direction: ASC} + + """ + The setting value to find organizations for. + """ + value: Boolean! + ): OrganizationConnection! + + """ + The SAML Identity Provider for the enterprise. + """ + samlIdentityProvider: EnterpriseIdentityProvider + + """ + A list of enterprise organizations configured with the SAML single sign-on setting value. + """ + samlIdentityProviderSettingOrganizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for organizations with this setting. + """ + orderBy: OrganizationOrder = {field: LOGIN, direction: ASC} + + """ + The setting value to find organizations for. + """ + value: IdentityProviderConfigurationState! + ): OrganizationConnection! + + """ + A list of members with a support entitlement. + """ + supportEntitlements( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for support entitlement users returned from the connection. + """ + orderBy: EnterpriseMemberOrder = {field: LOGIN, direction: ASC} + ): EnterpriseMemberConnection! + + """ + The setting value for whether team discussions are enabled for organizations in this enterprise. + """ + teamDiscussionsSetting: EnterpriseEnabledDisabledSettingValue! + + """ + A list of enterprise organizations configured with the provided team discussions setting value. + """ + teamDiscussionsSettingOrganizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for organizations with this setting. + """ + orderBy: OrganizationOrder = {field: LOGIN, direction: ASC} + + """ + The setting value to find organizations for. + """ + value: Boolean! + ): OrganizationConnection! + + """ + The setting value for whether the enterprise requires two-factor authentication for its organizations and users. + """ + twoFactorRequiredSetting: EnterpriseEnabledSettingValue! + + """ + A list of enterprise organizations configured with the two-factor authentication setting value. + """ + twoFactorRequiredSettingOrganizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for organizations with this setting. + """ + orderBy: OrganizationOrder = {field: LOGIN, direction: ASC} + + """ + The setting value to find organizations for. + """ + value: Boolean! + ): OrganizationConnection! +} + +""" +The connection type for OrganizationInvitation. +""" +type EnterprisePendingMemberInvitationConnection { + """ + A list of edges. + """ + edges: [EnterprisePendingMemberInvitationEdge] + + """ + A list of nodes. + """ + nodes: [OrganizationInvitation] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! + + """ + Identifies the total count of unique users in the connection. + """ + totalUniqueUserCount: Int! +} + +""" +An invitation to be a member in an enterprise organization. +""" +type EnterprisePendingMemberInvitationEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: OrganizationInvitation +} + +""" +A subset of repository information queryable from an enterprise. +""" +type EnterpriseRepositoryInfo implements Node { + id: ID! + + """ + Identifies if the repository is private or internal. + """ + isPrivate: Boolean! + + """ + The repository's name. + """ + name: String! + + """ + The repository's name with owner. + """ + nameWithOwner: String! +} + +""" +The connection type for EnterpriseRepositoryInfo. +""" +type EnterpriseRepositoryInfoConnection { + """ + A list of edges. + """ + edges: [EnterpriseRepositoryInfoEdge] + + """ + A list of nodes. + """ + nodes: [EnterpriseRepositoryInfo] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type EnterpriseRepositoryInfoEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: EnterpriseRepositoryInfo +} + +""" +An Enterprise Server installation. +""" +type EnterpriseServerInstallation implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The customer name to which the Enterprise Server installation belongs. + """ + customerName: String! + + """ + The host name of the Enterprise Server installation. + """ + hostName: String! + id: ID! + + """ + Whether or not the installation is connected to an Enterprise Server installation via GitHub Connect. + """ + isConnected: Boolean! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + User accounts on this Enterprise Server installation. + """ + userAccounts( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for Enterprise Server user accounts returned from the connection. + """ + orderBy: EnterpriseServerUserAccountOrder = {field: LOGIN, direction: ASC} + ): EnterpriseServerUserAccountConnection! + + """ + User accounts uploads for the Enterprise Server installation. + """ + userAccountsUploads( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for Enterprise Server user accounts uploads returned from the connection. + """ + orderBy: EnterpriseServerUserAccountsUploadOrder = {field: CREATED_AT, direction: DESC} + ): EnterpriseServerUserAccountsUploadConnection! +} + +""" +The connection type for EnterpriseServerInstallation. +""" +type EnterpriseServerInstallationConnection { + """ + A list of edges. + """ + edges: [EnterpriseServerInstallationEdge] + + """ + A list of nodes. + """ + nodes: [EnterpriseServerInstallation] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type EnterpriseServerInstallationEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: EnterpriseServerInstallation +} + +""" +The connection type for EnterpriseServerInstallation. +""" +type EnterpriseServerInstallationMembershipConnection { + """ + A list of edges. + """ + edges: [EnterpriseServerInstallationMembershipEdge] + + """ + A list of nodes. + """ + nodes: [EnterpriseServerInstallation] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An Enterprise Server installation that a user is a member of. +""" +type EnterpriseServerInstallationMembershipEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: EnterpriseServerInstallation + + """ + The role of the user in the enterprise membership. + """ + role: EnterpriseUserAccountMembershipRole! +} + +""" +Ordering options for Enterprise Server installation connections. +""" +input EnterpriseServerInstallationOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order Enterprise Server installations by. + """ + field: EnterpriseServerInstallationOrderField! +} + +""" +Properties by which Enterprise Server installation connections can be ordered. +""" +enum EnterpriseServerInstallationOrderField { + """ + Order Enterprise Server installations by creation time + """ + CREATED_AT + + """ + Order Enterprise Server installations by customer name + """ + CUSTOMER_NAME + + """ + Order Enterprise Server installations by host name + """ + HOST_NAME +} + +""" +A user account on an Enterprise Server installation. +""" +type EnterpriseServerUserAccount implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + User emails belonging to this user account. + """ + emails( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for Enterprise Server user account emails returned from the connection. + """ + orderBy: EnterpriseServerUserAccountEmailOrder = {field: EMAIL, direction: ASC} + ): EnterpriseServerUserAccountEmailConnection! + + """ + The Enterprise Server installation on which this user account exists. + """ + enterpriseServerInstallation: EnterpriseServerInstallation! + id: ID! + + """ + Whether the user account is a site administrator on the Enterprise Server installation. + """ + isSiteAdmin: Boolean! + + """ + The login of the user account on the Enterprise Server installation. + """ + login: String! + + """ + The profile name of the user account on the Enterprise Server installation. + """ + profileName: String + + """ + The date and time when the user account was created on the Enterprise Server installation. + """ + remoteCreatedAt: DateTime! + + """ + The ID of the user account on the Enterprise Server installation. + """ + remoteUserId: Int! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The connection type for EnterpriseServerUserAccount. +""" +type EnterpriseServerUserAccountConnection { + """ + A list of edges. + """ + edges: [EnterpriseServerUserAccountEdge] + + """ + A list of nodes. + """ + nodes: [EnterpriseServerUserAccount] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type EnterpriseServerUserAccountEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: EnterpriseServerUserAccount +} + +""" +An email belonging to a user account on an Enterprise Server installation. +""" +type EnterpriseServerUserAccountEmail implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The email address. + """ + email: String! + id: ID! + + """ + Indicates whether this is the primary email of the associated user account. + """ + isPrimary: Boolean! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The user account to which the email belongs. + """ + userAccount: EnterpriseServerUserAccount! +} + +""" +The connection type for EnterpriseServerUserAccountEmail. +""" +type EnterpriseServerUserAccountEmailConnection { + """ + A list of edges. + """ + edges: [EnterpriseServerUserAccountEmailEdge] + + """ + A list of nodes. + """ + nodes: [EnterpriseServerUserAccountEmail] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type EnterpriseServerUserAccountEmailEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: EnterpriseServerUserAccountEmail +} + +""" +Ordering options for Enterprise Server user account email connections. +""" +input EnterpriseServerUserAccountEmailOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order emails by. + """ + field: EnterpriseServerUserAccountEmailOrderField! +} + +""" +Properties by which Enterprise Server user account email connections can be ordered. +""" +enum EnterpriseServerUserAccountEmailOrderField { + """ + Order emails by email + """ + EMAIL +} + +""" +Ordering options for Enterprise Server user account connections. +""" +input EnterpriseServerUserAccountOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order user accounts by. + """ + field: EnterpriseServerUserAccountOrderField! +} + +""" +Properties by which Enterprise Server user account connections can be ordered. +""" +enum EnterpriseServerUserAccountOrderField { + """ + Order user accounts by login + """ + LOGIN + + """ + Order user accounts by creation time on the Enterprise Server installation + """ + REMOTE_CREATED_AT +} + +""" +A user accounts upload from an Enterprise Server installation. +""" +type EnterpriseServerUserAccountsUpload implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The enterprise to which this upload belongs. + """ + enterprise: Enterprise! + + """ + The Enterprise Server installation for which this upload was generated. + """ + enterpriseServerInstallation: EnterpriseServerInstallation! + id: ID! + + """ + The name of the file uploaded. + """ + name: String! + + """ + The synchronization state of the upload + """ + syncState: EnterpriseServerUserAccountsUploadSyncState! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The connection type for EnterpriseServerUserAccountsUpload. +""" +type EnterpriseServerUserAccountsUploadConnection { + """ + A list of edges. + """ + edges: [EnterpriseServerUserAccountsUploadEdge] + + """ + A list of nodes. + """ + nodes: [EnterpriseServerUserAccountsUpload] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type EnterpriseServerUserAccountsUploadEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: EnterpriseServerUserAccountsUpload +} + +""" +Ordering options for Enterprise Server user accounts upload connections. +""" +input EnterpriseServerUserAccountsUploadOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order user accounts uploads by. + """ + field: EnterpriseServerUserAccountsUploadOrderField! +} + +""" +Properties by which Enterprise Server user accounts upload connections can be ordered. +""" +enum EnterpriseServerUserAccountsUploadOrderField { + """ + Order user accounts uploads by creation time + """ + CREATED_AT +} + +""" +Synchronization state of the Enterprise Server user accounts upload +""" +enum EnterpriseServerUserAccountsUploadSyncState { + """ + The synchronization of the upload failed. + """ + FAILURE + + """ + The synchronization of the upload is pending. + """ + PENDING + + """ + The synchronization of the upload succeeded. + """ + SUCCESS +} + +""" +An account for a user who is an admin of an enterprise or a member of an enterprise through one or more organizations. +""" +type EnterpriseUserAccount implements Actor & Node { + """ + A URL pointing to the enterprise user account's public avatar. + """ + avatarUrl( + """ + The size of the resulting square image. + """ + size: Int + ): URI! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The enterprise in which this user account exists. + """ + enterprise: Enterprise! + + """ + A list of Enterprise Server installations this user is a member of. + """ + enterpriseInstallations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for installations returned from the connection. + """ + orderBy: EnterpriseServerInstallationOrder = {field: HOST_NAME, direction: ASC} + + """ + The search string to look for. + """ + query: String + + """ + The role of the user in the installation. + """ + role: EnterpriseUserAccountMembershipRole + ): EnterpriseServerInstallationMembershipConnection! + id: ID! + + """ + An identifier for the enterprise user account, a login or email address + """ + login: String! + + """ + The name of the enterprise user account + """ + name: String + + """ + A list of enterprise organizations this user is a member of. + """ + organizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for organizations returned from the connection. + """ + orderBy: OrganizationOrder = {field: LOGIN, direction: ASC} + + """ + The search string to look for. + """ + query: String + + """ + The role of the user in the enterprise organization. + """ + role: EnterpriseUserAccountMembershipRole + ): EnterpriseOrganizationMembershipConnection! + + """ + The HTTP path for this user. + """ + resourcePath: URI! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this user. + """ + url: URI! + + """ + The user within the enterprise. + """ + user: User +} + +""" +The possible roles for enterprise membership. +""" +enum EnterpriseUserAccountMembershipRole { + """ + The user is a member of an organization in the enterprise. + """ + MEMBER + + """ + The user is an owner of an organization in the enterprise. + """ + OWNER + + """ + The user is not an owner of the enterprise, and not a member or owner of any + organizations in the enterprise; only for EMU-enabled enterprises. + """ + UNAFFILIATED +} + +""" +The possible GitHub Enterprise deployments where this user can exist. +""" +enum EnterpriseUserDeployment { + """ + The user is part of a GitHub Enterprise Cloud deployment. + """ + CLOUD + + """ + The user is part of a GitHub Enterprise Server deployment. + """ + SERVER +} + +""" +An environment. +""" +type Environment implements Node { + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + The name of the environment + """ + name: String! + + """ + The protection rules defined for this environment + """ + protectionRules( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): DeploymentProtectionRuleConnection! +} + +""" +The connection type for Environment. +""" +type EnvironmentConnection { + """ + A list of edges. + """ + edges: [EnvironmentEdge] + + """ + A list of nodes. + """ + nodes: [Environment] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type EnvironmentEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Environment +} + +""" +Properties by which environments connections can be ordered +""" +enum EnvironmentOrderField { + """ + Order environments by name. + """ + NAME +} + +""" +Ordering options for environments +""" +input Environments { + """ + The direction in which to order environments by the specified field. + """ + direction: OrderDirection! + + """ + The field to order environments by. + """ + field: EnvironmentOrderField! +} + +""" +An external identity provisioned by SAML SSO or SCIM. If SAML is configured on +the organization, the external identity is visible to (1) organization owners, +(2) organization owners' personal access tokens (classic) with read:org or +admin:org scope, (3) GitHub App with an installation token with read or write +access to members. If SAML is configured on the enterprise, the external +identity is visible to (1) enterprise owners, (2) enterprise owners' personal +access tokens (classic) with read:enterprise or admin:enterprise scope. +""" +type ExternalIdentity implements Node { + """ + The GUID for this identity + """ + guid: String! + id: ID! + + """ + Organization invitation for this SCIM-provisioned external identity + """ + organizationInvitation: OrganizationInvitation + + """ + SAML Identity attributes + """ + samlIdentity: ExternalIdentitySamlAttributes + + """ + SCIM Identity attributes + """ + scimIdentity: ExternalIdentityScimAttributes + + """ + User linked to this external identity. Will be NULL if this identity has not been claimed by an organization member. + """ + user: User +} + +""" +An attribute for the External Identity attributes collection +""" +type ExternalIdentityAttribute { + """ + The attribute metadata as JSON + """ + metadata: String + + """ + The attribute name + """ + name: String! + + """ + The attribute value + """ + value: String! +} + +""" +The connection type for ExternalIdentity. +""" +type ExternalIdentityConnection { + """ + A list of edges. + """ + edges: [ExternalIdentityEdge] + + """ + A list of nodes. + """ + nodes: [ExternalIdentity] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ExternalIdentityEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ExternalIdentity +} + +""" +SAML attributes for the External Identity +""" +type ExternalIdentitySamlAttributes { + """ + SAML Identity attributes + """ + attributes: [ExternalIdentityAttribute!]! + + """ + The emails associated with the SAML identity + """ + emails: [UserEmailMetadata!] + + """ + Family name of the SAML identity + """ + familyName: String + + """ + Given name of the SAML identity + """ + givenName: String + + """ + The groups linked to this identity in IDP + """ + groups: [String!] + + """ + The NameID of the SAML identity + """ + nameId: String + + """ + The userName of the SAML identity + """ + username: String +} + +""" +SCIM attributes for the External Identity +""" +type ExternalIdentityScimAttributes { + """ + The emails associated with the SCIM identity + """ + emails: [UserEmailMetadata!] + + """ + Family name of the SCIM identity + """ + familyName: String + + """ + Given name of the SCIM identity + """ + givenName: String + + """ + The groups linked to this identity in IDP + """ + groups: [String!] + + """ + The userName of the SCIM identity + """ + username: String +} + +""" +A command to add a file at the given path with the given contents as part of a +commit. Any existing file at that that path will be replaced. +""" +input FileAddition { + """ + The base64 encoded contents of the file + """ + contents: Base64String! + + """ + The path in the repository where the file will be located + """ + path: String! +} + +""" +A description of a set of changes to a file tree to be made as part of +a git commit, modeled as zero or more file `additions` and zero or more +file `deletions`. + +Both fields are optional; omitting both will produce a commit with no +file changes. + +`deletions` and `additions` describe changes to files identified +by their path in the git tree using unix-style path separators, i.e. +`/`. The root of a git tree is an empty string, so paths are not +slash-prefixed. + +`path` values must be unique across all `additions` and `deletions` +provided. Any duplication will result in a validation error. + +### Encoding + +File contents must be provided in full for each `FileAddition`. + +The `contents` of a `FileAddition` must be encoded using RFC 4648 +compliant base64, i.e. correct padding is required and no characters +outside the standard alphabet may be used. Invalid base64 +encoding will be rejected with a validation error. + +The encoded contents may be binary. + +For text files, no assumptions are made about the character encoding of +the file contents (after base64 decoding). No charset transcoding or +line-ending normalization will be performed; it is the client's +responsibility to manage the character encoding of files they provide. +However, for maximum compatibility we recommend using UTF-8 encoding +and ensuring that all files in a repository use a consistent +line-ending convention (`\n` or `\r\n`), and that all files end +with a newline. + +### Modeling file changes + +Each of the the five types of conceptual changes that can be made in a +git commit can be described using the `FileChanges` type as follows: + +1. New file addition: create file `hello world\n` at path `docs/README.txt`: + + { + "additions" [ + { + "path": "docs/README.txt", + "contents": base64encode("hello world\n") + } + ] + } + +2. Existing file modification: change existing `docs/README.txt` to have new + content `new content here\n`: + + { + "additions" [ + { + "path": "docs/README.txt", + "contents": base64encode("new content here\n") + } + ] + } + +3. Existing file deletion: remove existing file `docs/README.txt`. + Note that the path is required to exist -- specifying a + path that does not exist on the given branch will abort the + commit and return an error. + + { + "deletions" [ + { + "path": "docs/README.txt" + } + ] + } + + +4. File rename with no changes: rename `docs/README.txt` with + previous content `hello world\n` to the same content at + `newdocs/README.txt`: + + { + "deletions" [ + { + "path": "docs/README.txt", + } + ], + "additions" [ + { + "path": "newdocs/README.txt", + "contents": base64encode("hello world\n") + } + ] + } + + +5. File rename with changes: rename `docs/README.txt` with + previous content `hello world\n` to a file at path + `newdocs/README.txt` with content `new contents\n`: + + { + "deletions" [ + { + "path": "docs/README.txt", + } + ], + "additions" [ + { + "path": "newdocs/README.txt", + "contents": base64encode("new contents\n") + } + ] + } +""" +input FileChanges { + """ + File to add or change. + """ + additions: [FileAddition!] = [] + + """ + Files to delete. + """ + deletions: [FileDeletion!] = [] +} + +""" +A command to delete the file at the given path as part of a commit. +""" +input FileDeletion { + """ + The path to delete + """ + path: String! +} + +""" +The possible viewed states of a file . +""" +enum FileViewedState { + """ + The file has new changes since last viewed. + """ + DISMISSED + + """ + The file has not been marked as viewed. + """ + UNVIEWED + + """ + The file has been marked as viewed. + """ + VIEWED +} + +""" +Autogenerated input type of FollowOrganization +""" +input FollowOrganizationInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the organization to follow. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +Autogenerated return type of FollowOrganization +""" +type FollowOrganizationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The organization that was followed. + """ + organization: Organization +} + +""" +Autogenerated input type of FollowUser +""" +input FollowUserInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the user to follow. + """ + userId: ID! @possibleTypes(concreteTypes: ["User"]) +} + +""" +Autogenerated return type of FollowUser +""" +type FollowUserPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The user that was followed. + """ + user: User +} + +""" +The connection type for User. +""" +type FollowerConnection { + """ + A list of edges. + """ + edges: [UserEdge] + + """ + A list of nodes. + """ + nodes: [User] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +The connection type for User. +""" +type FollowingConnection { + """ + A list of edges. + """ + edges: [UserEdge] + + """ + A list of nodes. + """ + nodes: [User] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +A funding platform link for a repository. +""" +type FundingLink { + """ + The funding platform this link is for. + """ + platform: FundingPlatform! + + """ + The configured URL for this funding link. + """ + url: URI! +} + +""" +The possible funding platforms for repository funding links. +""" +enum FundingPlatform { + """ + Community Bridge funding platform. + """ + COMMUNITY_BRIDGE + + """ + Custom funding platform. + """ + CUSTOM + + """ + GitHub funding platform. + """ + GITHUB + + """ + IssueHunt funding platform. + """ + ISSUEHUNT + + """ + Ko-fi funding platform. + """ + KO_FI + + """ + LFX Crowdfunding funding platform. + """ + LFX_CROWDFUNDING + + """ + Liberapay funding platform. + """ + LIBERAPAY + + """ + Open Collective funding platform. + """ + OPEN_COLLECTIVE + + """ + Otechie funding platform. + """ + OTECHIE + + """ + Patreon funding platform. + """ + PATREON + + """ + Tidelift funding platform. + """ + TIDELIFT +} + +""" +A generic hovercard context with a message and icon +""" +type GenericHovercardContext implements HovercardContext { + """ + A string describing this context + """ + message: String! + + """ + An octicon to accompany this context + """ + octicon: String! +} + +""" +A Gist. +""" +type Gist implements Node & Starrable & UniformResourceLocatable { + """ + A list of comments associated with the gist + """ + comments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): GistCommentConnection! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The gist description. + """ + description: String + + """ + The files in this gist. + """ + files( + """ + The maximum number of files to return. + """ + limit: Int = 10 + + """ + The oid of the files to return + """ + oid: GitObjectID + ): [GistFile] + + """ + A list of forks associated with the gist + """ + forks( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for gists returned from the connection + """ + orderBy: GistOrder + ): GistConnection! + id: ID! + + """ + Identifies if the gist is a fork. + """ + isFork: Boolean! + + """ + Whether the gist is public or not. + """ + isPublic: Boolean! + + """ + The gist name. + """ + name: String! + + """ + The gist owner. + """ + owner: RepositoryOwner + + """ + Identifies when the gist was last pushed to. + """ + pushedAt: DateTime + + """ + The HTML path to this resource. + """ + resourcePath: URI! + + """ + Returns a count of how many stargazers there are on this object + """ + stargazerCount: Int! + + """ + A list of users who have starred this starrable. + """ + stargazers( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Order for connection + """ + orderBy: StarOrder + ): StargazerConnection! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this Gist. + """ + url: URI! + + """ + Returns a boolean indicating whether the viewing user has starred this starrable. + """ + viewerHasStarred: Boolean! +} + +""" +Represents a comment on an Gist. +""" +type GistComment implements Comment & Deletable & Minimizable & Node & Updatable & UpdatableComment { + """ + The actor who authored the comment. + """ + author: Actor + + """ + Author's association with the gist. + """ + authorAssociation: CommentAuthorAssociation! + + """ + Identifies the comment body. + """ + body: String! + + """ + The body rendered to HTML. + """ + bodyHTML: HTML! + + """ + The body rendered to text. + """ + bodyText: String! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Check if this comment was created via an email reply. + """ + createdViaEmail: Boolean! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The actor who edited the comment. + """ + editor: Actor + + """ + The associated gist. + """ + gist: Gist! + id: ID! + + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + + """ + Returns whether or not a comment has been minimized. + """ + isMinimized: Boolean! + + """ + The moment the editor made the last edit + """ + lastEditedAt: DateTime + + """ + Returns why the comment was minimized. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + minimizedReason: String + + """ + Identifies when the comment was published at. + """ + publishedAt: DateTime + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + A list of edits to this content. + """ + userContentEdits( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserContentEditConnection + + """ + Check if the current viewer can delete this object. + """ + viewerCanDelete: Boolean! + + """ + Check if the current viewer can minimize this object. + """ + viewerCanMinimize: Boolean! + + """ + Check if the current viewer can update this object. + """ + viewerCanUpdate: Boolean! + + """ + Reasons why the current viewer can not update this comment. + """ + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + + """ + Did the viewer author this comment. + """ + viewerDidAuthor: Boolean! +} + +""" +The connection type for GistComment. +""" +type GistCommentConnection { + """ + A list of edges. + """ + edges: [GistCommentEdge] + + """ + A list of nodes. + """ + nodes: [GistComment] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type GistCommentEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: GistComment +} + +""" +The connection type for Gist. +""" +type GistConnection { + """ + A list of edges. + """ + edges: [GistEdge] + + """ + A list of nodes. + """ + nodes: [Gist] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type GistEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Gist +} + +""" +A file in a gist. +""" +type GistFile { + """ + The file name encoded to remove characters that are invalid in URL paths. + """ + encodedName: String + + """ + The gist file encoding. + """ + encoding: String + + """ + The file extension from the file name. + """ + extension: String + + """ + Indicates if this file is an image. + """ + isImage: Boolean! + + """ + Whether the file's contents were truncated. + """ + isTruncated: Boolean! + + """ + The programming language this file is written in. + """ + language: Language + + """ + The gist file name. + """ + name: String + + """ + The gist file size in bytes. + """ + size: Int + + """ + UTF8 text data or null if the file is binary + """ + text( + """ + Optionally truncate the returned file to this length. + """ + truncate: Int + ): String +} + +""" +Ordering options for gist connections +""" +input GistOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order repositories by. + """ + field: GistOrderField! +} + +""" +Properties by which gist connections can be ordered. +""" +enum GistOrderField { + """ + Order gists by creation time + """ + CREATED_AT + + """ + Order gists by push time + """ + PUSHED_AT + + """ + Order gists by update time + """ + UPDATED_AT +} + +""" +The privacy of a Gist +""" +enum GistPrivacy { + """ + Gists that are public and secret + """ + ALL + + """ + Public + """ + PUBLIC + + """ + Secret + """ + SECRET +} + +""" +Represents an actor in a Git commit (ie. an author or committer). +""" +type GitActor { + """ + A URL pointing to the author's public avatar. + """ + avatarUrl( + """ + The size of the resulting square image. + """ + size: Int + ): URI! + + """ + The timestamp of the Git action (authoring or committing). + """ + date: GitTimestamp + + """ + The email in the Git commit. + """ + email: String + + """ + The name in the Git commit. + """ + name: String + + """ + The GitHub user corresponding to the email field. Null if no such user exists. + """ + user: User +} + +""" +The connection type for GitActor. +""" +type GitActorConnection { + """ + A list of edges. + """ + edges: [GitActorEdge] + + """ + A list of nodes. + """ + nodes: [GitActor] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type GitActorEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: GitActor +} + +""" +Represents information about the GitHub instance. +""" +type GitHubMetadata { + """ + Returns a String that's a SHA of `github-services` + """ + gitHubServicesSha: GitObjectID! + + """ + IP addresses that users connect to for git operations + """ + gitIpAddresses: [String!] + + """ + IP addresses that GitHub Enterprise Importer uses for outbound connections + """ + githubEnterpriseImporterIpAddresses: [String!] + + """ + IP addresses that service hooks are sent from + """ + hookIpAddresses: [String!] + + """ + IP addresses that the importer connects from + """ + importerIpAddresses: [String!] + + """ + Whether or not users are verified + """ + isPasswordAuthenticationVerifiable: Boolean! + + """ + IP addresses for GitHub Pages' A records + """ + pagesIpAddresses: [String!] +} + +""" +Represents a Git object. +""" +interface GitObject { + """ + An abbreviated version of the Git object ID + """ + abbreviatedOid: String! + + """ + The HTTP path for this Git object + """ + commitResourcePath: URI! + + """ + The HTTP URL for this Git object + """ + commitUrl: URI! + id: ID! + + """ + The Git object ID + """ + oid: GitObjectID! + + """ + The Repository the Git object belongs to + """ + repository: Repository! +} + +""" +A Git object ID. +""" +scalar GitObjectID + +""" +A fully qualified reference name (e.g. `refs/heads/master`). +""" +scalar GitRefname @preview(toggledBy: "update-refs-preview") + +""" +Git SSH string +""" +scalar GitSSHRemote + +""" +Information about a signature (GPG or S/MIME) on a Commit or Tag. +""" +interface GitSignature { + """ + Email used to sign this object. + """ + email: String! + + """ + True if the signature is valid and verified by GitHub. + """ + isValid: Boolean! + + """ + Payload for GPG signing object. Raw ODB object without the signature header. + """ + payload: String! + + """ + ASCII-armored signature header from object. + """ + signature: String! + + """ + GitHub user corresponding to the email signing this commit. + """ + signer: User + + """ + The state of this signature. `VALID` if signature is valid and verified by + GitHub, otherwise represents reason why signature is considered invalid. + """ + state: GitSignatureState! + + """ + True if the signature was made with GitHub's signing key. + """ + wasSignedByGitHub: Boolean! +} + +""" +The state of a Git signature. +""" +enum GitSignatureState { + """ + The signing certificate or its chain could not be verified + """ + BAD_CERT + + """ + Invalid email used for signing + """ + BAD_EMAIL + + """ + Signing key expired + """ + EXPIRED_KEY + + """ + Internal error - the GPG verification service misbehaved + """ + GPGVERIFY_ERROR + + """ + Internal error - the GPG verification service is unavailable at the moment + """ + GPGVERIFY_UNAVAILABLE + + """ + Invalid signature + """ + INVALID + + """ + Malformed signature + """ + MALFORMED_SIG + + """ + The usage flags for the key that signed this don't allow signing + """ + NOT_SIGNING_KEY + + """ + Email used for signing not known to GitHub + """ + NO_USER + + """ + Valid signature, though certificate revocation check failed + """ + OCSP_ERROR + + """ + Valid signature, pending certificate revocation checking + """ + OCSP_PENDING + + """ + One or more certificates in chain has been revoked + """ + OCSP_REVOKED + + """ + Key used for signing not known to GitHub + """ + UNKNOWN_KEY + + """ + Unknown signature type + """ + UNKNOWN_SIG_TYPE + + """ + Unsigned + """ + UNSIGNED + + """ + Email used for signing unverified on GitHub + """ + UNVERIFIED_EMAIL + + """ + Valid signature and verified by GitHub + """ + VALID +} + +""" +An ISO-8601 encoded date string. Unlike the DateTime type, GitTimestamp is not converted in UTC. +""" +scalar GitTimestamp + +""" +Represents a GPG signature on a Commit or Tag. +""" +type GpgSignature implements GitSignature { + """ + Email used to sign this object. + """ + email: String! + + """ + True if the signature is valid and verified by GitHub. + """ + isValid: Boolean! + + """ + Hex-encoded ID of the key that signed this object. + """ + keyId: String + + """ + Payload for GPG signing object. Raw ODB object without the signature header. + """ + payload: String! + + """ + ASCII-armored signature header from object. + """ + signature: String! + + """ + GitHub user corresponding to the email signing this commit. + """ + signer: User + + """ + The state of this signature. `VALID` if signature is valid and verified by + GitHub, otherwise represents reason why signature is considered invalid. + """ + state: GitSignatureState! + + """ + True if the signature was made with GitHub's signing key. + """ + wasSignedByGitHub: Boolean! +} + +""" +Autogenerated input type of GrantEnterpriseOrganizationsMigratorRole +""" +input GrantEnterpriseOrganizationsMigratorRoleInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise to which all organizations managed by it will be granted the migrator role. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The login of the user to grant the migrator role + """ + login: String! +} + +""" +Autogenerated return type of GrantEnterpriseOrganizationsMigratorRole +""" +type GrantEnterpriseOrganizationsMigratorRolePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The organizations that had the migrator role applied to for the given user. + """ + organizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): OrganizationConnection +} + +""" +Autogenerated input type of GrantMigratorRole +""" +input GrantMigratorRoleInput { + """ + The user login or Team slug to grant the migrator role. + """ + actor: String! + + """ + Specifies the type of the actor, can be either USER or TEAM. + """ + actorType: ActorType! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the organization that the user/team belongs to. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +Autogenerated return type of GrantMigratorRole +""" +type GrantMigratorRolePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Did the operation succeed? + """ + success: Boolean +} + +""" +A string containing HTML code. +""" +scalar HTML + +""" +Represents a 'head_ref_deleted' event on a given pull request. +""" +type HeadRefDeletedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the Ref associated with the `head_ref_deleted` event. + """ + headRef: Ref + + """ + Identifies the name of the Ref associated with the `head_ref_deleted` event. + """ + headRefName: String! + id: ID! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest! +} + +""" +Represents a 'head_ref_force_pushed' event on a given pull request. +""" +type HeadRefForcePushedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the after commit SHA for the 'head_ref_force_pushed' event. + """ + afterCommit: Commit + + """ + Identifies the before commit SHA for the 'head_ref_force_pushed' event. + """ + beforeCommit: Commit + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest! + + """ + Identifies the fully qualified ref name for the 'head_ref_force_pushed' event. + """ + ref: Ref +} + +""" +Represents a 'head_ref_restored' event on a given pull request. +""" +type HeadRefRestoredEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest! +} + +""" +Detail needed to display a hovercard for a user +""" +type Hovercard { + """ + Each of the contexts for this hovercard + """ + contexts: [HovercardContext!]! +} + +""" +An individual line of a hovercard +""" +interface HovercardContext { + """ + A string describing this context + """ + message: String! + + """ + An octicon to accompany this context + """ + octicon: String! +} + +""" +The possible states in which authentication can be configured with an identity provider. +""" +enum IdentityProviderConfigurationState { + """ + Authentication with an identity provider is configured but not enforced. + """ + CONFIGURED + + """ + Authentication with an identity provider is configured and enforced. + """ + ENFORCED + + """ + Authentication with an identity provider is not configured. + """ + UNCONFIGURED +} + +""" +Autogenerated input type of ImportProject +""" +input ImportProjectInput { + """ + The description of Project. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A list of columns containing issues and pull requests. + """ + columnImports: [ProjectColumnImport!]! + + """ + The name of Project. + """ + name: String! + + """ + The name of the Organization or User to create the Project under. + """ + ownerName: String! + + """ + Whether the Project is public or not. + """ + public: Boolean = false +} + +""" +Autogenerated return type of ImportProject +""" +type ImportProjectPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new Project! + """ + project: Project +} + +""" +Autogenerated input type of InviteEnterpriseAdmin +""" +input InviteEnterpriseAdminInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The email of the person to invite as an administrator. + """ + email: String + + """ + The ID of the enterprise to which you want to invite an administrator. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The login of a user to invite as an administrator. + """ + invitee: String + + """ + The role of the administrator. + """ + role: EnterpriseAdministratorRole +} + +""" +Autogenerated return type of InviteEnterpriseAdmin +""" +type InviteEnterpriseAdminPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The created enterprise administrator invitation. + """ + invitation: EnterpriseAdministratorInvitation +} + +""" +The possible values for the IP allow list enabled setting. +""" +enum IpAllowListEnabledSettingValue { + """ + The setting is disabled for the owner. + """ + DISABLED + + """ + The setting is enabled for the owner. + """ + ENABLED +} + +""" +An IP address or range of addresses that is allowed to access an owner's resources. +""" +type IpAllowListEntry implements Node { + """ + A single IP address or range of IP addresses in CIDR notation. + """ + allowListValue: String! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Whether the entry is currently active. + """ + isActive: Boolean! + + """ + The name of the IP allow list entry. + """ + name: String + + """ + The owner of the IP allow list entry. + """ + owner: IpAllowListOwner! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The connection type for IpAllowListEntry. +""" +type IpAllowListEntryConnection { + """ + A list of edges. + """ + edges: [IpAllowListEntryEdge] + + """ + A list of nodes. + """ + nodes: [IpAllowListEntry] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type IpAllowListEntryEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: IpAllowListEntry +} + +""" +Ordering options for IP allow list entry connections. +""" +input IpAllowListEntryOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order IP allow list entries by. + """ + field: IpAllowListEntryOrderField! +} + +""" +Properties by which IP allow list entry connections can be ordered. +""" +enum IpAllowListEntryOrderField { + """ + Order IP allow list entries by the allow list value. + """ + ALLOW_LIST_VALUE + + """ + Order IP allow list entries by creation time. + """ + CREATED_AT +} + +""" +The possible values for the IP allow list configuration for installed GitHub Apps setting. +""" +enum IpAllowListForInstalledAppsEnabledSettingValue { + """ + The setting is disabled for the owner. + """ + DISABLED + + """ + The setting is enabled for the owner. + """ + ENABLED +} + +""" +Types that can own an IP allow list. +""" +union IpAllowListOwner = App | Enterprise | Organization + +""" +An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. +""" +type Issue implements Assignable & Closable & Comment & Deletable & Labelable & Lockable & Node & ProjectV2Owner & Reactable & RepositoryNode & Subscribable & SubscribableThread & UniformResourceLocatable & Updatable & UpdatableComment { + """ + Reason that the conversation was locked. + """ + activeLockReason: LockReason + + """ + A list of Users assigned to this object. + """ + assignees( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserConnection! + + """ + The actor who authored the comment. + """ + author: Actor + + """ + Author's association with the subject of the comment. + """ + authorAssociation: CommentAuthorAssociation! + + """ + Identifies the body of the issue. + """ + body: String! + + """ + The body rendered to HTML. + """ + bodyHTML: HTML! + + """ + The http path for this issue body + """ + bodyResourcePath: URI! + + """ + Identifies the body of the issue rendered to text. + """ + bodyText: String! + + """ + The http URL for this issue body + """ + bodyUrl: URI! + + """ + Indicates if the object is closed (definition of closed may depend on type) + """ + closed: Boolean! + + """ + Identifies the date and time when the object was closed. + """ + closedAt: DateTime + + """ + A list of comments associated with the Issue. + """ + comments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for issue comments returned from the connection. + """ + orderBy: IssueCommentOrder + ): IssueCommentConnection! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Check if this comment was created via an email reply. + """ + createdViaEmail: Boolean! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The actor who edited the comment. + """ + editor: Actor + + """ + Identifies the primary key from the database as a BigInt. + """ + fullDatabaseId: BigInt + + """ + The hovercard information for this issue + """ + hovercard( + """ + Whether or not to include notification contexts + """ + includeNotificationContexts: Boolean = true + ): Hovercard! + id: ID! + + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + + """ + Indicates whether or not this issue is currently pinned to the repository issues list + """ + isPinned: Boolean + + """ + Is this issue read by the viewer + """ + isReadByViewer: Boolean + + """ + A list of labels associated with the object. + """ + labels( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for labels returned from the connection. + """ + orderBy: LabelOrder = {field: CREATED_AT, direction: ASC} + ): LabelConnection + + """ + The moment the editor made the last edit + """ + lastEditedAt: DateTime + + """ + Branches linked to this issue. + """ + linkedBranches( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): LinkedBranchConnection! + + """ + `true` if the object is locked + """ + locked: Boolean! + + """ + Identifies the milestone associated with the issue. + """ + milestone: Milestone + + """ + Identifies the issue number. + """ + number: Int! + + """ + A list of Users that are participating in the Issue conversation. + """ + participants( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserConnection! + + """ + List of project cards associated with this issue. + """ + projectCards( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + A list of archived states to filter the cards by + """ + archivedStates: [ProjectCardArchivedState] = [ARCHIVED, NOT_ARCHIVED] + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectCardConnection! + + """ + List of project items associated with this issue. + """ + projectItems( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Include archived items. + """ + includeArchived: Boolean = true + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectV2ItemConnection! + + """ + Find a project by number. + """ + projectV2( + """ + The project number. + """ + number: Int! + ): ProjectV2 + + """ + A list of projects under the owner. + """ + projectsV2( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + How to order the returned projects. + """ + orderBy: ProjectV2Order = {field: NUMBER, direction: DESC} + + """ + A project to search for under the the owner. + """ + query: String + ): ProjectV2Connection! + + """ + Identifies when the comment was published at. + """ + publishedAt: DateTime + + """ + A list of reactions grouped by content left on the subject. + """ + reactionGroups: [ReactionGroup!] + + """ + A list of Reactions left on the Issue. + """ + reactions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Allows filtering Reactions by emoji. + """ + content: ReactionContent + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Allows specifying the order in which reactions are returned. + """ + orderBy: ReactionOrder + ): ReactionConnection! + + """ + The repository associated with this node. + """ + repository: Repository! + + """ + The HTTP path for this issue + """ + resourcePath: URI! + + """ + Identifies the state of the issue. + """ + state: IssueState! + + """ + Identifies the reason for the issue state. + """ + stateReason: IssueStateReason + + """ + A list of events, comments, commits, etc. associated with the issue. + """ + timeline( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Allows filtering timeline events by a `since` timestamp. + """ + since: DateTime + ): IssueTimelineConnection! + @deprecated(reason: "`timeline` will be removed Use Issue.timelineItems instead. Removal on 2020-10-01 UTC.") + + """ + A list of events, comments, commits, etc. associated with the issue. + """ + timelineItems( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Filter timeline items by type. + """ + itemTypes: [IssueTimelineItemsItemType!] + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter timeline items by a `since` timestamp. + """ + since: DateTime + + """ + Skips the first _n_ elements in the list. + """ + skip: Int + ): IssueTimelineItemsConnection! + + """ + Identifies the issue title. + """ + title: String! + + """ + Identifies the issue title rendered to HTML. + """ + titleHTML: String! + + """ + A list of issues that track this issue + """ + trackedInIssues( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): IssueConnection! + + """ + A list of issues tracked inside the current issue + """ + trackedIssues( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): IssueConnection! + + """ + The number of tracked issues for this issue + """ + trackedIssuesCount( + """ + Limit the count to tracked issues with the specified states. + """ + states: [TrackedIssueStates] + ): Int! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this issue + """ + url: URI! + + """ + A list of edits to this content. + """ + userContentEdits( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserContentEditConnection + + """ + Indicates if the object can be closed by the viewer. + """ + viewerCanClose: Boolean! + + """ + Check if the current viewer can delete this object. + """ + viewerCanDelete: Boolean! + + """ + Can user react to this subject + """ + viewerCanReact: Boolean! + + """ + Indicates if the object can be reopened by the viewer. + """ + viewerCanReopen: Boolean! + + """ + Check if the viewer is able to change their subscription status for the repository. + """ + viewerCanSubscribe: Boolean! + + """ + Check if the current viewer can update this object. + """ + viewerCanUpdate: Boolean! + + """ + Reasons why the current viewer can not update this comment. + """ + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + + """ + Did the viewer author this comment. + """ + viewerDidAuthor: Boolean! + + """ + Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. + """ + viewerSubscription: SubscriptionState + + """ + Identifies the viewer's thread subscription form action. + """ + viewerThreadSubscriptionFormAction: ThreadSubscriptionFormAction + + """ + Identifies the viewer's thread subscription status. + """ + viewerThreadSubscriptionStatus: ThreadSubscriptionState +} + +""" +The possible state reasons of a closed issue. +""" +enum IssueClosedStateReason { + """ + An issue that has been closed as completed + """ + COMPLETED + + """ + An issue that has been closed as not planned + """ + NOT_PLANNED +} + +""" +Represents a comment on an Issue. +""" +type IssueComment implements Comment & Deletable & Minimizable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment { + """ + The actor who authored the comment. + """ + author: Actor + + """ + Author's association with the subject of the comment. + """ + authorAssociation: CommentAuthorAssociation! + + """ + The body as Markdown. + """ + body: String! + + """ + The body rendered to HTML. + """ + bodyHTML: HTML! + + """ + The body rendered to text. + """ + bodyText: String! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Check if this comment was created via an email reply. + """ + createdViaEmail: Boolean! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The actor who edited the comment. + """ + editor: Actor + + """ + Identifies the primary key from the database as a BigInt. + """ + fullDatabaseId: BigInt + id: ID! + + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + + """ + Returns whether or not a comment has been minimized. + """ + isMinimized: Boolean! + + """ + Identifies the issue associated with the comment. + """ + issue: Issue! + + """ + The moment the editor made the last edit + """ + lastEditedAt: DateTime + + """ + Returns why the comment was minimized. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + minimizedReason: String + + """ + Identifies when the comment was published at. + """ + publishedAt: DateTime + + """ + Returns the pull request associated with the comment, if this comment was made on a + pull request. + """ + pullRequest: PullRequest + + """ + A list of reactions grouped by content left on the subject. + """ + reactionGroups: [ReactionGroup!] + + """ + A list of Reactions left on the Issue. + """ + reactions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Allows filtering Reactions by emoji. + """ + content: ReactionContent + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Allows specifying the order in which reactions are returned. + """ + orderBy: ReactionOrder + ): ReactionConnection! + + """ + The repository associated with this node. + """ + repository: Repository! + + """ + The HTTP path for this issue comment + """ + resourcePath: URI! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this issue comment + """ + url: URI! + + """ + A list of edits to this content. + """ + userContentEdits( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserContentEditConnection + + """ + Check if the current viewer can delete this object. + """ + viewerCanDelete: Boolean! + + """ + Check if the current viewer can minimize this object. + """ + viewerCanMinimize: Boolean! + + """ + Can user react to this subject + """ + viewerCanReact: Boolean! + + """ + Check if the current viewer can update this object. + """ + viewerCanUpdate: Boolean! + + """ + Reasons why the current viewer can not update this comment. + """ + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + + """ + Did the viewer author this comment. + """ + viewerDidAuthor: Boolean! +} + +""" +The connection type for IssueComment. +""" +type IssueCommentConnection { + """ + A list of edges. + """ + edges: [IssueCommentEdge] + + """ + A list of nodes. + """ + nodes: [IssueComment] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type IssueCommentEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: IssueComment +} + +""" +Ways in which lists of issue comments can be ordered upon return. +""" +input IssueCommentOrder { + """ + The direction in which to order issue comments by the specified field. + """ + direction: OrderDirection! + + """ + The field in which to order issue comments by. + """ + field: IssueCommentOrderField! +} + +""" +Properties by which issue comment connections can be ordered. +""" +enum IssueCommentOrderField { + """ + Order issue comments by update time + """ + UPDATED_AT +} + +""" +The connection type for Issue. +""" +type IssueConnection { + """ + A list of edges. + """ + edges: [IssueEdge] + + """ + A list of nodes. + """ + nodes: [Issue] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +This aggregates issues opened by a user within one repository. +""" +type IssueContributionsByRepository { + """ + The issue contributions. + """ + contributions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for contributions returned from the connection. + """ + orderBy: ContributionOrder = {direction: DESC} + ): CreatedIssueContributionConnection! + + """ + The repository in which the issues were opened. + """ + repository: Repository! +} + +""" +An edge in a connection. +""" +type IssueEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Issue +} + +""" +Ways in which to filter lists of issues. +""" +input IssueFilters { + """ + List issues assigned to given name. Pass in `null` for issues with no assigned + user, and `*` for issues assigned to any user. + """ + assignee: String + + """ + List issues created by given name. + """ + createdBy: String + + """ + List issues where the list of label names exist on the issue. + """ + labels: [String!] + + """ + List issues where the given name is mentioned in the issue. + """ + mentioned: String + + """ + List issues by given milestone argument. If an string representation of an + integer is passed, it should refer to a milestone by its database ID. Pass in + `null` for issues with no milestone, and `*` for issues that are assigned to any milestone. + """ + milestone: String + + """ + List issues by given milestone argument. If an string representation of an + integer is passed, it should refer to a milestone by its number field. Pass in + `null` for issues with no milestone, and `*` for issues that are assigned to any milestone. + """ + milestoneNumber: String + + """ + List issues that have been updated at or after the given date. + """ + since: DateTime + + """ + List issues filtered by the list of states given. + """ + states: [IssueState!] + + """ + List issues subscribed to by viewer. + """ + viewerSubscribed: Boolean = false +} + +""" +Used for return value of Repository.issueOrPullRequest. +""" +union IssueOrPullRequest = Issue | PullRequest + +""" +Ways in which lists of issues can be ordered upon return. +""" +input IssueOrder { + """ + The direction in which to order issues by the specified field. + """ + direction: OrderDirection! + + """ + The field in which to order issues by. + """ + field: IssueOrderField! +} + +""" +Properties by which issue connections can be ordered. +""" +enum IssueOrderField { + """ + Order issues by comment count + """ + COMMENTS + + """ + Order issues by creation time + """ + CREATED_AT + + """ + Order issues by update time + """ + UPDATED_AT +} + +""" +The possible states of an issue. +""" +enum IssueState { + """ + An issue that has been closed + """ + CLOSED + + """ + An issue that is still open + """ + OPEN +} + +""" +The possible state reasons of an issue. +""" +enum IssueStateReason { + """ + An issue that has been closed as completed + """ + COMPLETED + + """ + An issue that has been closed as not planned + """ + NOT_PLANNED + + """ + An issue that has been reopened + """ + REOPENED +} + +""" +A repository issue template. +""" +type IssueTemplate { + """ + The template purpose. + """ + about: String + + """ + The suggested assignees. + """ + assignees( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserConnection! + + """ + The suggested issue body. + """ + body: String + + """ + The template filename. + """ + filename: String! + + """ + The suggested issue labels + """ + labels( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for labels returned from the connection. + """ + orderBy: LabelOrder = {field: CREATED_AT, direction: ASC} + ): LabelConnection + + """ + The template name. + """ + name: String! + + """ + The suggested issue title. + """ + title: String +} + +""" +The connection type for IssueTimelineItem. +""" +type IssueTimelineConnection { + """ + A list of edges. + """ + edges: [IssueTimelineItemEdge] + + """ + A list of nodes. + """ + nodes: [IssueTimelineItem] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An item in an issue timeline +""" +union IssueTimelineItem = + AssignedEvent + | ClosedEvent + | Commit + | CrossReferencedEvent + | DemilestonedEvent + | IssueComment + | LabeledEvent + | LockedEvent + | MilestonedEvent + | ReferencedEvent + | RenamedTitleEvent + | ReopenedEvent + | SubscribedEvent + | TransferredEvent + | UnassignedEvent + | UnlabeledEvent + | UnlockedEvent + | UnsubscribedEvent + | UserBlockedEvent + +""" +An edge in a connection. +""" +type IssueTimelineItemEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: IssueTimelineItem +} + +""" +An item in an issue timeline +""" +union IssueTimelineItems = + AddedToProjectEvent + | AssignedEvent + | ClosedEvent + | CommentDeletedEvent + | ConnectedEvent + | ConvertedNoteToIssueEvent + | ConvertedToDiscussionEvent + | CrossReferencedEvent + | DemilestonedEvent + | DisconnectedEvent + | IssueComment + | LabeledEvent + | LockedEvent + | MarkedAsDuplicateEvent + | MentionedEvent + | MilestonedEvent + | MovedColumnsInProjectEvent + | PinnedEvent + | ReferencedEvent + | RemovedFromProjectEvent + | RenamedTitleEvent + | ReopenedEvent + | SubscribedEvent + | TransferredEvent + | UnassignedEvent + | UnlabeledEvent + | UnlockedEvent + | UnmarkedAsDuplicateEvent + | UnpinnedEvent + | UnsubscribedEvent + | UserBlockedEvent + +""" +The connection type for IssueTimelineItems. +""" +type IssueTimelineItemsConnection { + """ + A list of edges. + """ + edges: [IssueTimelineItemsEdge] + + """ + Identifies the count of items after applying `before` and `after` filters. + """ + filteredCount: Int! + + """ + A list of nodes. + """ + nodes: [IssueTimelineItems] + + """ + Identifies the count of items after applying `before`/`after` filters and `first`/`last`/`skip` slicing. + """ + pageCount: Int! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! + + """ + Identifies the date and time when the timeline was last updated. + """ + updatedAt: DateTime! +} + +""" +An edge in a connection. +""" +type IssueTimelineItemsEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: IssueTimelineItems +} + +""" +The possible item types found in a timeline. +""" +enum IssueTimelineItemsItemType { + """ + Represents a 'added_to_project' event on a given issue or pull request. + """ + ADDED_TO_PROJECT_EVENT + + """ + Represents an 'assigned' event on any assignable object. + """ + ASSIGNED_EVENT + + """ + Represents a 'closed' event on any `Closable`. + """ + CLOSED_EVENT + + """ + Represents a 'comment_deleted' event on a given issue or pull request. + """ + COMMENT_DELETED_EVENT + + """ + Represents a 'connected' event on a given issue or pull request. + """ + CONNECTED_EVENT + + """ + Represents a 'converted_note_to_issue' event on a given issue or pull request. + """ + CONVERTED_NOTE_TO_ISSUE_EVENT + + """ + Represents a 'converted_to_discussion' event on a given issue. + """ + CONVERTED_TO_DISCUSSION_EVENT + + """ + Represents a mention made by one issue or pull request to another. + """ + CROSS_REFERENCED_EVENT + + """ + Represents a 'demilestoned' event on a given issue or pull request. + """ + DEMILESTONED_EVENT + + """ + Represents a 'disconnected' event on a given issue or pull request. + """ + DISCONNECTED_EVENT + + """ + Represents a comment on an Issue. + """ + ISSUE_COMMENT + + """ + Represents a 'labeled' event on a given issue or pull request. + """ + LABELED_EVENT + + """ + Represents a 'locked' event on a given issue or pull request. + """ + LOCKED_EVENT + + """ + Represents a 'marked_as_duplicate' event on a given issue or pull request. + """ + MARKED_AS_DUPLICATE_EVENT + + """ + Represents a 'mentioned' event on a given issue or pull request. + """ + MENTIONED_EVENT + + """ + Represents a 'milestoned' event on a given issue or pull request. + """ + MILESTONED_EVENT + + """ + Represents a 'moved_columns_in_project' event on a given issue or pull request. + """ + MOVED_COLUMNS_IN_PROJECT_EVENT + + """ + Represents a 'pinned' event on a given issue or pull request. + """ + PINNED_EVENT + + """ + Represents a 'referenced' event on a given `ReferencedSubject`. + """ + REFERENCED_EVENT + + """ + Represents a 'removed_from_project' event on a given issue or pull request. + """ + REMOVED_FROM_PROJECT_EVENT + + """ + Represents a 'renamed' event on a given issue or pull request + """ + RENAMED_TITLE_EVENT + + """ + Represents a 'reopened' event on any `Closable`. + """ + REOPENED_EVENT + + """ + Represents a 'subscribed' event on a given `Subscribable`. + """ + SUBSCRIBED_EVENT + + """ + Represents a 'transferred' event on a given issue or pull request. + """ + TRANSFERRED_EVENT + + """ + Represents an 'unassigned' event on any assignable object. + """ + UNASSIGNED_EVENT + + """ + Represents an 'unlabeled' event on a given issue or pull request. + """ + UNLABELED_EVENT + + """ + Represents an 'unlocked' event on a given issue or pull request. + """ + UNLOCKED_EVENT + + """ + Represents an 'unmarked_as_duplicate' event on a given issue or pull request. + """ + UNMARKED_AS_DUPLICATE_EVENT + + """ + Represents an 'unpinned' event on a given issue or pull request. + """ + UNPINNED_EVENT + + """ + Represents an 'unsubscribed' event on a given `Subscribable`. + """ + UNSUBSCRIBED_EVENT + + """ + Represents a 'user_blocked' event on a given user. + """ + USER_BLOCKED_EVENT +} + +""" +Represents a user signing up for a GitHub account. +""" +type JoinedGitHubContribution implements Contribution { + """ + Whether this contribution is associated with a record you do not have access to. For + example, your own 'first issue' contribution may have been made on a repository you can no + longer access. + """ + isRestricted: Boolean! + + """ + When this contribution was made. + """ + occurredAt: DateTime! + + """ + The HTTP path for this contribution. + """ + resourcePath: URI! + + """ + The HTTP URL for this contribution. + """ + url: URI! + + """ + The user who made this contribution. + """ + user: User! +} + +""" +A label for categorizing Issues, Pull Requests, Milestones, or Discussions with a given Repository. +""" +type Label implements Node { + """ + Identifies the label color. + """ + color: String! + + """ + Identifies the date and time when the label was created. + """ + createdAt: DateTime + + """ + A brief description of this label. + """ + description: String + id: ID! + + """ + Indicates whether or not this is a default label. + """ + isDefault: Boolean! + + """ + A list of issues associated with this label. + """ + issues( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Filtering options for issues returned from the connection. + """ + filterBy: IssueFilters + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + A list of label names to filter the pull requests by. + """ + labels: [String!] + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for issues returned from the connection. + """ + orderBy: IssueOrder + + """ + A list of states to filter the issues by. + """ + states: [IssueState!] + ): IssueConnection! + + """ + Identifies the label name. + """ + name: String! + + """ + A list of pull requests associated with this label. + """ + pullRequests( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + The base ref name to filter the pull requests by. + """ + baseRefName: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + The head ref name to filter the pull requests by. + """ + headRefName: String + + """ + A list of label names to filter the pull requests by. + """ + labels: [String!] + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for pull requests returned from the connection. + """ + orderBy: IssueOrder + + """ + A list of states to filter the pull requests by. + """ + states: [PullRequestState!] + ): PullRequestConnection! + + """ + The repository associated with this label. + """ + repository: Repository! + + """ + The HTTP path for this label. + """ + resourcePath: URI! + + """ + Identifies the date and time when the label was last updated. + """ + updatedAt: DateTime + + """ + The HTTP URL for this label. + """ + url: URI! +} + +""" +The connection type for Label. +""" +type LabelConnection { + """ + A list of edges. + """ + edges: [LabelEdge] + + """ + A list of nodes. + """ + nodes: [Label] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type LabelEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Label +} + +""" +Ways in which lists of labels can be ordered upon return. +""" +input LabelOrder { + """ + The direction in which to order labels by the specified field. + """ + direction: OrderDirection! + + """ + The field in which to order labels by. + """ + field: LabelOrderField! +} + +""" +Properties by which label connections can be ordered. +""" +enum LabelOrderField { + """ + Order labels by creation time + """ + CREATED_AT + + """ + Order labels by name + """ + NAME +} + +""" +An object that can have labels assigned to it. +""" +interface Labelable { + """ + A list of labels associated with the object. + """ + labels( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for labels returned from the connection. + """ + orderBy: LabelOrder = {field: CREATED_AT, direction: ASC} + ): LabelConnection +} + +""" +Represents a 'labeled' event on a given issue or pull request. +""" +type LabeledEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Identifies the label associated with the 'labeled' event. + """ + label: Label! + + """ + Identifies the `Labelable` associated with the event. + """ + labelable: Labelable! +} + +""" +Represents a given language found in repositories. +""" +type Language implements Node { + """ + The color defined for the current language. + """ + color: String + id: ID! + + """ + The name of the current language. + """ + name: String! +} + +""" +A list of languages associated with the parent. +""" +type LanguageConnection { + """ + A list of edges. + """ + edges: [LanguageEdge] + + """ + A list of nodes. + """ + nodes: [Language] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! + + """ + The total size in bytes of files written in that language. + """ + totalSize: Int! +} + +""" +Represents the language of a repository. +""" +type LanguageEdge { + cursor: String! + node: Language! + + """ + The number of bytes of code written in the language. + """ + size: Int! +} + +""" +Ordering options for language connections. +""" +input LanguageOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order languages by. + """ + field: LanguageOrderField! +} + +""" +Properties by which language connections can be ordered. +""" +enum LanguageOrderField { + """ + Order languages by the size of all files containing the language + """ + SIZE +} + +""" +A repository's open source license +""" +type License implements Node { + """ + The full text of the license + """ + body: String! + + """ + The conditions set by the license + """ + conditions: [LicenseRule]! + + """ + A human-readable description of the license + """ + description: String + + """ + Whether the license should be featured + """ + featured: Boolean! + + """ + Whether the license should be displayed in license pickers + """ + hidden: Boolean! + id: ID! + + """ + Instructions on how to implement the license + """ + implementation: String + + """ + The lowercased SPDX ID of the license + """ + key: String! + + """ + The limitations set by the license + """ + limitations: [LicenseRule]! + + """ + The license full name specified by + """ + name: String! + + """ + Customary short name if applicable (e.g, GPLv3) + """ + nickname: String + + """ + The permissions set by the license + """ + permissions: [LicenseRule]! + + """ + Whether the license is a pseudo-license placeholder (e.g., other, no-license) + """ + pseudoLicense: Boolean! + + """ + Short identifier specified by + """ + spdxId: String + + """ + URL to the license on + """ + url: URI +} + +""" +Describes a License's conditions, permissions, and limitations +""" +type LicenseRule { + """ + A description of the rule + """ + description: String! + + """ + The machine-readable rule key + """ + key: String! + + """ + The human-readable rule label + """ + label: String! +} + +""" +Autogenerated input type of LinkProjectV2ToRepository +""" +input LinkProjectV2ToRepositoryInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the project to link to the repository. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + The ID of the repository to link to the project. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of LinkProjectV2ToRepository +""" +type LinkProjectV2ToRepositoryPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The repository the project is linked to. + """ + repository: Repository +} + +""" +Autogenerated input type of LinkProjectV2ToTeam +""" +input LinkProjectV2ToTeamInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the project to link to the team. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + The ID of the team to link to the project. + """ + teamId: ID! @possibleTypes(concreteTypes: ["Team"]) +} + +""" +Autogenerated return type of LinkProjectV2ToTeam +""" +type LinkProjectV2ToTeamPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The team the project is linked to + """ + team: Team +} + +""" +Autogenerated input type of LinkRepositoryToProject +""" +input LinkRepositoryToProjectInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the Project to link to a Repository + """ + projectId: ID! @possibleTypes(concreteTypes: ["Project"]) + + """ + The ID of the Repository to link to a Project. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of LinkRepositoryToProject +""" +type LinkRepositoryToProjectPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The linked Project. + """ + project: Project + + """ + The linked Repository. + """ + repository: Repository +} + +""" +A branch linked to an issue. +""" +type LinkedBranch implements Node { + id: ID! + + """ + The branch's ref. + """ + ref: Ref +} + +""" +The connection type for LinkedBranch. +""" +type LinkedBranchConnection { + """ + A list of edges. + """ + edges: [LinkedBranchEdge] + + """ + A list of nodes. + """ + nodes: [LinkedBranch] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type LinkedBranchEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: LinkedBranch +} + +""" +Autogenerated input type of LockLockable +""" +input LockLockableInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A reason for why the item will be locked. + """ + lockReason: LockReason + + """ + ID of the item to be locked. + """ + lockableId: ID! @possibleTypes(concreteTypes: ["Discussion", "Issue", "PullRequest"], abstractType: "Lockable") +} + +""" +Autogenerated return type of LockLockable +""" +type LockLockablePayload { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The item that was locked. + """ + lockedRecord: Lockable +} + +""" +The possible reasons that an issue or pull request was locked. +""" +enum LockReason { + """ + The issue or pull request was locked because the conversation was off-topic. + """ + OFF_TOPIC + + """ + The issue or pull request was locked because the conversation was resolved. + """ + RESOLVED + + """ + The issue or pull request was locked because the conversation was spam. + """ + SPAM + + """ + The issue or pull request was locked because the conversation was too heated. + """ + TOO_HEATED +} + +""" +An object that can be locked. +""" +interface Lockable { + """ + Reason that the conversation was locked. + """ + activeLockReason: LockReason + + """ + `true` if the object is locked + """ + locked: Boolean! +} + +""" +Represents a 'locked' event on a given issue or pull request. +""" +type LockedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Reason that the conversation was locked (optional). + """ + lockReason: LockReason + + """ + Object that was locked. + """ + lockable: Lockable! +} + +""" +A placeholder user for attribution of imported data on GitHub. +""" +type Mannequin implements Actor & Node & UniformResourceLocatable { + """ + A URL pointing to the GitHub App's public avatar. + """ + avatarUrl( + """ + The size of the resulting square image. + """ + size: Int + ): URI! + + """ + The user that has claimed the data attributed to this mannequin. + """ + claimant: User + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The mannequin's email on the source instance. + """ + email: String + id: ID! + + """ + The username of the actor. + """ + login: String! + + """ + The HTML path to this resource. + """ + resourcePath: URI! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The URL to this resource. + """ + url: URI! +} + +""" +The connection type for Mannequin. +""" +type MannequinConnection { + """ + A list of edges. + """ + edges: [MannequinEdge] + + """ + A list of nodes. + """ + nodes: [Mannequin] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Represents a mannequin. +""" +type MannequinEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Mannequin +} + +""" +Ordering options for mannequins. +""" +input MannequinOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order mannequins by. + """ + field: MannequinOrderField! +} + +""" +Properties by which mannequins can be ordered. +""" +enum MannequinOrderField { + """ + Order mannequins why when they were created. + """ + CREATED_AT + + """ + Order mannequins alphabetically by their source login. + """ + LOGIN +} + +""" +Autogenerated input type of MarkDiscussionCommentAsAnswer +""" +input MarkDiscussionCommentAsAnswerInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the discussion comment to mark as an answer. + """ + id: ID! @possibleTypes(concreteTypes: ["DiscussionComment"]) +} + +""" +Autogenerated return type of MarkDiscussionCommentAsAnswer +""" +type MarkDiscussionCommentAsAnswerPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The discussion that includes the chosen comment. + """ + discussion: Discussion +} + +""" +Autogenerated input type of MarkFileAsViewed +""" +input MarkFileAsViewedInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The path of the file to mark as viewed + """ + path: String! + + """ + The Node ID of the pull request. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +Autogenerated return type of MarkFileAsViewed +""" +type MarkFileAsViewedPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated pull request. + """ + pullRequest: PullRequest +} + +""" +Autogenerated input type of MarkProjectV2AsTemplate +""" +input MarkProjectV2AsTemplateInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the Project to mark as a template. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated return type of MarkProjectV2AsTemplate +""" +type MarkProjectV2AsTemplatePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The project. + """ + projectV2: ProjectV2 +} + +""" +Autogenerated input type of MarkPullRequestReadyForReview +""" +input MarkPullRequestReadyForReviewInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the pull request to be marked as ready for review. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +Autogenerated return type of MarkPullRequestReadyForReview +""" +type MarkPullRequestReadyForReviewPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The pull request that is ready for review. + """ + pullRequest: PullRequest +} + +""" +Represents a 'marked_as_duplicate' event on a given issue or pull request. +""" +type MarkedAsDuplicateEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + The authoritative issue or pull request which has been duplicated by another. + """ + canonical: IssueOrPullRequest + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The issue or pull request which has been marked as a duplicate of another. + """ + duplicate: IssueOrPullRequest + id: ID! + + """ + Canonical and duplicate belong to different repositories. + """ + isCrossRepository: Boolean! +} + +""" +A public description of a Marketplace category. +""" +type MarketplaceCategory implements Node { + """ + The category's description. + """ + description: String + + """ + The technical description of how apps listed in this category work with GitHub. + """ + howItWorks: String + id: ID! + + """ + The category's name. + """ + name: String! + + """ + How many Marketplace listings have this as their primary category. + """ + primaryListingCount: Int! + + """ + The HTTP path for this Marketplace category. + """ + resourcePath: URI! + + """ + How many Marketplace listings have this as their secondary category. + """ + secondaryListingCount: Int! + + """ + The short name of the category used in its URL. + """ + slug: String! + + """ + The HTTP URL for this Marketplace category. + """ + url: URI! +} + +""" +A listing in the GitHub integration marketplace. +""" +type MarketplaceListing implements Node { + """ + The GitHub App this listing represents. + """ + app: App + + """ + URL to the listing owner's company site. + """ + companyUrl: URI + + """ + The HTTP path for configuring access to the listing's integration or OAuth app + """ + configurationResourcePath: URI! + + """ + The HTTP URL for configuring access to the listing's integration or OAuth app + """ + configurationUrl: URI! + + """ + URL to the listing's documentation. + """ + documentationUrl: URI + + """ + The listing's detailed description. + """ + extendedDescription: String + + """ + The listing's detailed description rendered to HTML. + """ + extendedDescriptionHTML: HTML! + + """ + The listing's introductory description. + """ + fullDescription: String! + + """ + The listing's introductory description rendered to HTML. + """ + fullDescriptionHTML: HTML! + + """ + Does this listing have any plans with a free trial? + """ + hasPublishedFreeTrialPlans: Boolean! + + """ + Does this listing have a terms of service link? + """ + hasTermsOfService: Boolean! + + """ + Whether the creator of the app is a verified org + """ + hasVerifiedOwner: Boolean! + + """ + A technical description of how this app works with GitHub. + """ + howItWorks: String + + """ + The listing's technical description rendered to HTML. + """ + howItWorksHTML: HTML! + id: ID! + + """ + URL to install the product to the viewer's account or organization. + """ + installationUrl: URI + + """ + Whether this listing's app has been installed for the current viewer + """ + installedForViewer: Boolean! + + """ + Whether this listing has been removed from the Marketplace. + """ + isArchived: Boolean! + + """ + Whether this listing is still an editable draft that has not been submitted + for review and is not publicly visible in the Marketplace. + """ + isDraft: Boolean! + + """ + Whether the product this listing represents is available as part of a paid plan. + """ + isPaid: Boolean! + + """ + Whether this listing has been approved for display in the Marketplace. + """ + isPublic: Boolean! + + """ + Whether this listing has been rejected by GitHub for display in the Marketplace. + """ + isRejected: Boolean! + + """ + Whether this listing has been approved for unverified display in the Marketplace. + """ + isUnverified: Boolean! + + """ + Whether this draft listing has been submitted for review for approval to be unverified in the Marketplace. + """ + isUnverifiedPending: Boolean! + + """ + Whether this draft listing has been submitted for review from GitHub for approval to be verified in the Marketplace. + """ + isVerificationPendingFromDraft: Boolean! + + """ + Whether this unverified listing has been submitted for review from GitHub for approval to be verified in the Marketplace. + """ + isVerificationPendingFromUnverified: Boolean! + + """ + Whether this listing has been approved for verified display in the Marketplace. + """ + isVerified: Boolean! + + """ + The hex color code, without the leading '#', for the logo background. + """ + logoBackgroundColor: String! + + """ + URL for the listing's logo image. + """ + logoUrl( + """ + The size in pixels of the resulting square image. + """ + size: Int = 400 + ): URI + + """ + The listing's full name. + """ + name: String! + + """ + The listing's very short description without a trailing period or ampersands. + """ + normalizedShortDescription: String! + + """ + URL to the listing's detailed pricing. + """ + pricingUrl: URI + + """ + The category that best describes the listing. + """ + primaryCategory: MarketplaceCategory! + + """ + URL to the listing's privacy policy, may return an empty string for listings that do not require a privacy policy URL. + """ + privacyPolicyUrl: URI! + + """ + The HTTP path for the Marketplace listing. + """ + resourcePath: URI! + + """ + The URLs for the listing's screenshots. + """ + screenshotUrls: [String]! + + """ + An alternate category that describes the listing. + """ + secondaryCategory: MarketplaceCategory + + """ + The listing's very short description. + """ + shortDescription: String! + + """ + The short name of the listing used in its URL. + """ + slug: String! + + """ + URL to the listing's status page. + """ + statusUrl: URI + + """ + An email address for support for this listing's app. + """ + supportEmail: String + + """ + Either a URL or an email address for support for this listing's app, may + return an empty string for listings that do not require a support URL. + """ + supportUrl: URI! + + """ + URL to the listing's terms of service. + """ + termsOfServiceUrl: URI + + """ + The HTTP URL for the Marketplace listing. + """ + url: URI! + + """ + Can the current viewer add plans for this Marketplace listing. + """ + viewerCanAddPlans: Boolean! + + """ + Can the current viewer approve this Marketplace listing. + """ + viewerCanApprove: Boolean! + + """ + Can the current viewer delist this Marketplace listing. + """ + viewerCanDelist: Boolean! + + """ + Can the current viewer edit this Marketplace listing. + """ + viewerCanEdit: Boolean! + + """ + Can the current viewer edit the primary and secondary category of this + Marketplace listing. + """ + viewerCanEditCategories: Boolean! + + """ + Can the current viewer edit the plans for this Marketplace listing. + """ + viewerCanEditPlans: Boolean! + + """ + Can the current viewer return this Marketplace listing to draft state + so it becomes editable again. + """ + viewerCanRedraft: Boolean! + + """ + Can the current viewer reject this Marketplace listing by returning it to + an editable draft state or rejecting it entirely. + """ + viewerCanReject: Boolean! + + """ + Can the current viewer request this listing be reviewed for display in + the Marketplace as verified. + """ + viewerCanRequestApproval: Boolean! + + """ + Indicates whether the current user has an active subscription to this Marketplace listing. + """ + viewerHasPurchased: Boolean! + + """ + Indicates if the current user has purchased a subscription to this Marketplace listing + for all of the organizations the user owns. + """ + viewerHasPurchasedForAllOrganizations: Boolean! + + """ + Does the current viewer role allow them to administer this Marketplace listing. + """ + viewerIsListingAdmin: Boolean! +} + +""" +Look up Marketplace Listings +""" +type MarketplaceListingConnection { + """ + A list of edges. + """ + edges: [MarketplaceListingEdge] + + """ + A list of nodes. + """ + nodes: [MarketplaceListing] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type MarketplaceListingEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: MarketplaceListing +} + +""" +Entities that have members who can set status messages. +""" +interface MemberStatusable { + """ + Get the status messages members of this entity have set that are either public or visible only to the organization. + """ + memberStatuses( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for user statuses returned from the connection. + """ + orderBy: UserStatusOrder = {field: UPDATED_AT, direction: DESC} + ): UserStatusConnection! +} + +""" +Audit log entry for a members_can_delete_repos.clear event. +""" +type MembersCanDeleteReposClearAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + + """ + The HTTP path for this enterprise. + """ + enterpriseResourcePath: URI + + """ + The slug of the enterprise. + """ + enterpriseSlug: String + + """ + The HTTP URL for this enterprise. + """ + enterpriseUrl: URI + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a members_can_delete_repos.disable event. +""" +type MembersCanDeleteReposDisableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + + """ + The HTTP path for this enterprise. + """ + enterpriseResourcePath: URI + + """ + The slug of the enterprise. + """ + enterpriseSlug: String + + """ + The HTTP URL for this enterprise. + """ + enterpriseUrl: URI + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a members_can_delete_repos.enable event. +""" +type MembersCanDeleteReposEnableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + + """ + The HTTP path for this enterprise. + """ + enterpriseResourcePath: URI + + """ + The slug of the enterprise. + """ + enterpriseSlug: String + + """ + The HTTP URL for this enterprise. + """ + enterpriseUrl: URI + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Represents a 'mentioned' event on a given issue or pull request. +""" +type MentionedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! +} + +""" +Autogenerated input type of MergeBranch +""" +input MergeBranchInput { + """ + The email address to associate with this commit. + """ + authorEmail: String + + """ + The name of the base branch that the provided head will be merged into. + """ + base: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Message to use for the merge commit. If omitted, a default will be used. + """ + commitMessage: String + + """ + The head to merge into the base branch. This can be a branch name or a commit GitObjectID. + """ + head: String! + + """ + The Node ID of the Repository containing the base branch that will be modified. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of MergeBranch +""" +type MergeBranchPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The resulting merge Commit. + """ + mergeCommit: Commit +} + +""" +The possible default commit messages for merges. +""" +enum MergeCommitMessage { + """ + Default to a blank commit message. + """ + BLANK + + """ + Default to the pull request's body. + """ + PR_BODY + + """ + Default to the pull request's title. + """ + PR_TITLE +} + +""" +The possible default commit titles for merges. +""" +enum MergeCommitTitle { + """ + Default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + """ + MERGE_MESSAGE + + """ + Default to the pull request's title. + """ + PR_TITLE +} + +""" +Autogenerated input type of MergePullRequest +""" +input MergePullRequestInput { + """ + The email address to associate with this merge. + """ + authorEmail: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Commit body to use for the merge commit; if omitted, a default message will be used + """ + commitBody: String + + """ + Commit headline to use for the merge commit; if omitted, a default message will be used. + """ + commitHeadline: String + + """ + OID that the pull request head ref must match to allow merge; if omitted, no check is performed. + """ + expectedHeadOid: GitObjectID + + """ + The merge method to use. If omitted, defaults to 'MERGE' + """ + mergeMethod: PullRequestMergeMethod = MERGE + + """ + ID of the pull request to be merged. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +Autogenerated return type of MergePullRequest +""" +type MergePullRequestPayload { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The pull request that was merged. + """ + pullRequest: PullRequest +} + +""" +The queue of pull request entries to be merged into a protected branch in a repository. +""" +type MergeQueue implements Node { + """ + The configuration for this merge queue + """ + configuration: MergeQueueConfiguration + + """ + The entries in the queue + """ + entries( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): MergeQueueEntryConnection + id: ID! + + """ + The estimated time in seconds until a newly added entry would be merged + """ + nextEntryEstimatedTimeToMerge: Int + + """ + The repository this merge queue belongs to + """ + repository: Repository + + """ + The HTTP path for this merge queue + """ + resourcePath: URI! + + """ + The HTTP URL for this merge queue + """ + url: URI! +} + +""" +Configuration for a MergeQueue +""" +type MergeQueueConfiguration { + """ + The amount of time in minutes to wait for a check response before considering it a failure. + """ + checkResponseTimeout: Int + + """ + The maximum number of entries to build at once. + """ + maximumEntriesToBuild: Int + + """ + The maximum number of entries to merge at once. + """ + maximumEntriesToMerge: Int + + """ + The merge method to use for this queue. + """ + mergeMethod: PullRequestMergeMethod + + """ + The strategy to use when merging entries. + """ + mergingStrategy: MergeQueueMergingStrategy + + """ + The minimum number of entries required to merge at once. + """ + minimumEntriesToMerge: Int + + """ + The amount of time in minutes to wait before ignoring the minumum number of + entries in the queue requirement and merging a collection of entries + """ + minimumEntriesToMergeWaitTime: Int +} + +""" +Entries in a MergeQueue +""" +type MergeQueueEntry implements Node { + """ + The base commit for this entry + """ + baseCommit: Commit + + """ + The date and time this entry was added to the merge queue + """ + enqueuedAt: DateTime! + + """ + The actor that enqueued this entry + """ + enqueuer: Actor! + + """ + The estimated time in seconds until this entry will be merged + """ + estimatedTimeToMerge: Int + + """ + The head commit for this entry + """ + headCommit: Commit + id: ID! + + """ + Whether this pull request should jump the queue + """ + jump: Boolean! + + """ + The merge queue that this entry belongs to + """ + mergeQueue: MergeQueue + + """ + The position of this entry in the queue + """ + position: Int! + + """ + The pull request that will be added to a merge group + """ + pullRequest: PullRequest + + """ + Does this pull request need to be deployed on its own + """ + solo: Boolean! + + """ + The state of this entry in the queue + """ + state: MergeQueueEntryState! +} + +""" +The connection type for MergeQueueEntry. +""" +type MergeQueueEntryConnection { + """ + A list of edges. + """ + edges: [MergeQueueEntryEdge] + + """ + A list of nodes. + """ + nodes: [MergeQueueEntry] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type MergeQueueEntryEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: MergeQueueEntry +} + +""" +The possible states for a merge queue entry. +""" +enum MergeQueueEntryState { + """ + The entry is currently waiting for checks to pass. + """ + AWAITING_CHECKS + + """ + The entry is currently locked. + """ + LOCKED + + """ + The entry is currently mergeable. + """ + MERGEABLE + + """ + The entry is currently queued. + """ + QUEUED + + """ + The entry is currently unmergeable. + """ + UNMERGEABLE +} + +""" +The possible merging strategies for a merge queue. +""" +enum MergeQueueMergingStrategy { + """ + Entries only allowed to merge if they are passing. + """ + ALLGREEN + + """ + Failing Entires are allowed to merge if they are with a passing entry. + """ + HEADGREEN +} + +""" +Detailed status information about a pull request merge. +""" +enum MergeStateStatus { + """ + The head ref is out of date. + """ + BEHIND + + """ + The merge is blocked. + """ + BLOCKED + + """ + Mergeable and passing commit status. + """ + CLEAN + + """ + The merge commit cannot be cleanly created. + """ + DIRTY + + """ + The merge is blocked due to the pull request being a draft. + """ + DRAFT + @deprecated( + reason: "DRAFT state will be removed from this enum and `isDraft` should be used instead Use PullRequest.isDraft instead. Removal on 2021-01-01 UTC." + ) + + """ + Mergeable with passing commit status and pre-receive hooks. + """ + HAS_HOOKS + + """ + The state cannot currently be determined. + """ + UNKNOWN + + """ + Mergeable with non-passing commit status. + """ + UNSTABLE +} + +""" +Whether or not a PullRequest can be merged. +""" +enum MergeableState { + """ + The pull request cannot be merged due to merge conflicts. + """ + CONFLICTING + + """ + The pull request can be merged. + """ + MERGEABLE + + """ + The mergeability of the pull request is still being calculated. + """ + UNKNOWN +} + +""" +Represents a 'merged' event on a given pull request. +""" +type MergedEvent implements Node & UniformResourceLocatable { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the commit associated with the `merge` event. + """ + commit: Commit + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Identifies the Ref associated with the `merge` event. + """ + mergeRef: Ref + + """ + Identifies the name of the Ref associated with the `merge` event. + """ + mergeRefName: String! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest! + + """ + The HTTP path for this merged event. + """ + resourcePath: URI! + + """ + The HTTP URL for this merged event. + """ + url: URI! +} + +""" +Represents a GitHub Enterprise Importer (GEI) migration. +""" +interface Migration { + """ + The migration flag to continue on error. + """ + continueOnError: Boolean! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: String + + """ + The reason the migration failed. + """ + failureReason: String + id: ID! + + """ + The URL for the migration log (expires 1 day after migration completes). + """ + migrationLogUrl: URI + + """ + The migration source. + """ + migrationSource: MigrationSource! + + """ + The target repository name. + """ + repositoryName: String! + + """ + The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`. + """ + sourceUrl: URI! + + """ + The migration state. + """ + state: MigrationState! + + """ + The number of warnings encountered for this migration. To review the warnings, + check the [Migration Log](https://docs.github.com/en/migrations/using-github-enterprise-importer/completing-your-migration-with-github-enterprise-importer/accessing-your-migration-logs-for-github-enterprise-importer). + """ + warningsCount: Int! +} + +""" +A GitHub Enterprise Importer (GEI) migration source. +""" +type MigrationSource implements Node { + id: ID! + + """ + The migration source name. + """ + name: String! + + """ + The migration source type. + """ + type: MigrationSourceType! + + """ + The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`. + """ + url: URI! +} + +""" +Represents the different GitHub Enterprise Importer (GEI) migration sources. +""" +enum MigrationSourceType { + """ + An Azure DevOps migration source. + """ + AZURE_DEVOPS + + """ + A Bitbucket Server migration source. + """ + BITBUCKET_SERVER + + """ + A GitHub Migration API source. + """ + GITHUB_ARCHIVE +} + +""" +The GitHub Enterprise Importer (GEI) migration state. +""" +enum MigrationState { + """ + The migration has failed. + """ + FAILED + + """ + The migration has invalid credentials. + """ + FAILED_VALIDATION + + """ + The migration is in progress. + """ + IN_PROGRESS + + """ + The migration has not started. + """ + NOT_STARTED + + """ + The migration needs to have its credentials validated. + """ + PENDING_VALIDATION + + """ + The migration has been queued. + """ + QUEUED + + """ + The migration has succeeded. + """ + SUCCEEDED +} + +""" +Represents a Milestone object on a given repository. +""" +type Milestone implements Closable & Node & UniformResourceLocatable { + """ + Indicates if the object is closed (definition of closed may depend on type) + """ + closed: Boolean! + + """ + Identifies the date and time when the object was closed. + """ + closedAt: DateTime + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the actor who created the milestone. + """ + creator: Actor + + """ + Identifies the description of the milestone. + """ + description: String + + """ + Identifies the due date of the milestone. + """ + dueOn: DateTime + id: ID! + + """ + A list of issues associated with the milestone. + """ + issues( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Filtering options for issues returned from the connection. + """ + filterBy: IssueFilters + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + A list of label names to filter the pull requests by. + """ + labels: [String!] + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for issues returned from the connection. + """ + orderBy: IssueOrder + + """ + A list of states to filter the issues by. + """ + states: [IssueState!] + ): IssueConnection! + + """ + Identifies the number of the milestone. + """ + number: Int! + + """ + Identifies the percentage complete for the milestone + """ + progressPercentage: Float! + + """ + A list of pull requests associated with the milestone. + """ + pullRequests( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + The base ref name to filter the pull requests by. + """ + baseRefName: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + The head ref name to filter the pull requests by. + """ + headRefName: String + + """ + A list of label names to filter the pull requests by. + """ + labels: [String!] + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for pull requests returned from the connection. + """ + orderBy: IssueOrder + + """ + A list of states to filter the pull requests by. + """ + states: [PullRequestState!] + ): PullRequestConnection! + + """ + The repository associated with this milestone. + """ + repository: Repository! + + """ + The HTTP path for this milestone + """ + resourcePath: URI! + + """ + Identifies the state of the milestone. + """ + state: MilestoneState! + + """ + Identifies the title of the milestone. + """ + title: String! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this milestone + """ + url: URI! + + """ + Indicates if the object can be closed by the viewer. + """ + viewerCanClose: Boolean! + + """ + Indicates if the object can be reopened by the viewer. + """ + viewerCanReopen: Boolean! +} + +""" +The connection type for Milestone. +""" +type MilestoneConnection { + """ + A list of edges. + """ + edges: [MilestoneEdge] + + """ + A list of nodes. + """ + nodes: [Milestone] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type MilestoneEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Milestone +} + +""" +Types that can be inside a Milestone. +""" +union MilestoneItem = Issue | PullRequest + +""" +Ordering options for milestone connections. +""" +input MilestoneOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order milestones by. + """ + field: MilestoneOrderField! +} + +""" +Properties by which milestone connections can be ordered. +""" +enum MilestoneOrderField { + """ + Order milestones by when they were created. + """ + CREATED_AT + + """ + Order milestones by when they are due. + """ + DUE_DATE + + """ + Order milestones by their number. + """ + NUMBER + + """ + Order milestones by when they were last updated. + """ + UPDATED_AT +} + +""" +The possible states of a milestone. +""" +enum MilestoneState { + """ + A milestone that has been closed. + """ + CLOSED + + """ + A milestone that is still open. + """ + OPEN +} + +""" +Represents a 'milestoned' event on a given issue or pull request. +""" +type MilestonedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Identifies the milestone title associated with the 'milestoned' event. + """ + milestoneTitle: String! + + """ + Object referenced by event. + """ + subject: MilestoneItem! +} + +""" +Entities that can be minimized. +""" +interface Minimizable { + """ + Returns whether or not a comment has been minimized. + """ + isMinimized: Boolean! + + """ + Returns why the comment was minimized. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + minimizedReason: String + + """ + Check if the current viewer can minimize this object. + """ + viewerCanMinimize: Boolean! +} + +""" +Autogenerated input type of MinimizeComment +""" +input MinimizeCommentInput { + """ + The classification of comment + """ + classifier: ReportedContentClassifiers! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the subject to modify. + """ + subjectId: ID! + @possibleTypes( + concreteTypes: ["CommitComment", "DiscussionComment", "GistComment", "IssueComment", "PullRequestReviewComment"] + abstractType: "Minimizable" + ) +} + +""" +Autogenerated return type of MinimizeComment +""" +type MinimizeCommentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The comment that was minimized. + """ + minimizedComment: Minimizable +} + +""" +Autogenerated input type of MoveProjectCard +""" +input MoveProjectCardInput { + """ + Place the new card after the card with this id. Pass null to place it at the top. + """ + afterCardId: ID @possibleTypes(concreteTypes: ["ProjectCard"]) + + """ + The id of the card to move. + """ + cardId: ID! @possibleTypes(concreteTypes: ["ProjectCard"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the column to move it into. + """ + columnId: ID! @possibleTypes(concreteTypes: ["ProjectColumn"]) +} + +""" +Autogenerated return type of MoveProjectCard +""" +type MoveProjectCardPayload { + """ + The new edge of the moved card. + """ + cardEdge: ProjectCardEdge + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of MoveProjectColumn +""" +input MoveProjectColumnInput { + """ + Place the new column after the column with this id. Pass null to place it at the front. + """ + afterColumnId: ID @possibleTypes(concreteTypes: ["ProjectColumn"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The id of the column to move. + """ + columnId: ID! @possibleTypes(concreteTypes: ["ProjectColumn"]) +} + +""" +Autogenerated return type of MoveProjectColumn +""" +type MoveProjectColumnPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new edge of the moved column. + """ + columnEdge: ProjectColumnEdge +} + +""" +Represents a 'moved_columns_in_project' event on a given issue or pull request. +""" +type MovedColumnsInProjectEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + Column name the issue or pull request was moved from. + """ + previousProjectColumnName: String! @preview(toggledBy: "starfox-preview") + + """ + Project referenced by event. + """ + project: Project @preview(toggledBy: "starfox-preview") + + """ + Project card referenced by this project event. + """ + projectCard: ProjectCard @preview(toggledBy: "starfox-preview") + + """ + Column name the issue or pull request was moved to. + """ + projectColumnName: String! @preview(toggledBy: "starfox-preview") +} + +""" +The root query for implementing GraphQL mutations. +""" +type Mutation { + """ + Clear all of a customer's queued migrations + """ + abortQueuedMigrations( + """ + Parameters for AbortQueuedMigrations + """ + input: AbortQueuedMigrationsInput! + ): AbortQueuedMigrationsPayload + + """ + Accepts a pending invitation for a user to become an administrator of an enterprise. + """ + acceptEnterpriseAdministratorInvitation( + """ + Parameters for AcceptEnterpriseAdministratorInvitation + """ + input: AcceptEnterpriseAdministratorInvitationInput! + ): AcceptEnterpriseAdministratorInvitationPayload + + """ + Applies a suggested topic to the repository. + """ + acceptTopicSuggestion( + """ + Parameters for AcceptTopicSuggestion + """ + input: AcceptTopicSuggestionInput! + ): AcceptTopicSuggestionPayload + + """ + Adds assignees to an assignable object. + """ + addAssigneesToAssignable( + """ + Parameters for AddAssigneesToAssignable + """ + input: AddAssigneesToAssignableInput! + ): AddAssigneesToAssignablePayload + + """ + Adds a comment to an Issue or Pull Request. + """ + addComment( + """ + Parameters for AddComment + """ + input: AddCommentInput! + ): AddCommentPayload + + """ + Adds a comment to a Discussion, possibly as a reply to another comment. + """ + addDiscussionComment( + """ + Parameters for AddDiscussionComment + """ + input: AddDiscussionCommentInput! + ): AddDiscussionCommentPayload + + """ + Vote for an option in a discussion poll. + """ + addDiscussionPollVote( + """ + Parameters for AddDiscussionPollVote + """ + input: AddDiscussionPollVoteInput! + ): AddDiscussionPollVotePayload + + """ + Adds enterprise members to an organization within the enterprise. + """ + addEnterpriseOrganizationMember( + """ + Parameters for AddEnterpriseOrganizationMember + """ + input: AddEnterpriseOrganizationMemberInput! + ): AddEnterpriseOrganizationMemberPayload + + """ + Adds a support entitlement to an enterprise member. + """ + addEnterpriseSupportEntitlement( + """ + Parameters for AddEnterpriseSupportEntitlement + """ + input: AddEnterpriseSupportEntitlementInput! + ): AddEnterpriseSupportEntitlementPayload + + """ + Adds labels to a labelable object. + """ + addLabelsToLabelable( + """ + Parameters for AddLabelsToLabelable + """ + input: AddLabelsToLabelableInput! + ): AddLabelsToLabelablePayload + + """ + Adds a card to a ProjectColumn. Either `contentId` or `note` must be provided but **not** both. + """ + addProjectCard( + """ + Parameters for AddProjectCard + """ + input: AddProjectCardInput! + ): AddProjectCardPayload + + """ + Adds a column to a Project. + """ + addProjectColumn( + """ + Parameters for AddProjectColumn + """ + input: AddProjectColumnInput! + ): AddProjectColumnPayload + + """ + Creates a new draft issue and add it to a Project. + """ + addProjectV2DraftIssue( + """ + Parameters for AddProjectV2DraftIssue + """ + input: AddProjectV2DraftIssueInput! + ): AddProjectV2DraftIssuePayload + + """ + Links an existing content instance to a Project. + """ + addProjectV2ItemById( + """ + Parameters for AddProjectV2ItemById + """ + input: AddProjectV2ItemByIdInput! + ): AddProjectV2ItemByIdPayload + + """ + Adds a review to a Pull Request. + """ + addPullRequestReview( + """ + Parameters for AddPullRequestReview + """ + input: AddPullRequestReviewInput! + ): AddPullRequestReviewPayload + + """ + Adds a comment to a review. + """ + addPullRequestReviewComment( + """ + Parameters for AddPullRequestReviewComment + """ + input: AddPullRequestReviewCommentInput! + ): AddPullRequestReviewCommentPayload + + """ + Adds a new thread to a pending Pull Request Review. + """ + addPullRequestReviewThread( + """ + Parameters for AddPullRequestReviewThread + """ + input: AddPullRequestReviewThreadInput! + ): AddPullRequestReviewThreadPayload + + """ + Adds a reply to an existing Pull Request Review Thread. + """ + addPullRequestReviewThreadReply( + """ + Parameters for AddPullRequestReviewThreadReply + """ + input: AddPullRequestReviewThreadReplyInput! + ): AddPullRequestReviewThreadReplyPayload + + """ + Adds a reaction to a subject. + """ + addReaction( + """ + Parameters for AddReaction + """ + input: AddReactionInput! + ): AddReactionPayload + + """ + Adds a star to a Starrable. + """ + addStar( + """ + Parameters for AddStar + """ + input: AddStarInput! + ): AddStarPayload + + """ + Add an upvote to a discussion or discussion comment. + """ + addUpvote( + """ + Parameters for AddUpvote + """ + input: AddUpvoteInput! + ): AddUpvotePayload + + """ + Adds a verifiable domain to an owning account. + """ + addVerifiableDomain( + """ + Parameters for AddVerifiableDomain + """ + input: AddVerifiableDomainInput! + ): AddVerifiableDomainPayload + + """ + Approve all pending deployments under one or more environments + """ + approveDeployments( + """ + Parameters for ApproveDeployments + """ + input: ApproveDeploymentsInput! + ): ApproveDeploymentsPayload + + """ + Approve a verifiable domain for notification delivery. + """ + approveVerifiableDomain( + """ + Parameters for ApproveVerifiableDomain + """ + input: ApproveVerifiableDomainInput! + ): ApproveVerifiableDomainPayload + + """ + Archives a ProjectV2Item + """ + archiveProjectV2Item( + """ + Parameters for ArchiveProjectV2Item + """ + input: ArchiveProjectV2ItemInput! + ): ArchiveProjectV2ItemPayload + + """ + Marks a repository as archived. + """ + archiveRepository( + """ + Parameters for ArchiveRepository + """ + input: ArchiveRepositoryInput! + ): ArchiveRepositoryPayload + + """ + Cancels a pending invitation for an administrator to join an enterprise. + """ + cancelEnterpriseAdminInvitation( + """ + Parameters for CancelEnterpriseAdminInvitation + """ + input: CancelEnterpriseAdminInvitationInput! + ): CancelEnterpriseAdminInvitationPayload + + """ + Cancel an active sponsorship. + """ + cancelSponsorship( + """ + Parameters for CancelSponsorship + """ + input: CancelSponsorshipInput! + ): CancelSponsorshipPayload + + """ + Update your status on GitHub. + """ + changeUserStatus( + """ + Parameters for ChangeUserStatus + """ + input: ChangeUserStatusInput! + ): ChangeUserStatusPayload + + """ + Clears all labels from a labelable object. + """ + clearLabelsFromLabelable( + """ + Parameters for ClearLabelsFromLabelable + """ + input: ClearLabelsFromLabelableInput! + ): ClearLabelsFromLabelablePayload + + """ + This mutation clears the value of a field for an item in a Project. Currently + only text, number, date, assignees, labels, single-select, iteration and + milestone fields are supported. + """ + clearProjectV2ItemFieldValue( + """ + Parameters for ClearProjectV2ItemFieldValue + """ + input: ClearProjectV2ItemFieldValueInput! + ): ClearProjectV2ItemFieldValuePayload + + """ + Creates a new project by cloning configuration from an existing project. + """ + cloneProject( + """ + Parameters for CloneProject + """ + input: CloneProjectInput! + ): CloneProjectPayload + + """ + Create a new repository with the same files and directory structure as a template repository. + """ + cloneTemplateRepository( + """ + Parameters for CloneTemplateRepository + """ + input: CloneTemplateRepositoryInput! + ): CloneTemplateRepositoryPayload + + """ + Close a discussion. + """ + closeDiscussion( + """ + Parameters for CloseDiscussion + """ + input: CloseDiscussionInput! + ): CloseDiscussionPayload + + """ + Close an issue. + """ + closeIssue( + """ + Parameters for CloseIssue + """ + input: CloseIssueInput! + ): CloseIssuePayload + + """ + Close a pull request. + """ + closePullRequest( + """ + Parameters for ClosePullRequest + """ + input: ClosePullRequestInput! + ): ClosePullRequestPayload + + """ + Convert a project note card to one associated with a newly created issue. + """ + convertProjectCardNoteToIssue( + """ + Parameters for ConvertProjectCardNoteToIssue + """ + input: ConvertProjectCardNoteToIssueInput! + ): ConvertProjectCardNoteToIssuePayload + + """ + Converts a pull request to draft + """ + convertPullRequestToDraft( + """ + Parameters for ConvertPullRequestToDraft + """ + input: ConvertPullRequestToDraftInput! + ): ConvertPullRequestToDraftPayload + + """ + Copy a project. + """ + copyProjectV2( + """ + Parameters for CopyProjectV2 + """ + input: CopyProjectV2Input! + ): CopyProjectV2Payload + + """ + Invites a user to claim reattributable data + """ + createAttributionInvitation( + """ + Parameters for CreateAttributionInvitation + """ + input: CreateAttributionInvitationInput! + ): CreateAttributionInvitationPayload + + """ + Create a new branch protection rule + """ + createBranchProtectionRule( + """ + Parameters for CreateBranchProtectionRule + """ + input: CreateBranchProtectionRuleInput! + ): CreateBranchProtectionRulePayload + + """ + Create a check run. + """ + createCheckRun( + """ + Parameters for CreateCheckRun + """ + input: CreateCheckRunInput! + ): CreateCheckRunPayload + + """ + Create a check suite + """ + createCheckSuite( + """ + Parameters for CreateCheckSuite + """ + input: CreateCheckSuiteInput! + ): CreateCheckSuitePayload + + """ + Appends a commit to the given branch as the authenticated user. + + This mutation creates a commit whose parent is the HEAD of the provided + branch and also updates that branch to point to the new commit. + It can be thought of as similar to `git commit`. + + ### Locating a Branch + + Commits are appended to a `branch` of type `Ref`. + This must refer to a git branch (i.e. the fully qualified path must + begin with `refs/heads/`, although including this prefix is optional. + + Callers may specify the `branch` to commit to either by its global node + ID or by passing both of `repositoryNameWithOwner` and `refName`. For + more details see the documentation for `CommittableBranch`. + + ### Describing Changes + + `fileChanges` are specified as a `FilesChanges` object describing + `FileAdditions` and `FileDeletions`. + + Please see the documentation for `FileChanges` for more information on + how to use this argument to describe any set of file changes. + + ### Authorship + + Similar to the web commit interface, this mutation does not support + specifying the author or committer of the commit and will not add + support for this in the future. + + A commit created by a successful execution of this mutation will be + authored by the owner of the credential which authenticates the API + request. The committer will be identical to that of commits authored + using the web interface. + + If you need full control over author and committer information, please + use the Git Database REST API instead. + + ### Commit Signing + + Commits made using this mutation are automatically signed by GitHub if + supported and will be marked as verified in the user interface. + """ + createCommitOnBranch( + """ + Parameters for CreateCommitOnBranch + """ + input: CreateCommitOnBranchInput! + ): CreateCommitOnBranchPayload + + """ + Creates a new deployment event. + """ + createDeployment( + """ + Parameters for CreateDeployment + """ + input: CreateDeploymentInput! + ): CreateDeploymentPayload @preview(toggledBy: "flash-preview") + + """ + Create a deployment status. + """ + createDeploymentStatus( + """ + Parameters for CreateDeploymentStatus + """ + input: CreateDeploymentStatusInput! + ): CreateDeploymentStatusPayload @preview(toggledBy: "flash-preview") + + """ + Create a discussion. + """ + createDiscussion( + """ + Parameters for CreateDiscussion + """ + input: CreateDiscussionInput! + ): CreateDiscussionPayload + + """ + Creates an organization as part of an enterprise account. + """ + createEnterpriseOrganization( + """ + Parameters for CreateEnterpriseOrganization + """ + input: CreateEnterpriseOrganizationInput! + ): CreateEnterpriseOrganizationPayload + + """ + Creates an environment or simply returns it if already exists. + """ + createEnvironment( + """ + Parameters for CreateEnvironment + """ + input: CreateEnvironmentInput! + ): CreateEnvironmentPayload + + """ + Creates a new IP allow list entry. + """ + createIpAllowListEntry( + """ + Parameters for CreateIpAllowListEntry + """ + input: CreateIpAllowListEntryInput! + ): CreateIpAllowListEntryPayload + + """ + Creates a new issue. + """ + createIssue( + """ + Parameters for CreateIssue + """ + input: CreateIssueInput! + ): CreateIssuePayload + + """ + Creates a new label. + """ + createLabel( + """ + Parameters for CreateLabel + """ + input: CreateLabelInput! + ): CreateLabelPayload @preview(toggledBy: "bane-preview") + + """ + Create a branch linked to an issue. + """ + createLinkedBranch( + """ + Parameters for CreateLinkedBranch + """ + input: CreateLinkedBranchInput! + ): CreateLinkedBranchPayload + + """ + Creates a GitHub Enterprise Importer (GEI) migration source. + """ + createMigrationSource( + """ + Parameters for CreateMigrationSource + """ + input: CreateMigrationSourceInput! + ): CreateMigrationSourcePayload + + """ + Creates a new project. + """ + createProject( + """ + Parameters for CreateProject + """ + input: CreateProjectInput! + ): CreateProjectPayload + + """ + Creates a new project. + """ + createProjectV2( + """ + Parameters for CreateProjectV2 + """ + input: CreateProjectV2Input! + ): CreateProjectV2Payload + + """ + Create a new project field. + """ + createProjectV2Field( + """ + Parameters for CreateProjectV2Field + """ + input: CreateProjectV2FieldInput! + ): CreateProjectV2FieldPayload + + """ + Create a new pull request + """ + createPullRequest( + """ + Parameters for CreatePullRequest + """ + input: CreatePullRequestInput! + ): CreatePullRequestPayload + + """ + Create a new Git Ref. + """ + createRef( + """ + Parameters for CreateRef + """ + input: CreateRefInput! + ): CreateRefPayload + + """ + Create a new repository. + """ + createRepository( + """ + Parameters for CreateRepository + """ + input: CreateRepositoryInput! + ): CreateRepositoryPayload + + """ + Create a repository ruleset + """ + createRepositoryRuleset( + """ + Parameters for CreateRepositoryRuleset + """ + input: CreateRepositoryRulesetInput! + ): CreateRepositoryRulesetPayload + + """ + Create a GitHub Sponsors profile to allow others to sponsor you or your organization. + """ + createSponsorsListing( + """ + Parameters for CreateSponsorsListing + """ + input: CreateSponsorsListingInput! + ): CreateSponsorsListingPayload + + """ + Create a new payment tier for your GitHub Sponsors profile. + """ + createSponsorsTier( + """ + Parameters for CreateSponsorsTier + """ + input: CreateSponsorsTierInput! + ): CreateSponsorsTierPayload + + """ + Start a new sponsorship of a maintainer in GitHub Sponsors, or reactivate a past sponsorship. + """ + createSponsorship( + """ + Parameters for CreateSponsorship + """ + input: CreateSponsorshipInput! + ): CreateSponsorshipPayload + + """ + Make many one-time sponsorships for different sponsorable users or + organizations at once. Can only sponsor those who have a public GitHub + Sponsors profile. + """ + createSponsorships( + """ + Parameters for CreateSponsorships + """ + input: CreateSponsorshipsInput! + ): CreateSponsorshipsPayload + + """ + Creates a new team discussion. + """ + createTeamDiscussion( + """ + Parameters for CreateTeamDiscussion + """ + input: CreateTeamDiscussionInput! + ): CreateTeamDiscussionPayload + + """ + Creates a new team discussion comment. + """ + createTeamDiscussionComment( + """ + Parameters for CreateTeamDiscussionComment + """ + input: CreateTeamDiscussionCommentInput! + ): CreateTeamDiscussionCommentPayload + + """ + Rejects a suggested topic for the repository. + """ + declineTopicSuggestion( + """ + Parameters for DeclineTopicSuggestion + """ + input: DeclineTopicSuggestionInput! + ): DeclineTopicSuggestionPayload + + """ + Delete a branch protection rule + """ + deleteBranchProtectionRule( + """ + Parameters for DeleteBranchProtectionRule + """ + input: DeleteBranchProtectionRuleInput! + ): DeleteBranchProtectionRulePayload + + """ + Deletes a deployment. + """ + deleteDeployment( + """ + Parameters for DeleteDeployment + """ + input: DeleteDeploymentInput! + ): DeleteDeploymentPayload + + """ + Delete a discussion and all of its replies. + """ + deleteDiscussion( + """ + Parameters for DeleteDiscussion + """ + input: DeleteDiscussionInput! + ): DeleteDiscussionPayload + + """ + Delete a discussion comment. If it has replies, wipe it instead. + """ + deleteDiscussionComment( + """ + Parameters for DeleteDiscussionComment + """ + input: DeleteDiscussionCommentInput! + ): DeleteDiscussionCommentPayload + + """ + Deletes an environment + """ + deleteEnvironment( + """ + Parameters for DeleteEnvironment + """ + input: DeleteEnvironmentInput! + ): DeleteEnvironmentPayload + + """ + Deletes an IP allow list entry. + """ + deleteIpAllowListEntry( + """ + Parameters for DeleteIpAllowListEntry + """ + input: DeleteIpAllowListEntryInput! + ): DeleteIpAllowListEntryPayload + + """ + Deletes an Issue object. + """ + deleteIssue( + """ + Parameters for DeleteIssue + """ + input: DeleteIssueInput! + ): DeleteIssuePayload + + """ + Deletes an IssueComment object. + """ + deleteIssueComment( + """ + Parameters for DeleteIssueComment + """ + input: DeleteIssueCommentInput! + ): DeleteIssueCommentPayload + + """ + Deletes a label. + """ + deleteLabel( + """ + Parameters for DeleteLabel + """ + input: DeleteLabelInput! + ): DeleteLabelPayload @preview(toggledBy: "bane-preview") + + """ + Unlink a branch from an issue. + """ + deleteLinkedBranch( + """ + Parameters for DeleteLinkedBranch + """ + input: DeleteLinkedBranchInput! + ): DeleteLinkedBranchPayload + + """ + Delete a package version. + """ + deletePackageVersion( + """ + Parameters for DeletePackageVersion + """ + input: DeletePackageVersionInput! + ): DeletePackageVersionPayload @preview(toggledBy: "package-deletes-preview") + + """ + Deletes a project. + """ + deleteProject( + """ + Parameters for DeleteProject + """ + input: DeleteProjectInput! + ): DeleteProjectPayload + + """ + Deletes a project card. + """ + deleteProjectCard( + """ + Parameters for DeleteProjectCard + """ + input: DeleteProjectCardInput! + ): DeleteProjectCardPayload + + """ + Deletes a project column. + """ + deleteProjectColumn( + """ + Parameters for DeleteProjectColumn + """ + input: DeleteProjectColumnInput! + ): DeleteProjectColumnPayload + + """ + Delete a project. + """ + deleteProjectV2( + """ + Parameters for DeleteProjectV2 + """ + input: DeleteProjectV2Input! + ): DeleteProjectV2Payload + + """ + Delete a project field. + """ + deleteProjectV2Field( + """ + Parameters for DeleteProjectV2Field + """ + input: DeleteProjectV2FieldInput! + ): DeleteProjectV2FieldPayload + + """ + Deletes an item from a Project. + """ + deleteProjectV2Item( + """ + Parameters for DeleteProjectV2Item + """ + input: DeleteProjectV2ItemInput! + ): DeleteProjectV2ItemPayload + + """ + Deletes a project workflow. + """ + deleteProjectV2Workflow( + """ + Parameters for DeleteProjectV2Workflow + """ + input: DeleteProjectV2WorkflowInput! + ): DeleteProjectV2WorkflowPayload + + """ + Deletes a pull request review. + """ + deletePullRequestReview( + """ + Parameters for DeletePullRequestReview + """ + input: DeletePullRequestReviewInput! + ): DeletePullRequestReviewPayload + + """ + Deletes a pull request review comment. + """ + deletePullRequestReviewComment( + """ + Parameters for DeletePullRequestReviewComment + """ + input: DeletePullRequestReviewCommentInput! + ): DeletePullRequestReviewCommentPayload + + """ + Delete a Git Ref. + """ + deleteRef( + """ + Parameters for DeleteRef + """ + input: DeleteRefInput! + ): DeleteRefPayload + + """ + Delete a repository ruleset + """ + deleteRepositoryRuleset( + """ + Parameters for DeleteRepositoryRuleset + """ + input: DeleteRepositoryRulesetInput! + ): DeleteRepositoryRulesetPayload + + """ + Deletes a team discussion. + """ + deleteTeamDiscussion( + """ + Parameters for DeleteTeamDiscussion + """ + input: DeleteTeamDiscussionInput! + ): DeleteTeamDiscussionPayload + + """ + Deletes a team discussion comment. + """ + deleteTeamDiscussionComment( + """ + Parameters for DeleteTeamDiscussionComment + """ + input: DeleteTeamDiscussionCommentInput! + ): DeleteTeamDiscussionCommentPayload + + """ + Deletes a verifiable domain. + """ + deleteVerifiableDomain( + """ + Parameters for DeleteVerifiableDomain + """ + input: DeleteVerifiableDomainInput! + ): DeleteVerifiableDomainPayload + + """ + Remove a pull request from the merge queue. + """ + dequeuePullRequest( + """ + Parameters for DequeuePullRequest + """ + input: DequeuePullRequestInput! + ): DequeuePullRequestPayload + + """ + Disable auto merge on the given pull request + """ + disablePullRequestAutoMerge( + """ + Parameters for DisablePullRequestAutoMerge + """ + input: DisablePullRequestAutoMergeInput! + ): DisablePullRequestAutoMergePayload + + """ + Dismisses an approved or rejected pull request review. + """ + dismissPullRequestReview( + """ + Parameters for DismissPullRequestReview + """ + input: DismissPullRequestReviewInput! + ): DismissPullRequestReviewPayload + + """ + Dismisses the Dependabot alert. + """ + dismissRepositoryVulnerabilityAlert( + """ + Parameters for DismissRepositoryVulnerabilityAlert + """ + input: DismissRepositoryVulnerabilityAlertInput! + ): DismissRepositoryVulnerabilityAlertPayload + + """ + Enable the default auto-merge on a pull request. + """ + enablePullRequestAutoMerge( + """ + Parameters for EnablePullRequestAutoMerge + """ + input: EnablePullRequestAutoMergeInput! + ): EnablePullRequestAutoMergePayload + + """ + Add a pull request to the merge queue. + """ + enqueuePullRequest( + """ + Parameters for EnqueuePullRequest + """ + input: EnqueuePullRequestInput! + ): EnqueuePullRequestPayload + + """ + Follow an organization. + """ + followOrganization( + """ + Parameters for FollowOrganization + """ + input: FollowOrganizationInput! + ): FollowOrganizationPayload + + """ + Follow a user. + """ + followUser( + """ + Parameters for FollowUser + """ + input: FollowUserInput! + ): FollowUserPayload + + """ + Grant the migrator role to a user for all organizations under an enterprise account. + """ + grantEnterpriseOrganizationsMigratorRole( + """ + Parameters for GrantEnterpriseOrganizationsMigratorRole + """ + input: GrantEnterpriseOrganizationsMigratorRoleInput! + ): GrantEnterpriseOrganizationsMigratorRolePayload + + """ + Grant the migrator role to a user or a team. + """ + grantMigratorRole( + """ + Parameters for GrantMigratorRole + """ + input: GrantMigratorRoleInput! + ): GrantMigratorRolePayload + + """ + Creates a new project by importing columns and a list of issues/PRs. + """ + importProject( + """ + Parameters for ImportProject + """ + input: ImportProjectInput! + ): ImportProjectPayload @preview(toggledBy: "slothette-preview") + + """ + Invite someone to become an administrator of the enterprise. + """ + inviteEnterpriseAdmin( + """ + Parameters for InviteEnterpriseAdmin + """ + input: InviteEnterpriseAdminInput! + ): InviteEnterpriseAdminPayload + + """ + Links a project to a repository. + """ + linkProjectV2ToRepository( + """ + Parameters for LinkProjectV2ToRepository + """ + input: LinkProjectV2ToRepositoryInput! + ): LinkProjectV2ToRepositoryPayload + + """ + Links a project to a team. + """ + linkProjectV2ToTeam( + """ + Parameters for LinkProjectV2ToTeam + """ + input: LinkProjectV2ToTeamInput! + ): LinkProjectV2ToTeamPayload + + """ + Creates a repository link for a project. + """ + linkRepositoryToProject( + """ + Parameters for LinkRepositoryToProject + """ + input: LinkRepositoryToProjectInput! + ): LinkRepositoryToProjectPayload + + """ + Lock a lockable object + """ + lockLockable( + """ + Parameters for LockLockable + """ + input: LockLockableInput! + ): LockLockablePayload + + """ + Mark a discussion comment as the chosen answer for discussions in an answerable category. + """ + markDiscussionCommentAsAnswer( + """ + Parameters for MarkDiscussionCommentAsAnswer + """ + input: MarkDiscussionCommentAsAnswerInput! + ): MarkDiscussionCommentAsAnswerPayload + + """ + Mark a pull request file as viewed + """ + markFileAsViewed( + """ + Parameters for MarkFileAsViewed + """ + input: MarkFileAsViewedInput! + ): MarkFileAsViewedPayload + + """ + Mark a project as a template. Note that only projects which are owned by an Organization can be marked as a template. + """ + markProjectV2AsTemplate( + """ + Parameters for MarkProjectV2AsTemplate + """ + input: MarkProjectV2AsTemplateInput! + ): MarkProjectV2AsTemplatePayload + + """ + Marks a pull request ready for review. + """ + markPullRequestReadyForReview( + """ + Parameters for MarkPullRequestReadyForReview + """ + input: MarkPullRequestReadyForReviewInput! + ): MarkPullRequestReadyForReviewPayload + + """ + Merge a head into a branch. + """ + mergeBranch( + """ + Parameters for MergeBranch + """ + input: MergeBranchInput! + ): MergeBranchPayload + + """ + Merge a pull request. + """ + mergePullRequest( + """ + Parameters for MergePullRequest + """ + input: MergePullRequestInput! + ): MergePullRequestPayload + + """ + Minimizes a comment on an Issue, Commit, Pull Request, or Gist + """ + minimizeComment( + """ + Parameters for MinimizeComment + """ + input: MinimizeCommentInput! + ): MinimizeCommentPayload + + """ + Moves a project card to another place. + """ + moveProjectCard( + """ + Parameters for MoveProjectCard + """ + input: MoveProjectCardInput! + ): MoveProjectCardPayload + + """ + Moves a project column to another place. + """ + moveProjectColumn( + """ + Parameters for MoveProjectColumn + """ + input: MoveProjectColumnInput! + ): MoveProjectColumnPayload + + """ + Pin an issue to a repository + """ + pinIssue( + """ + Parameters for PinIssue + """ + input: PinIssueInput! + ): PinIssuePayload + + """ + Publish an existing sponsorship tier that is currently still a draft to a GitHub Sponsors profile. + """ + publishSponsorsTier( + """ + Parameters for PublishSponsorsTier + """ + input: PublishSponsorsTierInput! + ): PublishSponsorsTierPayload + + """ + Regenerates the identity provider recovery codes for an enterprise + """ + regenerateEnterpriseIdentityProviderRecoveryCodes( + """ + Parameters for RegenerateEnterpriseIdentityProviderRecoveryCodes + """ + input: RegenerateEnterpriseIdentityProviderRecoveryCodesInput! + ): RegenerateEnterpriseIdentityProviderRecoveryCodesPayload + + """ + Regenerates a verifiable domain's verification token. + """ + regenerateVerifiableDomainToken( + """ + Parameters for RegenerateVerifiableDomainToken + """ + input: RegenerateVerifiableDomainTokenInput! + ): RegenerateVerifiableDomainTokenPayload + + """ + Reject all pending deployments under one or more environments + """ + rejectDeployments( + """ + Parameters for RejectDeployments + """ + input: RejectDeploymentsInput! + ): RejectDeploymentsPayload + + """ + Removes assignees from an assignable object. + """ + removeAssigneesFromAssignable( + """ + Parameters for RemoveAssigneesFromAssignable + """ + input: RemoveAssigneesFromAssignableInput! + ): RemoveAssigneesFromAssignablePayload + + """ + Removes an administrator from the enterprise. + """ + removeEnterpriseAdmin( + """ + Parameters for RemoveEnterpriseAdmin + """ + input: RemoveEnterpriseAdminInput! + ): RemoveEnterpriseAdminPayload + + """ + Removes the identity provider from an enterprise + """ + removeEnterpriseIdentityProvider( + """ + Parameters for RemoveEnterpriseIdentityProvider + """ + input: RemoveEnterpriseIdentityProviderInput! + ): RemoveEnterpriseIdentityProviderPayload + + """ + Removes a user from all organizations within the enterprise + """ + removeEnterpriseMember( + """ + Parameters for RemoveEnterpriseMember + """ + input: RemoveEnterpriseMemberInput! + ): RemoveEnterpriseMemberPayload + + """ + Removes an organization from the enterprise + """ + removeEnterpriseOrganization( + """ + Parameters for RemoveEnterpriseOrganization + """ + input: RemoveEnterpriseOrganizationInput! + ): RemoveEnterpriseOrganizationPayload + + """ + Removes a support entitlement from an enterprise member. + """ + removeEnterpriseSupportEntitlement( + """ + Parameters for RemoveEnterpriseSupportEntitlement + """ + input: RemoveEnterpriseSupportEntitlementInput! + ): RemoveEnterpriseSupportEntitlementPayload + + """ + Removes labels from a Labelable object. + """ + removeLabelsFromLabelable( + """ + Parameters for RemoveLabelsFromLabelable + """ + input: RemoveLabelsFromLabelableInput! + ): RemoveLabelsFromLabelablePayload + + """ + Removes outside collaborator from all repositories in an organization. + """ + removeOutsideCollaborator( + """ + Parameters for RemoveOutsideCollaborator + """ + input: RemoveOutsideCollaboratorInput! + ): RemoveOutsideCollaboratorPayload + + """ + Removes a reaction from a subject. + """ + removeReaction( + """ + Parameters for RemoveReaction + """ + input: RemoveReactionInput! + ): RemoveReactionPayload + + """ + Removes a star from a Starrable. + """ + removeStar( + """ + Parameters for RemoveStar + """ + input: RemoveStarInput! + ): RemoveStarPayload + + """ + Remove an upvote to a discussion or discussion comment. + """ + removeUpvote( + """ + Parameters for RemoveUpvote + """ + input: RemoveUpvoteInput! + ): RemoveUpvotePayload + + """ + Reopen a discussion. + """ + reopenDiscussion( + """ + Parameters for ReopenDiscussion + """ + input: ReopenDiscussionInput! + ): ReopenDiscussionPayload + + """ + Reopen a issue. + """ + reopenIssue( + """ + Parameters for ReopenIssue + """ + input: ReopenIssueInput! + ): ReopenIssuePayload + + """ + Reopen a pull request. + """ + reopenPullRequest( + """ + Parameters for ReopenPullRequest + """ + input: ReopenPullRequestInput! + ): ReopenPullRequestPayload + + """ + Set review requests on a pull request. + """ + requestReviews( + """ + Parameters for RequestReviews + """ + input: RequestReviewsInput! + ): RequestReviewsPayload + + """ + Rerequests an existing check suite. + """ + rerequestCheckSuite( + """ + Parameters for RerequestCheckSuite + """ + input: RerequestCheckSuiteInput! + ): RerequestCheckSuitePayload + + """ + Marks a review thread as resolved. + """ + resolveReviewThread( + """ + Parameters for ResolveReviewThread + """ + input: ResolveReviewThreadInput! + ): ResolveReviewThreadPayload + + """ + Retire a published payment tier from your GitHub Sponsors profile so it cannot be used to start new sponsorships. + """ + retireSponsorsTier( + """ + Parameters for RetireSponsorsTier + """ + input: RetireSponsorsTierInput! + ): RetireSponsorsTierPayload + + """ + Create a pull request that reverts the changes from a merged pull request. + """ + revertPullRequest( + """ + Parameters for RevertPullRequest + """ + input: RevertPullRequestInput! + ): RevertPullRequestPayload + + """ + Revoke the migrator role to a user for all organizations under an enterprise account. + """ + revokeEnterpriseOrganizationsMigratorRole( + """ + Parameters for RevokeEnterpriseOrganizationsMigratorRole + """ + input: RevokeEnterpriseOrganizationsMigratorRoleInput! + ): RevokeEnterpriseOrganizationsMigratorRolePayload + + """ + Revoke the migrator role from a user or a team. + """ + revokeMigratorRole( + """ + Parameters for RevokeMigratorRole + """ + input: RevokeMigratorRoleInput! + ): RevokeMigratorRolePayload + + """ + Creates or updates the identity provider for an enterprise. + """ + setEnterpriseIdentityProvider( + """ + Parameters for SetEnterpriseIdentityProvider + """ + input: SetEnterpriseIdentityProviderInput! + ): SetEnterpriseIdentityProviderPayload + + """ + Set an organization level interaction limit for an organization's public repositories. + """ + setOrganizationInteractionLimit( + """ + Parameters for SetOrganizationInteractionLimit + """ + input: SetOrganizationInteractionLimitInput! + ): SetOrganizationInteractionLimitPayload + + """ + Sets an interaction limit setting for a repository. + """ + setRepositoryInteractionLimit( + """ + Parameters for SetRepositoryInteractionLimit + """ + input: SetRepositoryInteractionLimitInput! + ): SetRepositoryInteractionLimitPayload + + """ + Set a user level interaction limit for an user's public repositories. + """ + setUserInteractionLimit( + """ + Parameters for SetUserInteractionLimit + """ + input: SetUserInteractionLimitInput! + ): SetUserInteractionLimitPayload + + """ + Starts a GitHub Enterprise Importer organization migration. + """ + startOrganizationMigration( + """ + Parameters for StartOrganizationMigration + """ + input: StartOrganizationMigrationInput! + ): StartOrganizationMigrationPayload + + """ + Starts a GitHub Enterprise Importer (GEI) repository migration. + """ + startRepositoryMigration( + """ + Parameters for StartRepositoryMigration + """ + input: StartRepositoryMigrationInput! + ): StartRepositoryMigrationPayload + + """ + Submits a pending pull request review. + """ + submitPullRequestReview( + """ + Parameters for SubmitPullRequestReview + """ + input: SubmitPullRequestReviewInput! + ): SubmitPullRequestReviewPayload + + """ + Transfer an organization from one enterprise to another enterprise. + """ + transferEnterpriseOrganization( + """ + Parameters for TransferEnterpriseOrganization + """ + input: TransferEnterpriseOrganizationInput! + ): TransferEnterpriseOrganizationPayload + + """ + Transfer an issue to a different repository + """ + transferIssue( + """ + Parameters for TransferIssue + """ + input: TransferIssueInput! + ): TransferIssuePayload + + """ + Unarchives a ProjectV2Item + """ + unarchiveProjectV2Item( + """ + Parameters for UnarchiveProjectV2Item + """ + input: UnarchiveProjectV2ItemInput! + ): UnarchiveProjectV2ItemPayload + + """ + Unarchives a repository. + """ + unarchiveRepository( + """ + Parameters for UnarchiveRepository + """ + input: UnarchiveRepositoryInput! + ): UnarchiveRepositoryPayload + + """ + Unfollow an organization. + """ + unfollowOrganization( + """ + Parameters for UnfollowOrganization + """ + input: UnfollowOrganizationInput! + ): UnfollowOrganizationPayload + + """ + Unfollow a user. + """ + unfollowUser( + """ + Parameters for UnfollowUser + """ + input: UnfollowUserInput! + ): UnfollowUserPayload + + """ + Unlinks a project from a repository. + """ + unlinkProjectV2FromRepository( + """ + Parameters for UnlinkProjectV2FromRepository + """ + input: UnlinkProjectV2FromRepositoryInput! + ): UnlinkProjectV2FromRepositoryPayload + + """ + Unlinks a project to a team. + """ + unlinkProjectV2FromTeam( + """ + Parameters for UnlinkProjectV2FromTeam + """ + input: UnlinkProjectV2FromTeamInput! + ): UnlinkProjectV2FromTeamPayload + + """ + Deletes a repository link from a project. + """ + unlinkRepositoryFromProject( + """ + Parameters for UnlinkRepositoryFromProject + """ + input: UnlinkRepositoryFromProjectInput! + ): UnlinkRepositoryFromProjectPayload + + """ + Unlock a lockable object + """ + unlockLockable( + """ + Parameters for UnlockLockable + """ + input: UnlockLockableInput! + ): UnlockLockablePayload + + """ + Unmark a discussion comment as the chosen answer for discussions in an answerable category. + """ + unmarkDiscussionCommentAsAnswer( + """ + Parameters for UnmarkDiscussionCommentAsAnswer + """ + input: UnmarkDiscussionCommentAsAnswerInput! + ): UnmarkDiscussionCommentAsAnswerPayload + + """ + Unmark a pull request file as viewed + """ + unmarkFileAsViewed( + """ + Parameters for UnmarkFileAsViewed + """ + input: UnmarkFileAsViewedInput! + ): UnmarkFileAsViewedPayload + + """ + Unmark an issue as a duplicate of another issue. + """ + unmarkIssueAsDuplicate( + """ + Parameters for UnmarkIssueAsDuplicate + """ + input: UnmarkIssueAsDuplicateInput! + ): UnmarkIssueAsDuplicatePayload + + """ + Unmark a project as a template. + """ + unmarkProjectV2AsTemplate( + """ + Parameters for UnmarkProjectV2AsTemplate + """ + input: UnmarkProjectV2AsTemplateInput! + ): UnmarkProjectV2AsTemplatePayload + + """ + Unminimizes a comment on an Issue, Commit, Pull Request, or Gist + """ + unminimizeComment( + """ + Parameters for UnminimizeComment + """ + input: UnminimizeCommentInput! + ): UnminimizeCommentPayload + + """ + Unpin a pinned issue from a repository + """ + unpinIssue( + """ + Parameters for UnpinIssue + """ + input: UnpinIssueInput! + ): UnpinIssuePayload + + """ + Marks a review thread as unresolved. + """ + unresolveReviewThread( + """ + Parameters for UnresolveReviewThread + """ + input: UnresolveReviewThreadInput! + ): UnresolveReviewThreadPayload + + """ + Update a branch protection rule + """ + updateBranchProtectionRule( + """ + Parameters for UpdateBranchProtectionRule + """ + input: UpdateBranchProtectionRuleInput! + ): UpdateBranchProtectionRulePayload + + """ + Update a check run + """ + updateCheckRun( + """ + Parameters for UpdateCheckRun + """ + input: UpdateCheckRunInput! + ): UpdateCheckRunPayload + + """ + Modifies the settings of an existing check suite + """ + updateCheckSuitePreferences( + """ + Parameters for UpdateCheckSuitePreferences + """ + input: UpdateCheckSuitePreferencesInput! + ): UpdateCheckSuitePreferencesPayload + + """ + Update a discussion + """ + updateDiscussion( + """ + Parameters for UpdateDiscussion + """ + input: UpdateDiscussionInput! + ): UpdateDiscussionPayload + + """ + Update the contents of a comment on a Discussion + """ + updateDiscussionComment( + """ + Parameters for UpdateDiscussionComment + """ + input: UpdateDiscussionCommentInput! + ): UpdateDiscussionCommentPayload + + """ + Updates the role of an enterprise administrator. + """ + updateEnterpriseAdministratorRole( + """ + Parameters for UpdateEnterpriseAdministratorRole + """ + input: UpdateEnterpriseAdministratorRoleInput! + ): UpdateEnterpriseAdministratorRolePayload + + """ + Sets whether private repository forks are enabled for an enterprise. + """ + updateEnterpriseAllowPrivateRepositoryForkingSetting( + """ + Parameters for UpdateEnterpriseAllowPrivateRepositoryForkingSetting + """ + input: UpdateEnterpriseAllowPrivateRepositoryForkingSettingInput! + ): UpdateEnterpriseAllowPrivateRepositoryForkingSettingPayload + + """ + Sets the base repository permission for organizations in an enterprise. + """ + updateEnterpriseDefaultRepositoryPermissionSetting( + """ + Parameters for UpdateEnterpriseDefaultRepositoryPermissionSetting + """ + input: UpdateEnterpriseDefaultRepositoryPermissionSettingInput! + ): UpdateEnterpriseDefaultRepositoryPermissionSettingPayload + + """ + Sets whether organization members with admin permissions on a repository can change repository visibility. + """ + updateEnterpriseMembersCanChangeRepositoryVisibilitySetting( + """ + Parameters for UpdateEnterpriseMembersCanChangeRepositoryVisibilitySetting + """ + input: UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingInput! + ): UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingPayload + + """ + Sets the members can create repositories setting for an enterprise. + """ + updateEnterpriseMembersCanCreateRepositoriesSetting( + """ + Parameters for UpdateEnterpriseMembersCanCreateRepositoriesSetting + """ + input: UpdateEnterpriseMembersCanCreateRepositoriesSettingInput! + ): UpdateEnterpriseMembersCanCreateRepositoriesSettingPayload + + """ + Sets the members can delete issues setting for an enterprise. + """ + updateEnterpriseMembersCanDeleteIssuesSetting( + """ + Parameters for UpdateEnterpriseMembersCanDeleteIssuesSetting + """ + input: UpdateEnterpriseMembersCanDeleteIssuesSettingInput! + ): UpdateEnterpriseMembersCanDeleteIssuesSettingPayload + + """ + Sets the members can delete repositories setting for an enterprise. + """ + updateEnterpriseMembersCanDeleteRepositoriesSetting( + """ + Parameters for UpdateEnterpriseMembersCanDeleteRepositoriesSetting + """ + input: UpdateEnterpriseMembersCanDeleteRepositoriesSettingInput! + ): UpdateEnterpriseMembersCanDeleteRepositoriesSettingPayload + + """ + Sets whether members can invite collaborators are enabled for an enterprise. + """ + updateEnterpriseMembersCanInviteCollaboratorsSetting( + """ + Parameters for UpdateEnterpriseMembersCanInviteCollaboratorsSetting + """ + input: UpdateEnterpriseMembersCanInviteCollaboratorsSettingInput! + ): UpdateEnterpriseMembersCanInviteCollaboratorsSettingPayload + + """ + Sets whether or not an organization admin can make purchases. + """ + updateEnterpriseMembersCanMakePurchasesSetting( + """ + Parameters for UpdateEnterpriseMembersCanMakePurchasesSetting + """ + input: UpdateEnterpriseMembersCanMakePurchasesSettingInput! + ): UpdateEnterpriseMembersCanMakePurchasesSettingPayload + + """ + Sets the members can update protected branches setting for an enterprise. + """ + updateEnterpriseMembersCanUpdateProtectedBranchesSetting( + """ + Parameters for UpdateEnterpriseMembersCanUpdateProtectedBranchesSetting + """ + input: UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingInput! + ): UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingPayload + + """ + Sets the members can view dependency insights for an enterprise. + """ + updateEnterpriseMembersCanViewDependencyInsightsSetting( + """ + Parameters for UpdateEnterpriseMembersCanViewDependencyInsightsSetting + """ + input: UpdateEnterpriseMembersCanViewDependencyInsightsSettingInput! + ): UpdateEnterpriseMembersCanViewDependencyInsightsSettingPayload + + """ + Sets whether organization projects are enabled for an enterprise. + """ + updateEnterpriseOrganizationProjectsSetting( + """ + Parameters for UpdateEnterpriseOrganizationProjectsSetting + """ + input: UpdateEnterpriseOrganizationProjectsSettingInput! + ): UpdateEnterpriseOrganizationProjectsSettingPayload + + """ + Updates the role of an enterprise owner with an organization. + """ + updateEnterpriseOwnerOrganizationRole( + """ + Parameters for UpdateEnterpriseOwnerOrganizationRole + """ + input: UpdateEnterpriseOwnerOrganizationRoleInput! + ): UpdateEnterpriseOwnerOrganizationRolePayload + + """ + Updates an enterprise's profile. + """ + updateEnterpriseProfile( + """ + Parameters for UpdateEnterpriseProfile + """ + input: UpdateEnterpriseProfileInput! + ): UpdateEnterpriseProfilePayload + + """ + Sets whether repository projects are enabled for a enterprise. + """ + updateEnterpriseRepositoryProjectsSetting( + """ + Parameters for UpdateEnterpriseRepositoryProjectsSetting + """ + input: UpdateEnterpriseRepositoryProjectsSettingInput! + ): UpdateEnterpriseRepositoryProjectsSettingPayload + + """ + Sets whether team discussions are enabled for an enterprise. + """ + updateEnterpriseTeamDiscussionsSetting( + """ + Parameters for UpdateEnterpriseTeamDiscussionsSetting + """ + input: UpdateEnterpriseTeamDiscussionsSettingInput! + ): UpdateEnterpriseTeamDiscussionsSettingPayload + + """ + Sets whether two factor authentication is required for all users in an enterprise. + """ + updateEnterpriseTwoFactorAuthenticationRequiredSetting( + """ + Parameters for UpdateEnterpriseTwoFactorAuthenticationRequiredSetting + """ + input: UpdateEnterpriseTwoFactorAuthenticationRequiredSettingInput! + ): UpdateEnterpriseTwoFactorAuthenticationRequiredSettingPayload + + """ + Updates an environment. + """ + updateEnvironment( + """ + Parameters for UpdateEnvironment + """ + input: UpdateEnvironmentInput! + ): UpdateEnvironmentPayload + + """ + Sets whether an IP allow list is enabled on an owner. + """ + updateIpAllowListEnabledSetting( + """ + Parameters for UpdateIpAllowListEnabledSetting + """ + input: UpdateIpAllowListEnabledSettingInput! + ): UpdateIpAllowListEnabledSettingPayload + + """ + Updates an IP allow list entry. + """ + updateIpAllowListEntry( + """ + Parameters for UpdateIpAllowListEntry + """ + input: UpdateIpAllowListEntryInput! + ): UpdateIpAllowListEntryPayload + + """ + Sets whether IP allow list configuration for installed GitHub Apps is enabled on an owner. + """ + updateIpAllowListForInstalledAppsEnabledSetting( + """ + Parameters for UpdateIpAllowListForInstalledAppsEnabledSetting + """ + input: UpdateIpAllowListForInstalledAppsEnabledSettingInput! + ): UpdateIpAllowListForInstalledAppsEnabledSettingPayload + + """ + Updates an Issue. + """ + updateIssue( + """ + Parameters for UpdateIssue + """ + input: UpdateIssueInput! + ): UpdateIssuePayload + + """ + Updates an IssueComment object. + """ + updateIssueComment( + """ + Parameters for UpdateIssueComment + """ + input: UpdateIssueCommentInput! + ): UpdateIssueCommentPayload + + """ + Updates an existing label. + """ + updateLabel( + """ + Parameters for UpdateLabel + """ + input: UpdateLabelInput! + ): UpdateLabelPayload @preview(toggledBy: "bane-preview") + + """ + Update the setting to restrict notifications to only verified or approved domains available to an owner. + """ + updateNotificationRestrictionSetting( + """ + Parameters for UpdateNotificationRestrictionSetting + """ + input: UpdateNotificationRestrictionSettingInput! + ): UpdateNotificationRestrictionSettingPayload + + """ + Sets whether private repository forks are enabled for an organization. + """ + updateOrganizationAllowPrivateRepositoryForkingSetting( + """ + Parameters for UpdateOrganizationAllowPrivateRepositoryForkingSetting + """ + input: UpdateOrganizationAllowPrivateRepositoryForkingSettingInput! + ): UpdateOrganizationAllowPrivateRepositoryForkingSettingPayload + + """ + Sets whether contributors are required to sign off on web-based commits for repositories in an organization. + """ + updateOrganizationWebCommitSignoffSetting( + """ + Parameters for UpdateOrganizationWebCommitSignoffSetting + """ + input: UpdateOrganizationWebCommitSignoffSettingInput! + ): UpdateOrganizationWebCommitSignoffSettingPayload + + """ + Updates an existing project. + """ + updateProject( + """ + Parameters for UpdateProject + """ + input: UpdateProjectInput! + ): UpdateProjectPayload + + """ + Updates an existing project card. + """ + updateProjectCard( + """ + Parameters for UpdateProjectCard + """ + input: UpdateProjectCardInput! + ): UpdateProjectCardPayload + + """ + Updates an existing project column. + """ + updateProjectColumn( + """ + Parameters for UpdateProjectColumn + """ + input: UpdateProjectColumnInput! + ): UpdateProjectColumnPayload + + """ + Updates an existing project (beta). + """ + updateProjectV2( + """ + Parameters for UpdateProjectV2 + """ + input: UpdateProjectV2Input! + ): UpdateProjectV2Payload + + """ + Update the collaborators on a team or a project + """ + updateProjectV2Collaborators( + """ + Parameters for UpdateProjectV2Collaborators + """ + input: UpdateProjectV2CollaboratorsInput! + ): UpdateProjectV2CollaboratorsPayload + + """ + Updates a draft issue within a Project. + """ + updateProjectV2DraftIssue( + """ + Parameters for UpdateProjectV2DraftIssue + """ + input: UpdateProjectV2DraftIssueInput! + ): UpdateProjectV2DraftIssuePayload + + """ + This mutation updates the value of a field for an item in a Project. Currently + only single-select, text, number, date, and iteration fields are supported. + """ + updateProjectV2ItemFieldValue( + """ + Parameters for UpdateProjectV2ItemFieldValue + """ + input: UpdateProjectV2ItemFieldValueInput! + ): UpdateProjectV2ItemFieldValuePayload + + """ + This mutation updates the position of the item in the project, where the position represents the priority of an item. + """ + updateProjectV2ItemPosition( + """ + Parameters for UpdateProjectV2ItemPosition + """ + input: UpdateProjectV2ItemPositionInput! + ): UpdateProjectV2ItemPositionPayload + + """ + Update a pull request + """ + updatePullRequest( + """ + Parameters for UpdatePullRequest + """ + input: UpdatePullRequestInput! + ): UpdatePullRequestPayload + + """ + Merge or Rebase HEAD from upstream branch into pull request branch + """ + updatePullRequestBranch( + """ + Parameters for UpdatePullRequestBranch + """ + input: UpdatePullRequestBranchInput! + ): UpdatePullRequestBranchPayload + + """ + Updates the body of a pull request review. + """ + updatePullRequestReview( + """ + Parameters for UpdatePullRequestReview + """ + input: UpdatePullRequestReviewInput! + ): UpdatePullRequestReviewPayload + + """ + Updates a pull request review comment. + """ + updatePullRequestReviewComment( + """ + Parameters for UpdatePullRequestReviewComment + """ + input: UpdatePullRequestReviewCommentInput! + ): UpdatePullRequestReviewCommentPayload + + """ + Update a Git Ref. + """ + updateRef( + """ + Parameters for UpdateRef + """ + input: UpdateRefInput! + ): UpdateRefPayload + + """ + Creates, updates and/or deletes multiple refs in a repository. + + This mutation takes a list of `RefUpdate`s and performs these updates + on the repository. All updates are performed atomically, meaning that + if one of them is rejected, no other ref will be modified. + + `RefUpdate.beforeOid` specifies that the given reference needs to point + to the given value before performing any updates. A value of + `0000000000000000000000000000000000000000` can be used to verify that + the references should not exist. + + `RefUpdate.afterOid` specifies the value that the given reference + will point to after performing all updates. A value of + `0000000000000000000000000000000000000000` can be used to delete a + reference. + + If `RefUpdate.force` is set to `true`, a non-fast-forward updates + for the given reference will be allowed. + """ + updateRefs( + """ + Parameters for UpdateRefs + """ + input: UpdateRefsInput! + ): UpdateRefsPayload @preview(toggledBy: "update-refs-preview") + + """ + Update information about a repository. + """ + updateRepository( + """ + Parameters for UpdateRepository + """ + input: UpdateRepositoryInput! + ): UpdateRepositoryPayload + + """ + Update a repository ruleset + """ + updateRepositoryRuleset( + """ + Parameters for UpdateRepositoryRuleset + """ + input: UpdateRepositoryRulesetInput! + ): UpdateRepositoryRulesetPayload + + """ + Sets whether contributors are required to sign off on web-based commits for a repository. + """ + updateRepositoryWebCommitSignoffSetting( + """ + Parameters for UpdateRepositoryWebCommitSignoffSetting + """ + input: UpdateRepositoryWebCommitSignoffSettingInput! + ): UpdateRepositoryWebCommitSignoffSettingPayload + + """ + Change visibility of your sponsorship and opt in or out of email updates from the maintainer. + """ + updateSponsorshipPreferences( + """ + Parameters for UpdateSponsorshipPreferences + """ + input: UpdateSponsorshipPreferencesInput! + ): UpdateSponsorshipPreferencesPayload + + """ + Updates the state for subscribable subjects. + """ + updateSubscription( + """ + Parameters for UpdateSubscription + """ + input: UpdateSubscriptionInput! + ): UpdateSubscriptionPayload + + """ + Updates a team discussion. + """ + updateTeamDiscussion( + """ + Parameters for UpdateTeamDiscussion + """ + input: UpdateTeamDiscussionInput! + ): UpdateTeamDiscussionPayload + + """ + Updates a discussion comment. + """ + updateTeamDiscussionComment( + """ + Parameters for UpdateTeamDiscussionComment + """ + input: UpdateTeamDiscussionCommentInput! + ): UpdateTeamDiscussionCommentPayload + + """ + Updates team review assignment. + """ + updateTeamReviewAssignment( + """ + Parameters for UpdateTeamReviewAssignment + """ + input: UpdateTeamReviewAssignmentInput! + ): UpdateTeamReviewAssignmentPayload @preview(toggledBy: "stone-crop-preview") + + """ + Update team repository. + """ + updateTeamsRepository( + """ + Parameters for UpdateTeamsRepository + """ + input: UpdateTeamsRepositoryInput! + ): UpdateTeamsRepositoryPayload + + """ + Replaces the repository's topics with the given topics. + """ + updateTopics( + """ + Parameters for UpdateTopics + """ + input: UpdateTopicsInput! + ): UpdateTopicsPayload + + """ + Verify that a verifiable domain has the expected DNS record. + """ + verifyVerifiableDomain( + """ + Parameters for VerifyVerifiableDomain + """ + input: VerifyVerifiableDomainInput! + ): VerifyVerifiableDomainPayload +} + +""" +An object with an ID. +""" +interface Node { + """ + ID of the object. + """ + id: ID! +} + +""" +The possible values for the notification restriction setting. +""" +enum NotificationRestrictionSettingValue { + """ + The setting is disabled for the owner. + """ + DISABLED + + """ + The setting is enabled for the owner. + """ + ENABLED +} + +""" +An OIDC identity provider configured to provision identities for an enterprise. +Visible to enterprise owners or enterprise owners' personal access tokens +(classic) with read:enterprise or admin:enterprise scope. +""" +type OIDCProvider implements Node { + """ + The enterprise this identity provider belongs to. + """ + enterprise: Enterprise + + """ + ExternalIdentities provisioned by this identity provider. + """ + externalIdentities( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter to external identities with the users login + """ + login: String + + """ + Filter to external identities with valid org membership only + """ + membersOnly: Boolean + + """ + Filter to external identities with the users userName/NameID attribute + """ + userName: String + ): ExternalIdentityConnection! + id: ID! + + """ + The OIDC identity provider type + """ + providerType: OIDCProviderType! + + """ + The id of the tenant this provider is attached to + """ + tenantId: String! +} + +""" +The OIDC identity provider type +""" +enum OIDCProviderType { + """ + Azure Active Directory + """ + AAD +} + +""" +Metadata for an audit entry with action oauth_application.* +""" +interface OauthApplicationAuditEntryData { + """ + The name of the OAuth application. + """ + oauthApplicationName: String + + """ + The HTTP path for the OAuth application + """ + oauthApplicationResourcePath: URI + + """ + The HTTP URL for the OAuth application + """ + oauthApplicationUrl: URI +} + +""" +Audit log entry for a oauth_application.create event. +""" +type OauthApplicationCreateAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The application URL of the OAuth application. + """ + applicationUrl: URI + + """ + The callback URL of the OAuth application. + """ + callbackUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The name of the OAuth application. + """ + oauthApplicationName: String + + """ + The HTTP path for the OAuth application + """ + oauthApplicationResourcePath: URI + + """ + The HTTP URL for the OAuth application + """ + oauthApplicationUrl: URI + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The rate limit of the OAuth application. + """ + rateLimit: Int + + """ + The state of the OAuth application. + """ + state: OauthApplicationCreateAuditEntryState + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +The state of an OAuth application when it was created. +""" +enum OauthApplicationCreateAuditEntryState { + """ + The OAuth application was active and allowed to have OAuth Accesses. + """ + ACTIVE + + """ + The OAuth application was in the process of being deleted. + """ + PENDING_DELETION + + """ + The OAuth application was suspended from generating OAuth Accesses due to abuse or security concerns. + """ + SUSPENDED +} + +""" +The corresponding operation type for the action +""" +enum OperationType { + """ + An existing resource was accessed + """ + ACCESS + + """ + A resource performed an authentication event + """ + AUTHENTICATION + + """ + A new resource was created + """ + CREATE + + """ + An existing resource was modified + """ + MODIFY + + """ + An existing resource was removed + """ + REMOVE + + """ + An existing resource was restored + """ + RESTORE + + """ + An existing resource was transferred between multiple resources + """ + TRANSFER +} + +""" +Possible directions in which to order a list of items when provided an `orderBy` argument. +""" +enum OrderDirection { + """ + Specifies an ascending order for a given `orderBy` argument. + """ + ASC + + """ + Specifies a descending order for a given `orderBy` argument. + """ + DESC +} + +""" +Audit log entry for a org.add_billing_manager +""" +type OrgAddBillingManagerAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The email address used to invite a billing manager for the organization. + """ + invitationEmail: String + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a org.add_member +""" +type OrgAddMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The permission level of the member added to the organization. + """ + permission: OrgAddMemberAuditEntryPermission + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +The permissions available to members on an Organization. +""" +enum OrgAddMemberAuditEntryPermission { + """ + Can read, clone, push, and add collaborators to repositories. + """ + ADMIN + + """ + Can read and clone repositories. + """ + READ +} + +""" +Audit log entry for a org.block_user +""" +type OrgBlockUserAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The blocked user. + """ + blockedUser: User + + """ + The username of the blocked user. + """ + blockedUserName: String + + """ + The HTTP path for the blocked user. + """ + blockedUserResourcePath: URI + + """ + The HTTP URL for the blocked user. + """ + blockedUserUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a org.config.disable_collaborators_only event. +""" +type OrgConfigDisableCollaboratorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a org.config.enable_collaborators_only event. +""" +type OrgConfigEnableCollaboratorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a org.create event. +""" +type OrgCreateAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The billing plan for the Organization. + """ + billingPlan: OrgCreateAuditEntryBillingPlan + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +The billing plans available for organizations. +""" +enum OrgCreateAuditEntryBillingPlan { + """ + Team Plan + """ + BUSINESS + + """ + Enterprise Cloud Plan + """ + BUSINESS_PLUS + + """ + Free Plan + """ + FREE + + """ + Tiered Per Seat Plan + """ + TIERED_PER_SEAT + + """ + Legacy Unlimited Plan + """ + UNLIMITED +} + +""" +Audit log entry for a org.disable_oauth_app_restrictions event. +""" +type OrgDisableOauthAppRestrictionsAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a org.disable_saml event. +""" +type OrgDisableSamlAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + + """ + The SAML provider's digest algorithm URL. + """ + digestMethodUrl: URI + id: ID! + + """ + The SAML provider's issuer URL. + """ + issuerUrl: URI + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The SAML provider's signature algorithm URL. + """ + signatureMethodUrl: URI + + """ + The SAML provider's single sign-on URL. + """ + singleSignOnUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a org.disable_two_factor_requirement event. +""" +type OrgDisableTwoFactorRequirementAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a org.enable_oauth_app_restrictions event. +""" +type OrgEnableOauthAppRestrictionsAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a org.enable_saml event. +""" +type OrgEnableSamlAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + + """ + The SAML provider's digest algorithm URL. + """ + digestMethodUrl: URI + id: ID! + + """ + The SAML provider's issuer URL. + """ + issuerUrl: URI + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The SAML provider's signature algorithm URL. + """ + signatureMethodUrl: URI + + """ + The SAML provider's single sign-on URL. + """ + singleSignOnUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a org.enable_two_factor_requirement event. +""" +type OrgEnableTwoFactorRequirementAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Ordering options for an organization's enterprise owner connections. +""" +input OrgEnterpriseOwnerOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order enterprise owners by. + """ + field: OrgEnterpriseOwnerOrderField! +} + +""" +Properties by which enterprise owners can be ordered. +""" +enum OrgEnterpriseOwnerOrderField { + """ + Order enterprise owners by login. + """ + LOGIN +} + +""" +Audit log entry for a org.invite_member event. +""" +type OrgInviteMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + + """ + The email address of the organization invitation. + """ + email: String + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The organization invitation. + """ + organizationInvitation: OrganizationInvitation + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a org.invite_to_business event. +""" +type OrgInviteToBusinessAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + + """ + The HTTP path for this enterprise. + """ + enterpriseResourcePath: URI + + """ + The slug of the enterprise. + """ + enterpriseSlug: String + + """ + The HTTP URL for this enterprise. + """ + enterpriseUrl: URI + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a org.oauth_app_access_approved event. +""" +type OrgOauthAppAccessApprovedAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The name of the OAuth application. + """ + oauthApplicationName: String + + """ + The HTTP path for the OAuth application + """ + oauthApplicationResourcePath: URI + + """ + The HTTP URL for the OAuth application + """ + oauthApplicationUrl: URI + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a org.oauth_app_access_blocked event. +""" +type OrgOauthAppAccessBlockedAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The name of the OAuth application. + """ + oauthApplicationName: String + + """ + The HTTP path for the OAuth application + """ + oauthApplicationResourcePath: URI + + """ + The HTTP URL for the OAuth application + """ + oauthApplicationUrl: URI + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a org.oauth_app_access_denied event. +""" +type OrgOauthAppAccessDeniedAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The name of the OAuth application. + """ + oauthApplicationName: String + + """ + The HTTP path for the OAuth application + """ + oauthApplicationResourcePath: URI + + """ + The HTTP URL for the OAuth application + """ + oauthApplicationUrl: URI + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a org.oauth_app_access_requested event. +""" +type OrgOauthAppAccessRequestedAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The name of the OAuth application. + """ + oauthApplicationName: String + + """ + The HTTP path for the OAuth application + """ + oauthApplicationResourcePath: URI + + """ + The HTTP URL for the OAuth application + """ + oauthApplicationUrl: URI + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a org.oauth_app_access_unblocked event. +""" +type OrgOauthAppAccessUnblockedAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The name of the OAuth application. + """ + oauthApplicationName: String + + """ + The HTTP path for the OAuth application + """ + oauthApplicationResourcePath: URI + + """ + The HTTP URL for the OAuth application + """ + oauthApplicationUrl: URI + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a org.remove_billing_manager event. +""" +type OrgRemoveBillingManagerAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The reason for the billing manager being removed. + """ + reason: OrgRemoveBillingManagerAuditEntryReason + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +The reason a billing manager was removed from an Organization. +""" +enum OrgRemoveBillingManagerAuditEntryReason { + """ + SAML external identity missing + """ + SAML_EXTERNAL_IDENTITY_MISSING + + """ + SAML SSO enforcement requires an external identity + """ + SAML_SSO_ENFORCEMENT_REQUIRES_EXTERNAL_IDENTITY + + """ + The organization required 2FA of its billing managers and this user did not have 2FA enabled. + """ + TWO_FACTOR_REQUIREMENT_NON_COMPLIANCE +} + +""" +Audit log entry for a org.remove_member event. +""" +type OrgRemoveMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The types of membership the member has with the organization. + """ + membershipTypes: [OrgRemoveMemberAuditEntryMembershipType!] + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The reason for the member being removed. + """ + reason: OrgRemoveMemberAuditEntryReason + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +The type of membership a user has with an Organization. +""" +enum OrgRemoveMemberAuditEntryMembershipType { + """ + Organization administrators have full access and can change several settings, + including the names of repositories that belong to the Organization and Owners + team membership. In addition, organization admins can delete the organization + and all of its repositories. + """ + ADMIN + + """ + A billing manager is a user who manages the billing settings for the Organization, such as updating payment information. + """ + BILLING_MANAGER + + """ + A direct member is a user that is a member of the Organization. + """ + DIRECT_MEMBER + + """ + An outside collaborator is a person who isn't explicitly a member of the + Organization, but who has Read, Write, or Admin permissions to one or more + repositories in the organization. + """ + OUTSIDE_COLLABORATOR + + """ + A suspended member. + """ + SUSPENDED + + """ + An unaffiliated collaborator is a person who is not a member of the + Organization and does not have access to any repositories in the Organization. + """ + UNAFFILIATED +} + +""" +The reason a member was removed from an Organization. +""" +enum OrgRemoveMemberAuditEntryReason { + """ + SAML external identity missing + """ + SAML_EXTERNAL_IDENTITY_MISSING + + """ + SAML SSO enforcement requires an external identity + """ + SAML_SSO_ENFORCEMENT_REQUIRES_EXTERNAL_IDENTITY + + """ + User was removed from organization during account recovery + """ + TWO_FACTOR_ACCOUNT_RECOVERY + + """ + The organization required 2FA of its billing managers and this user did not have 2FA enabled. + """ + TWO_FACTOR_REQUIREMENT_NON_COMPLIANCE + + """ + User account has been deleted + """ + USER_ACCOUNT_DELETED +} + +""" +Audit log entry for a org.remove_outside_collaborator event. +""" +type OrgRemoveOutsideCollaboratorAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The types of membership the outside collaborator has with the organization. + """ + membershipTypes: [OrgRemoveOutsideCollaboratorAuditEntryMembershipType!] + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The reason for the outside collaborator being removed from the Organization. + """ + reason: OrgRemoveOutsideCollaboratorAuditEntryReason + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +The type of membership a user has with an Organization. +""" +enum OrgRemoveOutsideCollaboratorAuditEntryMembershipType { + """ + A billing manager is a user who manages the billing settings for the Organization, such as updating payment information. + """ + BILLING_MANAGER + + """ + An outside collaborator is a person who isn't explicitly a member of the + Organization, but who has Read, Write, or Admin permissions to one or more + repositories in the organization. + """ + OUTSIDE_COLLABORATOR + + """ + An unaffiliated collaborator is a person who is not a member of the + Organization and does not have access to any repositories in the organization. + """ + UNAFFILIATED +} + +""" +The reason an outside collaborator was removed from an Organization. +""" +enum OrgRemoveOutsideCollaboratorAuditEntryReason { + """ + SAML external identity missing + """ + SAML_EXTERNAL_IDENTITY_MISSING + + """ + The organization required 2FA of its billing managers and this user did not have 2FA enabled. + """ + TWO_FACTOR_REQUIREMENT_NON_COMPLIANCE +} + +""" +Audit log entry for a org.restore_member event. +""" +type OrgRestoreMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The number of custom email routings for the restored member. + """ + restoredCustomEmailRoutingsCount: Int + + """ + The number of issue assignments for the restored member. + """ + restoredIssueAssignmentsCount: Int + + """ + Restored organization membership objects. + """ + restoredMemberships: [OrgRestoreMemberAuditEntryMembership!] + + """ + The number of restored memberships. + """ + restoredMembershipsCount: Int + + """ + The number of repositories of the restored member. + """ + restoredRepositoriesCount: Int + + """ + The number of starred repositories for the restored member. + """ + restoredRepositoryStarsCount: Int + + """ + The number of watched repositories for the restored member. + """ + restoredRepositoryWatchesCount: Int + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Types of memberships that can be restored for an Organization member. +""" +union OrgRestoreMemberAuditEntryMembership = + OrgRestoreMemberMembershipOrganizationAuditEntryData + | OrgRestoreMemberMembershipRepositoryAuditEntryData + | OrgRestoreMemberMembershipTeamAuditEntryData + +""" +Metadata for an organization membership for org.restore_member actions +""" +type OrgRestoreMemberMembershipOrganizationAuditEntryData implements OrganizationAuditEntryData { + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI +} + +""" +Metadata for a repository membership for org.restore_member actions +""" +type OrgRestoreMemberMembershipRepositoryAuditEntryData implements RepositoryAuditEntryData { + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI +} + +""" +Metadata for a team membership for org.restore_member actions +""" +type OrgRestoreMemberMembershipTeamAuditEntryData implements TeamAuditEntryData { + """ + The team associated with the action + """ + team: Team + + """ + The name of the team + """ + teamName: String + + """ + The HTTP path for this team + """ + teamResourcePath: URI + + """ + The HTTP URL for this team + """ + teamUrl: URI +} + +""" +Audit log entry for a org.unblock_user +""" +type OrgUnblockUserAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The user being unblocked by the organization. + """ + blockedUser: User + + """ + The username of the blocked user. + """ + blockedUserName: String + + """ + The HTTP path for the blocked user. + """ + blockedUserResourcePath: URI + + """ + The HTTP URL for the blocked user. + """ + blockedUserUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a org.update_default_repository_permission +""" +type OrgUpdateDefaultRepositoryPermissionAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The new base repository permission level for the organization. + """ + permission: OrgUpdateDefaultRepositoryPermissionAuditEntryPermission + + """ + The former base repository permission level for the organization. + """ + permissionWas: OrgUpdateDefaultRepositoryPermissionAuditEntryPermission + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +The default permission a repository can have in an Organization. +""" +enum OrgUpdateDefaultRepositoryPermissionAuditEntryPermission { + """ + Can read, clone, push, and add collaborators to repositories. + """ + ADMIN + + """ + No default permission value. + """ + NONE + + """ + Can read and clone repositories. + """ + READ + + """ + Can read, clone and push to repositories. + """ + WRITE +} + +""" +Audit log entry for a org.update_member event. +""" +type OrgUpdateMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The new member permission level for the organization. + """ + permission: OrgUpdateMemberAuditEntryPermission + + """ + The former member permission level for the organization. + """ + permissionWas: OrgUpdateMemberAuditEntryPermission + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +The permissions available to members on an Organization. +""" +enum OrgUpdateMemberAuditEntryPermission { + """ + Can read, clone, push, and add collaborators to repositories. + """ + ADMIN + + """ + Can read and clone repositories. + """ + READ +} + +""" +Audit log entry for a org.update_member_repository_creation_permission event. +""" +type OrgUpdateMemberRepositoryCreationPermissionAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + Can members create repositories in the organization. + """ + canCreateRepositories: Boolean + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI + + """ + The permission for visibility level of repositories for this organization. + """ + visibility: OrgUpdateMemberRepositoryCreationPermissionAuditEntryVisibility +} + +""" +The permissions available for repository creation on an Organization. +""" +enum OrgUpdateMemberRepositoryCreationPermissionAuditEntryVisibility { + """ + All organization members are restricted from creating any repositories. + """ + ALL + + """ + All organization members are restricted from creating internal repositories. + """ + INTERNAL + + """ + All organization members are allowed to create any repositories. + """ + NONE + + """ + All organization members are restricted from creating private repositories. + """ + PRIVATE + + """ + All organization members are restricted from creating private or internal repositories. + """ + PRIVATE_INTERNAL + + """ + All organization members are restricted from creating public repositories. + """ + PUBLIC + + """ + All organization members are restricted from creating public or internal repositories. + """ + PUBLIC_INTERNAL + + """ + All organization members are restricted from creating public or private repositories. + """ + PUBLIC_PRIVATE +} + +""" +Audit log entry for a org.update_member_repository_invitation_permission event. +""" +type OrgUpdateMemberRepositoryInvitationPermissionAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + Can outside collaborators be invited to repositories in the organization. + """ + canInviteOutsideCollaboratorsToRepositories: Boolean + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +An account on GitHub, with one or more owners, that has repositories, members and teams. +""" +type Organization implements Actor & AnnouncementBanner & MemberStatusable & Node & PackageOwner & ProfileOwner & ProjectOwner & ProjectV2Owner & ProjectV2Recent & RepositoryDiscussionAuthor & RepositoryDiscussionCommentAuthor & RepositoryOwner & Sponsorable & UniformResourceLocatable { + """ + The text of the announcement + """ + announcement: String + + """ + The expiration date of the announcement, if any + """ + announcementExpiresAt: DateTime + + """ + Whether the announcement can be dismissed by the user + """ + announcementUserDismissible: Boolean + + """ + Determine if this repository owner has any items that can be pinned to their profile. + """ + anyPinnableItems( + """ + Filter to only a particular kind of pinnable item. + """ + type: PinnableItemType + ): Boolean! + + """ + Audit log entries of the organization + """ + auditLog( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the returned audit log entries. + """ + orderBy: AuditLogOrder = {field: CREATED_AT, direction: DESC} + + """ + The query string to filter audit entries + """ + query: String + ): OrganizationAuditEntryConnection! + + """ + A URL pointing to the organization's public avatar. + """ + avatarUrl( + """ + The size of the resulting square image. + """ + size: Int + ): URI! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The organization's public profile description. + """ + description: String + + """ + The organization's public profile description rendered to HTML. + """ + descriptionHTML: String + + """ + A list of domains owned by the organization. + """ + domains( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Filter by if the domain is approved. + """ + isApproved: Boolean = null + + """ + Filter by if the domain is verified. + """ + isVerified: Boolean = null + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for verifiable domains returned. + """ + orderBy: VerifiableDomainOrder = {field: DOMAIN, direction: ASC} + ): VerifiableDomainConnection + + """ + The organization's public email. + """ + email: String + + """ + A list of owners of the organization's enterprise account. + """ + enterpriseOwners( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for enterprise owners returned from the connection. + """ + orderBy: OrgEnterpriseOwnerOrder = {field: LOGIN, direction: ASC} + + """ + The organization role to filter by. + """ + organizationRole: RoleInOrganization + + """ + The search string to look for. + """ + query: String + ): OrganizationEnterpriseOwnerConnection! + + """ + The estimated next GitHub Sponsors payout for this user/organization in cents (USD). + """ + estimatedNextSponsorsPayoutInCents: Int! + + """ + True if this user/organization has a GitHub Sponsors listing. + """ + hasSponsorsListing: Boolean! + id: ID! + + """ + The interaction ability settings for this organization. + """ + interactionAbility: RepositoryInteractionAbility + + """ + The setting value for whether the organization has an IP allow list enabled. + """ + ipAllowListEnabledSetting: IpAllowListEnabledSettingValue! + + """ + The IP addresses that are allowed to access resources owned by the organization. + """ + ipAllowListEntries( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for IP allow list entries returned. + """ + orderBy: IpAllowListEntryOrder = {field: ALLOW_LIST_VALUE, direction: ASC} + ): IpAllowListEntryConnection! + + """ + The setting value for whether the organization has IP allow list configuration for installed GitHub Apps enabled. + """ + ipAllowListForInstalledAppsEnabledSetting: IpAllowListForInstalledAppsEnabledSettingValue! + + """ + Whether the given account is sponsoring this user/organization. + """ + isSponsoredBy( + """ + The target account's login. + """ + accountLogin: String! + ): Boolean! + + """ + True if the viewer is sponsored by this user/organization. + """ + isSponsoringViewer: Boolean! + + """ + Whether the organization has verified its profile email and website. + """ + isVerified: Boolean! + + """ + Showcases a selection of repositories and gists that the profile owner has + either curated or that have been selected automatically based on popularity. + """ + itemShowcase: ProfileItemShowcase! + + """ + The organization's public profile location. + """ + location: String + + """ + The organization's login name. + """ + login: String! + + """ + A list of all mannequins for this organization. + """ + mannequins( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter mannequins by login. + """ + login: String + + """ + Ordering options for mannequins returned from the connection. + """ + orderBy: MannequinOrder = {field: CREATED_AT, direction: ASC} + ): MannequinConnection! + + """ + Get the status messages members of this entity have set that are either public or visible only to the organization. + """ + memberStatuses( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for user statuses returned from the connection. + """ + orderBy: UserStatusOrder = {field: UPDATED_AT, direction: DESC} + ): UserStatusConnection! + + """ + Members can fork private repositories in this organization + """ + membersCanForkPrivateRepositories: Boolean! + + """ + A list of users who are members of this organization. + """ + membersWithRole( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): OrganizationMemberConnection! + + """ + The estimated monthly GitHub Sponsors income for this user/organization in cents (USD). + """ + monthlyEstimatedSponsorsIncomeInCents: Int! + + """ + The organization's public profile name. + """ + name: String + + """ + The HTTP path creating a new team + """ + newTeamResourcePath: URI! + + """ + The HTTP URL creating a new team + """ + newTeamUrl: URI! + + """ + Indicates if email notification delivery for this organization is restricted to verified or approved domains. + """ + notificationDeliveryRestrictionEnabledSetting: NotificationRestrictionSettingValue! + + """ + The billing email for the organization. + """ + organizationBillingEmail: String + + """ + A list of packages under the owner. + """ + packages( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Find packages by their names. + """ + names: [String] + + """ + Ordering of the returned packages. + """ + orderBy: PackageOrder = {field: CREATED_AT, direction: DESC} + + """ + Filter registry package by type. + """ + packageType: PackageType + + """ + Find packages in a repository by ID. + """ + repositoryId: ID + ): PackageConnection! + + """ + A list of users who have been invited to join this organization. + """ + pendingMembers( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserConnection! + + """ + A list of repositories and gists this profile owner can pin to their profile. + """ + pinnableItems( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter the types of pinnable items that are returned. + """ + types: [PinnableItemType!] + ): PinnableItemConnection! + + """ + A list of repositories and gists this profile owner has pinned to their profile + """ + pinnedItems( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter the types of pinned items that are returned. + """ + types: [PinnableItemType!] + ): PinnableItemConnection! + + """ + Returns how many more items this profile owner can pin to their profile. + """ + pinnedItemsRemaining: Int! + + """ + Find project by number. + """ + project( + """ + The project number to find. + """ + number: Int! + ): Project + + """ + Find a project by number. + """ + projectV2( + """ + The project number. + """ + number: Int! + ): ProjectV2 + + """ + A list of projects under the owner. + """ + projects( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for projects returned from the connection + """ + orderBy: ProjectOrder + + """ + Query to search projects by, currently only searching by name. + """ + search: String + + """ + A list of states to filter the projects by. + """ + states: [ProjectState!] + ): ProjectConnection! + + """ + The HTTP path listing organization's projects + """ + projectsResourcePath: URI! + + """ + The HTTP URL listing organization's projects + """ + projectsUrl: URI! + + """ + A list of projects under the owner. + """ + projectsV2( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + How to order the returned projects. + """ + orderBy: ProjectV2Order = {field: NUMBER, direction: DESC} + + """ + A project to search for under the the owner. + """ + query: String + ): ProjectV2Connection! + + """ + Recent projects that this user has modified in the context of the owner. + """ + recentProjects( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectV2Connection! + + """ + A list of repositories that the user owns. + """ + repositories( + """ + Array of viewer's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + current viewer owns. + """ + affiliations: [RepositoryAffiliation] + + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + If non-null, filters repositories according to whether they have issues enabled + """ + hasIssuesEnabled: Boolean + + """ + If non-null, filters repositories according to whether they are archived and not maintained + """ + isArchived: Boolean + + """ + If non-null, filters repositories according to whether they are forks of another repository + """ + isFork: Boolean + + """ + If non-null, filters repositories according to whether they have been locked + """ + isLocked: Boolean + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for repositories returned from the connection + """ + orderBy: RepositoryOrder + + """ + Array of owner's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + organization or user being viewed owns. + """ + ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR] + + """ + If non-null, filters repositories according to privacy + """ + privacy: RepositoryPrivacy + ): RepositoryConnection! + + """ + Find Repository. + """ + repository( + """ + Follow repository renames. If disabled, a repository referenced by its old name will return an error. + """ + followRenames: Boolean = true + + """ + Name of Repository to find. + """ + name: String! + ): Repository + + """ + Discussion comments this user has authored. + """ + repositoryDiscussionComments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter discussion comments to only those that were marked as the answer + """ + onlyAnswers: Boolean = false + + """ + Filter discussion comments to only those in a specific repository. + """ + repositoryId: ID + ): DiscussionCommentConnection! + + """ + Discussions this user has started. + """ + repositoryDiscussions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Filter discussions to only those that have been answered or not. Defaults to + including both answered and unanswered discussions. + """ + answered: Boolean = null + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for discussions returned from the connection. + """ + orderBy: DiscussionOrder = {field: CREATED_AT, direction: DESC} + + """ + Filter discussions to only those in a specific repository. + """ + repositoryId: ID + + """ + A list of states to filter the discussions by. + """ + states: [DiscussionState!] = [] + ): DiscussionConnection! + + """ + A list of all repository migrations for this organization. + """ + repositoryMigrations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for repository migrations returned. + """ + orderBy: RepositoryMigrationOrder = {field: CREATED_AT, direction: ASC} + + """ + Filter repository migrations by repository name. + """ + repositoryName: String + + """ + Filter repository migrations by state. + """ + state: MigrationState + ): RepositoryMigrationConnection! + + """ + When true the organization requires all members, billing managers, and outside + collaborators to enable two-factor authentication. + """ + requiresTwoFactorAuthentication: Boolean + + """ + The HTTP path for this organization. + """ + resourcePath: URI! + + """ + Returns a single ruleset from the current organization by ID. + """ + ruleset( + """ + The ID of the ruleset to be returned. + """ + databaseId: Int! + ): RepositoryRuleset + + """ + A list of rulesets for this organization. + """ + rulesets( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Return rulesets configured at higher levels that apply to this organization + """ + includeParents: Boolean = true + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): RepositoryRulesetConnection + + """ + The Organization's SAML identity provider. Visible to (1) organization owners, + (2) organization owners' personal access tokens (classic) with read:org or + admin:org scope, (3) GitHub App with an installation token with read or write + access to members. + """ + samlIdentityProvider: OrganizationIdentityProvider + + """ + List of users and organizations this entity is sponsoring. + """ + sponsoring( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the users and organizations returned from the connection. + """ + orderBy: SponsorOrder = {field: RELEVANCE, direction: DESC} + ): SponsorConnection! + + """ + List of sponsors for this user or organization. + """ + sponsors( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for sponsors returned from the connection. + """ + orderBy: SponsorOrder = {field: RELEVANCE, direction: DESC} + + """ + If given, will filter for sponsors at the given tier. Will only return + sponsors whose tier the viewer is permitted to see. + """ + tierId: ID + ): SponsorConnection! + + """ + Events involving this sponsorable, such as new sponsorships. + """ + sponsorsActivities( + """ + Filter activities to only the specified actions. + """ + actions: [SponsorsActivityAction!] = [] + + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Whether to include those events where this sponsorable acted as the sponsor. + Defaults to only including events where this sponsorable was the recipient + of a sponsorship. + """ + includeAsSponsor: Boolean = false + + """ + Whether or not to include private activities in the result set. Defaults to including public and private activities. + """ + includePrivate: Boolean = true + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for activity returned from the connection. + """ + orderBy: SponsorsActivityOrder = {field: TIMESTAMP, direction: DESC} + + """ + Filter activities returned to only those that occurred in the most recent + specified time period. Set to ALL to avoid filtering by when the activity + occurred. Will be ignored if `since` or `until` is given. + """ + period: SponsorsActivityPeriod = MONTH + + """ + Filter activities to those that occurred on or after this time. + """ + since: DateTime + + """ + Filter activities to those that occurred before this time. + """ + until: DateTime + ): SponsorsActivityConnection! + + """ + The GitHub Sponsors listing for this user or organization. + """ + sponsorsListing: SponsorsListing + + """ + The sponsorship from the viewer to this user/organization; that is, the sponsorship where you're the sponsor. + """ + sponsorshipForViewerAsSponsor( + """ + Whether to return the sponsorship only if it's still active. Pass false to + get the viewer's sponsorship back even if it has been cancelled. + """ + activeOnly: Boolean = true + ): Sponsorship + + """ + The sponsorship from this user/organization to the viewer; that is, the sponsorship you're receiving. + """ + sponsorshipForViewerAsSponsorable( + """ + Whether to return the sponsorship only if it's still active. Pass false to + get the sponsorship back even if it has been cancelled. + """ + activeOnly: Boolean = true + ): Sponsorship + + """ + List of sponsorship updates sent from this sponsorable to sponsors. + """ + sponsorshipNewsletters( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for sponsorship updates returned from the connection. + """ + orderBy: SponsorshipNewsletterOrder = {field: CREATED_AT, direction: DESC} + ): SponsorshipNewsletterConnection! + + """ + The sponsorships where this user or organization is the maintainer receiving the funds. + """ + sponsorshipsAsMaintainer( + """ + Whether to include only sponsorships that are active right now, versus all + sponsorships this maintainer has ever received. + """ + activeOnly: Boolean = true + + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Whether or not to include private sponsorships in the result set + """ + includePrivate: Boolean = false + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for sponsorships returned from this connection. If left + blank, the sponsorships will be ordered based on relevancy to the viewer. + """ + orderBy: SponsorshipOrder + ): SponsorshipConnection! + + """ + The sponsorships where this user or organization is the funder. + """ + sponsorshipsAsSponsor( + """ + Whether to include only sponsorships that are active right now, versus all sponsorships this sponsor has ever made. + """ + activeOnly: Boolean = true + + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter sponsorships returned to those for the specified maintainers. That + is, the recipient of the sponsorship is a user or organization with one of + the given logins. + """ + maintainerLogins: [String!] + + """ + Ordering options for sponsorships returned from this connection. If left + blank, the sponsorships will be ordered based on relevancy to the viewer. + """ + orderBy: SponsorshipOrder + ): SponsorshipConnection! + + """ + Find an organization's team by its slug. + """ + team( + """ + The name or slug of the team to find. + """ + slug: String! + ): Team + + """ + A list of teams in this organization. + """ + teams( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + If true, filters teams that are mapped to an LDAP Group (Enterprise only) + """ + ldapMapped: Boolean + + """ + If non-null, filters teams according to notification setting + """ + notificationSetting: TeamNotificationSetting + + """ + Ordering options for teams returned from the connection + """ + orderBy: TeamOrder + + """ + If non-null, filters teams according to privacy + """ + privacy: TeamPrivacy + + """ + If non-null, filters teams with query on team name and team slug + """ + query: String + + """ + If non-null, filters teams according to whether the viewer is an admin or member on team + """ + role: TeamRole + + """ + If true, restrict to only root teams + """ + rootTeamsOnly: Boolean = false + + """ + User logins to filter by + """ + userLogins: [String!] + ): TeamConnection! + + """ + The HTTP path listing organization's teams + """ + teamsResourcePath: URI! + + """ + The HTTP URL listing organization's teams + """ + teamsUrl: URI! + + """ + The amount in United States cents (e.g., 500 = $5.00 USD) that this entity has + spent on GitHub to fund sponsorships. Only returns a value when viewed by the + user themselves or by a user who can manage sponsorships for the requested organization. + """ + totalSponsorshipAmountAsSponsorInCents( + """ + Filter payments to those that occurred on or after this time. + """ + since: DateTime + + """ + Filter payments to those made to the users or organizations with the specified usernames. + """ + sponsorableLogins: [String!] = [] + + """ + Filter payments to those that occurred before this time. + """ + until: DateTime + ): Int + + """ + The organization's Twitter username. + """ + twitterUsername: String + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this organization. + """ + url: URI! + + """ + Organization is adminable by the viewer. + """ + viewerCanAdminister: Boolean! + + """ + Can the viewer pin repositories and gists to the profile? + """ + viewerCanChangePinnedItems: Boolean! + + """ + Can the current viewer create new projects on this owner. + """ + viewerCanCreateProjects: Boolean! + + """ + Viewer can create repositories on this organization + """ + viewerCanCreateRepositories: Boolean! + + """ + Viewer can create teams on this organization. + """ + viewerCanCreateTeams: Boolean! + + """ + Whether or not the viewer is able to sponsor this user/organization. + """ + viewerCanSponsor: Boolean! + + """ + Viewer is an active member of this organization. + """ + viewerIsAMember: Boolean! + + """ + Whether or not this Organization is followed by the viewer. + """ + viewerIsFollowing: Boolean! + + """ + True if the viewer is sponsoring this user/organization. + """ + viewerIsSponsoring: Boolean! + + """ + Whether contributors are required to sign off on web-based commits for repositories in this organization. + """ + webCommitSignoffRequired: Boolean! + + """ + The organization's public profile URL. + """ + websiteUrl: URI +} + +""" +An audit entry in an organization audit log. +""" +union OrganizationAuditEntry = + MembersCanDeleteReposClearAuditEntry + | MembersCanDeleteReposDisableAuditEntry + | MembersCanDeleteReposEnableAuditEntry + | OauthApplicationCreateAuditEntry + | OrgAddBillingManagerAuditEntry + | OrgAddMemberAuditEntry + | OrgBlockUserAuditEntry + | OrgConfigDisableCollaboratorsOnlyAuditEntry + | OrgConfigEnableCollaboratorsOnlyAuditEntry + | OrgCreateAuditEntry + | OrgDisableOauthAppRestrictionsAuditEntry + | OrgDisableSamlAuditEntry + | OrgDisableTwoFactorRequirementAuditEntry + | OrgEnableOauthAppRestrictionsAuditEntry + | OrgEnableSamlAuditEntry + | OrgEnableTwoFactorRequirementAuditEntry + | OrgInviteMemberAuditEntry + | OrgInviteToBusinessAuditEntry + | OrgOauthAppAccessApprovedAuditEntry + | OrgOauthAppAccessBlockedAuditEntry + | OrgOauthAppAccessDeniedAuditEntry + | OrgOauthAppAccessRequestedAuditEntry + | OrgOauthAppAccessUnblockedAuditEntry + | OrgRemoveBillingManagerAuditEntry + | OrgRemoveMemberAuditEntry + | OrgRemoveOutsideCollaboratorAuditEntry + | OrgRestoreMemberAuditEntry + | OrgUnblockUserAuditEntry + | OrgUpdateDefaultRepositoryPermissionAuditEntry + | OrgUpdateMemberAuditEntry + | OrgUpdateMemberRepositoryCreationPermissionAuditEntry + | OrgUpdateMemberRepositoryInvitationPermissionAuditEntry + | PrivateRepositoryForkingDisableAuditEntry + | PrivateRepositoryForkingEnableAuditEntry + | RepoAccessAuditEntry + | RepoAddMemberAuditEntry + | RepoAddTopicAuditEntry + | RepoArchivedAuditEntry + | RepoChangeMergeSettingAuditEntry + | RepoConfigDisableAnonymousGitAccessAuditEntry + | RepoConfigDisableCollaboratorsOnlyAuditEntry + | RepoConfigDisableContributorsOnlyAuditEntry + | RepoConfigDisableSockpuppetDisallowedAuditEntry + | RepoConfigEnableAnonymousGitAccessAuditEntry + | RepoConfigEnableCollaboratorsOnlyAuditEntry + | RepoConfigEnableContributorsOnlyAuditEntry + | RepoConfigEnableSockpuppetDisallowedAuditEntry + | RepoConfigLockAnonymousGitAccessAuditEntry + | RepoConfigUnlockAnonymousGitAccessAuditEntry + | RepoCreateAuditEntry + | RepoDestroyAuditEntry + | RepoRemoveMemberAuditEntry + | RepoRemoveTopicAuditEntry + | RepositoryVisibilityChangeDisableAuditEntry + | RepositoryVisibilityChangeEnableAuditEntry + | TeamAddMemberAuditEntry + | TeamAddRepositoryAuditEntry + | TeamChangeParentTeamAuditEntry + | TeamRemoveMemberAuditEntry + | TeamRemoveRepositoryAuditEntry + +""" +The connection type for OrganizationAuditEntry. +""" +type OrganizationAuditEntryConnection { + """ + A list of edges. + """ + edges: [OrganizationAuditEntryEdge] + + """ + A list of nodes. + """ + nodes: [OrganizationAuditEntry] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Metadata for an audit entry with action org.* +""" +interface OrganizationAuditEntryData { + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI +} + +""" +An edge in a connection. +""" +type OrganizationAuditEntryEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: OrganizationAuditEntry +} + +""" +A list of organizations managed by an enterprise. +""" +type OrganizationConnection { + """ + A list of edges. + """ + edges: [OrganizationEdge] + + """ + A list of nodes. + """ + nodes: [Organization] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type OrganizationEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Organization +} + +""" +The connection type for User. +""" +type OrganizationEnterpriseOwnerConnection { + """ + A list of edges. + """ + edges: [OrganizationEnterpriseOwnerEdge] + + """ + A list of nodes. + """ + nodes: [User] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An enterprise owner in the context of an organization that is part of the enterprise. +""" +type OrganizationEnterpriseOwnerEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: User + + """ + The role of the owner with respect to the organization. + """ + organizationRole: RoleInOrganization! +} + +""" +An Identity Provider configured to provision SAML and SCIM identities for +Organizations. Visible to (1) organization owners, (2) organization owners' +personal access tokens (classic) with read:org or admin:org scope, (3) GitHub +App with an installation token with read or write access to members. +""" +type OrganizationIdentityProvider implements Node { + """ + The digest algorithm used to sign SAML requests for the Identity Provider. + """ + digestMethod: URI + + """ + External Identities provisioned by this Identity Provider + """ + externalIdentities( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter to external identities with the users login + """ + login: String + + """ + Filter to external identities with valid org membership only + """ + membersOnly: Boolean + + """ + Filter to external identities with the users userName/NameID attribute + """ + userName: String + ): ExternalIdentityConnection! + id: ID! + + """ + The x509 certificate used by the Identity Provider to sign assertions and responses. + """ + idpCertificate: X509Certificate + + """ + The Issuer Entity ID for the SAML Identity Provider + """ + issuer: String + + """ + Organization this Identity Provider belongs to + """ + organization: Organization + + """ + The signature algorithm used to sign SAML requests for the Identity Provider. + """ + signatureMethod: URI + + """ + The URL endpoint for the Identity Provider's SAML SSO. + """ + ssoUrl: URI +} + +""" +An Invitation for a user to an organization. +""" +type OrganizationInvitation implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The email address of the user invited to the organization. + """ + email: String + id: ID! + + """ + The source of the invitation. + """ + invitationSource: OrganizationInvitationSource! + + """ + The type of invitation that was sent (e.g. email, user). + """ + invitationType: OrganizationInvitationType! + + """ + The user who was invited to the organization. + """ + invitee: User + + """ + The user who created the invitation. + """ + inviter: User! + + """ + The organization the invite is for + """ + organization: Organization! + + """ + The user's pending role in the organization (e.g. member, owner). + """ + role: OrganizationInvitationRole! +} + +""" +The connection type for OrganizationInvitation. +""" +type OrganizationInvitationConnection { + """ + A list of edges. + """ + edges: [OrganizationInvitationEdge] + + """ + A list of nodes. + """ + nodes: [OrganizationInvitation] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type OrganizationInvitationEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: OrganizationInvitation +} + +""" +The possible organization invitation roles. +""" +enum OrganizationInvitationRole { + """ + The user is invited to be an admin of the organization. + """ + ADMIN + + """ + The user is invited to be a billing manager of the organization. + """ + BILLING_MANAGER + + """ + The user is invited to be a direct member of the organization. + """ + DIRECT_MEMBER + + """ + The user's previous role will be reinstated. + """ + REINSTATE +} + +""" +The possible organization invitation sources. +""" +enum OrganizationInvitationSource { + """ + The invitation was created from the web interface or from API + """ + MEMBER + + """ + The invitation was created from SCIM + """ + SCIM + + """ + The invitation was sent before this feature was added + """ + UNKNOWN +} + +""" +The possible organization invitation types. +""" +enum OrganizationInvitationType { + """ + The invitation was to an email address. + """ + EMAIL + + """ + The invitation was to an existing user. + """ + USER +} + +""" +The connection type for User. +""" +type OrganizationMemberConnection { + """ + A list of edges. + """ + edges: [OrganizationMemberEdge] + + """ + A list of nodes. + """ + nodes: [User] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Represents a user within an organization. +""" +type OrganizationMemberEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + Whether the organization member has two factor enabled or not. Returns null if information is not available to viewer. + """ + hasTwoFactorEnabled: Boolean + + """ + The item at the end of the edge. + """ + node: User + + """ + The role this user has in the organization. + """ + role: OrganizationMemberRole +} + +""" +The possible roles within an organization for its members. +""" +enum OrganizationMemberRole { + """ + The user is an administrator of the organization. + """ + ADMIN + + """ + The user is a member of the organization. + """ + MEMBER +} + +""" +The possible values for the members can create repositories setting on an organization. +""" +enum OrganizationMembersCanCreateRepositoriesSettingValue { + """ + Members will be able to create public and private repositories. + """ + ALL + + """ + Members will not be able to create public or private repositories. + """ + DISABLED + + """ + Members will be able to create only internal repositories. + """ + INTERNAL + + """ + Members will be able to create only private repositories. + """ + PRIVATE +} + +""" +A GitHub Enterprise Importer (GEI) organization migration. +""" +type OrganizationMigration implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: String + + """ + The reason the organization migration failed. + """ + failureReason: String + id: ID! + + """ + The remaining amount of repos to be migrated. + """ + remainingRepositoriesCount: Int + + """ + The name of the source organization to be migrated. + """ + sourceOrgName: String! + + """ + The URL of the source organization to migrate. + """ + sourceOrgUrl: URI! + + """ + The migration state. + """ + state: OrganizationMigrationState! + + """ + The name of the target organization. + """ + targetOrgName: String! + + """ + The total amount of repositories to be migrated. + """ + totalRepositoriesCount: Int +} + +""" +The Octoshift Organization migration state. +""" +enum OrganizationMigrationState { + """ + The Octoshift migration has failed. + """ + FAILED + + """ + The Octoshift migration has invalid credentials. + """ + FAILED_VALIDATION + + """ + The Octoshift migration is in progress. + """ + IN_PROGRESS + + """ + The Octoshift migration has not started. + """ + NOT_STARTED + + """ + The Octoshift migration needs to have its credentials validated. + """ + PENDING_VALIDATION + + """ + The Octoshift migration is performing post repository migrations. + """ + POST_REPO_MIGRATION + + """ + The Octoshift migration is performing pre repository migrations. + """ + PRE_REPO_MIGRATION + + """ + The Octoshift migration has been queued. + """ + QUEUED + + """ + The Octoshift org migration is performing repository migrations. + """ + REPO_MIGRATION + + """ + The Octoshift migration has succeeded. + """ + SUCCEEDED +} + +""" +Used for argument of CreateProjectV2 mutation. +""" +union OrganizationOrUser = Organization | User + +""" +Ordering options for organization connections. +""" +input OrganizationOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order organizations by. + """ + field: OrganizationOrderField! +} + +""" +Properties by which organization connections can be ordered. +""" +enum OrganizationOrderField { + """ + Order organizations by creation time + """ + CREATED_AT + + """ + Order organizations by login + """ + LOGIN +} + +""" +An organization teams hovercard context +""" +type OrganizationTeamsHovercardContext implements HovercardContext { + """ + A string describing this context + """ + message: String! + + """ + An octicon to accompany this context + """ + octicon: String! + + """ + Teams in this organization the user is a member of that are relevant + """ + relevantTeams( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): TeamConnection! + + """ + The path for the full team list for this user + """ + teamsResourcePath: URI! + + """ + The URL for the full team list for this user + """ + teamsUrl: URI! + + """ + The total number of teams the user is on in the organization + """ + totalTeamCount: Int! +} + +""" +An organization list hovercard context +""" +type OrganizationsHovercardContext implements HovercardContext { + """ + A string describing this context + """ + message: String! + + """ + An octicon to accompany this context + """ + octicon: String! + + """ + Organizations this user is a member of that are relevant + """ + relevantOrganizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the User's organizations. + """ + orderBy: OrganizationOrder = null + ): OrganizationConnection! + + """ + The total number of organizations this user is in + """ + totalOrganizationCount: Int! +} + +""" +Information for an uploaded package. +""" +type Package implements Node { + id: ID! + + """ + Find the latest version for the package. + """ + latestVersion: PackageVersion + + """ + Identifies the name of the package. + """ + name: String! + + """ + Identifies the type of the package. + """ + packageType: PackageType! + + """ + The repository this package belongs to. + """ + repository: Repository + + """ + Statistics about package activity. + """ + statistics: PackageStatistics + + """ + Find package version by version string. + """ + version( + """ + The package version. + """ + version: String! + ): PackageVersion + + """ + list of versions for this package + """ + versions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering of the returned packages. + """ + orderBy: PackageVersionOrder = {field: CREATED_AT, direction: DESC} + ): PackageVersionConnection! +} + +""" +The connection type for Package. +""" +type PackageConnection { + """ + A list of edges. + """ + edges: [PackageEdge] + + """ + A list of nodes. + """ + nodes: [Package] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type PackageEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Package +} + +""" +A file in a package version. +""" +type PackageFile implements Node { + id: ID! + + """ + MD5 hash of the file. + """ + md5: String + + """ + Name of the file. + """ + name: String! + + """ + The package version this file belongs to. + """ + packageVersion: PackageVersion + + """ + SHA1 hash of the file. + """ + sha1: String + + """ + SHA256 hash of the file. + """ + sha256: String + + """ + Size of the file in bytes. + """ + size: Int + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + URL to download the asset. + """ + url: URI +} + +""" +The connection type for PackageFile. +""" +type PackageFileConnection { + """ + A list of edges. + """ + edges: [PackageFileEdge] + + """ + A list of nodes. + """ + nodes: [PackageFile] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type PackageFileEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PackageFile +} + +""" +Ways in which lists of package files can be ordered upon return. +""" +input PackageFileOrder { + """ + The direction in which to order package files by the specified field. + """ + direction: OrderDirection + + """ + The field in which to order package files by. + """ + field: PackageFileOrderField +} + +""" +Properties by which package file connections can be ordered. +""" +enum PackageFileOrderField { + """ + Order package files by creation time + """ + CREATED_AT +} + +""" +Ways in which lists of packages can be ordered upon return. +""" +input PackageOrder { + """ + The direction in which to order packages by the specified field. + """ + direction: OrderDirection + + """ + The field in which to order packages by. + """ + field: PackageOrderField +} + +""" +Properties by which package connections can be ordered. +""" +enum PackageOrderField { + """ + Order packages by creation time + """ + CREATED_AT +} + +""" +Represents an owner of a package. +""" +interface PackageOwner { + id: ID! + + """ + A list of packages under the owner. + """ + packages( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Find packages by their names. + """ + names: [String] + + """ + Ordering of the returned packages. + """ + orderBy: PackageOrder = {field: CREATED_AT, direction: DESC} + + """ + Filter registry package by type. + """ + packageType: PackageType + + """ + Find packages in a repository by ID. + """ + repositoryId: ID + ): PackageConnection! +} + +""" +Represents a object that contains package activity statistics such as downloads. +""" +type PackageStatistics { + """ + Number of times the package was downloaded since it was created. + """ + downloadsTotalCount: Int! +} + +""" +A version tag contains the mapping between a tag name and a version. +""" +type PackageTag implements Node { + id: ID! + + """ + Identifies the tag name of the version. + """ + name: String! + + """ + Version that the tag is associated with. + """ + version: PackageVersion +} + +""" +The possible types of a package. +""" +enum PackageType { + """ + A debian package. + """ + DEBIAN + + """ + A docker image. + """ + DOCKER + @deprecated( + reason: "DOCKER will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2021-06-21 UTC." + ) + + """ + A maven package. + """ + MAVEN + @deprecated( + reason: "MAVEN will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2023-02-10 UTC." + ) + + """ + An npm package. + """ + NPM + @deprecated( + reason: "NPM will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2022-11-21 UTC." + ) + + """ + A nuget package. + """ + NUGET + @deprecated( + reason: "NUGET will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2022-11-21 UTC." + ) + + """ + A python package. + """ + PYPI + + """ + A rubygems package. + """ + RUBYGEMS + @deprecated( + reason: "RUBYGEMS will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2022-12-28 UTC." + ) +} + +""" +Information about a specific package version. +""" +type PackageVersion implements Node { + """ + List of files associated with this package version + """ + files( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering of the returned package files. + """ + orderBy: PackageFileOrder = {field: CREATED_AT, direction: ASC} + ): PackageFileConnection! + id: ID! + + """ + The package associated with this version. + """ + package: Package + + """ + The platform this version was built for. + """ + platform: String + + """ + Whether or not this version is a pre-release. + """ + preRelease: Boolean! + + """ + The README of this package version. + """ + readme: String + + """ + The release associated with this package version. + """ + release: Release + + """ + Statistics about package activity. + """ + statistics: PackageVersionStatistics + + """ + The package version summary. + """ + summary: String + + """ + The version string. + """ + version: String! +} + +""" +The connection type for PackageVersion. +""" +type PackageVersionConnection { + """ + A list of edges. + """ + edges: [PackageVersionEdge] + + """ + A list of nodes. + """ + nodes: [PackageVersion] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type PackageVersionEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PackageVersion +} + +""" +Ways in which lists of package versions can be ordered upon return. +""" +input PackageVersionOrder { + """ + The direction in which to order package versions by the specified field. + """ + direction: OrderDirection + + """ + The field in which to order package versions by. + """ + field: PackageVersionOrderField +} + +""" +Properties by which package version connections can be ordered. +""" +enum PackageVersionOrderField { + """ + Order package versions by creation time + """ + CREATED_AT +} + +""" +Represents a object that contains package version activity statistics such as downloads. +""" +type PackageVersionStatistics { + """ + Number of times the package was downloaded since it was created. + """ + downloadsTotalCount: Int! +} + +""" +Information about pagination in a connection. +""" +type PageInfo { + """ + When paginating forwards, the cursor to continue. + """ + endCursor: String + + """ + When paginating forwards, are there more items? + """ + hasNextPage: Boolean! + + """ + When paginating backwards, are there more items? + """ + hasPreviousPage: Boolean! + + """ + When paginating backwards, the cursor to continue. + """ + startCursor: String +} + +""" +The possible types of patch statuses. +""" +enum PatchStatus { + """ + The file was added. Git status 'A'. + """ + ADDED + + """ + The file's type was changed. Git status 'T'. + """ + CHANGED + + """ + The file was copied. Git status 'C'. + """ + COPIED + + """ + The file was deleted. Git status 'D'. + """ + DELETED + + """ + The file's contents were changed. Git status 'M'. + """ + MODIFIED + + """ + The file was renamed. Git status 'R'. + """ + RENAMED +} + +""" +Types that can grant permissions on a repository to a user +""" +union PermissionGranter = Organization | Repository | Team + +""" +A level of permission and source for a user's access to a repository. +""" +type PermissionSource { + """ + The organization the repository belongs to. + """ + organization: Organization! + + """ + The level of access this source has granted to the user. + """ + permission: DefaultRepositoryPermissionField! + + """ + The source of this permission. + """ + source: PermissionGranter! +} + +""" +Autogenerated input type of PinIssue +""" +input PinIssueInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the issue to be pinned + """ + issueId: ID! @possibleTypes(concreteTypes: ["Issue"]) +} + +""" +Autogenerated return type of PinIssue +""" +type PinIssuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The issue that was pinned + """ + issue: Issue +} + +""" +Types that can be pinned to a profile page. +""" +union PinnableItem = Gist | Repository + +""" +The connection type for PinnableItem. +""" +type PinnableItemConnection { + """ + A list of edges. + """ + edges: [PinnableItemEdge] + + """ + A list of nodes. + """ + nodes: [PinnableItem] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type PinnableItemEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PinnableItem +} + +""" +Represents items that can be pinned to a profile page or dashboard. +""" +enum PinnableItemType { + """ + A gist. + """ + GIST + + """ + An issue. + """ + ISSUE + + """ + An organization. + """ + ORGANIZATION + + """ + A project. + """ + PROJECT + + """ + A pull request. + """ + PULL_REQUEST + + """ + A repository. + """ + REPOSITORY + + """ + A team. + """ + TEAM + + """ + A user. + """ + USER +} + +""" +A Pinned Discussion is a discussion pinned to a repository's index page. +""" +type PinnedDiscussion implements Node & RepositoryNode { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The discussion that was pinned. + """ + discussion: Discussion! + + """ + Color stops of the chosen gradient + """ + gradientStopColors: [String!]! + id: ID! + + """ + Background texture pattern + """ + pattern: PinnedDiscussionPattern! + + """ + The actor that pinned this discussion. + """ + pinnedBy: Actor! + + """ + Preconfigured background gradient option + """ + preconfiguredGradient: PinnedDiscussionGradient + + """ + The repository associated with this node. + """ + repository: Repository! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The connection type for PinnedDiscussion. +""" +type PinnedDiscussionConnection { + """ + A list of edges. + """ + edges: [PinnedDiscussionEdge] + + """ + A list of nodes. + """ + nodes: [PinnedDiscussion] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type PinnedDiscussionEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PinnedDiscussion +} + +""" +Preconfigured gradients that may be used to style discussions pinned within a repository. +""" +enum PinnedDiscussionGradient { + """ + A gradient of blue to mint + """ + BLUE_MINT + + """ + A gradient of blue to purple + """ + BLUE_PURPLE + + """ + A gradient of pink to blue + """ + PINK_BLUE + + """ + A gradient of purple to coral + """ + PURPLE_CORAL + + """ + A gradient of red to orange + """ + RED_ORANGE +} + +""" +Preconfigured background patterns that may be used to style discussions pinned within a repository. +""" +enum PinnedDiscussionPattern { + """ + An upward-facing chevron pattern + """ + CHEVRON_UP + + """ + A hollow dot pattern + """ + DOT + + """ + A solid dot pattern + """ + DOT_FILL + + """ + A heart pattern + """ + HEART_FILL + + """ + A plus sign pattern + """ + PLUS + + """ + A lightning bolt pattern + """ + ZAP +} + +""" +Represents a 'pinned' event on a given issue or pull request. +""" +type PinnedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Identifies the issue associated with the event. + """ + issue: Issue! +} + +""" +A Pinned Issue is a issue pinned to a repository's index page. +""" +type PinnedIssue implements Node { + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + Identifies the primary key from the database as a BigInt. + """ + fullDatabaseId: BigInt + id: ID! + + """ + The issue that was pinned. + """ + issue: Issue! + + """ + The actor that pinned this issue. + """ + pinnedBy: Actor! + + """ + The repository that this issue was pinned to. + """ + repository: Repository! +} + +""" +The connection type for PinnedIssue. +""" +type PinnedIssueConnection { + """ + A list of edges. + """ + edges: [PinnedIssueEdge] + + """ + A list of nodes. + """ + nodes: [PinnedIssue] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type PinnedIssueEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PinnedIssue +} + +""" +An ISO-8601 encoded UTC date string with millisecond precision. +""" +scalar PreciseDateTime + +""" +Audit log entry for a private_repository_forking.disable event. +""" +type PrivateRepositoryForkingDisableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + + """ + The HTTP path for this enterprise. + """ + enterpriseResourcePath: URI + + """ + The slug of the enterprise. + """ + enterpriseSlug: String + + """ + The HTTP URL for this enterprise. + """ + enterpriseUrl: URI + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a private_repository_forking.enable event. +""" +type PrivateRepositoryForkingEnableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + + """ + The HTTP path for this enterprise. + """ + enterpriseResourcePath: URI + + """ + The slug of the enterprise. + """ + enterpriseSlug: String + + """ + The HTTP URL for this enterprise. + """ + enterpriseUrl: URI + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +A curatable list of repositories relating to a repository owner, which defaults +to showing the most popular repositories they own. +""" +type ProfileItemShowcase { + """ + Whether or not the owner has pinned any repositories or gists. + """ + hasPinnedItems: Boolean! + + """ + The repositories and gists in the showcase. If the profile owner has any + pinned items, those will be returned. Otherwise, the profile owner's popular + repositories will be returned. + """ + items( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): PinnableItemConnection! +} + +""" +Represents any entity on GitHub that has a profile page. +""" +interface ProfileOwner { + """ + Determine if this repository owner has any items that can be pinned to their profile. + """ + anyPinnableItems( + """ + Filter to only a particular kind of pinnable item. + """ + type: PinnableItemType + ): Boolean! + + """ + The public profile email. + """ + email: String + id: ID! + + """ + Showcases a selection of repositories and gists that the profile owner has + either curated or that have been selected automatically based on popularity. + """ + itemShowcase: ProfileItemShowcase! + + """ + The public profile location. + """ + location: String + + """ + The username used to login. + """ + login: String! + + """ + The public profile name. + """ + name: String + + """ + A list of repositories and gists this profile owner can pin to their profile. + """ + pinnableItems( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter the types of pinnable items that are returned. + """ + types: [PinnableItemType!] + ): PinnableItemConnection! + + """ + A list of repositories and gists this profile owner has pinned to their profile + """ + pinnedItems( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter the types of pinned items that are returned. + """ + types: [PinnableItemType!] + ): PinnableItemConnection! + + """ + Returns how many more items this profile owner can pin to their profile. + """ + pinnedItemsRemaining: Int! + + """ + Can the viewer pin repositories and gists to the profile? + """ + viewerCanChangePinnedItems: Boolean! + + """ + The public profile website URL. + """ + websiteUrl: URI +} + +""" +Projects manage issues, pull requests and notes within a project owner. +""" +type Project implements Closable & Node & Updatable { + """ + The project's description body. + """ + body: String + + """ + The projects description body rendered to HTML. + """ + bodyHTML: HTML! + + """ + Indicates if the object is closed (definition of closed may depend on type) + """ + closed: Boolean! + + """ + Identifies the date and time when the object was closed. + """ + closedAt: DateTime + + """ + List of columns in the project + """ + columns( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectColumnConnection! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who originally created the project. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + The project's name. + """ + name: String! + + """ + The project's number. + """ + number: Int! + + """ + The project's owner. Currently limited to repositories, organizations, and users. + """ + owner: ProjectOwner! + + """ + List of pending cards in this project + """ + pendingCards( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + A list of archived states to filter the cards by + """ + archivedStates: [ProjectCardArchivedState] = [ARCHIVED, NOT_ARCHIVED] + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectCardConnection! + + """ + Project progress details. + """ + progress: ProjectProgress! + + """ + The HTTP path for this project + """ + resourcePath: URI! + + """ + Whether the project is open or closed. + """ + state: ProjectState! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this project + """ + url: URI! + + """ + Indicates if the object can be closed by the viewer. + """ + viewerCanClose: Boolean! + + """ + Indicates if the object can be reopened by the viewer. + """ + viewerCanReopen: Boolean! + + """ + Check if the current viewer can update this object. + """ + viewerCanUpdate: Boolean! +} + +""" +A card in a project. +""" +type ProjectCard implements Node { + """ + The project column this card is associated under. A card may only belong to one + project column at a time. The column field will be null if the card is created + in a pending state and has yet to be associated with a column. Once cards are + associated with a column, they will not become pending in the future. + """ + column: ProjectColumn + + """ + The card content item + """ + content: ProjectCardItem + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created this card + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + Whether the card is archived + """ + isArchived: Boolean! + + """ + The card note + """ + note: String + + """ + The project that contains this card. + """ + project: Project! + + """ + The HTTP path for this card + """ + resourcePath: URI! + + """ + The state of ProjectCard + """ + state: ProjectCardState + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this card + """ + url: URI! +} + +""" +The possible archived states of a project card. +""" +enum ProjectCardArchivedState { + """ + A project card that is archived + """ + ARCHIVED + + """ + A project card that is not archived + """ + NOT_ARCHIVED +} + +""" +The connection type for ProjectCard. +""" +type ProjectCardConnection { + """ + A list of edges. + """ + edges: [ProjectCardEdge] + + """ + A list of nodes. + """ + nodes: [ProjectCard] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectCardEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectCard +} + +""" +An issue or PR and its owning repository to be used in a project card. +""" +input ProjectCardImport { + """ + The issue or pull request number. + """ + number: Int! + + """ + Repository name with owner (owner/repository). + """ + repository: String! +} + +""" +Types that can be inside Project Cards. +""" +union ProjectCardItem = Issue | PullRequest + +""" +Various content states of a ProjectCard +""" +enum ProjectCardState { + """ + The card has content only. + """ + CONTENT_ONLY + + """ + The card has a note only. + """ + NOTE_ONLY + + """ + The card is redacted. + """ + REDACTED +} + +""" +A column inside a project. +""" +type ProjectColumn implements Node { + """ + List of cards in the column + """ + cards( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + A list of archived states to filter the cards by + """ + archivedStates: [ProjectCardArchivedState] = [ARCHIVED, NOT_ARCHIVED] + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectCardConnection! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + The project column's name. + """ + name: String! + + """ + The project that contains this column. + """ + project: Project! + + """ + The semantic purpose of the column + """ + purpose: ProjectColumnPurpose + + """ + The HTTP path for this project column + """ + resourcePath: URI! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this project column + """ + url: URI! +} + +""" +The connection type for ProjectColumn. +""" +type ProjectColumnConnection { + """ + A list of edges. + """ + edges: [ProjectColumnEdge] + + """ + A list of nodes. + """ + nodes: [ProjectColumn] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectColumnEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectColumn +} + +""" +A project column and a list of its issues and PRs. +""" +input ProjectColumnImport { + """ + The name of the column. + """ + columnName: String! + + """ + A list of issues and pull requests in the column. + """ + issues: [ProjectCardImport!] + + """ + The position of the column, starting from 0. + """ + position: Int! +} + +""" +The semantic purpose of the column - todo, in progress, or done. +""" +enum ProjectColumnPurpose { + """ + The column contains cards which are complete + """ + DONE + + """ + The column contains cards which are currently being worked on + """ + IN_PROGRESS + + """ + The column contains cards still to be worked on + """ + TODO +} + +""" +A list of projects associated with the owner. +""" +type ProjectConnection { + """ + A list of edges. + """ + edges: [ProjectEdge] + + """ + A list of nodes. + """ + nodes: [Project] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Project +} + +""" +Ways in which lists of projects can be ordered upon return. +""" +input ProjectOrder { + """ + The direction in which to order projects by the specified field. + """ + direction: OrderDirection! + + """ + The field in which to order projects by. + """ + field: ProjectOrderField! +} + +""" +Properties by which project connections can be ordered. +""" +enum ProjectOrderField { + """ + Order projects by creation time + """ + CREATED_AT + + """ + Order projects by name + """ + NAME + + """ + Order projects by update time + """ + UPDATED_AT +} + +""" +Represents an owner of a Project. +""" +interface ProjectOwner { + id: ID! + + """ + Find project by number. + """ + project( + """ + The project number to find. + """ + number: Int! + ): Project + + """ + A list of projects under the owner. + """ + projects( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for projects returned from the connection + """ + orderBy: ProjectOrder + + """ + Query to search projects by, currently only searching by name. + """ + search: String + + """ + A list of states to filter the projects by. + """ + states: [ProjectState!] + ): ProjectConnection! + + """ + The HTTP path listing owners projects + """ + projectsResourcePath: URI! + + """ + The HTTP URL listing owners projects + """ + projectsUrl: URI! + + """ + Can the current viewer create new projects on this owner. + """ + viewerCanCreateProjects: Boolean! +} + +""" +Project progress stats. +""" +type ProjectProgress { + """ + The number of done cards. + """ + doneCount: Int! + + """ + The percentage of done cards. + """ + donePercentage: Float! + + """ + Whether progress tracking is enabled and cards with purpose exist for this project + """ + enabled: Boolean! + + """ + The number of in-progress cards. + """ + inProgressCount: Int! + + """ + The percentage of in-progress cards. + """ + inProgressPercentage: Float! + + """ + The number of to do cards. + """ + todoCount: Int! + + """ + The percentage of to do cards. + """ + todoPercentage: Float! +} + +""" +State of the project; either 'open' or 'closed' +""" +enum ProjectState { + """ + The project is closed. + """ + CLOSED + + """ + The project is open. + """ + OPEN +} + +""" +GitHub-provided templates for Projects +""" +enum ProjectTemplate { + """ + Create a board with v2 triggers to automatically move cards across To do, In progress and Done columns. + """ + AUTOMATED_KANBAN_V2 + + """ + Create a board with triggers to automatically move cards across columns with review automation. + """ + AUTOMATED_REVIEWS_KANBAN + + """ + Create a board with columns for To do, In progress and Done. + """ + BASIC_KANBAN + + """ + Create a board to triage and prioritize bugs with To do, priority, and Done columns. + """ + BUG_TRIAGE +} + +""" +New projects that manage issues, pull requests and drafts using tables and boards. +""" +type ProjectV2 implements Closable & Node & Updatable { + """ + Returns true if the project is closed. + """ + closed: Boolean! + + """ + Identifies the date and time when the object was closed. + """ + closedAt: DateTime + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who originally created the project. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + A field of the project + """ + field( + """ + The name of the field + """ + name: String! + ): ProjectV2FieldConfiguration + + """ + List of fields and their constraints in the project + """ + fields( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for project v2 fields returned from the connection + """ + orderBy: ProjectV2FieldOrder = {field: POSITION, direction: ASC} + ): ProjectV2FieldConfigurationConnection! + id: ID! + + """ + List of items in the project + """ + items( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for project v2 items returned from the connection + """ + orderBy: ProjectV2ItemOrder = {field: POSITION, direction: ASC} + ): ProjectV2ItemConnection! + + """ + The project's number. + """ + number: Int! + + """ + The project's owner. Currently limited to organizations and users. + """ + owner: ProjectV2Owner! + + """ + Returns true if the project is public. + """ + public: Boolean! + + """ + The project's readme. + """ + readme: String + + """ + The repositories the project is linked to. + """ + repositories( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for repositories returned from the connection + """ + orderBy: RepositoryOrder = {field: CREATED_AT, direction: DESC} + ): RepositoryConnection! + + """ + The HTTP path for this project + """ + resourcePath: URI! + + """ + The project's short description. + """ + shortDescription: String + + """ + The teams the project is linked to. + """ + teams( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for teams returned from this connection. + """ + orderBy: TeamOrder = {field: NAME, direction: ASC} + ): TeamConnection! + + """ + Returns true if this project is a template. + """ + template: Boolean! + + """ + The project's name. + """ + title: String! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this project + """ + url: URI! + + """ + A view of the project + """ + view( + """ + The number of a view belonging to the project + """ + number: Int! + ): ProjectV2View + + """ + Indicates if the object can be closed by the viewer. + """ + viewerCanClose: Boolean! + + """ + Indicates if the object can be reopened by the viewer. + """ + viewerCanReopen: Boolean! + + """ + Check if the current viewer can update this object. + """ + viewerCanUpdate: Boolean! + + """ + List of views in the project + """ + views( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for project v2 views returned from the connection + """ + orderBy: ProjectV2ViewOrder = {field: POSITION, direction: ASC} + ): ProjectV2ViewConnection! + + """ + A workflow of the project + """ + workflow( + """ + The number of a workflow belonging to the project + """ + number: Int! + ): ProjectV2Workflow + + """ + List of the workflows in the project + """ + workflows( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for project v2 workflows returned from the connection + """ + orderBy: ProjectV2WorkflowOrder = {field: NAME, direction: ASC} + ): ProjectV2WorkflowConnection! +} + +""" +Possible collaborators for a project. +""" +union ProjectV2Actor = Team | User + +""" +The connection type for ProjectV2Actor. +""" +type ProjectV2ActorConnection { + """ + A list of edges. + """ + edges: [ProjectV2ActorEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2Actor] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2ActorEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2Actor +} + +""" +A collaborator to update on a project. Only one of the userId or teamId should be provided. +""" +input ProjectV2Collaborator { + """ + The role to grant the collaborator + """ + role: ProjectV2Roles! + + """ + The ID of the team as a collaborator. + """ + teamId: ID @possibleTypes(concreteTypes: ["Team"]) + + """ + The ID of the user as a collaborator. + """ + userId: ID @possibleTypes(concreteTypes: ["User"]) +} + +""" +The connection type for ProjectV2. +""" +type ProjectV2Connection { + """ + A list of edges. + """ + edges: [ProjectV2Edge] + + """ + A list of nodes. + """ + nodes: [ProjectV2] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +The type of a project field. +""" +enum ProjectV2CustomFieldType { + """ + Date + """ + DATE + + """ + Number + """ + NUMBER + + """ + Single Select + """ + SINGLE_SELECT + + """ + Text + """ + TEXT +} + +""" +An edge in a connection. +""" +type ProjectV2Edge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2 +} + +""" +A field inside a project. +""" +type ProjectV2Field implements Node & ProjectV2FieldCommon { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The field's type. + """ + dataType: ProjectV2FieldType! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + The project field's name. + """ + name: String! + + """ + The project that contains this field. + """ + project: ProjectV2! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +Common fields across different project field types +""" +interface ProjectV2FieldCommon { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The field's type. + """ + dataType: ProjectV2FieldType! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + The project field's name. + """ + name: String! + + """ + The project that contains this field. + """ + project: ProjectV2! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +Configurations for project fields. +""" +union ProjectV2FieldConfiguration = ProjectV2Field | ProjectV2IterationField | ProjectV2SingleSelectField + +""" +The connection type for ProjectV2FieldConfiguration. +""" +type ProjectV2FieldConfigurationConnection { + """ + A list of edges. + """ + edges: [ProjectV2FieldConfigurationEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2FieldConfiguration] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2FieldConfigurationEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2FieldConfiguration +} + +""" +The connection type for ProjectV2Field. +""" +type ProjectV2FieldConnection { + """ + A list of edges. + """ + edges: [ProjectV2FieldEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2Field] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2FieldEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2Field +} + +""" +Ordering options for project v2 field connections +""" +input ProjectV2FieldOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order the project v2 fields by. + """ + field: ProjectV2FieldOrderField! +} + +""" +Properties by which project v2 field connections can be ordered. +""" +enum ProjectV2FieldOrderField { + """ + Order project v2 fields by creation time + """ + CREATED_AT + + """ + Order project v2 fields by name + """ + NAME + + """ + Order project v2 fields by position + """ + POSITION +} + +""" +The type of a project field. +""" +enum ProjectV2FieldType { + """ + Assignees + """ + ASSIGNEES + + """ + Date + """ + DATE + + """ + Iteration + """ + ITERATION + + """ + Labels + """ + LABELS + + """ + Linked Pull Requests + """ + LINKED_PULL_REQUESTS + + """ + Milestone + """ + MILESTONE + + """ + Number + """ + NUMBER + + """ + Repository + """ + REPOSITORY + + """ + Reviewers + """ + REVIEWERS + + """ + Single Select + """ + SINGLE_SELECT + + """ + Text + """ + TEXT + + """ + Title + """ + TITLE + + """ + Tracked by + """ + TRACKED_BY + + """ + Tracks + """ + TRACKS +} + +""" +The values that can be used to update a field of an item inside a Project. Only 1 value can be updated at a time. +""" +input ProjectV2FieldValue { + """ + The ISO 8601 date to set on the field. + """ + date: Date + + """ + The id of the iteration to set on the field. + """ + iterationId: String + + """ + The number to set on the field. + """ + number: Float + + """ + The id of the single select option to set on the field. + """ + singleSelectOptionId: String + + """ + The text to set on the field. + """ + text: String +} + +""" +Ways in which to filter lists of projects. +""" +input ProjectV2Filters { + """ + List project v2 filtered by the state given. + """ + state: ProjectV2State +} + +""" +An item within a Project. +""" +type ProjectV2Item implements Node { + """ + The content of the referenced draft issue, issue, or pull request + """ + content: ProjectV2ItemContent + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created the item. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The field value of the first project field which matches the 'name' argument that is set on the item. + """ + fieldValueByName( + """ + The name of the field to return the field value of + """ + name: String! + ): ProjectV2ItemFieldValue + + """ + The field values that are set on the item. + """ + fieldValues( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for project v2 item field values returned from the connection + """ + orderBy: ProjectV2ItemFieldValueOrder = {field: POSITION, direction: ASC} + ): ProjectV2ItemFieldValueConnection! + id: ID! + + """ + Whether the item is archived. + """ + isArchived: Boolean! + + """ + The project that contains this item. + """ + project: ProjectV2! + + """ + The type of the item. + """ + type: ProjectV2ItemType! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The connection type for ProjectV2Item. +""" +type ProjectV2ItemConnection { + """ + A list of edges. + """ + edges: [ProjectV2ItemEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2Item] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Types that can be inside Project Items. +""" +union ProjectV2ItemContent = DraftIssue | Issue | PullRequest + +""" +An edge in a connection. +""" +type ProjectV2ItemEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2Item +} + +""" +The value of a date field in a Project item. +""" +type ProjectV2ItemFieldDateValue implements Node & ProjectV2ItemFieldValueCommon { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created the item. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + Date value for the field + """ + date: Date + + """ + The project field that contains this value. + """ + field: ProjectV2FieldConfiguration! + id: ID! + + """ + The project item that contains this value. + """ + item: ProjectV2Item! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The value of an iteration field in a Project item. +""" +type ProjectV2ItemFieldIterationValue implements Node & ProjectV2ItemFieldValueCommon { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created the item. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The duration of the iteration in days. + """ + duration: Int! + + """ + The project field that contains this value. + """ + field: ProjectV2FieldConfiguration! + id: ID! + + """ + The project item that contains this value. + """ + item: ProjectV2Item! + + """ + The ID of the iteration. + """ + iterationId: String! + + """ + The start date of the iteration. + """ + startDate: Date! + + """ + The title of the iteration. + """ + title: String! + + """ + The title of the iteration, with HTML. + """ + titleHTML: String! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The value of the labels field in a Project item. +""" +type ProjectV2ItemFieldLabelValue { + """ + The field that contains this value. + """ + field: ProjectV2FieldConfiguration! + + """ + Labels value of a field + """ + labels( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): LabelConnection +} + +""" +The value of a milestone field in a Project item. +""" +type ProjectV2ItemFieldMilestoneValue { + """ + The field that contains this value. + """ + field: ProjectV2FieldConfiguration! + + """ + Milestone value of a field + """ + milestone: Milestone +} + +""" +The value of a number field in a Project item. +""" +type ProjectV2ItemFieldNumberValue implements Node & ProjectV2ItemFieldValueCommon { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created the item. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The project field that contains this value. + """ + field: ProjectV2FieldConfiguration! + id: ID! + + """ + The project item that contains this value. + """ + item: ProjectV2Item! + + """ + Number as a float(8) + """ + number: Float + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The value of a pull request field in a Project item. +""" +type ProjectV2ItemFieldPullRequestValue { + """ + The field that contains this value. + """ + field: ProjectV2FieldConfiguration! + + """ + The pull requests for this field + """ + pullRequests( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for pull requests. + """ + orderBy: PullRequestOrder = {field: CREATED_AT, direction: ASC} + ): PullRequestConnection +} + +""" +The value of a repository field in a Project item. +""" +type ProjectV2ItemFieldRepositoryValue { + """ + The field that contains this value. + """ + field: ProjectV2FieldConfiguration! + + """ + The repository for this field. + """ + repository: Repository +} + +""" +The value of a reviewers field in a Project item. +""" +type ProjectV2ItemFieldReviewerValue { + """ + The field that contains this value. + """ + field: ProjectV2FieldConfiguration! + + """ + The reviewers for this field. + """ + reviewers( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): RequestedReviewerConnection +} + +""" +The value of a single select field in a Project item. +""" +type ProjectV2ItemFieldSingleSelectValue implements Node & ProjectV2ItemFieldValueCommon { + """ + The color applied to the selected single-select option. + """ + color: ProjectV2SingleSelectFieldOptionColor! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created the item. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + A plain-text description of the selected single-select option, such as what the option means. + """ + description: String + + """ + The description of the selected single-select option, including HTML tags. + """ + descriptionHTML: String + + """ + The project field that contains this value. + """ + field: ProjectV2FieldConfiguration! + id: ID! + + """ + The project item that contains this value. + """ + item: ProjectV2Item! + + """ + The name of the selected single select option. + """ + name: String + + """ + The html name of the selected single select option. + """ + nameHTML: String + + """ + The id of the selected single select option. + """ + optionId: String + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The value of a text field in a Project item. +""" +type ProjectV2ItemFieldTextValue implements Node & ProjectV2ItemFieldValueCommon { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created the item. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The project field that contains this value. + """ + field: ProjectV2FieldConfiguration! + id: ID! + + """ + The project item that contains this value. + """ + item: ProjectV2Item! + + """ + Text value of a field + """ + text: String + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The value of a user field in a Project item. +""" +type ProjectV2ItemFieldUserValue { + """ + The field that contains this value. + """ + field: ProjectV2FieldConfiguration! + + """ + The users for this field + """ + users( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserConnection +} + +""" +Project field values +""" +union ProjectV2ItemFieldValue = + ProjectV2ItemFieldDateValue + | ProjectV2ItemFieldIterationValue + | ProjectV2ItemFieldLabelValue + | ProjectV2ItemFieldMilestoneValue + | ProjectV2ItemFieldNumberValue + | ProjectV2ItemFieldPullRequestValue + | ProjectV2ItemFieldRepositoryValue + | ProjectV2ItemFieldReviewerValue + | ProjectV2ItemFieldSingleSelectValue + | ProjectV2ItemFieldTextValue + | ProjectV2ItemFieldUserValue + +""" +Common fields across different project field value types +""" +interface ProjectV2ItemFieldValueCommon { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created the item. + """ + creator: Actor + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The project field that contains this value. + """ + field: ProjectV2FieldConfiguration! + id: ID! + + """ + The project item that contains this value. + """ + item: ProjectV2Item! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The connection type for ProjectV2ItemFieldValue. +""" +type ProjectV2ItemFieldValueConnection { + """ + A list of edges. + """ + edges: [ProjectV2ItemFieldValueEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2ItemFieldValue] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2ItemFieldValueEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2ItemFieldValue +} + +""" +Ordering options for project v2 item field value connections +""" +input ProjectV2ItemFieldValueOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order the project v2 item field values by. + """ + field: ProjectV2ItemFieldValueOrderField! +} + +""" +Properties by which project v2 item field value connections can be ordered. +""" +enum ProjectV2ItemFieldValueOrderField { + """ + Order project v2 item field values by the their position in the project + """ + POSITION +} + +""" +Ordering options for project v2 item connections +""" +input ProjectV2ItemOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order the project v2 items by. + """ + field: ProjectV2ItemOrderField! +} + +""" +Properties by which project v2 item connections can be ordered. +""" +enum ProjectV2ItemOrderField { + """ + Order project v2 items by the their position in the project + """ + POSITION +} + +""" +The type of a project item. +""" +enum ProjectV2ItemType { + """ + Draft Issue + """ + DRAFT_ISSUE + + """ + Issue + """ + ISSUE + + """ + Pull Request + """ + PULL_REQUEST + + """ + Redacted Item + """ + REDACTED +} + +""" +An iteration field inside a project. +""" +type ProjectV2IterationField implements Node & ProjectV2FieldCommon { + """ + Iteration configuration settings + """ + configuration: ProjectV2IterationFieldConfiguration! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The field's type. + """ + dataType: ProjectV2FieldType! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + The project field's name. + """ + name: String! + + """ + The project that contains this field. + """ + project: ProjectV2! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +Iteration field configuration for a project. +""" +type ProjectV2IterationFieldConfiguration { + """ + The iteration's completed iterations + """ + completedIterations: [ProjectV2IterationFieldIteration!]! + + """ + The iteration's duration in days + """ + duration: Int! + + """ + The iteration's iterations + """ + iterations: [ProjectV2IterationFieldIteration!]! + + """ + The iteration's start day of the week + """ + startDay: Int! +} + +""" +Iteration field iteration settings for a project. +""" +type ProjectV2IterationFieldIteration { + """ + The iteration's duration in days + """ + duration: Int! + + """ + The iteration's ID. + """ + id: String! + + """ + The iteration's start date + """ + startDate: Date! + + """ + The iteration's title. + """ + title: String! + + """ + The iteration's html title. + """ + titleHTML: String! +} + +""" +Ways in which lists of projects can be ordered upon return. +""" +input ProjectV2Order { + """ + The direction in which to order projects by the specified field. + """ + direction: OrderDirection! + + """ + The field in which to order projects by. + """ + field: ProjectV2OrderField! +} + +""" +Properties by which projects can be ordered. +""" +enum ProjectV2OrderField { + """ + The project's date and time of creation + """ + CREATED_AT + + """ + The project's number + """ + NUMBER + + """ + The project's title + """ + TITLE + + """ + The project's date and time of update + """ + UPDATED_AT +} + +""" +Represents an owner of a project (beta). +""" +interface ProjectV2Owner { + id: ID! + + """ + Find a project by number. + """ + projectV2( + """ + The project number. + """ + number: Int! + ): ProjectV2 + + """ + A list of projects under the owner. + """ + projectsV2( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + How to order the returned projects. + """ + orderBy: ProjectV2Order = {field: NUMBER, direction: DESC} + + """ + A project to search for under the the owner. + """ + query: String + ): ProjectV2Connection! +} + +""" +Recent projects for the owner. +""" +interface ProjectV2Recent { + """ + Recent projects that this user has modified in the context of the owner. + """ + recentProjects( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectV2Connection! +} + +""" +The possible roles of a collaborator on a project. +""" +enum ProjectV2Roles { + """ + The collaborator can view, edit, and maange the settings of the project + """ + ADMIN + + """ + The collaborator has no direct access to the project + """ + NONE + + """ + The collaborator can view the project + """ + READER + + """ + The collaborator can view and edit the project + """ + WRITER +} + +""" +A single select field inside a project. +""" +type ProjectV2SingleSelectField implements Node & ProjectV2FieldCommon { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The field's type. + """ + dataType: ProjectV2FieldType! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + The project field's name. + """ + name: String! + + """ + Options for the single select field + """ + options( + """ + Filter returned options to only those matching these names, case insensitive. + """ + names: [String!] + ): [ProjectV2SingleSelectFieldOption!]! + + """ + The project that contains this field. + """ + project: ProjectV2! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +Single select field option for a configuration for a project. +""" +type ProjectV2SingleSelectFieldOption { + """ + The option's display color. + """ + color: ProjectV2SingleSelectFieldOptionColor! + + """ + The option's plain-text description. + """ + description: String! + + """ + The option's description, possibly containing HTML. + """ + descriptionHTML: String! + + """ + The option's ID. + """ + id: String! + + """ + The option's name. + """ + name: String! + + """ + The option's html name. + """ + nameHTML: String! +} + +""" +The display color of a single-select field option. +""" +enum ProjectV2SingleSelectFieldOptionColor { + """ + BLUE + """ + BLUE + + """ + GRAY + """ + GRAY + + """ + GREEN + """ + GREEN + + """ + ORANGE + """ + ORANGE + + """ + PINK + """ + PINK + + """ + PURPLE + """ + PURPLE + + """ + RED + """ + RED + + """ + YELLOW + """ + YELLOW +} + +""" +Represents a single select field option +""" +input ProjectV2SingleSelectFieldOptionInput { + """ + The display color of the option + """ + color: ProjectV2SingleSelectFieldOptionColor! + + """ + The description text of the option + """ + description: String! + + """ + The name of the option + """ + name: String! +} + +""" +Represents a sort by field and direction. +""" +type ProjectV2SortBy { + """ + The direction of the sorting. Possible values are ASC and DESC. + """ + direction: OrderDirection! + + """ + The field by which items are sorted. + """ + field: ProjectV2Field! +} + +""" +The connection type for ProjectV2SortBy. +""" +type ProjectV2SortByConnection { + """ + A list of edges. + """ + edges: [ProjectV2SortByEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2SortBy] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2SortByEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2SortBy +} + +""" +Represents a sort by field and direction. +""" +type ProjectV2SortByField { + """ + The direction of the sorting. Possible values are ASC and DESC. + """ + direction: OrderDirection! + + """ + The field by which items are sorted. + """ + field: ProjectV2FieldConfiguration! +} + +""" +The connection type for ProjectV2SortByField. +""" +type ProjectV2SortByFieldConnection { + """ + A list of edges. + """ + edges: [ProjectV2SortByFieldEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2SortByField] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2SortByFieldEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2SortByField +} + +""" +The possible states of a project v2. +""" +enum ProjectV2State { + """ + A project v2 that has been closed + """ + CLOSED + + """ + A project v2 that is still open + """ + OPEN +} + +""" +A view within a ProjectV2. +""" +type ProjectV2View implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The view's visible fields. + """ + fields( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = {field: POSITION, direction: ASC} + ): ProjectV2FieldConfigurationConnection + + """ + The project view's filter. + """ + filter: String + + """ + The view's group-by field. + """ + groupBy( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = {field: POSITION, direction: ASC} + ): ProjectV2FieldConnection + @deprecated( + reason: "The `ProjectV2View#order_by` API is deprecated in favour of the more capable `ProjectV2View#group_by_field` API. Check out the `ProjectV2View#group_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC." + ) + + """ + The view's group-by field. + """ + groupByFields( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = {field: POSITION, direction: ASC} + ): ProjectV2FieldConfigurationConnection + id: ID! + + """ + The project view's layout. + """ + layout: ProjectV2ViewLayout! + + """ + The project view's name. + """ + name: String! + + """ + The project view's number. + """ + number: Int! + + """ + The project that contains this view. + """ + project: ProjectV2! + + """ + The view's sort-by config. + """ + sortBy( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectV2SortByConnection + @deprecated( + reason: "The `ProjectV2View#sort_by` API is deprecated in favour of the more capable `ProjectV2View#sort_by_fields` API. Check out the `ProjectV2View#sort_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC." + ) + + """ + The view's sort-by config. + """ + sortByFields( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectV2SortByFieldConnection + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The view's vertical-group-by field. + """ + verticalGroupBy( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = {field: POSITION, direction: ASC} + ): ProjectV2FieldConnection + @deprecated( + reason: "The `ProjectV2View#vertical_group_by` API is deprecated in favour of the more capable `ProjectV2View#vertical_group_by_fields` API. Check out the `ProjectV2View#vertical_group_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC." + ) + + """ + The view's vertical-group-by field. + """ + verticalGroupByFields( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = {field: POSITION, direction: ASC} + ): ProjectV2FieldConfigurationConnection + + """ + The view's visible fields. + """ + visibleFields( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = {field: POSITION, direction: ASC} + ): ProjectV2FieldConnection + @deprecated( + reason: "The `ProjectV2View#visibleFields` API is deprecated in favour of the more capable `ProjectV2View#fields` API. Check out the `ProjectV2View#fields` API as an example for the more capable alternative. Removal on 2023-01-01 UTC." + ) +} + +""" +The connection type for ProjectV2View. +""" +type ProjectV2ViewConnection { + """ + A list of edges. + """ + edges: [ProjectV2ViewEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2View] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2ViewEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2View +} + +""" +The layout of a project v2 view. +""" +enum ProjectV2ViewLayout { + """ + Board layout + """ + BOARD_LAYOUT + + """ + Roadmap layout + """ + ROADMAP_LAYOUT + + """ + Table layout + """ + TABLE_LAYOUT +} + +""" +Ordering options for project v2 view connections +""" +input ProjectV2ViewOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order the project v2 views by. + """ + field: ProjectV2ViewOrderField! +} + +""" +Properties by which project v2 view connections can be ordered. +""" +enum ProjectV2ViewOrderField { + """ + Order project v2 views by creation time + """ + CREATED_AT + + """ + Order project v2 views by name + """ + NAME + + """ + Order project v2 views by position + """ + POSITION +} + +""" +A workflow inside a project. +""" +type ProjectV2Workflow implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The workflows' enabled state. + """ + enabled: Boolean! + id: ID! + + """ + The workflows' name. + """ + name: String! + + """ + The workflows' number. + """ + number: Int! + + """ + The project that contains this workflow. + """ + project: ProjectV2! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The connection type for ProjectV2Workflow. +""" +type ProjectV2WorkflowConnection { + """ + A list of edges. + """ + edges: [ProjectV2WorkflowEdge] + + """ + A list of nodes. + """ + nodes: [ProjectV2Workflow] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ProjectV2WorkflowEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectV2Workflow +} + +""" +Ordering options for project v2 workflows connections +""" +input ProjectV2WorkflowOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order the project v2 workflows by. + """ + field: ProjectV2WorkflowsOrderField! +} + +""" +Properties by which project workflows can be ordered. +""" +enum ProjectV2WorkflowsOrderField { + """ + The workflows' date and time of creation + """ + CREATED_AT + + """ + The workflows' name + """ + NAME + + """ + The workflows' number + """ + NUMBER + + """ + The workflows' date and time of update + """ + UPDATED_AT +} + +""" +A user's public key. +""" +type PublicKey implements Node { + """ + The last time this authorization was used to perform an action. Values will be null for keys not owned by the user. + """ + accessedAt: DateTime + + """ + Identifies the date and time when the key was created. Keys created before + March 5th, 2014 have inaccurate values. Values will be null for keys not owned by the user. + """ + createdAt: DateTime + + """ + The fingerprint for this PublicKey. + """ + fingerprint: String! + id: ID! + + """ + Whether this PublicKey is read-only or not. Values will be null for keys not owned by the user. + """ + isReadOnly: Boolean + + """ + The public key string. + """ + key: String! + + """ + Identifies the date and time when the key was updated. Keys created before + March 5th, 2014 may have inaccurate values. Values will be null for keys not + owned by the user. + """ + updatedAt: DateTime +} + +""" +The connection type for PublicKey. +""" +type PublicKeyConnection { + """ + A list of edges. + """ + edges: [PublicKeyEdge] + + """ + A list of nodes. + """ + nodes: [PublicKey] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type PublicKeyEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PublicKey +} + +""" +Autogenerated input type of PublishSponsorsTier +""" +input PublishSponsorsTierInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the draft tier to publish. + """ + tierId: ID! @possibleTypes(concreteTypes: ["SponsorsTier"]) +} + +""" +Autogenerated return type of PublishSponsorsTier +""" +type PublishSponsorsTierPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The tier that was published. + """ + sponsorsTier: SponsorsTier +} + +""" +A repository pull request. +""" +type PullRequest implements Assignable & Closable & Comment & Labelable & Lockable & Node & ProjectV2Owner & Reactable & RepositoryNode & Subscribable & UniformResourceLocatable & Updatable & UpdatableComment { + """ + Reason that the conversation was locked. + """ + activeLockReason: LockReason + + """ + The number of additions in this pull request. + """ + additions: Int! + + """ + A list of Users assigned to this object. + """ + assignees( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserConnection! + + """ + The actor who authored the comment. + """ + author: Actor + + """ + Author's association with the subject of the comment. + """ + authorAssociation: CommentAuthorAssociation! + + """ + Returns the auto-merge request object if one exists for this pull request. + """ + autoMergeRequest: AutoMergeRequest + + """ + Identifies the base Ref associated with the pull request. + """ + baseRef: Ref + + """ + Identifies the name of the base Ref associated with the pull request, even if the ref has been deleted. + """ + baseRefName: String! + + """ + Identifies the oid of the base ref associated with the pull request, even if the ref has been deleted. + """ + baseRefOid: GitObjectID! + + """ + The repository associated with this pull request's base Ref. + """ + baseRepository: Repository + + """ + The body as Markdown. + """ + body: String! + + """ + The body rendered to HTML. + """ + bodyHTML: HTML! + + """ + The body rendered to text. + """ + bodyText: String! + + """ + Whether or not the pull request is rebaseable. + """ + canBeRebased: Boolean! @preview(toggledBy: "merge-info-preview") + + """ + The number of changed files in this pull request. + """ + changedFiles: Int! + + """ + The HTTP path for the checks of this pull request. + """ + checksResourcePath: URI! + + """ + The HTTP URL for the checks of this pull request. + """ + checksUrl: URI! + + """ + `true` if the pull request is closed + """ + closed: Boolean! + + """ + Identifies the date and time when the object was closed. + """ + closedAt: DateTime + + """ + List of issues that were may be closed by this pull request + """ + closingIssuesReferences( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for issues returned from the connection + """ + orderBy: IssueOrder + + """ + Return only manually linked Issues + """ + userLinkedOnly: Boolean = false + ): IssueConnection + + """ + A list of comments associated with the pull request. + """ + comments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for issue comments returned from the connection. + """ + orderBy: IssueCommentOrder + ): IssueCommentConnection! + + """ + A list of commits present in this pull request's head branch not present in the base branch. + """ + commits( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): PullRequestCommitConnection! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Check if this comment was created via an email reply. + """ + createdViaEmail: Boolean! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The number of deletions in this pull request. + """ + deletions: Int! + + """ + The actor who edited this pull request's body. + """ + editor: Actor + + """ + Lists the files changed within this pull request. + """ + files( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): PullRequestChangedFileConnection + + """ + Identifies the head Ref associated with the pull request. + """ + headRef: Ref + + """ + Identifies the name of the head Ref associated with the pull request, even if the ref has been deleted. + """ + headRefName: String! + + """ + Identifies the oid of the head ref associated with the pull request, even if the ref has been deleted. + """ + headRefOid: GitObjectID! + + """ + The repository associated with this pull request's head Ref. + """ + headRepository: Repository + + """ + The owner of the repository associated with this pull request's head Ref. + """ + headRepositoryOwner: RepositoryOwner + + """ + The hovercard information for this issue + """ + hovercard( + """ + Whether or not to include notification contexts + """ + includeNotificationContexts: Boolean = true + ): Hovercard! + id: ID! + + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + + """ + The head and base repositories are different. + """ + isCrossRepository: Boolean! + + """ + Identifies if the pull request is a draft. + """ + isDraft: Boolean! + + """ + Is this pull request read by the viewer + """ + isReadByViewer: Boolean + + """ + A list of labels associated with the object. + """ + labels( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for labels returned from the connection. + """ + orderBy: LabelOrder = {field: CREATED_AT, direction: ASC} + ): LabelConnection + + """ + The moment the editor made the last edit + """ + lastEditedAt: DateTime + + """ + A list of latest reviews per user associated with the pull request. + """ + latestOpinionatedReviews( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Only return reviews from user who have write access to the repository + """ + writersOnly: Boolean = false + ): PullRequestReviewConnection + + """ + A list of latest reviews per user associated with the pull request that are not also pending review. + """ + latestReviews( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): PullRequestReviewConnection + + """ + `true` if the pull request is locked + """ + locked: Boolean! + + """ + Indicates whether maintainers can modify the pull request. + """ + maintainerCanModify: Boolean! + + """ + The commit that was created when this pull request was merged. + """ + mergeCommit: Commit + + """ + The merge queue entry of the pull request in the base branch's merge queue + """ + mergeQueueEntry: MergeQueueEntry + + """ + Detailed information about the current pull request merge state status. + """ + mergeStateStatus: MergeStateStatus! @preview(toggledBy: "merge-info-preview") + + """ + Whether or not the pull request can be merged based on the existence of merge conflicts. + """ + mergeable: MergeableState! + + """ + Whether or not the pull request was merged. + """ + merged: Boolean! + + """ + The date and time that the pull request was merged. + """ + mergedAt: DateTime + + """ + The actor who merged the pull request. + """ + mergedBy: Actor + + """ + Identifies the milestone associated with the pull request. + """ + milestone: Milestone + + """ + Identifies the pull request number. + """ + number: Int! + + """ + A list of Users that are participating in the Pull Request conversation. + """ + participants( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserConnection! + + """ + The permalink to the pull request. + """ + permalink: URI! + + """ + The commit that GitHub automatically generated to test if this pull request + could be merged. This field will not return a value if the pull request is + merged, or if the test merge commit is still being generated. See the + `mergeable` field for more details on the mergeability of the pull request. + """ + potentialMergeCommit: Commit + + """ + List of project cards associated with this pull request. + """ + projectCards( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + A list of archived states to filter the cards by + """ + archivedStates: [ProjectCardArchivedState] = [ARCHIVED, NOT_ARCHIVED] + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectCardConnection! + + """ + List of project items associated with this pull request. + """ + projectItems( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Include archived items. + """ + includeArchived: Boolean = true + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectV2ItemConnection! + + """ + Find a project by number. + """ + projectV2( + """ + The project number. + """ + number: Int! + ): ProjectV2 + + """ + A list of projects under the owner. + """ + projectsV2( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + How to order the returned projects. + """ + orderBy: ProjectV2Order = {field: NUMBER, direction: DESC} + + """ + A project to search for under the the owner. + """ + query: String + ): ProjectV2Connection! + + """ + Identifies when the comment was published at. + """ + publishedAt: DateTime + + """ + A list of reactions grouped by content left on the subject. + """ + reactionGroups: [ReactionGroup!] + + """ + A list of Reactions left on the Issue. + """ + reactions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Allows filtering Reactions by emoji. + """ + content: ReactionContent + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Allows specifying the order in which reactions are returned. + """ + orderBy: ReactionOrder + ): ReactionConnection! + + """ + The repository associated with this node. + """ + repository: Repository! + + """ + The HTTP path for this pull request. + """ + resourcePath: URI! + + """ + The HTTP path for reverting this pull request. + """ + revertResourcePath: URI! + + """ + The HTTP URL for reverting this pull request. + """ + revertUrl: URI! + + """ + The current status of this pull request with respect to code review. + """ + reviewDecision: PullRequestReviewDecision + + """ + A list of review requests associated with the pull request. + """ + reviewRequests( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ReviewRequestConnection + + """ + The list of all review threads for this pull request. + """ + reviewThreads( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): PullRequestReviewThreadConnection! + + """ + A list of reviews associated with the pull request. + """ + reviews( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Filter by author of the review. + """ + author: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + A list of states to filter the reviews. + """ + states: [PullRequestReviewState!] + ): PullRequestReviewConnection + + """ + Identifies the state of the pull request. + """ + state: PullRequestState! + + """ + A list of reviewer suggestions based on commit history and past review comments. + """ + suggestedReviewers: [SuggestedReviewer]! + + """ + A list of events, comments, commits, etc. associated with the pull request. + """ + timeline( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Allows filtering timeline events by a `since` timestamp. + """ + since: DateTime + ): PullRequestTimelineConnection! + @deprecated(reason: "`timeline` will be removed Use PullRequest.timelineItems instead. Removal on 2020-10-01 UTC.") + + """ + A list of events, comments, commits, etc. associated with the pull request. + """ + timelineItems( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Filter timeline items by type. + """ + itemTypes: [PullRequestTimelineItemsItemType!] + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter timeline items by a `since` timestamp. + """ + since: DateTime + + """ + Skips the first _n_ elements in the list. + """ + skip: Int + ): PullRequestTimelineItemsConnection! + + """ + Identifies the pull request title. + """ + title: String! + + """ + Identifies the pull request title rendered to HTML. + """ + titleHTML: HTML! + + """ + Returns a count of how many comments this pull request has received. + """ + totalCommentsCount: Int + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this pull request. + """ + url: URI! + + """ + A list of edits to this content. + """ + userContentEdits( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserContentEditConnection + + """ + Whether or not the viewer can apply suggestion. + """ + viewerCanApplySuggestion: Boolean! + + """ + Indicates if the object can be closed by the viewer. + """ + viewerCanClose: Boolean! + + """ + Check if the viewer can restore the deleted head ref. + """ + viewerCanDeleteHeadRef: Boolean! + + """ + Whether or not the viewer can disable auto-merge + """ + viewerCanDisableAutoMerge: Boolean! + + """ + Can the viewer edit files within this pull request. + """ + viewerCanEditFiles: Boolean! + + """ + Whether or not the viewer can enable auto-merge + """ + viewerCanEnableAutoMerge: Boolean! + + """ + Indicates whether the viewer can bypass branch protections and merge the pull request immediately + """ + viewerCanMergeAsAdmin: Boolean! + + """ + Can user react to this subject + """ + viewerCanReact: Boolean! + + """ + Indicates if the object can be reopened by the viewer. + """ + viewerCanReopen: Boolean! + + """ + Check if the viewer is able to change their subscription status for the repository. + """ + viewerCanSubscribe: Boolean! + + """ + Check if the current viewer can update this object. + """ + viewerCanUpdate: Boolean! + + """ + Whether or not the viewer can update the head ref of this PR, by merging or rebasing the base ref. + If the head ref is up to date or unable to be updated by this user, this will return false. + """ + viewerCanUpdateBranch: Boolean! + + """ + Reasons why the current viewer can not update this comment. + """ + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + + """ + Did the viewer author this comment. + """ + viewerDidAuthor: Boolean! + + """ + The latest review given from the viewer. + """ + viewerLatestReview: PullRequestReview + + """ + The person who has requested the viewer for review on this pull request. + """ + viewerLatestReviewRequest: ReviewRequest + + """ + The merge body text for the viewer and method. + """ + viewerMergeBodyText( + """ + The merge method for the message. + """ + mergeType: PullRequestMergeMethod + ): String! + + """ + The merge headline text for the viewer and method. + """ + viewerMergeHeadlineText( + """ + The merge method for the message. + """ + mergeType: PullRequestMergeMethod + ): String! + + """ + Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. + """ + viewerSubscription: SubscriptionState +} + +""" +The possible methods for updating a pull request's head branch with the base branch. +""" +enum PullRequestBranchUpdateMethod { + """ + Update branch via merge + """ + MERGE + + """ + Update branch via rebase + """ + REBASE +} + +""" +A file changed in a pull request. +""" +type PullRequestChangedFile { + """ + The number of additions to the file. + """ + additions: Int! + + """ + How the file was changed in this PullRequest + """ + changeType: PatchStatus! + + """ + The number of deletions to the file. + """ + deletions: Int! + + """ + The path of the file. + """ + path: String! + + """ + The state of the file for the viewer. + """ + viewerViewedState: FileViewedState! +} + +""" +The connection type for PullRequestChangedFile. +""" +type PullRequestChangedFileConnection { + """ + A list of edges. + """ + edges: [PullRequestChangedFileEdge] + + """ + A list of nodes. + """ + nodes: [PullRequestChangedFile] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type PullRequestChangedFileEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PullRequestChangedFile +} + +""" +Represents a Git commit part of a pull request. +""" +type PullRequestCommit implements Node & UniformResourceLocatable { + """ + The Git commit object + """ + commit: Commit! + id: ID! + + """ + The pull request this commit belongs to + """ + pullRequest: PullRequest! + + """ + The HTTP path for this pull request commit + """ + resourcePath: URI! + + """ + The HTTP URL for this pull request commit + """ + url: URI! +} + +""" +Represents a commit comment thread part of a pull request. +""" +type PullRequestCommitCommentThread implements Node & RepositoryNode { + """ + The comments that exist in this thread. + """ + comments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): CommitCommentConnection! + + """ + The commit the comments were made on. + """ + commit: Commit! + id: ID! + + """ + The file the comments were made on. + """ + path: String + + """ + The position in the diff for the commit that the comment was made on. + """ + position: Int + + """ + The pull request this commit comment thread belongs to + """ + pullRequest: PullRequest! + + """ + The repository associated with this node. + """ + repository: Repository! +} + +""" +The connection type for PullRequestCommit. +""" +type PullRequestCommitConnection { + """ + A list of edges. + """ + edges: [PullRequestCommitEdge] + + """ + A list of nodes. + """ + nodes: [PullRequestCommit] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type PullRequestCommitEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PullRequestCommit +} + +""" +The connection type for PullRequest. +""" +type PullRequestConnection { + """ + A list of edges. + """ + edges: [PullRequestEdge] + + """ + A list of nodes. + """ + nodes: [PullRequest] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +This aggregates pull requests opened by a user within one repository. +""" +type PullRequestContributionsByRepository { + """ + The pull request contributions. + """ + contributions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for contributions returned from the connection. + """ + orderBy: ContributionOrder = {direction: DESC} + ): CreatedPullRequestContributionConnection! + + """ + The repository in which the pull requests were opened. + """ + repository: Repository! +} + +""" +An edge in a connection. +""" +type PullRequestEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PullRequest +} + +""" +Represents available types of methods to use when merging a pull request. +""" +enum PullRequestMergeMethod { + """ + Add all commits from the head branch to the base branch with a merge commit. + """ + MERGE + + """ + Add all commits from the head branch onto the base branch individually. + """ + REBASE + + """ + Combine all commits from the head branch into a single commit in the base branch. + """ + SQUASH +} + +""" +Ways in which lists of issues can be ordered upon return. +""" +input PullRequestOrder { + """ + The direction in which to order pull requests by the specified field. + """ + direction: OrderDirection! + + """ + The field in which to order pull requests by. + """ + field: PullRequestOrderField! +} + +""" +Properties by which pull_requests connections can be ordered. +""" +enum PullRequestOrderField { + """ + Order pull_requests by creation time + """ + CREATED_AT + + """ + Order pull_requests by update time + """ + UPDATED_AT +} + +""" +Require all commits be made to a non-target branch and submitted via a pull request before they can be merged. +""" +type PullRequestParameters { + """ + New, reviewable commits pushed will dismiss previous pull request review approvals. + """ + dismissStaleReviewsOnPush: Boolean! + + """ + Require an approving review in pull requests that modify files that have a designated code owner. + """ + requireCodeOwnerReview: Boolean! + + """ + Whether the most recent reviewable push must be approved by someone other than the person who pushed it. + """ + requireLastPushApproval: Boolean! + + """ + The number of approving reviews that are required before a pull request can be merged. + """ + requiredApprovingReviewCount: Int! + + """ + All conversations on code must be resolved before a pull request can be merged. + """ + requiredReviewThreadResolution: Boolean! +} + +""" +Require all commits be made to a non-target branch and submitted via a pull request before they can be merged. +""" +input PullRequestParametersInput { + """ + New, reviewable commits pushed will dismiss previous pull request review approvals. + """ + dismissStaleReviewsOnPush: Boolean! + + """ + Require an approving review in pull requests that modify files that have a designated code owner. + """ + requireCodeOwnerReview: Boolean! + + """ + Whether the most recent reviewable push must be approved by someone other than the person who pushed it. + """ + requireLastPushApproval: Boolean! + + """ + The number of approving reviews that are required before a pull request can be merged. + """ + requiredApprovingReviewCount: Int! + + """ + All conversations on code must be resolved before a pull request can be merged. + """ + requiredReviewThreadResolution: Boolean! +} + +""" +A review object for a given pull request. +""" +type PullRequestReview implements Comment & Deletable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment { + """ + The actor who authored the comment. + """ + author: Actor + + """ + Author's association with the subject of the comment. + """ + authorAssociation: CommentAuthorAssociation! + + """ + Indicates whether the author of this review has push access to the repository. + """ + authorCanPushToRepository: Boolean! + + """ + Identifies the pull request review body. + """ + body: String! + + """ + The body rendered to HTML. + """ + bodyHTML: HTML! + + """ + The body of this review rendered as plain text. + """ + bodyText: String! + + """ + A list of review comments for the current pull request review. + """ + comments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): PullRequestReviewCommentConnection! + + """ + Identifies the commit associated with this pull request review. + """ + commit: Commit + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Check if this comment was created via an email reply. + """ + createdViaEmail: Boolean! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The actor who edited the comment. + """ + editor: Actor + id: ID! + + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + + """ + The moment the editor made the last edit + """ + lastEditedAt: DateTime + + """ + A list of teams that this review was made on behalf of. + """ + onBehalfOf( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): TeamConnection! + + """ + Identifies when the comment was published at. + """ + publishedAt: DateTime + + """ + Identifies the pull request associated with this pull request review. + """ + pullRequest: PullRequest! + + """ + A list of reactions grouped by content left on the subject. + """ + reactionGroups: [ReactionGroup!] + + """ + A list of Reactions left on the Issue. + """ + reactions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Allows filtering Reactions by emoji. + """ + content: ReactionContent + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Allows specifying the order in which reactions are returned. + """ + orderBy: ReactionOrder + ): ReactionConnection! + + """ + The repository associated with this node. + """ + repository: Repository! + + """ + The HTTP path permalink for this PullRequestReview. + """ + resourcePath: URI! + + """ + Identifies the current state of the pull request review. + """ + state: PullRequestReviewState! + + """ + Identifies when the Pull Request Review was submitted + """ + submittedAt: DateTime + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL permalink for this PullRequestReview. + """ + url: URI! + + """ + A list of edits to this content. + """ + userContentEdits( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserContentEditConnection + + """ + Check if the current viewer can delete this object. + """ + viewerCanDelete: Boolean! + + """ + Can user react to this subject + """ + viewerCanReact: Boolean! + + """ + Check if the current viewer can update this object. + """ + viewerCanUpdate: Boolean! + + """ + Reasons why the current viewer can not update this comment. + """ + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + + """ + Did the viewer author this comment. + """ + viewerDidAuthor: Boolean! +} + +""" +A review comment associated with a given repository pull request. +""" +type PullRequestReviewComment implements Comment & Deletable & Minimizable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment { + """ + The actor who authored the comment. + """ + author: Actor + + """ + Author's association with the subject of the comment. + """ + authorAssociation: CommentAuthorAssociation! + + """ + The comment body of this review comment. + """ + body: String! + + """ + The body rendered to HTML. + """ + bodyHTML: HTML! + + """ + The comment body of this review comment rendered as plain text. + """ + bodyText: String! + + """ + Identifies the commit associated with the comment. + """ + commit: Commit + + """ + Identifies when the comment was created. + """ + createdAt: DateTime! + + """ + Check if this comment was created via an email reply. + """ + createdViaEmail: Boolean! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The diff hunk to which the comment applies. + """ + diffHunk: String! + + """ + Identifies when the comment was created in a draft state. + """ + draftedAt: DateTime! + + """ + The actor who edited the comment. + """ + editor: Actor + id: ID! + + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + + """ + Returns whether or not a comment has been minimized. + """ + isMinimized: Boolean! + + """ + The moment the editor made the last edit + """ + lastEditedAt: DateTime + + """ + The end line number on the file to which the comment applies + """ + line: Int + + """ + Returns why the comment was minimized. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + minimizedReason: String + + """ + Identifies the original commit associated with the comment. + """ + originalCommit: Commit + + """ + The end line number on the file to which the comment applied when it was first created + """ + originalLine: Int + + """ + The original line index in the diff to which the comment applies. + """ + originalPosition: Int! + @deprecated(reason: "We are phasing out diff-relative positioning for PR comments Removal on 2023-10-01 UTC.") + + """ + The start line number on the file to which the comment applied when it was first created + """ + originalStartLine: Int + + """ + Identifies when the comment body is outdated + """ + outdated: Boolean! + + """ + The path to which the comment applies. + """ + path: String! + + """ + The line index in the diff to which the comment applies. + """ + position: Int + @deprecated( + reason: "We are phasing out diff-relative positioning for PR comments Use the `line` and `startLine` fields instead, which are file line numbers instead of diff line numbers Removal on 2023-10-01 UTC." + ) + + """ + Identifies when the comment was published at. + """ + publishedAt: DateTime + + """ + The pull request associated with this review comment. + """ + pullRequest: PullRequest! + + """ + The pull request review associated with this review comment. + """ + pullRequestReview: PullRequestReview + + """ + A list of reactions grouped by content left on the subject. + """ + reactionGroups: [ReactionGroup!] + + """ + A list of Reactions left on the Issue. + """ + reactions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Allows filtering Reactions by emoji. + """ + content: ReactionContent + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Allows specifying the order in which reactions are returned. + """ + orderBy: ReactionOrder + ): ReactionConnection! + + """ + The comment this is a reply to. + """ + replyTo: PullRequestReviewComment + + """ + The repository associated with this node. + """ + repository: Repository! + + """ + The HTTP path permalink for this review comment. + """ + resourcePath: URI! + + """ + The start line number on the file to which the comment applies + """ + startLine: Int + + """ + Identifies the state of the comment. + """ + state: PullRequestReviewCommentState! + + """ + The level at which the comments in the corresponding thread are targeted, can be a diff line or a file + """ + subjectType: PullRequestReviewThreadSubjectType! + + """ + Identifies when the comment was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL permalink for this review comment. + """ + url: URI! + + """ + A list of edits to this content. + """ + userContentEdits( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserContentEditConnection + + """ + Check if the current viewer can delete this object. + """ + viewerCanDelete: Boolean! + + """ + Check if the current viewer can minimize this object. + """ + viewerCanMinimize: Boolean! + + """ + Can user react to this subject + """ + viewerCanReact: Boolean! + + """ + Check if the current viewer can update this object. + """ + viewerCanUpdate: Boolean! + + """ + Reasons why the current viewer can not update this comment. + """ + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + + """ + Did the viewer author this comment. + """ + viewerDidAuthor: Boolean! +} + +""" +The connection type for PullRequestReviewComment. +""" +type PullRequestReviewCommentConnection { + """ + A list of edges. + """ + edges: [PullRequestReviewCommentEdge] + + """ + A list of nodes. + """ + nodes: [PullRequestReviewComment] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type PullRequestReviewCommentEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PullRequestReviewComment +} + +""" +The possible states of a pull request review comment. +""" +enum PullRequestReviewCommentState { + """ + A comment that is part of a pending review + """ + PENDING + + """ + A comment that is part of a submitted review + """ + SUBMITTED +} + +""" +The connection type for PullRequestReview. +""" +type PullRequestReviewConnection { + """ + A list of edges. + """ + edges: [PullRequestReviewEdge] + + """ + A list of nodes. + """ + nodes: [PullRequestReview] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +This aggregates pull request reviews made by a user within one repository. +""" +type PullRequestReviewContributionsByRepository { + """ + The pull request review contributions. + """ + contributions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for contributions returned from the connection. + """ + orderBy: ContributionOrder = {direction: DESC} + ): CreatedPullRequestReviewContributionConnection! + + """ + The repository in which the pull request reviews were made. + """ + repository: Repository! +} + +""" +The review status of a pull request. +""" +enum PullRequestReviewDecision { + """ + The pull request has received an approving review. + """ + APPROVED + + """ + Changes have been requested on the pull request. + """ + CHANGES_REQUESTED + + """ + A review is required before the pull request can be merged. + """ + REVIEW_REQUIRED +} + +""" +An edge in a connection. +""" +type PullRequestReviewEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PullRequestReview +} + +""" +The possible events to perform on a pull request review. +""" +enum PullRequestReviewEvent { + """ + Submit feedback and approve merging these changes. + """ + APPROVE + + """ + Submit general feedback without explicit approval. + """ + COMMENT + + """ + Dismiss review so it now longer effects merging. + """ + DISMISS + + """ + Submit feedback that must be addressed before merging. + """ + REQUEST_CHANGES +} + +""" +The possible states of a pull request review. +""" +enum PullRequestReviewState { + """ + A review allowing the pull request to merge. + """ + APPROVED + + """ + A review blocking the pull request from merging. + """ + CHANGES_REQUESTED + + """ + An informational review. + """ + COMMENTED + + """ + A review that has been dismissed. + """ + DISMISSED + + """ + A review that has not yet been submitted. + """ + PENDING +} + +""" +A threaded list of comments for a given pull request. +""" +type PullRequestReviewThread implements Node { + """ + A list of pull request comments associated with the thread. + """ + comments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Skips the first _n_ elements in the list. + """ + skip: Int + ): PullRequestReviewCommentConnection! + + """ + The side of the diff on which this thread was placed. + """ + diffSide: DiffSide! + id: ID! + + """ + Whether or not the thread has been collapsed (resolved) + """ + isCollapsed: Boolean! + + """ + Indicates whether this thread was outdated by newer changes. + """ + isOutdated: Boolean! + + """ + Whether this thread has been resolved + """ + isResolved: Boolean! + + """ + The line in the file to which this thread refers + """ + line: Int + + """ + The original line in the file to which this thread refers. + """ + originalLine: Int + + """ + The original start line in the file to which this thread refers (multi-line only). + """ + originalStartLine: Int + + """ + Identifies the file path of this thread. + """ + path: String! + + """ + Identifies the pull request associated with this thread. + """ + pullRequest: PullRequest! + + """ + Identifies the repository associated with this thread. + """ + repository: Repository! + + """ + The user who resolved this thread + """ + resolvedBy: User + + """ + The side of the diff that the first line of the thread starts on (multi-line only) + """ + startDiffSide: DiffSide + + """ + The start line in the file to which this thread refers (multi-line only) + """ + startLine: Int + + """ + The level at which the comments in the corresponding thread are targeted, can be a diff line or a file + """ + subjectType: PullRequestReviewThreadSubjectType! + + """ + Indicates whether the current viewer can reply to this thread. + """ + viewerCanReply: Boolean! + + """ + Whether or not the viewer can resolve this thread + """ + viewerCanResolve: Boolean! + + """ + Whether or not the viewer can unresolve this thread + """ + viewerCanUnresolve: Boolean! +} + +""" +Review comment threads for a pull request review. +""" +type PullRequestReviewThreadConnection { + """ + A list of edges. + """ + edges: [PullRequestReviewThreadEdge] + + """ + A list of nodes. + """ + nodes: [PullRequestReviewThread] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type PullRequestReviewThreadEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PullRequestReviewThread +} + +""" +The possible subject types of a pull request review comment. +""" +enum PullRequestReviewThreadSubjectType { + """ + A comment that has been made against the file of a pull request + """ + FILE + + """ + A comment that has been made against the line of a pull request + """ + LINE +} + +""" +Represents the latest point in the pull request timeline for which the viewer has seen the pull request's commits. +""" +type PullRequestRevisionMarker { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The last commit the viewer has seen. + """ + lastSeenCommit: Commit! + + """ + The pull request to which the marker belongs. + """ + pullRequest: PullRequest! +} + +""" +The possible states of a pull request. +""" +enum PullRequestState { + """ + A pull request that has been closed without being merged. + """ + CLOSED + + """ + A pull request that has been closed by being merged. + """ + MERGED + + """ + A pull request that is still open. + """ + OPEN +} + +""" +A repository pull request template. +""" +type PullRequestTemplate { + """ + The body of the template + """ + body: String + + """ + The filename of the template + """ + filename: String + + """ + The repository the template belongs to + """ + repository: Repository! +} + +""" +A threaded list of comments for a given pull request. +""" +type PullRequestThread implements Node { + """ + A list of pull request comments associated with the thread. + """ + comments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Skips the first _n_ elements in the list. + """ + skip: Int + ): PullRequestReviewCommentConnection! + + """ + The side of the diff on which this thread was placed. + """ + diffSide: DiffSide! + id: ID! + + """ + Whether or not the thread has been collapsed (resolved) + """ + isCollapsed: Boolean! + + """ + Indicates whether this thread was outdated by newer changes. + """ + isOutdated: Boolean! + + """ + Whether this thread has been resolved + """ + isResolved: Boolean! + + """ + The line in the file to which this thread refers + """ + line: Int + + """ + Identifies the file path of this thread. + """ + path: String! + + """ + Identifies the pull request associated with this thread. + """ + pullRequest: PullRequest! + + """ + Identifies the repository associated with this thread. + """ + repository: Repository! + + """ + The user who resolved this thread + """ + resolvedBy: User + + """ + The side of the diff that the first line of the thread starts on (multi-line only) + """ + startDiffSide: DiffSide + + """ + The line of the first file diff in the thread. + """ + startLine: Int + + """ + The level at which the comments in the corresponding thread are targeted, can be a diff line or a file + """ + subjectType: PullRequestReviewThreadSubjectType! + + """ + Indicates whether the current viewer can reply to this thread. + """ + viewerCanReply: Boolean! + + """ + Whether or not the viewer can resolve this thread + """ + viewerCanResolve: Boolean! + + """ + Whether or not the viewer can unresolve this thread + """ + viewerCanUnresolve: Boolean! +} + +""" +The connection type for PullRequestTimelineItem. +""" +type PullRequestTimelineConnection { + """ + A list of edges. + """ + edges: [PullRequestTimelineItemEdge] + + """ + A list of nodes. + """ + nodes: [PullRequestTimelineItem] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An item in a pull request timeline +""" +union PullRequestTimelineItem = + AssignedEvent + | BaseRefDeletedEvent + | BaseRefForcePushedEvent + | ClosedEvent + | Commit + | CommitCommentThread + | CrossReferencedEvent + | DemilestonedEvent + | DeployedEvent + | DeploymentEnvironmentChangedEvent + | HeadRefDeletedEvent + | HeadRefForcePushedEvent + | HeadRefRestoredEvent + | IssueComment + | LabeledEvent + | LockedEvent + | MergedEvent + | MilestonedEvent + | PullRequestReview + | PullRequestReviewComment + | PullRequestReviewThread + | ReferencedEvent + | RenamedTitleEvent + | ReopenedEvent + | ReviewDismissedEvent + | ReviewRequestRemovedEvent + | ReviewRequestedEvent + | SubscribedEvent + | UnassignedEvent + | UnlabeledEvent + | UnlockedEvent + | UnsubscribedEvent + | UserBlockedEvent + +""" +An edge in a connection. +""" +type PullRequestTimelineItemEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PullRequestTimelineItem +} + +""" +An item in a pull request timeline +""" +union PullRequestTimelineItems = + AddedToMergeQueueEvent + | AddedToProjectEvent + | AssignedEvent + | AutoMergeDisabledEvent + | AutoMergeEnabledEvent + | AutoRebaseEnabledEvent + | AutoSquashEnabledEvent + | AutomaticBaseChangeFailedEvent + | AutomaticBaseChangeSucceededEvent + | BaseRefChangedEvent + | BaseRefDeletedEvent + | BaseRefForcePushedEvent + | ClosedEvent + | CommentDeletedEvent + | ConnectedEvent + | ConvertToDraftEvent + | ConvertedNoteToIssueEvent + | ConvertedToDiscussionEvent + | CrossReferencedEvent + | DemilestonedEvent + | DeployedEvent + | DeploymentEnvironmentChangedEvent + | DisconnectedEvent + | HeadRefDeletedEvent + | HeadRefForcePushedEvent + | HeadRefRestoredEvent + | IssueComment + | LabeledEvent + | LockedEvent + | MarkedAsDuplicateEvent + | MentionedEvent + | MergedEvent + | MilestonedEvent + | MovedColumnsInProjectEvent + | PinnedEvent + | PullRequestCommit + | PullRequestCommitCommentThread + | PullRequestReview + | PullRequestReviewThread + | PullRequestRevisionMarker + | ReadyForReviewEvent + | ReferencedEvent + | RemovedFromMergeQueueEvent + | RemovedFromProjectEvent + | RenamedTitleEvent + | ReopenedEvent + | ReviewDismissedEvent + | ReviewRequestRemovedEvent + | ReviewRequestedEvent + | SubscribedEvent + | TransferredEvent + | UnassignedEvent + | UnlabeledEvent + | UnlockedEvent + | UnmarkedAsDuplicateEvent + | UnpinnedEvent + | UnsubscribedEvent + | UserBlockedEvent + +""" +The connection type for PullRequestTimelineItems. +""" +type PullRequestTimelineItemsConnection { + """ + A list of edges. + """ + edges: [PullRequestTimelineItemsEdge] + + """ + Identifies the count of items after applying `before` and `after` filters. + """ + filteredCount: Int! + + """ + A list of nodes. + """ + nodes: [PullRequestTimelineItems] + + """ + Identifies the count of items after applying `before`/`after` filters and `first`/`last`/`skip` slicing. + """ + pageCount: Int! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! + + """ + Identifies the date and time when the timeline was last updated. + """ + updatedAt: DateTime! +} + +""" +An edge in a connection. +""" +type PullRequestTimelineItemsEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PullRequestTimelineItems +} + +""" +The possible item types found in a timeline. +""" +enum PullRequestTimelineItemsItemType { + """ + Represents an 'added_to_merge_queue' event on a given pull request. + """ + ADDED_TO_MERGE_QUEUE_EVENT + + """ + Represents a 'added_to_project' event on a given issue or pull request. + """ + ADDED_TO_PROJECT_EVENT + + """ + Represents an 'assigned' event on any assignable object. + """ + ASSIGNED_EVENT + + """ + Represents a 'automatic_base_change_failed' event on a given pull request. + """ + AUTOMATIC_BASE_CHANGE_FAILED_EVENT + + """ + Represents a 'automatic_base_change_succeeded' event on a given pull request. + """ + AUTOMATIC_BASE_CHANGE_SUCCEEDED_EVENT + + """ + Represents a 'auto_merge_disabled' event on a given pull request. + """ + AUTO_MERGE_DISABLED_EVENT + + """ + Represents a 'auto_merge_enabled' event on a given pull request. + """ + AUTO_MERGE_ENABLED_EVENT + + """ + Represents a 'auto_rebase_enabled' event on a given pull request. + """ + AUTO_REBASE_ENABLED_EVENT + + """ + Represents a 'auto_squash_enabled' event on a given pull request. + """ + AUTO_SQUASH_ENABLED_EVENT + + """ + Represents a 'base_ref_changed' event on a given issue or pull request. + """ + BASE_REF_CHANGED_EVENT + + """ + Represents a 'base_ref_deleted' event on a given pull request. + """ + BASE_REF_DELETED_EVENT + + """ + Represents a 'base_ref_force_pushed' event on a given pull request. + """ + BASE_REF_FORCE_PUSHED_EVENT + + """ + Represents a 'closed' event on any `Closable`. + """ + CLOSED_EVENT + + """ + Represents a 'comment_deleted' event on a given issue or pull request. + """ + COMMENT_DELETED_EVENT + + """ + Represents a 'connected' event on a given issue or pull request. + """ + CONNECTED_EVENT + + """ + Represents a 'converted_note_to_issue' event on a given issue or pull request. + """ + CONVERTED_NOTE_TO_ISSUE_EVENT + + """ + Represents a 'converted_to_discussion' event on a given issue. + """ + CONVERTED_TO_DISCUSSION_EVENT + + """ + Represents a 'convert_to_draft' event on a given pull request. + """ + CONVERT_TO_DRAFT_EVENT + + """ + Represents a mention made by one issue or pull request to another. + """ + CROSS_REFERENCED_EVENT + + """ + Represents a 'demilestoned' event on a given issue or pull request. + """ + DEMILESTONED_EVENT + + """ + Represents a 'deployed' event on a given pull request. + """ + DEPLOYED_EVENT + + """ + Represents a 'deployment_environment_changed' event on a given pull request. + """ + DEPLOYMENT_ENVIRONMENT_CHANGED_EVENT + + """ + Represents a 'disconnected' event on a given issue or pull request. + """ + DISCONNECTED_EVENT + + """ + Represents a 'head_ref_deleted' event on a given pull request. + """ + HEAD_REF_DELETED_EVENT + + """ + Represents a 'head_ref_force_pushed' event on a given pull request. + """ + HEAD_REF_FORCE_PUSHED_EVENT + + """ + Represents a 'head_ref_restored' event on a given pull request. + """ + HEAD_REF_RESTORED_EVENT + + """ + Represents a comment on an Issue. + """ + ISSUE_COMMENT + + """ + Represents a 'labeled' event on a given issue or pull request. + """ + LABELED_EVENT + + """ + Represents a 'locked' event on a given issue or pull request. + """ + LOCKED_EVENT + + """ + Represents a 'marked_as_duplicate' event on a given issue or pull request. + """ + MARKED_AS_DUPLICATE_EVENT + + """ + Represents a 'mentioned' event on a given issue or pull request. + """ + MENTIONED_EVENT + + """ + Represents a 'merged' event on a given pull request. + """ + MERGED_EVENT + + """ + Represents a 'milestoned' event on a given issue or pull request. + """ + MILESTONED_EVENT + + """ + Represents a 'moved_columns_in_project' event on a given issue or pull request. + """ + MOVED_COLUMNS_IN_PROJECT_EVENT + + """ + Represents a 'pinned' event on a given issue or pull request. + """ + PINNED_EVENT + + """ + Represents a Git commit part of a pull request. + """ + PULL_REQUEST_COMMIT + + """ + Represents a commit comment thread part of a pull request. + """ + PULL_REQUEST_COMMIT_COMMENT_THREAD + + """ + A review object for a given pull request. + """ + PULL_REQUEST_REVIEW + + """ + A threaded list of comments for a given pull request. + """ + PULL_REQUEST_REVIEW_THREAD + + """ + Represents the latest point in the pull request timeline for which the viewer has seen the pull request's commits. + """ + PULL_REQUEST_REVISION_MARKER + + """ + Represents a 'ready_for_review' event on a given pull request. + """ + READY_FOR_REVIEW_EVENT + + """ + Represents a 'referenced' event on a given `ReferencedSubject`. + """ + REFERENCED_EVENT + + """ + Represents a 'removed_from_merge_queue' event on a given pull request. + """ + REMOVED_FROM_MERGE_QUEUE_EVENT + + """ + Represents a 'removed_from_project' event on a given issue or pull request. + """ + REMOVED_FROM_PROJECT_EVENT + + """ + Represents a 'renamed' event on a given issue or pull request + """ + RENAMED_TITLE_EVENT + + """ + Represents a 'reopened' event on any `Closable`. + """ + REOPENED_EVENT + + """ + Represents a 'review_dismissed' event on a given issue or pull request. + """ + REVIEW_DISMISSED_EVENT + + """ + Represents an 'review_requested' event on a given pull request. + """ + REVIEW_REQUESTED_EVENT + + """ + Represents an 'review_request_removed' event on a given pull request. + """ + REVIEW_REQUEST_REMOVED_EVENT + + """ + Represents a 'subscribed' event on a given `Subscribable`. + """ + SUBSCRIBED_EVENT + + """ + Represents a 'transferred' event on a given issue or pull request. + """ + TRANSFERRED_EVENT + + """ + Represents an 'unassigned' event on any assignable object. + """ + UNASSIGNED_EVENT + + """ + Represents an 'unlabeled' event on a given issue or pull request. + """ + UNLABELED_EVENT + + """ + Represents an 'unlocked' event on a given issue or pull request. + """ + UNLOCKED_EVENT + + """ + Represents an 'unmarked_as_duplicate' event on a given issue or pull request. + """ + UNMARKED_AS_DUPLICATE_EVENT + + """ + Represents an 'unpinned' event on a given issue or pull request. + """ + UNPINNED_EVENT + + """ + Represents an 'unsubscribed' event on a given `Subscribable`. + """ + UNSUBSCRIBED_EVENT + + """ + Represents a 'user_blocked' event on a given user. + """ + USER_BLOCKED_EVENT +} + +""" +The possible target states when updating a pull request. +""" +enum PullRequestUpdateState { + """ + A pull request that has been closed without being merged. + """ + CLOSED + + """ + A pull request that is still open. + """ + OPEN +} + +""" +A Git push. +""" +type Push implements Node { + id: ID! + + """ + The SHA after the push + """ + nextSha: GitObjectID + + """ + The permalink for this push. + """ + permalink: URI! + + """ + The SHA before the push + """ + previousSha: GitObjectID + + """ + The actor who pushed + """ + pusher: Actor! + + """ + The repository that was pushed to + """ + repository: Repository! +} + +""" +A team, user, or app who has the ability to push to a protected branch. +""" +type PushAllowance implements Node { + """ + The actor that can push. + """ + actor: PushAllowanceActor + + """ + Identifies the branch protection rule associated with the allowed user, team, or app. + """ + branchProtectionRule: BranchProtectionRule + id: ID! +} + +""" +Types that can be an actor. +""" +union PushAllowanceActor = App | Team | User + +""" +The connection type for PushAllowance. +""" +type PushAllowanceConnection { + """ + A list of edges. + """ + edges: [PushAllowanceEdge] + + """ + A list of nodes. + """ + nodes: [PushAllowance] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type PushAllowanceEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: PushAllowance +} + +""" +The query root of GitHub's GraphQL interface. +""" +type Query { + """ + Look up a code of conduct by its key + """ + codeOfConduct( + """ + The code of conduct's key + """ + key: String! + ): CodeOfConduct + + """ + Look up a code of conduct by its key + """ + codesOfConduct: [CodeOfConduct] + + """ + Look up an enterprise by URL slug. + """ + enterprise( + """ + The enterprise invitation token. + """ + invitationToken: String + + """ + The enterprise URL slug. + """ + slug: String! + ): Enterprise + + """ + Look up a pending enterprise administrator invitation by invitee, enterprise and role. + """ + enterpriseAdministratorInvitation( + """ + The slug of the enterprise the user was invited to join. + """ + enterpriseSlug: String! + + """ + The role for the business member invitation. + """ + role: EnterpriseAdministratorRole! + + """ + The login of the user invited to join the business. + """ + userLogin: String! + ): EnterpriseAdministratorInvitation + + """ + Look up a pending enterprise administrator invitation by invitation token. + """ + enterpriseAdministratorInvitationByToken( + """ + The invitation token sent with the invitation email. + """ + invitationToken: String! + ): EnterpriseAdministratorInvitation + + """ + Look up an open source license by its key + """ + license( + """ + The license's downcased SPDX ID + """ + key: String! + ): License + + """ + Return a list of known open source licenses + """ + licenses: [License]! + + """ + Get alphabetically sorted list of Marketplace categories + """ + marketplaceCategories( + """ + Exclude categories with no listings. + """ + excludeEmpty: Boolean + + """ + Returns top level categories only, excluding any subcategories. + """ + excludeSubcategories: Boolean + + """ + Return only the specified categories. + """ + includeCategories: [String!] + ): [MarketplaceCategory!]! + + """ + Look up a Marketplace category by its slug. + """ + marketplaceCategory( + """ + The URL slug of the category. + """ + slug: String! + + """ + Also check topic aliases for the category slug + """ + useTopicAliases: Boolean + ): MarketplaceCategory + + """ + Look up a single Marketplace listing + """ + marketplaceListing( + """ + Select the listing that matches this slug. It's the short name of the listing used in its URL. + """ + slug: String! + ): MarketplaceListing + + """ + Look up Marketplace listings + """ + marketplaceListings( + """ + Select listings that can be administered by the specified user. + """ + adminId: ID + + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Select listings visible to the viewer even if they are not approved. If omitted or + false, only approved listings will be returned. + """ + allStates: Boolean + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Select only listings with the given category. + """ + categorySlug: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Select listings for products owned by the specified organization. + """ + organizationId: ID + + """ + Select only listings where the primary category matches the given category slug. + """ + primaryCategoryOnly: Boolean = false + + """ + Select the listings with these slugs, if they are visible to the viewer. + """ + slugs: [String] + + """ + Also check topic aliases for the category slug + """ + useTopicAliases: Boolean + + """ + Select listings to which user has admin access. If omitted, listings visible to the + viewer are returned. + """ + viewerCanAdmin: Boolean + + """ + Select only listings that offer a free trial. + """ + withFreeTrialsOnly: Boolean = false + ): MarketplaceListingConnection! + + """ + Return information about the GitHub instance + """ + meta: GitHubMetadata! + + """ + Fetches an object given its ID. + """ + node( + """ + ID of the object. + """ + id: ID! + ): Node + + """ + Lookup nodes by a list of IDs. + """ + nodes( + """ + The list of node IDs. + """ + ids: [ID!]! + ): [Node]! + + """ + Lookup a organization by login. + """ + organization( + """ + The organization's login. + """ + login: String! + ): Organization + + """ + The client's rate limit information. + """ + rateLimit( + """ + If true, calculate the cost for the query without evaluating it + """ + dryRun: Boolean = false + ): RateLimit + + """ + Workaround for re-exposing the root query object. (Refer to + https://github.com/facebook/relay/issues/112 for more information.) + """ + relay: Query! + + """ + Lookup a given repository by the owner and repository name. + """ + repository( + """ + Follow repository renames. If disabled, a repository referenced by its old name will return an error. + """ + followRenames: Boolean = true + + """ + The name of the repository + """ + name: String! + + """ + The login field of a user or organization + """ + owner: String! + ): Repository + + """ + Lookup a repository owner (ie. either a User or an Organization) by login. + """ + repositoryOwner( + """ + The username to lookup the owner by. + """ + login: String! + ): RepositoryOwner + + """ + Lookup resource by a URL. + """ + resource( + """ + The URL. + """ + url: URI! + ): UniformResourceLocatable + + """ + Perform a search across resources, returning a maximum of 1,000 results. + """ + search( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + The search string to look for. + """ + query: String! + + """ + The types of search items to search within. + """ + type: SearchType! + ): SearchResultItemConnection! + + """ + GitHub Security Advisories + """ + securityAdvisories( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + A list of classifications to filter advisories by. + """ + classifications: [SecurityAdvisoryClassification!] + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Filter advisories by identifier, e.g. GHSA or CVE. + """ + identifier: SecurityAdvisoryIdentifierFilter + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the returned topics. + """ + orderBy: SecurityAdvisoryOrder = {field: UPDATED_AT, direction: DESC} + + """ + Filter advisories to those published since a time in the past. + """ + publishedSince: DateTime + + """ + Filter advisories to those updated since a time in the past. + """ + updatedSince: DateTime + ): SecurityAdvisoryConnection! + + """ + Fetch a Security Advisory by its GHSA ID + """ + securityAdvisory( + """ + GitHub Security Advisory ID. + """ + ghsaId: String! + ): SecurityAdvisory + + """ + Software Vulnerabilities documented by GitHub Security Advisories + """ + securityVulnerabilities( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + A list of advisory classifications to filter vulnerabilities by. + """ + classifications: [SecurityAdvisoryClassification!] + + """ + An ecosystem to filter vulnerabilities by. + """ + ecosystem: SecurityAdvisoryEcosystem + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the returned topics. + """ + orderBy: SecurityVulnerabilityOrder = {field: UPDATED_AT, direction: DESC} + + """ + A package name to filter vulnerabilities by. + """ + package: String + + """ + A list of severities to filter vulnerabilities by. + """ + severities: [SecurityAdvisorySeverity!] + ): SecurityVulnerabilityConnection! + + """ + Users and organizations who can be sponsored via GitHub Sponsors. + """ + sponsorables( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Optional filter for which dependencies should be checked for sponsorable + owners. Only sponsorable owners of dependencies in this ecosystem will be + included. Used when onlyDependencies = true. + + **Upcoming Change on 2022-07-01 UTC** + **Description:** `dependencyEcosystem` will be removed. Use the ecosystem argument instead. + **Reason:** The type is switching from SecurityAdvisoryEcosystem to DependencyGraphEcosystem. + """ + dependencyEcosystem: SecurityAdvisoryEcosystem + + """ + Optional filter for which dependencies should be checked for sponsorable + owners. Only sponsorable owners of dependencies in this ecosystem will be + included. Used when onlyDependencies = true. + """ + ecosystem: DependencyGraphEcosystem + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Whether only sponsorables who own the viewer's dependencies will be + returned. Must be authenticated to use. Can check an organization instead + for their dependencies owned by sponsorables by passing + orgLoginForDependencies. + """ + onlyDependencies: Boolean = false + + """ + Ordering options for users and organizations returned from the connection. + """ + orderBy: SponsorableOrder = {field: LOGIN, direction: ASC} + + """ + Optional organization username for whose dependencies should be checked. + Used when onlyDependencies = true. Omit to check your own dependencies. If + you are not an administrator of the organization, only dependencies from its + public repositories will be considered. + """ + orgLoginForDependencies: String + ): SponsorableItemConnection! + + """ + Look up a topic by name. + """ + topic( + """ + The topic's name. + """ + name: String! + ): Topic + + """ + Lookup a user by login. + """ + user( + """ + The user's login. + """ + login: String! + ): User + + """ + The currently authenticated user. + """ + viewer: User! +} + +""" +Represents the client's rate limit. +""" +type RateLimit { + """ + The point cost for the current query counting against the rate limit. + """ + cost: Int! + + """ + The maximum number of points the client is permitted to consume in a 60 minute window. + """ + limit: Int! + + """ + The maximum number of nodes this query may return + """ + nodeCount: Int! + + """ + The number of points remaining in the current rate limit window. + """ + remaining: Int! + + """ + The time at which the current rate limit window resets in UTC epoch seconds. + """ + resetAt: DateTime! + + """ + The number of points used in the current rate limit window. + """ + used: Int! +} + +""" +Represents a subject that can be reacted on. +""" +interface Reactable { + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + A list of reactions grouped by content left on the subject. + """ + reactionGroups: [ReactionGroup!] + + """ + A list of Reactions left on the Issue. + """ + reactions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Allows filtering Reactions by emoji. + """ + content: ReactionContent + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Allows specifying the order in which reactions are returned. + """ + orderBy: ReactionOrder + ): ReactionConnection! + + """ + Can user react to this subject + """ + viewerCanReact: Boolean! +} + +""" +The connection type for User. +""" +type ReactingUserConnection { + """ + A list of edges. + """ + edges: [ReactingUserEdge] + + """ + A list of nodes. + """ + nodes: [User] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Represents a user that's made a reaction. +""" +type ReactingUserEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + node: User! + + """ + The moment when the user made the reaction. + """ + reactedAt: DateTime! +} + +""" +An emoji reaction to a particular piece of content. +""" +type Reaction implements Node { + """ + Identifies the emoji reaction. + """ + content: ReactionContent! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + The reactable piece of content + """ + reactable: Reactable! + + """ + Identifies the user who created this reaction. + """ + user: User +} + +""" +A list of reactions that have been left on the subject. +""" +type ReactionConnection { + """ + A list of edges. + """ + edges: [ReactionEdge] + + """ + A list of nodes. + """ + nodes: [Reaction] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! + + """ + Whether or not the authenticated user has left a reaction on the subject. + """ + viewerHasReacted: Boolean! +} + +""" +Emojis that can be attached to Issues, Pull Requests and Comments. +""" +enum ReactionContent { + """ + Represents the `:confused:` emoji. + """ + CONFUSED + + """ + Represents the `:eyes:` emoji. + """ + EYES + + """ + Represents the `:heart:` emoji. + """ + HEART + + """ + Represents the `:hooray:` emoji. + """ + HOORAY + + """ + Represents the `:laugh:` emoji. + """ + LAUGH + + """ + Represents the `:rocket:` emoji. + """ + ROCKET + + """ + Represents the `:-1:` emoji. + """ + THUMBS_DOWN + + """ + Represents the `:+1:` emoji. + """ + THUMBS_UP +} + +""" +An edge in a connection. +""" +type ReactionEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Reaction +} + +""" +A group of emoji reactions to a particular piece of content. +""" +type ReactionGroup { + """ + Identifies the emoji reaction. + """ + content: ReactionContent! + + """ + Identifies when the reaction was created. + """ + createdAt: DateTime + + """ + Reactors to the reaction subject with the emotion represented by this reaction group. + """ + reactors( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ReactorConnection! + + """ + The subject that was reacted to. + """ + subject: Reactable! + + """ + Users who have reacted to the reaction subject with the emotion represented by this reaction group + """ + users( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ReactingUserConnection! + @deprecated( + reason: "Reactors can now be mannequins, bots, and organizations. Use the `reactors` field instead. Removal on 2021-10-01 UTC." + ) + + """ + Whether or not the authenticated user has left a reaction on the subject. + """ + viewerHasReacted: Boolean! +} + +""" +Ways in which lists of reactions can be ordered upon return. +""" +input ReactionOrder { + """ + The direction in which to order reactions by the specified field. + """ + direction: OrderDirection! + + """ + The field in which to order reactions by. + """ + field: ReactionOrderField! +} + +""" +A list of fields that reactions can be ordered by. +""" +enum ReactionOrderField { + """ + Allows ordering a list of reactions by when they were created. + """ + CREATED_AT +} + +""" +Types that can be assigned to reactions. +""" +union Reactor = Bot | Mannequin | Organization | User + +""" +The connection type for Reactor. +""" +type ReactorConnection { + """ + A list of edges. + """ + edges: [ReactorEdge] + + """ + A list of nodes. + """ + nodes: [Reactor] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Represents an author of a reaction. +""" +type ReactorEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The author of the reaction. + """ + node: Reactor! + + """ + The moment when the user made the reaction. + """ + reactedAt: DateTime! +} + +""" +Represents a 'ready_for_review' event on a given pull request. +""" +type ReadyForReviewEvent implements Node & UniformResourceLocatable { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest! + + """ + The HTTP path for this ready for review event. + """ + resourcePath: URI! + + """ + The HTTP URL for this ready for review event. + """ + url: URI! +} + +""" +Represents a Git reference. +""" +type Ref implements Node { + """ + A list of pull requests with this ref as the head ref. + """ + associatedPullRequests( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + The base ref name to filter the pull requests by. + """ + baseRefName: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + The head ref name to filter the pull requests by. + """ + headRefName: String + + """ + A list of label names to filter the pull requests by. + """ + labels: [String!] + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for pull requests returned from the connection. + """ + orderBy: IssueOrder + + """ + A list of states to filter the pull requests by. + """ + states: [PullRequestState!] + ): PullRequestConnection! + + """ + Branch protection rules for this ref + """ + branchProtectionRule: BranchProtectionRule + + """ + Compares the current ref as a base ref to another head ref, if the comparison can be made. + """ + compare( + """ + The head ref to compare against. + """ + headRef: String! + ): Comparison + id: ID! + + """ + The ref name. + """ + name: String! + + """ + The ref's prefix, such as `refs/heads/` or `refs/tags/`. + """ + prefix: String! + + """ + Branch protection rules that are viewable by non-admins + """ + refUpdateRule: RefUpdateRule + + """ + The repository the ref belongs to. + """ + repository: Repository! + + """ + The object the ref points to. Returns null when object does not exist. + """ + target: GitObject +} + +""" +The connection type for Ref. +""" +type RefConnection { + """ + A list of edges. + """ + edges: [RefEdge] + + """ + A list of nodes. + """ + nodes: [Ref] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type RefEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Ref +} + +""" +Parameters to be used for the ref_name condition +""" +type RefNameConditionTarget { + """ + Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match. + """ + exclude: [String!]! + + """ + Array of ref names or patterns to include. One of these patterns must match + for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the + default branch or `~ALL` to include all branches. + """ + include: [String!]! +} + +""" +Parameters to be used for the ref_name condition +""" +input RefNameConditionTargetInput { + """ + Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match. + """ + exclude: [String!]! + + """ + Array of ref names or patterns to include. One of these patterns must match + for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the + default branch or `~ALL` to include all branches. + """ + include: [String!]! +} + +""" +Ways in which lists of git refs can be ordered upon return. +""" +input RefOrder { + """ + The direction in which to order refs by the specified field. + """ + direction: OrderDirection! + + """ + The field in which to order refs by. + """ + field: RefOrderField! +} + +""" +Properties by which ref connections can be ordered. +""" +enum RefOrderField { + """ + Order refs by their alphanumeric name + """ + ALPHABETICAL + + """ + Order refs by underlying commit date if the ref prefix is refs/tags/ + """ + TAG_COMMIT_DATE +} + +""" +A ref update +""" +input RefUpdate @preview(toggledBy: "update-refs-preview") { + """ + The value this ref should be updated to. + """ + afterOid: GitObjectID! + + """ + The value this ref needs to point to before the update. + """ + beforeOid: GitObjectID + + """ + Force a non fast-forward update. + """ + force: Boolean = false + + """ + The fully qualified name of the ref to be update. For example `refs/heads/branch-name` + """ + name: GitRefname! +} + +""" +A ref update rules for a viewer. +""" +type RefUpdateRule { + """ + Can this branch be deleted. + """ + allowsDeletions: Boolean! + + """ + Are force pushes allowed on this branch. + """ + allowsForcePushes: Boolean! + + """ + Can matching branches be created. + """ + blocksCreations: Boolean! + + """ + Identifies the protection rule pattern. + """ + pattern: String! + + """ + Number of approving reviews required to update matching branches. + """ + requiredApprovingReviewCount: Int + + """ + List of required status check contexts that must pass for commits to be accepted to matching branches. + """ + requiredStatusCheckContexts: [String] + + """ + Are reviews from code owners required to update matching branches. + """ + requiresCodeOwnerReviews: Boolean! + + """ + Are conversations required to be resolved before merging. + """ + requiresConversationResolution: Boolean! + + """ + Are merge commits prohibited from being pushed to this branch. + """ + requiresLinearHistory: Boolean! + + """ + Are commits required to be signed. + """ + requiresSignatures: Boolean! + + """ + Is the viewer allowed to dismiss reviews. + """ + viewerAllowedToDismissReviews: Boolean! + + """ + Can the viewer push to the branch + """ + viewerCanPush: Boolean! +} + +""" +Represents a 'referenced' event on a given `ReferencedSubject`. +""" +type ReferencedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the commit associated with the 'referenced' event. + """ + commit: Commit + + """ + Identifies the repository associated with the 'referenced' event. + """ + commitRepository: Repository! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Reference originated in a different repository. + """ + isCrossRepository: Boolean! + + """ + Checks if the commit message itself references the subject. Can be false in the case of a commit comment reference. + """ + isDirectReference: Boolean! + + """ + Object referenced by event. + """ + subject: ReferencedSubject! +} + +""" +Any referencable object +""" +union ReferencedSubject = Issue | PullRequest + +""" +Autogenerated input type of RegenerateEnterpriseIdentityProviderRecoveryCodes +""" +input RegenerateEnterpriseIdentityProviderRecoveryCodesInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise on which to set an identity provider. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) +} + +""" +Autogenerated return type of RegenerateEnterpriseIdentityProviderRecoveryCodes +""" +type RegenerateEnterpriseIdentityProviderRecoveryCodesPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The identity provider for the enterprise. + """ + identityProvider: EnterpriseIdentityProvider +} + +""" +Autogenerated input type of RegenerateVerifiableDomainToken +""" +input RegenerateVerifiableDomainTokenInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the verifiable domain to regenerate the verification token of. + """ + id: ID! @possibleTypes(concreteTypes: ["VerifiableDomain"]) +} + +""" +Autogenerated return type of RegenerateVerifiableDomainToken +""" +type RegenerateVerifiableDomainTokenPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The verification token that was generated. + """ + verificationToken: String +} + +""" +Autogenerated input type of RejectDeployments +""" +input RejectDeploymentsInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Optional comment for rejecting deployments + """ + comment: String = "" + + """ + The ids of environments to reject deployments + """ + environmentIds: [ID!]! + + """ + The node ID of the workflow run containing the pending deployments. + """ + workflowRunId: ID! @possibleTypes(concreteTypes: ["WorkflowRun"]) +} + +""" +Autogenerated return type of RejectDeployments +""" +type RejectDeploymentsPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The affected deployments. + """ + deployments: [Deployment!] +} + +""" +A release contains the content for a release. +""" +type Release implements Node & Reactable & UniformResourceLocatable { + """ + The author of the release + """ + author: User + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The description of the release. + """ + description: String + + """ + The description of this release rendered to HTML. + """ + descriptionHTML: HTML + id: ID! + + """ + Whether or not the release is a draft + """ + isDraft: Boolean! + + """ + Whether or not the release is the latest releast + """ + isLatest: Boolean! + + """ + Whether or not the release is a prerelease + """ + isPrerelease: Boolean! + + """ + A list of users mentioned in the release description + """ + mentions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserConnection + + """ + The title of the release. + """ + name: String + + """ + Identifies the date and time when the release was created. + """ + publishedAt: DateTime + + """ + A list of reactions grouped by content left on the subject. + """ + reactionGroups: [ReactionGroup!] + + """ + A list of Reactions left on the Issue. + """ + reactions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Allows filtering Reactions by emoji. + """ + content: ReactionContent + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Allows specifying the order in which reactions are returned. + """ + orderBy: ReactionOrder + ): ReactionConnection! + + """ + List of releases assets which are dependent on this release. + """ + releaseAssets( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + A list of names to filter the assets by. + """ + name: String + ): ReleaseAssetConnection! + + """ + The repository that the release belongs to. + """ + repository: Repository! + + """ + The HTTP path for this issue + """ + resourcePath: URI! + + """ + A description of the release, rendered to HTML without any links in it. + """ + shortDescriptionHTML( + """ + How many characters to return. + """ + limit: Int = 200 + ): HTML + + """ + The Git tag the release points to + """ + tag: Ref + + """ + The tag commit for this release. + """ + tagCommit: Commit + + """ + The name of the release's Git tag + """ + tagName: String! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this issue + """ + url: URI! + + """ + Can user react to this subject + """ + viewerCanReact: Boolean! +} + +""" +A release asset contains the content for a release asset. +""" +type ReleaseAsset implements Node { + """ + The asset's content-type + """ + contentType: String! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The number of times this asset was downloaded + """ + downloadCount: Int! + + """ + Identifies the URL where you can download the release asset via the browser. + """ + downloadUrl: URI! + id: ID! + + """ + Identifies the title of the release asset. + """ + name: String! + + """ + Release that the asset is associated with + """ + release: Release + + """ + The size (in bytes) of the asset + """ + size: Int! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The user that performed the upload + """ + uploadedBy: User! + + """ + Identifies the URL of the release asset. + """ + url: URI! +} + +""" +The connection type for ReleaseAsset. +""" +type ReleaseAssetConnection { + """ + A list of edges. + """ + edges: [ReleaseAssetEdge] + + """ + A list of nodes. + """ + nodes: [ReleaseAsset] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ReleaseAssetEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ReleaseAsset +} + +""" +The connection type for Release. +""" +type ReleaseConnection { + """ + A list of edges. + """ + edges: [ReleaseEdge] + + """ + A list of nodes. + """ + nodes: [Release] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ReleaseEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Release +} + +""" +Ways in which lists of releases can be ordered upon return. +""" +input ReleaseOrder { + """ + The direction in which to order releases by the specified field. + """ + direction: OrderDirection! + + """ + The field in which to order releases by. + """ + field: ReleaseOrderField! +} + +""" +Properties by which release connections can be ordered. +""" +enum ReleaseOrderField { + """ + Order releases by creation time + """ + CREATED_AT + + """ + Order releases alphabetically by name + """ + NAME +} + +""" +Autogenerated input type of RemoveAssigneesFromAssignable +""" +input RemoveAssigneesFromAssignableInput { + """ + The id of the assignable object to remove assignees from. + """ + assignableId: ID! @possibleTypes(concreteTypes: ["Issue", "PullRequest"], abstractType: "Assignable") + + """ + The id of users to remove as assignees. + """ + assigneeIds: [ID!]! @possibleTypes(concreteTypes: ["User"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated return type of RemoveAssigneesFromAssignable +""" +type RemoveAssigneesFromAssignablePayload { + """ + The item that was unassigned. + """ + assignable: Assignable + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of RemoveEnterpriseAdmin +""" +input RemoveEnterpriseAdminInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Enterprise ID from which to remove the administrator. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The login of the user to remove as an administrator. + """ + login: String! +} + +""" +Autogenerated return type of RemoveEnterpriseAdmin +""" +type RemoveEnterpriseAdminPayload { + """ + The user who was removed as an administrator. + """ + admin: User + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated enterprise. + """ + enterprise: Enterprise + + """ + A message confirming the result of removing an administrator. + """ + message: String + + """ + The viewer performing the mutation. + """ + viewer: User +} + +""" +Autogenerated input type of RemoveEnterpriseIdentityProvider +""" +input RemoveEnterpriseIdentityProviderInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise from which to remove the identity provider. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) +} + +""" +Autogenerated return type of RemoveEnterpriseIdentityProvider +""" +type RemoveEnterpriseIdentityProviderPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The identity provider that was removed from the enterprise. + """ + identityProvider: EnterpriseIdentityProvider +} + +""" +Autogenerated input type of RemoveEnterpriseMember +""" +input RemoveEnterpriseMemberInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise from which the user should be removed. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The ID of the user to remove from the enterprise. + """ + userId: ID! @possibleTypes(concreteTypes: ["User"]) +} + +""" +Autogenerated return type of RemoveEnterpriseMember +""" +type RemoveEnterpriseMemberPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated enterprise. + """ + enterprise: Enterprise + + """ + The user that was removed from the enterprise. + """ + user: User + + """ + The viewer performing the mutation. + """ + viewer: User +} + +""" +Autogenerated input type of RemoveEnterpriseOrganization +""" +input RemoveEnterpriseOrganizationInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise from which the organization should be removed. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The ID of the organization to remove from the enterprise. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +Autogenerated return type of RemoveEnterpriseOrganization +""" +type RemoveEnterpriseOrganizationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated enterprise. + """ + enterprise: Enterprise + + """ + The organization that was removed from the enterprise. + """ + organization: Organization + + """ + The viewer performing the mutation. + """ + viewer: User +} + +""" +Autogenerated input type of RemoveEnterpriseSupportEntitlement +""" +input RemoveEnterpriseSupportEntitlementInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the Enterprise which the admin belongs to. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The login of a member who will lose the support entitlement. + """ + login: String! +} + +""" +Autogenerated return type of RemoveEnterpriseSupportEntitlement +""" +type RemoveEnterpriseSupportEntitlementPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A message confirming the result of removing the support entitlement. + """ + message: String +} + +""" +Autogenerated input type of RemoveLabelsFromLabelable +""" +input RemoveLabelsFromLabelableInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ids of labels to remove. + """ + labelIds: [ID!]! @possibleTypes(concreteTypes: ["Label"]) + + """ + The id of the Labelable to remove labels from. + """ + labelableId: ID! @possibleTypes(concreteTypes: ["Discussion", "Issue", "PullRequest"], abstractType: "Labelable") +} + +""" +Autogenerated return type of RemoveLabelsFromLabelable +""" +type RemoveLabelsFromLabelablePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Labelable the labels were removed from. + """ + labelable: Labelable +} + +""" +Autogenerated input type of RemoveOutsideCollaborator +""" +input RemoveOutsideCollaboratorInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the organization to remove the outside collaborator from. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) + + """ + The ID of the outside collaborator to remove. + """ + userId: ID! @possibleTypes(concreteTypes: ["User"]) +} + +""" +Autogenerated return type of RemoveOutsideCollaborator +""" +type RemoveOutsideCollaboratorPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The user that was removed as an outside collaborator. + """ + removedUser: User +} + +""" +Autogenerated input type of RemoveReaction +""" +input RemoveReactionInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The name of the emoji reaction to remove. + """ + content: ReactionContent! + + """ + The Node ID of the subject to modify. + """ + subjectId: ID! + @possibleTypes( + concreteTypes: [ + "CommitComment" + "Discussion" + "DiscussionComment" + "Issue" + "IssueComment" + "PullRequest" + "PullRequestReview" + "PullRequestReviewComment" + "Release" + "TeamDiscussion" + "TeamDiscussionComment" + ] + abstractType: "Reactable" + ) +} + +""" +Autogenerated return type of RemoveReaction +""" +type RemoveReactionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The reaction object. + """ + reaction: Reaction + + """ + The reaction groups for the subject. + """ + reactionGroups: [ReactionGroup!] + + """ + The reactable subject. + """ + subject: Reactable +} + +""" +Autogenerated input type of RemoveStar +""" +input RemoveStarInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Starrable ID to unstar. + """ + starrableId: ID! @possibleTypes(concreteTypes: ["Gist", "Repository", "Topic"], abstractType: "Starrable") +} + +""" +Autogenerated return type of RemoveStar +""" +type RemoveStarPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The starrable. + """ + starrable: Starrable +} + +""" +Autogenerated input type of RemoveUpvote +""" +input RemoveUpvoteInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the discussion or comment to remove upvote. + """ + subjectId: ID! @possibleTypes(concreteTypes: ["Discussion", "DiscussionComment"], abstractType: "Votable") +} + +""" +Autogenerated return type of RemoveUpvote +""" +type RemoveUpvotePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The votable subject. + """ + subject: Votable +} + +""" +Represents a 'removed_from_merge_queue' event on a given pull request. +""" +type RemovedFromMergeQueueEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the before commit SHA for the 'removed_from_merge_queue' event. + """ + beforeCommit: Commit + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The user who removed this Pull Request from the merge queue + """ + enqueuer: User + id: ID! + + """ + The merge queue where this pull request was removed from. + """ + mergeQueue: MergeQueue + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest + + """ + The reason this pull request was removed from the queue. + """ + reason: String +} + +""" +Represents a 'removed_from_project' event on a given issue or pull request. +""" +type RemovedFromProjectEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + Project referenced by event. + """ + project: Project @preview(toggledBy: "starfox-preview") + + """ + Column name referenced by this project event. + """ + projectColumnName: String! @preview(toggledBy: "starfox-preview") +} + +""" +Represents a 'renamed' event on a given issue or pull request +""" +type RenamedTitleEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the current title of the issue or pull request. + """ + currentTitle: String! + id: ID! + + """ + Identifies the previous title of the issue or pull request. + """ + previousTitle: String! + + """ + Subject that was renamed. + """ + subject: RenamedTitleSubject! +} + +""" +An object which has a renamable title +""" +union RenamedTitleSubject = Issue | PullRequest + +""" +Autogenerated input type of ReopenDiscussion +""" +input ReopenDiscussionInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the discussion to be reopened. + """ + discussionId: ID! @possibleTypes(concreteTypes: ["Discussion"]) +} + +""" +Autogenerated return type of ReopenDiscussion +""" +type ReopenDiscussionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The discussion that was reopened. + """ + discussion: Discussion +} + +""" +Autogenerated input type of ReopenIssue +""" +input ReopenIssueInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the issue to be opened. + """ + issueId: ID! @possibleTypes(concreteTypes: ["Issue"]) +} + +""" +Autogenerated return type of ReopenIssue +""" +type ReopenIssuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The issue that was opened. + """ + issue: Issue +} + +""" +Autogenerated input type of ReopenPullRequest +""" +input ReopenPullRequestInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the pull request to be reopened. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +Autogenerated return type of ReopenPullRequest +""" +type ReopenPullRequestPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The pull request that was reopened. + """ + pullRequest: PullRequest +} + +""" +Represents a 'reopened' event on any `Closable`. +""" +type ReopenedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Object that was reopened. + """ + closable: Closable! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + The reason the issue state was changed to open. + """ + stateReason: IssueStateReason +} + +""" +Audit log entry for a repo.access event. +""" +type RepoAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI + + """ + The visibility of the repository + """ + visibility: RepoAccessAuditEntryVisibility +} + +""" +The privacy of a repository +""" +enum RepoAccessAuditEntryVisibility { + """ + The repository is visible only to users in the same business. + """ + INTERNAL + + """ + The repository is visible only to those with explicit access. + """ + PRIVATE + + """ + The repository is visible to everyone. + """ + PUBLIC +} + +""" +Audit log entry for a repo.add_member event. +""" +type RepoAddMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI + + """ + The visibility of the repository + """ + visibility: RepoAddMemberAuditEntryVisibility +} + +""" +The privacy of a repository +""" +enum RepoAddMemberAuditEntryVisibility { + """ + The repository is visible only to users in the same business. + """ + INTERNAL + + """ + The repository is visible only to those with explicit access. + """ + PRIVATE + + """ + The repository is visible to everyone. + """ + PUBLIC +} + +""" +Audit log entry for a repo.add_topic event. +""" +type RepoAddTopicAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TopicAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The name of the topic added to the repository + """ + topic: Topic + + """ + The name of the topic added to the repository + """ + topicName: String + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a repo.archived event. +""" +type RepoArchivedAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI + + """ + The visibility of the repository + """ + visibility: RepoArchivedAuditEntryVisibility +} + +""" +The privacy of a repository +""" +enum RepoArchivedAuditEntryVisibility { + """ + The repository is visible only to users in the same business. + """ + INTERNAL + + """ + The repository is visible only to those with explicit access. + """ + PRIVATE + + """ + The repository is visible to everyone. + """ + PUBLIC +} + +""" +Audit log entry for a repo.change_merge_setting event. +""" +type RepoChangeMergeSettingAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + Whether the change was to enable (true) or disable (false) the merge type + """ + isEnabled: Boolean + + """ + The merge method affected by the change + """ + mergeType: RepoChangeMergeSettingAuditEntryMergeType + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +The merge options available for pull requests to this repository. +""" +enum RepoChangeMergeSettingAuditEntryMergeType { + """ + The pull request is added to the base branch in a merge commit. + """ + MERGE + + """ + Commits from the pull request are added onto the base branch individually without a merge commit. + """ + REBASE + + """ + The pull request's commits are squashed into a single commit before they are merged to the base branch. + """ + SQUASH +} + +""" +Audit log entry for a repo.config.disable_anonymous_git_access event. +""" +type RepoConfigDisableAnonymousGitAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a repo.config.disable_collaborators_only event. +""" +type RepoConfigDisableCollaboratorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a repo.config.disable_contributors_only event. +""" +type RepoConfigDisableContributorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a repo.config.disable_sockpuppet_disallowed event. +""" +type RepoConfigDisableSockpuppetDisallowedAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a repo.config.enable_anonymous_git_access event. +""" +type RepoConfigEnableAnonymousGitAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a repo.config.enable_collaborators_only event. +""" +type RepoConfigEnableCollaboratorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a repo.config.enable_contributors_only event. +""" +type RepoConfigEnableContributorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a repo.config.enable_sockpuppet_disallowed event. +""" +type RepoConfigEnableSockpuppetDisallowedAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a repo.config.lock_anonymous_git_access event. +""" +type RepoConfigLockAnonymousGitAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a repo.config.unlock_anonymous_git_access event. +""" +type RepoConfigUnlockAnonymousGitAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a repo.create event. +""" +type RepoCreateAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + + """ + The name of the parent repository for this forked repository. + """ + forkParentName: String + + """ + The name of the root repository for this network. + """ + forkSourceName: String + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI + + """ + The visibility of the repository + """ + visibility: RepoCreateAuditEntryVisibility +} + +""" +The privacy of a repository +""" +enum RepoCreateAuditEntryVisibility { + """ + The repository is visible only to users in the same business. + """ + INTERNAL + + """ + The repository is visible only to those with explicit access. + """ + PRIVATE + + """ + The repository is visible to everyone. + """ + PUBLIC +} + +""" +Audit log entry for a repo.destroy event. +""" +type RepoDestroyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI + + """ + The visibility of the repository + """ + visibility: RepoDestroyAuditEntryVisibility +} + +""" +The privacy of a repository +""" +enum RepoDestroyAuditEntryVisibility { + """ + The repository is visible only to users in the same business. + """ + INTERNAL + + """ + The repository is visible only to those with explicit access. + """ + PRIVATE + + """ + The repository is visible to everyone. + """ + PUBLIC +} + +""" +Audit log entry for a repo.remove_member event. +""" +type RepoRemoveMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI + + """ + The visibility of the repository + """ + visibility: RepoRemoveMemberAuditEntryVisibility +} + +""" +The privacy of a repository +""" +enum RepoRemoveMemberAuditEntryVisibility { + """ + The repository is visible only to users in the same business. + """ + INTERNAL + + """ + The repository is visible only to those with explicit access. + """ + PRIVATE + + """ + The repository is visible to everyone. + """ + PUBLIC +} + +""" +Audit log entry for a repo.remove_topic event. +""" +type RepoRemoveTopicAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TopicAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The name of the topic added to the repository + """ + topic: Topic + + """ + The name of the topic added to the repository + """ + topicName: String + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +The reasons a piece of content can be reported or minimized. +""" +enum ReportedContentClassifiers { + """ + An abusive or harassing piece of content + """ + ABUSE + + """ + A duplicated piece of content + """ + DUPLICATE + + """ + An irrelevant piece of content + """ + OFF_TOPIC + + """ + An outdated piece of content + """ + OUTDATED + + """ + The content has been resolved + """ + RESOLVED + + """ + A spammy piece of content + """ + SPAM +} + +""" +A repository contains the content for a project. +""" +type Repository implements Node & PackageOwner & ProjectOwner & ProjectV2Recent & RepositoryInfo & Starrable & Subscribable & UniformResourceLocatable { + """ + Whether or not a pull request head branch that is behind its base branch can + always be updated even if it is not required to be up to date before merging. + """ + allowUpdateBranch: Boolean! + + """ + Identifies the date and time when the repository was archived. + """ + archivedAt: DateTime + + """ + A list of users that can be assigned to issues in this repository. + """ + assignableUsers( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filters users with query on user name and login. + """ + query: String + ): UserConnection! + + """ + Whether or not Auto-merge can be enabled on pull requests in this repository. + """ + autoMergeAllowed: Boolean! + + """ + A list of branch protection rules for this repository. + """ + branchProtectionRules( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): BranchProtectionRuleConnection! + + """ + Returns the code of conduct for this repository + """ + codeOfConduct: CodeOfConduct + + """ + Information extracted from the repository's `CODEOWNERS` file. + """ + codeowners( + """ + The ref name used to return the associated `CODEOWNERS` file. + """ + refName: String + ): RepositoryCodeowners + + """ + A list of collaborators associated with the repository. + """ + collaborators( + """ + Collaborators affiliation level with a repository. + """ + affiliation: CollaboratorAffiliation + + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + The login of one specific collaborator. + """ + login: String + + """ + Filters users with query on user name and login + """ + query: String + ): RepositoryCollaboratorConnection + + """ + A list of commit comments associated with the repository. + """ + commitComments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): CommitCommentConnection! + + """ + Returns a list of contact links associated to the repository + """ + contactLinks: [RepositoryContactLink!] + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The Ref associated with the repository's default branch. + """ + defaultBranchRef: Ref + + """ + Whether or not branches are automatically deleted when merged in this repository. + """ + deleteBranchOnMerge: Boolean! + + """ + A list of dependency manifests contained in the repository + """ + dependencyGraphManifests( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Cursor to paginate dependencies + """ + dependenciesAfter: String + + """ + Number of dependencies to fetch + """ + dependenciesFirst: Int + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Flag to scope to only manifests with dependencies + """ + withDependencies: Boolean + ): DependencyGraphManifestConnection @preview(toggledBy: "hawkgirl-preview") + + """ + A list of deploy keys that are on this repository. + """ + deployKeys( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): DeployKeyConnection! + + """ + Deployments associated with the repository + """ + deployments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Environments to list deployments for + """ + environments: [String!] + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for deployments returned from the connection. + """ + orderBy: DeploymentOrder = {field: CREATED_AT, direction: ASC} + ): DeploymentConnection! + + """ + The description of the repository. + """ + description: String + + """ + The description of the repository rendered to HTML. + """ + descriptionHTML: HTML! + + """ + Returns a single discussion from the current repository by number. + """ + discussion( + """ + The number for the discussion to be returned. + """ + number: Int! + ): Discussion + + """ + A list of discussion categories that are available in the repository. + """ + discussionCategories( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Filter by categories that are assignable by the viewer. + """ + filterByAssignable: Boolean = false + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): DiscussionCategoryConnection! + + """ + A discussion category by slug. + """ + discussionCategory( + """ + The slug of the discussion category to be returned. + """ + slug: String! + ): DiscussionCategory + + """ + A list of discussions that have been opened in the repository. + """ + discussions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Only include discussions that belong to the category with this ID. + """ + categoryId: ID = null + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for discussions returned from the connection. + """ + orderBy: DiscussionOrder = {field: UPDATED_AT, direction: DESC} + + """ + A list of states to filter the discussions by. + """ + states: [DiscussionState!] = [] + ): DiscussionConnection! + + """ + The number of kilobytes this repository occupies on disk. + """ + diskUsage: Int + + """ + Returns a single active environment from the current repository by name. + """ + environment( + """ + The name of the environment to be returned. + """ + name: String! + ): Environment + + """ + A list of environments that are in this repository. + """ + environments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the environments + """ + orderBy: Environments = {field: NAME, direction: ASC} + ): EnvironmentConnection! + + """ + Returns how many forks there are of this repository in the whole network. + """ + forkCount: Int! + + """ + Whether this repository allows forks. + """ + forkingAllowed: Boolean! + + """ + A list of direct forked repositories. + """ + forks( + """ + Array of viewer's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + current viewer owns. + """ + affiliations: [RepositoryAffiliation] + + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + If non-null, filters repositories according to whether they have issues enabled + """ + hasIssuesEnabled: Boolean + + """ + If non-null, filters repositories according to whether they have been locked + """ + isLocked: Boolean + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for repositories returned from the connection + """ + orderBy: RepositoryOrder + + """ + Array of owner's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + organization or user being viewed owns. + """ + ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR] + + """ + If non-null, filters repositories according to privacy + """ + privacy: RepositoryPrivacy + ): RepositoryConnection! + + """ + The funding links for this repository + """ + fundingLinks: [FundingLink!]! + + """ + Indicates if the repository has the Discussions feature enabled. + """ + hasDiscussionsEnabled: Boolean! + + """ + Indicates if the repository has issues feature enabled. + """ + hasIssuesEnabled: Boolean! + + """ + Indicates if the repository has the Projects feature enabled. + """ + hasProjectsEnabled: Boolean! + + """ + Whether vulnerability alerts are enabled for the repository. + """ + hasVulnerabilityAlertsEnabled: Boolean! + + """ + Indicates if the repository has wiki feature enabled. + """ + hasWikiEnabled: Boolean! + + """ + The repository's URL. + """ + homepageUrl: URI + id: ID! + + """ + The interaction ability settings for this repository. + """ + interactionAbility: RepositoryInteractionAbility + + """ + Indicates if the repository is unmaintained. + """ + isArchived: Boolean! + + """ + Returns true if blank issue creation is allowed + """ + isBlankIssuesEnabled: Boolean! + + """ + Returns whether or not this repository disabled. + """ + isDisabled: Boolean! + + """ + Returns whether or not this repository is empty. + """ + isEmpty: Boolean! + + """ + Identifies if the repository is a fork. + """ + isFork: Boolean! + + """ + Indicates if a repository is either owned by an organization, or is a private fork of an organization repository. + """ + isInOrganization: Boolean! + + """ + Indicates if the repository has been locked or not. + """ + isLocked: Boolean! + + """ + Identifies if the repository is a mirror. + """ + isMirror: Boolean! + + """ + Identifies if the repository is private or internal. + """ + isPrivate: Boolean! + + """ + Returns true if this repository has a security policy + """ + isSecurityPolicyEnabled: Boolean + + """ + Identifies if the repository is a template that can be used to generate new repositories. + """ + isTemplate: Boolean! + + """ + Is this repository a user configuration repository? + """ + isUserConfigurationRepository: Boolean! + + """ + Returns a single issue from the current repository by number. + """ + issue( + """ + The number for the issue to be returned. + """ + number: Int! + ): Issue + + """ + Returns a single issue-like object from the current repository by number. + """ + issueOrPullRequest( + """ + The number for the issue to be returned. + """ + number: Int! + ): IssueOrPullRequest + + """ + Returns a list of issue templates associated to the repository + """ + issueTemplates: [IssueTemplate!] + + """ + A list of issues that have been opened in the repository. + """ + issues( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Filtering options for issues returned from the connection. + """ + filterBy: IssueFilters + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + A list of label names to filter the pull requests by. + """ + labels: [String!] + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for issues returned from the connection. + """ + orderBy: IssueOrder + + """ + A list of states to filter the issues by. + """ + states: [IssueState!] + ): IssueConnection! + + """ + Returns a single label by name + """ + label( + """ + Label name + """ + name: String! + ): Label + + """ + A list of labels associated with the repository. + """ + labels( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for labels returned from the connection. + """ + orderBy: LabelOrder = {field: CREATED_AT, direction: ASC} + + """ + If provided, searches labels by name and description. + """ + query: String + ): LabelConnection + + """ + A list containing a breakdown of the language composition of the repository. + """ + languages( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Order for connection + """ + orderBy: LanguageOrder + ): LanguageConnection + + """ + Get the latest release for the repository if one exists. + """ + latestRelease: Release + + """ + The license associated with the repository + """ + licenseInfo: License + + """ + The reason the repository has been locked. + """ + lockReason: RepositoryLockReason + + """ + A list of Users that can be mentioned in the context of the repository. + """ + mentionableUsers( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filters users with query on user name and login + """ + query: String + ): UserConnection! + + """ + Whether or not PRs are merged with a merge commit on this repository. + """ + mergeCommitAllowed: Boolean! + + """ + How the default commit message will be generated when merging a pull request. + """ + mergeCommitMessage: MergeCommitMessage! + + """ + How the default commit title will be generated when merging a pull request. + """ + mergeCommitTitle: MergeCommitTitle! + + """ + The merge queue for a specified branch, otherwise the default branch if not provided. + """ + mergeQueue( + """ + The name of the branch to get the merge queue for. Case sensitive. + """ + branch: String + ): MergeQueue + + """ + Returns a single milestone from the current repository by number. + """ + milestone( + """ + The number for the milestone to be returned. + """ + number: Int! + ): Milestone + + """ + A list of milestones associated with the repository. + """ + milestones( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for milestones. + """ + orderBy: MilestoneOrder + + """ + Filters milestones with a query on the title + """ + query: String + + """ + Filter by the state of the milestones. + """ + states: [MilestoneState!] + ): MilestoneConnection + + """ + The repository's original mirror URL. + """ + mirrorUrl: URI + + """ + The name of the repository. + """ + name: String! + + """ + The repository's name with owner. + """ + nameWithOwner: String! + + """ + A Git object in the repository + """ + object( + """ + A Git revision expression suitable for rev-parse + """ + expression: String + + """ + The Git object ID + """ + oid: GitObjectID + ): GitObject + + """ + The image used to represent this repository in Open Graph data. + """ + openGraphImageUrl: URI! + + """ + The User owner of the repository. + """ + owner: RepositoryOwner! + + """ + A list of packages under the owner. + """ + packages( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Find packages by their names. + """ + names: [String] + + """ + Ordering of the returned packages. + """ + orderBy: PackageOrder = {field: CREATED_AT, direction: DESC} + + """ + Filter registry package by type. + """ + packageType: PackageType + + """ + Find packages in a repository by ID. + """ + repositoryId: ID + ): PackageConnection! + + """ + The repository parent, if this is a fork. + """ + parent: Repository + + """ + A list of discussions that have been pinned in this repository. + """ + pinnedDiscussions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): PinnedDiscussionConnection! + + """ + A list of pinned issues for this repository. + """ + pinnedIssues( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): PinnedIssueConnection + + """ + The primary language of the repository's code. + """ + primaryLanguage: Language + + """ + Find project by number. + """ + project( + """ + The project number to find. + """ + number: Int! + ): Project + + """ + Finds and returns the Project according to the provided Project number. + """ + projectV2( + """ + The Project number. + """ + number: Int! + ): ProjectV2 + + """ + A list of projects under the owner. + """ + projects( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for projects returned from the connection + """ + orderBy: ProjectOrder + + """ + Query to search projects by, currently only searching by name. + """ + search: String + + """ + A list of states to filter the projects by. + """ + states: [ProjectState!] + ): ProjectConnection! + + """ + The HTTP path listing the repository's projects + """ + projectsResourcePath: URI! + + """ + The HTTP URL listing the repository's projects + """ + projectsUrl: URI! + + """ + List of projects linked to this repository. + """ + projectsV2( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + How to order the returned projects. + """ + orderBy: ProjectV2Order = {field: NUMBER, direction: DESC} + + """ + A project to search for linked to the repo. + """ + query: String + ): ProjectV2Connection! + + """ + Returns a single pull request from the current repository by number. + """ + pullRequest( + """ + The number for the pull request to be returned. + """ + number: Int! + ): PullRequest + + """ + Returns a list of pull request templates associated to the repository + """ + pullRequestTemplates: [PullRequestTemplate!] + + """ + A list of pull requests that have been opened in the repository. + """ + pullRequests( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + The base ref name to filter the pull requests by. + """ + baseRefName: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + The head ref name to filter the pull requests by. + """ + headRefName: String + + """ + A list of label names to filter the pull requests by. + """ + labels: [String!] + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for pull requests returned from the connection. + """ + orderBy: IssueOrder + + """ + A list of states to filter the pull requests by. + """ + states: [PullRequestState!] + ): PullRequestConnection! + + """ + Identifies the date and time when the repository was last pushed to. + """ + pushedAt: DateTime + + """ + Whether or not rebase-merging is enabled on this repository. + """ + rebaseMergeAllowed: Boolean! + + """ + Recent projects that this user has modified in the context of the owner. + """ + recentProjects( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectV2Connection! + + """ + Fetch a given ref from the repository + """ + ref( + """ + The ref to retrieve. Fully qualified matches are checked in order + (`refs/heads/master`) before falling back onto checks for short name matches (`master`). + """ + qualifiedName: String! + ): Ref + + """ + Fetch a list of refs from the repository + """ + refs( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + DEPRECATED: use orderBy. The ordering direction. + """ + direction: OrderDirection + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for refs returned from the connection. + """ + orderBy: RefOrder + + """ + Filters refs with query on name + """ + query: String + + """ + A ref name prefix like `refs/heads/`, `refs/tags/`, etc. + """ + refPrefix: String! + ): RefConnection + + """ + Lookup a single release given various criteria. + """ + release( + """ + The name of the Tag the Release was created from + """ + tagName: String! + ): Release + + """ + List of releases which are dependent on this repository. + """ + releases( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Order for connection + """ + orderBy: ReleaseOrder + ): ReleaseConnection! + + """ + A list of applied repository-topic associations for this repository. + """ + repositoryTopics( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): RepositoryTopicConnection! + + """ + The HTTP path for this repository + """ + resourcePath: URI! + + """ + Returns a single ruleset from the current repository by ID. + """ + ruleset( + """ + The ID of the ruleset to be returned. + """ + databaseId: Int! + + """ + Include rulesets configured at higher levels that apply to this repository + """ + includeParents: Boolean = true + ): RepositoryRuleset + + """ + A list of rulesets for this repository. + """ + rulesets( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Return rulesets configured at higher levels that apply to this repository + """ + includeParents: Boolean = true + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): RepositoryRulesetConnection + + """ + The security policy URL. + """ + securityPolicyUrl: URI + + """ + A description of the repository, rendered to HTML without any links in it. + """ + shortDescriptionHTML( + """ + How many characters to return. + """ + limit: Int = 200 + ): HTML! + + """ + Whether or not squash-merging is enabled on this repository. + """ + squashMergeAllowed: Boolean! + + """ + How the default commit message will be generated when squash merging a pull request. + """ + squashMergeCommitMessage: SquashMergeCommitMessage! + + """ + How the default commit title will be generated when squash merging a pull request. + """ + squashMergeCommitTitle: SquashMergeCommitTitle! + + """ + Whether a squash merge commit can use the pull request title as default. + """ + squashPrTitleUsedAsDefault: Boolean! + @deprecated( + reason: "`squashPrTitleUsedAsDefault` will be removed. Use `Repository.squashMergeCommitTitle` instead. Removal on 2023-04-01 UTC." + ) + + """ + The SSH URL to clone this repository + """ + sshUrl: GitSSHRemote! + + """ + Returns a count of how many stargazers there are on this object + """ + stargazerCount: Int! + + """ + A list of users who have starred this starrable. + """ + stargazers( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Order for connection + """ + orderBy: StarOrder + ): StargazerConnection! + + """ + Returns a list of all submodules in this repository parsed from the + .gitmodules file as of the default branch's HEAD commit. + """ + submodules( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): SubmoduleConnection! + + """ + Temporary authentication token for cloning this repository. + """ + tempCloneToken: String + + """ + The repository from which this repository was generated, if any. + """ + templateRepository: Repository + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this repository + """ + url: URI! + + """ + Whether this repository has a custom image to use with Open Graph as opposed to being represented by the owner's avatar. + """ + usesCustomOpenGraphImage: Boolean! + + """ + Indicates whether the viewer has admin permissions on this repository. + """ + viewerCanAdminister: Boolean! + + """ + Can the current viewer create new projects on this owner. + """ + viewerCanCreateProjects: Boolean! + + """ + Check if the viewer is able to change their subscription status for the repository. + """ + viewerCanSubscribe: Boolean! + + """ + Indicates whether the viewer can update the topics of this repository. + """ + viewerCanUpdateTopics: Boolean! + + """ + The last commit email for the viewer. + """ + viewerDefaultCommitEmail: String + + """ + The last used merge method by the viewer or the default for the repository. + """ + viewerDefaultMergeMethod: PullRequestMergeMethod! + + """ + Returns a boolean indicating whether the viewing user has starred this starrable. + """ + viewerHasStarred: Boolean! + + """ + The users permission level on the repository. Will return null if authenticated as an GitHub App. + """ + viewerPermission: RepositoryPermission + + """ + A list of emails this viewer can commit with. + """ + viewerPossibleCommitEmails: [String!] + + """ + Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. + """ + viewerSubscription: SubscriptionState + + """ + Indicates the repository's visibility level. + """ + visibility: RepositoryVisibility! + + """ + Returns a single vulnerability alert from the current repository by number. + """ + vulnerabilityAlert( + """ + The number for the vulnerability alert to be returned. + """ + number: Int! + ): RepositoryVulnerabilityAlert + + """ + A list of vulnerability alerts that are on this repository. + """ + vulnerabilityAlerts( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Filter by the scope of the alert's dependency + """ + dependencyScopes: [RepositoryVulnerabilityAlertDependencyScope!] + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter by the state of the alert + """ + states: [RepositoryVulnerabilityAlertState!] + ): RepositoryVulnerabilityAlertConnection + + """ + A list of users watching the repository. + """ + watchers( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserConnection! + + """ + Whether contributors are required to sign off on web-based commits in this repository. + """ + webCommitSignoffRequired: Boolean! +} + +""" +The affiliation of a user to a repository +""" +enum RepositoryAffiliation { + """ + Repositories that the user has been added to as a collaborator. + """ + COLLABORATOR + + """ + Repositories that the user has access to through being a member of an + organization. This includes every repository on every team that the user is on. + """ + ORGANIZATION_MEMBER + + """ + Repositories that are owned by the authenticated user. + """ + OWNER +} + +""" +Metadata for an audit entry with action repo.* +""" +interface RepositoryAuditEntryData { + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI +} + +""" +Information extracted from a repository's `CODEOWNERS` file. +""" +type RepositoryCodeowners { + """ + Any problems that were encountered while parsing the `CODEOWNERS` file. + """ + errors: [RepositoryCodeownersError!]! +} + +""" +An error in a `CODEOWNERS` file. +""" +type RepositoryCodeownersError { + """ + The column number where the error occurs. + """ + column: Int! + + """ + A short string describing the type of error. + """ + kind: String! + + """ + The line number where the error occurs. + """ + line: Int! + + """ + A complete description of the error, combining information from other fields. + """ + message: String! + + """ + The path to the file when the error occurs. + """ + path: String! + + """ + The content of the line where the error occurs. + """ + source: String! + + """ + A suggestion of how to fix the error. + """ + suggestion: String +} + +""" +The connection type for User. +""" +type RepositoryCollaboratorConnection { + """ + A list of edges. + """ + edges: [RepositoryCollaboratorEdge] + + """ + A list of nodes. + """ + nodes: [User] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Represents a user who is a collaborator of a repository. +""" +type RepositoryCollaboratorEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + node: User! + + """ + The permission the user has on the repository. + """ + permission: RepositoryPermission! + + """ + A list of sources for the user's access to the repository. + """ + permissionSources: [PermissionSource!] +} + +""" +A list of repositories owned by the subject. +""" +type RepositoryConnection { + """ + A list of edges. + """ + edges: [RepositoryEdge] + + """ + A list of nodes. + """ + nodes: [Repository] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! + + """ + The total size in kilobytes of all repositories in the connection. + """ + totalDiskUsage: Int! +} + +""" +A repository contact link. +""" +type RepositoryContactLink { + """ + The contact link purpose. + """ + about: String! + + """ + The contact link name. + """ + name: String! + + """ + The contact link URL. + """ + url: URI! +} + +""" +The reason a repository is listed as 'contributed'. +""" +enum RepositoryContributionType { + """ + Created a commit + """ + COMMIT + + """ + Created an issue + """ + ISSUE + + """ + Created a pull request + """ + PULL_REQUEST + + """ + Reviewed a pull request + """ + PULL_REQUEST_REVIEW + + """ + Created the repository + """ + REPOSITORY +} + +""" +Represents an author of discussions in repositories. +""" +interface RepositoryDiscussionAuthor { + """ + Discussions this user has started. + """ + repositoryDiscussions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Filter discussions to only those that have been answered or not. Defaults to + including both answered and unanswered discussions. + """ + answered: Boolean = null + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for discussions returned from the connection. + """ + orderBy: DiscussionOrder = {field: CREATED_AT, direction: DESC} + + """ + Filter discussions to only those in a specific repository. + """ + repositoryId: ID + + """ + A list of states to filter the discussions by. + """ + states: [DiscussionState!] = [] + ): DiscussionConnection! +} + +""" +Represents an author of discussion comments in repositories. +""" +interface RepositoryDiscussionCommentAuthor { + """ + Discussion comments this user has authored. + """ + repositoryDiscussionComments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter discussion comments to only those that were marked as the answer + """ + onlyAnswers: Boolean = false + + """ + Filter discussion comments to only those in a specific repository. + """ + repositoryId: ID + ): DiscussionCommentConnection! +} + +""" +An edge in a connection. +""" +type RepositoryEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Repository +} + +""" +Parameters to be used for the repository_id condition +""" +type RepositoryIdConditionTarget { + """ + One of these repo IDs must match the repo. + """ + repositoryIds: [ID!]! +} + +""" +Parameters to be used for the repository_id condition +""" +input RepositoryIdConditionTargetInput { + """ + One of these repo IDs must match the repo. + """ + repositoryIds: [ID!]! +} + +""" +A subset of repository info. +""" +interface RepositoryInfo { + """ + Identifies the date and time when the repository was archived. + """ + archivedAt: DateTime + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The description of the repository. + """ + description: String + + """ + The description of the repository rendered to HTML. + """ + descriptionHTML: HTML! + + """ + Returns how many forks there are of this repository in the whole network. + """ + forkCount: Int! + + """ + Indicates if the repository has the Discussions feature enabled. + """ + hasDiscussionsEnabled: Boolean! + + """ + Indicates if the repository has issues feature enabled. + """ + hasIssuesEnabled: Boolean! + + """ + Indicates if the repository has the Projects feature enabled. + """ + hasProjectsEnabled: Boolean! + + """ + Indicates if the repository has wiki feature enabled. + """ + hasWikiEnabled: Boolean! + + """ + The repository's URL. + """ + homepageUrl: URI + + """ + Indicates if the repository is unmaintained. + """ + isArchived: Boolean! + + """ + Identifies if the repository is a fork. + """ + isFork: Boolean! + + """ + Indicates if a repository is either owned by an organization, or is a private fork of an organization repository. + """ + isInOrganization: Boolean! + + """ + Indicates if the repository has been locked or not. + """ + isLocked: Boolean! + + """ + Identifies if the repository is a mirror. + """ + isMirror: Boolean! + + """ + Identifies if the repository is private or internal. + """ + isPrivate: Boolean! + + """ + Identifies if the repository is a template that can be used to generate new repositories. + """ + isTemplate: Boolean! + + """ + The license associated with the repository + """ + licenseInfo: License + + """ + The reason the repository has been locked. + """ + lockReason: RepositoryLockReason + + """ + The repository's original mirror URL. + """ + mirrorUrl: URI + + """ + The name of the repository. + """ + name: String! + + """ + The repository's name with owner. + """ + nameWithOwner: String! + + """ + The image used to represent this repository in Open Graph data. + """ + openGraphImageUrl: URI! + + """ + The User owner of the repository. + """ + owner: RepositoryOwner! + + """ + Identifies the date and time when the repository was last pushed to. + """ + pushedAt: DateTime + + """ + The HTTP path for this repository + """ + resourcePath: URI! + + """ + A description of the repository, rendered to HTML without any links in it. + """ + shortDescriptionHTML( + """ + How many characters to return. + """ + limit: Int = 200 + ): HTML! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this repository + """ + url: URI! + + """ + Whether this repository has a custom image to use with Open Graph as opposed to being represented by the owner's avatar. + """ + usesCustomOpenGraphImage: Boolean! + + """ + Indicates the repository's visibility level. + """ + visibility: RepositoryVisibility! +} + +""" +Repository interaction limit that applies to this object. +""" +type RepositoryInteractionAbility { + """ + The time the currently active limit expires. + """ + expiresAt: DateTime + + """ + The current limit that is enabled on this object. + """ + limit: RepositoryInteractionLimit! + + """ + The origin of the currently active interaction limit. + """ + origin: RepositoryInteractionLimitOrigin! +} + +""" +A repository interaction limit. +""" +enum RepositoryInteractionLimit { + """ + Users that are not collaborators will not be able to interact with the repository. + """ + COLLABORATORS_ONLY + + """ + Users that have not previously committed to a repository’s default branch will be unable to interact with the repository. + """ + CONTRIBUTORS_ONLY + + """ + Users that have recently created their account will be unable to interact with the repository. + """ + EXISTING_USERS + + """ + No interaction limits are enabled. + """ + NO_LIMIT +} + +""" +The length for a repository interaction limit to be enabled for. +""" +enum RepositoryInteractionLimitExpiry { + """ + The interaction limit will expire after 1 day. + """ + ONE_DAY + + """ + The interaction limit will expire after 1 month. + """ + ONE_MONTH + + """ + The interaction limit will expire after 1 week. + """ + ONE_WEEK + + """ + The interaction limit will expire after 6 months. + """ + SIX_MONTHS + + """ + The interaction limit will expire after 3 days. + """ + THREE_DAYS +} + +""" +Indicates where an interaction limit is configured. +""" +enum RepositoryInteractionLimitOrigin { + """ + A limit that is configured at the organization level. + """ + ORGANIZATION + + """ + A limit that is configured at the repository level. + """ + REPOSITORY + + """ + A limit that is configured at the user-wide level. + """ + USER +} + +""" +An invitation for a user to be added to a repository. +""" +type RepositoryInvitation implements Node { + """ + The email address that received the invitation. + """ + email: String + id: ID! + + """ + The user who received the invitation. + """ + invitee: User + + """ + The user who created the invitation. + """ + inviter: User! + + """ + The permalink for this repository invitation. + """ + permalink: URI! + + """ + The permission granted on this repository by this invitation. + """ + permission: RepositoryPermission! + + """ + The Repository the user is invited to. + """ + repository: RepositoryInfo +} + +""" +A list of repository invitations. +""" +type RepositoryInvitationConnection { + """ + A list of edges. + """ + edges: [RepositoryInvitationEdge] + + """ + A list of nodes. + """ + nodes: [RepositoryInvitation] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type RepositoryInvitationEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: RepositoryInvitation +} + +""" +Ordering options for repository invitation connections. +""" +input RepositoryInvitationOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order repository invitations by. + """ + field: RepositoryInvitationOrderField! +} + +""" +Properties by which repository invitation connections can be ordered. +""" +enum RepositoryInvitationOrderField { + """ + Order repository invitations by creation time + """ + CREATED_AT +} + +""" +The possible reasons a given repository could be in a locked state. +""" +enum RepositoryLockReason { + """ + The repository is locked due to a billing related reason. + """ + BILLING + + """ + The repository is locked due to a migration. + """ + MIGRATING + + """ + The repository is locked due to a move. + """ + MOVING + + """ + The repository is locked due to a rename. + """ + RENAME + + """ + The repository is locked due to a trade controls related reason. + """ + TRADE_RESTRICTION +} + +""" +A GitHub Enterprise Importer (GEI) repository migration. +""" +type RepositoryMigration implements Migration & Node { + """ + The migration flag to continue on error. + """ + continueOnError: Boolean! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: String + + """ + The reason the migration failed. + """ + failureReason: String + id: ID! + + """ + The URL for the migration log (expires 1 day after migration completes). + """ + migrationLogUrl: URI + + """ + The migration source. + """ + migrationSource: MigrationSource! + + """ + The target repository name. + """ + repositoryName: String! + + """ + The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`. + """ + sourceUrl: URI! + + """ + The migration state. + """ + state: MigrationState! + + """ + The number of warnings encountered for this migration. To review the warnings, + check the [Migration Log](https://docs.github.com/en/migrations/using-github-enterprise-importer/completing-your-migration-with-github-enterprise-importer/accessing-your-migration-logs-for-github-enterprise-importer). + """ + warningsCount: Int! +} + +""" +The connection type for RepositoryMigration. +""" +type RepositoryMigrationConnection { + """ + A list of edges. + """ + edges: [RepositoryMigrationEdge] + + """ + A list of nodes. + """ + nodes: [RepositoryMigration] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Represents a repository migration. +""" +type RepositoryMigrationEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: RepositoryMigration +} + +""" +Ordering options for repository migrations. +""" +input RepositoryMigrationOrder { + """ + The ordering direction. + """ + direction: RepositoryMigrationOrderDirection! + + """ + The field to order repository migrations by. + """ + field: RepositoryMigrationOrderField! +} + +""" +Possible directions in which to order a list of repository migrations when provided an `orderBy` argument. +""" +enum RepositoryMigrationOrderDirection { + """ + Specifies an ascending order for a given `orderBy` argument. + """ + ASC + + """ + Specifies a descending order for a given `orderBy` argument. + """ + DESC +} + +""" +Properties by which repository migrations can be ordered. +""" +enum RepositoryMigrationOrderField { + """ + Order mannequins why when they were created. + """ + CREATED_AT +} + +""" +Parameters to be used for the repository_name condition +""" +type RepositoryNameConditionTarget { + """ + Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match. + """ + exclude: [String!]! + + """ + Array of repository names or patterns to include. One of these patterns must + match for the condition to pass. Also accepts `~ALL` to include all repositories. + """ + include: [String!]! + + """ + Target changes that match these patterns will be prevented except by those with bypass permissions. + """ + protected: Boolean! +} + +""" +Parameters to be used for the repository_name condition +""" +input RepositoryNameConditionTargetInput { + """ + Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match. + """ + exclude: [String!]! + + """ + Array of repository names or patterns to include. One of these patterns must + match for the condition to pass. Also accepts `~ALL` to include all repositories. + """ + include: [String!]! + + """ + Target changes that match these patterns will be prevented except by those with bypass permissions. + """ + protected: Boolean +} + +""" +Represents a object that belongs to a repository. +""" +interface RepositoryNode { + """ + The repository associated with this node. + """ + repository: Repository! +} + +""" +Ordering options for repository connections +""" +input RepositoryOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order repositories by. + """ + field: RepositoryOrderField! +} + +""" +Properties by which repository connections can be ordered. +""" +enum RepositoryOrderField { + """ + Order repositories by creation time + """ + CREATED_AT + + """ + Order repositories by name + """ + NAME + + """ + Order repositories by push time + """ + PUSHED_AT + + """ + Order repositories by number of stargazers + """ + STARGAZERS + + """ + Order repositories by update time + """ + UPDATED_AT +} + +""" +Represents an owner of a Repository. +""" +interface RepositoryOwner { + """ + A URL pointing to the owner's public avatar. + """ + avatarUrl( + """ + The size of the resulting square image. + """ + size: Int + ): URI! + id: ID! + + """ + The username used to login. + """ + login: String! + + """ + A list of repositories that the user owns. + """ + repositories( + """ + Array of viewer's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + current viewer owns. + """ + affiliations: [RepositoryAffiliation] + + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + If non-null, filters repositories according to whether they have issues enabled + """ + hasIssuesEnabled: Boolean + + """ + If non-null, filters repositories according to whether they are archived and not maintained + """ + isArchived: Boolean + + """ + If non-null, filters repositories according to whether they are forks of another repository + """ + isFork: Boolean + + """ + If non-null, filters repositories according to whether they have been locked + """ + isLocked: Boolean + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for repositories returned from the connection + """ + orderBy: RepositoryOrder + + """ + Array of owner's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + organization or user being viewed owns. + """ + ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR] + + """ + If non-null, filters repositories according to privacy + """ + privacy: RepositoryPrivacy + ): RepositoryConnection! + + """ + Find Repository. + """ + repository( + """ + Follow repository renames. If disabled, a repository referenced by its old name will return an error. + """ + followRenames: Boolean = true + + """ + Name of Repository to find. + """ + name: String! + ): Repository + + """ + The HTTP URL for the owner. + """ + resourcePath: URI! + + """ + The HTTP URL for the owner. + """ + url: URI! +} + +""" +The access level to a repository +""" +enum RepositoryPermission { + """ + Can read, clone, and push to this repository. Can also manage issues, pull + requests, and repository settings, including adding collaborators + """ + ADMIN + + """ + Can read, clone, and push to this repository. They can also manage issues, pull requests, and some repository settings + """ + MAINTAIN + + """ + Can read and clone this repository. Can also open and comment on issues and pull requests + """ + READ + + """ + Can read and clone this repository. Can also manage issues and pull requests + """ + TRIAGE + + """ + Can read, clone, and push to this repository. Can also manage issues and pull requests + """ + WRITE +} + +""" +The privacy of a repository +""" +enum RepositoryPrivacy { + """ + Private + """ + PRIVATE + + """ + Public + """ + PUBLIC +} + +""" +A repository rule. +""" +type RepositoryRule implements Node { + id: ID! + + """ + The parameters for this rule. + """ + parameters: RuleParameters + + """ + The type of rule. + """ + type: RepositoryRuleType! +} + +""" +Set of conditions that determine if a ruleset will evaluate +""" +type RepositoryRuleConditions { + """ + Configuration for the ref_name condition + """ + refName: RefNameConditionTarget + + """ + Configuration for the repository_id condition + """ + repositoryId: RepositoryIdConditionTarget + + """ + Configuration for the repository_name condition + """ + repositoryName: RepositoryNameConditionTarget +} + +""" +Specifies the conditions required for a ruleset to evaluate +""" +input RepositoryRuleConditionsInput { + """ + Configuration for the ref_name condition + """ + refName: RefNameConditionTargetInput + + """ + Configuration for the repository_id condition + """ + repositoryId: RepositoryIdConditionTargetInput + + """ + Configuration for the repository_name condition + """ + repositoryName: RepositoryNameConditionTargetInput +} + +""" +The connection type for RepositoryRule. +""" +type RepositoryRuleConnection { + """ + A list of edges. + """ + edges: [RepositoryRuleEdge] + + """ + A list of nodes. + """ + nodes: [RepositoryRule] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type RepositoryRuleEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: RepositoryRule +} + +""" +Specifies the attributes for a new or updated rule. +""" +input RepositoryRuleInput { + """ + Optional ID of this rule when updating + """ + id: ID @possibleTypes(concreteTypes: ["RepositoryRule"]) + + """ + The parameters for the rule. + """ + parameters: RuleParametersInput + + """ + The type of rule to create. + """ + type: RepositoryRuleType! +} + +""" +The rule types supported in rulesets +""" +enum RepositoryRuleType { + """ + Branch name pattern + """ + BRANCH_NAME_PATTERN + + """ + Committer email pattern + """ + COMMITTER_EMAIL_PATTERN + + """ + Commit author email pattern + """ + COMMIT_AUTHOR_EMAIL_PATTERN + + """ + Commit message pattern + """ + COMMIT_MESSAGE_PATTERN + + """ + Only allow users with bypass permission to create matching refs. + """ + CREATION + + """ + Only allow users with bypass permissions to delete matching refs. + """ + DELETION + + """ + Prevent users with push access from force pushing to branches. + """ + NON_FAST_FORWARD + + """ + Require all commits be made to a non-target branch and submitted via a pull request before they can be merged. + """ + PULL_REQUEST + + """ + Choose which environments must be successfully deployed to before branches can + be merged into a branch that matches this rule. + """ + REQUIRED_DEPLOYMENTS + + """ + Prevent merge commits from being pushed to matching branches. + """ + REQUIRED_LINEAR_HISTORY + + """ + Commits pushed to matching branches must have verified signatures. + """ + REQUIRED_SIGNATURES + + """ + Choose which status checks must pass before branches can be merged into a + branch that matches this rule. When enabled, commits must first be pushed to + another branch, then merged or pushed directly to a branch that matches this + rule after status checks have passed. + """ + REQUIRED_STATUS_CHECKS + + """ + Tag name pattern + """ + TAG_NAME_PATTERN + + """ + Only allow users with bypass permission to update matching refs. + """ + UPDATE +} + +""" +A repository ruleset. +""" +type RepositoryRuleset implements Node { + """ + The actors that can bypass this ruleset + """ + bypassActors( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): RepositoryRulesetBypassActorConnection + + """ + The set of conditions that must evaluate to true for this ruleset to apply + """ + conditions: RepositoryRuleConditions! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The enforcement level of this ruleset + """ + enforcement: RuleEnforcement! + id: ID! + + """ + Name of the ruleset. + """ + name: String! + + """ + List of rules. + """ + rules( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + The type of rule. + """ + type: RepositoryRuleType + ): RepositoryRuleConnection + + """ + Source of ruleset. + """ + source: RuleSource! + + """ + Target of the ruleset. + """ + target: RepositoryRulesetTarget + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +A team or app that has the ability to bypass a rules defined on a ruleset +""" +type RepositoryRulesetBypassActor implements Node { + """ + The actor that can bypass rules. + """ + actor: BypassActor + + """ + The mode for the bypass actor + """ + bypassMode: RepositoryRulesetBypassActorBypassMode + id: ID! + + """ + This actor represents the ability for an organization admin to bypass + """ + organizationAdmin: Boolean! + + """ + If the actor is a repository role, the repository role's ID that can bypass + """ + repositoryRoleDatabaseId: Int + + """ + If the actor is a repository role, the repository role's name that can bypass + """ + repositoryRoleName: String + + """ + Identifies the ruleset associated with the allowed actor + """ + repositoryRuleset: RepositoryRuleset +} + +""" +The bypass mode for a specific actor on a ruleset. +""" +enum RepositoryRulesetBypassActorBypassMode { + """ + The actor can always bypass rules + """ + ALWAYS + + """ + The actor can only bypass rules via a pull request + """ + PULL_REQUEST +} + +""" +The connection type for RepositoryRulesetBypassActor. +""" +type RepositoryRulesetBypassActorConnection { + """ + A list of edges. + """ + edges: [RepositoryRulesetBypassActorEdge] + + """ + A list of nodes. + """ + nodes: [RepositoryRulesetBypassActor] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type RepositoryRulesetBypassActorEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: RepositoryRulesetBypassActor +} + +""" +Specifies the attributes for a new or updated ruleset bypass actor. Only one of +`actor_id`, `repository_role_database_id`, or `organization_admin` should be specified. +""" +input RepositoryRulesetBypassActorInput { + """ + For Team and Integration bypasses, the Team or Integration ID + """ + actorId: ID + + """ + The bypass mode for this actor. + """ + bypassMode: RepositoryRulesetBypassActorBypassMode! + + """ + For org admin bupasses, true + """ + organizationAdmin: Boolean + + """ + For role bypasses, the role database ID + """ + repositoryRoleDatabaseId: Int +} + +""" +The connection type for RepositoryRuleset. +""" +type RepositoryRulesetConnection { + """ + A list of edges. + """ + edges: [RepositoryRulesetEdge] + + """ + A list of nodes. + """ + nodes: [RepositoryRuleset] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type RepositoryRulesetEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: RepositoryRuleset +} + +""" +The targets supported for rulesets +""" +enum RepositoryRulesetTarget { + """ + Branch + """ + BRANCH + + """ + Tag + """ + TAG +} + +""" +A repository-topic connects a repository to a topic. +""" +type RepositoryTopic implements Node & UniformResourceLocatable { + id: ID! + + """ + The HTTP path for this repository-topic. + """ + resourcePath: URI! + + """ + The topic. + """ + topic: Topic! + + """ + The HTTP URL for this repository-topic. + """ + url: URI! +} + +""" +The connection type for RepositoryTopic. +""" +type RepositoryTopicConnection { + """ + A list of edges. + """ + edges: [RepositoryTopicEdge] + + """ + A list of nodes. + """ + nodes: [RepositoryTopic] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type RepositoryTopicEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: RepositoryTopic +} + +""" +The repository's visibility level. +""" +enum RepositoryVisibility { + """ + The repository is visible only to users in the same business. + """ + INTERNAL + + """ + The repository is visible only to those with explicit access. + """ + PRIVATE + + """ + The repository is visible to everyone. + """ + PUBLIC +} + +""" +Audit log entry for a repository_visibility_change.disable event. +""" +type RepositoryVisibilityChangeDisableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + + """ + The HTTP path for this enterprise. + """ + enterpriseResourcePath: URI + + """ + The slug of the enterprise. + """ + enterpriseSlug: String + + """ + The HTTP URL for this enterprise. + """ + enterpriseUrl: URI + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a repository_visibility_change.enable event. +""" +type RepositoryVisibilityChangeEnableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + + """ + The HTTP path for this enterprise. + """ + enterpriseResourcePath: URI + + """ + The slug of the enterprise. + """ + enterpriseSlug: String + + """ + The HTTP URL for this enterprise. + """ + enterpriseUrl: URI + id: ID! + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +A Dependabot alert for a repository with a dependency affected by a security vulnerability. +""" +type RepositoryVulnerabilityAlert implements Node & RepositoryNode { + """ + When was the alert auto-dismissed? + """ + autoDismissedAt: DateTime + + """ + When was the alert created? + """ + createdAt: DateTime! + + """ + The associated Dependabot update + """ + dependabotUpdate: DependabotUpdate + + """ + The scope of an alert's dependency + """ + dependencyScope: RepositoryVulnerabilityAlertDependencyScope + + """ + Comment explaining the reason the alert was dismissed + """ + dismissComment: String + + """ + The reason the alert was dismissed + """ + dismissReason: String + + """ + When was the alert dismissed? + """ + dismissedAt: DateTime + + """ + The user who dismissed the alert + """ + dismisser: User + + """ + When was the alert fixed? + """ + fixedAt: DateTime + id: ID! + + """ + Identifies the alert number. + """ + number: Int! + + """ + The associated repository + """ + repository: Repository! + + """ + The associated security advisory + """ + securityAdvisory: SecurityAdvisory + + """ + The associated security vulnerability + """ + securityVulnerability: SecurityVulnerability + + """ + Identifies the state of the alert. + """ + state: RepositoryVulnerabilityAlertState! + + """ + The vulnerable manifest filename + """ + vulnerableManifestFilename: String! + + """ + The vulnerable manifest path + """ + vulnerableManifestPath: String! + + """ + The vulnerable requirements + """ + vulnerableRequirements: String +} + +""" +The connection type for RepositoryVulnerabilityAlert. +""" +type RepositoryVulnerabilityAlertConnection { + """ + A list of edges. + """ + edges: [RepositoryVulnerabilityAlertEdge] + + """ + A list of nodes. + """ + nodes: [RepositoryVulnerabilityAlert] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +The possible scopes of an alert's dependency. +""" +enum RepositoryVulnerabilityAlertDependencyScope { + """ + A dependency that is only used in development + """ + DEVELOPMENT + + """ + A dependency that is leveraged during application runtime + """ + RUNTIME +} + +""" +An edge in a connection. +""" +type RepositoryVulnerabilityAlertEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: RepositoryVulnerabilityAlert +} + +""" +The possible states of an alert +""" +enum RepositoryVulnerabilityAlertState { + """ + An alert that has been automatically closed by Dependabot. + """ + AUTO_DISMISSED + + """ + An alert that has been manually closed by a user. + """ + DISMISSED + + """ + An alert that has been resolved by a code change. + """ + FIXED + + """ + An alert that is still open. + """ + OPEN +} + +""" +Autogenerated input type of RequestReviews +""" +input RequestReviewsInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the pull request to modify. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) + + """ + The Node IDs of the team to request. + """ + teamIds: [ID!] @possibleTypes(concreteTypes: ["Team"]) + + """ + Add users to the set rather than replace. + """ + union: Boolean = false + + """ + The Node IDs of the user to request. + """ + userIds: [ID!] @possibleTypes(concreteTypes: ["User"]) +} + +""" +Autogenerated return type of RequestReviews +""" +type RequestReviewsPayload { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The pull request that is getting requests. + """ + pullRequest: PullRequest + + """ + The edge from the pull request to the requested reviewers. + """ + requestedReviewersEdge: UserEdge +} + +""" +The possible states that can be requested when creating a check run. +""" +enum RequestableCheckStatusState { + """ + The check suite or run has been completed. + """ + COMPLETED + + """ + The check suite or run is in progress. + """ + IN_PROGRESS + + """ + The check suite or run is in pending state. + """ + PENDING + + """ + The check suite or run has been queued. + """ + QUEUED + + """ + The check suite or run is in waiting state. + """ + WAITING +} + +""" +Types that can be requested reviewers. +""" +union RequestedReviewer = Bot | Mannequin | Team | User + +""" +The connection type for RequestedReviewer. +""" +type RequestedReviewerConnection { + """ + A list of edges. + """ + edges: [RequestedReviewerEdge] + + """ + A list of nodes. + """ + nodes: [RequestedReviewer] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type RequestedReviewerEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: RequestedReviewer +} + +""" +Represents a type that can be required by a pull request for merging. +""" +interface RequirableByPullRequest { + """ + Whether this is required to pass before merging for a specific pull request. + """ + isRequired( + """ + The id of the pull request this is required for + """ + pullRequestId: ID + + """ + The number of the pull request this is required for + """ + pullRequestNumber: Int + ): Boolean! +} + +""" +Choose which environments must be successfully deployed to before branches can +be merged into a branch that matches this rule. +""" +type RequiredDeploymentsParameters { + """ + The environments that must be successfully deployed to before branches can be merged. + """ + requiredDeploymentEnvironments: [String!]! +} + +""" +Choose which environments must be successfully deployed to before branches can +be merged into a branch that matches this rule. +""" +input RequiredDeploymentsParametersInput { + """ + The environments that must be successfully deployed to before branches can be merged. + """ + requiredDeploymentEnvironments: [String!]! +} + +""" +Represents a required status check for a protected branch, but not any specific run of that check. +""" +type RequiredStatusCheckDescription { + """ + The App that must provide this status in order for it to be accepted. + """ + app: App + + """ + The name of this status. + """ + context: String! +} + +""" +Specifies the attributes for a new or updated required status check. +""" +input RequiredStatusCheckInput { + """ + The ID of the App that must set the status in order for it to be accepted. + Omit this value to use whichever app has recently been setting this status, or + use "any" to allow any app to set the status. + """ + appId: ID + + """ + Status check context that must pass for commits to be accepted to the matching branch. + """ + context: String! +} + +""" +Choose which status checks must pass before branches can be merged into a branch +that matches this rule. When enabled, commits must first be pushed to another +branch, then merged or pushed directly to a branch that matches this rule after +status checks have passed. +""" +type RequiredStatusChecksParameters { + """ + Status checks that are required. + """ + requiredStatusChecks: [StatusCheckConfiguration!]! + + """ + Whether pull requests targeting a matching branch must be tested with the + latest code. This setting will not take effect unless at least one status + check is enabled. + """ + strictRequiredStatusChecksPolicy: Boolean! +} + +""" +Choose which status checks must pass before branches can be merged into a branch +that matches this rule. When enabled, commits must first be pushed to another +branch, then merged or pushed directly to a branch that matches this rule after +status checks have passed. +""" +input RequiredStatusChecksParametersInput { + """ + Status checks that are required. + """ + requiredStatusChecks: [StatusCheckConfigurationInput!]! + + """ + Whether pull requests targeting a matching branch must be tested with the + latest code. This setting will not take effect unless at least one status + check is enabled. + """ + strictRequiredStatusChecksPolicy: Boolean! +} + +""" +Autogenerated input type of RerequestCheckSuite +""" +input RerequestCheckSuiteInput { + """ + The Node ID of the check suite. + """ + checkSuiteId: ID! @possibleTypes(concreteTypes: ["CheckSuite"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of RerequestCheckSuite +""" +type RerequestCheckSuitePayload { + """ + The requested check suite. + """ + checkSuite: CheckSuite + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of ResolveReviewThread +""" +input ResolveReviewThreadInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the thread to resolve + """ + threadId: ID! @possibleTypes(concreteTypes: ["PullRequestReviewThread"]) +} + +""" +Autogenerated return type of ResolveReviewThread +""" +type ResolveReviewThreadPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The thread to resolve. + """ + thread: PullRequestReviewThread +} + +""" +Represents a private contribution a user made on GitHub. +""" +type RestrictedContribution implements Contribution { + """ + Whether this contribution is associated with a record you do not have access to. For + example, your own 'first issue' contribution may have been made on a repository you can no + longer access. + """ + isRestricted: Boolean! + + """ + When this contribution was made. + """ + occurredAt: DateTime! + + """ + The HTTP path for this contribution. + """ + resourcePath: URI! + + """ + The HTTP URL for this contribution. + """ + url: URI! + + """ + The user who made this contribution. + """ + user: User! +} + +""" +Autogenerated input type of RetireSponsorsTier +""" +input RetireSponsorsTierInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the published tier to retire. + """ + tierId: ID! @possibleTypes(concreteTypes: ["SponsorsTier"]) +} + +""" +Autogenerated return type of RetireSponsorsTier +""" +type RetireSponsorsTierPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The tier that was retired. + """ + sponsorsTier: SponsorsTier +} + +""" +Autogenerated input type of RevertPullRequest +""" +input RevertPullRequestInput { + """ + The description of the revert pull request. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Indicates whether the revert pull request should be a draft. + """ + draft: Boolean = false + + """ + The ID of the pull request to revert. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) + + """ + The title of the revert pull request. + """ + title: String +} + +""" +Autogenerated return type of RevertPullRequest +""" +type RevertPullRequestPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The pull request that was reverted. + """ + pullRequest: PullRequest + + """ + The new pull request that reverts the input pull request. + """ + revertPullRequest: PullRequest +} + +""" +A user, team, or app who has the ability to dismiss a review on a protected branch. +""" +type ReviewDismissalAllowance implements Node { + """ + The actor that can dismiss. + """ + actor: ReviewDismissalAllowanceActor + + """ + Identifies the branch protection rule associated with the allowed user, team, or app. + """ + branchProtectionRule: BranchProtectionRule + id: ID! +} + +""" +Types that can be an actor. +""" +union ReviewDismissalAllowanceActor = App | Team | User + +""" +The connection type for ReviewDismissalAllowance. +""" +type ReviewDismissalAllowanceConnection { + """ + A list of edges. + """ + edges: [ReviewDismissalAllowanceEdge] + + """ + A list of nodes. + """ + nodes: [ReviewDismissalAllowance] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ReviewDismissalAllowanceEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ReviewDismissalAllowance +} + +""" +Represents a 'review_dismissed' event on a given issue or pull request. +""" +type ReviewDismissedEvent implements Node & UniformResourceLocatable { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + Identifies the optional message associated with the 'review_dismissed' event. + """ + dismissalMessage: String + + """ + Identifies the optional message associated with the event, rendered to HTML. + """ + dismissalMessageHTML: String + id: ID! + + """ + Identifies the previous state of the review with the 'review_dismissed' event. + """ + previousReviewState: PullRequestReviewState! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest! + + """ + Identifies the commit which caused the review to become stale. + """ + pullRequestCommit: PullRequestCommit + + """ + The HTTP path for this review dismissed event. + """ + resourcePath: URI! + + """ + Identifies the review associated with the 'review_dismissed' event. + """ + review: PullRequestReview + + """ + The HTTP URL for this review dismissed event. + """ + url: URI! +} + +""" +A request for a user to review a pull request. +""" +type ReviewRequest implements Node { + """ + Whether this request was created for a code owner + """ + asCodeOwner: Boolean! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + Identifies the pull request associated with this review request. + """ + pullRequest: PullRequest! + + """ + The reviewer that is requested. + """ + requestedReviewer: RequestedReviewer +} + +""" +The connection type for ReviewRequest. +""" +type ReviewRequestConnection { + """ + A list of edges. + """ + edges: [ReviewRequestEdge] + + """ + A list of nodes. + """ + nodes: [ReviewRequest] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type ReviewRequestEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ReviewRequest +} + +""" +Represents an 'review_request_removed' event on a given pull request. +""" +type ReviewRequestRemovedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest! + + """ + Identifies the reviewer whose review request was removed. + """ + requestedReviewer: RequestedReviewer +} + +""" +Represents an 'review_requested' event on a given pull request. +""" +type ReviewRequestedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + PullRequest referenced by event. + """ + pullRequest: PullRequest! + + """ + Identifies the reviewer whose review was requested. + """ + requestedReviewer: RequestedReviewer +} + +""" +A hovercard context with a message describing the current code review state of the pull +request. +""" +type ReviewStatusHovercardContext implements HovercardContext { + """ + A string describing this context + """ + message: String! + + """ + An octicon to accompany this context + """ + octicon: String! + + """ + The current status of the pull request with respect to code review. + """ + reviewDecision: PullRequestReviewDecision +} + +""" +Autogenerated input type of RevokeEnterpriseOrganizationsMigratorRole +""" +input RevokeEnterpriseOrganizationsMigratorRoleInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise to which all organizations managed by it will be granted the migrator role. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The login of the user to revoke the migrator role + """ + login: String! +} + +""" +Autogenerated return type of RevokeEnterpriseOrganizationsMigratorRole +""" +type RevokeEnterpriseOrganizationsMigratorRolePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The organizations that had the migrator role revoked for the given user. + """ + organizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): OrganizationConnection +} + +""" +Autogenerated input type of RevokeMigratorRole +""" +input RevokeMigratorRoleInput { + """ + The user login or Team slug to revoke the migrator role from. + """ + actor: String! + + """ + Specifies the type of the actor, can be either USER or TEAM. + """ + actorType: ActorType! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the organization that the user/team belongs to. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +Autogenerated return type of RevokeMigratorRole +""" +type RevokeMigratorRolePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Did the operation succeed? + """ + success: Boolean +} + +""" +Possible roles a user may have in relation to an organization. +""" +enum RoleInOrganization { + """ + A user who is a direct member of the organization. + """ + DIRECT_MEMBER + + """ + A user with full administrative access to the organization. + """ + OWNER + + """ + A user who is unaffiliated with the organization. + """ + UNAFFILIATED +} + +""" +The level of enforcement for a rule or ruleset. +""" +enum RuleEnforcement { + """ + Rules will be enforced + """ + ACTIVE + + """ + Do not evaluate or enforce rules + """ + DISABLED + + """ + Allow admins to test rules before enforcing them. Admins can view insights on + the Rule Insights page (`evaluate` is only available with GitHub Enterprise). + """ + EVALUATE +} + +""" +Types which can be parameters for `RepositoryRule` objects. +""" +union RuleParameters = + BranchNamePatternParameters + | CommitAuthorEmailPatternParameters + | CommitMessagePatternParameters + | CommitterEmailPatternParameters + | PullRequestParameters + | RequiredDeploymentsParameters + | RequiredStatusChecksParameters + | TagNamePatternParameters + | UpdateParameters + +""" +Specifies the parameters for a `RepositoryRule` object. Only one of the fields should be specified. +""" +input RuleParametersInput { + """ + Parameters used for the `branch_name_pattern` rule type + """ + branchNamePattern: BranchNamePatternParametersInput + + """ + Parameters used for the `commit_author_email_pattern` rule type + """ + commitAuthorEmailPattern: CommitAuthorEmailPatternParametersInput + + """ + Parameters used for the `commit_message_pattern` rule type + """ + commitMessagePattern: CommitMessagePatternParametersInput + + """ + Parameters used for the `committer_email_pattern` rule type + """ + committerEmailPattern: CommitterEmailPatternParametersInput + + """ + Parameters used for the `pull_request` rule type + """ + pullRequest: PullRequestParametersInput + + """ + Parameters used for the `required_deployments` rule type + """ + requiredDeployments: RequiredDeploymentsParametersInput + + """ + Parameters used for the `required_status_checks` rule type + """ + requiredStatusChecks: RequiredStatusChecksParametersInput + + """ + Parameters used for the `tag_name_pattern` rule type + """ + tagNamePattern: TagNamePatternParametersInput + + """ + Parameters used for the `update` rule type + """ + update: UpdateParametersInput +} + +""" +Types which can have `RepositoryRule` objects. +""" +union RuleSource = Organization | Repository + +""" +The possible digest algorithms used to sign SAML requests for an identity provider. +""" +enum SamlDigestAlgorithm { + """ + SHA1 + """ + SHA1 + + """ + SHA256 + """ + SHA256 + + """ + SHA384 + """ + SHA384 + + """ + SHA512 + """ + SHA512 +} + +""" +The possible signature algorithms used to sign SAML requests for a Identity Provider. +""" +enum SamlSignatureAlgorithm { + """ + RSA-SHA1 + """ + RSA_SHA1 + + """ + RSA-SHA256 + """ + RSA_SHA256 + + """ + RSA-SHA384 + """ + RSA_SHA384 + + """ + RSA-SHA512 + """ + RSA_SHA512 +} + +""" +A Saved Reply is text a user can use to reply quickly. +""" +type SavedReply implements Node { + """ + The body of the saved reply. + """ + body: String! + + """ + The saved reply body rendered to HTML. + """ + bodyHTML: HTML! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + The title of the saved reply. + """ + title: String! + + """ + The user that saved this reply. + """ + user: Actor +} + +""" +The connection type for SavedReply. +""" +type SavedReplyConnection { + """ + A list of edges. + """ + edges: [SavedReplyEdge] + + """ + A list of nodes. + """ + nodes: [SavedReply] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type SavedReplyEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: SavedReply +} + +""" +Ordering options for saved reply connections. +""" +input SavedReplyOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order saved replies by. + """ + field: SavedReplyOrderField! +} + +""" +Properties by which saved reply connections can be ordered. +""" +enum SavedReplyOrderField { + """ + Order saved reply by when they were updated. + """ + UPDATED_AT +} + +""" +The results of a search. +""" +union SearchResultItem = App | Discussion | Issue | MarketplaceListing | Organization | PullRequest | Repository | User + +""" +A list of results that matched against a search query. Regardless of the number +of matches, a maximum of 1,000 results will be available across all types, +potentially split across many pages. +""" +type SearchResultItemConnection { + """ + The total number of pieces of code that matched the search query. Regardless + of the total number of matches, a maximum of 1,000 results will be available + across all types. + """ + codeCount: Int! + + """ + The total number of discussions that matched the search query. Regardless of + the total number of matches, a maximum of 1,000 results will be available + across all types. + """ + discussionCount: Int! + + """ + A list of edges. + """ + edges: [SearchResultItemEdge] + + """ + The total number of issues that matched the search query. Regardless of the + total number of matches, a maximum of 1,000 results will be available across all types. + """ + issueCount: Int! + + """ + A list of nodes. + """ + nodes: [SearchResultItem] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The total number of repositories that matched the search query. Regardless of + the total number of matches, a maximum of 1,000 results will be available + across all types. + """ + repositoryCount: Int! + + """ + The total number of users that matched the search query. Regardless of the + total number of matches, a maximum of 1,000 results will be available across all types. + """ + userCount: Int! + + """ + The total number of wiki pages that matched the search query. Regardless of + the total number of matches, a maximum of 1,000 results will be available + across all types. + """ + wikiCount: Int! +} + +""" +An edge in a connection. +""" +type SearchResultItemEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: SearchResultItem + + """ + Text matches on the result found. + """ + textMatches: [TextMatch] +} + +""" +Represents the individual results of a search. +""" +enum SearchType { + """ + Returns matching discussions in repositories. + """ + DISCUSSION + + """ + Returns results matching issues in repositories. + """ + ISSUE + + """ + Returns results matching repositories. + """ + REPOSITORY + + """ + Returns results matching users and organizations on GitHub. + """ + USER +} + +""" +A GitHub Security Advisory +""" +type SecurityAdvisory implements Node { + """ + The classification of the advisory + """ + classification: SecurityAdvisoryClassification! + + """ + The CVSS associated with this advisory + """ + cvss: CVSS! + + """ + CWEs associated with this Advisory + """ + cwes( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): CWEConnection! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + This is a long plaintext description of the advisory + """ + description: String! + + """ + The GitHub Security Advisory ID + """ + ghsaId: String! + id: ID! + + """ + A list of identifiers for this advisory + """ + identifiers: [SecurityAdvisoryIdentifier!]! + + """ + The permalink for the advisory's dependabot alerts page + """ + notificationsPermalink: URI + + """ + The organization that originated the advisory + """ + origin: String! + + """ + The permalink for the advisory + """ + permalink: URI + + """ + When the advisory was published + """ + publishedAt: DateTime! + + """ + A list of references for this advisory + """ + references: [SecurityAdvisoryReference!]! + + """ + The severity of the advisory + """ + severity: SecurityAdvisorySeverity! + + """ + A short plaintext summary of the advisory + """ + summary: String! + + """ + When the advisory was last updated + """ + updatedAt: DateTime! + + """ + Vulnerabilities associated with this Advisory + """ + vulnerabilities( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + A list of advisory classifications to filter vulnerabilities by. + """ + classifications: [SecurityAdvisoryClassification!] + + """ + An ecosystem to filter vulnerabilities by. + """ + ecosystem: SecurityAdvisoryEcosystem + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the returned topics. + """ + orderBy: SecurityVulnerabilityOrder = {field: UPDATED_AT, direction: DESC} + + """ + A package name to filter vulnerabilities by. + """ + package: String + + """ + A list of severities to filter vulnerabilities by. + """ + severities: [SecurityAdvisorySeverity!] + ): SecurityVulnerabilityConnection! + + """ + When the advisory was withdrawn, if it has been withdrawn + """ + withdrawnAt: DateTime +} + +""" +Classification of the advisory. +""" +enum SecurityAdvisoryClassification { + """ + Classification of general advisories. + """ + GENERAL + + """ + Classification of malware advisories. + """ + MALWARE +} + +""" +The connection type for SecurityAdvisory. +""" +type SecurityAdvisoryConnection { + """ + A list of edges. + """ + edges: [SecurityAdvisoryEdge] + + """ + A list of nodes. + """ + nodes: [SecurityAdvisory] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +The possible ecosystems of a security vulnerability's package. +""" +enum SecurityAdvisoryEcosystem { + """ + GitHub Actions + """ + ACTIONS + + """ + PHP packages hosted at packagist.org + """ + COMPOSER + + """ + Erlang/Elixir packages hosted at hex.pm + """ + ERLANG + + """ + Go modules + """ + GO + + """ + Java artifacts hosted at the Maven central repository + """ + MAVEN + + """ + JavaScript packages hosted at npmjs.com + """ + NPM + + """ + .NET packages hosted at the NuGet Gallery + """ + NUGET + + """ + Python packages hosted at PyPI.org + """ + PIP + + """ + Dart packages hosted at pub.dev + """ + PUB + + """ + Ruby gems hosted at RubyGems.org + """ + RUBYGEMS + + """ + Rust crates + """ + RUST + + """ + Swift packages + """ + SWIFT +} + +""" +An edge in a connection. +""" +type SecurityAdvisoryEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: SecurityAdvisory +} + +""" +A GitHub Security Advisory Identifier +""" +type SecurityAdvisoryIdentifier { + """ + The identifier type, e.g. GHSA, CVE + """ + type: String! + + """ + The identifier + """ + value: String! +} + +""" +An advisory identifier to filter results on. +""" +input SecurityAdvisoryIdentifierFilter { + """ + The identifier type. + """ + type: SecurityAdvisoryIdentifierType! + + """ + The identifier string. Supports exact or partial matching. + """ + value: String! +} + +""" +Identifier formats available for advisories. +""" +enum SecurityAdvisoryIdentifierType { + """ + Common Vulnerabilities and Exposures Identifier. + """ + CVE + + """ + GitHub Security Advisory ID. + """ + GHSA +} + +""" +Ordering options for security advisory connections +""" +input SecurityAdvisoryOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order security advisories by. + """ + field: SecurityAdvisoryOrderField! +} + +""" +Properties by which security advisory connections can be ordered. +""" +enum SecurityAdvisoryOrderField { + """ + Order advisories by publication time + """ + PUBLISHED_AT + + """ + Order advisories by update time + """ + UPDATED_AT +} + +""" +An individual package +""" +type SecurityAdvisoryPackage { + """ + The ecosystem the package belongs to, e.g. RUBYGEMS, NPM + """ + ecosystem: SecurityAdvisoryEcosystem! + + """ + The package name + """ + name: String! +} + +""" +An individual package version +""" +type SecurityAdvisoryPackageVersion { + """ + The package name or version + """ + identifier: String! +} + +""" +A GitHub Security Advisory Reference +""" +type SecurityAdvisoryReference { + """ + A publicly accessible reference + """ + url: URI! +} + +""" +Severity of the vulnerability. +""" +enum SecurityAdvisorySeverity { + """ + Critical. + """ + CRITICAL + + """ + High. + """ + HIGH + + """ + Low. + """ + LOW + + """ + Moderate. + """ + MODERATE +} + +""" +An individual vulnerability within an Advisory +""" +type SecurityVulnerability { + """ + The Advisory associated with this Vulnerability + """ + advisory: SecurityAdvisory! + + """ + The first version containing a fix for the vulnerability + """ + firstPatchedVersion: SecurityAdvisoryPackageVersion + + """ + A description of the vulnerable package + """ + package: SecurityAdvisoryPackage! + + """ + The severity of the vulnerability within this package + """ + severity: SecurityAdvisorySeverity! + + """ + When the vulnerability was last updated + """ + updatedAt: DateTime! + + """ + A string that describes the vulnerable package versions. + This string follows a basic syntax with a few forms. + + `= 0.2.0` denotes a single vulnerable version. + + `<= 1.0.8` denotes a version range up to and including the specified version + + `< 0.1.11` denotes a version range up to, but excluding, the specified version + + `>= 4.3.0, < 4.3.5` denotes a version range with a known minimum and maximum version. + + `>= 0.0.1` denotes a version range with a known minimum, but no known maximum + """ + vulnerableVersionRange: String! +} + +""" +The connection type for SecurityVulnerability. +""" +type SecurityVulnerabilityConnection { + """ + A list of edges. + """ + edges: [SecurityVulnerabilityEdge] + + """ + A list of nodes. + """ + nodes: [SecurityVulnerability] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type SecurityVulnerabilityEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: SecurityVulnerability +} + +""" +Ordering options for security vulnerability connections +""" +input SecurityVulnerabilityOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order security vulnerabilities by. + """ + field: SecurityVulnerabilityOrderField! +} + +""" +Properties by which security vulnerability connections can be ordered. +""" +enum SecurityVulnerabilityOrderField { + """ + Order vulnerability by update time + """ + UPDATED_AT +} + +""" +Autogenerated input type of SetEnterpriseIdentityProvider +""" +input SetEnterpriseIdentityProviderInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The digest algorithm used to sign SAML requests for the identity provider. + """ + digestMethod: SamlDigestAlgorithm! + + """ + The ID of the enterprise on which to set an identity provider. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The x509 certificate used by the identity provider to sign assertions and responses. + """ + idpCertificate: String! + + """ + The Issuer Entity ID for the SAML identity provider + """ + issuer: String + + """ + The signature algorithm used to sign SAML requests for the identity provider. + """ + signatureMethod: SamlSignatureAlgorithm! + + """ + The URL endpoint for the identity provider's SAML SSO. + """ + ssoUrl: URI! +} + +""" +Autogenerated return type of SetEnterpriseIdentityProvider +""" +type SetEnterpriseIdentityProviderPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The identity provider for the enterprise. + """ + identityProvider: EnterpriseIdentityProvider +} + +""" +Autogenerated input type of SetOrganizationInteractionLimit +""" +input SetOrganizationInteractionLimitInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + When this limit should expire. + """ + expiry: RepositoryInteractionLimitExpiry + + """ + The limit to set. + """ + limit: RepositoryInteractionLimit! + + """ + The ID of the organization to set a limit for. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +Autogenerated return type of SetOrganizationInteractionLimit +""" +type SetOrganizationInteractionLimitPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The organization that the interaction limit was set for. + """ + organization: Organization +} + +""" +Autogenerated input type of SetRepositoryInteractionLimit +""" +input SetRepositoryInteractionLimitInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + When this limit should expire. + """ + expiry: RepositoryInteractionLimitExpiry + + """ + The limit to set. + """ + limit: RepositoryInteractionLimit! + + """ + The ID of the repository to set a limit for. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of SetRepositoryInteractionLimit +""" +type SetRepositoryInteractionLimitPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The repository that the interaction limit was set for. + """ + repository: Repository +} + +""" +Autogenerated input type of SetUserInteractionLimit +""" +input SetUserInteractionLimitInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + When this limit should expire. + """ + expiry: RepositoryInteractionLimitExpiry + + """ + The limit to set. + """ + limit: RepositoryInteractionLimit! + + """ + The ID of the user to set a limit for. + """ + userId: ID! @possibleTypes(concreteTypes: ["User"]) +} + +""" +Autogenerated return type of SetUserInteractionLimit +""" +type SetUserInteractionLimitPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The user that the interaction limit was set for. + """ + user: User +} + +""" +Represents an S/MIME signature on a Commit or Tag. +""" +type SmimeSignature implements GitSignature { + """ + Email used to sign this object. + """ + email: String! + + """ + True if the signature is valid and verified by GitHub. + """ + isValid: Boolean! + + """ + Payload for GPG signing object. Raw ODB object without the signature header. + """ + payload: String! + + """ + ASCII-armored signature header from object. + """ + signature: String! + + """ + GitHub user corresponding to the email signing this commit. + """ + signer: User + + """ + The state of this signature. `VALID` if signature is valid and verified by + GitHub, otherwise represents reason why signature is considered invalid. + """ + state: GitSignatureState! + + """ + True if the signature was made with GitHub's signing key. + """ + wasSignedByGitHub: Boolean! +} + +""" +Social media profile associated with a user. +""" +type SocialAccount { + """ + Name of the social media account as it appears on the profile. + """ + displayName: String! + + """ + Software or company that hosts the social media account. + """ + provider: SocialAccountProvider! + + """ + URL of the social media account. + """ + url: URI! +} + +""" +The connection type for SocialAccount. +""" +type SocialAccountConnection { + """ + A list of edges. + """ + edges: [SocialAccountEdge] + + """ + A list of nodes. + """ + nodes: [SocialAccount] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type SocialAccountEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: SocialAccount +} + +""" +Software or company that hosts social media accounts. +""" +enum SocialAccountProvider { + """ + Social media and networking website. + """ + FACEBOOK + + """ + Catch-all for social media providers that do not yet have specific handling. + """ + GENERIC + + """ + Fork of Mastodon with a greater focus on local posting. + """ + HOMETOWN + + """ + Social media website with a focus on photo and video sharing. + """ + INSTAGRAM + + """ + Professional networking website. + """ + LINKEDIN + + """ + Open-source federated microblogging service. + """ + MASTODON + + """ + Social news aggregation and discussion website. + """ + REDDIT + + """ + Live-streaming service. + """ + TWITCH + + """ + Microblogging website. + """ + TWITTER + + """ + Online video platform. + """ + YOUTUBE +} + +""" +Entities that can sponsor others via GitHub Sponsors +""" +union Sponsor = Organization | User + +""" +The connection type for Sponsor. +""" +type SponsorConnection { + """ + A list of edges. + """ + edges: [SponsorEdge] + + """ + A list of nodes. + """ + nodes: [Sponsor] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Represents a user or organization who is sponsoring someone in GitHub Sponsors. +""" +type SponsorEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Sponsor +} + +""" +Ordering options for connections to get sponsor entities for GitHub Sponsors. +""" +input SponsorOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order sponsor entities by. + """ + field: SponsorOrderField! +} + +""" +Properties by which sponsor connections can be ordered. +""" +enum SponsorOrderField { + """ + Order sponsorable entities by login (username). + """ + LOGIN + + """ + Order sponsors by their relevance to the viewer. + """ + RELEVANCE +} + +""" +Entities that can sponsor or be sponsored through GitHub Sponsors. +""" +interface Sponsorable { + """ + The estimated next GitHub Sponsors payout for this user/organization in cents (USD). + """ + estimatedNextSponsorsPayoutInCents: Int! + + """ + True if this user/organization has a GitHub Sponsors listing. + """ + hasSponsorsListing: Boolean! + + """ + Whether the given account is sponsoring this user/organization. + """ + isSponsoredBy( + """ + The target account's login. + """ + accountLogin: String! + ): Boolean! + + """ + True if the viewer is sponsored by this user/organization. + """ + isSponsoringViewer: Boolean! + + """ + The estimated monthly GitHub Sponsors income for this user/organization in cents (USD). + """ + monthlyEstimatedSponsorsIncomeInCents: Int! + + """ + List of users and organizations this entity is sponsoring. + """ + sponsoring( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the users and organizations returned from the connection. + """ + orderBy: SponsorOrder = {field: RELEVANCE, direction: DESC} + ): SponsorConnection! + + """ + List of sponsors for this user or organization. + """ + sponsors( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for sponsors returned from the connection. + """ + orderBy: SponsorOrder = {field: RELEVANCE, direction: DESC} + + """ + If given, will filter for sponsors at the given tier. Will only return + sponsors whose tier the viewer is permitted to see. + """ + tierId: ID + ): SponsorConnection! + + """ + Events involving this sponsorable, such as new sponsorships. + """ + sponsorsActivities( + """ + Filter activities to only the specified actions. + """ + actions: [SponsorsActivityAction!] = [] + + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Whether to include those events where this sponsorable acted as the sponsor. + Defaults to only including events where this sponsorable was the recipient + of a sponsorship. + """ + includeAsSponsor: Boolean = false + + """ + Whether or not to include private activities in the result set. Defaults to including public and private activities. + """ + includePrivate: Boolean = true + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for activity returned from the connection. + """ + orderBy: SponsorsActivityOrder = {field: TIMESTAMP, direction: DESC} + + """ + Filter activities returned to only those that occurred in the most recent + specified time period. Set to ALL to avoid filtering by when the activity + occurred. Will be ignored if `since` or `until` is given. + """ + period: SponsorsActivityPeriod = MONTH + + """ + Filter activities to those that occurred on or after this time. + """ + since: DateTime + + """ + Filter activities to those that occurred before this time. + """ + until: DateTime + ): SponsorsActivityConnection! + + """ + The GitHub Sponsors listing for this user or organization. + """ + sponsorsListing: SponsorsListing + + """ + The sponsorship from the viewer to this user/organization; that is, the sponsorship where you're the sponsor. + """ + sponsorshipForViewerAsSponsor( + """ + Whether to return the sponsorship only if it's still active. Pass false to + get the viewer's sponsorship back even if it has been cancelled. + """ + activeOnly: Boolean = true + ): Sponsorship + + """ + The sponsorship from this user/organization to the viewer; that is, the sponsorship you're receiving. + """ + sponsorshipForViewerAsSponsorable( + """ + Whether to return the sponsorship only if it's still active. Pass false to + get the sponsorship back even if it has been cancelled. + """ + activeOnly: Boolean = true + ): Sponsorship + + """ + List of sponsorship updates sent from this sponsorable to sponsors. + """ + sponsorshipNewsletters( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for sponsorship updates returned from the connection. + """ + orderBy: SponsorshipNewsletterOrder = {field: CREATED_AT, direction: DESC} + ): SponsorshipNewsletterConnection! + + """ + The sponsorships where this user or organization is the maintainer receiving the funds. + """ + sponsorshipsAsMaintainer( + """ + Whether to include only sponsorships that are active right now, versus all + sponsorships this maintainer has ever received. + """ + activeOnly: Boolean = true + + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Whether or not to include private sponsorships in the result set + """ + includePrivate: Boolean = false + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for sponsorships returned from this connection. If left + blank, the sponsorships will be ordered based on relevancy to the viewer. + """ + orderBy: SponsorshipOrder + ): SponsorshipConnection! + + """ + The sponsorships where this user or organization is the funder. + """ + sponsorshipsAsSponsor( + """ + Whether to include only sponsorships that are active right now, versus all sponsorships this sponsor has ever made. + """ + activeOnly: Boolean = true + + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter sponsorships returned to those for the specified maintainers. That + is, the recipient of the sponsorship is a user or organization with one of + the given logins. + """ + maintainerLogins: [String!] + + """ + Ordering options for sponsorships returned from this connection. If left + blank, the sponsorships will be ordered based on relevancy to the viewer. + """ + orderBy: SponsorshipOrder + ): SponsorshipConnection! + + """ + The amount in United States cents (e.g., 500 = $5.00 USD) that this entity has + spent on GitHub to fund sponsorships. Only returns a value when viewed by the + user themselves or by a user who can manage sponsorships for the requested organization. + """ + totalSponsorshipAmountAsSponsorInCents( + """ + Filter payments to those that occurred on or after this time. + """ + since: DateTime + + """ + Filter payments to those made to the users or organizations with the specified usernames. + """ + sponsorableLogins: [String!] = [] + + """ + Filter payments to those that occurred before this time. + """ + until: DateTime + ): Int + + """ + Whether or not the viewer is able to sponsor this user/organization. + """ + viewerCanSponsor: Boolean! + + """ + True if the viewer is sponsoring this user/organization. + """ + viewerIsSponsoring: Boolean! +} + +""" +Entities that can be sponsored via GitHub Sponsors +""" +union SponsorableItem = Organization | User + +""" +The connection type for SponsorableItem. +""" +type SponsorableItemConnection { + """ + A list of edges. + """ + edges: [SponsorableItemEdge] + + """ + A list of nodes. + """ + nodes: [SponsorableItem] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type SponsorableItemEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: SponsorableItem +} + +""" +Ordering options for connections to get sponsorable entities for GitHub Sponsors. +""" +input SponsorableOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order sponsorable entities by. + """ + field: SponsorableOrderField! +} + +""" +Properties by which sponsorable connections can be ordered. +""" +enum SponsorableOrderField { + """ + Order sponsorable entities by login (username). + """ + LOGIN +} + +""" +An event related to sponsorship activity. +""" +type SponsorsActivity implements Node { + """ + What action this activity indicates took place. + """ + action: SponsorsActivityAction! + + """ + The sponsor's current privacy level. + """ + currentPrivacyLevel: SponsorshipPrivacy + id: ID! + + """ + The tier that the sponsorship used to use, for tier change events. + """ + previousSponsorsTier: SponsorsTier + + """ + The user or organization who triggered this activity and was/is sponsoring the sponsorable. + """ + sponsor: Sponsor + + """ + The user or organization that is being sponsored, the maintainer. + """ + sponsorable: Sponsorable! + + """ + The associated sponsorship tier. + """ + sponsorsTier: SponsorsTier + + """ + The timestamp of this event. + """ + timestamp: DateTime + + """ + Was this sponsorship made alongside other sponsorships at the same time from the same sponsor? + """ + viaBulkSponsorship: Boolean! +} + +""" +The possible actions that GitHub Sponsors activities can represent. +""" +enum SponsorsActivityAction { + """ + The activity was cancelling a sponsorship. + """ + CANCELLED_SPONSORSHIP + + """ + The activity was starting a sponsorship. + """ + NEW_SPONSORSHIP + + """ + The activity was scheduling a downgrade or cancellation. + """ + PENDING_CHANGE + + """ + The activity was funds being refunded to the sponsor or GitHub. + """ + REFUND + + """ + The activity was disabling matching for a previously matched sponsorship. + """ + SPONSOR_MATCH_DISABLED + + """ + The activity was changing the sponsorship tier, either directly by the sponsor or by a scheduled/pending change. + """ + TIER_CHANGE +} + +""" +The connection type for SponsorsActivity. +""" +type SponsorsActivityConnection { + """ + A list of edges. + """ + edges: [SponsorsActivityEdge] + + """ + A list of nodes. + """ + nodes: [SponsorsActivity] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type SponsorsActivityEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: SponsorsActivity +} + +""" +Ordering options for GitHub Sponsors activity connections. +""" +input SponsorsActivityOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order activity by. + """ + field: SponsorsActivityOrderField! +} + +""" +Properties by which GitHub Sponsors activity connections can be ordered. +""" +enum SponsorsActivityOrderField { + """ + Order activities by when they happened. + """ + TIMESTAMP +} + +""" +The possible time periods for which Sponsors activities can be requested. +""" +enum SponsorsActivityPeriod { + """ + Don't restrict the activity to any date range, include all activity. + """ + ALL + + """ + The previous calendar day. + """ + DAY + + """ + The previous thirty days. + """ + MONTH + + """ + The previous seven days. + """ + WEEK +} + +""" +Represents countries or regions for billing and residence for a GitHub Sponsors profile. +""" +enum SponsorsCountryOrRegionCode { + """ + Andorra + """ + AD + + """ + United Arab Emirates + """ + AE + + """ + Afghanistan + """ + AF + + """ + Antigua and Barbuda + """ + AG + + """ + Anguilla + """ + AI + + """ + Albania + """ + AL + + """ + Armenia + """ + AM + + """ + Angola + """ + AO + + """ + Antarctica + """ + AQ + + """ + Argentina + """ + AR + + """ + American Samoa + """ + AS + + """ + Austria + """ + AT + + """ + Australia + """ + AU + + """ + Aruba + """ + AW + + """ + Åland + """ + AX + + """ + Azerbaijan + """ + AZ + + """ + Bosnia and Herzegovina + """ + BA + + """ + Barbados + """ + BB + + """ + Bangladesh + """ + BD + + """ + Belgium + """ + BE + + """ + Burkina Faso + """ + BF + + """ + Bulgaria + """ + BG + + """ + Bahrain + """ + BH + + """ + Burundi + """ + BI + + """ + Benin + """ + BJ + + """ + Saint Barthélemy + """ + BL + + """ + Bermuda + """ + BM + + """ + Brunei Darussalam + """ + BN + + """ + Bolivia + """ + BO + + """ + Bonaire, Sint Eustatius and Saba + """ + BQ + + """ + Brazil + """ + BR + + """ + Bahamas + """ + BS + + """ + Bhutan + """ + BT + + """ + Bouvet Island + """ + BV + + """ + Botswana + """ + BW + + """ + Belarus + """ + BY + + """ + Belize + """ + BZ + + """ + Canada + """ + CA + + """ + Cocos (Keeling) Islands + """ + CC + + """ + Congo (Kinshasa) + """ + CD + + """ + Central African Republic + """ + CF + + """ + Congo (Brazzaville) + """ + CG + + """ + Switzerland + """ + CH + + """ + Côte d'Ivoire + """ + CI + + """ + Cook Islands + """ + CK + + """ + Chile + """ + CL + + """ + Cameroon + """ + CM + + """ + China + """ + CN + + """ + Colombia + """ + CO + + """ + Costa Rica + """ + CR + + """ + Cape Verde + """ + CV + + """ + Curaçao + """ + CW + + """ + Christmas Island + """ + CX + + """ + Cyprus + """ + CY + + """ + Czech Republic + """ + CZ + + """ + Germany + """ + DE + + """ + Djibouti + """ + DJ + + """ + Denmark + """ + DK + + """ + Dominica + """ + DM + + """ + Dominican Republic + """ + DO + + """ + Algeria + """ + DZ + + """ + Ecuador + """ + EC + + """ + Estonia + """ + EE + + """ + Egypt + """ + EG + + """ + Western Sahara + """ + EH + + """ + Eritrea + """ + ER + + """ + Spain + """ + ES + + """ + Ethiopia + """ + ET + + """ + Finland + """ + FI + + """ + Fiji + """ + FJ + + """ + Falkland Islands + """ + FK + + """ + Micronesia + """ + FM + + """ + Faroe Islands + """ + FO + + """ + France + """ + FR + + """ + Gabon + """ + GA + + """ + United Kingdom + """ + GB + + """ + Grenada + """ + GD + + """ + Georgia + """ + GE + + """ + French Guiana + """ + GF + + """ + Guernsey + """ + GG + + """ + Ghana + """ + GH + + """ + Gibraltar + """ + GI + + """ + Greenland + """ + GL + + """ + Gambia + """ + GM + + """ + Guinea + """ + GN + + """ + Guadeloupe + """ + GP + + """ + Equatorial Guinea + """ + GQ + + """ + Greece + """ + GR + + """ + South Georgia and South Sandwich Islands + """ + GS + + """ + Guatemala + """ + GT + + """ + Guam + """ + GU + + """ + Guinea-Bissau + """ + GW + + """ + Guyana + """ + GY + + """ + Hong Kong + """ + HK + + """ + Heard and McDonald Islands + """ + HM + + """ + Honduras + """ + HN + + """ + Croatia + """ + HR + + """ + Haiti + """ + HT + + """ + Hungary + """ + HU + + """ + Indonesia + """ + ID + + """ + Ireland + """ + IE + + """ + Israel + """ + IL + + """ + Isle of Man + """ + IM + + """ + India + """ + IN + + """ + British Indian Ocean Territory + """ + IO + + """ + Iraq + """ + IQ + + """ + Iran + """ + IR + + """ + Iceland + """ + IS + + """ + Italy + """ + IT + + """ + Jersey + """ + JE + + """ + Jamaica + """ + JM + + """ + Jordan + """ + JO + + """ + Japan + """ + JP + + """ + Kenya + """ + KE + + """ + Kyrgyzstan + """ + KG + + """ + Cambodia + """ + KH + + """ + Kiribati + """ + KI + + """ + Comoros + """ + KM + + """ + Saint Kitts and Nevis + """ + KN + + """ + Korea, South + """ + KR + + """ + Kuwait + """ + KW + + """ + Cayman Islands + """ + KY + + """ + Kazakhstan + """ + KZ + + """ + Laos + """ + LA + + """ + Lebanon + """ + LB + + """ + Saint Lucia + """ + LC + + """ + Liechtenstein + """ + LI + + """ + Sri Lanka + """ + LK + + """ + Liberia + """ + LR + + """ + Lesotho + """ + LS + + """ + Lithuania + """ + LT + + """ + Luxembourg + """ + LU + + """ + Latvia + """ + LV + + """ + Libya + """ + LY + + """ + Morocco + """ + MA + + """ + Monaco + """ + MC + + """ + Moldova + """ + MD + + """ + Montenegro + """ + ME + + """ + Saint Martin (French part) + """ + MF + + """ + Madagascar + """ + MG + + """ + Marshall Islands + """ + MH + + """ + Macedonia + """ + MK + + """ + Mali + """ + ML + + """ + Myanmar + """ + MM + + """ + Mongolia + """ + MN + + """ + Macau + """ + MO + + """ + Northern Mariana Islands + """ + MP + + """ + Martinique + """ + MQ + + """ + Mauritania + """ + MR + + """ + Montserrat + """ + MS + + """ + Malta + """ + MT + + """ + Mauritius + """ + MU + + """ + Maldives + """ + MV + + """ + Malawi + """ + MW + + """ + Mexico + """ + MX + + """ + Malaysia + """ + MY + + """ + Mozambique + """ + MZ + + """ + Namibia + """ + NA + + """ + New Caledonia + """ + NC + + """ + Niger + """ + NE + + """ + Norfolk Island + """ + NF + + """ + Nigeria + """ + NG + + """ + Nicaragua + """ + NI + + """ + Netherlands + """ + NL + + """ + Norway + """ + NO + + """ + Nepal + """ + NP + + """ + Nauru + """ + NR + + """ + Niue + """ + NU + + """ + New Zealand + """ + NZ + + """ + Oman + """ + OM + + """ + Panama + """ + PA + + """ + Peru + """ + PE + + """ + French Polynesia + """ + PF + + """ + Papua New Guinea + """ + PG + + """ + Philippines + """ + PH + + """ + Pakistan + """ + PK + + """ + Poland + """ + PL + + """ + Saint Pierre and Miquelon + """ + PM + + """ + Pitcairn + """ + PN + + """ + Puerto Rico + """ + PR + + """ + Palestine + """ + PS + + """ + Portugal + """ + PT + + """ + Palau + """ + PW + + """ + Paraguay + """ + PY + + """ + Qatar + """ + QA + + """ + Reunion + """ + RE + + """ + Romania + """ + RO + + """ + Serbia + """ + RS + + """ + Russian Federation + """ + RU + + """ + Rwanda + """ + RW + + """ + Saudi Arabia + """ + SA + + """ + Solomon Islands + """ + SB + + """ + Seychelles + """ + SC + + """ + Sudan + """ + SD + + """ + Sweden + """ + SE + + """ + Singapore + """ + SG + + """ + Saint Helena + """ + SH + + """ + Slovenia + """ + SI + + """ + Svalbard and Jan Mayen Islands + """ + SJ + + """ + Slovakia + """ + SK + + """ + Sierra Leone + """ + SL + + """ + San Marino + """ + SM + + """ + Senegal + """ + SN + + """ + Somalia + """ + SO + + """ + Suriname + """ + SR + + """ + South Sudan + """ + SS + + """ + Sao Tome and Principe + """ + ST + + """ + El Salvador + """ + SV + + """ + Sint Maarten (Dutch part) + """ + SX + + """ + Swaziland + """ + SZ + + """ + Turks and Caicos Islands + """ + TC + + """ + Chad + """ + TD + + """ + French Southern Lands + """ + TF + + """ + Togo + """ + TG + + """ + Thailand + """ + TH + + """ + Tajikistan + """ + TJ + + """ + Tokelau + """ + TK + + """ + Timor-Leste + """ + TL + + """ + Turkmenistan + """ + TM + + """ + Tunisia + """ + TN + + """ + Tonga + """ + TO + + """ + Turkey + """ + TR + + """ + Trinidad and Tobago + """ + TT + + """ + Tuvalu + """ + TV + + """ + Taiwan + """ + TW + + """ + Tanzania + """ + TZ + + """ + Ukraine + """ + UA + + """ + Uganda + """ + UG + + """ + United States Minor Outlying Islands + """ + UM + + """ + United States of America + """ + US + + """ + Uruguay + """ + UY + + """ + Uzbekistan + """ + UZ + + """ + Vatican City + """ + VA + + """ + Saint Vincent and the Grenadines + """ + VC + + """ + Venezuela + """ + VE + + """ + Virgin Islands, British + """ + VG + + """ + Virgin Islands, U.S. + """ + VI + + """ + Vietnam + """ + VN + + """ + Vanuatu + """ + VU + + """ + Wallis and Futuna Islands + """ + WF + + """ + Samoa + """ + WS + + """ + Yemen + """ + YE + + """ + Mayotte + """ + YT + + """ + South Africa + """ + ZA + + """ + Zambia + """ + ZM + + """ + Zimbabwe + """ + ZW +} + +""" +A goal associated with a GitHub Sponsors listing, representing a target the sponsored maintainer would like to attain. +""" +type SponsorsGoal { + """ + A description of the goal from the maintainer. + """ + description: String + + """ + What the objective of this goal is. + """ + kind: SponsorsGoalKind! + + """ + The percentage representing how complete this goal is, between 0-100. + """ + percentComplete: Int! + + """ + What the goal amount is. Represents an amount in USD for monthly sponsorship + amount goals. Represents a count of unique sponsors for total sponsors count goals. + """ + targetValue: Int! + + """ + A brief summary of the kind and target value of this goal. + """ + title: String! +} + +""" +The different kinds of goals a GitHub Sponsors member can have. +""" +enum SponsorsGoalKind { + """ + The goal is about getting a certain amount in USD from sponsorships each month. + """ + MONTHLY_SPONSORSHIP_AMOUNT + + """ + The goal is about reaching a certain number of sponsors. + """ + TOTAL_SPONSORS_COUNT +} + +""" +A GitHub Sponsors listing. +""" +type SponsorsListing implements Node { + """ + The current goal the maintainer is trying to reach with GitHub Sponsors, if any. + """ + activeGoal: SponsorsGoal + + """ + The Stripe Connect account currently in use for payouts for this Sponsors + listing, if any. Will only return a value when queried by the maintainer + themselves, or by an admin of the sponsorable organization. + """ + activeStripeConnectAccount: StripeConnectAccount + + """ + The name of the country or region with the maintainer's bank account or fiscal + host. Will only return a value when queried by the maintainer themselves, or + by an admin of the sponsorable organization. + """ + billingCountryOrRegion: String + + """ + The email address used by GitHub to contact the sponsorable about their GitHub + Sponsors profile. Will only return a value when queried by the maintainer + themselves, or by an admin of the sponsorable organization. + """ + contactEmailAddress: String + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The HTTP path for the Sponsors dashboard for this Sponsors listing. + """ + dashboardResourcePath: URI! + + """ + The HTTP URL for the Sponsors dashboard for this Sponsors listing. + """ + dashboardUrl: URI! + + """ + The records featured on the GitHub Sponsors profile. + """ + featuredItems( + """ + The types of featured items to return. + """ + featureableTypes: [SponsorsListingFeaturedItemFeatureableType!] = [REPOSITORY, USER] + ): [SponsorsListingFeaturedItem!]! + + """ + The fiscal host used for payments, if any. Will only return a value when + queried by the maintainer themselves, or by an admin of the sponsorable organization. + """ + fiscalHost: Organization + + """ + The full description of the listing. + """ + fullDescription: String! + + """ + The full description of the listing rendered to HTML. + """ + fullDescriptionHTML: HTML! + id: ID! + + """ + Whether this listing is publicly visible. + """ + isPublic: Boolean! + + """ + The listing's full name. + """ + name: String! + + """ + A future date on which this listing is eligible to receive a payout. + """ + nextPayoutDate: Date + + """ + The name of the country or region where the maintainer resides. Will only + return a value when queried by the maintainer themselves, or by an admin of + the sponsorable organization. + """ + residenceCountryOrRegion: String + + """ + The HTTP path for this Sponsors listing. + """ + resourcePath: URI! + + """ + The short description of the listing. + """ + shortDescription: String! + + """ + The short name of the listing. + """ + slug: String! + + """ + The entity this listing represents who can be sponsored on GitHub Sponsors. + """ + sponsorable: Sponsorable! + + """ + The tiers for this GitHub Sponsors profile. + """ + tiers( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Whether to include tiers that aren't published. Only admins of the Sponsors + listing can see draft tiers. Only admins of the Sponsors listing and viewers + who are currently sponsoring on a retired tier can see those retired tiers. + Defaults to including only published tiers, which are visible to anyone who + can see the GitHub Sponsors profile. + """ + includeUnpublished: Boolean = false + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for Sponsors tiers returned from the connection. + """ + orderBy: SponsorsTierOrder = {field: MONTHLY_PRICE_IN_CENTS, direction: ASC} + ): SponsorsTierConnection + + """ + The HTTP URL for this Sponsors listing. + """ + url: URI! +} + +""" +A record that can be featured on a GitHub Sponsors profile. +""" +union SponsorsListingFeatureableItem = Repository | User + +""" +A record that is promoted on a GitHub Sponsors profile. +""" +type SponsorsListingFeaturedItem implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Will either be a description from the sponsorable maintainer about why they + featured this item, or the item's description itself, such as a user's bio + from their GitHub profile page. + """ + description: String + + """ + The record that is featured on the GitHub Sponsors profile. + """ + featureable: SponsorsListingFeatureableItem! + id: ID! + + """ + The position of this featured item on the GitHub Sponsors profile with a lower + position indicating higher precedence. Starts at 1. + """ + position: Int! + + """ + The GitHub Sponsors profile that features this record. + """ + sponsorsListing: SponsorsListing! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The different kinds of records that can be featured on a GitHub Sponsors profile page. +""" +enum SponsorsListingFeaturedItemFeatureableType { + """ + A repository owned by the user or organization with the GitHub Sponsors profile. + """ + REPOSITORY + + """ + A user who belongs to the organization with the GitHub Sponsors profile. + """ + USER +} + +""" +A GitHub Sponsors tier associated with a GitHub Sponsors listing. +""" +type SponsorsTier implements Node { + """ + SponsorsTier information only visible to users that can administer the associated Sponsors listing. + """ + adminInfo: SponsorsTierAdminInfo + + """ + Get a different tier for this tier's maintainer that is at the same frequency + as this tier but with an equal or lesser cost. Returns the published tier with + the monthly price closest to this tier's without going over. + """ + closestLesserValueTier: SponsorsTier + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The description of the tier. + """ + description: String! + + """ + The tier description rendered to HTML + """ + descriptionHTML: HTML! + id: ID! + + """ + Whether this tier was chosen at checkout time by the sponsor rather than + defined ahead of time by the maintainer who manages the Sponsors listing. + """ + isCustomAmount: Boolean! + + """ + Whether this tier is only for use with one-time sponsorships. + """ + isOneTime: Boolean! + + """ + How much this tier costs per month in cents. + """ + monthlyPriceInCents: Int! + + """ + How much this tier costs per month in USD. + """ + monthlyPriceInDollars: Int! + + """ + The name of the tier. + """ + name: String! + + """ + The sponsors listing that this tier belongs to. + """ + sponsorsListing: SponsorsListing! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +SponsorsTier information only visible to users that can administer the associated Sponsors listing. +""" +type SponsorsTierAdminInfo { + """ + Indicates whether this tier is still a work in progress by the sponsorable and + not yet published to the associated GitHub Sponsors profile. Draft tiers + cannot be used for new sponsorships and will not be in use on existing + sponsorships. Draft tiers cannot be seen by anyone but the admins of the + GitHub Sponsors profile. + """ + isDraft: Boolean! + + """ + Indicates whether this tier is published to the associated GitHub Sponsors + profile. Published tiers are visible to anyone who can see the GitHub Sponsors + profile, and are available for use in sponsorships if the GitHub Sponsors + profile is publicly visible. + """ + isPublished: Boolean! + + """ + Indicates whether this tier has been retired from the associated GitHub + Sponsors profile. Retired tiers are no longer shown on the GitHub Sponsors + profile and cannot be chosen for new sponsorships. Existing sponsorships may + still use retired tiers if the sponsor selected the tier before it was retired. + """ + isRetired: Boolean! + + """ + The sponsorships using this tier. + """ + sponsorships( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Whether or not to return private sponsorships using this tier. Defaults to + only returning public sponsorships on this tier. + """ + includePrivate: Boolean = false + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for sponsorships returned from this connection. If left + blank, the sponsorships will be ordered based on relevancy to the viewer. + """ + orderBy: SponsorshipOrder + ): SponsorshipConnection! +} + +""" +The connection type for SponsorsTier. +""" +type SponsorsTierConnection { + """ + A list of edges. + """ + edges: [SponsorsTierEdge] + + """ + A list of nodes. + """ + nodes: [SponsorsTier] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type SponsorsTierEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: SponsorsTier +} + +""" +Ordering options for Sponsors tiers connections. +""" +input SponsorsTierOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order tiers by. + """ + field: SponsorsTierOrderField! +} + +""" +Properties by which Sponsors tiers connections can be ordered. +""" +enum SponsorsTierOrderField { + """ + Order tiers by creation time. + """ + CREATED_AT + + """ + Order tiers by their monthly price in cents + """ + MONTHLY_PRICE_IN_CENTS +} + +""" +A sponsorship relationship between a sponsor and a maintainer +""" +type Sponsorship implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Whether the sponsorship is active. False implies the sponsor is a past sponsor + of the maintainer, while true implies they are a current sponsor. + """ + isActive: Boolean! + + """ + Whether this sponsorship represents a one-time payment versus a recurring sponsorship. + """ + isOneTimePayment: Boolean! + + """ + Whether the sponsor has chosen to receive sponsorship update emails sent from + the sponsorable. Only returns a non-null value when the viewer has permission to know this. + """ + isSponsorOptedIntoEmail: Boolean + + """ + The entity that is being sponsored + """ + maintainer: User! + @deprecated( + reason: "`Sponsorship.maintainer` will be removed. Use `Sponsorship.sponsorable` instead. Removal on 2020-04-01 UTC." + ) + + """ + The privacy level for this sponsorship. + """ + privacyLevel: SponsorshipPrivacy! + + """ + The user that is sponsoring. Returns null if the sponsorship is private or if sponsor is not a user. + """ + sponsor: User + @deprecated( + reason: "`Sponsorship.sponsor` will be removed. Use `Sponsorship.sponsorEntity` instead. Removal on 2020-10-01 UTC." + ) + + """ + The user or organization that is sponsoring, if you have permission to view them. + """ + sponsorEntity: Sponsor + + """ + The entity that is being sponsored + """ + sponsorable: Sponsorable! + + """ + The associated sponsorship tier + """ + tier: SponsorsTier + + """ + Identifies the date and time when the current tier was chosen for this sponsorship. + """ + tierSelectedAt: DateTime +} + +""" +The connection type for Sponsorship. +""" +type SponsorshipConnection { + """ + A list of edges. + """ + edges: [SponsorshipEdge] + + """ + A list of nodes. + """ + nodes: [Sponsorship] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! + + """ + The total amount in cents of all recurring sponsorships in the connection + whose amount you can view. Does not include one-time sponsorships. + """ + totalRecurringMonthlyPriceInCents: Int! + + """ + The total amount in USD of all recurring sponsorships in the connection whose + amount you can view. Does not include one-time sponsorships. + """ + totalRecurringMonthlyPriceInDollars: Int! +} + +""" +An edge in a connection. +""" +type SponsorshipEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Sponsorship +} + +""" +An update sent to sponsors of a user or organization on GitHub Sponsors. +""" +type SponsorshipNewsletter implements Node { + """ + The author of the newsletter. + """ + author: User + + """ + The contents of the newsletter, the message the sponsorable wanted to give. + """ + body: String! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Indicates if the newsletter has been made available to sponsors. + """ + isPublished: Boolean! + + """ + The user or organization this newsletter is from. + """ + sponsorable: Sponsorable! + + """ + The subject of the newsletter, what it's about. + """ + subject: String! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +The connection type for SponsorshipNewsletter. +""" +type SponsorshipNewsletterConnection { + """ + A list of edges. + """ + edges: [SponsorshipNewsletterEdge] + + """ + A list of nodes. + """ + nodes: [SponsorshipNewsletter] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type SponsorshipNewsletterEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: SponsorshipNewsletter +} + +""" +Ordering options for sponsorship newsletter connections. +""" +input SponsorshipNewsletterOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order sponsorship newsletters by. + """ + field: SponsorshipNewsletterOrderField! +} + +""" +Properties by which sponsorship update connections can be ordered. +""" +enum SponsorshipNewsletterOrderField { + """ + Order sponsorship newsletters by when they were created. + """ + CREATED_AT +} + +""" +Ordering options for sponsorship connections. +""" +input SponsorshipOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order sponsorship by. + """ + field: SponsorshipOrderField! +} + +""" +Properties by which sponsorship connections can be ordered. +""" +enum SponsorshipOrderField { + """ + Order sponsorship by creation time. + """ + CREATED_AT +} + +""" +The privacy of a sponsorship +""" +enum SponsorshipPrivacy { + """ + Private + """ + PRIVATE + + """ + Public + """ + PUBLIC +} + +""" +The possible default commit messages for squash merges. +""" +enum SquashMergeCommitMessage { + """ + Default to a blank commit message. + """ + BLANK + + """ + Default to the branch's commit messages. + """ + COMMIT_MESSAGES + + """ + Default to the pull request's body. + """ + PR_BODY +} + +""" +The possible default commit titles for squash merges. +""" +enum SquashMergeCommitTitle { + """ + Default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + """ + COMMIT_OR_PR_TITLE + + """ + Default to the pull request's title. + """ + PR_TITLE +} + +""" +Represents an SSH signature on a Commit or Tag. +""" +type SshSignature implements GitSignature { + """ + Email used to sign this object. + """ + email: String! + + """ + True if the signature is valid and verified by GitHub. + """ + isValid: Boolean! + + """ + Hex-encoded fingerprint of the key that signed this object. + """ + keyFingerprint: String + + """ + Payload for GPG signing object. Raw ODB object without the signature header. + """ + payload: String! + + """ + ASCII-armored signature header from object. + """ + signature: String! + + """ + GitHub user corresponding to the email signing this commit. + """ + signer: User + + """ + The state of this signature. `VALID` if signature is valid and verified by + GitHub, otherwise represents reason why signature is considered invalid. + """ + state: GitSignatureState! + + """ + True if the signature was made with GitHub's signing key. + """ + wasSignedByGitHub: Boolean! +} + +""" +Ways in which star connections can be ordered. +""" +input StarOrder { + """ + The direction in which to order nodes. + """ + direction: OrderDirection! + + """ + The field in which to order nodes by. + """ + field: StarOrderField! +} + +""" +Properties by which star connections can be ordered. +""" +enum StarOrderField { + """ + Allows ordering a list of stars by when they were created. + """ + STARRED_AT +} + +""" +The connection type for User. +""" +type StargazerConnection { + """ + A list of edges. + """ + edges: [StargazerEdge] + + """ + A list of nodes. + """ + nodes: [User] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Represents a user that's starred a repository. +""" +type StargazerEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + node: User! + + """ + Identifies when the item was starred. + """ + starredAt: DateTime! +} + +""" +Things that can be starred. +""" +interface Starrable { + id: ID! + + """ + Returns a count of how many stargazers there are on this object + """ + stargazerCount: Int! + + """ + A list of users who have starred this starrable. + """ + stargazers( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Order for connection + """ + orderBy: StarOrder + ): StargazerConnection! + + """ + Returns a boolean indicating whether the viewing user has starred this starrable. + """ + viewerHasStarred: Boolean! +} + +""" +The connection type for Repository. +""" +type StarredRepositoryConnection { + """ + A list of edges. + """ + edges: [StarredRepositoryEdge] + + """ + Is the list of stars for this user truncated? This is true for users that have many stars. + """ + isOverLimit: Boolean! + + """ + A list of nodes. + """ + nodes: [Repository] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Represents a starred repository. +""" +type StarredRepositoryEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + node: Repository! + + """ + Identifies when the item was starred. + """ + starredAt: DateTime! +} + +""" +Autogenerated input type of StartOrganizationMigration +""" +input StartOrganizationMigrationInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The migration source access token. + """ + sourceAccessToken: String! + + """ + The URL of the organization to migrate. + """ + sourceOrgUrl: URI! + + """ + The ID of the enterprise the target organization belongs to. + """ + targetEnterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The name of the target organization. + """ + targetOrgName: String! +} + +""" +Autogenerated return type of StartOrganizationMigration +""" +type StartOrganizationMigrationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new organization migration. + """ + orgMigration: OrganizationMigration +} + +""" +Autogenerated input type of StartRepositoryMigration +""" +input StartRepositoryMigrationInput { + """ + The migration source access token. + """ + accessToken: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Whether to continue the migration on error. Defaults to `false`. We strongly + recommend setting this to `true` for the smoothest migration experience. *This + default will change to `true` on September 4, 2023.* + """ + continueOnError: Boolean + + """ + The signed URL to access the user-uploaded git archive. + """ + gitArchiveUrl: String + + """ + The GitHub personal access token of the user importing to the target repository. + """ + githubPat: String + + """ + Whether to lock the source repository. + """ + lockSource: Boolean + + """ + The signed URL to access the user-uploaded metadata archive. + """ + metadataArchiveUrl: String + + """ + The ID of the organization that will own the imported repository. + """ + ownerId: ID! @possibleTypes(concreteTypes: ["Organization"]) + + """ + The name of the imported repository. + """ + repositoryName: String! + + """ + Whether to skip migrating releases for the repository. + """ + skipReleases: Boolean + + """ + The ID of the migration source. + """ + sourceId: ID! @possibleTypes(concreteTypes: ["MigrationSource"]) + + """ + The URL of the source repository. + """ + sourceRepositoryUrl: URI + + """ + The visibility of the imported repository. + """ + targetRepoVisibility: String +} + +""" +Autogenerated return type of StartRepositoryMigration +""" +type StartRepositoryMigrationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new repository migration. + """ + repositoryMigration: RepositoryMigration +} + +""" +Represents a commit status. +""" +type Status implements Node { + """ + A list of status contexts and check runs for this commit. + """ + combinedContexts( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): StatusCheckRollupContextConnection! + + """ + The commit this status is attached to. + """ + commit: Commit + + """ + Looks up an individual status context by context name. + """ + context( + """ + The context name. + """ + name: String! + ): StatusContext + + """ + The individual status contexts for this commit. + """ + contexts: [StatusContext!]! + id: ID! + + """ + The combined commit status. + """ + state: StatusState! +} + +""" +Required status check +""" +type StatusCheckConfiguration { + """ + The status check context name that must be present on the commit. + """ + context: String! + + """ + The optional integration ID that this status check must originate from. + """ + integrationId: Int +} + +""" +Required status check +""" +input StatusCheckConfigurationInput { + """ + The status check context name that must be present on the commit. + """ + context: String! + + """ + The optional integration ID that this status check must originate from. + """ + integrationId: Int +} + +""" +Represents the rollup for both the check runs and status for a commit. +""" +type StatusCheckRollup implements Node { + """ + The commit the status and check runs are attached to. + """ + commit: Commit + + """ + A list of status contexts and check runs for this commit. + """ + contexts( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): StatusCheckRollupContextConnection! + id: ID! + + """ + The combined status for the commit. + """ + state: StatusState! +} + +""" +Types that can be inside a StatusCheckRollup context. +""" +union StatusCheckRollupContext = CheckRun | StatusContext + +""" +The connection type for StatusCheckRollupContext. +""" +type StatusCheckRollupContextConnection { + """ + The number of check runs in this rollup. + """ + checkRunCount: Int! + + """ + Counts of check runs by state. + """ + checkRunCountsByState: [CheckRunStateCount!] + + """ + A list of edges. + """ + edges: [StatusCheckRollupContextEdge] + + """ + A list of nodes. + """ + nodes: [StatusCheckRollupContext] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The number of status contexts in this rollup. + """ + statusContextCount: Int! + + """ + Counts of status contexts by state. + """ + statusContextCountsByState: [StatusContextStateCount!] + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type StatusCheckRollupContextEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: StatusCheckRollupContext +} + +""" +Represents an individual commit status context +""" +type StatusContext implements Node & RequirableByPullRequest { + """ + The avatar of the OAuth application or the user that created the status + """ + avatarUrl( + """ + The size of the resulting square image. + """ + size: Int = 40 + ): URI + + """ + This commit this status context is attached to. + """ + commit: Commit + + """ + The name of this status context. + """ + context: String! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The actor who created this status context. + """ + creator: Actor + + """ + The description for this status context. + """ + description: String + id: ID! + + """ + Whether this is required to pass before merging for a specific pull request. + """ + isRequired( + """ + The id of the pull request this is required for + """ + pullRequestId: ID + + """ + The number of the pull request this is required for + """ + pullRequestNumber: Int + ): Boolean! + + """ + The state of this status context. + """ + state: StatusState! + + """ + The URL for this status context. + """ + targetUrl: URI +} + +""" +Represents a count of the state of a status context. +""" +type StatusContextStateCount { + """ + The number of statuses with this state. + """ + count: Int! + + """ + The state of a status context. + """ + state: StatusState! +} + +""" +The possible commit status states. +""" +enum StatusState { + """ + Status is errored. + """ + ERROR + + """ + Status is expected. + """ + EXPECTED + + """ + Status is failing. + """ + FAILURE + + """ + Status is pending. + """ + PENDING + + """ + Status is successful. + """ + SUCCESS +} + +""" +A Stripe Connect account for receiving sponsorship funds from GitHub Sponsors. +""" +type StripeConnectAccount { + """ + The account number used to identify this Stripe Connect account. + """ + accountId: String! + + """ + The name of the country or region of an external account, such as a bank + account, tied to the Stripe Connect account. Will only return a value when + queried by the maintainer of the associated GitHub Sponsors profile + themselves, or by an admin of the sponsorable organization. + """ + billingCountryOrRegion: String + + """ + The name of the country or region of the Stripe Connect account. Will only + return a value when queried by the maintainer of the associated GitHub + Sponsors profile themselves, or by an admin of the sponsorable organization. + """ + countryOrRegion: String + + """ + Whether this Stripe Connect account is currently in use for the associated GitHub Sponsors profile. + """ + isActive: Boolean! + + """ + The GitHub Sponsors profile associated with this Stripe Connect account. + """ + sponsorsListing: SponsorsListing! + + """ + The URL to access this Stripe Connect account on Stripe's website. + """ + stripeDashboardUrl: URI! +} + +""" +Autogenerated input type of SubmitPullRequestReview +""" +input SubmitPullRequestReviewInput { + """ + The text field to set on the Pull Request Review. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The event to send to the Pull Request Review. + """ + event: PullRequestReviewEvent! + + """ + The Pull Request ID to submit any pending reviews. + """ + pullRequestId: ID @possibleTypes(concreteTypes: ["PullRequest"]) + + """ + The Pull Request Review ID to submit. + """ + pullRequestReviewId: ID @possibleTypes(concreteTypes: ["PullRequestReview"]) +} + +""" +Autogenerated return type of SubmitPullRequestReview +""" +type SubmitPullRequestReviewPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The submitted pull request review. + """ + pullRequestReview: PullRequestReview +} + +""" +A pointer to a repository at a specific revision embedded inside another repository. +""" +type Submodule { + """ + The branch of the upstream submodule for tracking updates + """ + branch: String + + """ + The git URL of the submodule repository + """ + gitUrl: URI! + + """ + The name of the submodule in .gitmodules + """ + name: String! + + """ + The name of the submodule in .gitmodules (Base64-encoded) + """ + nameRaw: Base64String! + + """ + The path in the superproject that this submodule is located in + """ + path: String! + + """ + The path in the superproject that this submodule is located in (Base64-encoded) + """ + pathRaw: Base64String! + + """ + The commit revision of the subproject repository being tracked by the submodule + """ + subprojectCommitOid: GitObjectID +} + +""" +The connection type for Submodule. +""" +type SubmoduleConnection { + """ + A list of edges. + """ + edges: [SubmoduleEdge] + + """ + A list of nodes. + """ + nodes: [Submodule] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type SubmoduleEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Submodule +} + +""" +Entities that can be subscribed to for web and email notifications. +""" +interface Subscribable { + id: ID! + + """ + Check if the viewer is able to change their subscription status for the repository. + """ + viewerCanSubscribe: Boolean! + + """ + Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. + """ + viewerSubscription: SubscriptionState +} + +""" +Entities that can be subscribed to for web and email notifications. +""" +interface SubscribableThread { + id: ID! + + """ + Identifies the viewer's thread subscription form action. + """ + viewerThreadSubscriptionFormAction: ThreadSubscriptionFormAction + + """ + Identifies the viewer's thread subscription status. + """ + viewerThreadSubscriptionStatus: ThreadSubscriptionState +} + +""" +Represents a 'subscribed' event on a given `Subscribable`. +""" +type SubscribedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Object referenced by event. + """ + subscribable: Subscribable! +} + +""" +The possible states of a subscription. +""" +enum SubscriptionState { + """ + The User is never notified. + """ + IGNORED + + """ + The User is notified of all conversations. + """ + SUBSCRIBED + + """ + The User is only notified when participating or @mentioned. + """ + UNSUBSCRIBED +} + +""" +A suggestion to review a pull request based on a user's commit history and review comments. +""" +type SuggestedReviewer { + """ + Is this suggestion based on past commits? + """ + isAuthor: Boolean! + + """ + Is this suggestion based on past review comments? + """ + isCommenter: Boolean! + + """ + Identifies the user suggested to review the pull request. + """ + reviewer: User! +} + +""" +Represents a Git tag. +""" +type Tag implements GitObject & Node { + """ + An abbreviated version of the Git object ID + """ + abbreviatedOid: String! + + """ + The HTTP path for this Git object + """ + commitResourcePath: URI! + + """ + The HTTP URL for this Git object + """ + commitUrl: URI! + id: ID! + + """ + The Git tag message. + """ + message: String + + """ + The Git tag name. + """ + name: String! + + """ + The Git object ID + """ + oid: GitObjectID! + + """ + The Repository the Git object belongs to + """ + repository: Repository! + + """ + Details about the tag author. + """ + tagger: GitActor + + """ + The Git object the tag points to. + """ + target: GitObject! +} + +""" +Parameters to be used for the tag_name_pattern rule +""" +type TagNamePatternParameters { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean! + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +Parameters to be used for the tag_name_pattern rule +""" +input TagNamePatternParametersInput { + """ + How this rule will appear to users. + """ + name: String + + """ + If true, the rule will fail if the pattern matches. + """ + negate: Boolean + + """ + The operator to use for matching. + """ + operator: String! + + """ + The pattern to match with. + """ + pattern: String! +} + +""" +A team of users in an organization. +""" +type Team implements MemberStatusable & Node & Subscribable { + """ + A list of teams that are ancestors of this team. + """ + ancestors( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): TeamConnection! + + """ + A URL pointing to the team's avatar. + """ + avatarUrl( + """ + The size in pixels of the resulting square image. + """ + size: Int = 400 + ): URI + + """ + List of child teams belonging to this team + """ + childTeams( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Whether to list immediate child teams or all descendant child teams. + """ + immediateOnly: Boolean = true + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Order for connection + """ + orderBy: TeamOrder + + """ + User logins to filter by + """ + userLogins: [String!] + ): TeamConnection! + + """ + The slug corresponding to the organization and team. + """ + combinedSlug: String! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The description of the team. + """ + description: String + + """ + Find a team discussion by its number. + """ + discussion( + """ + The sequence number of the discussion to find. + """ + number: Int! + ): TeamDiscussion + + """ + A list of team discussions. + """ + discussions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + If provided, filters discussions according to whether or not they are pinned. + """ + isPinned: Boolean + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Order for connection + """ + orderBy: TeamDiscussionOrder + ): TeamDiscussionConnection! + + """ + The HTTP path for team discussions + """ + discussionsResourcePath: URI! + + """ + The HTTP URL for team discussions + """ + discussionsUrl: URI! + + """ + The HTTP path for editing this team + """ + editTeamResourcePath: URI! + + """ + The HTTP URL for editing this team + """ + editTeamUrl: URI! + id: ID! + + """ + A list of pending invitations for users to this team + """ + invitations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): OrganizationInvitationConnection + + """ + Get the status messages members of this entity have set that are either public or visible only to the organization. + """ + memberStatuses( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for user statuses returned from the connection. + """ + orderBy: UserStatusOrder = {field: UPDATED_AT, direction: DESC} + ): UserStatusConnection! + + """ + A list of users who are members of this team. + """ + members( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter by membership type + """ + membership: TeamMembershipType = ALL + + """ + Order for the connection. + """ + orderBy: TeamMemberOrder + + """ + The search string to look for. + """ + query: String + + """ + Filter by team member role + """ + role: TeamMemberRole + ): TeamMemberConnection! + + """ + The HTTP path for the team' members + """ + membersResourcePath: URI! + + """ + The HTTP URL for the team' members + """ + membersUrl: URI! + + """ + The name of the team. + """ + name: String! + + """ + The HTTP path creating a new team + """ + newTeamResourcePath: URI! + + """ + The HTTP URL creating a new team + """ + newTeamUrl: URI! + + """ + The notification setting that the team has set. + """ + notificationSetting: TeamNotificationSetting! + + """ + The organization that owns this team. + """ + organization: Organization! + + """ + The parent team of the team. + """ + parentTeam: Team + + """ + The level of privacy the team has. + """ + privacy: TeamPrivacy! + + """ + Finds and returns the project according to the provided project number. + """ + projectV2( + """ + The Project number. + """ + number: Int! + ): ProjectV2 + + """ + List of projects this team has collaborator access to. + """ + projectsV2( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Filtering options for projects returned from this connection + """ + filterBy: ProjectV2Filters = {} + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + How to order the returned projects. + """ + orderBy: ProjectV2Order = {field: NUMBER, direction: DESC} + + """ + The query to search projects by. + """ + query: String = "" + ): ProjectV2Connection! + + """ + A list of repositories this team has access to. + """ + repositories( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Order for the connection. + """ + orderBy: TeamRepositoryOrder + + """ + The search string to look for. Repositories will be returned where the name contains your search string. + """ + query: String + ): TeamRepositoryConnection! + + """ + The HTTP path for this team's repositories + """ + repositoriesResourcePath: URI! + + """ + The HTTP URL for this team's repositories + """ + repositoriesUrl: URI! + + """ + The HTTP path for this team + """ + resourcePath: URI! + + """ + What algorithm is used for review assignment for this team + """ + reviewRequestDelegationAlgorithm: TeamReviewAssignmentAlgorithm @preview(toggledBy: "stone-crop-preview") + + """ + True if review assignment is enabled for this team + """ + reviewRequestDelegationEnabled: Boolean! @preview(toggledBy: "stone-crop-preview") + + """ + How many team members are required for review assignment for this team + """ + reviewRequestDelegationMemberCount: Int @preview(toggledBy: "stone-crop-preview") + + """ + When assigning team members via delegation, whether the entire team should be notified as well. + """ + reviewRequestDelegationNotifyTeam: Boolean! @preview(toggledBy: "stone-crop-preview") + + """ + The slug corresponding to the team. + """ + slug: String! + + """ + The HTTP path for this team's teams + """ + teamsResourcePath: URI! + + """ + The HTTP URL for this team's teams + """ + teamsUrl: URI! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this team + """ + url: URI! + + """ + Team is adminable by the viewer. + """ + viewerCanAdminister: Boolean! + + """ + Check if the viewer is able to change their subscription status for the repository. + """ + viewerCanSubscribe: Boolean! + + """ + Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. + """ + viewerSubscription: SubscriptionState +} + +""" +Audit log entry for a team.add_member event. +""" +type TeamAddMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & TeamAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + Whether the team was mapped to an LDAP Group. + """ + isLdapMapped: Boolean + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The team associated with the action + """ + team: Team + + """ + The name of the team + """ + teamName: String + + """ + The HTTP path for this team + """ + teamResourcePath: URI + + """ + The HTTP URL for this team + """ + teamUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a team.add_repository event. +""" +type TeamAddRepositoryAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TeamAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + Whether the team was mapped to an LDAP Group. + """ + isLdapMapped: Boolean + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The team associated with the action + """ + team: Team + + """ + The name of the team + """ + teamName: String + + """ + The HTTP path for this team + """ + teamResourcePath: URI + + """ + The HTTP URL for this team + """ + teamUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Metadata for an audit entry with action team.* +""" +interface TeamAuditEntryData { + """ + The team associated with the action + """ + team: Team + + """ + The name of the team + """ + teamName: String + + """ + The HTTP path for this team + """ + teamResourcePath: URI + + """ + The HTTP URL for this team + """ + teamUrl: URI +} + +""" +Audit log entry for a team.change_parent_team event. +""" +type TeamChangeParentTeamAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & TeamAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + Whether the team was mapped to an LDAP Group. + """ + isLdapMapped: Boolean + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The new parent team. + """ + parentTeam: Team + + """ + The name of the new parent team + """ + parentTeamName: String + + """ + The name of the former parent team + """ + parentTeamNameWas: String + + """ + The HTTP path for the parent team + """ + parentTeamResourcePath: URI + + """ + The HTTP URL for the parent team + """ + parentTeamUrl: URI + + """ + The former parent team. + """ + parentTeamWas: Team + + """ + The HTTP path for the previous parent team + """ + parentTeamWasResourcePath: URI + + """ + The HTTP URL for the previous parent team + """ + parentTeamWasUrl: URI + + """ + The team associated with the action + """ + team: Team + + """ + The name of the team + """ + teamName: String + + """ + The HTTP path for this team + """ + teamResourcePath: URI + + """ + The HTTP URL for this team + """ + teamUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +The connection type for Team. +""" +type TeamConnection { + """ + A list of edges. + """ + edges: [TeamEdge] + + """ + A list of nodes. + """ + nodes: [Team] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +A team discussion. +""" +type TeamDiscussion implements Comment & Deletable & Node & Reactable & Subscribable & UniformResourceLocatable & Updatable & UpdatableComment { + """ + The actor who authored the comment. + """ + author: Actor + + """ + Author's association with the discussion's team. + """ + authorAssociation: CommentAuthorAssociation! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + The body as Markdown. + """ + body: String! + + """ + The body rendered to HTML. + """ + bodyHTML: HTML! + + """ + The body rendered to text. + """ + bodyText: String! + + """ + Identifies the discussion body hash. + """ + bodyVersion: String! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + A list of comments on this discussion. + """ + comments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + When provided, filters the connection such that results begin with the comment with this number. + """ + fromComment: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Order for connection + """ + orderBy: TeamDiscussionCommentOrder + ): TeamDiscussionCommentConnection! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + The HTTP path for discussion comments + """ + commentsResourcePath: URI! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + The HTTP URL for discussion comments + """ + commentsUrl: URI! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Check if this comment was created via an email reply. + """ + createdViaEmail: Boolean! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The actor who edited the comment. + """ + editor: Actor + id: ID! + + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + + """ + Whether or not the discussion is pinned. + """ + isPinned: Boolean! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + Whether or not the discussion is only visible to team members and org admins. + """ + isPrivate: Boolean! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + The moment the editor made the last edit + """ + lastEditedAt: DateTime + + """ + Identifies the discussion within its team. + """ + number: Int! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + Identifies when the comment was published at. + """ + publishedAt: DateTime + + """ + A list of reactions grouped by content left on the subject. + """ + reactionGroups: [ReactionGroup!] + + """ + A list of Reactions left on the Issue. + """ + reactions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Allows filtering Reactions by emoji. + """ + content: ReactionContent + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Allows specifying the order in which reactions are returned. + """ + orderBy: ReactionOrder + ): ReactionConnection! + + """ + The HTTP path for this discussion + """ + resourcePath: URI! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + The team that defines the context of this discussion. + """ + team: Team! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + The title of the discussion + """ + title: String! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this discussion + """ + url: URI! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + A list of edits to this content. + """ + userContentEdits( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserContentEditConnection + + """ + Check if the current viewer can delete this object. + """ + viewerCanDelete: Boolean! + + """ + Whether or not the current viewer can pin this discussion. + """ + viewerCanPin: Boolean! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + Can user react to this subject + """ + viewerCanReact: Boolean! + + """ + Check if the viewer is able to change their subscription status for the repository. + """ + viewerCanSubscribe: Boolean! + + """ + Check if the current viewer can update this object. + """ + viewerCanUpdate: Boolean! + + """ + Reasons why the current viewer can not update this comment. + """ + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + + """ + Did the viewer author this comment. + """ + viewerDidAuthor: Boolean! + + """ + Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. + """ + viewerSubscription: SubscriptionState +} + +""" +A comment on a team discussion. +""" +type TeamDiscussionComment implements Comment & Deletable & Node & Reactable & UniformResourceLocatable & Updatable & UpdatableComment { + """ + The actor who authored the comment. + """ + author: Actor + + """ + Author's association with the comment's team. + """ + authorAssociation: CommentAuthorAssociation! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + The body as Markdown. + """ + body: String! + + """ + The body rendered to HTML. + """ + bodyHTML: HTML! + + """ + The body rendered to text. + """ + bodyText: String! + + """ + The current version of the body content. + """ + bodyVersion: String! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Check if this comment was created via an email reply. + """ + createdViaEmail: Boolean! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The discussion this comment is about. + """ + discussion: TeamDiscussion! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + The actor who edited the comment. + """ + editor: Actor + id: ID! + + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + + """ + The moment the editor made the last edit + """ + lastEditedAt: DateTime + + """ + Identifies the comment number. + """ + number: Int! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + Identifies when the comment was published at. + """ + publishedAt: DateTime + + """ + A list of reactions grouped by content left on the subject. + """ + reactionGroups: [ReactionGroup!] + + """ + A list of Reactions left on the Issue. + """ + reactions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Allows filtering Reactions by emoji. + """ + content: ReactionContent + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Allows specifying the order in which reactions are returned. + """ + orderBy: ReactionOrder + ): ReactionConnection! + + """ + The HTTP path for this comment + """ + resourcePath: URI! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this comment + """ + url: URI! + @deprecated( + reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC." + ) + + """ + A list of edits to this content. + """ + userContentEdits( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserContentEditConnection + + """ + Check if the current viewer can delete this object. + """ + viewerCanDelete: Boolean! + + """ + Can user react to this subject + """ + viewerCanReact: Boolean! + + """ + Check if the current viewer can update this object. + """ + viewerCanUpdate: Boolean! + + """ + Reasons why the current viewer can not update this comment. + """ + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + + """ + Did the viewer author this comment. + """ + viewerDidAuthor: Boolean! +} + +""" +The connection type for TeamDiscussionComment. +""" +type TeamDiscussionCommentConnection { + """ + A list of edges. + """ + edges: [TeamDiscussionCommentEdge] + + """ + A list of nodes. + """ + nodes: [TeamDiscussionComment] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type TeamDiscussionCommentEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: TeamDiscussionComment +} + +""" +Ways in which team discussion comment connections can be ordered. +""" +input TeamDiscussionCommentOrder { + """ + The direction in which to order nodes. + """ + direction: OrderDirection! + + """ + The field by which to order nodes. + """ + field: TeamDiscussionCommentOrderField! +} + +""" +Properties by which team discussion comment connections can be ordered. +""" +enum TeamDiscussionCommentOrderField { + """ + Allows sequential ordering of team discussion comments (which is equivalent to chronological ordering). + """ + NUMBER +} + +""" +The connection type for TeamDiscussion. +""" +type TeamDiscussionConnection { + """ + A list of edges. + """ + edges: [TeamDiscussionEdge] + + """ + A list of nodes. + """ + nodes: [TeamDiscussion] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type TeamDiscussionEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: TeamDiscussion +} + +""" +Ways in which team discussion connections can be ordered. +""" +input TeamDiscussionOrder { + """ + The direction in which to order nodes. + """ + direction: OrderDirection! + + """ + The field by which to order nodes. + """ + field: TeamDiscussionOrderField! +} + +""" +Properties by which team discussion connections can be ordered. +""" +enum TeamDiscussionOrderField { + """ + Allows chronological ordering of team discussions. + """ + CREATED_AT +} + +""" +An edge in a connection. +""" +type TeamEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: Team +} + +""" +The connection type for User. +""" +type TeamMemberConnection { + """ + A list of edges. + """ + edges: [TeamMemberEdge] + + """ + A list of nodes. + """ + nodes: [User] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Represents a user who is a member of a team. +""" +type TeamMemberEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The HTTP path to the organization's member access page. + """ + memberAccessResourcePath: URI! + + """ + The HTTP URL to the organization's member access page. + """ + memberAccessUrl: URI! + node: User! + + """ + The role the member has on the team. + """ + role: TeamMemberRole! +} + +""" +Ordering options for team member connections +""" +input TeamMemberOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order team members by. + """ + field: TeamMemberOrderField! +} + +""" +Properties by which team member connections can be ordered. +""" +enum TeamMemberOrderField { + """ + Order team members by creation time + """ + CREATED_AT + + """ + Order team members by login + """ + LOGIN +} + +""" +The possible team member roles; either 'maintainer' or 'member'. +""" +enum TeamMemberRole { + """ + A team maintainer has permission to add and remove team members. + """ + MAINTAINER + + """ + A team member has no administrative permissions on the team. + """ + MEMBER +} + +""" +Defines which types of team members are included in the returned list. Can be one of IMMEDIATE, CHILD_TEAM or ALL. +""" +enum TeamMembershipType { + """ + Includes immediate and child team members for the team. + """ + ALL + + """ + Includes only child team members for the team. + """ + CHILD_TEAM + + """ + Includes only immediate members of the team. + """ + IMMEDIATE +} + +""" +The possible team notification values. +""" +enum TeamNotificationSetting { + """ + No one will receive notifications. + """ + NOTIFICATIONS_DISABLED + + """ + Everyone will receive notifications when the team is @mentioned. + """ + NOTIFICATIONS_ENABLED +} + +""" +Ways in which team connections can be ordered. +""" +input TeamOrder { + """ + The direction in which to order nodes. + """ + direction: OrderDirection! + + """ + The field in which to order nodes by. + """ + field: TeamOrderField! +} + +""" +Properties by which team connections can be ordered. +""" +enum TeamOrderField { + """ + Allows ordering a list of teams by name. + """ + NAME +} + +""" +The possible team privacy values. +""" +enum TeamPrivacy { + """ + A secret team can only be seen by its members. + """ + SECRET + + """ + A visible team can be seen and @mentioned by every member of the organization. + """ + VISIBLE +} + +""" +Audit log entry for a team.remove_member event. +""" +type TeamRemoveMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & TeamAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + Whether the team was mapped to an LDAP Group. + """ + isLdapMapped: Boolean + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The team associated with the action + """ + team: Team + + """ + The name of the team + """ + teamName: String + + """ + The HTTP path for this team + """ + teamResourcePath: URI + + """ + The HTTP URL for this team + """ + teamUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +Audit log entry for a team.remove_repository event. +""" +type TeamRemoveRepositoryAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TeamAuditEntryData { + """ + The action name + """ + action: String! + + """ + The user who initiated the action + """ + actor: AuditEntryActor + + """ + The IP address of the actor + """ + actorIp: String + + """ + A readable representation of the actor's location + """ + actorLocation: ActorLocation + + """ + The username of the user who initiated the action + """ + actorLogin: String + + """ + The HTTP path for the actor. + """ + actorResourcePath: URI + + """ + The HTTP URL for the actor. + """ + actorUrl: URI + + """ + The time the action was initiated + """ + createdAt: PreciseDateTime! + id: ID! + + """ + Whether the team was mapped to an LDAP Group. + """ + isLdapMapped: Boolean + + """ + The corresponding operation type for the action + """ + operationType: OperationType + + """ + The Organization associated with the Audit Entry. + """ + organization: Organization + + """ + The name of the Organization. + """ + organizationName: String + + """ + The HTTP path for the organization + """ + organizationResourcePath: URI + + """ + The HTTP URL for the organization + """ + organizationUrl: URI + + """ + The repository associated with the action + """ + repository: Repository + + """ + The name of the repository + """ + repositoryName: String + + """ + The HTTP path for the repository + """ + repositoryResourcePath: URI + + """ + The HTTP URL for the repository + """ + repositoryUrl: URI + + """ + The team associated with the action + """ + team: Team + + """ + The name of the team + """ + teamName: String + + """ + The HTTP path for this team + """ + teamResourcePath: URI + + """ + The HTTP URL for this team + """ + teamUrl: URI + + """ + The user affected by the action + """ + user: User + + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String + + """ + The HTTP path for the user. + """ + userResourcePath: URI + + """ + The HTTP URL for the user. + """ + userUrl: URI +} + +""" +The connection type for Repository. +""" +type TeamRepositoryConnection { + """ + A list of edges. + """ + edges: [TeamRepositoryEdge] + + """ + A list of nodes. + """ + nodes: [Repository] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +Represents a team repository. +""" +type TeamRepositoryEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + node: Repository! + + """ + The permission level the team has on the repository + """ + permission: RepositoryPermission! +} + +""" +Ordering options for team repository connections +""" +input TeamRepositoryOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order repositories by. + """ + field: TeamRepositoryOrderField! +} + +""" +Properties by which team repository connections can be ordered. +""" +enum TeamRepositoryOrderField { + """ + Order repositories by creation time + """ + CREATED_AT + + """ + Order repositories by name + """ + NAME + + """ + Order repositories by permission + """ + PERMISSION + + """ + Order repositories by push time + """ + PUSHED_AT + + """ + Order repositories by number of stargazers + """ + STARGAZERS + + """ + Order repositories by update time + """ + UPDATED_AT +} + +""" +The possible team review assignment algorithms +""" +enum TeamReviewAssignmentAlgorithm @preview(toggledBy: "stone-crop-preview") { + """ + Balance review load across the entire team + """ + LOAD_BALANCE + + """ + Alternate reviews between each team member + """ + ROUND_ROBIN +} + +""" +The role of a user on a team. +""" +enum TeamRole { + """ + User has admin rights on the team. + """ + ADMIN + + """ + User is a member of the team. + """ + MEMBER +} + +""" +A text match within a search result. +""" +type TextMatch { + """ + The specific text fragment within the property matched on. + """ + fragment: String! + + """ + Highlights within the matched fragment. + """ + highlights: [TextMatchHighlight!]! + + """ + The property matched on. + """ + property: String! +} + +""" +Represents a single highlight in a search result match. +""" +type TextMatchHighlight { + """ + The indice in the fragment where the matched text begins. + """ + beginIndice: Int! + + """ + The indice in the fragment where the matched text ends. + """ + endIndice: Int! + + """ + The text matched. + """ + text: String! +} + +""" +The possible states of a thread subscription form action +""" +enum ThreadSubscriptionFormAction { + """ + The User cannot subscribe or unsubscribe to the thread + """ + NONE + + """ + The User can subscribe to the thread + """ + SUBSCRIBE + + """ + The User can unsubscribe to the thread + """ + UNSUBSCRIBE +} + +""" +The possible states of a subscription. +""" +enum ThreadSubscriptionState { + """ + The subscription status is currently disabled. + """ + DISABLED + + """ + The User is never notified because they are ignoring the list + """ + IGNORING_LIST + + """ + The User is never notified because they are ignoring the thread + """ + IGNORING_THREAD + + """ + The User is not recieving notifications from this thread + """ + NONE + + """ + The User is notified becuase they are watching the list + """ + SUBSCRIBED_TO_LIST + + """ + The User is notified because they are subscribed to the thread + """ + SUBSCRIBED_TO_THREAD + + """ + The User is notified because they chose custom settings for this thread. + """ + SUBSCRIBED_TO_THREAD_EVENTS + + """ + The User is notified because they chose custom settings for this thread. + """ + SUBSCRIBED_TO_THREAD_TYPE + + """ + The subscription status is currently unavailable. + """ + UNAVAILABLE +} + +""" +A topic aggregates entities that are related to a subject. +""" +type Topic implements Node & Starrable { + id: ID! + + """ + The topic's name. + """ + name: String! + + """ + A list of related topics, including aliases of this topic, sorted with the most relevant + first. Returns up to 10 Topics. + """ + relatedTopics( + """ + How many topics to return. + """ + first: Int = 3 + ): [Topic!]! + + """ + A list of repositories. + """ + repositories( + """ + Array of viewer's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + current viewer owns. + """ + affiliations: [RepositoryAffiliation] + + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + If non-null, filters repositories according to whether they have issues enabled + """ + hasIssuesEnabled: Boolean + + """ + If non-null, filters repositories according to whether they have been locked + """ + isLocked: Boolean + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for repositories returned from the connection + """ + orderBy: RepositoryOrder + + """ + Array of owner's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + organization or user being viewed owns. + """ + ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR] + + """ + If non-null, filters repositories according to privacy + """ + privacy: RepositoryPrivacy + + """ + If true, only repositories whose owner can be sponsored via GitHub Sponsors will be returned. + """ + sponsorableOnly: Boolean = false + ): RepositoryConnection! + + """ + Returns a count of how many stargazers there are on this object + """ + stargazerCount: Int! + + """ + A list of users who have starred this starrable. + """ + stargazers( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Order for connection + """ + orderBy: StarOrder + ): StargazerConnection! + + """ + Returns a boolean indicating whether the viewing user has starred this starrable. + """ + viewerHasStarred: Boolean! +} + +""" +Metadata for an audit entry with a topic. +""" +interface TopicAuditEntryData { + """ + The name of the topic added to the repository + """ + topic: Topic + + """ + The name of the topic added to the repository + """ + topicName: String +} + +""" +Reason that the suggested topic is declined. +""" +enum TopicSuggestionDeclineReason { + """ + The suggested topic is not relevant to the repository. + """ + NOT_RELEVANT + + """ + The viewer does not like the suggested topic. + """ + PERSONAL_PREFERENCE + + """ + The suggested topic is too general for the repository. + """ + TOO_GENERAL + + """ + The suggested topic is too specific for the repository (e.g. #ruby-on-rails-version-4-2-1). + """ + TOO_SPECIFIC +} + +""" +The possible states of a tracked issue. +""" +enum TrackedIssueStates { + """ + The tracked issue is closed + """ + CLOSED + + """ + The tracked issue is open + """ + OPEN +} + +""" +Autogenerated input type of TransferEnterpriseOrganization +""" +input TransferEnterpriseOrganizationInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise where the organization should be transferred. + """ + destinationEnterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The ID of the organization to transfer. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +Autogenerated return type of TransferEnterpriseOrganization +""" +type TransferEnterpriseOrganizationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The organization for which a transfer was initiated. + """ + organization: Organization +} + +""" +Autogenerated input type of TransferIssue +""" +input TransferIssueInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Whether to create labels if they don't exist in the target repository (matched by name) + """ + createLabelsIfMissing: Boolean = false + + """ + The Node ID of the issue to be transferred + """ + issueId: ID! @possibleTypes(concreteTypes: ["Issue"]) + + """ + The Node ID of the repository the issue should be transferred to + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of TransferIssue +""" +type TransferIssuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The issue that was transferred + """ + issue: Issue +} + +""" +Represents a 'transferred' event on a given issue or pull request. +""" +type TransferredEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The repository this came from + """ + fromRepository: Repository + id: ID! + + """ + Identifies the issue associated with the event. + """ + issue: Issue! +} + +""" +Represents a Git tree. +""" +type Tree implements GitObject & Node { + """ + An abbreviated version of the Git object ID + """ + abbreviatedOid: String! + + """ + The HTTP path for this Git object + """ + commitResourcePath: URI! + + """ + The HTTP URL for this Git object + """ + commitUrl: URI! + + """ + A list of tree entries. + """ + entries: [TreeEntry!] + id: ID! + + """ + The Git object ID + """ + oid: GitObjectID! + + """ + The Repository the Git object belongs to + """ + repository: Repository! +} + +""" +Represents a Git tree entry. +""" +type TreeEntry { + """ + The extension of the file + """ + extension: String + + """ + Whether or not this tree entry is generated + """ + isGenerated: Boolean! + + """ + The programming language this file is written in. + """ + language: Language + + """ + Number of lines in the file. + """ + lineCount: Int + + """ + Entry file mode. + """ + mode: Int! + + """ + Entry file name. + """ + name: String! + + """ + Entry file name. (Base64-encoded) + """ + nameRaw: Base64String! + + """ + Entry file object. + """ + object: GitObject + + """ + Entry file Git object ID. + """ + oid: GitObjectID! + + """ + The full path of the file. + """ + path: String + + """ + The full path of the file. (Base64-encoded) + """ + pathRaw: Base64String + + """ + The Repository the tree entry belongs to + """ + repository: Repository! + + """ + Entry byte size + """ + size: Int! + + """ + If the TreeEntry is for a directory occupied by a submodule project, this returns the corresponding submodule + """ + submodule: Submodule + + """ + Entry file type. + """ + type: String! +} + +""" +An RFC 3986, RFC 3987, and RFC 6570 (level 4) compliant URI string. +""" +scalar URI + +""" +Autogenerated input type of UnarchiveProjectV2Item +""" +input UnarchiveProjectV2ItemInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the ProjectV2Item to unarchive. + """ + itemId: ID! @possibleTypes(concreteTypes: ["ProjectV2Item"]) + + """ + The ID of the Project to archive the item from. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated return type of UnarchiveProjectV2Item +""" +type UnarchiveProjectV2ItemPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The item unarchived from the project. + """ + item: ProjectV2Item +} + +""" +Autogenerated input type of UnarchiveRepository +""" +input UnarchiveRepositoryInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the repository to unarchive. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of UnarchiveRepository +""" +type UnarchiveRepositoryPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The repository that was unarchived. + """ + repository: Repository +} + +""" +Represents an 'unassigned' event on any assignable object. +""" +type UnassignedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the assignable associated with the event. + """ + assignable: Assignable! + + """ + Identifies the user or mannequin that was unassigned. + """ + assignee: Assignee + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Identifies the subject (user) who was unassigned. + """ + user: User + @deprecated(reason: "Assignees can now be mannequins. Use the `assignee` field instead. Removal on 2020-01-01 UTC.") +} + +""" +Autogenerated input type of UnfollowOrganization +""" +input UnfollowOrganizationInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the organization to unfollow. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +Autogenerated return type of UnfollowOrganization +""" +type UnfollowOrganizationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The organization that was unfollowed. + """ + organization: Organization +} + +""" +Autogenerated input type of UnfollowUser +""" +input UnfollowUserInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the user to unfollow. + """ + userId: ID! @possibleTypes(concreteTypes: ["User"]) +} + +""" +Autogenerated return type of UnfollowUser +""" +type UnfollowUserPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The user that was unfollowed. + """ + user: User +} + +""" +Represents a type that can be retrieved by a URL. +""" +interface UniformResourceLocatable { + """ + The HTML path to this resource. + """ + resourcePath: URI! + + """ + The URL to this resource. + """ + url: URI! +} + +""" +Represents an unknown signature on a Commit or Tag. +""" +type UnknownSignature implements GitSignature { + """ + Email used to sign this object. + """ + email: String! + + """ + True if the signature is valid and verified by GitHub. + """ + isValid: Boolean! + + """ + Payload for GPG signing object. Raw ODB object without the signature header. + """ + payload: String! + + """ + ASCII-armored signature header from object. + """ + signature: String! + + """ + GitHub user corresponding to the email signing this commit. + """ + signer: User + + """ + The state of this signature. `VALID` if signature is valid and verified by + GitHub, otherwise represents reason why signature is considered invalid. + """ + state: GitSignatureState! + + """ + True if the signature was made with GitHub's signing key. + """ + wasSignedByGitHub: Boolean! +} + +""" +Represents an 'unlabeled' event on a given issue or pull request. +""" +type UnlabeledEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Identifies the label associated with the 'unlabeled' event. + """ + label: Label! + + """ + Identifies the `Labelable` associated with the event. + """ + labelable: Labelable! +} + +""" +Autogenerated input type of UnlinkProjectV2FromRepository +""" +input UnlinkProjectV2FromRepositoryInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the project to unlink from the repository. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + The ID of the repository to unlink from the project. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of UnlinkProjectV2FromRepository +""" +type UnlinkProjectV2FromRepositoryPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The repository the project is no longer linked to. + """ + repository: Repository +} + +""" +Autogenerated input type of UnlinkProjectV2FromTeam +""" +input UnlinkProjectV2FromTeamInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the project to unlink from the team. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + The ID of the team to unlink from the project. + """ + teamId: ID! @possibleTypes(concreteTypes: ["Team"]) +} + +""" +Autogenerated return type of UnlinkProjectV2FromTeam +""" +type UnlinkProjectV2FromTeamPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The team the project is unlinked from + """ + team: Team +} + +""" +Autogenerated input type of UnlinkRepositoryFromProject +""" +input UnlinkRepositoryFromProjectInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the Project linked to the Repository. + """ + projectId: ID! @possibleTypes(concreteTypes: ["Project"]) + + """ + The ID of the Repository linked to the Project. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of UnlinkRepositoryFromProject +""" +type UnlinkRepositoryFromProjectPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The linked Project. + """ + project: Project + + """ + The linked Repository. + """ + repository: Repository +} + +""" +Autogenerated input type of UnlockLockable +""" +input UnlockLockableInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the item to be unlocked. + """ + lockableId: ID! @possibleTypes(concreteTypes: ["Discussion", "Issue", "PullRequest"], abstractType: "Lockable") +} + +""" +Autogenerated return type of UnlockLockable +""" +type UnlockLockablePayload { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The item that was unlocked. + """ + unlockedRecord: Lockable +} + +""" +Represents an 'unlocked' event on a given issue or pull request. +""" +type UnlockedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Object that was unlocked. + """ + lockable: Lockable! +} + +""" +Autogenerated input type of UnmarkDiscussionCommentAsAnswer +""" +input UnmarkDiscussionCommentAsAnswerInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the discussion comment to unmark as an answer. + """ + id: ID! @possibleTypes(concreteTypes: ["DiscussionComment"]) +} + +""" +Autogenerated return type of UnmarkDiscussionCommentAsAnswer +""" +type UnmarkDiscussionCommentAsAnswerPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The discussion that includes the comment. + """ + discussion: Discussion +} + +""" +Autogenerated input type of UnmarkFileAsViewed +""" +input UnmarkFileAsViewedInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The path of the file to mark as unviewed + """ + path: String! + + """ + The Node ID of the pull request. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) +} + +""" +Autogenerated return type of UnmarkFileAsViewed +""" +type UnmarkFileAsViewedPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated pull request. + """ + pullRequest: PullRequest +} + +""" +Autogenerated input type of UnmarkIssueAsDuplicate +""" +input UnmarkIssueAsDuplicateInput { + """ + ID of the issue or pull request currently considered canonical/authoritative/original. + """ + canonicalId: ID! @possibleTypes(concreteTypes: ["Issue", "PullRequest"], abstractType: "IssueOrPullRequest") + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + ID of the issue or pull request currently marked as a duplicate. + """ + duplicateId: ID! @possibleTypes(concreteTypes: ["Issue", "PullRequest"], abstractType: "IssueOrPullRequest") +} + +""" +Autogenerated return type of UnmarkIssueAsDuplicate +""" +type UnmarkIssueAsDuplicatePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The issue or pull request that was marked as a duplicate. + """ + duplicate: IssueOrPullRequest +} + +""" +Autogenerated input type of UnmarkProjectV2AsTemplate +""" +input UnmarkProjectV2AsTemplateInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the Project to unmark as a template. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated return type of UnmarkProjectV2AsTemplate +""" +type UnmarkProjectV2AsTemplatePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The project. + """ + projectV2: ProjectV2 +} + +""" +Represents an 'unmarked_as_duplicate' event on a given issue or pull request. +""" +type UnmarkedAsDuplicateEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + The authoritative issue or pull request which has been duplicated by another. + """ + canonical: IssueOrPullRequest + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + The issue or pull request which has been marked as a duplicate of another. + """ + duplicate: IssueOrPullRequest + id: ID! + + """ + Canonical and duplicate belong to different repositories. + """ + isCrossRepository: Boolean! +} + +""" +Autogenerated input type of UnminimizeComment +""" +input UnminimizeCommentInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the subject to modify. + """ + subjectId: ID! + @possibleTypes( + concreteTypes: ["CommitComment", "DiscussionComment", "GistComment", "IssueComment", "PullRequestReviewComment"] + abstractType: "Minimizable" + ) +} + +""" +Autogenerated return type of UnminimizeComment +""" +type UnminimizeCommentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The comment that was unminimized. + """ + unminimizedComment: Minimizable +} + +""" +Autogenerated input type of UnpinIssue +""" +input UnpinIssueInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the issue to be unpinned + """ + issueId: ID! @possibleTypes(concreteTypes: ["Issue"]) +} + +""" +Autogenerated return type of UnpinIssue +""" +type UnpinIssuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The issue that was unpinned + """ + issue: Issue +} + +""" +Represents an 'unpinned' event on a given issue or pull request. +""" +type UnpinnedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Identifies the issue associated with the event. + """ + issue: Issue! +} + +""" +Autogenerated input type of UnresolveReviewThread +""" +input UnresolveReviewThreadInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the thread to unresolve + """ + threadId: ID! @possibleTypes(concreteTypes: ["PullRequestReviewThread"]) +} + +""" +Autogenerated return type of UnresolveReviewThread +""" +type UnresolveReviewThreadPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The thread to resolve. + """ + thread: PullRequestReviewThread +} + +""" +Represents an 'unsubscribed' event on a given `Subscribable`. +""" +type UnsubscribedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + Object referenced by event. + """ + subscribable: Subscribable! +} + +""" +Entities that can be updated. +""" +interface Updatable { + """ + Check if the current viewer can update this object. + """ + viewerCanUpdate: Boolean! +} + +""" +Comments that can be updated. +""" +interface UpdatableComment { + """ + Reasons why the current viewer can not update this comment. + """ + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! +} + +""" +Autogenerated input type of UpdateBranchProtectionRule +""" +input UpdateBranchProtectionRuleInput { + """ + Can this branch be deleted. + """ + allowsDeletions: Boolean + + """ + Are force pushes allowed on this branch. + """ + allowsForcePushes: Boolean + + """ + Is branch creation a protected operation. + """ + blocksCreations: Boolean + + """ + The global relay id of the branch protection rule to be updated. + """ + branchProtectionRuleId: ID! @possibleTypes(concreteTypes: ["BranchProtectionRule"]) + + """ + A list of User, Team, or App IDs allowed to bypass force push targeting matching branches. + """ + bypassForcePushActorIds: [ID!] + + """ + A list of User, Team, or App IDs allowed to bypass pull requests targeting matching branches. + """ + bypassPullRequestActorIds: [ID!] + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Will new commits pushed to matching branches dismiss pull request review approvals. + """ + dismissesStaleReviews: Boolean + + """ + Can admins overwrite branch protection. + """ + isAdminEnforced: Boolean + + """ + Whether users can pull changes from upstream when the branch is locked. Set to + `true` to allow fork syncing. Set to `false` to prevent fork syncing. + """ + lockAllowsFetchAndMerge: Boolean + + """ + Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. + """ + lockBranch: Boolean + + """ + The glob-like pattern used to determine matching branches. + """ + pattern: String + + """ + A list of User, Team, or App IDs allowed to push to matching branches. + """ + pushActorIds: [ID!] + + """ + Whether the most recent push must be approved by someone other than the person who pushed it + """ + requireLastPushApproval: Boolean + + """ + Number of approving reviews required to update matching branches. + """ + requiredApprovingReviewCount: Int + + """ + The list of required deployment environments + """ + requiredDeploymentEnvironments: [String!] + + """ + List of required status check contexts that must pass for commits to be accepted to matching branches. + """ + requiredStatusCheckContexts: [String!] + + """ + The list of required status checks + """ + requiredStatusChecks: [RequiredStatusCheckInput!] + + """ + Are approving reviews required to update matching branches. + """ + requiresApprovingReviews: Boolean + + """ + Are reviews from code owners required to update matching branches. + """ + requiresCodeOwnerReviews: Boolean + + """ + Are commits required to be signed. + """ + requiresCommitSignatures: Boolean + + """ + Are conversations required to be resolved before merging. + """ + requiresConversationResolution: Boolean + + """ + Are successful deployments required before merging. + """ + requiresDeployments: Boolean + + """ + Are merge commits prohibited from being pushed to this branch. + """ + requiresLinearHistory: Boolean + + """ + Are status checks required to update matching branches. + """ + requiresStatusChecks: Boolean + + """ + Are branches required to be up to date before merging. + """ + requiresStrictStatusChecks: Boolean + + """ + Is pushing to matching branches restricted. + """ + restrictsPushes: Boolean + + """ + Is dismissal of pull request reviews restricted. + """ + restrictsReviewDismissals: Boolean + + """ + A list of User, Team, or App IDs allowed to dismiss reviews on pull requests targeting matching branches. + """ + reviewDismissalActorIds: [ID!] +} + +""" +Autogenerated return type of UpdateBranchProtectionRule +""" +type UpdateBranchProtectionRulePayload { + """ + The newly created BranchProtectionRule. + """ + branchProtectionRule: BranchProtectionRule + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of UpdateCheckRun +""" +input UpdateCheckRunInput { + """ + Possible further actions the integrator can perform, which a user may trigger. + """ + actions: [CheckRunAction!] + + """ + The node of the check. + """ + checkRunId: ID! @possibleTypes(concreteTypes: ["CheckRun"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The time that the check run finished. + """ + completedAt: DateTime + + """ + The final conclusion of the check. + """ + conclusion: CheckConclusionState + + """ + The URL of the integrator's site that has the full details of the check. + """ + detailsUrl: URI + + """ + A reference for the run on the integrator's system. + """ + externalId: String + + """ + The name of the check. + """ + name: String + + """ + Descriptive details about the run. + """ + output: CheckRunOutput + + """ + The node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + The time that the check run began. + """ + startedAt: DateTime + + """ + The current status. + """ + status: RequestableCheckStatusState +} + +""" +Autogenerated return type of UpdateCheckRun +""" +type UpdateCheckRunPayload { + """ + The updated check run. + """ + checkRun: CheckRun + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of UpdateCheckSuitePreferences +""" +input UpdateCheckSuitePreferencesInput { + """ + The check suite preferences to modify. + """ + autoTriggerPreferences: [CheckSuiteAutoTriggerPreference!]! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of UpdateCheckSuitePreferences +""" +type UpdateCheckSuitePreferencesPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated repository. + """ + repository: Repository +} + +""" +Autogenerated input type of UpdateDiscussionComment +""" +input UpdateDiscussionCommentInput { + """ + The new contents of the comment body. + """ + body: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the discussion comment to update. + """ + commentId: ID! @possibleTypes(concreteTypes: ["DiscussionComment"]) +} + +""" +Autogenerated return type of UpdateDiscussionComment +""" +type UpdateDiscussionCommentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The modified discussion comment. + """ + comment: DiscussionComment +} + +""" +Autogenerated input type of UpdateDiscussion +""" +input UpdateDiscussionInput { + """ + The new contents of the discussion body. + """ + body: String + + """ + The Node ID of a discussion category within the same repository to change this discussion to. + """ + categoryId: ID @possibleTypes(concreteTypes: ["DiscussionCategory"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the discussion to update. + """ + discussionId: ID! @possibleTypes(concreteTypes: ["Discussion"]) + + """ + The new discussion title. + """ + title: String +} + +""" +Autogenerated return type of UpdateDiscussion +""" +type UpdateDiscussionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The modified discussion. + """ + discussion: Discussion +} + +""" +Autogenerated input type of UpdateEnterpriseAdministratorRole +""" +input UpdateEnterpriseAdministratorRoleInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the Enterprise which the admin belongs to. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The login of a administrator whose role is being changed. + """ + login: String! + + """ + The new role for the Enterprise administrator. + """ + role: EnterpriseAdministratorRole! +} + +""" +Autogenerated return type of UpdateEnterpriseAdministratorRole +""" +type UpdateEnterpriseAdministratorRolePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A message confirming the result of changing the administrator's role. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseAllowPrivateRepositoryForkingSetting +""" +input UpdateEnterpriseAllowPrivateRepositoryForkingSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise on which to set the allow private repository forking setting. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The value for the allow private repository forking policy on the enterprise. + """ + policyValue: EnterpriseAllowPrivateRepositoryForkingPolicyValue + + """ + The value for the allow private repository forking setting on the enterprise. + """ + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseAllowPrivateRepositoryForkingSetting +""" +type UpdateEnterpriseAllowPrivateRepositoryForkingSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The enterprise with the updated allow private repository forking setting. + """ + enterprise: Enterprise + + """ + A message confirming the result of updating the allow private repository forking setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseDefaultRepositoryPermissionSetting +""" +input UpdateEnterpriseDefaultRepositoryPermissionSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise on which to set the base repository permission setting. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The value for the base repository permission setting on the enterprise. + """ + settingValue: EnterpriseDefaultRepositoryPermissionSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseDefaultRepositoryPermissionSetting +""" +type UpdateEnterpriseDefaultRepositoryPermissionSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The enterprise with the updated base repository permission setting. + """ + enterprise: Enterprise + + """ + A message confirming the result of updating the base repository permission setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseMembersCanChangeRepositoryVisibilitySetting +""" +input UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise on which to set the members can change repository visibility setting. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The value for the members can change repository visibility setting on the enterprise. + """ + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseMembersCanChangeRepositoryVisibilitySetting +""" +type UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The enterprise with the updated members can change repository visibility setting. + """ + enterprise: Enterprise + + """ + A message confirming the result of updating the members can change repository visibility setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseMembersCanCreateRepositoriesSetting +""" +input UpdateEnterpriseMembersCanCreateRepositoriesSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise on which to set the members can create repositories setting. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + Allow members to create internal repositories. Defaults to current value. + """ + membersCanCreateInternalRepositories: Boolean + + """ + Allow members to create private repositories. Defaults to current value. + """ + membersCanCreatePrivateRepositories: Boolean + + """ + Allow members to create public repositories. Defaults to current value. + """ + membersCanCreatePublicRepositories: Boolean + + """ + When false, allow member organizations to set their own repository creation member privileges. + """ + membersCanCreateRepositoriesPolicyEnabled: Boolean + + """ + Value for the members can create repositories setting on the enterprise. This + or the granular public/private/internal allowed fields (but not both) must be provided. + """ + settingValue: EnterpriseMembersCanCreateRepositoriesSettingValue +} + +""" +Autogenerated return type of UpdateEnterpriseMembersCanCreateRepositoriesSetting +""" +type UpdateEnterpriseMembersCanCreateRepositoriesSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The enterprise with the updated members can create repositories setting. + """ + enterprise: Enterprise + + """ + A message confirming the result of updating the members can create repositories setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseMembersCanDeleteIssuesSetting +""" +input UpdateEnterpriseMembersCanDeleteIssuesSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise on which to set the members can delete issues setting. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The value for the members can delete issues setting on the enterprise. + """ + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseMembersCanDeleteIssuesSetting +""" +type UpdateEnterpriseMembersCanDeleteIssuesSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The enterprise with the updated members can delete issues setting. + """ + enterprise: Enterprise + + """ + A message confirming the result of updating the members can delete issues setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseMembersCanDeleteRepositoriesSetting +""" +input UpdateEnterpriseMembersCanDeleteRepositoriesSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise on which to set the members can delete repositories setting. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The value for the members can delete repositories setting on the enterprise. + """ + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseMembersCanDeleteRepositoriesSetting +""" +type UpdateEnterpriseMembersCanDeleteRepositoriesSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The enterprise with the updated members can delete repositories setting. + """ + enterprise: Enterprise + + """ + A message confirming the result of updating the members can delete repositories setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseMembersCanInviteCollaboratorsSetting +""" +input UpdateEnterpriseMembersCanInviteCollaboratorsSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise on which to set the members can invite collaborators setting. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The value for the members can invite collaborators setting on the enterprise. + """ + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseMembersCanInviteCollaboratorsSetting +""" +type UpdateEnterpriseMembersCanInviteCollaboratorsSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The enterprise with the updated members can invite collaborators setting. + """ + enterprise: Enterprise + + """ + A message confirming the result of updating the members can invite collaborators setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseMembersCanMakePurchasesSetting +""" +input UpdateEnterpriseMembersCanMakePurchasesSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise on which to set the members can make purchases setting. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The value for the members can make purchases setting on the enterprise. + """ + settingValue: EnterpriseMembersCanMakePurchasesSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseMembersCanMakePurchasesSetting +""" +type UpdateEnterpriseMembersCanMakePurchasesSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The enterprise with the updated members can make purchases setting. + """ + enterprise: Enterprise + + """ + A message confirming the result of updating the members can make purchases setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseMembersCanUpdateProtectedBranchesSetting +""" +input UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise on which to set the members can update protected branches setting. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The value for the members can update protected branches setting on the enterprise. + """ + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseMembersCanUpdateProtectedBranchesSetting +""" +type UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The enterprise with the updated members can update protected branches setting. + """ + enterprise: Enterprise + + """ + A message confirming the result of updating the members can update protected branches setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseMembersCanViewDependencyInsightsSetting +""" +input UpdateEnterpriseMembersCanViewDependencyInsightsSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise on which to set the members can view dependency insights setting. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The value for the members can view dependency insights setting on the enterprise. + """ + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseMembersCanViewDependencyInsightsSetting +""" +type UpdateEnterpriseMembersCanViewDependencyInsightsSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The enterprise with the updated members can view dependency insights setting. + """ + enterprise: Enterprise + + """ + A message confirming the result of updating the members can view dependency insights setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseOrganizationProjectsSetting +""" +input UpdateEnterpriseOrganizationProjectsSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise on which to set the organization projects setting. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The value for the organization projects setting on the enterprise. + """ + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseOrganizationProjectsSetting +""" +type UpdateEnterpriseOrganizationProjectsSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The enterprise with the updated organization projects setting. + """ + enterprise: Enterprise + + """ + A message confirming the result of updating the organization projects setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseOwnerOrganizationRole +""" +input UpdateEnterpriseOwnerOrganizationRoleInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the Enterprise which the owner belongs to. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The ID of the organization for membership change. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) + + """ + The role to assume in the organization. + """ + organizationRole: RoleInOrganization! +} + +""" +Autogenerated return type of UpdateEnterpriseOwnerOrganizationRole +""" +type UpdateEnterpriseOwnerOrganizationRolePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A message confirming the result of changing the owner's organization role. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseProfile +""" +input UpdateEnterpriseProfileInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The description of the enterprise. + """ + description: String + + """ + The Enterprise ID to update. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The location of the enterprise. + """ + location: String + + """ + The name of the enterprise. + """ + name: String + + """ + The URL of the enterprise's website. + """ + websiteUrl: String +} + +""" +Autogenerated return type of UpdateEnterpriseProfile +""" +type UpdateEnterpriseProfilePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated enterprise. + """ + enterprise: Enterprise +} + +""" +Autogenerated input type of UpdateEnterpriseRepositoryProjectsSetting +""" +input UpdateEnterpriseRepositoryProjectsSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise on which to set the repository projects setting. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The value for the repository projects setting on the enterprise. + """ + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseRepositoryProjectsSetting +""" +type UpdateEnterpriseRepositoryProjectsSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The enterprise with the updated repository projects setting. + """ + enterprise: Enterprise + + """ + A message confirming the result of updating the repository projects setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseTeamDiscussionsSetting +""" +input UpdateEnterpriseTeamDiscussionsSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise on which to set the team discussions setting. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The value for the team discussions setting on the enterprise. + """ + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseTeamDiscussionsSetting +""" +type UpdateEnterpriseTeamDiscussionsSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The enterprise with the updated team discussions setting. + """ + enterprise: Enterprise + + """ + A message confirming the result of updating the team discussions setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseTwoFactorAuthenticationRequiredSetting +""" +input UpdateEnterpriseTwoFactorAuthenticationRequiredSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the enterprise on which to set the two factor authentication required setting. + """ + enterpriseId: ID! @possibleTypes(concreteTypes: ["Enterprise"]) + + """ + The value for the two factor authentication required setting on the enterprise. + """ + settingValue: EnterpriseEnabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseTwoFactorAuthenticationRequiredSetting +""" +type UpdateEnterpriseTwoFactorAuthenticationRequiredSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The enterprise with the updated two factor authentication required setting. + """ + enterprise: Enterprise + + """ + A message confirming the result of updating the two factor authentication required setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnvironment +""" +input UpdateEnvironmentInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The node ID of the environment. + """ + environmentId: ID! @possibleTypes(concreteTypes: ["Environment"]) + + """ + The ids of users or teams that can approve deployments to this environment + """ + reviewers: [ID!] + + """ + The wait timer in minutes. + """ + waitTimer: Int +} + +""" +Autogenerated return type of UpdateEnvironment +""" +type UpdateEnvironmentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated environment. + """ + environment: Environment +} + +""" +Autogenerated input type of UpdateIpAllowListEnabledSetting +""" +input UpdateIpAllowListEnabledSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the owner on which to set the IP allow list enabled setting. + """ + ownerId: ID! @possibleTypes(concreteTypes: ["App", "Enterprise", "Organization"], abstractType: "IpAllowListOwner") + + """ + The value for the IP allow list enabled setting. + """ + settingValue: IpAllowListEnabledSettingValue! +} + +""" +Autogenerated return type of UpdateIpAllowListEnabledSetting +""" +type UpdateIpAllowListEnabledSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The IP allow list owner on which the setting was updated. + """ + owner: IpAllowListOwner +} + +""" +Autogenerated input type of UpdateIpAllowListEntry +""" +input UpdateIpAllowListEntryInput { + """ + An IP address or range of addresses in CIDR notation. + """ + allowListValue: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the IP allow list entry to update. + """ + ipAllowListEntryId: ID! @possibleTypes(concreteTypes: ["IpAllowListEntry"]) + + """ + Whether the IP allow list entry is active when an IP allow list is enabled. + """ + isActive: Boolean! + + """ + An optional name for the IP allow list entry. + """ + name: String +} + +""" +Autogenerated return type of UpdateIpAllowListEntry +""" +type UpdateIpAllowListEntryPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The IP allow list entry that was updated. + """ + ipAllowListEntry: IpAllowListEntry +} + +""" +Autogenerated input type of UpdateIpAllowListForInstalledAppsEnabledSetting +""" +input UpdateIpAllowListForInstalledAppsEnabledSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the owner. + """ + ownerId: ID! @possibleTypes(concreteTypes: ["App", "Enterprise", "Organization"], abstractType: "IpAllowListOwner") + + """ + The value for the IP allow list configuration for installed GitHub Apps setting. + """ + settingValue: IpAllowListForInstalledAppsEnabledSettingValue! +} + +""" +Autogenerated return type of UpdateIpAllowListForInstalledAppsEnabledSetting +""" +type UpdateIpAllowListForInstalledAppsEnabledSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The IP allow list owner on which the setting was updated. + """ + owner: IpAllowListOwner +} + +""" +Autogenerated input type of UpdateIssueComment +""" +input UpdateIssueCommentInput { + """ + The updated text of the comment. + """ + body: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the IssueComment to modify. + """ + id: ID! @possibleTypes(concreteTypes: ["IssueComment"]) +} + +""" +Autogenerated return type of UpdateIssueComment +""" +type UpdateIssueCommentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated comment. + """ + issueComment: IssueComment +} + +""" +Autogenerated input type of UpdateIssue +""" +input UpdateIssueInput { + """ + An array of Node IDs of users for this issue. + """ + assigneeIds: [ID!] @possibleTypes(concreteTypes: ["User"]) + + """ + The body for the issue description. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the Issue to modify. + """ + id: ID! @possibleTypes(concreteTypes: ["Issue"]) + + """ + An array of Node IDs of labels for this issue. + """ + labelIds: [ID!] @possibleTypes(concreteTypes: ["Label"]) + + """ + The Node ID of the milestone for this issue. + """ + milestoneId: ID @possibleTypes(concreteTypes: ["Milestone"]) + + """ + An array of Node IDs for projects associated with this issue. + """ + projectIds: [ID!] + + """ + The desired issue state. + """ + state: IssueState + + """ + The title for the issue. + """ + title: String +} + +""" +Autogenerated return type of UpdateIssue +""" +type UpdateIssuePayload { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The issue. + """ + issue: Issue +} + +""" +Autogenerated input type of UpdateLabel +""" +input UpdateLabelInput @preview(toggledBy: "bane-preview") { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A 6 character hex code, without the leading #, identifying the updated color of the label. + """ + color: String + + """ + A brief description of the label, such as its purpose. + """ + description: String + + """ + The Node ID of the label to be updated. + """ + id: ID! @possibleTypes(concreteTypes: ["Label"]) + + """ + The updated name of the label. + """ + name: String +} + +""" +Autogenerated return type of UpdateLabel +""" +type UpdateLabelPayload @preview(toggledBy: "bane-preview") { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated label. + """ + label: Label +} + +""" +Autogenerated input type of UpdateNotificationRestrictionSetting +""" +input UpdateNotificationRestrictionSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the owner on which to set the restrict notifications setting. + """ + ownerId: ID! @possibleTypes(concreteTypes: ["Enterprise", "Organization"], abstractType: "VerifiableDomainOwner") + + """ + The value for the restrict notifications setting. + """ + settingValue: NotificationRestrictionSettingValue! +} + +""" +Autogenerated return type of UpdateNotificationRestrictionSetting +""" +type UpdateNotificationRestrictionSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The owner on which the setting was updated. + """ + owner: VerifiableDomainOwner +} + +""" +Autogenerated input type of UpdateOrganizationAllowPrivateRepositoryForkingSetting +""" +input UpdateOrganizationAllowPrivateRepositoryForkingSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Enable forking of private repositories in the organization? + """ + forkingEnabled: Boolean! + + """ + The ID of the organization on which to set the allow private repository forking setting. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) +} + +""" +Autogenerated return type of UpdateOrganizationAllowPrivateRepositoryForkingSetting +""" +type UpdateOrganizationAllowPrivateRepositoryForkingSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A message confirming the result of updating the allow private repository forking setting. + """ + message: String + + """ + The organization with the updated allow private repository forking setting. + """ + organization: Organization +} + +""" +Autogenerated input type of UpdateOrganizationWebCommitSignoffSetting +""" +input UpdateOrganizationWebCommitSignoffSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the organization on which to set the web commit signoff setting. + """ + organizationId: ID! @possibleTypes(concreteTypes: ["Organization"]) + + """ + Enable signoff on web-based commits for repositories in the organization? + """ + webCommitSignoffRequired: Boolean! +} + +""" +Autogenerated return type of UpdateOrganizationWebCommitSignoffSetting +""" +type UpdateOrganizationWebCommitSignoffSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A message confirming the result of updating the web commit signoff setting. + """ + message: String + + """ + The organization with the updated web commit signoff setting. + """ + organization: Organization +} + +""" +Only allow users with bypass permission to update matching refs. +""" +type UpdateParameters { + """ + Branch can pull changes from its upstream repository + """ + updateAllowsFetchAndMerge: Boolean! +} + +""" +Only allow users with bypass permission to update matching refs. +""" +input UpdateParametersInput { + """ + Branch can pull changes from its upstream repository + """ + updateAllowsFetchAndMerge: Boolean! +} + +""" +Autogenerated input type of UpdateProjectCard +""" +input UpdateProjectCardInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Whether or not the ProjectCard should be archived + """ + isArchived: Boolean + + """ + The note of ProjectCard. + """ + note: String + + """ + The ProjectCard ID to update. + """ + projectCardId: ID! @possibleTypes(concreteTypes: ["ProjectCard"]) +} + +""" +Autogenerated return type of UpdateProjectCard +""" +type UpdateProjectCardPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated ProjectCard. + """ + projectCard: ProjectCard +} + +""" +Autogenerated input type of UpdateProjectColumn +""" +input UpdateProjectColumnInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The name of project column. + """ + name: String! + + """ + The ProjectColumn ID to update. + """ + projectColumnId: ID! @possibleTypes(concreteTypes: ["ProjectColumn"]) +} + +""" +Autogenerated return type of UpdateProjectColumn +""" +type UpdateProjectColumnPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated project column. + """ + projectColumn: ProjectColumn +} + +""" +Autogenerated input type of UpdateProject +""" +input UpdateProjectInput { + """ + The description of project. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The name of project. + """ + name: String + + """ + The Project ID to update. + """ + projectId: ID! @possibleTypes(concreteTypes: ["Project"]) + + """ + Whether the project is public or not. + """ + public: Boolean + + """ + Whether the project is open or closed. + """ + state: ProjectState +} + +""" +Autogenerated return type of UpdateProject +""" +type UpdateProjectPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated project. + """ + project: Project +} + +""" +Autogenerated input type of UpdateProjectV2Collaborators +""" +input UpdateProjectV2CollaboratorsInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The collaborators to update. + """ + collaborators: [ProjectV2Collaborator!]! + + """ + The ID of the project to update the collaborators for. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated return type of UpdateProjectV2Collaborators +""" +type UpdateProjectV2CollaboratorsPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The collaborators granted a role + """ + collaborators( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectV2ActorConnection +} + +""" +Autogenerated input type of UpdateProjectV2DraftIssue +""" +input UpdateProjectV2DraftIssueInput { + """ + The IDs of the assignees of the draft issue. + """ + assigneeIds: [ID!] @possibleTypes(concreteTypes: ["User"]) + + """ + The body of the draft issue. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the draft issue to update. + """ + draftIssueId: ID! @possibleTypes(concreteTypes: ["DraftIssue"]) + + """ + The title of the draft issue. + """ + title: String +} + +""" +Autogenerated return type of UpdateProjectV2DraftIssue +""" +type UpdateProjectV2DraftIssuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The draft issue updated in the project. + """ + draftIssue: DraftIssue +} + +""" +Autogenerated input type of UpdateProjectV2 +""" +input UpdateProjectV2Input { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Set the project to closed or open. + """ + closed: Boolean + + """ + The ID of the Project to update. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + Set the project to public or private. + """ + public: Boolean + + """ + Set the readme description of the project. + """ + readme: String + + """ + Set the short description of the project. + """ + shortDescription: String + + """ + Set the title of the project. + """ + title: String +} + +""" +Autogenerated input type of UpdateProjectV2ItemFieldValue +""" +input UpdateProjectV2ItemFieldValueInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the field to be updated. + """ + fieldId: ID! + @possibleTypes( + concreteTypes: ["ProjectV2Field", "ProjectV2IterationField", "ProjectV2SingleSelectField"] + abstractType: "ProjectV2FieldConfiguration" + ) + + """ + The ID of the item to be updated. + """ + itemId: ID! @possibleTypes(concreteTypes: ["ProjectV2Item"]) + + """ + The ID of the Project. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) + + """ + The value which will be set on the field. + """ + value: ProjectV2FieldValue! +} + +""" +Autogenerated return type of UpdateProjectV2ItemFieldValue +""" +type UpdateProjectV2ItemFieldValuePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated item. + """ + projectV2Item: ProjectV2Item +} + +""" +Autogenerated input type of UpdateProjectV2ItemPosition +""" +input UpdateProjectV2ItemPositionInput { + """ + The ID of the item to position this item after. If omitted or set to null the item will be moved to top. + """ + afterId: ID @possibleTypes(concreteTypes: ["ProjectV2Item"]) + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the item to be moved. + """ + itemId: ID! @possibleTypes(concreteTypes: ["ProjectV2Item"]) + + """ + The ID of the Project. + """ + projectId: ID! @possibleTypes(concreteTypes: ["ProjectV2"]) +} + +""" +Autogenerated return type of UpdateProjectV2ItemPosition +""" +type UpdateProjectV2ItemPositionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The items in the new order + """ + items( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectV2ItemConnection +} + +""" +Autogenerated return type of UpdateProjectV2 +""" +type UpdateProjectV2Payload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated Project. + """ + projectV2: ProjectV2 +} + +""" +Autogenerated input type of UpdatePullRequestBranch +""" +input UpdatePullRequestBranchInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The head ref oid for the upstream branch. + """ + expectedHeadOid: GitObjectID + + """ + The Node ID of the pull request. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) + + """ + The update branch method to use. If omitted, defaults to 'MERGE' + """ + updateMethod: PullRequestBranchUpdateMethod +} + +""" +Autogenerated return type of UpdatePullRequestBranch +""" +type UpdatePullRequestBranchPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated pull request. + """ + pullRequest: PullRequest +} + +""" +Autogenerated input type of UpdatePullRequest +""" +input UpdatePullRequestInput { + """ + An array of Node IDs of users for this pull request. + """ + assigneeIds: [ID!] @possibleTypes(concreteTypes: ["User"]) + + """ + The name of the branch you want your changes pulled into. This should be an existing branch + on the current repository. + """ + baseRefName: String + + """ + The contents of the pull request. + """ + body: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + An array of Node IDs of labels for this pull request. + """ + labelIds: [ID!] @possibleTypes(concreteTypes: ["Label"]) + + """ + Indicates whether maintainers can modify the pull request. + """ + maintainerCanModify: Boolean + + """ + The Node ID of the milestone for this pull request. + """ + milestoneId: ID @possibleTypes(concreteTypes: ["Milestone"]) + + """ + An array of Node IDs for projects associated with this pull request. + """ + projectIds: [ID!] + + """ + The Node ID of the pull request. + """ + pullRequestId: ID! @possibleTypes(concreteTypes: ["PullRequest"]) + + """ + The target state of the pull request. + """ + state: PullRequestUpdateState + + """ + The title of the pull request. + """ + title: String +} + +""" +Autogenerated return type of UpdatePullRequest +""" +type UpdatePullRequestPayload { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated pull request. + """ + pullRequest: PullRequest +} + +""" +Autogenerated input type of UpdatePullRequestReviewComment +""" +input UpdatePullRequestReviewCommentInput { + """ + The text of the comment. + """ + body: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the comment to modify. + """ + pullRequestReviewCommentId: ID! @possibleTypes(concreteTypes: ["PullRequestReviewComment"]) +} + +""" +Autogenerated return type of UpdatePullRequestReviewComment +""" +type UpdatePullRequestReviewCommentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated comment. + """ + pullRequestReviewComment: PullRequestReviewComment +} + +""" +Autogenerated input type of UpdatePullRequestReview +""" +input UpdatePullRequestReviewInput { + """ + The contents of the pull request review body. + """ + body: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the pull request review to modify. + """ + pullRequestReviewId: ID! @possibleTypes(concreteTypes: ["PullRequestReview"]) +} + +""" +Autogenerated return type of UpdatePullRequestReview +""" +type UpdatePullRequestReviewPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated pull request review. + """ + pullRequestReview: PullRequestReview +} + +""" +Autogenerated input type of UpdateRef +""" +input UpdateRefInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Permit updates of branch Refs that are not fast-forwards? + """ + force: Boolean = false + + """ + The GitObjectID that the Ref shall be updated to target. + """ + oid: GitObjectID! + + """ + The Node ID of the Ref to be updated. + """ + refId: ID! @possibleTypes(concreteTypes: ["Ref"]) +} + +""" +Autogenerated return type of UpdateRef +""" +type UpdateRefPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated Ref. + """ + ref: Ref +} + +""" +Autogenerated input type of UpdateRefs +""" +input UpdateRefsInput @preview(toggledBy: "update-refs-preview") { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A list of ref updates. + """ + refUpdates: [RefUpdate!]! + + """ + The Node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) +} + +""" +Autogenerated return type of UpdateRefs +""" +type UpdateRefsPayload @preview(toggledBy: "update-refs-preview") { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String +} + +""" +Autogenerated input type of UpdateRepository +""" +input UpdateRepositoryInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A new description for the repository. Pass an empty string to erase the existing description. + """ + description: String + + """ + Indicates if the repository should have the discussions feature enabled. + """ + hasDiscussionsEnabled: Boolean + + """ + Indicates if the repository should have the issues feature enabled. + """ + hasIssuesEnabled: Boolean + + """ + Indicates if the repository should have the project boards feature enabled. + """ + hasProjectsEnabled: Boolean + + """ + Indicates if the repository should have the wiki feature enabled. + """ + hasWikiEnabled: Boolean + + """ + The URL for a web page about this repository. Pass an empty string to erase the existing URL. + """ + homepageUrl: URI + + """ + The new name of the repository. + """ + name: String + + """ + The ID of the repository to update. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + Whether this repository should be marked as a template such that anyone who + can access it can create new repositories with the same files and directory structure. + """ + template: Boolean +} + +""" +Autogenerated return type of UpdateRepository +""" +type UpdateRepositoryPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated repository. + """ + repository: Repository +} + +""" +Autogenerated input type of UpdateRepositoryRuleset +""" +input UpdateRepositoryRulesetInput { + """ + A list of actors that are allowed to bypass rules in this ruleset. + """ + bypassActors: [RepositoryRulesetBypassActorInput!] + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The list of conditions for this ruleset + """ + conditions: RepositoryRuleConditionsInput + + """ + The enforcement level for this ruleset + """ + enforcement: RuleEnforcement + + """ + The name of the ruleset. + """ + name: String + + """ + The global relay id of the repository ruleset to be updated. + """ + repositoryRulesetId: ID! @possibleTypes(concreteTypes: ["RepositoryRuleset"]) + + """ + The list of rules for this ruleset + """ + rules: [RepositoryRuleInput!] + + """ + The target of the ruleset. + """ + target: RepositoryRulesetTarget +} + +""" +Autogenerated return type of UpdateRepositoryRuleset +""" +type UpdateRepositoryRulesetPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The newly created Ruleset. + """ + ruleset: RepositoryRuleset +} + +""" +Autogenerated input type of UpdateRepositoryWebCommitSignoffSetting +""" +input UpdateRepositoryWebCommitSignoffSettingInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the repository to update. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + Indicates if the repository should require signoff on web-based commits. + """ + webCommitSignoffRequired: Boolean! +} + +""" +Autogenerated return type of UpdateRepositoryWebCommitSignoffSetting +""" +type UpdateRepositoryWebCommitSignoffSettingPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + A message confirming the result of updating the web commit signoff setting. + """ + message: String + + """ + The updated repository. + """ + repository: Repository +} + +""" +Autogenerated input type of UpdateSponsorshipPreferences +""" +input UpdateSponsorshipPreferencesInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Specify whether others should be able to see that the sponsor is sponsoring + the sponsorable. Public visibility still does not reveal which tier is used. + """ + privacyLevel: SponsorshipPrivacy = PUBLIC + + """ + Whether the sponsor should receive email updates from the sponsorable. + """ + receiveEmails: Boolean = true + + """ + The ID of the user or organization who is acting as the sponsor, paying for + the sponsorship. Required if sponsorLogin is not given. + """ + sponsorId: ID @possibleTypes(concreteTypes: ["Organization", "User"], abstractType: "Sponsor") + + """ + The username of the user or organization who is acting as the sponsor, paying + for the sponsorship. Required if sponsorId is not given. + """ + sponsorLogin: String + + """ + The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given. + """ + sponsorableId: ID @possibleTypes(concreteTypes: ["Organization", "User"], abstractType: "Sponsorable") + + """ + The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given. + """ + sponsorableLogin: String +} + +""" +Autogenerated return type of UpdateSponsorshipPreferences +""" +type UpdateSponsorshipPreferencesPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The sponsorship that was updated. + """ + sponsorship: Sponsorship +} + +""" +Autogenerated input type of UpdateSubscription +""" +input UpdateSubscriptionInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The new state of the subscription. + """ + state: SubscriptionState! + + """ + The Node ID of the subscribable object to modify. + """ + subscribableId: ID! + @possibleTypes( + concreteTypes: ["Commit", "Discussion", "Issue", "PullRequest", "Repository", "Team", "TeamDiscussion"] + abstractType: "Subscribable" + ) +} + +""" +Autogenerated return type of UpdateSubscription +""" +type UpdateSubscriptionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The input subscribable entity. + """ + subscribable: Subscribable +} + +""" +Autogenerated input type of UpdateTeamDiscussionComment +""" +input UpdateTeamDiscussionCommentInput { + """ + The updated text of the comment. + """ + body: String! + + """ + The current version of the body content. + """ + bodyVersion: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the comment to modify. + """ + id: ID! @possibleTypes(concreteTypes: ["TeamDiscussionComment"]) +} + +""" +Autogenerated return type of UpdateTeamDiscussionComment +""" +type UpdateTeamDiscussionCommentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated comment. + """ + teamDiscussionComment: TeamDiscussionComment +} + +""" +Autogenerated input type of UpdateTeamDiscussion +""" +input UpdateTeamDiscussionInput { + """ + The updated text of the discussion. + """ + body: String + + """ + The current version of the body content. If provided, this update operation + will be rejected if the given version does not match the latest version on the server. + """ + bodyVersion: String + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the discussion to modify. + """ + id: ID! @possibleTypes(concreteTypes: ["TeamDiscussion"]) + + """ + If provided, sets the pinned state of the updated discussion. + """ + pinned: Boolean + + """ + The updated title of the discussion. + """ + title: String +} + +""" +Autogenerated return type of UpdateTeamDiscussion +""" +type UpdateTeamDiscussionPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The updated discussion. + """ + teamDiscussion: TeamDiscussion +} + +""" +Autogenerated input type of UpdateTeamReviewAssignment +""" +input UpdateTeamReviewAssignmentInput @preview(toggledBy: "stone-crop-preview") { + """ + The algorithm to use for review assignment + """ + algorithm: TeamReviewAssignmentAlgorithm = ROUND_ROBIN + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Turn on or off review assignment + """ + enabled: Boolean! + + """ + An array of team member IDs to exclude + """ + excludedTeamMemberIds: [ID!] @possibleTypes(concreteTypes: ["User"]) + + """ + The Node ID of the team to update review assignments of + """ + id: ID! @possibleTypes(concreteTypes: ["Team"]) + + """ + Notify the entire team of the PR if it is delegated + """ + notifyTeam: Boolean = true + + """ + The number of team members to assign + """ + teamMemberCount: Int = 1 +} + +""" +Autogenerated return type of UpdateTeamReviewAssignment +""" +type UpdateTeamReviewAssignmentPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The team that was modified + """ + team: Team +} + +""" +Autogenerated input type of UpdateTeamsRepository +""" +input UpdateTeamsRepositoryInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Permission that should be granted to the teams. + """ + permission: RepositoryPermission! + + """ + Repository ID being granted access to. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + A list of teams being granted access. Limit: 10 + """ + teamIds: [ID!]! @possibleTypes(concreteTypes: ["Team"]) +} + +""" +Autogenerated return type of UpdateTeamsRepository +""" +type UpdateTeamsRepositoryPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The repository that was updated. + """ + repository: Repository + + """ + The teams granted permission on the repository. + """ + teams: [Team!] +} + +""" +Autogenerated input type of UpdateTopics +""" +input UpdateTopicsInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The Node ID of the repository. + """ + repositoryId: ID! @possibleTypes(concreteTypes: ["Repository"]) + + """ + An array of topic names. + """ + topicNames: [String!]! +} + +""" +Autogenerated return type of UpdateTopics +""" +type UpdateTopicsPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Names of the provided topics that are not valid. + """ + invalidTopicNames: [String!] + + """ + The updated repository. + """ + repository: Repository +} + +""" +A user is an individual's account on GitHub that owns repositories and can make new content. +""" +type User implements Actor & Node & PackageOwner & ProfileOwner & ProjectOwner & ProjectV2Owner & ProjectV2Recent & RepositoryDiscussionAuthor & RepositoryDiscussionCommentAuthor & RepositoryOwner & Sponsorable & UniformResourceLocatable { + """ + Determine if this repository owner has any items that can be pinned to their profile. + """ + anyPinnableItems( + """ + Filter to only a particular kind of pinnable item. + """ + type: PinnableItemType + ): Boolean! + + """ + A URL pointing to the user's public avatar. + """ + avatarUrl( + """ + The size of the resulting square image. + """ + size: Int + ): URI! + + """ + The user's public profile bio. + """ + bio: String + + """ + The user's public profile bio as HTML. + """ + bioHTML: HTML! + + """ + Could this user receive email notifications, if the organization had notification restrictions enabled? + """ + canReceiveOrganizationEmailsWhenNotificationsRestricted( + """ + The login of the organization to check. + """ + login: String! + ): Boolean! + + """ + A list of commit comments made by this user. + """ + commitComments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): CommitCommentConnection! + + """ + The user's public profile company. + """ + company: String + + """ + The user's public profile company as HTML. + """ + companyHTML: HTML! + + """ + The collection of contributions this user has made to different repositories. + """ + contributionsCollection( + """ + Only contributions made at this time or later will be counted. If omitted, defaults to a year ago. + """ + from: DateTime + + """ + The ID of the organization used to filter contributions. + """ + organizationID: ID + + """ + Only contributions made before and up to (including) this time will be + counted. If omitted, defaults to the current time or one year from the + provided from argument. + """ + to: DateTime + ): ContributionsCollection! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The user's publicly visible profile email. + """ + email: String! + + """ + The estimated next GitHub Sponsors payout for this user/organization in cents (USD). + """ + estimatedNextSponsorsPayoutInCents: Int! + + """ + A list of users the given user is followed by. + """ + followers( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): FollowerConnection! + + """ + A list of users the given user is following. + """ + following( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): FollowingConnection! + + """ + Find gist by repo name. + """ + gist( + """ + The gist name to find. + """ + name: String! + ): Gist + + """ + A list of gist comments made by this user. + """ + gistComments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): GistCommentConnection! + + """ + A list of the Gists the user has created. + """ + gists( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for gists returned from the connection + """ + orderBy: GistOrder + + """ + Filters Gists according to privacy. + """ + privacy: GistPrivacy + ): GistConnection! + + """ + True if this user/organization has a GitHub Sponsors listing. + """ + hasSponsorsListing: Boolean! + + """ + The hovercard information for this user in a given context + """ + hovercard( + """ + The ID of the subject to get the hovercard in the context of + """ + primarySubjectId: ID + ): Hovercard! + id: ID! + + """ + The interaction ability settings for this user. + """ + interactionAbility: RepositoryInteractionAbility + + """ + Whether or not this user is a participant in the GitHub Security Bug Bounty. + """ + isBountyHunter: Boolean! + + """ + Whether or not this user is a participant in the GitHub Campus Experts Program. + """ + isCampusExpert: Boolean! + + """ + Whether or not this user is a GitHub Developer Program member. + """ + isDeveloperProgramMember: Boolean! + + """ + Whether or not this user is a GitHub employee. + """ + isEmployee: Boolean! + + """ + Whether or not this user is following the viewer. Inverse of viewerIsFollowing + """ + isFollowingViewer: Boolean! + + """ + Whether or not this user is a member of the GitHub Stars Program. + """ + isGitHubStar: Boolean! + + """ + Whether or not the user has marked themselves as for hire. + """ + isHireable: Boolean! + + """ + Whether or not this user is a site administrator. + """ + isSiteAdmin: Boolean! + + """ + Whether the given account is sponsoring this user/organization. + """ + isSponsoredBy( + """ + The target account's login. + """ + accountLogin: String! + ): Boolean! + + """ + True if the viewer is sponsored by this user/organization. + """ + isSponsoringViewer: Boolean! + + """ + Whether or not this user is the viewing user. + """ + isViewer: Boolean! + + """ + A list of issue comments made by this user. + """ + issueComments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for issue comments returned from the connection. + """ + orderBy: IssueCommentOrder + ): IssueCommentConnection! + + """ + A list of issues associated with this user. + """ + issues( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Filtering options for issues returned from the connection. + """ + filterBy: IssueFilters + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + A list of label names to filter the pull requests by. + """ + labels: [String!] + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for issues returned from the connection. + """ + orderBy: IssueOrder + + """ + A list of states to filter the issues by. + """ + states: [IssueState!] + ): IssueConnection! + + """ + Showcases a selection of repositories and gists that the profile owner has + either curated or that have been selected automatically based on popularity. + """ + itemShowcase: ProfileItemShowcase! + + """ + The user's public profile location. + """ + location: String + + """ + The username used to login. + """ + login: String! + + """ + The estimated monthly GitHub Sponsors income for this user/organization in cents (USD). + """ + monthlyEstimatedSponsorsIncomeInCents: Int! + + """ + The user's public profile name. + """ + name: String + + """ + Find an organization by its login that the user belongs to. + """ + organization( + """ + The login of the organization to find. + """ + login: String! + ): Organization + + """ + Verified email addresses that match verified domains for a specified organization the user is a member of. + """ + organizationVerifiedDomainEmails( + """ + The login of the organization to match verified domains from. + """ + login: String! + ): [String!]! + + """ + A list of organizations the user belongs to. + """ + organizations( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the User's organizations. + """ + orderBy: OrganizationOrder = null + ): OrganizationConnection! + + """ + A list of packages under the owner. + """ + packages( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Find packages by their names. + """ + names: [String] + + """ + Ordering of the returned packages. + """ + orderBy: PackageOrder = {field: CREATED_AT, direction: DESC} + + """ + Filter registry package by type. + """ + packageType: PackageType + + """ + Find packages in a repository by ID. + """ + repositoryId: ID + ): PackageConnection! + + """ + A list of repositories and gists this profile owner can pin to their profile. + """ + pinnableItems( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter the types of pinnable items that are returned. + """ + types: [PinnableItemType!] + ): PinnableItemConnection! + + """ + A list of repositories and gists this profile owner has pinned to their profile + """ + pinnedItems( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter the types of pinned items that are returned. + """ + types: [PinnableItemType!] + ): PinnableItemConnection! + + """ + Returns how many more items this profile owner can pin to their profile. + """ + pinnedItemsRemaining: Int! + + """ + Find project by number. + """ + project( + """ + The project number to find. + """ + number: Int! + ): Project + + """ + Find a project by number. + """ + projectV2( + """ + The project number. + """ + number: Int! + ): ProjectV2 + + """ + A list of projects under the owner. + """ + projects( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for projects returned from the connection + """ + orderBy: ProjectOrder + + """ + Query to search projects by, currently only searching by name. + """ + search: String + + """ + A list of states to filter the projects by. + """ + states: [ProjectState!] + ): ProjectConnection! + + """ + The HTTP path listing user's projects + """ + projectsResourcePath: URI! + + """ + The HTTP URL listing user's projects + """ + projectsUrl: URI! + + """ + A list of projects under the owner. + """ + projectsV2( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + How to order the returned projects. + """ + orderBy: ProjectV2Order = {field: NUMBER, direction: DESC} + + """ + A project to search for under the the owner. + """ + query: String + ): ProjectV2Connection! + + """ + The user's profile pronouns + """ + pronouns: String + + """ + A list of public keys associated with this user. + """ + publicKeys( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): PublicKeyConnection! + + """ + A list of pull requests associated with this user. + """ + pullRequests( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + The base ref name to filter the pull requests by. + """ + baseRefName: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + The head ref name to filter the pull requests by. + """ + headRefName: String + + """ + A list of label names to filter the pull requests by. + """ + labels: [String!] + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for pull requests returned from the connection. + """ + orderBy: IssueOrder + + """ + A list of states to filter the pull requests by. + """ + states: [PullRequestState!] + ): PullRequestConnection! + + """ + Recent projects that this user has modified in the context of the owner. + """ + recentProjects( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectV2Connection! + + """ + A list of repositories that the user owns. + """ + repositories( + """ + Array of viewer's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + current viewer owns. + """ + affiliations: [RepositoryAffiliation] + + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + If non-null, filters repositories according to whether they have issues enabled + """ + hasIssuesEnabled: Boolean + + """ + If non-null, filters repositories according to whether they are archived and not maintained + """ + isArchived: Boolean + + """ + If non-null, filters repositories according to whether they are forks of another repository + """ + isFork: Boolean + + """ + If non-null, filters repositories according to whether they have been locked + """ + isLocked: Boolean + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for repositories returned from the connection + """ + orderBy: RepositoryOrder + + """ + Array of owner's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + organization or user being viewed owns. + """ + ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR] + + """ + If non-null, filters repositories according to privacy + """ + privacy: RepositoryPrivacy + ): RepositoryConnection! + + """ + A list of repositories that the user recently contributed to. + """ + repositoriesContributedTo( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + If non-null, include only the specified types of contributions. The + GitHub.com UI uses [COMMIT, ISSUE, PULL_REQUEST, REPOSITORY] + """ + contributionTypes: [RepositoryContributionType] + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + If non-null, filters repositories according to whether they have issues enabled + """ + hasIssues: Boolean + + """ + If true, include user repositories + """ + includeUserRepositories: Boolean + + """ + If non-null, filters repositories according to whether they have been locked + """ + isLocked: Boolean + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for repositories returned from the connection + """ + orderBy: RepositoryOrder + + """ + If non-null, filters repositories according to privacy + """ + privacy: RepositoryPrivacy + ): RepositoryConnection! + + """ + Find Repository. + """ + repository( + """ + Follow repository renames. If disabled, a repository referenced by its old name will return an error. + """ + followRenames: Boolean = true + + """ + Name of Repository to find. + """ + name: String! + ): Repository + + """ + Discussion comments this user has authored. + """ + repositoryDiscussionComments( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter discussion comments to only those that were marked as the answer + """ + onlyAnswers: Boolean = false + + """ + Filter discussion comments to only those in a specific repository. + """ + repositoryId: ID + ): DiscussionCommentConnection! + + """ + Discussions this user has started. + """ + repositoryDiscussions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Filter discussions to only those that have been answered or not. Defaults to + including both answered and unanswered discussions. + """ + answered: Boolean = null + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for discussions returned from the connection. + """ + orderBy: DiscussionOrder = {field: CREATED_AT, direction: DESC} + + """ + Filter discussions to only those in a specific repository. + """ + repositoryId: ID + + """ + A list of states to filter the discussions by. + """ + states: [DiscussionState!] = [] + ): DiscussionConnection! + + """ + The HTTP path for this user + """ + resourcePath: URI! + + """ + Replies this user has saved + """ + savedReplies( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + The field to order saved replies by. + """ + orderBy: SavedReplyOrder = {field: UPDATED_AT, direction: DESC} + ): SavedReplyConnection + + """ + The user's social media accounts, ordered as they appear on the user's profile. + """ + socialAccounts( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): SocialAccountConnection! + + """ + List of users and organizations this entity is sponsoring. + """ + sponsoring( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the users and organizations returned from the connection. + """ + orderBy: SponsorOrder = {field: RELEVANCE, direction: DESC} + ): SponsorConnection! + + """ + List of sponsors for this user or organization. + """ + sponsors( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for sponsors returned from the connection. + """ + orderBy: SponsorOrder = {field: RELEVANCE, direction: DESC} + + """ + If given, will filter for sponsors at the given tier. Will only return + sponsors whose tier the viewer is permitted to see. + """ + tierId: ID + ): SponsorConnection! + + """ + Events involving this sponsorable, such as new sponsorships. + """ + sponsorsActivities( + """ + Filter activities to only the specified actions. + """ + actions: [SponsorsActivityAction!] = [] + + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Whether to include those events where this sponsorable acted as the sponsor. + Defaults to only including events where this sponsorable was the recipient + of a sponsorship. + """ + includeAsSponsor: Boolean = false + + """ + Whether or not to include private activities in the result set. Defaults to including public and private activities. + """ + includePrivate: Boolean = true + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for activity returned from the connection. + """ + orderBy: SponsorsActivityOrder = {field: TIMESTAMP, direction: DESC} + + """ + Filter activities returned to only those that occurred in the most recent + specified time period. Set to ALL to avoid filtering by when the activity + occurred. Will be ignored if `since` or `until` is given. + """ + period: SponsorsActivityPeriod = MONTH + + """ + Filter activities to those that occurred on or after this time. + """ + since: DateTime + + """ + Filter activities to those that occurred before this time. + """ + until: DateTime + ): SponsorsActivityConnection! + + """ + The GitHub Sponsors listing for this user or organization. + """ + sponsorsListing: SponsorsListing + + """ + The sponsorship from the viewer to this user/organization; that is, the sponsorship where you're the sponsor. + """ + sponsorshipForViewerAsSponsor( + """ + Whether to return the sponsorship only if it's still active. Pass false to + get the viewer's sponsorship back even if it has been cancelled. + """ + activeOnly: Boolean = true + ): Sponsorship + + """ + The sponsorship from this user/organization to the viewer; that is, the sponsorship you're receiving. + """ + sponsorshipForViewerAsSponsorable( + """ + Whether to return the sponsorship only if it's still active. Pass false to + get the sponsorship back even if it has been cancelled. + """ + activeOnly: Boolean = true + ): Sponsorship + + """ + List of sponsorship updates sent from this sponsorable to sponsors. + """ + sponsorshipNewsletters( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for sponsorship updates returned from the connection. + """ + orderBy: SponsorshipNewsletterOrder = {field: CREATED_AT, direction: DESC} + ): SponsorshipNewsletterConnection! + + """ + The sponsorships where this user or organization is the maintainer receiving the funds. + """ + sponsorshipsAsMaintainer( + """ + Whether to include only sponsorships that are active right now, versus all + sponsorships this maintainer has ever received. + """ + activeOnly: Boolean = true + + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Whether or not to include private sponsorships in the result set + """ + includePrivate: Boolean = false + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for sponsorships returned from this connection. If left + blank, the sponsorships will be ordered based on relevancy to the viewer. + """ + orderBy: SponsorshipOrder + ): SponsorshipConnection! + + """ + The sponsorships where this user or organization is the funder. + """ + sponsorshipsAsSponsor( + """ + Whether to include only sponsorships that are active right now, versus all sponsorships this sponsor has ever made. + """ + activeOnly: Boolean = true + + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter sponsorships returned to those for the specified maintainers. That + is, the recipient of the sponsorship is a user or organization with one of + the given logins. + """ + maintainerLogins: [String!] + + """ + Ordering options for sponsorships returned from this connection. If left + blank, the sponsorships will be ordered based on relevancy to the viewer. + """ + orderBy: SponsorshipOrder + ): SponsorshipConnection! + + """ + Repositories the user has starred. + """ + starredRepositories( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Order for connection + """ + orderBy: StarOrder + + """ + Filters starred repositories to only return repositories owned by the viewer. + """ + ownedByViewer: Boolean + ): StarredRepositoryConnection! + + """ + The user's description of what they're currently doing. + """ + status: UserStatus + + """ + Repositories the user has contributed to, ordered by contribution rank, plus repositories the user has created + """ + topRepositories( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for repositories returned from the connection + """ + orderBy: RepositoryOrder! + + """ + How far back in time to fetch contributed repositories + """ + since: DateTime + ): RepositoryConnection! + + """ + The amount in United States cents (e.g., 500 = $5.00 USD) that this entity has + spent on GitHub to fund sponsorships. Only returns a value when viewed by the + user themselves or by a user who can manage sponsorships for the requested organization. + """ + totalSponsorshipAmountAsSponsorInCents( + """ + Filter payments to those that occurred on or after this time. + """ + since: DateTime + + """ + Filter payments to those made to the users or organizations with the specified usernames. + """ + sponsorableLogins: [String!] = [] + + """ + Filter payments to those that occurred before this time. + """ + until: DateTime + ): Int + + """ + The user's Twitter username. + """ + twitterUsername: String + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this user + """ + url: URI! + + """ + Can the viewer pin repositories and gists to the profile? + """ + viewerCanChangePinnedItems: Boolean! + + """ + Can the current viewer create new projects on this owner. + """ + viewerCanCreateProjects: Boolean! + + """ + Whether or not the viewer is able to follow the user. + """ + viewerCanFollow: Boolean! + + """ + Whether or not the viewer is able to sponsor this user/organization. + """ + viewerCanSponsor: Boolean! + + """ + Whether or not this user is followed by the viewer. Inverse of isFollowingViewer. + """ + viewerIsFollowing: Boolean! + + """ + True if the viewer is sponsoring this user/organization. + """ + viewerIsSponsoring: Boolean! + + """ + A list of repositories the given user is watching. + """ + watching( + """ + Affiliation options for repositories returned from the connection. If none + specified, the results will include repositories for which the current + viewer is an owner or collaborator, or member. + """ + affiliations: [RepositoryAffiliation] + + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + If non-null, filters repositories according to whether they have issues enabled + """ + hasIssuesEnabled: Boolean + + """ + If non-null, filters repositories according to whether they have been locked + """ + isLocked: Boolean + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for repositories returned from the connection + """ + orderBy: RepositoryOrder + + """ + Array of owner's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + organization or user being viewed owns. + """ + ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR] + + """ + If non-null, filters repositories according to privacy + """ + privacy: RepositoryPrivacy + ): RepositoryConnection! + + """ + A URL pointing to the user's public website/blog. + """ + websiteUrl: URI +} + +""" +The possible durations that a user can be blocked for. +""" +enum UserBlockDuration { + """ + The user was blocked for 1 day + """ + ONE_DAY + + """ + The user was blocked for 30 days + """ + ONE_MONTH + + """ + The user was blocked for 7 days + """ + ONE_WEEK + + """ + The user was blocked permanently + """ + PERMANENT + + """ + The user was blocked for 3 days + """ + THREE_DAYS +} + +""" +Represents a 'user_blocked' event on a given user. +""" +type UserBlockedEvent implements Node { + """ + Identifies the actor who performed the event. + """ + actor: Actor + + """ + Number of days that the user was blocked for. + """ + blockDuration: UserBlockDuration! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + id: ID! + + """ + The user who was blocked. + """ + subject: User +} + +""" +The connection type for User. +""" +type UserConnection { + """ + A list of edges. + """ + edges: [UserEdge] + + """ + A list of nodes. + """ + nodes: [User] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edit on user content +""" +type UserContentEdit implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the date and time when the object was deleted. + """ + deletedAt: DateTime + + """ + The actor who deleted this content + """ + deletedBy: Actor + + """ + A summary of the changes for this edit + """ + diff: String + + """ + When this content was edited + """ + editedAt: DateTime! + + """ + The actor who edited this content + """ + editor: Actor + id: ID! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! +} + +""" +A list of edits to content. +""" +type UserContentEditConnection { + """ + A list of edges. + """ + edges: [UserContentEditEdge] + + """ + A list of nodes. + """ + nodes: [UserContentEdit] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type UserContentEditEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: UserContentEdit +} + +""" +Represents a user. +""" +type UserEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: User +} + +""" +Email attributes from External Identity +""" +type UserEmailMetadata { + """ + Boolean to identify primary emails + """ + primary: Boolean + + """ + Type of email + """ + type: String + + """ + Email id + """ + value: String! +} + +""" +The user's description of what they're currently doing. +""" +type UserStatus implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + An emoji summarizing the user's status. + """ + emoji: String + + """ + The status emoji as HTML. + """ + emojiHTML: HTML + + """ + If set, the status will not be shown after this date. + """ + expiresAt: DateTime + id: ID! + + """ + Whether this status indicates the user is not fully available on GitHub. + """ + indicatesLimitedAvailability: Boolean! + + """ + A brief message describing what the user is doing. + """ + message: String + + """ + The organization whose members can see this status. If null, this status is publicly visible. + """ + organization: Organization + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The user who has this status. + """ + user: User! +} + +""" +The connection type for UserStatus. +""" +type UserStatusConnection { + """ + A list of edges. + """ + edges: [UserStatusEdge] + + """ + A list of nodes. + """ + nodes: [UserStatus] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type UserStatusEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: UserStatus +} + +""" +Ordering options for user status connections. +""" +input UserStatusOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order user statuses by. + """ + field: UserStatusOrderField! +} + +""" +Properties by which user status connections can be ordered. +""" +enum UserStatusOrderField { + """ + Order user statuses by when they were updated. + """ + UPDATED_AT +} + +""" +A domain that can be verified or approved for an organization or an enterprise. +""" +type VerifiableDomain implements Node { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The DNS host name that should be used for verification. + """ + dnsHostName: URI + + """ + The unicode encoded domain. + """ + domain: URI! + + """ + Whether a TXT record for verification with the expected host name was found. + """ + hasFoundHostName: Boolean! + + """ + Whether a TXT record for verification with the expected verification token was found. + """ + hasFoundVerificationToken: Boolean! + id: ID! + + """ + Whether or not the domain is approved. + """ + isApproved: Boolean! + + """ + Whether this domain is required to exist for an organization or enterprise policy to be enforced. + """ + isRequiredForPolicyEnforcement: Boolean! + + """ + Whether or not the domain is verified. + """ + isVerified: Boolean! + + """ + The owner of the domain. + """ + owner: VerifiableDomainOwner! + + """ + The punycode encoded domain. + """ + punycodeEncodedDomain: URI! + + """ + The time that the current verification token will expire. + """ + tokenExpirationTime: DateTime + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The current verification token for the domain. + """ + verificationToken: String +} + +""" +The connection type for VerifiableDomain. +""" +type VerifiableDomainConnection { + """ + A list of edges. + """ + edges: [VerifiableDomainEdge] + + """ + A list of nodes. + """ + nodes: [VerifiableDomain] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type VerifiableDomainEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: VerifiableDomain +} + +""" +Ordering options for verifiable domain connections. +""" +input VerifiableDomainOrder { + """ + The ordering direction. + """ + direction: OrderDirection! + + """ + The field to order verifiable domains by. + """ + field: VerifiableDomainOrderField! +} + +""" +Properties by which verifiable domain connections can be ordered. +""" +enum VerifiableDomainOrderField { + """ + Order verifiable domains by their creation date. + """ + CREATED_AT + + """ + Order verifiable domains by the domain name. + """ + DOMAIN +} + +""" +Types that can own a verifiable domain. +""" +union VerifiableDomainOwner = Enterprise | Organization + +""" +Autogenerated input type of VerifyVerifiableDomain +""" +input VerifyVerifiableDomainInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The ID of the verifiable domain to verify. + """ + id: ID! @possibleTypes(concreteTypes: ["VerifiableDomain"]) +} + +""" +Autogenerated return type of VerifyVerifiableDomain +""" +type VerifyVerifiableDomainPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The verifiable domain that was verified. + """ + domain: VerifiableDomain +} + +""" +A hovercard context with a message describing how the viewer is related. +""" +type ViewerHovercardContext implements HovercardContext { + """ + A string describing this context + """ + message: String! + + """ + An octicon to accompany this context + """ + octicon: String! + + """ + Identifies the user who is related to this context. + """ + viewer: User! +} + +""" +A subject that may be upvoted. +""" +interface Votable { + """ + Number of upvotes that this subject has received. + """ + upvoteCount: Int! + + """ + Whether or not the current user can add or remove an upvote on this subject. + """ + viewerCanUpvote: Boolean! + + """ + Whether or not the current user has already upvoted this subject. + """ + viewerHasUpvoted: Boolean! +} + +""" +A workflow contains meta information about an Actions workflow file. +""" +type Workflow implements Node & UniformResourceLocatable { + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + id: ID! + + """ + The name of the workflow. + """ + name: String! + + """ + The HTTP path for this workflow + """ + resourcePath: URI! + + """ + The runs of the workflow. + """ + runs( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Ordering options for the connection + """ + orderBy: WorkflowRunOrder = {field: CREATED_AT, direction: DESC} + ): WorkflowRunConnection! + + """ + The state of the workflow. + """ + state: WorkflowState! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this workflow + """ + url: URI! +} + +""" +A workflow run. +""" +type WorkflowRun implements Node & UniformResourceLocatable { + """ + The check suite this workflow run belongs to. + """ + checkSuite: CheckSuite! + + """ + Identifies the date and time when the object was created. + """ + createdAt: DateTime! + + """ + Identifies the primary key from the database. + """ + databaseId: Int + + """ + The log of deployment reviews + """ + deploymentReviews( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): DeploymentReviewConnection! + + """ + The event that triggered the workflow run + """ + event: String! + + """ + The workflow file + """ + file: WorkflowRunFile + id: ID! + + """ + The pending deployment requests of all check runs in this workflow run + """ + pendingDeploymentRequests( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): DeploymentRequestConnection! + + """ + The HTTP path for this workflow run + """ + resourcePath: URI! + + """ + A number that uniquely identifies this workflow run in its parent workflow. + """ + runNumber: Int! + + """ + Identifies the date and time when the object was last updated. + """ + updatedAt: DateTime! + + """ + The HTTP URL for this workflow run + """ + url: URI! + + """ + The workflow executed in this workflow run. + """ + workflow: Workflow! +} + +""" +The connection type for WorkflowRun. +""" +type WorkflowRunConnection { + """ + A list of edges. + """ + edges: [WorkflowRunEdge] + + """ + A list of nodes. + """ + nodes: [WorkflowRun] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + Identifies the total count of items in the connection. + """ + totalCount: Int! +} + +""" +An edge in a connection. +""" +type WorkflowRunEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: WorkflowRun +} + +""" +An executed workflow file for a workflow run. +""" +type WorkflowRunFile implements Node & UniformResourceLocatable { + id: ID! + + """ + The path of the workflow file relative to its repository. + """ + path: String! + + """ + The direct link to the file in the repository which stores the workflow file. + """ + repositoryFileUrl: URI! + + """ + The repository name and owner which stores the workflow file. + """ + repositoryName: URI! + + """ + The HTTP path for this workflow run file + """ + resourcePath: URI! + + """ + The parent workflow run execution for this file. + """ + run: WorkflowRun! + + """ + The HTTP URL for this workflow run file + """ + url: URI! + + """ + If the viewer has permissions to push to the repository which stores the workflow. + """ + viewerCanPushRepository: Boolean! + + """ + If the viewer has permissions to read the repository which stores the workflow. + """ + viewerCanReadRepository: Boolean! +} + +""" +Ways in which lists of workflow runs can be ordered upon return. +""" +input WorkflowRunOrder { + """ + The direction in which to order workflow runs by the specified field. + """ + direction: OrderDirection! + + """ + The field by which to order workflows. + """ + field: WorkflowRunOrderField! +} + +""" +Properties by which workflow run connections can be ordered. +""" +enum WorkflowRunOrderField { + """ + Order workflow runs by most recently created + """ + CREATED_AT +} + +""" +The possible states for a workflow. +""" +enum WorkflowState { + """ + The workflow is active. + """ + ACTIVE + + """ + The workflow was deleted from the git repository. + """ + DELETED + + """ + The workflow was disabled by default on a fork. + """ + DISABLED_FORK + + """ + The workflow was disabled for inactivity in the repository. + """ + DISABLED_INACTIVITY + + """ + The workflow was disabled manually. + """ + DISABLED_MANUALLY +} + +""" +A valid x509 certificate string +""" +scalar X509Certificate diff --git a/services/github/github/.eslintrc.js b/services/github/github/.eslintrc.js new file mode 100644 index 0000000000..72235dc283 --- /dev/null +++ b/services/github/github/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.json' + } +} diff --git a/services/github/github/.npmignore b/services/github/github/.npmignore new file mode 100644 index 0000000000..e3ec093c38 --- /dev/null +++ b/services/github/github/.npmignore @@ -0,0 +1,4 @@ +* +!/lib/** +!CHANGELOG.md +/lib/**/__tests__/ diff --git a/services/github/github/config/rig.json b/services/github/github/config/rig.json new file mode 100644 index 0000000000..0110930f55 --- /dev/null +++ b/services/github/github/config/rig.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig" +} diff --git a/services/github/github/jest.config.js b/services/github/github/jest.config.js new file mode 100644 index 0000000000..2cfd408b67 --- /dev/null +++ b/services/github/github/jest.config.js @@ -0,0 +1,7 @@ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'], + roots: ["./src"], + coverageReporters: ["text-summary", "html"] +} diff --git a/services/github/github/package.json b/services/github/github/package.json new file mode 100644 index 0000000000..d059292064 --- /dev/null +++ b/services/github/github/package.json @@ -0,0 +1,53 @@ +{ + "name": "@hcengineering/github", + "version": "0.6.0", + "main": "lib/index.js", + "svelte": "src/index.ts", + "types": "types/index.d.ts", + "files": [ + "lib/**/*", + "types/**/*", + "tsconfig.json" + ], + "author": "Hardcore Engineering Inc.", + "scripts": { + "build": "compile", + "build:watch": "compile", + "format": "format src", + "test": "jest --passWithNoTests --silent", + "_phase:build": "compile transpile src", + "_phase:test": "jest --passWithNoTests --silent", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-n": "^15.4.0", + "eslint": "^8.54.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "prettier": "^3.1.0", + "typescript": "^5.3.3", + "jest": "^29.7.0", + "ts-jest": "^29.1.1", + "@types/jest": "^29.5.5" + }, + "dependencies": { + "@hcengineering/core": "^0.6.32", + "@hcengineering/platform": "^0.6.11", + "@hcengineering/ui": "^0.6.15", + "@hcengineering/view": "^0.6.13", + "@hcengineering/contact": "^0.6.24", + "@hcengineering/chunter": "^0.6.20", + "@hcengineering/attachment": "^0.6.14", + "@hcengineering/task": "^0.6.20", + "@hcengineering/tracker": "^0.6.24", + "@hcengineering/tags": "^0.6.16", + "@hcengineering/preference": "^0.6.13", + "@hcengineering/activity": "^0.6.0", + "@hcengineering/time": "^0.6.0" + } +} diff --git a/services/github/github/src/index.ts b/services/github/github/src/index.ts new file mode 100644 index 0000000000..557b83a4d8 --- /dev/null +++ b/services/github/github/src/index.ts @@ -0,0 +1,605 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +import { ActivityMessage, ActivityMessageViewlet } from '@hcengineering/activity' +import { Attachment } from '@hcengineering/attachment' +import { Person } from '@hcengineering/contact' +import { + Account, + AnyAttribute, + AttachedDoc, + Class, + Data, + Doc, + Hyperlink, + Markup, + Mixin, + Ref, + Timestamp +} from '@hcengineering/core' +import { Asset, IntlString, Metadata, Plugin, plugin } from '@hcengineering/platform' +import { Preference } from '@hcengineering/preference' +import task, { ProjectTypeDescriptor, TaskStatusFactory, TaskTypeDescriptor } from '@hcengineering/task' +import { ToDo } from '@hcengineering/time' +import { Component, Issue, Milestone, Project } from '@hcengineering/tracker' +import { AnyComponent } from '@hcengineering/ui' +import { PaletteColorIndexes } from '@hcengineering/ui/src/colors' + +/** + * @public + * + * Define information about bi-directional synchronization with some other source. + */ +export interface DocSyncInfo extends Doc { + // _id === objectId + url: string + objectClass: Ref> + + lastGithubUser?: Ref | null + + // If repository is null, then document is not yet synced. + repository: Ref | null + external?: any // a raw data from external source, it should be mapped to platform document. + externalVersion?: string + externalCheckId?: string + + // Will contain derived state if required. + derivedVersion?: string + + current?: any // a current document being synchronized. + needSync: string // Will be updated by server trigger, in case of document changes of particular kind. + githubNumber: number + + lastModified?: number + + // Parent url + parent?: string + + // If set, issue is marked as deleted. + deleted?: boolean + + // In case of error will retry in certain amount of time. + error?: any + + [string: string]: any +} + +/** + * @public + */ +export interface GithubRepositoryRef { + name: string + id: string + prefix: string +} + +/** + * @public + */ +export interface GithubPullRequestFileReview { + fileName: string + sha: string +} + +/** + * @public + * + * Mixin with extra stuff for issues/pull requests related to github. + */ +export interface GithubIssue extends Issue { + // Github URL of the issue or Pull request + url: Hyperlink + githubNumber: number + repository: Ref + + // In case specified, description will be locked on editing until Allow edit button will be clicked on top bar. + // Button will also show a diff between a real data and updated markdown. + descriptionLocked?: boolean +} + +/** + * @public + * + * Mixin with extra stuff for todo's + */ +export interface GithubTodo extends ToDo { + // Github URL of the issue or Pull request + purpose: 'review' | 'fix' + + threadIds?: string[] +} + +/** + * @public + * + * Mixin to mark person as github enabled + */ +export interface GithubUser extends Person { + url: Hyperlink +} + +/** + * @public + * + * Mixin to manage github component to repository mapping. + */ +export interface GithubComponent extends Component { + repository: Ref + // If true, component represent repository and could not be removed/edited. + represent?: boolean +} + +/** + * @public + */ +export enum PullRequestMergeable { + MERGEABLE = 'MERGEABLE', + CONFLICTING = 'CONFLICTING', + UNKNOWN = 'UNKNOWN' +} + +export enum GithubPullRequestReviewState { + Pending, + Commented, + Approved, + ChangesRequested, + Dismissed +} + +export enum GithubPullRequestState { + open, + closed, + merged +} +export enum GithubReviewDecisionState { + ChangesRequested, + Approved, + ReviewRequired +} + +export interface LastReviewState { + user: Ref + state: GithubPullRequestReviewState +} +/** + * @public + */ +export interface GithubPullRequest extends Issue { + state: GithubPullRequestState + reviewDecision: GithubReviewDecisionState + + reviewers: Ref[] | null + + space: Ref + + head: GithubRepositoryRef + base: GithubRepositoryRef + + draft: boolean + + mergedAt: Timestamp | null + closedAt: Timestamp | null + + commits: number + + mergeable: PullRequestMergeable + + latestReviews: LastReviewState[] + + reviews: number + + reviewComments: number +} + +/** + * @public + */ +export interface GitRef { + url: string + sha: string +} + +/** + * @public + */ +export interface GithubPullRequestCommit extends AttachedDoc { + attachedTo: Ref + + sha: string + + author?: Ref + committer?: Ref + + message: string + + tree: GitRef + + verified: boolean + reason: string | null + signature: string | null + payload: string | null + + parents: GitRef[] +} + +/** + * @public + */ +export interface GithubReview extends ActivityMessage { + state: GithubPullRequestReviewState + body: Markup + + // Urls of comments + comments: string[] +} + +/** + * @public + */ +export interface GithubReviewViewlet extends ActivityMessageViewlet { + label?: IntlString +} + +export type MinimizeReason = 'abuse' | 'off-topic' | 'outdated' | 'resolved' | 'duplicate' | 'spam' + +/** + * @public + */ +export interface GithubPullRequestReview extends AttachedDoc { + attachedTo: Ref + + author: Ref + files: GithubPullRequestFileReview[] +} + +/** + * @public + */ +export interface GithubReviewThread extends ActivityMessage { + threadId: string + line: number + startLine: number + isOutdated: boolean + isResolved: boolean + diffSide: 'LEFT' | 'RIGHT' + isCollapsed: boolean + originalLine: number + originalStartLine: number | null + path: string + startDiffSide: 'LEFT' | 'RIGHT' | null + resolvedBy: Ref | null +} + +export interface GithubReviewComment extends AttachedDoc { + attachedTo: Ref // Attached to review thread. + url: string // Used to identify comment for review, etc. + reviewThreadId: string + reviewUrl: string // A review url. + + body: Markup + + outdated: boolean + + includesCreatedEdit: boolean + isMinimized: boolean + minimizedReason: MinimizeReason | null + + line: number | null + startLine: number | null + originalLine: number | null + originalStartLine: number | null + diffHunk: string | null + path: string + + replyToUrl?: string +} + +/** + * @public + */ +export interface GithubPatch extends Attachment {} + +/** + * @public + */ +export enum GithubIssueState { + Opened = 'open', + Closed = 'closed' +} +/** + * @public + */ +export enum GithubIssueStateReason { + Completed = 'COMPLETED', + Reopened = 'REOPENED', + NotPlanned = 'NOT_PLANNED' +} + +export interface IntegrationRepositoryData { + id: number + name: string + owner: GithubUserInfo + url: string + nodeId: string +} + +/** + * @public + */ +export interface GithubIntegrationRepository extends AttachedDoc { + name: string + repositoryId: number + deleted?: boolean + + // In case synchronization was configured. + githubProject?: Ref | null + + // Debug only + enabled: boolean + + id?: number + owner?: Data + url?: string + htmlURL?: string + nodeId?: string + + description?: string + fork: boolean + forks: number + private: boolean + stargazers: number + + hasIssues: boolean + hasProjects: boolean + hasDownloads: boolean + hasPages: boolean + hasWiki: boolean + hasDiscussions: boolean + + openIssues: number + watchers: number + + archived: boolean + + size: number + + language?: string + + visibility?: string + + updatedAt?: Timestamp + + resourcePath?: string +} + +/** + * @public + */ +export interface GithubIntegration extends Doc { + requestId?: string + // Unique identifier for the installation id, will be filled after installation redirect. + installationId: number + clientId: string + + // Technical details, will be filled by github integration service. + name: string // Organization or individual user name + nodeId: string + + // If alive, platform perform live synchronization of repository. + alive: boolean + + repositories: number + + // Organization or + type?: 'User' | 'Organization' | 'Bot' + byUser?: string +} +/** + * @public + */ +export interface GithubAuthentication extends Preference { + login: string + + avatar?: string + email?: string + bio?: string + blog?: string + company?: string + createdAt: Date + updatedAt: Date + followers: number + following: number + gravatarId?: string + location?: string + url: string + name?: string + nodeId: string + + repositories: number + openIssues: number + closedIssues: number + openPRs: number + mergedPRs: number + closedPRs: number + repositoryDiscussions: number + starredRepositories: number + + organizations: { + totalCount: number + nodes: { + url: string + avatarUrl: string | undefined + name: string | undefined + description: string | undefined + archivedAt: string | undefined + email: string | undefined + viewerIsAMember: boolean + updatedAt: string | undefined + descriptionHTML: string | undefined + location: string | undefined + websiteUrl: string | undefined + }[] + } + + error?: string | null + authRequestTime?: Timestamp +} + +/** + * @public + */ +export interface GithubUserInfo extends Doc { + login: string + id: string + email?: string + name?: string + avatarUrl?: string +} + +/** + * @public + */ +export interface GithubFieldMapping { + // Platform field + _id: Ref + name: string + _class: Ref> + + // Github information + githubId: string // It could be fieldName or fieldId +} + +/** + * @public + */ +export interface GithubProjectSyncData { + // Project NodeId + projectNodeId?: string + projectNumber?: number + + githubProjectName?: string + + // Mapping of all fields in this project. + mappings: GithubFieldMapping[] + + // Update mapping + githubUpdatedAt?: string +} + +/** + * @public + * + * Mixin to ordinary project, to allow github repository mapping into it. + */ +export interface GithubProject extends Project, GithubProjectSyncData { + integration: Ref + + // A list of mapped repositories we synchronized into this project. + repositories: Ref[] + + // Mixin to store all github custom attributes in + mixinClass: Ref> +} + +/** + * @public + * + * Mixin for milestone to represent a github project for it. + */ +export interface GithubMilestone extends Milestone, GithubProjectSyncData { + // A link to github project. + url: Hyperlink +} + +export interface GithubPullRequestReviewThread extends Doc { + githubId: string + line: number + startLine: number + isOutdated: boolean + isResolved: boolean + diffSide: 'LEFT' | 'RIGHT' + isCollapsed: boolean + originalLine: number + originalLineStart: number + path: string +} + +/** + * @public + */ + +export const githubPullRequestStates: TaskStatusFactory[] = [ + { category: task.statusCategory.Active, statuses: [['Review in progress', PaletteColorIndexes.Cerulean]] }, + { category: task.statusCategory.Won, statuses: [['Merged', PaletteColorIndexes.Grass]] }, + { category: task.statusCategory.Lost, statuses: [['Canceled', PaletteColorIndexes.Coin]] } +] + +export function makeQuery (obj: Record): string { + return Object.keys(obj) + .filter((it) => it[1] != null) + .map(function (k) { + return encodeURIComponent(k) + '=' + encodeURIComponent(obj[k] as string | number | boolean) + }) + .join('&') +} + +/** + * @public + */ +export const githubId = 'github' as Plugin + +export default plugin(githubId, { + class: { + DocSyncInfo: '' as Ref>, + GithubIntegration: '' as Ref>, + GithubPullRequest: '' as Ref>, + GithubAuthentication: '' as Ref>, + GithubIntegrationRepository: '' as Ref>, + GithubPatch: '' as Ref>, + GithubUserInfo: '' as Ref>, + + GithubPullRequestReview: '' as Ref>, + GithubReview: '' as Ref>, + GithubReviewThread: '' as Ref>, + GithubReviewComment: '' as Ref> + }, + mixin: { + GithubIssue: '' as Ref>, + GithubProject: '' as Ref>, + GithubMilestone: '' as Ref>, + GithubComponent: '' as Ref>, + GithubUser: '' as Ref>, + GithubTodo: '' as Ref> + }, + icon: { + Github: '' as Asset, + GithubRepository: '' as Asset, + PullRequest: '' as Asset, + PullRequestMerged: '' as Asset, + PullRequestClosed: '' as Asset, + Forks: '' as Asset + }, + component: { + ConnectApp: '' as AnyComponent + }, + metadata: { + GithubApplication: '' as Metadata, + GithubClientID: '' as Metadata, + GithubURL: '' as Metadata + }, + descriptors: { + PullRequest: '' as Ref, + GithubProject: '' as Ref + }, + string: { + Issue: '' as IntlString, + PullRequest: '' as IntlString, + IssueConnectedActivityInfo: '' as IntlString, + PullRequestConnectedActivityInfo: '' as IntlString, + PullRequestMergedActivityInfo: '' as IntlString, + AuthenticatedWithGithub: '' as IntlString, + AuthenticationRevokedGithub: '' as IntlString, + AuthenticatedWithGithubEmployee: '' as IntlString, + AuthenticatedWithGithubRequired: '' as IntlString + } +}) diff --git a/services/github/github/tsconfig.json b/services/github/github/tsconfig.json new file mode 100644 index 0000000000..59e4fd4297 --- /dev/null +++ b/services/github/github/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "./node_modules/@hcengineering/platform-rig/profiles/default/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "declarationDir": "./types", + "tsBuildInfoFile": ".build/build.tsbuildinfo" + } +} \ No newline at end of file diff --git a/services/github/model-github/.eslintrc.js b/services/github/model-github/.eslintrc.js new file mode 100644 index 0000000000..c1cf82cba0 --- /dev/null +++ b/services/github/model-github/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/model/eslint.config.json'], + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.json' + } +} diff --git a/services/github/model-github/.npmignore b/services/github/model-github/.npmignore new file mode 100644 index 0000000000..e3ec093c38 --- /dev/null +++ b/services/github/model-github/.npmignore @@ -0,0 +1,4 @@ +* +!/lib/** +!CHANGELOG.md +/lib/**/__tests__/ diff --git a/services/github/model-github/config/rig.json b/services/github/model-github/config/rig.json new file mode 100644 index 0000000000..2f6be36605 --- /dev/null +++ b/services/github/model-github/config/rig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig", + "rigProfile": "model" +} diff --git a/services/github/model-github/package.json b/services/github/model-github/package.json new file mode 100644 index 0000000000..20517f3ad7 --- /dev/null +++ b/services/github/model-github/package.json @@ -0,0 +1,62 @@ +{ + "name": "@hcengineering/model-github", + "version": "0.6.0", + "main": "lib/index.js", + "svelte": "src/index.ts", + "types": "types/index.d.ts", + "author": "Hardcore Engineering Inc.", + "template": "@hcengineering/model-package", + "scripts": { + "build": "compile", + "build:watch": "compile", + "format": "format src", + "_phase:build": "compile transpile src", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "@hcengineering/platform-rig": "^0.6.0", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-n": "^15.4.0", + "eslint": "^8.54.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "prettier": "^3.1.0", + "typescript": "^5.3.3" + }, + "dependencies": { + "@hcengineering/contact": "^0.6.24", + "@hcengineering/chunter": "^0.6.20", + "@hcengineering/core": "^0.6.32", + "@hcengineering/model": "^0.6.11", + "@hcengineering/model-activity": "^0.6.0", + "@hcengineering/model-attachment": "^0.6.0", + "@hcengineering/model-chunter": "^0.6.0", + "@hcengineering/model-contact": "^0.6.1", + "@hcengineering/model-core": "^0.6.0", + "@hcengineering/model-notification": "^0.6.0", + "@hcengineering/model-preference": "^0.6.0", + "@hcengineering/model-presentation": "^0.6.0", + "@hcengineering/model-task": "^0.6.0", + "@hcengineering/model-tracker": "^0.6.0", + "@hcengineering/model-view": "^0.6.0", + "@hcengineering/model-workbench": "^0.6.1", + "@hcengineering/notification": "^0.6.23", + "@hcengineering/activity": "^0.6.0", + "@hcengineering/platform": "^0.6.11", + "@hcengineering/preference": "^0.6.13", + "@hcengineering/setting": "^0.6.17", + "@hcengineering/tags": "^0.6.16", + "@hcengineering/task": "^0.6.20", + "@hcengineering/text": "^0.6.5", + "@hcengineering/tracker": "^0.6.24", + "@hcengineering/ui": "^0.6.15", + "@hcengineering/view": "^0.6.13", + "@hcengineering/github": "^0.6.0", + "@hcengineering/github-resources": "^0.6.0", + "@hcengineering/model-time": "^0.6.0", + "@hcengineering/time": "^0.6.0" + } +} diff --git a/services/github/model-github/src/index.ts b/services/github/model-github/src/index.ts new file mode 100644 index 0000000000..1f6832bb3b --- /dev/null +++ b/services/github/model-github/src/index.ts @@ -0,0 +1,1068 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// + +import { + ArrOf, + Collection, + Hidden, + Index, + Mixin, + Model, + Prop, + ReadOnly, + TypeAny, + TypeBoolean, + TypeDate, + TypeHyperlink, + TypeMarkup, + TypeNumber, + TypeRecord, + TypeRef, + TypeString, + UX, + type Builder +} from '@hcengineering/model' +import core, { TAttachedDoc, TDoc } from '@hcengineering/model-core' +import github from './plugin' + +import { + DateRangeMode, + IndexKind, + type Account, + type Class, + type Data, + type Doc, + type Domain, + type Hyperlink, + type Markup, + type Ref, + type Timestamp +} from '@hcengineering/core' + +import { type Person } from '@hcengineering/contact' +import contact, { TContact } from '@hcengineering/model-contact' +import presentation from '@hcengineering/model-presentation' +import tracker, { TComponent, TIssue, TMilestone, TProject, issuesOptions } from '@hcengineering/model-tracker' +import view, { classPresenter } from '@hcengineering/model-view' +import workbench from '@hcengineering/model-workbench' +import { getEmbeddedLabel } from '@hcengineering/platform' +import setting from '@hcengineering/setting' +import tags from '@hcengineering/tags' +import task from '@hcengineering/task' +import { + type DocSyncInfo, + type GithubAuthentication, + type GithubComponent, + type GithubFieldMapping, + type GithubIntegration, + type GithubIntegrationRepository, + type GithubIssue, + type GithubMilestone, + type GithubPatch, + type GithubProject, + type GithubPullRequest, + type GithubPullRequestFileReview, + type GithubPullRequestReview, + type GithubPullRequestReviewState, + type GithubPullRequestState, + type GithubRepositoryRef, + type GithubReview, + type GithubReviewComment, + type GithubReviewDecisionState, + type GithubReviewThread, + type GithubTodo, + type GithubUser, + type GithubUserInfo, + type LastReviewState, + type MinimizeReason, + type PullRequestMergeable +} from '@hcengineering/github' + +import { generateClassNotificationTypes } from '@hcengineering/model-notification' + +import { type ActivityMessageControl } from '@hcengineering/activity' +import activity, { TActivityMessage } from '@hcengineering/model-activity' +import attachment, { TAttachment } from '@hcengineering/model-attachment' +import chunter from '@hcengineering/model-chunter' +import { TPreference } from '@hcengineering/model-preference' +import { TToDO } from '@hcengineering/model-time' +import notification from '@hcengineering/notification' +import { DOMAIN_PREFERENCE } from '@hcengineering/preference' +import time from '@hcengineering/time' + +export { githubId } from '@hcengineering/github' +export { githubOperation, githubOperationPreTime } from './migration' +export { default } from './plugin' +export const DOMAIN_GITHUB = 'github' as Domain +export const DOMAIN_GITHUB_COMMENTS = 'github_comments' as Domain + +@Model(github.class.DocSyncInfo, core.class.Doc, DOMAIN_GITHUB) +export class TDocSyncInfo extends TDoc implements DocSyncInfo { + // _id === objectId + @Prop(TypeNumber(), getEmbeddedLabel('Github number')) + @ReadOnly() + @Index(IndexKind.Indexed) + githubNumber!: number + + @Prop(TypeString(), getEmbeddedLabel('URL')) + @ReadOnly() + @Index(IndexKind.Indexed) + url!: string + + @Prop(TypeString(), getEmbeddedLabel('Parent URL')) + @ReadOnly() + @Index(IndexKind.Indexed) + parent!: string + + @Prop(TypeNumber(), getEmbeddedLabel('ID')) + @ReadOnly() + id!: number + + @Prop(TypeString(), getEmbeddedLabel('ObjectClass')) + @ReadOnly() + @Index(IndexKind.Indexed) + objectClass!: Ref> + + external!: Record + + @Prop(TypeString(), getEmbeddedLabel('Sync request')) + @ReadOnly() + @Index(IndexKind.Indexed) + needSync!: string + + @Prop(TypeString(), getEmbeddedLabel('External Sync request')) + @ReadOnly() + @Index(IndexKind.Indexed) + externalVersion!: string + + @Prop(TypeString(), getEmbeddedLabel('Derived request')) + @ReadOnly() + @Index(IndexKind.Indexed) + derivedVersion!: string + + @Prop(TypeRef(github.class.GithubIntegrationRepository), getEmbeddedLabel('Repository')) + @ReadOnly() + @Index(IndexKind.Indexed) + repository!: Ref | null + + @Prop(TypeString(), getEmbeddedLabel('Deleted flag')) + @ReadOnly() + @Index(IndexKind.Indexed) + deleted!: boolean +} + +@Model(github.class.GithubUserInfo, core.class.Doc, DOMAIN_GITHUB) +export class TGithubUserInfo extends TDoc implements GithubUserInfo { + @Prop(TypeString(), getEmbeddedLabel('ID')) + @ReadOnly() + id!: string + + @Prop(TypeString(), getEmbeddedLabel('login')) + @ReadOnly() + @Index(IndexKind.Indexed) + login!: string + + @Prop(TypeString(), getEmbeddedLabel('email')) + @ReadOnly() + @Index(IndexKind.Indexed) + email!: string + + @Prop(TypeString(), getEmbeddedLabel('name')) + @ReadOnly() + name!: string + + @Prop(TypeString(), getEmbeddedLabel('avatarUrl')) + @ReadOnly() + avatarUrl!: string +} + +@Model(github.class.GithubIntegration, core.class.Doc, DOMAIN_GITHUB) +@UX(github.string.Integrations) +export class TGithubIntegration extends TDoc implements GithubIntegration { + // Unique identifier for the installation id, will be filled after installation redirect. + installationId!: number + clientId!: string + + // Technical details, will be filled by github integration service. + @Prop(TypeString(), getEmbeddedLabel('Name')) + @ReadOnly() + name!: string // Organization or individual user name + + nodeId!: string + + @Prop(TypeBoolean(), getEmbeddedLabel('Alive')) + @ReadOnly() + alive!: boolean + + @Prop(Collection(github.class.GithubIntegrationRepository), getEmbeddedLabel('Repositories')) + @ReadOnly() + repositories!: number + + @Prop(TypeBoolean(), getEmbeddedLabel('User Project')) + useProject!: boolean +} + +@Model(github.class.GithubIntegrationRepository, core.class.AttachedDoc, DOMAIN_GITHUB) +export class TGithubIntegrationRepository extends TAttachedDoc implements GithubIntegrationRepository { + @Prop(TypeString(), getEmbeddedLabel('Name')) + @ReadOnly() + name!: string + + @Prop(TypeNumber(), getEmbeddedLabel('Repository ID')) + @ReadOnly() + repositoryId!: number + + @Prop(TypeBoolean(), getEmbeddedLabel('Alive')) + @ReadOnly() + enabled!: boolean + + @Prop(TypeRef(github.mixin.GithubProject), getEmbeddedLabel('Repository')) + @ReadOnly() + githubProject!: Ref | null + + @Prop(TypeNumber(), getEmbeddedLabel('ID')) + @ReadOnly() + id?: number + + @Prop(TypeRecord(), getEmbeddedLabel('Owner')) + @ReadOnly() + owner?: Data + + @Prop(TypeString(), getEmbeddedLabel('URL')) + @ReadOnly() + url?: string + + @Prop(TypeString(), getEmbeddedLabel('HTMLURL')) + @ReadOnly() + htmlURL?: string + + @Prop(TypeString(), getEmbeddedLabel('NodeID')) + @ReadOnly() + nodeId?: string + + @Prop(TypeString(), getEmbeddedLabel('Description')) + @ReadOnly() + description?: string + + @Prop(TypeBoolean(), getEmbeddedLabel('Is Fork')) + @ReadOnly() + fork!: boolean + + @Prop(TypeNumber(), getEmbeddedLabel('Forks')) + @ReadOnly() + forks!: number + + @Prop(TypeBoolean(), getEmbeddedLabel('Private')) + @ReadOnly() + private!: boolean + + @Prop(TypeNumber(), getEmbeddedLabel('Stars')) + @ReadOnly() + stargazers!: number + + @Prop(TypeBoolean(), getEmbeddedLabel('Has Issues')) + @ReadOnly() + hasIssues!: boolean + + @Prop(TypeBoolean(), getEmbeddedLabel('Has Projects')) + @ReadOnly() + hasProjects!: boolean + + @Prop(TypeBoolean(), getEmbeddedLabel('Has Downloads')) + @ReadOnly() + hasDownloads!: boolean + + @Prop(TypeBoolean(), getEmbeddedLabel('Has Pages')) + @ReadOnly() + hasPages!: boolean + + @Prop(TypeBoolean(), getEmbeddedLabel('Has Wiki')) + @ReadOnly() + hasWiki!: boolean + + @Prop(TypeBoolean(), getEmbeddedLabel('Has Discussions')) + @ReadOnly() + hasDiscussions!: boolean + + @Prop(TypeNumber(), getEmbeddedLabel('Open Issues')) + @ReadOnly() + openIssues!: number + + @Prop(TypeNumber(), getEmbeddedLabel('Watchers')) + @ReadOnly() + watchers!: number + + @Prop(TypeBoolean(), getEmbeddedLabel('Archived')) + @ReadOnly() + archived!: boolean + + @Prop(TypeNumber(), getEmbeddedLabel('Size')) + @ReadOnly() + size!: number + + @Prop(TypeString(), getEmbeddedLabel('Language')) + @ReadOnly() + language?: string + + @Prop(TypeString(), getEmbeddedLabel('Visibility')) + @ReadOnly() + visibility?: string +} + +@Model(github.class.GithubAuthentication, core.class.Doc, DOMAIN_PREFERENCE) +export class TGithubAuthentication extends TPreference implements GithubAuthentication { + code!: string + token!: string + expiresIn!: number // seconds + refreshToken!: string + refreshTokenExpiresIn!: number + login!: string + authorized!: boolean + state!: string + scope!: string + error!: string | null + + avatar!: string + email!: string + bio!: string + blog!: string + company!: string + createdAt!: Date + updatedAt!: Date + followers!: number + following!: number + gravatarId!: string + location!: string + url!: string + name!: string + nodeId!: string + + repositories!: number + openIssues!: number + closedIssues!: number + openPRs!: number + mergedPRs!: number + closedPRs!: number + repositoryDiscussions!: number + starredRepositories!: number + + organizations!: GithubAuthentication['organizations'] +} + +@Mixin(github.mixin.GithubProject, tracker.class.Project) +@UX(github.string.Repository) +export class TGithubProject extends TProject implements GithubProject { + @Prop(TypeRef(github.class.GithubIntegration), getEmbeddedLabel('Integration')) + @ReadOnly() + integration!: Ref + + @Prop(ArrOf(TypeRef(github.class.GithubIntegrationRepository)), getEmbeddedLabel('Repositories')) + @ReadOnly() + repositories!: Ref[] + + @Prop(TypeString(), getEmbeddedLabel('NodeID')) + @ReadOnly() + projectNodeId!: string + + @Prop(TypeNumber(), getEmbeddedLabel('Number')) + @ReadOnly() + projectNumber!: number + + @Prop(TypeRef(core.class.Class), getEmbeddedLabel('Attribute Class')) + @ReadOnly() + mixinClass!: Ref> + + @Prop(ArrOf(TypeRecord()), getEmbeddedLabel('Field mappings')) + // Mapping of all fields in this project. + mappings!: GithubFieldMapping[] +} + +@Mixin(github.mixin.GithubIssue, tracker.class.Issue) +@UX(github.string.GithubIssue, github.icon.Github) +export class TGithubIssue extends TIssue implements GithubIssue { + @Prop(TypeHyperlink(), getEmbeddedLabel('Github URL')) + @Index(IndexKind.FullText) + @ReadOnly() + @Hidden() + url!: Hyperlink + + @Prop(TypeNumber(), tracker.string.Number) + @Index(IndexKind.FullText) + @ReadOnly() + @Hidden() + githubNumber!: number + + @Prop(TypeRef(github.class.GithubIntegrationRepository), getEmbeddedLabel('Repository')) + repository!: Ref +} + +@Mixin(github.mixin.GithubTodo, time.class.ToDo) +export class TGithubTodo extends TToDO implements GithubTodo { + purpose!: 'review' | 'fix' +} + +@Mixin(github.mixin.GithubUser, contact.class.Contact) +@UX(github.string.GithubUser, github.icon.Github) +export class TGithubUser extends TContact implements GithubUser { + @Prop(TypeHyperlink(), getEmbeddedLabel('Github URL')) + @Index(IndexKind.FullText) + @ReadOnly() + url!: Hyperlink +} + +@Mixin(github.mixin.GithubComponent, tracker.class.Component) +@UX(github.string.Repository, github.icon.Github) +export class TGithubComponent extends TComponent implements GithubComponent { + @Prop(TypeRef(github.class.GithubIntegrationRepository), getEmbeddedLabel('Repository')) + @ReadOnly() + @Hidden() + repository!: Ref + + @Prop(TypeBoolean(), getEmbeddedLabel('Represent')) + @ReadOnly() + @Hidden() + represent!: boolean +} + +@Mixin(github.mixin.GithubMilestone, tracker.class.Milestone) +@UX(github.string.GithubIssue) +export class TGithubMilestone extends TMilestone implements GithubMilestone { + @Prop(TypeHyperlink(), getEmbeddedLabel('Github URL')) + @Index(IndexKind.FullText) + @ReadOnly() + url!: Hyperlink + + @Prop(TypeString(), getEmbeddedLabel('NodeID')) + @ReadOnly() + projectNodeId!: string + + @Prop(TypeNumber(), getEmbeddedLabel('Number')) + @ReadOnly() + projectNumber!: number + + @Prop(ArrOf(TypeRecord()), getEmbeddedLabel('Field mappings')) + // Mapping of all fields in this project. + mappings!: GithubFieldMapping[] +} + +@Model(github.class.GithubPullRequest, tracker.class.Issue) +@UX(github.string.PullRequest, github.icon.PullRequest, undefined, undefined, undefined, github.string.PullRequests) +export class TGithubPullRequest extends TIssue implements GithubPullRequest { + @Prop(ArrOf(TypeRef(contact.class.Person)), getEmbeddedLabel('Reviewers')) + reviewers!: Ref[] | null + + @Prop(TypeRef(tracker.class.Project), tracker.string.Project, { icon: tracker.icon.Issues }) + @Index(IndexKind.Indexed) + @ReadOnly() + declare space: Ref + + head!: GithubRepositoryRef + base!: GithubRepositoryRef + + @Prop(TypeBoolean(), github.string.PRDraft) + @ReadOnly() + draft!: boolean + + @Prop(TypeDate(DateRangeMode.DATETIME), github.string.PRMergedAt) + @ReadOnly() + mergedAt!: Timestamp | null + + @Prop(TypeDate(DateRangeMode.DATETIME), github.string.PRClosedAt) + @ReadOnly() + closedAt!: Timestamp | null + + @Prop(TypeNumber(), github.string.PRFile) + @ReadOnly() + @Hidden() + files!: number + + @Prop(TypeNumber(), github.string.PRCommit) + @ReadOnly() + commits!: number + + @Prop(TypeAny(github.component.MergeableValuePresenter, github.string.Mergeable), github.string.Mergeable) + @ReadOnly() + mergeable!: PullRequestMergeable + + @Prop( + TypeAny(github.component.PullRequestStateValuePresenter, github.string.PullRequestMergeState), + github.string.PullRequestMergeState + ) + @ReadOnly() + state!: GithubPullRequestState + + @Prop( + TypeAny(github.component.PullRequestReviewDecisionValuePresenter, github.string.PullRequestReviewDecision), + github.string.PullRequestReviewDecision + ) + @ReadOnly() + @Hidden() + reviewDecision!: GithubReviewDecisionState + + latestReviews!: LastReviewState[] + + @Prop(Collection(github.class.GithubPullRequestReview), github.string.PRReview) + @Hidden() + reviews!: number + + @Prop(Collection(github.class.GithubReviewComment), getEmbeddedLabel('Review Comments')) + @Hidden() + reviewComments!: number +} + +@Model(github.class.GithubPullRequestReview, core.class.AttachedDoc, DOMAIN_GITHUB) +export class TGithubPullRequestReview extends TAttachedDoc implements GithubPullRequestReview { + declare attachedTo: Ref + + author!: Ref + files!: GithubPullRequestFileReview[] +} + +@Model(github.class.GithubReview, activity.class.ActivityMessage) +export class TGithubReview extends TActivityMessage implements GithubReview { + @Prop(TypeString(), getEmbeddedLabel('State')) + state!: GithubPullRequestReviewState + + @Prop(TypeMarkup(), getEmbeddedLabel('Body')) + body!: Markup + + @Prop(ArrOf(TypeString()), getEmbeddedLabel('Comment refs')) + // Urls of comments + comments!: string[] +} + +@Model(github.class.GithubReviewThread, activity.class.ActivityMessage) +export class TGithubReviewThread extends TActivityMessage implements GithubReviewThread { + line!: number + startLine!: number + isOutdated!: boolean + isResolved!: boolean + diffSide!: 'LEFT' | 'RIGHT' + isCollapsed!: boolean + originalLine!: number + originalStartLine!: number | null + path!: string + startDiffSide!: 'LEFT' | 'RIGHT' | null + resolvedBy!: Ref | null + threadId!: string +} + +@Model(github.class.GithubReviewComment, core.class.AttachedDoc, DOMAIN_GITHUB_COMMENTS) +@UX(getEmbeddedLabel('Review Comment')) +export class TGithubReviewComment extends TAttachedDoc implements GithubReviewComment { + reviewThreadId!: string + declare attachedTo: Ref // Attached to review thread. + url!: string // Used to identify comment for review, etc. + reviewUrl!: string // A review url. + + @Prop(TypeMarkup(), getEmbeddedLabel('Body')) + body!: Markup + + outdated!: boolean + + includesCreatedEdit!: boolean + isMinimized!: boolean + minimizedReason!: MinimizeReason + + line!: number | null + startLine!: number | null + originalLine!: number | null + originalStartLine!: number | null + diffHunk!: string | null + path!: string + + replyToUrl!: string +} + +@Model(github.class.GithubPatch, attachment.class.Attachment) +export class TGithubPatch extends TAttachment implements GithubPatch {} + +export function createModel (builder: Builder): void { + builder.createModel( + TDocSyncInfo, + TGithubIssue, + TGithubIntegration, + TGithubProject, + TGithubPullRequest, + TGithubPullRequestReview, + TGithubReview, + TGithubReviewThread, + TGithubReviewComment, + TGithubAuthentication, + TGithubIntegrationRepository, + TGithubPatch, + TGithubUserInfo, + TGithubMilestone, + TGithubComponent, + TGithubUser, + TGithubTodo + ) + + builder.createDoc( + setting.class.IntegrationType, + core.space.Model, + { + label: github.string.Github, + description: github.string.GithubDesc, + icon: github.component.GithubIcon, + allowMultiple: false, + createComponent: github.component.Connect, + configureComponent: github.component.Configure + }, + github.integrationType.Github + ) + + builder.mixin(github.class.GithubPullRequest, core.class.Class, view.mixin.ObjectPresenter, { + presenter: github.component.PullRequestPresenter + }) + + builder.mixin(github.class.GithubPullRequest, core.class.Class, activity.mixin.ActivityDoc, {}) + + classPresenter( + builder, + github.class.GithubIntegrationRepository, + github.component.RepositoryPresenterRef, + github.component.RepositoryPresenterRefEditor + ) + + builder.mixin(github.mixin.GithubIssue, core.class.Class, view.mixin.ObjectPresenter, { + presenter: github.component.GithubIssuePresenter + }) + + builder.mixin(github.class.GithubIntegrationRepository, core.class.Class, view.mixin.ObjectPresenter, { + presenter: github.component.RepositoryPresenter + }) + + builder.mixin(github.class.GithubPullRequest, core.class.Class, notification.mixin.NotificationObjectPresenter, { + presenter: github.component.PullRequestNotificationPresenter + }) + + builder.mixin(github.class.GithubPullRequest, core.class.Class, view.mixin.ObjectEditorFooter, { + editor: github.component.EditPullRequest + }) + + builder.mixin(github.class.GithubPullRequest, core.class.Class, notification.mixin.ClassCollaborators, { + fields: ['createdBy', 'assignee', 'reviewers'] + }) + + builder.createDoc(presentation.class.DocCreateExtension, core.space.Model, { + ofClass: tracker.class.Issue, + apply: github.functions.UpdateIssue, + components: { + createButton: github.component.GithubIssueInfoHeader + } + }) + + builder.createDoc( + view.class.Viewlet, + core.space.Model, + { + attachTo: github.class.GithubPullRequest, // Since it extends class, configuration will be merged with Issues;s one. + descriptor: view.viewlet.List, + viewOptions: issuesOptions(false), + configOptions: { + strict: true, + hiddenKeys: [ + 'title', + 'blockedBy', + 'relations', + 'description', + 'number', + 'reportedTime', + 'reports', + 'priority', + 'component', + 'milestone', + 'estimation', + 'remainingTime', + 'status', + 'dueDate', + 'attachedTo', + 'createdBy', + 'modifiedBy' + ] + }, + config: [ + { + key: '', + label: tracker.string.Priority, + presenter: tracker.component.PriorityEditor, + props: { type: 'priority', kind: 'list', size: 'small' }, + displayProps: { key: 'priority' } + }, + { + key: '', + label: tracker.string.Identifier, + presenter: tracker.component.IssuePresenter, + displayProps: { key: 'issue', fixed: 'left' } + }, + { + key: '', + label: tracker.string.Status, + presenter: tracker.component.StatusEditor, + props: { kind: 'list', size: 'small', justify: 'center' }, + displayProps: { key: 'status' } + }, + { + key: '', + label: github.string.Mergeable, + presenter: github.component.PullRequestMergeState, + props: { small: true }, + displayProps: { key: 'merge_state' } + }, + { + key: '', + label: tracker.string.Title, + presenter: github.component.TitlePresenter, + props: { shouldUseMargin: true, showParent: false }, + displayProps: { key: 'title' } + }, + { + key: '', + label: tracker.string.SubIssues, + presenter: tracker.component.SubIssuesSelector, + props: {} + }, + { key: 'comments', displayProps: { key: 'comments', suffix: true } }, + { key: 'attachments', displayProps: { key: 'attachments', suffix: true } }, + { key: '', displayProps: { grow: true } }, + { + key: 'labels', + presenter: tags.component.LabelsPresenter, + displayProps: { compression: true }, + props: { kind: 'list', full: false } + }, + { + key: '', + label: getEmbeddedLabel('*'), + presenter: tracker.component.IssueExtra, + displayProps: { compression: true }, + props: { kind: 'list', full: false } + }, + { + key: '', + label: tracker.string.Milestone, + presenter: tracker.component.MilestoneEditor, + props: { + kind: 'list', + size: 'small', + shouldShowPlaceholder: false + }, + displayProps: { + key: 'milestone', + excludeByKey: 'milestone', + compression: true + } + }, + { + key: '', + label: tracker.string.Component, + presenter: tracker.component.ComponentEditor, + props: { + kind: 'list', + size: 'small', + shouldShowPlaceholder: false + }, + displayProps: { + key: 'component', + excludeByKey: 'component', + compression: true + } + }, + { + key: '', + label: tracker.string.DueDate, + presenter: tracker.component.DueDatePresenter, + displayProps: { key: 'dueDate', compression: true }, + props: { kind: 'list' } + }, + { + key: '', + label: tracker.string.Estimation, + presenter: tracker.component.EstimationEditor, + props: { kind: 'list', size: 'small' }, + displayProps: { key: 'estimation', fixed: 'left', dividerBefore: true, optional: true } + }, + { + key: 'modifiedOn', + presenter: tracker.component.ModificationDatePresenter, + displayProps: { key: 'submodified', fixed: 'left', dividerBefore: true } + }, + { + key: '', + presenter: tracker.component.AssigneeEditor, + displayProps: { key: 'assignee', fixed: 'right' }, + props: { kind: 'list', shouldShowName: false, avatarSize: 'x-small' } + } + ], + options: { + lookup: { + space: tracker.class.Project + } + } + }, + github.viewlet.PullRequests + ) + + builder.createDoc(workbench.class.ApplicationNavModel, core.space.Model, { + extends: tracker.app.Tracker, + spaces: [ + { + id: 'projects', + spaceClass: tracker.class.Project, + specials: [ + { + id: 'pulls', + label: github.string.PullRequests, + icon: tracker.icon.Issue, + visibleIf: github.functions.ShowForRepositoryOnly, + component: github.component.PullRequests, + componentProps: { + title: github.string.PullRequests, + config: [ + ['all', github.string.All, {}], + ['active', github.string.Active, {}], + ['closed', github.string.Closed, {}] + ] + } + } + ] + } + ] + }) + + builder.createDoc( + notification.class.NotificationGroup, + core.space.Model, + { + label: github.string.Github, + icon: github.icon.Github, + objectClass: github.class.GithubPullRequest + }, + github.ids.GithubNotificationGroup + ) + + builder.createDoc( + notification.class.NotificationType, + core.space.Model, + { + hidden: false, + generated: false, + label: task.string.AssignedToMe, + group: github.ids.GithubNotificationGroup, + field: 'assignee', + txClasses: [core.class.TxCreateDoc, core.class.TxUpdateDoc], + objectClass: github.class.GithubPullRequest, + templates: { + textTemplate: 'Pull request {doc} was assigned to you by {sender}', + htmlTemplate: '

Pull request {doc} was assigned to you by {sender}

', + subjectTemplate: 'Pull request {doc} was assigned to you' + }, + defaultEnabled: true + }, + github.ids.AssigneeNotification + ) + + generateClassNotificationTypes( + builder, + github.class.GithubPullRequest, + github.ids.GithubNotificationGroup, + [], + ['comments', 'status', 'assignee', 'milestone'] + ) + + builder.createDoc(presentation.class.ComponentPointExtension, core.space.Model, { + extension: tracker.extensions.IssueListHeader, + component: github.component.AuthenticationCheck + }) + + builder.createDoc(presentation.class.ComponentPointExtension, core.space.Model, { + extension: tracker.extensions.EditIssueHeader, + component: github.component.AuthenticationCheck, + props: { + kind: 'ghost' + } + }) + + builder.createDoc(presentation.class.ComponentPointExtension, core.space.Model, { + extension: tracker.extensions.EditIssueTitle, + component: github.component.PullRequestMergeState, + props: { + kind: 'ghost' + } + }) + + builder.createDoc(presentation.class.ComponentPointExtension, core.space.Model, { + extension: tracker.extensions.EditIssueTitle, + component: github.component.GithubIssueHeader, + props: { + kind: 'ghost' + } + }) + + builder.mixin(github.class.GithubPullRequest, core.class.Class, view.mixin.IgnoreActions, { + actions: [view.action.Delete, task.action.Move, tracker.action.MoveToProject] + }) + + builder.createDoc(presentation.class.DocRules, core.space.Model, { + ofClass: tracker.class.Issue, + fieldRules: [ + { + field: 'assignee', + query: {}, + mixin: github.mixin.GithubIssue, + fieldQuery: { + [github.mixin.GithubUser + '.url']: { $exists: true } + }, + fieldQueryFill: {}, + allowConflict: false, + disableUnset: true, + disableEdit: true + } + ] + }) + + builder.mixin(github.class.DocSyncInfo, core.class.Class, core.mixin.IndexConfiguration, { + indexes: [], + searchDisabled: true + }) + + builder.createDoc( + chunter.class.ChatMessageViewlet, + core.space.Model, + { + messageClass: chunter.class.ChatMessage, + objectClass: github.class.GithubPullRequest, + label: chunter.string.LeftComment + }, + github.ids.GitHubPullRequestChatMessageViewlet + ) + + builder.createDoc(activity.class.ActivityExtension, core.space.Model, { + ofClass: github.class.GithubPullRequest, + components: { + input: chunter.component.ChatMessageInput + } + }) + + builder.createDoc( + task.class.ProjectTypeDescriptor, + core.space.Model, + { + baseClass: github.mixin.GithubProject, + description: github.string.GithubDesc, + icon: github.icon.Github, + name: github.string.Github, + availablePermissions: [core.permission.ForbidDeleteObject] + }, + github.descriptors.GithubProject + ) + + builder.createDoc( + task.class.TaskTypeDescriptor, + core.space.Model, + { + baseClass: github.class.GithubPullRequest, + allowCreate: false, + description: github.string.PullRequest, + icon: github.icon.PullRequest, + name: github.string.Github + }, + github.descriptors.PullRequest + ) + + builder.createDoc( + presentation.class.ObjectSearchCategory, + core.space.Model, + { + title: github.string.PullRequests, + icon: github.icon.PullRequest, + label: github.string.PullRequests, + query: tracker.completion.IssueQuery, + context: ['search', 'mention', 'spotlight'], + classToSearch: github.class.GithubPullRequest + }, + github.completion.PullRequestCategory + ) + + // Activity filters + + // We should skip activity github mixin stuff. + builder.createDoc(activity.class.ActivityMessageControl, core.space.Model, { + objectClass: tracker.class.Issue, + skip: [{ _class: core.class.TxMixin, mixin: github.mixin.GithubIssue }] + }) + + builder.createDoc(activity.class.ActivityMessageControl, core.space.Model, { + objectClass: contact.class.Person, + skip: [{ _class: core.class.TxMixin, mixin: github.mixin.GithubUser }] + }) + + builder.mixin(github.class.GithubReviewComment, core.class.Class, activity.mixin.IgnoreActivity, {}) + builder.mixin(github.class.GithubPullRequestReview, core.class.Class, activity.mixin.IgnoreActivity, {}) + builder.mixin(github.class.GithubReview, core.class.Class, view.mixin.ObjectPresenter, { + presenter: github.component.GithubReviewPresenter + }) + + builder.mixin(github.class.GithubReviewThread, core.class.Class, view.mixin.ObjectPresenter, { + presenter: github.component.GithubReviewThreadPresenter + }) + + builder.createDoc>( + activity.class.ActivityMessageControl, + core.space.Model, + { + objectClass: github.class.GithubPullRequest, + skip: [], + skipFields: [ + 'head', + 'base', + 'mergedAt', + 'closedAt', + 'commits', + 'mergeable', + 'reviews', + 'reviewComments', + 'latestReviews', + 'reviewDecision', + 'state' + ] + } + ) + + builder.createDoc(activity.class.DocUpdateMessageViewlet, core.space.Model, { + objectClass: github.class.GithubPullRequest, + action: 'update', + icon: github.icon.PullRequest, + config: { + status: { + iconPresenter: tracker.component.IssueStatusIcon + }, + priority: { + iconPresenter: tracker.component.PriorityIconPresenter + }, + estimation: { + icon: tracker.icon.Estimation + } + } + }) + + builder.createDoc(core.class.DomainIndexConfiguration, core.space.Model, { + domain: DOMAIN_GITHUB, + disabled: [ + { modifiedOn: 1 }, + { modifiedBy: 1 }, + { createdBy: 1 }, + { attachedToClass: 1 }, + { createdOn: -1 }, + { repository: 1 }, + { deleted: 1 }, + { githubNumber: 1 } + ] + }) + builder.createDoc(core.class.DomainIndexConfiguration, core.space.Model, { + domain: DOMAIN_GITHUB_COMMENTS, + disabled: [{ modifiedOn: 1 }, { modifiedBy: 1 }, { createdBy: 1 }, { attachedToClass: 1 }, { createdOn: -1 }] + }) +} diff --git a/services/github/model-github/src/migration.ts b/services/github/model-github/src/migration.ts new file mode 100644 index 0000000000..af5e4e6188 --- /dev/null +++ b/services/github/model-github/src/migration.ts @@ -0,0 +1,336 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// + +import core, { toIdMap, type AnyAttribute, type Ref, type Status } from '@hcengineering/core' +import { + tryMigrate, + tryUpgrade, + type MigrateOperation, + type MigrateUpdate, + type MigrationClient, + type MigrationDocumentQuery, + type MigrationIterator, + type MigrationUpgradeClient +} from '@hcengineering/model' +import chunter from '@hcengineering/model-chunter' +import { DOMAIN_SPACE } from '@hcengineering/model-core' +import { DOMAIN_TASK } from '@hcengineering/model-task' +import task from '@hcengineering/task' +import { htmlToMarkup } from '@hcengineering/text' +import tracker, { type Component, type Issue, type Project } from '@hcengineering/tracker' +import { + GithubPullRequestState, + githubId, + type DocSyncInfo, + type GithubIntegration, + type GithubIntegrationRepository, + type GithubPullRequest +} from '@hcengineering/github' +import github from './plugin' + +import { DOMAIN_TIME } from '@hcengineering/model-time' +import { DOMAIN_TRACKER } from '@hcengineering/model-tracker' +import time from '@hcengineering/time' +import { DOMAIN_GITHUB } from '.' + +export async function guessStatus (status: Status, statuses: Status[]): Promise { + const active = (): Status => statuses.find((it) => it.category === task.statusCategory.Active) as Status + + const lost = (): Status => statuses.find((it) => it.category === task.statusCategory.Lost) as Status + const won = (): Status => statuses.find((it) => it.category === task.statusCategory.Won) as Status + + if (status.category === task.statusCategory.Won) { + return won() + } + if (status.category === task.statusCategory.Lost) { + return lost() + } + return active() +} +async function migratePullRequests (client: MigrationClient): Promise { + await client.update( + DOMAIN_TASK, + { _class: github.class.GithubPullRequest, patch: { $exists: true } }, + { $unset: { patch: 1 } } + ) + await client.update( + DOMAIN_GITHUB, + { _class: github.class.GithubPullRequest, 'external.patch': { $ne: true } }, + { $set: { patch: false } } + ) + + const integrations = await client.find(DOMAIN_GITHUB, { _class: github.class.GithubIntegration }) + for (const i of integrations) { + if (typeof i.installationId === 'string') { + // We need to resync all integration + await client.update(DOMAIN_GITHUB, { _id: i._id }, { installationId: parseInt(i.installationId) }) + } + } + await client.update( + DOMAIN_GITHUB, + { _class: github.class.DocSyncInfo, lastModified: { $exists: false } }, + { $set: { needUpdate: true } } + ) +} + +async function migrateMissingStates (client: MigrationClient): Promise { + const prTaskTypes = toIdMap( + client.model.findAllSync(task.class.TaskType, { descriptor: github.descriptors.PullRequest }) + ) + + const allActiveStatuses = client.model.findAllSync(core.class.Status, { category: task.statusCategory.Active }) + + const wonStatuses = client.model.findAllSync(core.class.Status, { category: task.statusCategory.Won }) + + // We need to migrate Pull requests with merged to have a proper merged status, and not closed. + const merged = await client.find(DOMAIN_TASK, { + _class: github.class.GithubPullRequest, + state: GithubPullRequestState.merged + }) + for (const m of merged) { + const tt = prTaskTypes.get(m.kind) + if (tt === undefined) { + return + } + const merged = wonStatuses.find((it) => tt.statuses.includes(it._id)) + + if (merged !== undefined && m.status !== merged._id) { + await client.update(DOMAIN_TASK, { _id: m._id }, { status: merged._id }) + } + } + + const activePRs = await client.find(DOMAIN_TASK, { + _class: github.class.GithubPullRequest, + state: GithubPullRequestState.open + }) + for (const m of activePRs) { + const tt = prTaskTypes.get(m.kind) + if (tt === undefined) { + return + } + const active = allActiveStatuses.find((it) => tt.statuses.includes(it._id)) + + if (active !== undefined && m.status !== active._id) { + await client.update(DOMAIN_TASK, { _id: m._id }, { status: active._id }) + } + } + // +} + +async function migrateDocSyncInfo (client: MigrationClient): Promise { + await client.update( + DOMAIN_GITHUB, + { _class: github.class.DocSyncInfo, objectClass: 'chunter:class:Comment' }, + { objectClass: chunter.class.ChatMessage } + ) +} + +export const githubOperation: MigrateOperation = { + async migrate (client: MigrationClient): Promise { + await tryMigrate(client, githubId, [ + { + state: 'pull-requests', + func: migratePullRequests + }, + { + state: 'update-doc-sync-info', + func: migrateDocSyncInfo + } + ]) + }, + async upgrade (state: Map>, client: () => Promise): Promise { + await tryUpgrade(state, client, githubId, []) + } +} + +async function migrateTodoSpaces (client: MigrationClient): Promise { + await client.update( + DOMAIN_TIME, + { _class: time.class.ToDo, [github.mixin.GithubTodo]: { $exists: true } }, + { $set: { space: time.space.ToDos } } + ) +} + +async function migrateFixMissingDocSyncInfo (client: MigrationClient): Promise { + const projects = await client.find(DOMAIN_SPACE, { + _class: tracker.class.Project, + [github.mixin.GithubProject]: { $exists: true } + }) + for (const p of projects) { + const issues = await client.traverse( + DOMAIN_TASK, + { + _class: tracker.class.Issue, + space: p._id as Ref + }, + { + projection: { + _class: 1, + space: 1, + _id: 1, + attachedTo: 1, + modifiedBy: 1, + modifiedOn: 1 + } + } + ) + let counter = 0 + while (true) { + const docs = await issues.next(1000) + if (docs === null || docs.length === 0) { + break + } + const infos = await client.find( + DOMAIN_GITHUB, + { + _class: github.class.DocSyncInfo, + _id: { $in: docs.map((it) => it._id as unknown as Ref) } + }, + { + projection: { + _id: 1 + } + } + ) + const infoIds = toIdMap(infos) + let repository: Ref | null = null + for (const issue of docs) { + if (!infoIds.has(issue._id)) { + if (client.hierarchy.hasMixin(issue, github.mixin.GithubIssue)) { + repository = client.hierarchy.as(issue, github.mixin.GithubIssue).repository + } + counter++ + // Missing + await client.create(DOMAIN_GITHUB, { + _class: github.class.DocSyncInfo, + _id: issue._id as any, + url: '', + githubNumber: 0, + repository, + objectClass: issue._class, + externalVersion: '#', // We need to put this one to handle new documents. + needSync: '', + derivedVersion: '', + attachedTo: issue.attachedTo ?? tracker.ids.NoParent, + space: issue.space, + modifiedBy: issue.modifiedBy, + modifiedOn: issue.modifiedOn + }) + } + } + } + if (counter > 0) { + console.log('Created', counter, 'DocSyncInfos') + } + } +} + +async function migrateRemoveGithubComponents (client: MigrationClient): Promise { + const githubComponents = await client.find(DOMAIN_TRACKER, { + _class: tracker.class.Component, + [github.mixin.GithubComponent]: { $exists: true } + }) + await client.update( + DOMAIN_TASK, + { + _class: { $in: [tracker.class.Issue, github.class.GithubPullRequest] }, + component: { $in: Array.from(githubComponents.map((it) => it._id)) } + }, + { component: null } + ) + await client.deleteMany(DOMAIN_TRACKER, { _id: { $in: Array.from(githubComponents.map((it) => it._id)) } }) +} + +async function migrateMarkup (client: MigrationClient): Promise { + const hierarchy = client.hierarchy + const classes = hierarchy.getDescendants(core.class.Doc) + for (const _class of classes) { + const attributes = hierarchy.getAllAttributes(_class) + const filtered = Array.from(attributes.values()).filter((attribute) => { + return ( + hierarchy.isDerived(attribute.type._class, core.class.TypeMarkup) || + hierarchy.isDerived(attribute.type._class, core.class.TypeCollaborativeMarkup) + ) + }) + if (filtered.length === 0) continue + + const iterator = await client.traverse(DOMAIN_GITHUB, { + _class: github.class.DocSyncInfo, + objectClass: _class, + current: { $exists: true } + }) + + try { + await processMigrateMarkupFor(filtered, client, iterator) + } finally { + await iterator.close() + } + } +} + +async function processMigrateMarkupFor ( + attributes: AnyAttribute[], + client: MigrationClient, + iterator: MigrationIterator +): Promise { + let processed = 0 + while (true) { + const docs = await iterator.next(1000) + if (docs === null || docs.length === 0) { + break + } + + const operations: { filter: MigrationDocumentQuery, update: MigrateUpdate }[] = [] + + for (const doc of docs) { + const update: MigrateUpdate = {} + + for (const attribute of attributes) { + const value = doc.current[attribute.name] + if (value != null) { + update[`current.${attribute.name}`] = htmlToMarkup(value) + } + } + + if (Object.keys(update).length > 0) { + operations.push({ filter: { _id: doc._id }, update }) + } + } + + if (operations.length > 0) { + await client.bulk(DOMAIN_GITHUB, operations) + } + + processed += docs.length + console.log('...processed', processed) + } +} + +export const githubOperationPreTime: MigrateOperation = { + async migrate (client: MigrationClient): Promise { + await tryMigrate(client, githubId, [ + { + state: 'fix-todo-spaces', + func: migrateTodoSpaces + }, + { + state: 'fix-missing-doc-sync-info', + func: migrateFixMissingDocSyncInfo + }, + { + state: 'remove-github-components', + func: migrateRemoveGithubComponents + }, + { + state: 'markup', + func: migrateMarkup + }, + { + state: 'migrate-missing-states', + func: migrateMissingStates + } + ]) + }, + async upgrade (state: Map>, client: () => Promise): Promise {} +} diff --git a/services/github/model-github/src/plugin.ts b/services/github/model-github/src/plugin.ts new file mode 100644 index 0000000000..44cf12ff12 --- /dev/null +++ b/services/github/model-github/src/plugin.ts @@ -0,0 +1,68 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// + +import { mergeIds, type IntlString, type Resource } from '@hcengineering/platform' +import { githubId } from '@hcengineering/github' +import github from '@hcengineering/github-resources/src/plugin' + +import { type ChatMessageViewlet } from '@hcengineering/chunter' +import { type Doc, type Ref, type Space } from '@hcengineering/core' +import { type DocCreateFunction, type ObjectSearchCategory } from '@hcengineering/model-presentation' +import { type NotificationGroup } from '@hcengineering/notification' +import type { AnyComponent } from '@hcengineering/ui' +import { type ActionCategory, type Viewlet } from '@hcengineering/view' + +export default mergeIds(githubId, github, { + component: { + Connect: '' as AnyComponent, + Configure: '' as AnyComponent, + PullRequestPresenter: '' as AnyComponent, + TitlePresenter: '' as AnyComponent, + PullRequestNotificationPresenter: '' as AnyComponent, + AuthenticationCheck: '' as AnyComponent, + GithubIssueHeader: '' as AnyComponent, + GithubReviewPresenter: '' as AnyComponent, + GithubReviewThreadPresenter: '' as AnyComponent, + + MergeableValuePresenter: '' as AnyComponent, + PullRequestStateValuePresenter: '' as AnyComponent, + PullRequestReviewDecisionValuePresenter: '' as AnyComponent, + PullRequestMergeState: '' as AnyComponent + }, + completion: { + PullRequestCategory: '' as Ref + }, + string: { + ConfigLabel: '' as IntlString, + ConfigDescription: '' as IntlString, + PRFile: '' as IntlString, + PRReview: '' as IntlString, + PRCommit: '' as IntlString, + PRDraft: '' as IntlString, + PRMergedAt: '' as IntlString, + PRClosedAt: '' as IntlString, + MergeCommitSHA: '' as IntlString, + GithubIssue: '' as IntlString, + Mergeable: '' as IntlString, + GithubUser: '' as IntlString, + + PullRequestMergeState: '' as IntlString, + PullRequestReviewDecision: '' as IntlString + }, + viewlet: { + PullRequests: '' as Ref + }, + functions: { + ShowForRepositoryOnly: '' as Resource<(spaces: Space[]) => Promise>, + UpdateIssue: '' as Resource + }, + ids: { + AssigneeNotification: '' as Ref, + GithubNotificationGroup: '' as Ref, + GitHubPullRequestChatMessageViewlet: '' as Ref + }, + category: { + Github: '' as Ref + } +}) diff --git a/services/github/model-github/tsconfig.json b/services/github/model-github/tsconfig.json new file mode 100644 index 0000000000..9765b6086d --- /dev/null +++ b/services/github/model-github/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "./node_modules/@hcengineering/platform-rig/profiles/model/tsconfig.json", + + "compilerOptions": { + "rootDir": "./src", + "outDir": "./lib", + "declarationDir": "./types", + "tsBuildInfoFile": ".build/build.tsbuildinfo" + } +} \ No newline at end of file diff --git a/services/github/pod-github/.eslintrc.js b/services/github/pod-github/.eslintrc.js new file mode 100644 index 0000000000..72235dc283 --- /dev/null +++ b/services/github/pod-github/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: ['./node_modules/@hcengineering/platform-rig/profiles/default/eslint.config.json'], + parserOptions: { + tsconfigRootDir: __dirname, + project: './tsconfig.json' + } +} diff --git a/services/github/pod-github/.gitignore b/services/github/pod-github/.gitignore new file mode 100644 index 0000000000..7665638e20 --- /dev/null +++ b/services/github/pod-github/.gitignore @@ -0,0 +1 @@ +markdowns \ No newline at end of file diff --git a/services/github/pod-github/.npmignore b/services/github/pod-github/.npmignore new file mode 100644 index 0000000000..e3ec093c38 --- /dev/null +++ b/services/github/pod-github/.npmignore @@ -0,0 +1,4 @@ +* +!/lib/** +!CHANGELOG.md +/lib/**/__tests__/ diff --git a/services/github/pod-github/Dockerfile b/services/github/pod-github/Dockerfile new file mode 100644 index 0000000000..88893a347c --- /dev/null +++ b/services/github/pod-github/Dockerfile @@ -0,0 +1,16 @@ + +FROM node:20 + +WORKDIR /usr/src/app + +RUN npm install --ignore-scripts=false --verbose bufferutil utf-8-validate @mongodb-js/zstd snappy --unsafe-perm +COPY bundle/bundle.js ./ + +RUN apt-get update +RUN apt-get install libjemalloc2 + +ENV LD_PRELOAD=libjemalloc.so.2 +ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true + +EXPOSE 3078 +CMD [ "node", "--inspect", "--async-stack-traces", "bundle.js" ] diff --git a/services/github/pod-github/Readme.md b/services/github/pod-github/Readme.md new file mode 100644 index 0000000000..a3dfd17950 --- /dev/null +++ b/services/github/pod-github/Readme.md @@ -0,0 +1,101 @@ +# Github App guidelines + +https://github.com/github/github-app-js-sample/tree/main + +## Developer resources + +### Forward github events to platform + +```typescript + smee -u https://smee.io/Oj0ZkULovroxbFC6 -t http://localhost:3500/api/webhook +``` + +### Shared application should be linked via `https://github.com/apps//installations/new?state=AB12t` + +https://docs.github.com/en/apps/sharing-github-apps/sharing-your-github-app + +## Instructions to setup GitHub integration for local testing + +### Register a new GitHub App + +Go to _Settings/Developer settings/GitHub Apps_ + +* Name: Any unique name. E.g. _XX_huly_dev_. Referred as _GITHUB_APP_ later in the document. +* Homepage URL: http://localhost:8080 +* Callback URL: http://localhost:8080/github +* Setup URL (optional): http://localhost:8080/github?op=installation +* Redirect on update: Checked + +#### New webhook + +Go to https://smee.io/ and click _Start a new channel_ + +* Use the provided Webhook Proxy URL as Webhook URL. Referred as _WEBHOOK_URL_ later in the document. +* Webhook secret is: `secret` +* Keep Webhook Active checked. + +#### Configure permissions for the app: + +* Commit statuses: _Read and write_ +* Contents: _Read and write_ +* Custom properties: _Read and write_ +* Discussions: _Read and write_ +* Issues: _Read and write_ +* Metadata: _Read-only_ +* Pages: _Read and write_ +* Projects: _Read and write_ +* Pull requests: _Read and write_ +* Webhooks: _Read and write_ + +#### Subscribe to events: + +* Issues +* Pull request +* Pull request review +* Pull request review comment +* Pull request review thread + +#### Final creation steps + +* Create the app. +* Generate a new client secret. Referred as _POD_GITHUB_CLIENT_SECRET_ later in the document. +* Create and download you private key file as well. Referred as _POD_GITHUB_PRIVATE_KEY_ later in the document. +* You'll be provided with your GitHub app ID. Referred as _POD_GITHUB_APPID_ later in the document. + +#### Forward webhook events to local server + +* Install smee client: + +``` +npm install --global smee-client +``` + +* To forward events (keep it up and running): + +``` +smee -u {WEBHOOK_URL} -t http://localhost:3500/api/webhook +``` +#### Update local config files + +##### .vscode/launch.json —> Debug Github integration + +* "APP_ID": "{POD_GITHUB_APPID}" <— Numeric ID of the new application +* "CLIENT_ID": "{POD_GITHUB_CLIENTID}" <—- Client ID from the new application +* "CLIENT_SECRET": "{POD_GITHUB_CLIENT_SECRET}" <—- Client Secret from the new application +* "PRIVATE_KEY": "{POD_GITHUB_PRIVATE_KEY}" <—- PK from the new application + +_Note: PK value format: "-----BEGIN RSA PRIVATE KEY-----\n {ACTUAL_KEY_WO_LINE_BREAKS}\n-----END RSA PRIVATE KEY-----_ + +##### dev/prod/public/config.json + +* "GITHUB_APP": “{GITHUB_APP}" <— Textual name of the new application +* "GITHUB_CLIENTID": “{POD_GITHUB_CLIENTID}” <— Client ID from the new application + +#### Usage + +* Run dev GitHub pod (Debug Github integration) in vscode +* Run dev server +* On localhost:8080 Go to Settings -> Integrations -> Github + * On the first tab authorise your GitHub + * On the second tab of the dialog install the application, select a GH repo and connect to an existing/create a new connected repo in the tracker. +* Enjoy! diff --git a/services/github/pod-github/config/rig.json b/services/github/pod-github/config/rig.json new file mode 100644 index 0000000000..0110930f55 --- /dev/null +++ b/services/github/pod-github/config/rig.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + "rigPackageName": "@hcengineering/platform-rig" +} diff --git a/services/github/pod-github/jest.config.js b/services/github/pod-github/jest.config.js new file mode 100644 index 0000000000..2cfd408b67 --- /dev/null +++ b/services/github/pod-github/jest.config.js @@ -0,0 +1,7 @@ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + testMatch: ['**/?(*.)+(spec|test).[jt]s?(x)'], + roots: ["./src"], + coverageReporters: ["text-summary", "html"] +} diff --git a/services/github/pod-github/package.json b/services/github/pod-github/package.json new file mode 100644 index 0000000000..0acf46a236 --- /dev/null +++ b/services/github/pod-github/package.json @@ -0,0 +1,173 @@ +{ + "name": "@hcengineering/pod-github", + "version": "0.6.0", + "main": "lib/index.js", + "svelte": "src/index.ts", + "types": "types/index.d.ts", + "files": [ + "lib/**/*", + "types/**/*", + "tsconfig.json" + ], + "author": "Hardcore Engineering Inc.", + "scripts": { + "build": "compile", + "build:watch": "compile", + "test": "jest --passWithNoTests --silent", + "_phase:bundle": "rushx bundle", + "_phase:docker-build": "rushx docker:build", + "_phase:docker-staging": "rushx docker:staging", + "bundle": "mkdir -p bundle && esbuild src/index.ts --bundle --sourcemap=external --platform=node --outfile=bundle/bundle.js --log-level=error", + "docker:build": "../../../common/scripts/docker_build.sh hardcoreeng/github", + "docker:staging": "../../../common/scripts/docker_tag.sh hardcoreeng/github staging", + "docker:push": "../../../common/scripts/docker_tag.sh hardcoreeng/github", + "docker:tbuild": "rush bundle --to @hcengineering/pod-github && docker build -t hardcoreeng/github . --platform=linux/amd64 && ../../../common/scripts/docker_tag_push.sh hardcoreeng/github", + "run-local": "cross-env APP_ID=$(cat ../../../../uberflow_private/appid) PRIVATE_KEY=\"$(cat ../../../../uberflow_private/private-key.pem)\" CLIENT_ID=$(cat ../../../../uberflow_private/client-id) CLIENT_SECRET=$(cat ../../../../uberflow_private/client-secret) SERVER_SECRET=secret ACCOUNTS_URL=http://localhost:3000/ COLLABORATOR_URL=http://localhost:3078 COLLABORATOR_API_URL=http://localhost:3078 MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin MINIO_ENDPOINT=localhost ts-node src/index.ts", + "format": "format src", + "_phase:build": "compile transpile src", + "_phase:test": "jest --passWithNoTests --silent", + "_phase:format": "format src", + "_phase:validate": "compile validate" + }, + "devDependencies": { + "cross-env": "~7.0.3", + "@hcengineering/platform-rig": "^0.6.0", + "@types/node": "~20.11.16", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-n": "^15.4.0", + "eslint": "^8.54.0", + "esbuild": "^0.20.0", + "@typescript-eslint/parser": "^6.11.0", + "eslint-config-standard-with-typescript": "^40.0.0", + "prettier": "^3.1.0", + "ts-node": "^10.8.0", + "typescript": "^5.3.3", + "@types/ws": "^8.5.11", + "smee-client": "^1.2.3", + "@octokit/webhooks-types": "^7.3.1", + "@types/markdown-it": "~13.0.0", + "graphql-binding": "^2.5.2", + "@types/express": "^4.17.13", + "@types/express-fileupload": "^1.1.7", + "@types/uuid": "^8.3.1", + "@types/cors": "^2.8.12", + "@types/body-parser": "~1.19.2", + "@types/compression": "~1.7.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.1", + "@types/jest": "^29.5.5" + }, + "dependencies": { + "@hcengineering/core": "^0.6.32", + "@hcengineering/account": "^0.6.0", + "@hcengineering/platform": "^0.6.11", + "@hcengineering/server-client": "^0.6.0", + "@hcengineering/server-token": "^0.6.11", + "@hcengineering/server-core": "^0.6.1", + "@hcengineering/server-storage": "^0.6.0", + "@hcengineering/mongo": "^0.6.1", + "@hcengineering/client": "^0.6.18", + "@hcengineering/chunter": "^0.6.20", + "@hcengineering/contact": "^0.6.24", + "@hcengineering/client-resources": "^0.6.27", + "@hcengineering/tracker": "^0.6.24", + "@hcengineering/query": "^0.6.12", + "@hcengineering/text": "^0.6.5", + "@hcengineering/github": "^0.6.0", + "@hcengineering/attachment": "^0.6.14", + "ws": "^8.18.0", + "dotenv": "~16.0.0", + "octokit": "^3.1.1", + "@octokit/webhooks": "^12.0.3", + "@octokit/types": "^12.0.0", + "graphql": "^16.8.0", + "fast-equals": "^5.0.1", + "@hcengineering/minio": "^0.6.0", + "markdown-it": "^14.0.0", + "@tiptap/html": "^2.2.4", + "@tiptap/core": "^2.2.4", + "@tiptap/pm": "^2.2.4", + "@tiptap/starter-kit": "^2.2.4", + "@tiptap/extension-highlight": "^2.2.4", + "@tiptap/extension-placeholder": "^2.2.4", + "@tiptap/extension-mention": "^2.2.4", + "@tiptap/extension-typography": "^2.2.4", + "@tiptap/extension-link": "^2.2.4", + "@tiptap/suggestion": "^2.2.4", + "@tiptap/extension-task-list": "^2.2.4", + "@tiptap/extension-task-item": "^2.2.4", + "@tiptap/extension-collaboration": "^2.2.4", + "@tiptap/extension-collaboration-cursor": "^2.2.4", + "@tiptap/extension-code-block": "^2.2.4", + "@tiptap/extension-gapcursor": "^2.2.4", + "@tiptap/extension-heading": "^2.2.4", + "@tiptap/extension-table": "^2.2.4", + "@tiptap/extension-table-cell": "^2.2.4", + "@tiptap/extension-table-header": "^2.2.4", + "@tiptap/extension-table-row": "^2.2.4", + "@tiptap/extension-code": "^2.2.4", + "@tiptap/extension-bubble-menu": "^2.2.4", + "@hcengineering/task": "^0.6.20", + "express": "^4.19.2", + "cors": "^2.8.5", + "body-parser": "^1.20.2", + "mongodb": "^6.8.0", + "@hcengineering/setting": "^0.6.17", + "@hcengineering/preference": "^0.6.13", + "@hcengineering/login": "^0.6.12", + "@hcengineering/view": "^0.6.13", + "@hcengineering/recruit": "^0.6.29", + "@hcengineering/activity": "^0.6.0", + "@hcengineering/telegram": "^0.6.21", + "@hcengineering/workbench": "^0.6.16", + "@hcengineering/lead": "^0.6.0", + "@hcengineering/gmail": "^0.6.22", + "@hcengineering/inventory": "^0.6.11", + "@hcengineering/templates": "^0.6.11", + "@hcengineering/notification": "^0.6.23", + "@hcengineering/tags": "^0.6.16", + "@hcengineering/calendar": "^0.6.24", + "@hcengineering/board": "^0.6.19", + "@hcengineering/hr": "^0.6.19", + "@hcengineering/bitrix": "^0.6.52", + "@hcengineering/request": "^0.6.14", + "@hcengineering/drive": "^0.6.0", + "@hcengineering/support": "^0.6.5", + "@hcengineering/collaborator-client": "^0.6.4", + "@hcengineering/document": "^0.6.0", + "@hcengineering/login-assets": "^0.6.0", + "@hcengineering/view-assets": "^0.6.11", + "@hcengineering/task-assets": "^0.6.19", + "@hcengineering/chunter-assets": "^0.6.18", + "@hcengineering/recruit-assets": "^0.6.23", + "@hcengineering/setting-assets": "^0.6.15", + "@hcengineering/contact-assets": "^0.6.13", + "@hcengineering/activity-assets": "^0.6.3", + "@hcengineering/telegram-assets": "^0.6.0", + "@hcengineering/workbench-assets": "^0.6.14", + "@hcengineering/attachment-assets": "^0.6.11", + "@hcengineering/lead-assets": "^0.6.0", + "@hcengineering/gmail-assets": "^0.6.0", + "@hcengineering/inventory-assets": "^0.6.11", + "@hcengineering/templates-assets": "^0.6.11", + "@hcengineering/notification-assets": "^0.6.17", + "@hcengineering/preference-assets": "^0.6.0", + "@hcengineering/tags-assets": "^0.6.0", + "@hcengineering/calendar-assets": "^0.6.22", + "@hcengineering/tracker-assets": "^0.6.0", + "@hcengineering/board-assets": "^0.6.19", + "@hcengineering/hr-assets": "^0.6.19", + "@hcengineering/bitrix-assets": "^0.6.0", + "@hcengineering/request-assets": "^0.6.0", + "@hcengineering/drive-assets": "^0.6.0", + "@hcengineering/support-assets": "^0.6.5", + "@hcengineering/github-assets": "^0.6.0", + "@hcengineering/document-assets": "^0.6.0", + "@hcengineering/time": "^0.6.0", + "@hcengineering/server-guest-resources": "^0.6.0", + "@hcengineering/analytics": "^0.6.0", + "@hcengineering/analytics-service": "^0.6.0" + } +} diff --git a/services/github/pod-github/src/account.ts b/services/github/pod-github/src/account.ts new file mode 100644 index 0000000000..24e8823744 --- /dev/null +++ b/services/github/pod-github/src/account.ts @@ -0,0 +1,24 @@ +import { ClientWorkspaceInfo } from '@hcengineering/account' +import config from './config' + +/** + * @public + */ +export async function getWorkspaceInfo (token: string): Promise { + const accountsUrl = config.AccountsURL + const workspaceInfo = await ( + await fetch(accountsUrl, { + method: 'POST', + headers: { + Authorization: 'Bearer ' + token, + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + method: 'getWorkspaceInfo', + params: [] + }) + }) + ).json() + + return workspaceInfo.result as ClientWorkspaceInfo +} diff --git a/services/github/pod-github/src/client.ts b/services/github/pod-github/src/client.ts new file mode 100644 index 0000000000..789761d333 --- /dev/null +++ b/services/github/pod-github/src/client.ts @@ -0,0 +1,50 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// +// + +import client, { ClientSocket } from '@hcengineering/client' +import clientResources from '@hcengineering/client-resources' +import { Client, ClientConnectEvent } from '@hcengineering/core' +import { setMetadata } from '@hcengineering/platform' +import { getTransactorEndpoint } from '@hcengineering/server-client' +import serverToken, { generateToken } from '@hcengineering/server-token' +import WebSocket from 'ws' +import config from './config' + +/** + * @public + */ +export async function createPlatformClient ( + workspace: string, + productId: string, + timeout: number, + reconnect?: (event: ClientConnectEvent) => void +): Promise { + setMetadata(client.metadata.ClientSocketFactory, (url) => { + return new WebSocket(url, { + headers: { + 'User-Agent': config.ServiceID + } + }) as never as ClientSocket + }) + + setMetadata(serverToken.metadata.Secret, config.ServerSecret) + const token = generateToken( + config.SystemEmail, + { + name: workspace, + productId + }, + { mode: 'github' } + ) + setMetadata(client.metadata.ConnectionTimeout, timeout) + const endpoint = await getTransactorEndpoint(token) + const connection = await ( + await clientResources() + ).function.GetClient(token, endpoint, { + onConnect: reconnect + }) + + return connection +} diff --git a/services/github/pod-github/src/collaborator.ts b/services/github/pod-github/src/collaborator.ts new file mode 100644 index 0000000000..19d5ab9226 --- /dev/null +++ b/services/github/pod-github/src/collaborator.ts @@ -0,0 +1,17 @@ +// +// Copyright © 2024 Hardcore Engineering Inc. +// +// + +import { CollaboratorClient, getClient as getCollaboratorClient } from '@hcengineering/collaborator-client' +import { Hierarchy, WorkspaceId } from '@hcengineering/core' +import { generateToken } from '@hcengineering/server-token' +import config from './config' + +/** + * @public + */ +export function createCollaboratorClient (hierarchy: Hierarchy, workspaceId: WorkspaceId): CollaboratorClient { + const token = generateToken(config.SystemEmail, workspaceId, { mode: 'github' }) + return getCollaboratorClient(hierarchy, workspaceId, token, config.CollaboratorURL) +} diff --git a/services/github/pod-github/src/config.ts b/services/github/pod-github/src/config.ts new file mode 100644 index 0000000000..68ce448437 --- /dev/null +++ b/services/github/pod-github/src/config.ts @@ -0,0 +1,124 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// + +import { systemAccountEmail } from '@hcengineering/core' + +interface Config { + AccountsURL: string + ServiceID: string + ServerSecret: string + SystemEmail: string + FrontURL: string + + // '*' means all workspaces + AllowedWorkspaces: string[] + AppID: string + ClientID: string + ClientSecret: string + PrivateKey: string + WebhookSecret: string + EnterpriseHostname: string + Port: number + + MongoURL: string + ConfigurationDB: string + + CollaboratorURL: string + + ProductID: string + + BotName: string + + SentryDSN: string + BrandingPath: string +} + +const envMap: { [key in keyof Config]: string } = { + AccountsURL: 'ACCOUNTS_URL', + ServiceID: 'SERVICE_ID', + ServerSecret: 'SERVER_SECRET', + SystemEmail: 'SYSTEM_EMAIL', + FrontURL: 'FRONT_URL', + + AppID: 'APP_ID', + ClientID: 'CLIENT_ID', + ClientSecret: 'CLIENT_SECRET', + PrivateKey: 'PRIVATE_KEY', + WebhookSecret: 'WEBHOOK_SECRET', + EnterpriseHostname: 'ENTERPRISE_HOSTNAME', + Port: 'PORT', + AllowedWorkspaces: 'ALLOWED_WORKSPACES', + BotName: 'BOT_NAME', + + MongoURL: 'MONGO_URL', + ConfigurationDB: 'MONGO_DB', + + CollaboratorURL: 'COLLABORATOR_API_URL', + + ProductID: 'PRODUCT_ID', + + SentryDSN: 'SENTRY_DSN', + BrandingPath: 'BRANDING_PATH' +} + +const required: Array = [ + 'AccountsURL', + 'ServerSecret', + 'ServiceID', + 'SystemEmail', + 'FrontURL', + 'AppID', + 'ClientID', + 'ClientSecret', + 'PrivateKey', + + 'MongoURL', + 'ConfigurationDB', + + 'CollaboratorURL', + + 'ProductID', + 'BotName' +] + +const config: Config = (() => { + const params: Partial = { + AccountsURL: process.env[envMap.AccountsURL], + ServerSecret: process.env[envMap.ServerSecret], + ServiceID: process.env[envMap.ServiceID] ?? 'github-service', + SystemEmail: process.env[envMap.SystemEmail] ?? systemAccountEmail, + AllowedWorkspaces: process.env[envMap.AllowedWorkspaces]?.split(',') ?? ['*'], + FrontURL: process.env[envMap.FrontURL] ?? '', + + AppID: process.env[envMap.AppID], + ClientID: process.env[envMap.ClientID], + ClientSecret: process.env[envMap.ClientSecret], + // https://github.com/octokit/auth-app.js/issues/465 + PrivateKey: process.env[envMap.PrivateKey]?.replace(/\\n/g, '\n'), + WebhookSecret: process.env[envMap.WebhookSecret] ?? 'secret', + EnterpriseHostname: process.env[envMap.EnterpriseHostname], + Port: parseInt(process.env[envMap.Port] ?? '3500'), + BotName: process.env[envMap.BotName] ?? 'dev[bot]', + + MongoURL: process.env[envMap.MongoURL], + ConfigurationDB: process.env[envMap.ConfigurationDB] ?? '%github', + + CollaboratorURL: process.env[envMap.CollaboratorURL], + + ProductID: process.env[envMap.ProductID] ?? '', + + SentryDSN: process.env[envMap.SentryDSN], + BrandingPath: process.env[envMap.BrandingPath] ?? '' + } + + const missingEnv = required.filter((key) => params[key] === undefined).map((key) => envMap[key]) + + if (missingEnv.length > 0) { + throw Error(`Missing env variables: ${missingEnv.join(', ')}`) + } + + return params as Config +})() + +export default config diff --git a/services/github/pod-github/src/index.ts b/services/github/pod-github/src/index.ts new file mode 100644 index 0000000000..fa038ef824 --- /dev/null +++ b/services/github/pod-github/src/index.ts @@ -0,0 +1,59 @@ +// +// Copyright © 2023 Hardcore Engineering Inc. +// + +import { MeasureMetricsContext, metricsToString, newMetrics } from '@hcengineering/core' +import { SplitLogger, configureAnalytics } from '@hcengineering/analytics-service' +import { writeFile } from 'fs/promises' +import { join } from 'path' +import config from './config' +import { start } from './server' +import { Analytics } from '@hcengineering/analytics' +import { loadBrandingMap } from '@hcengineering/server-core' + +// Load and inc startID, to have easy logs. + +const metricsContext = new MeasureMetricsContext( + 'github', + {}, + {}, + newMetrics(), + new SplitLogger('github-service', { + root: join(process.cwd(), 'logs'), + enableConsole: (process.env.ENABLE_CONSOLE ?? 'true') === 'true' + }) +) + +configureAnalytics(config.SentryDSN, config) +Analytics.setTag('application', 'github-service') + +let oldMetricsValue = '' + +const intTimer = setInterval(() => { + const val = metricsToString(metricsContext.metrics, 'Github', 140) + if (val !== oldMetricsValue) { + oldMetricsValue = val + void writeFile('metrics.txt', val).catch((err) => { + console.error(err) + }) + } +}, 30000) + +void start(metricsContext, loadBrandingMap(config.BrandingPath)) + +const onClose = (): void => { + clearInterval(intTimer) + metricsContext.info('Closed') +} + +process.on('uncaughtException', (e) => { + metricsContext.error('UncaughtException', { error: e }) +}) + +process.on('unhandledRejection', (reason, promise) => { + metricsContext.error('Unhandled Rejection at:', { promise, reason }) +}) + +process.on('SIGINT', onClose) +process.on('SIGTERM', onClose) +process.on('exit', onClose) diff --git a/services/github/pod-github/src/loaders.ts b/services/github/pod-github/src/loaders.ts new file mode 100644 index 0000000000..31fb168e35 --- /dev/null +++ b/services/github/pod-github/src/loaders.ts @@ -0,0 +1,96 @@ +import { coreId } from '@hcengineering/core' + +import { activityId } from '@hcengineering/activity' +import { attachmentId } from '@hcengineering/attachment' +import { bitrixId } from '@hcengineering/bitrix' +import { boardId } from '@hcengineering/board' +import { calendarId } from '@hcengineering/calendar' +import { chunterId } from '@hcengineering/chunter' +import { contactId } from '@hcengineering/contact' +import { driveId } from '@hcengineering/drive' +import { gmailId } from '@hcengineering/gmail' +import { hrId } from '@hcengineering/hr' +import { inventoryId } from '@hcengineering/inventory' +import { leadId } from '@hcengineering/lead' +import { loginId } from '@hcengineering/login' +import { notificationId } from '@hcengineering/notification' +import { preferenceId } from '@hcengineering/preference' +import { recruitId } from '@hcengineering/recruit' +import { requestId } from '@hcengineering/request' +import { settingId } from '@hcengineering/setting' +import { supportId } from '@hcengineering/support' +import { tagsId } from '@hcengineering/tags' +import { taskId } from '@hcengineering/task' +import { telegramId } from '@hcengineering/telegram' +import { templatesId } from '@hcengineering/templates' +import { trackerId } from '@hcengineering/tracker' +import { viewId } from '@hcengineering/view' +import { workbenchId } from '@hcengineering/workbench' +import { documentId } from '@hcengineering/document' +import { githubId } from '@hcengineering/github' + +import activityEn from '@hcengineering/activity-assets/lang/en.json' +import attachmentEn from '@hcengineering/attachment-assets/lang/en.json' +import bitrixEn from '@hcengineering/bitrix-assets/lang/en.json' +import boardEn from '@hcengineering/board-assets/lang/en.json' +import calendarEn from '@hcengineering/calendar-assets/lang/en.json' +import chunterEn from '@hcengineering/chunter-assets/lang/en.json' +import contactEn from '@hcengineering/contact-assets/lang/en.json' +import coreEng from '@hcengineering/core/lang/en.json' +import driveEn from '@hcengineering/drive-assets/lang/en.json' +import gmailEn from '@hcengineering/gmail-assets/lang/en.json' +import hrEn from '@hcengineering/hr-assets/lang/en.json' +import inventoryEn from '@hcengineering/inventory-assets/lang/en.json' +import leadEn from '@hcengineering/lead-assets/lang/en.json' +import loginEng from '@hcengineering/login-assets/lang/en.json' +import platformEng from '@hcengineering/platform/lang/en.json' +import notificationEn from '@hcengineering/notification-assets/lang/en.json' +import { addStringsLoader, platformId } from '@hcengineering/platform' +import preferenceEn from '@hcengineering/preference-assets/lang/en.json' +import recruitEn from '@hcengineering/recruit-assets/lang/en.json' +import requestEn from '@hcengineering/request-assets/lang/en.json' +import settingEn from '@hcengineering/setting-assets/lang/en.json' +import supportEn from '@hcengineering/support-assets/lang/en.json' +import tagsEn from '@hcengineering/tags-assets/lang/en.json' +import taskEn from '@hcengineering/task-assets/lang/en.json' +import telegramEn from '@hcengineering/telegram-assets/lang/en.json' +import templatesEn from '@hcengineering/templates-assets/lang/en.json' +import trackerEn from '@hcengineering/tracker-assets/lang/en.json' +import viewEn from '@hcengineering/view-assets/lang/en.json' +import workbenchEn from '@hcengineering/workbench-assets/lang/en.json' +import documentEn from '@hcengineering/document-assets/lang/en.json' +import githubEn from '@hcengineering/github-assets/lang/en.json' + +export function registerLoaders (): void { + addStringsLoader(coreId, async (lang: string) => coreEng) + addStringsLoader(loginId, async (lang: string) => loginEng) + addStringsLoader(platformId, async (lang: string) => platformEng) + + addStringsLoader(taskId, async (lang: string) => taskEn) + addStringsLoader(viewId, async (lang: string) => viewEn) + addStringsLoader(chunterId, async (lang: string) => chunterEn) + addStringsLoader(attachmentId, async (lang: string) => attachmentEn) + addStringsLoader(contactId, async (lang: string) => contactEn) + addStringsLoader(recruitId, async (lang: string) => recruitEn) + addStringsLoader(activityId, async (lang: string) => activityEn) + addStringsLoader(settingId, async (lang: string) => settingEn) + addStringsLoader(telegramId, async (lang: string) => telegramEn) + addStringsLoader(leadId, async (lang: string) => leadEn) + addStringsLoader(gmailId, async (lang: string) => gmailEn) + addStringsLoader(workbenchId, async (lang: string) => workbenchEn) + addStringsLoader(inventoryId, async (lang: string) => inventoryEn) + addStringsLoader(templatesId, async (lang: string) => templatesEn) + addStringsLoader(notificationId, async (lang: string) => notificationEn) + addStringsLoader(tagsId, async (lang: string) => tagsEn) + addStringsLoader(calendarId, async (lang: string) => calendarEn) + addStringsLoader(trackerId, async (lang: string) => trackerEn) + addStringsLoader(boardId, async (lang: string) => boardEn) + addStringsLoader(preferenceId, async (lang: string) => preferenceEn) + addStringsLoader(hrId, async (lang: string) => hrEn) + addStringsLoader(documentId, async (lang: string) => documentEn) + addStringsLoader(bitrixId, async (lang: string) => bitrixEn) + addStringsLoader(requestId, async (lang: string) => requestEn) + addStringsLoader(supportId, async (lang: string) => supportEn) + addStringsLoader(githubId, async (lang: string) => githubEn) + addStringsLoader(driveId, async (lang: string) => driveEn) +} diff --git a/services/github/pod-github/src/markdown/__tests__/markdown.json.gz b/services/github/pod-github/src/markdown/__tests__/markdown.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..7e8539ad3fab55b189d2990481f5834f81fa7331 GIT binary patch literal 8251842 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

E^)>`XK7Q#h3 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 >U?Tv!Q}eRooM3qfAqYZJVEv$ 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 =Y3RTvSd8&YY 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%0D($Abi0FGm4-|^s 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

9P)%SX-j>ab11i8mGu4ohO<4TF|*7bFsuxP(m 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

AdDII-Zug@vLh5iG~OT zzU`gEma*UM`h2Q4zHwV)>+#9|*4G#PpZeZhcYEiG{3#X_;x5gl9IcDnT#~tk0)N=39%-e;00(71=`pqC@pKMe-U% zgj_|uq?PqGI=pxZ5XLn4Sdv{ayM6Wrwz=866yT9VU@m0VI`Ql)0cP(LUe|IFzyB>2 zHWUsa`Vv4Keu9Hn9@b4{{{)(SL1PFfIP6ZjI##9OxQVmAIgW!Trk662aCTH z9LO#H?EsO$BYM?FMq!y)w#LPBy)pR;1vwBfwklea>BhS$Z! zmR3e;cg)Z}7-Z){8s<>jbH*;tjr=kfqMH$Qzob#ob&7DPjdvJMA~1K&#LO5^NP9Oc zYWQ{yfOav?3FTE1hI7VbX2WsBQjTCpVM8q!>5H2A5qn=8k3s|J55Tm({O|2Jjc42w zLeBL^)Hoy$H_}J!T$H(}-Yc9YI(>Vt#LJn0#Ye?1n81>6kLyQZybo3U+r5 zPJ^H4$L0hew*!s49dNX}$Kh#c4hq<@LC=2cy^}Gs3u6(?Fr=C@*ygx#)opNps@{6z zHx7NvE$=ol8V5b{$$dD`H^&=apPQ4|`z4+>m>#rSs%swAQ&&e_9QDp)MBZ4aEUzR40^CAv(4ZibWDEX#D+dF z8RGAl4j7My@(V6_D2U}nL}Lh?Ycg;m62YVo!I*aZUpj2k<`1J45S+ey0ozw6ap$Mf zi3d8r!hSrZ5uXCGg@WpWcTQ^O0aN-=oCiCe2$FLj4V*?7z+k$cGSt&f;QzzmW%YXZI?g8?1HR=0pTzqh7z?#H*pb< zee2NEu1{<96xuzkn096A@_{=^ZotUJ)kM3x*0tSr^V)Ug`chYS`+sWxDgG1B)_;Yw z80wvW<<0jyxm-8ylm1DQpC$+9&IeE=`Z)dL+Rc0Xj;p~ZQJaCF2YjJiQ)aH_tcpL|R0#Tfk^duDuVZv#w zVPjB5!Pom|n#Pwq9}fB>P-EaEC}G?ml0oV947p-wBlCVh9$D(D^>tR-H%MauFhSzj~N zi8p&CMCx-sEKSVjnwIQ1K&6@&g4oqKiHK9OKR7Trczh^~)4#P@bFV=jwPbNHXG{(q zfmHjP(+Xh)&l1Ej3f^c>e(5g}8YP&A6a9FpA|INrIWbv7>h%2k(@Tw=jH(72n1*1NMVK zBdh$qW~4Wjg7`j9Fh7_9dz?-@z()<%-jJqmHa@x-7-Qy|TxXIVYM=wpl?b^sJ9*N}z4;C=X@If+;={bc8-0=|j-QtB7OY7c6)2Rf zAzGGIdp@SOsI%Y1w=eF}Vwxg(VxDebo-_^GvV8@RE*}shz!+Uf%Lx%h`y?A2(h1_G z^Fz1u+_C=g6Pm1Tetq!FHG)hwei=|Z4=d`0labku7$yR_U*G{Yx;+syP~;!o}%Tq zUA@q~s7CO_|e!kQ22$nHKT6R3V5p&WeNF=mJROP%nC z(KHp1zIG2boxB}GW_DvDQ2wR=;>0gw@ajP3my3{nz~Yw<+UW~?d@#wl^}*0R7#yxH zPBL-5w}#L@>7tNebmaOeGZ{Qy)R1t3khaHqdf^}#jZ#fPX~X~gr9R{Xp6XQV+i?$R z=7c#K2O4C>a=AlPnJ{iG@$r%5eyBbl8Y2%lcM24Qdu5sf z0(N7h1)tHD!SPIKYI6^l-3e!bdKjtXhd#UrBU@XWblz-2&>Z8qbQ1F{6&}cD#LR0X z!JMnO$!|*K)>~grY_)s*r_aT2*M2khSvxc!T5 z>}}uN*%-^l z=~vYk#^AMCh|CwnoLP*Ck;}9vKdge~MNkBO@s!TLMkYOZ`L!3p$jM_OvoW!~#Y$d1 zz@aCf;l-w#mlqih6n843NvxBydg0_@04nD$fpnY_I**mDXAFZ)#(udLEt_*# zan3<4Zgq`diE9-mNX;92a`lbI`LmJALoyEr#4w^VeZZ`d;NIj9NyN*hh+)4x_{Bq5 zKWqz24EoLZ`M>5dk4`FdiPH}~g}Yz;XVc_C!I+?KlG{&Z9&%!<1E^xral9)Ttyjw@ zY*FQHyY<#@8GAXmo=)ESw#!*x^tF|Pb_Z(X|3og=C!fZ=?b~n5#l7-CKaPbZ_>#O$yyU6M;>C~^ppp{+H zd#zd2)*jJ4QbA@vYG_AMYP?{xKPIo>m9N_6>O(PoWKVNVS33mcB_4*(!|439w-8eb z|CCI& zihG>GA5cfXF&Tx#;_N?Lptg2$7; zGuPI*N$1%1dd8Th;nuUG2_@3QJNnGO2Ei%Zn ze*2yn!Jf5>QK}FixN+jyqQSS;aU=~F*MuY6#}HvgBxm6)7Dz3PbF#d+h@fwmsoih6 z(1Vw`E1y~L3L(PGm zQe5r-{PWMTZM(s9s_)iSuC2A7EyvgxH19lWYd-ZaZ+)nXDM#!2Y&&vu0JneY-_dKP&7#vL`q zc%EDHFz1`dYy^%6hPH5%*%HhQKpQ+$05W~gA+2N%DB{hHf(N{To*RcB0`<`6g?l0e z*Vz7KTfSzJY2RUqXofo@c=01Y zX~pFSbmGuJrHboeAITXLS}9y=91Yi3`~Vo#L$aDAAuMcI5ck ziEG7i3Si2Rr*WM>+0ef$ztR(L$GrXPd&jH~_+sAq)>eGmt#6<5eX^r3*E`=|>9*gN zZ=W3-+^?{=?^oO9-Ldecz5Cd9ZPb+NsaxRO?drc$%h#?t@nA+_Qd=h*|Hvnst~cJ8 zJ#X_Cm?0W$r#&dIHBJ=Ub%MrwA)*>mIh0Nyedv^5?M8T`*K7<^P*r*$>tQ^r~C z6CM@C@rEm!oNaF=$ICWab%)>?Ls_PS=N34j&0u-1%TS_n-X%Q!QH(Rb@cR1%#+{>X z5?{+0%x_Cp5V2y)xg6!&Bp?}qp^_;m&Mir|nyD3oI9#`%OE5mmYy=G-&sfedo=*Cj z>h$+td0_({U*)F;?Nd-pXlE}ucnRV-X>qe3-xE(H^g8Z2`<5LsX&TdL5X>0CZNh*( z*5enn8WY^td?@0x`%bnhf_n~R0eMf1VT{gZvP}m`MOxyJmYLIM=)_}Y^N!seSKf9U zygIXkXFS$X|LudWey!i(noDiPwk{9ttwVpugR4jVXy3Tz4(7Z3 z*$B)N(Vsc}x1-O5^CV_8vi!A%Tw1eruy*-LKzE3&W1vTkyByC? zYf+BgwIJpNrw7?Au7q5n3!NxzTKWPn4I31c6#OgG_TLaD@negfGr3bOkKTpm!O3yP zPOPDli!I@-y8**DGWQ5O3D0vn{?O&O9kkghPBM{=FU1F=-!66EC3q~?>>KIFs~zu@yp%#ib4CbRV^j0zGJG}^XUCtRA(y_mLK>|4`d8of#utn3wioxVF19s1JvRQGZrdy0c~rk^ zV%_DPZeyAsx*cO3;I=$a-T{>l1K zj+Om{=3{#^)5{s>-aG!<@o687)=})A5uTT;l zGq^msLF&vyuPXbj{B3Wv$s3(iLoY%62{4pqHz*S49+7gFfdPH^%@+r&D+(}$en^X9 zjQIFP$j-$b^GiNXvACfD`CP~N2cmPnSBAu$z|(t1Dqm0REh%Fs6EDusEOwj(8yBvR zAvz(9QPl}MNLSK(M$OnCZom#m&9za?*=yWa+sXVXP*5D_807DS&+!KVxMEu$WYr zk3Kl&aY;-!IXPU$wfP1g2cH?o;r6x%r@q)DcP#6sA6~PPJ$+lnp=cY0T>D)4F<#QL6wP1H;hD&&*hq|Lqz86zcuI$w4I7!8 zJpvRg2iFq3>8KGMXT$90aPsAuB|kL>kMGIMo7j(%xgJi4MCT0|S;g!kI5E4?z=~{k zaN?(5ayVM@AUHK~rZ4a!cVk^1Qm4Pzeb{}*27dmIoQf#IKu_%U&$X2P4A>lo&nZ*f zH(AC*O^+hEsW4`dQky%MU{VnpP8Hr2C}cp)JUsIfz{4y0Sj$L=31hq4#^mG&O0GLi zxFwwQN9oXxi!ps6f2%m@m|twO?u-HX$p+G&JrwHLK&eiOiU`L+w5*C=%iO{#EsFY*GF8LV)wTC0J!$DtjaDyP62V=wT& zVqf{;giM9SxuwPa>K9sLWA{29AG(wmScGt7-;>M+JcStDJ1r|3d9X=)e-qBNR4F*1 zb7ibeZpW8A(rd+0(usl02Z~~mm=8^|FWFx@=N}ipNcNrpm-ks>3>X^?Dt_uu$z8!A z-DV7OJbl4n3h;I#R|?*9p9r-z#bT*U9bf#kvnr2#34_7By z>i~SlcTtUw(UF?i9TP8v=ndK@U~Y2;BZWJMGS|Er8m3c_X~nnPw9W_=4x@eSN5ka^ zRp>g0?HSFVF=#xjflltF2;SE+Jvn_z&*Y?aK^!kj)yNFfOV)xp&fY)>K};Fi+bGa= zoFeOdOh(f$`zAl*iP@$dbn-Q8?;S`g&G~t;BS-oM70-{EU$`kFd^udGb0K`M;R3nzWhv0u(B_hr5Ka+qjN`1U{rwthE`*gt;!Fupi2 z=X#Ap`KY&zHhy<$pRiLlrd;*e?TxG7)|IbyIlk+!jX-AH*RbEHGXgWgJI_7oV?@RF z5)%uLr9RspvPRqw2Lf0-zF8J53;-r^4VPb5lIE+j8D_zxE(R+ywW67qt$3pSCZYfQ|>1cyj;$JU9Q{I{YQ ztT%cddPJi5yxfl2n8c2bFn{wC76j*)&?tBS(l%%gtR8n^>?snvU_hb|k%XIG*k4Nb z4<3m+qz+~rrixxL2au9D*f1EwX}U5N+bqwN*kcJe*F5OF(Bm@KZ({giPrQs}e=6Xx zoSeJ*GyRK-pT32M0QNhHiIfhKCjrTsgG8JFj%q`2d?X(%#&-ogw%WH09{ameeew0b zu>g5MhQC{1xxP2Hxl~^~ZDfv(DbL1%{Yt6tC+s_Wcp=FQ9QB5&3xYNJ1=knoUWnCGKg(fu#~gc zh%);G+_Fv#b`JY?jMRYs?|+OsqY*qLa(8_8ACnG-eJ@edKcIP`&VHD@@H#Jg2|Vi= zVii|e?|J{tdf)puZW${2hCO{C&e>ap@dI%klVDlxVlJENvEpIvEFdJMDnG+NSt^*tJGyzKO>sTy(bAIBJ88yWpibT{|81^$6 z8FLp`ywG@5tUbR;HiPL@0I$K#zs^ryhbeS`jZ+M9Cy&G;-^>p(N&X1s_q|yP-y5XN zbO#WB_gVI*>7It5B=9;D>Pq7?G)5rrV>NM4jQWoeg9?3GmgscO9CI@#_ytUu@xXU< z3u!)jQ)Ybb(wMEW=c)y{eKMBG6|2X>0K5@&3=#c7lUv`iAx>#b^GZ*fe)wWZ@DFdS z9j7{M0y`{)Forn+dZGds+G3lWk+OLHCSNm6Y|Q;Z5IkP9^7VC;B6+g{q0U}_KQfWY zqX&A5^N}`n&gh+=n*A^VN2f_VNbmq|StoMj3**pWvKja)G3NtG)UTNEBnYwKV@>A> zjTpwseMTPDc-u_AdcgF{G=67%W{-Q}J$u8%q5Tpw{?2E(`eJQf>1b~qFY2@@t!_W*2n*_yYc26B_7RLJ|3$+Uit=o#!tY?`$xu<4pHGF*7v%GHs^}>$b zKEn7WWbWCN!PC~so7VWDGD1Ge(5>DKpPP5|_6Gr$h7NurPr=u`I*|z;l+y=f9kzO7 zp)tHN*n9PH)eDbTFddqOpZa%ar#i8$E!<=g0T-9wHaxu65 zS8aUmoIc?jw{cn*U!JYsa&doJi^J49Wn&8g)NQjd&}Q*av*|n=sdVTuq~b-<(_L+- zS(m3R1$&3loB+7QpLJWTL9E^0i7`lNm$@0h6pHwl+e^`lJ@E*UmvXY9Va2Rp6e(T8 zgz~O2IXbj7wlgl)H#g+~pK>+(m_<_u|98&B}6CXI8vd;9|uwnsIxDV<3@f)1*T%Rzg0uIPxd?LpL zN3V+Ky>hd=@%0;zp*{BD#rksrtQe^*=iV6wXXZb^Rx?sj4*$U31HQTN!9Pdc7YXp#Y9Th{J=@ z*8-dL;aO(vSO6`z#<0KPVa?@a#s(gjoLOth&xDX_S~;*8ydO=IAF4bSLDgVn^T7gq zQph)XJ&A=c@l8t1fjj?A8o;4^VPvI2E1@%?}7I_x#Le=8Qd=S%X_ijrzaLV{K`=b zbw6C#yj#9=qg{V+8(V&K#WdHAEv{VDH%~F;X}f&i_18zBj~!q4_(uLb0!(&o2&%HD zuxWJPu<}{NhWIoak=f*1)+0ohpAu-dSo?`Y7eoC7q2}286AXT$15WE$M@Y%hf!xF( zK~FB;5JQ$cP|w2#9C2Fxi!v{uP;$t}iyIzusb+JbN`&YKE46I-s)L7WeC#+pRFkEj zeU5EmNr}D^?K#wAp3^Yspu5E2hVOsWPl>}lkGytcj0~3^TsIf~TPHv0!7q|*WKx$=^*9$A<8sHxOOM=#1echnegcTmYB4; zajADRM;r`){4_}MfFqnHoH=CqAWWqbH5uvfyg^RWP&Z*Mv#kTDylul()Bmd8yb#^( zn|yLV>bs5Mo$fe%L3rnnZtKZ&AEmu<)l+Z(8`pl9^ON7!e^qYW)?e|v^Q%uens4?0 zY2C#LuQ;EDrRKz-=55pqAh6f59G&by{vUg9)@xgmUFYrWtEE&VixeqQvSh)sBm*}5 zcMbT#zre5|Lxvl54}KI38b5v$qj?BjER@HpR6AC`bv7uLng?Er%&y*#^>siC_4l-y;T9?3j zwT=Ip^%F<1aAdx^MuEqC$A{B7x zVR3nCjbjE9XC6OLxzUJ-b6jm|e~m-sm0{|#9$VuYu?L&Zvja~SqM9`H+EGq2j01vf zqgXL@T5+``f(sMSiNl`y%C=74bk{6yuP4wWTW)Gazifk0$sCj722;i5imJ!TMh|9W zfNWdDYG!cYsbt6K#qPvf&vUB{exfll4k%I61+AFROOZhi9-c;6bgFuu7zRknF z)`b%6_EYB9L!X@ws;+*8aMHB~Og|{bMSiw#@TRZ$)f+oRDlAQKjb(4tjb(VdPK9-h zHZMPT+5^2Q?;OtzP2sIPAxd1q zXB6RwlWO^iU4kngy3|KeBkNpyho;yB1cW+&YEJt|+m1+D2E*vh27)*+Y{V68+>#+G zq!%DW8$NtM(Oh~R~X4PN|4mj2|2PvnX(UmuDDN1s+C-f@cUB}vf0-X6t9L4$Gt3iWV!1-cl(3wF(_`hyonqO6V@GICrB<(U zIqw*WFw&50)~%_p-YWiWFmaKX_2Y*^#0@zd#K^iE;eJ|;1t8WTzWk5)U}9^$CGi}U z#l`g}YmlqUtl9oeJT^F@y~&IjuHl3QY1>a<_7gZxhw3W8$MA4`1*Nv#H$)}nRZ1Sez?O#yCql5Uet&s+^ z@oX&gSI;{uNgkQ)Y?!6be&d11{uGK6d<(FgoqovGvP3;JYxDVbT7~ z9zU!D7frR8IqpyZ35U?`(5Bu=ahV2pja3LF#cpCnq`ie=DTcsr!H-!eNGORs0>BK%IdkV80XAIz0PMNfPk7bq5yRX~>kL%`FCirt{z$9mJ$TVlbGAPNf z8>*c3b}8$%P$z2#^YmC0NS!mY&@z3T019=004d09EakD|bun_~+2^9kc!VM?o<*xx z>{)1%Wh)GZ#=w*3omgH7de+8cd5DQbR?hHo(HNP`IZtR$g_OLn_|=YjOT#Fx;O=7s zfOaz?^~2&xxt1Gy{yn`5b}<0M8Juwk-ZTU;@)fHkL|GGK^muWsaFHFEi*icH2!{|h zp)ZxC;v@2KWw(7eFi%kS-ExD4BFAr!41U;1jt^ONlR6i!LDCV)Z6|fG*s!I({p7_P zP{eE~mR}$9$v?snAX?uq@~^Ez@mK_SBXz$Fr2DJ28Jv`{a~9^!j@m!p9HHg z8jM!(74oNSHjqSlwfO;(AeZmn;^^`h2Q<>abzkHlO&Fy($NLrW3cZAR}$w zTKDVs5xaP7R(IOHY56JJr(~zUjdO8ZU!P}vF{}HsJa|kP$UGU_ws9C4pDY~6$+-)3 zGA-xev1iN9EMmS{y>q8GmuMo<@LCJ0X47U0x{{Aw@jP_fd8iC=)P^_KPNkIZ7rjFs z4wzgbn1>H!Mh&NuRvdvvz(E0cIu|t1;Zvk*N_N-W?8qP}>ZGuH-%*t!^7Eh5mza=vz z=OG8{GI+luW>sJyz}Mnal_>;1K&Nq$w5MK7ITKj0jElCQ zj6m6NAv^16sgnco2E!83D9#R>Y0q5km9CcRQ`{QIAB$y%2Fb?x*e}avY(rAnWf|)` zKm7u1uPKV6UXXo=Kdl-&7S&hkB|-$qdQ6CLIF|6pm+cT;MPr3$B=>elDE|e;SvOmN zMdLAV^AW7)pp*={ZimI_X zR=9OH~);6BD1q z^#|~5G=`4@y-~`=uMJ9_fob5_rjFdS<#D>=E05kZfnVhjUqs**i;nW;1VPfNe^q_` zEZ-x?>d##AWA|utsJ;-_VmCJGPsP5tN3OH}RQb_v>)XCFU;D+7Zy6osGtQNr7-XBC zl0Vh9#Xprl#&>dVdGocW{wQ1BV-Ei;#BL0+oEudj_(C2aSYtx8b2lPW;$$85hIU2B z>L8ME!bnULCot&cMFoGo;?j+s9P}MBZ=wmYpMHvChkY~g6E?=`j30s|x)gl7jXsKH zevJ!2Y-r1iY;fM!V3exur}_{9D8I`CcO2M9wpu+7!C=uC2xRzD#2*rR=R`rVoVSjZ3knq<8|f0FxxZ~!4mPNl>EhN zxK%+&o&HW%Sn{c;imnhj%StO2j9HF5{=jJ~rG0Y78R^I<6^f^FR&bT6W;^#g7He|_ zH7G12n|9M*?cTBg^7szgEIU{j5;OIzqr>X5OaWYjKl*UmO6GRiAlM28s`KL*IV3S` zUuJKB884AJvywBe9K(r#7~FO@esK=1SY_-0C8gMnLW?bcY5hJX5D-oJa(v^^H+3YB zCA3hnrK}gq5h%7C`BczzWS9jc@fOB-1eYAlLG;phK@eLO!$WPGp)=J*V~gPAv=;r2 zuR=i(_Zqg={-~_oc-OmD&=)V+=>6D*AsCNaOfAQA-=c+U`wC^M+1lT=*-!O#GpxLY zKw901wL8o3?1tav1#`a1ur}o29(hmfa*!jpJx6fJNz1YI#gnfLThit$U(BOi@WXCx zPAsym13&AFf1r7;zCjPnCB+*cpCLyNWRNrYSZ+EuqGNLBMlN;aoz5sDcaQm&v2UGy zZ5h&;^5fux+%>uu6DZ#&WidX!>Q%Bo9y{ro* z+EBt_6fO`6;sqy^35JkJR4KziT*`AMK)(GT21WE2W_aNsmi?q^@B7D*}u$Ud?woFxb$Vh{4<=C%$Z4cE;Ht2UL z!)EcDV@G+@^vxGIR!_dZH$Qc+DxW^E+gKj)kMgH{oLrCgPu17oqi*})DIZT^PoA^< zhb`xAc;dky4;Juc8H+TGo+8dhGAz__dr50&6WJwk?g1^E*i@4j z(^v-LjZ3^o37|UnJRnHjW+Klv48<{EkC*nRqJ{ z?#@1nxkJ^l9ySlK;S8|+Vj^K$kbJ=eTWeP#flL5#R!cCAa_i(RXK#>Y!3T2t8s3U2 zb=+A>n`5(GK|BXcM0bxq?>$xDZ40(9+c%~&dSbllYrJ{vFRg7+kR9_SotpkY-?oj> z;QDHQphS=cG0#0FsTLVaura2+#(;u=sgF!7JcO={N3qN2deSi zUyogcC<$WX1P4^B1~<059zaIAj%IBU5erl;HZJ6_DbFq#%A0IemGV@6Kc=!_7DY_W z<;XGUTChyyYgZW&Dt*ZzOp#9vlX(N&tcolKp>NWayAQ7 zPDa8W6;LP5V7WNF26$v(dSjLXm~7B#OB`&oz>oS42pr&q6H^c*tS3d;7%;mSRC;0y zw9@P|g1iV^8W^>~32{e}U)Z+|ERevF>7NQP?W#a02n2FANfJTIT&&oJlITYoW7j&C zJeB1*Kozf2fTB+BB{YG_#e!W|03*YA{c5Gy5@IN9Q;6kDU3pbp0(>FS7XA%S=#58` z#Ah9}1jNtAen-Vf@DaINc0QotA~L^zf!_qsj8@M>5ZPiEoP8%pq9&ec_xkLc001i? zwqAwdBo$T-9Gn|qPa4UME;#Bo18l@rR!@DC%B>{FNW&vP)E5u3#VrT*)5j@4@n?BC zkUgeX>0Twr9^LBkPx*}L)J1h+DgSAt^}l}LJj+k{cq+c-c?$oO?DTQ=`yJryRX!eET{d_05RzqHtX_3rXASg(&Mr{PfuiQ5a?Rif#W^XeY7S zHe(O=3OcrMNigM96uG0vQIhbV6sI{WWV4||GTXIpjN0KoSRfUM`> zG=QPy%80+-k((kYcVlW<&>|p^$Kx=5T5dcl<5kX!c=?yc2wNc-n+&)y-OWVNr?m0Qh?&~8b^LFP(P90j zX^$XyJnG3dQoHw$HA8X-e6Y>69#zMpy$}o>QNU@ylruKOE+&-(y>ah+CLnRN&AE!# zqL9;{t&L@2$~-~=-7(vDU@>OwHz^rk$xP&IMX$6vm(ez$z7{-qY`V79zK)hnZS^T4 z^#(a0G%h|V(KGgguIr$PZAWC+F&Bg}3|B&J*U2}rMB4}!rdN+mn{?-3y(Dcfuc2)V zjJ3!)kTMvK?|#RDp~N|BjJ!j;xSoq5tW(#??K61JvN23sSBHKv2ASQddz4W}zlkzy z@Nz8Q*1@f8?bc>>%XQ{!5BA&^vz*Iu)=$i7OPtg0J@Be4uP?X! zbByo?G>gQX>R;-KT|5vnb{W3T;Tg#H!RwL$%Jl{O7IvU3Q|PkpU~g$B>2N2Oy&(0* zpOXeR$k@iOPxfa~lP*C~y<#!Wwx%XML4hIuK~FnM#C}gD>l>t>z>w#s7l&n`&s;d; zz&^4+SV$YY9!tF;mP0O>8$~ZL8y6>W??pj|lzwL8;?q9&qJ~~5u_t|S!B;{HXngHm zOuWFuo1KEnZD3Oe4ntqijK$Yn5ONB*?15ImkG|9^&Y)zx-d7Yw>G;#<#jx<*&o8j#zhldXp_^up-rhFv$}~&VRXsrCkw_k#DYzb_Wks$Z zUl|7sNR;j75?xqzMKeS;ZEEhP)B2 z=jQ95d~H{@h}u16jRWK-Vr7WuSb2C?9vKd-j(*}3AH^LGFI%HyzEImp>7dal-JR0q z1g%lAcIvcr>Cdz1W`oy=+O2gKwObmrQ9O+{AM%G zob`=md|Ad{+Exs3EHTO@5O%4t(WbU5LS@zL>$%iOaFTGr=5T@M0*o)Pk<$*Ju#aBc zlwp#Ge9PF34>HGcIEYP9a9-VT#cbO~4%v1V7*livsBT0nKdUd50dG3Xuagn|rqkI| z_KPDw?N0fdmY08hZXNrxynKIBf6KG^Q$AMrrRwoJZd{5-bn)Sczm#k4r`vkdnm z|9QGv?CZEk=NJwbIpdQ2@`Ze4Pz4)OJJn6A#@m%T*&d0nl{*Gl|k>;X)1r&UO5)m$j=5E}*O{7W4zU zYh+h6{io0F9OZ)pVJW&6H@^C||FCl*s~^{#6m5@9rY#7DeafB#5N}F+{-DPITkWyr zXHtB5oWx{p8x3(`z|XiSPo(q-T+)HdFSl{mO?zr|4`Tvs*UOe=!+v;-CF`f0$lZ99 zB0#y()&wD%r1l?Ub9!WWntnA1)gov0LR&l;*%gHHj zbt}`g?YC(&92SS;w4?nVkHc>{({g3mh4fI%a`_!jGBA%gr~jpSL=4LW=kW@p$D~Y^ zl|@(H7)J_@0h~gQ??hnGG8haxe~^bpkK0L`#}qjp#}cwDAt!NIEsu|jYx-weGoTm* zTp0yMK@+(YR8c`nEN%!%si&=oOjjYb7#GelYWwbli-(ld`O-3`E5C@vh||X&>+pgd zJY#W(b?5K$EHezV0j5lr?LrR!y-~uhop9Fj1r^}{06+jqL_t(p3RvYAU+4HVjsS!d z<(|6NU&$#q#@b#SBd1-bEaESu?I-dre*rXt)jx%890jia%+ajX7I*qs z-R6r~A6q~5TPAi;|1mo<3ZHfCmQ%GT4s<&sL+)lGM69 zm=GI)K_x2-BHA)TDKRoZ$1IqjFv+It)P40c02W9R7frlUC4(Yt)<3>eXNxZTB>Yis zlw~Pof)u4$O4^6qSNgHLxXRlTNn?gl@;Jbk9>xK6L*}YA9P%4bcE(%aURXi^21+;h zF1s+N+*VHCN;o!Kj?I}GYyFff9I5ijN-q!_cjHTp(~fe`=Y05?KMQay8hqOnfETZj zRqO?g<7LKO8xtS{%uSVyT*QOuSEH*Uy6sqVm6-uA5g8X?oGL$ zBzX`%#kH|KK%cCB73`A)|1Su)-%eM^c0+!aPu!Q4AN%iBJjhApe;R$3G03=MOv9<$ z$*qj5bF8`ufdL%5xzVoetO-%|&6}M`&2;@Q^$D zQud3@dh)xt`)5|zhp7iPtW+wKBXKB$1Io!gcpwXpAFeFuueO!gMs@kKO^)r=mYW#2 zJ=mCZMrm2vjEARQ2}vAn_|0#`V;>W`Chq-h9V|M2B4;aZ;u59!MfjL|qT3|BKEu_~T72HJ)Qk;mV_T^}$14{>Z?V!LVkWOb+fQHE}BjL|L6a;)ts z=M#VGi(h-N$XB;|nD8J#d{8-VFYXq6hBN zvn5VYOn~n9YfQlT-TtAhw`mBJY;(HNxh#iW3KuraQ|C=`FLa_?T5?7^0?J)rnQyqt zTnaZA>z(}~l;f8LFWYe{cjnQLkv!qW%Ba6yE9d}3mM zL&k;;a@MEDZ6l-FI@0SQ1oG7PxM>STn|@PX zNm?6S+r85I84G+~F4`&teLG_n#csb$m>O;$(zkxuB7K~O+0NmSb!5h38EI@Nd#tfx zt33q!H{rx$9|dP0h>4p_KK?ZC9X}1}*#9(R>!Xi;?!1Gev9h0y?2;pn09lg$TWFWe z0a2Z@rh^Nbk{fpDgr{t(k(?!q9-Y8K92ZgUF$9;EzJ!tHPN>dE>a3cHlS=UugIab| zkMhp9Ir&8~^;Hl1dfc|$W9+!4>9nnVh4$c?{v%TC)rgPHmmz zKI@Ai-?nUy?8H9WuI_9fHqYtJd*IzShdv`8dw>DxBv8SmxKBbRzpqZF;KXNQf(PrF ze)L1CJlaeT2R)FP%NK%khyJ)J!@zY}J~bpGb2t$wl84lJL~AgKBiN8)4~ioN}_avqPqn zu>s5fwtnf!7A7F&k*XJ}k>N&d)Mp&MK`-^3qwB^_3swi~R8@UU%m}ac!KGJ;u=^>xEVNEb&mEh_uDmTi(DA7<_!aBevs}wqe6DeD~dc z$|#fVn71+l;9pwprZ8lg+W`^76`iq7pV{tth-|#U#>v~>K_{M=X_=kp*Y$>99){%D zfA;Aok@Egj`iIBLE~e;mOvBUm_qcxkf(K72N6xzICxgLx+|pqBb8oC@gP*>o)37!f z2Q8Tcrf}Mx{xwG1%CUNT9?sCCr1lqawgyi$^iSHnWxIUb6!$PA@z4dlQH|8II^zrQ{KmLj3VU*YLJbci!x%3t7Oio+d1-2bXhE{!&gGu`qf`asOud%{FTDFZXM&d&uE%}rv;Gph? zwfd^q7ha5h6*K~yH@x~8-C9rRR_!NzO+2)dYqb5(7tCdJd+o`!CSH4O#ORsvW4COZ zQ%N$K*wRmxAdGZ2Fxz*Ouf7>M^-YUg+w&&)#BJI3jQz@%YwOF2{ILw?l&#HjY<~JV z%jh3D9&MI$^VM(u$VZ*+IsM{2@caPa7wx-iLS$01xXg;{{0=9>vL~S_BSXn=P4p~& z>Z6t~V6j}|xiosQpb1Q>^&8l(3-FStYO3|M}e;4Eia5 zDiA%FEblT9iG;>bbW5EpTV=?p<9*7?i8&%0^ic|*W_!PwiQUFT(j4%aG#2` zc>usTB{4=BmyXfol$qe(=p!Bufd~xuCm%{0j#(jniuKfZnVgC9o57tS@7;%#2zWq-tJHBH*% za?V@E5~)3%0%RONy1+Djfo$uDGDZ@4`@;5wVaGB^XgnHF2FJjJAUQ+K6w&2ZK^5pP z|GIaFw>4{?s%^IxF6@Y9>Q82)2UE7>rH^E6hd>Mt)R?s`F?gvj8TT)Nwyz?O0_^rV zFx!k`jci9M&dDKCogMwox^bjy?i={DIehpaZEW^C_M;;|)5_P*hl?lRDD&_DJvNld zANkfVX8W+=5rc01y-s&>ojA(tAFij;$$#=Zg?*NNc@Ol8;mdK)h_eTnj58rq@E3K( zt+NpLn~Xd&ie0wsSC;a1;#C78lR89j^#oLmuaRNP<^&ysWMWakJIRR!2U}#uV~#zb zg1i3g@_WY?AB?{&Krte&SQ7It;!HxBvU90K2S4>K<1UFf35E&IBfx*XZJ zV4Q)DQDfFV1nb*4E=c3bwP9@sj6ae&^l2E!mAY+279l6#&-g%|gQ*OxN8`pPmVjxF zO-gsvHUbkTp%fyopVU*$_ge?gmI@mIZ-vHFHjlBGsYB+VI`jY}|EbJ6OR0tyW(N@o z@NQpaiNan-kR+XD>dXI#L-%Frk?YIwe^&H+9M1M^Uu=$U`}V|9J~1cP%1^tq{K#|G z*Y=b>Rpw#S$Gy2{yfQ9d8pBh^E#rILGp;SKtaXR{<>rima@XyyizT{fqVwiFVs8-Q z)^!Z}LS^M9Zd2t^mfG;p^`UZv$W1Mr>!KIrs|5-q+pf>3C|i%xd9G~Z>DU#m* zJ^^okO*_-PBuIH9fDO~^E+63WSDy*ZHuJ`T>v#i7+{IvzoRyK>dNNMYRQf|HKEqo; z^?UxfWN3+nP0O55tZzKE_ZWw-V|0BaPfW&TPsbzeNZGb{Tq%Pan|4Nho$a@cZA9Bl zGo9X-a4kys*Q z;|H6Rdmavcj%gavm;>lBjOx=Dx37Ku>$msbe=jzl-QIogz1xRB{Qm7<{j1-*z5hWT zkVj^Kv?t@C^C1-yIBe0WuetCOiHoZT$mX2cHmzV!q!3R$_5pmkFff#K0+&$qNf+4YaAf^H{qc*p#v?&7D;t}3 zvclXAV3Fj-N&tR}8X57p*`kzl(d*^v&yw>N0BLL+WkpZ!7q>QB-~2Q>I{y^ER0hNL zl>JM%o7GTwag(S3WOFovVmnDU2uiPW8=-R7qby|&(zpm&>f#n=*4Z0>VC08juebq(uEkaBD=vk%B8wOzEYf_-D^ zBEo>!r*EtV+IXPLPb%KPA`cWPZQM1=_Qt}#jg~mj-4i!cF`%DEPTXBrS?i+O08=R+ zF>hbha>*)e#-M!aP*S?=&jhyshI|x>l1C^a?pZQhwc5E=R3k zxZ;Wae)HQgws!a*67xjUel`d_kDrNwcn8A-^LPd8v4P9>&?fL4^V+47e%11d%i}Ir zjvJ=g(c-Uv<6F0P@@D|(-_4rhn$btLt8LjEeEjqQ4tzAKW;wzL06U%ZfzI|t z9=q)$EtXr8jR9P?B+Q7fdHQR3$oCWWBJVyL?-0lVZlWBfyfiSz%HH`mVe_xw=s~PSTJY(DgE+1=U?6f&wm2&<$d%d!hz>(W+HXj z@jM`kD~RBJiV; zQ6}3@hoUB$?32Xe`>ZP#(RP$Scaly(KT(gV*A~g~{SFHUd?Y$U-YAsQzN#8y{rlYk zmmD6SX`|FPHrIJ3LOV;(Lz zX*Y+!H}_MgM|kD*wDncbfUvc1Y*fmz>jh1SGw{^sK=8MtsmzuWB5`nl*f>9;=V}(r z^)O)S9JsgnLbe~r?k^_Cm;`vs3SJ>Yr^8q1A34B3rZ>SnWkZacei4qf{r5dT+rGyQ z+1Wp@YvY?>PakkC_sYq){5oIga`XRL9y;~)nEROI&d8O`Y{P0N2bMs-dxZjhklXnDt#@R)LLXi9??eEW_P$-m{eA$}X(GD%I#Hxac5h5w z+Yt~|GB`L#e*Pl;kT%+UoRJ7)3#p{q#wd%RlFp5P_b{B*6k2LjZfRGO%H{CpB}M?G%ea55kAL} z@||nE#bB|pGFNG$I1Ez49req0m#caO%%@?=z%}@F1YxSF-yl-l=w$J&id*Jy2z^nV_)tXF-PGqJw8%s)Z=8BsvnF8YTHKl`a|P1P_a z6yxB!s$t@wJmkn|vy0ROT0}WG(T^Co{?S|u%P2XHoba&qZHDQv2}?tvaAfno7A#wK z#!5c@Jd*krg)S%>m&ENg*2GPTC($m1DfdgFl1CwTavvbzEdAz5Gy%}Bd*XqEMBa-V zz^x;{BGZzi-BnAla>jeyfP=S<#&LE?Ko{@9RT5DLPpGNPwA1L=_%ZDoH)v-{E_Do`&@s051jq?)G>I<`tf)^ z+CA3cIQ=|Tf65Os##>(3{xlB(K4Cn@w_}ts$(HfT7)I{+O}-e+Efepov8gj{V=+Us za~7F%hsl;$xe)Z<-eI56%`&(6gw}I}P0TL8%t5TIn9cfSoB8CwoV{5tN|73| z-f$3|Yap^D%FJilDhI+4cmb87{JMzWHpKP83ux-Z?b?7{nfuT%b##c?*d>J}Su`sp{(5HImaJm8e^i4k%ZN|v*r>3{nr z73yppWd2US@u9#nb@Kde_Rqfe{o5!1?#H(ezWwdni;wdLz}McreeExNaQpoCIPU3Z z*2=VkF~GU%^I1E&G34C-w(Dm5?lb!^WyWH|kHM_}G=xOvpAE3yr$S#Ti7kPFa&xvZw%ws8{V;v#1 z2+;4%KJtBw!#;G~fwN64~@6Uhsv)ljiyT6lqkJ~-MEj4b> z|08l-PCq$MGcbw@AaeB6Wf7o3n9T+Vs2EMg=6F!=sAsN3NMB&uHDb!i&_Tz;Gbm~6 z(i_{1L4>-@4qgnwG0$hzMmn*k`M9f%r4)l3epL8#U86z*Hjed!fNqRgADS+NI3TJH z9=MGK8swAuposWF6Zw8yKgQU=3m!z#y&D=LZ0<@1G~NU0X8Aoz+aHPN?g`#cF3e3rQE6rD74R#Z1Gy{qU@O zacjW5byB!kmxndl6fo;4n3XZNxg6<2+l5OwSjkf(Px4cR8!nJA~R^jYhAOfmJ?@t>kS1``(;PNMj=#n?yI za$`q_jLm-ygtJtr6P^8#5;l$jq&B1o_Jl*vIXp@B&WQXJHuBi z@%sOdGWPNY01p6mJThke*fTyDVoXfNEiQLsj8jI0D%+>oanZ>NgOZysO)0w;WZs~O zsiP%xiJLNw)2zL4|1?JMiJD0dD=y1GNb%y_hUtE>i=E#2)M{+Fzog7VKzPKAEp_L3 zf~w0{=NEYw>)LePs7|?et__h$U0c&eN$?kb{Lub!2rTNzAsanM^M0W|_TXZSDHiri zD#%DYAXr{py0SLF_K~vsNU;~vJg}rf-zJC2^X~Kme5lz`rg`)T=M7@Tps#i(50!r3 zemBb)apu4v3x)?RAOG}cx1asnAKbq6Yu}A+^!cv<-}v@>xA(sF-tE($eR_NA-Sh$L zT+HgV4`2KTC_GqTOb{+^KTE-n{yD~x#~wnhF^k?dUuzqFyT%5CjiQ zh<>9r)a<}=3{5q(D0g<8!qiXOP}XO-oSYa%;z6bZ@daYqFm3D&UON~&Khaf}h?0Ni z8bXxR^L+!Ez~qc0u=H(lscRp-4+bKS{yX3KmD{(z^-H%;Kl{}G2Jn*~et7%mzx~_S z%@ei`Pa|s^rkJcPqD~KG(nN$To2uy;s%IZr2Jlph+^)&4zg9sy2bdTnf-<#zxMj|g zT(iuxi`+Gd{-xh_3rFmzMDFzyd89fOgpRs9IVssrWgN%$jZFqhnhIRt+wPQBfZkvgacC2M$&v;vVbksK?e=42!>lfT9r+(_FZ(82PpSab5UH#g9S$^7reXO5+ z>+_U-8UM5Xi#_oC0N{&#^5v4uE9T(K^NU3(lYQpgo*b`F7zU5Jwq4R@O+)H}fpeE4 z@XT`zX6qW#1#mgQ!vVCrECMNBH>Vg6Q76mZoMMoqVKZPZc!=?t8cUp)AJ9}3W!p;C zI0nZ$|4tS;aqxzO%=%(Ik5t0NB0lwnZ^YB77E@)t#Xoi9Pr;rV;%Qp#2nJjcljC1& zHSkgIg;tPpj!O_RxO}Xv?L%G+=UO?4y;dq|gP7!Vs)RAA$IFY&3c806r}!Km_-G@a z%=O|ln876zwSAyr2(a~>lpQBre>l;=OPw4*f?7XtA>*9Rp9T1=Kw$X9wT+9}C%V*u z*-$ujlAJOJe;));_aQ-YZn*Myj$#>@Z|A1W?*ZTeK=igMnQ1y?tCtKp3H+AHpPeuk8Jk=j zxus72k}P#5u;V(Wl;ev}#`c2E^^Exm&BP0eB7ftJ33H!&ytQ|Jh7+CZ9FsnkU5m;2 z;oRXg3a%G7;Hlh0+U^0bd%Hq|@<)gtZ|HE7I9VaO(4>Te$oJxjO4p#s^E;Jr0Ag{t z$3~NEoY2N=o5JB*g&d#k^n>T&J#B3-z|hUP!gd=N_Nt8Kvd4zD%=%_5*>POFIFF49 z+K|yEKCz>3UDj3&cl3Pn?h+|)xO2m<-8*s8g;MT(0Po*E{K+ScDKwv_|9FJT&}+Za*NK<^6cCwzjs;zkf1(i}T^4947C>hWI0P_`^YdCZZwb4_1tw8*eeOsitvVcJ#9ryFcfUip$64 zje!)n7Tf5M(--pmK*$iD1h!o9vJb( zf8YJ}-{=i!{-X&00`U9a|K9Ci{IlQA-~Z=J0ppMM;@0DvGCe?u?T73a&_Z>}26J#Y zu&zdj#B%$z%`Wr#_w%BLW4&@TJpX$<5>G0|MW9kNI>(2x1ha9ZZoffnq92Q=3F;b* z?l?@9mzyeSEP`+S+}Cdr?2XQcEkPEg2;O_9N`e5jlZv0I#anXZXb-Pl5n&!k-6n0D=|&xoYMZ<7(M ztfq2sGFpyOGU;P87_*5-j+FOei)<(WV2h1$c|#vbI^nZ6vi%U^ zw&RWkum9nLtg?{lCwjP{3onE8+~5= zf00-Jx6CK6`EsL>cH<9WKhF)>TYnV8U&=-xXCk6Ao%+?;ivvQxa`Ll&+MeZ;|I5lJ z=P%0fWj_8a==T_$eYCP|-|9{|va`O}$9!!$_HUBl%+3F2`4fPT`2xUda&MOv=;)X00Si$CFLeX&MX8#*a(Z2tUaL%c5cm8)X34 zjhvg+u9fIeU=)AY+;?(%Qxx%aUI>>_22Zy_9pYLpS*|I2LfH8uXx+JeF)I=1?Q!=Zy)~aKfL|= zhd;V~?Js^O$0`q#^Cf`a{?%{Xe)Pvb&5I`avw+0q#dGqvbN9~Q=Hut>83!+1Z)2Gt zIDc#((O&o(YkD)s&%YD4!9?5x?eR~IK(RF?-(m%Q0D=@beP^N{#4^fyJo^bKbRIS3 zV7&>(&b~{(+b)jd9$!$T)?b$E#I|G4ae{_;ulQ4k-d(uG1jNuCjjFzo601^PI{oeh z7=C77<0;JHY$xHpo?A+FQpYcmL<3(Eu_z~xY%x9z%tZD)86C&j8^DqAW`OvtC60m6 ziSg5a{{H{P?U%p%Yq#(I#&71uq>nxK^Jc*R@=yNB?MFZQ@b-^L(tL>s8()UWp9r;Lp~dx8*hwI=RE_sq&!(ZJZBLy`L1Mur*E}!M zF200{8~Of{7t4h_;d8!p>~g}3Spvw8{>T;#-NtEfdkgHRxoCxzYbZ``en>_KGZ?&i zLXnL!7r5SRsRgj{N4ZUhZ%!;3*h5CgkntcCjgGwa5+Y2JVMRn@FszBHp=A8g_NB; z5qNXoN;LB~`h*A-^2{Ns+(f%>Sb>Hcwd%=8T~}CB5d?2jlLP3q)J`+-&fz%HGyH_v zc}rOqF_e;0wjEu(ulNY?xI_&QXT&^qe~0 zjRn*vamF>Mw!y0KU9a@7dx;HMD&34vJcWQ|93CGcCr8lpNBC_++MhnpzgsH zWpc>rkrzGz+Wx1_!p3*X2G@)*F~yBc2naM7ho|+3>>m*H6Dj3%`ktS?IYxTLTC8CD zX{$JQ+fVlidR z6NfkMDRV8fIC-YN|BZngc*fM;=z9|ghjO^OA%FM1cW%G=TYuGaKhMkG%0T?yAOG>~ zAO27OLq7d~ciI@a{on8nhBj|}jnXmEwkLA?e42|sO{qo4Oid!OiL`XvI@t7Ary}EL z6D90nB2mwAnlVPrYdXcFqvK5E8Q_yHf3X$fE;i&&iU7wHCS298wc?J*itSiujh165 z=#yHFElm0wVkcEi?()mMeUJP!X+Vt#7Lu6c94j=&Q3X=vjnnEl*nS3B+s)yFOTKZw z;{Z%!DrW0zOHNvjEh~K3E$3p%NvHh5zmGOgVGbA1#b2-o zo*w}G0v*R>XF+4$IQ3b;Oy@-EB6Pp8#DX=T7$*`o5&GJkau!!Wi@D=bJLxd-1X$co zj5Q+%+o!J@4c(S=iF3uP``MLWkK-Rj|IJ?)C8$fDR*XYG2@iFGs-M^@i{Ab*Z-05i z9qgQ|hAjd@vxW`aT!vNRg%CP?WVf-?1lD~n*SJCLwO##yvtNt_JCBz3@YHsW50(5v z@9Bz*G)yAkSn)TPTr3g~(EAk>7QKMv&mO9b&9uMPjt*_sze?Do$txCpUrK^fE9lV`g~sij?fGRdC_!2cqz!ET>(Quj{- zg8Mvw(~6;=a$rLkTr|H6M+^zzy1B}Q*S-aS{FBt*$yLsK*?8E%Mtk`)fVcilc>j7f zF7NQMDZHjrcIqDWkM+eq=5LC_4&RGko~Pnj-Jj>2e)=kXvsmmN`O5eMkkdZc=bfthdU6hP)39GF707o|}ghFPh%`S6~c@ zvy-#)nRUQd%V|^Aj<@peIq^f#PgDb+wFjA}6ddS{c6BWw0H!(ez9|5Qz{qGw684b^ zOO+m|ZuDf)v)=Vn=2=TYU67t*8e>+tC{W2oA+~Slrkq$Vo4A3KxcJt6&yT^T*JF@` zp4?q-iX)~!i)f7O{TF?FQ@HJlk8}nP5V9b~lwIm@Axn;*Kl<%|ar@3+{jK~Pz^~<{ zrcZD0Ue0w@y93MZ`1FFp`GD@S<)zZ*bw3uSy$i6TT&i# z<4K(xdE$DJ)tNlo-e`0@ayAGjogximr{gnHn~q9#h&iqvY;*`s$XZtt9^xg&l>a04F`-U7sHaL#AoNQz>37R8gUc?3ivuW$HYADhY}o!3 ze&MNsL13}|Ta;6kK^4HheG)6$<=9FNW;XsUV-yLW4NU+3-<$rFE6;c4T=Kh~PyB!R zSHFAvjlc5Od=r4!c;){e|HFT9``zF9ojfbb0|1ZD#7$=rq)lmiDAPyEQQ1kUjvX3$ zma)}qK*n3pw$q-5Q9H&*qRT#v0fDi<)OQZTcTXN2j3c5?`XLH>eaf`x^1;hS|KQyS zjHfijLf_W!-5bXo7xe`M-}g8%TOG8vkGO*4ItD)0R=Ne5el!00={!z8?us4`okE^8 zd>nG-Ok)^%GHK0iMc^#LV}?A=p}^ET{Ju`7iO`KHC3KF}@ZQNDK1`Iq;=^8**pzp1>ZAr5 zqWHt76CWqJ`0#{69N4e`2d7O+(j=b`utRS!fTHB+6oIsBH*G-{Nq(gROG?aGY@2B- zpTM+kXoUgI4<}Z;XM&)70j9VC8ka8dkR-SU_1b=U$v$dMTKfUinnc8`NO6w2Za=(e) zQ(S-6W!pbrwViuBHh+~p`rTfIIpuu%|NY$X=ONQaA7z{}RvDXSey?}#6xQu~kfpY!D5(n9cyEm_?k5~P471OfubSdh7PH{3n19fB#?Ke)Vtsjk@72fM5Q) z+lSx#iEXp5b8tDHbP0byOdEI@12Nwbz{6|%Iw#xSK;)*9Kb68yZ0N7bb8|^_#!m<- z6Hqviu{oB*!!h(Xeb&^Y%JRH#_Gwxd4UY2O^l#Sz5`$-ZMs8U-9zAG4a5w41wTzZA zzBu}&$L?+i(*APn=+yI%2a5J-4L+qdFD2?cR?%9WGJ`=%8ea3ppdx;RC9umr$6Z-; zz3ERq0%E;3#zD3|5btaL-t^}|jj#Ws%X;I#0nGYBS#0w6-~ZtDAO5Ys``tjTZPjhtGNB{7=ysHeIMIk z+DkgA_VQO5`;N7Hy>82cE`T{EIK7XRh9JYmL3=Q1sx6J|3Nb#Y2h^U3Y;7n4shbo) zlnlHNNiVzg5QAACk=Va6K?D`axwC=cV_55^dvLauJU@*MX;XEPYQNI-f5w*&10&Mk z0-!ZD3dR@x;s;(Sw;oRjlXm<){w+Q7$Mkr^y|!>|d2LpP*Pa+fLrh zD3C51i|sO^_?mFmVlq}+m7H_Aw)#sY0zXYjy%UaQsm8T$nZWSQlC`g#JF#S!41$-O z?!@cUXj%0^33Xj*wp_l^0*ETU4aw1Tlo zKpcnSfj zO~Cw;7{bW5$$pA}rqo)x9KuKt>SrvdCpD`_%0}rpvIQPXE(!U7zQ-S{v^`)$QXbL7 z2Rr7pg5&7e6_eh|844Y?T==m06g~RB_RObKv9&WH%EprZnb`yxvW8xH~AkB*D$&m(^;uV~-+E`Z<67TvU%HauO9SPc3zEuMVKkNT}Y+OGVm ze6cikxu3#4%i06<(=U=9?e-XM|9{oK=hOf1qW-YAO7>-z5T_%{Fn1J zCwbTzn|I!O`}W0 zbOaAEy6y*^x__q}92UK4X&a3yvGsgCvEo&t9vfmHZBw@00f}?G=ob(^Iu<+*kvl#v zKB;JOljKCz*x>B=OzQ?ipX0l{2#X#D+hn|8qQVZFFvX65bRwL-+qOl`Z|&7mt`K>( z5LUU|IOy1`GdUu|pU{*U(_q{Zyl*jN4QZZw%G_-EUjVY6P=7%kx%J4fkL|}Fe{}ns z|MB0w{rYeIm0&W~a?bpE{@(u|{Nw-r_S^s4|DG|yL!YK?DYoeXIoe;*CphL)F^g