├── .depalignrc.json ├── .depcheckrc ├── .dockerignore ├── .evergreen.yml ├── .evergreen ├── build-dev-release-info.sh ├── buildvariants-and-tasks.in.yml ├── buildvariants-and-tasks.yml ├── compass_package.sh ├── connectivity-tests │ ├── Dockerfile │ ├── entrypoint.sh │ ├── krb5.conf │ └── run.sh ├── create-sbom.sh ├── create-static-analysis-report.sh ├── docker-config │ ├── bin │ │ └── docker-credential-from-env │ └── config.json ├── functions.yml ├── npm_ci.sh ├── preinstall.sh ├── print-compass-env.js ├── print-compass-env.sh ├── retry-with-backoff.sh ├── setup-ssh-key.sh ├── start-atlas-cloud-cluster.sh ├── start-atlas-local.sh ├── start-docker-envs.sh ├── template-yml.js ├── verify-artifacts.sh └── xvfb-service.sh ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ └── config.yml ├── PULL_REQUEST_TEMPLATE.md ├── dependabot.yml ├── release.yml └── workflows │ ├── authors-and-third-party-notices.yaml │ ├── bump-packages.yaml │ ├── check-pr-title.yml │ ├── codeql.yml │ ├── merge-bump-packages-pr.yaml │ ├── publish-compass.yaml │ ├── publish-packages.yaml │ ├── release-notes-cleanup.yaml │ ├── release-notes-labels.yaml │ ├── start-beta.yml │ ├── start-ga.yaml │ ├── test-installers.yml │ ├── update-electron.yaml │ └── update-eslint.yaml ├── .gitignore ├── .husky └── pre-commit ├── .mailmap ├── .npmrc ├── .prettierignore ├── .prettierrc.json ├── .snyk ├── .tool-versions ├── .vscode └── extensions.json ├── AUTHORS ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── THIRD-PARTY-NOTICES.md ├── configs ├── eslint-config-compass │ ├── .gitignore │ ├── README.md │ ├── bin │ │ └── eslint.js │ ├── index.js │ ├── package.json │ └── plugin.js ├── eslint-plugin-compass │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── index.js │ ├── package.json │ ├── rules │ │ ├── no-leafygreen-outside-compass-components.js │ │ ├── no-leafygreen-outside-compass-components.test.js │ │ ├── unique-mongodb-log-id.js │ │ └── unique-mongodb-log-id.test.js │ └── test │ │ └── __fixtures__ │ │ └── index.js ├── mocha-config-compass │ ├── .gitignore │ ├── README.md │ ├── compass-plugin.js │ ├── index.js │ ├── main-process.js │ ├── package.json │ ├── react.js │ ├── register │ │ ├── compass-preferences-register.js │ │ ├── electron-renderer-register.js │ │ ├── jsdom-extra-mocks-register.js │ │ ├── leaflet-register.js │ │ ├── mute-console-warnings-register.js │ │ ├── node-env-register.js │ │ └── resolve-from-source-register.js │ ├── reporter.js │ └── window-config.json ├── prettier-config-compass │ ├── .gitignore │ ├── .prettierignore-default │ ├── README.md │ ├── bin │ │ └── prettier.js │ ├── index.js │ └── package.json ├── testing-library-compass │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.spec.tsx │ │ └── index.tsx │ ├── tsconfig-lint.json │ └── tsconfig.json ├── tsconfig-compass │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── tsconfig.common.json │ └── tsconfig.react.json └── webpack-config-compass │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── bin │ └── webpack.js │ ├── package.json │ ├── polyfills │ └── @emotion │ │ └── server │ │ └── create-instance │ │ └── index.js │ ├── src │ ├── args.ts │ ├── externals.ts │ ├── index.ts │ ├── loaders.ts │ ├── util.ts │ ├── webpack-plugin-multicompiler-progress.ts │ └── webpack-plugin-start-electron.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── docs ├── security-test-summary.md └── tracking-plan.md ├── lerna.json ├── package-lock.json ├── package.json ├── packages ├── atlas-service │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── main.d.ts │ ├── main.js │ ├── package.json │ ├── provider.d.ts │ ├── renderer.d.ts │ ├── renderer.js │ ├── src │ │ ├── atlas-auth-service.ts │ │ ├── atlas-service.spec.ts │ │ ├── atlas-service.ts │ │ ├── compass-atlas-auth-service.spec.ts │ │ ├── compass-atlas-auth-service.ts │ │ ├── main.spec.ts │ │ ├── main.ts │ │ ├── oidc-plugin-logger.ts │ │ ├── provider.tsx │ │ ├── renderer.ts │ │ ├── secret-store.ts │ │ ├── store │ │ │ ├── atlas-signin-reducer.spec.ts │ │ │ ├── atlas-signin-reducer.ts │ │ │ ├── atlas-signin-store.spec.ts │ │ │ └── atlas-signin-store.ts │ │ ├── util.spec.ts │ │ └── util.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── bson-transpilers │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc │ ├── .gitignore │ ├── .jsfmtrc │ ├── .npmignore │ ├── .prettierignore │ ├── CONTRIBUTING.md │ ├── README.md │ ├── codegeneration │ │ ├── CodeGenerationVisitor.js │ │ ├── DeclarationStore.js │ │ ├── ErrorListener.js │ │ ├── csharp │ │ │ └── Generator.js │ │ ├── go │ │ │ └── Generator.js │ │ ├── java │ │ │ └── Generator.js │ │ ├── javascript │ │ │ ├── Generator.js │ │ │ └── Visitor.js │ │ ├── object │ │ │ └── Generator.js │ │ ├── php │ │ │ ├── Generator.js │ │ │ └── PHPUtils.js │ │ ├── python │ │ │ ├── Generator.js │ │ │ └── Visitor.js │ │ ├── ruby │ │ │ └── Generator.js │ │ ├── rust │ │ │ └── Generator.js │ │ └── shell │ │ │ ├── Generator.js │ │ │ └── Visitor.js │ ├── compile-symbol-table.js │ ├── config │ │ └── error.json │ ├── download-antlr.js │ ├── grammars │ │ └── ECMAScript.g4 │ ├── helper │ │ ├── error.js │ │ └── format.js │ ├── img-docs │ │ ├── indexjs.jpg │ │ └── visiting-tree.png │ ├── index.js │ ├── lib │ │ ├── antlr │ │ │ ├── ECMAScript.interp │ │ │ ├── ECMAScript.tokens │ │ │ ├── ECMAScriptLexer.interp │ │ │ ├── ECMAScriptLexer.js │ │ │ ├── ECMAScriptLexer.tokens │ │ │ ├── ECMAScriptListener.js │ │ │ ├── ECMAScriptParser.js │ │ │ └── ECMAScriptVisitor.js │ │ └── symbol-table │ │ │ ├── shelltocsharp.js │ │ │ ├── shelltogo.js │ │ │ ├── shelltojava.js │ │ │ ├── shelltojavascript.js │ │ │ ├── shelltoobject.js │ │ │ ├── shelltophp.js │ │ │ ├── shelltopython.js │ │ │ ├── shelltoruby.js │ │ │ └── shelltorust.js │ ├── package.json │ ├── printers │ │ └── ECMAScriptListener.js │ ├── symbols │ │ ├── basic_types.yaml │ │ ├── csharp │ │ │ └── templates.yaml │ │ ├── go │ │ │ └── templates.yaml │ │ ├── import_templates.yaml │ │ ├── java │ │ │ └── templates.yaml │ │ ├── javascript │ │ │ └── templates.yaml │ │ ├── main.yaml │ │ ├── object │ │ │ └── templates.yaml │ │ ├── php │ │ │ └── templates.yaml │ │ ├── python │ │ │ ├── symbols.yaml │ │ │ ├── templates.yaml │ │ │ └── types.yaml │ │ ├── ruby │ │ │ └── templates.yaml │ │ ├── rust │ │ │ └── templates.yaml │ │ ├── sample_template.yaml │ │ ├── shell │ │ │ ├── symbols.yaml │ │ │ └── types.yaml │ │ └── syntax_templates.yaml │ └── test │ │ ├── casting.test.js │ │ ├── declaration-store.test.js │ │ ├── functions.test.js │ │ ├── index.test.js │ │ ├── run-yaml.test.js │ │ └── yaml │ │ ├── bson-methods.yaml │ │ ├── bson.yaml │ │ ├── builders.yaml │ │ ├── driver-syntax.yaml │ │ ├── edge-cases │ │ └── casting.yaml │ │ ├── error-argument.yaml │ │ ├── error-builders.yaml │ │ ├── error-misc.yaml │ │ ├── error-syntax.yaml │ │ ├── error-unimplemented.yaml │ │ ├── imports.yaml │ │ ├── native.yaml │ │ ├── non-idiomatic.yaml │ │ ├── partial.yaml │ │ └── syntax.yaml ├── collection-model │ ├── .depcheckrc │ ├── .eslintrc.js │ ├── .gitignore │ ├── .npmignore │ ├── README.md │ ├── index.d.ts │ ├── index.js │ ├── lib │ │ ├── collection-properties.js │ │ └── model.js │ ├── package.json │ └── test │ │ └── index.test.js ├── compass-aggregations │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .mocharc.js │ ├── .npmignore │ ├── README.md │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── add-stage │ │ │ │ ├── add-stage.spec.tsx │ │ │ │ ├── add-stage.tsx │ │ │ │ └── index.ts │ │ │ ├── aggregation-side-panel │ │ │ │ ├── feedback-link.tsx │ │ │ │ ├── index.spec.tsx │ │ │ │ ├── index.tsx │ │ │ │ └── stage-wizard-use-cases │ │ │ │ │ ├── field-combobox.spec.tsx │ │ │ │ │ ├── field-combobox.tsx │ │ │ │ │ ├── group │ │ │ │ │ ├── basic-group.spec.tsx │ │ │ │ │ ├── basic-group.tsx │ │ │ │ │ ├── group-with-statistics.spec.tsx │ │ │ │ │ ├── group-with-statistics.tsx │ │ │ │ │ ├── group-with-subset.spec.tsx │ │ │ │ │ └── group-with-subset.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── lookup │ │ │ │ │ ├── lookup.spec.tsx │ │ │ │ │ └── lookup.tsx │ │ │ │ │ ├── match │ │ │ │ │ ├── match-condition-form.spec.tsx │ │ │ │ │ ├── match-condition-form.tsx │ │ │ │ │ ├── match-group-form.spec.tsx │ │ │ │ │ ├── match-group-form.tsx │ │ │ │ │ ├── match.spec.tsx │ │ │ │ │ └── match.tsx │ │ │ │ │ ├── project │ │ │ │ │ ├── project.spec.tsx │ │ │ │ │ └── project.tsx │ │ │ │ │ ├── search │ │ │ │ │ ├── text-search.spec.tsx │ │ │ │ │ └── text-search.tsx │ │ │ │ │ ├── sort │ │ │ │ │ ├── sort.spec.tsx │ │ │ │ │ └── sort.tsx │ │ │ │ │ ├── use-case-card.spec.tsx │ │ │ │ │ ├── use-case-card.tsx │ │ │ │ │ ├── utils.spec.ts │ │ │ │ │ └── utils.ts │ │ │ ├── aggregations │ │ │ │ ├── aggregations.spec.tsx │ │ │ │ ├── aggregations.tsx │ │ │ │ └── index.ts │ │ │ ├── create-view-modal │ │ │ │ ├── create-view-modal.tsx │ │ │ │ └── index.ts │ │ │ ├── focus-mode │ │ │ │ ├── focus-mode-modal-header.spec.tsx │ │ │ │ ├── focus-mode-modal-header.tsx │ │ │ │ ├── focus-mode-stage-editor.spec.tsx │ │ │ │ ├── focus-mode-stage-editor.tsx │ │ │ │ ├── focus-mode-stage-preview.spec.tsx │ │ │ │ ├── focus-mode-stage-preview.tsx │ │ │ │ ├── focus-mode.spec.tsx │ │ │ │ └── focus-mode.tsx │ │ │ ├── loading-overlay │ │ │ │ ├── index.ts │ │ │ │ └── loading-overlay.tsx │ │ │ ├── modify-source-banner │ │ │ │ ├── index.ts │ │ │ │ └── modify-source-banner.tsx │ │ │ ├── pipeline-builder-input-documents.tsx │ │ │ ├── pipeline-builder-workspace │ │ │ │ ├── index.spec.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── pipeline-as-text-workspace │ │ │ │ │ ├── index.spec.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── pipeline-editor.spec.tsx │ │ │ │ │ ├── pipeline-editor.tsx │ │ │ │ │ ├── pipeline-preview.spec.tsx │ │ │ │ │ ├── pipeline-preview.tsx │ │ │ │ │ ├── pipeline-stages-preview.spec.tsx │ │ │ │ │ └── pipeline-stages-preview.tsx │ │ │ │ └── pipeline-builder-ui-workspace │ │ │ │ │ ├── dnd-wrapper.tsx │ │ │ │ │ ├── index.spec.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── sortable-list.tsx │ │ │ ├── pipeline-output-options-menu.tsx │ │ │ ├── pipeline-results-workspace │ │ │ │ ├── index.spec.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── pipeline-empty-results.tsx │ │ │ │ ├── pipeline-pagination-count.spec.tsx │ │ │ │ ├── pipeline-pagination-count.tsx │ │ │ │ ├── pipeline-pagination.spec.tsx │ │ │ │ ├── pipeline-pagination.tsx │ │ │ │ ├── pipeline-results-header.tsx │ │ │ │ ├── pipeline-results-list.spec.tsx │ │ │ │ ├── pipeline-results-list.tsx │ │ │ │ ├── pipeline-results-view-controls.spec.tsx │ │ │ │ └── pipeline-results-view-controls.tsx │ │ │ ├── pipeline-toolbar │ │ │ │ ├── index.spec.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── pipeline-ai.spec.tsx │ │ │ │ ├── pipeline-ai.tsx │ │ │ │ ├── pipeline-header │ │ │ │ │ ├── index.spec.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── pipeline-actions.spec.tsx │ │ │ │ │ ├── pipeline-actions.tsx │ │ │ │ │ ├── pipeline-stages.spec.tsx │ │ │ │ │ └── pipeline-stages.tsx │ │ │ │ ├── pipeline-options │ │ │ │ │ ├── index.spec.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── pipeline-collation.spec.tsx │ │ │ │ │ └── pipeline-collation.tsx │ │ │ │ ├── pipeline-settings │ │ │ │ │ ├── index.spec.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── pipeline-extra-settings.spec.tsx │ │ │ │ │ ├── pipeline-extra-settings.tsx │ │ │ │ │ ├── pipeline-menus.spec.tsx │ │ │ │ │ ├── pipeline-menus.tsx │ │ │ │ │ ├── pipeline-name.spec.tsx │ │ │ │ │ └── pipeline-name.tsx │ │ │ │ └── pipeline-toolbar-container.tsx │ │ │ ├── pipeline │ │ │ │ ├── index.ts │ │ │ │ └── pipeline.tsx │ │ │ ├── resize-handle.tsx │ │ │ ├── saved-pipelines │ │ │ │ ├── saved-pipeline-card.tsx │ │ │ │ ├── saved-pipelines.spec.tsx │ │ │ │ └── saved-pipelines.tsx │ │ │ ├── saving-pipeline-modal │ │ │ │ ├── index.ts │ │ │ │ └── saving-pipeline-modal.tsx │ │ │ ├── search-no-results.tsx │ │ │ ├── settings │ │ │ │ ├── index.ts │ │ │ │ ├── settings.spec.tsx │ │ │ │ └── settings.tsx │ │ │ ├── stage-editor │ │ │ │ ├── index.ts │ │ │ │ ├── stage-editor.spec.tsx │ │ │ │ └── stage-editor.tsx │ │ │ ├── stage-preview │ │ │ │ ├── atlas-stage-preview.tsx │ │ │ │ ├── index.spec.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── output-stage-preview.spec.tsx │ │ │ │ ├── output-stage-preview.tsx │ │ │ │ └── stage-preview-header.tsx │ │ │ ├── stage-toolbar │ │ │ │ ├── index.spec.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── option-menu-item.tsx │ │ │ │ ├── option-menu.spec.tsx │ │ │ │ ├── option-menu.tsx │ │ │ │ ├── stage-collapser.tsx │ │ │ │ ├── stage-operator-select.tsx │ │ │ │ └── toggle-stage.tsx │ │ │ ├── stage-wizard │ │ │ │ ├── index.spec.tsx │ │ │ │ └── index.tsx │ │ │ ├── stage.tsx │ │ │ └── use-case-droppable-area │ │ │ │ ├── index.spec.tsx │ │ │ │ └── index.tsx │ │ ├── constants.ts │ │ ├── index.ts │ │ ├── modules │ │ │ ├── aggregation-workspace-id.ts │ │ │ ├── aggregation.spec.ts │ │ │ ├── aggregation.ts │ │ │ ├── auto-preview.spec.ts │ │ │ ├── auto-preview.ts │ │ │ ├── clone-pipeline.ts │ │ │ ├── collation-string.spec.ts │ │ │ ├── collation-string.ts │ │ │ ├── collection-stats.ts │ │ │ ├── collections-fields.spec.ts │ │ │ ├── collections-fields.ts │ │ │ ├── comments.spec.ts │ │ │ ├── comments.ts │ │ │ ├── count-documents.ts │ │ │ ├── create-view │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── data-service.ts │ │ │ ├── edit-view-name.ts │ │ │ ├── env.ts │ │ │ ├── explain.ts │ │ │ ├── export-to-language.spec.ts │ │ │ ├── export-to-language.ts │ │ │ ├── focus-mode.ts │ │ │ ├── id.spec.ts │ │ │ ├── id.ts │ │ │ ├── index.ts │ │ │ ├── input-documents.spec.ts │ │ │ ├── input-documents.ts │ │ │ ├── insights.spec.ts │ │ │ ├── insights.ts │ │ │ ├── is-datalake.ts │ │ │ ├── is-modified.spec.ts │ │ │ ├── is-modified.ts │ │ │ ├── is-new-pipeline-confirm.ts │ │ │ ├── is-time-series.ts │ │ │ ├── large-limit.spec.ts │ │ │ ├── large-limit.ts │ │ │ ├── limit.spec.ts │ │ │ ├── limit.ts │ │ │ ├── max-time-ms.spec.ts │ │ │ ├── max-time-ms.ts │ │ │ ├── name.spec.ts │ │ │ ├── name.ts │ │ │ ├── namespace.ts │ │ │ ├── out-results-fn.ts │ │ │ ├── pipeline-builder │ │ │ │ ├── builder-helpers.spec.ts │ │ │ │ ├── builder-helpers.ts │ │ │ │ ├── index.spec.ts │ │ │ │ ├── index.ts │ │ │ │ ├── pipeline-ai.spec.ts │ │ │ │ ├── pipeline-ai.ts │ │ │ │ ├── pipeline-builder.spec.ts │ │ │ │ ├── pipeline-builder.ts │ │ │ │ ├── pipeline-mode.ts │ │ │ │ ├── pipeline-parser │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── pipeline-parser.spec.ts │ │ │ │ │ ├── pipeline-parser.ts │ │ │ │ │ ├── stage-parser.spec.ts │ │ │ │ │ ├── stage-parser.ts │ │ │ │ │ ├── utils.spec.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── pipeline-preview-manager.spec.ts │ │ │ │ ├── pipeline-preview-manager.ts │ │ │ │ ├── stage-editor.spec.ts │ │ │ │ ├── stage-editor.ts │ │ │ │ ├── stage-ids.ts │ │ │ │ ├── stage.spec.ts │ │ │ │ ├── stage.ts │ │ │ │ ├── text-editor-output-stage.ts │ │ │ │ ├── text-editor-pipeline.spec.ts │ │ │ │ └── text-editor-pipeline.ts │ │ │ ├── saved-pipeline.spec.ts │ │ │ ├── saved-pipeline.ts │ │ │ ├── saving-pipeline.spec.ts │ │ │ ├── saving-pipeline.ts │ │ │ ├── search-indexes.spec.ts │ │ │ ├── search-indexes.ts │ │ │ ├── server-version.ts │ │ │ ├── settings.spec.ts │ │ │ ├── settings.ts │ │ │ ├── side-panel.spec.ts │ │ │ ├── side-panel.ts │ │ │ ├── source-name.ts │ │ │ ├── update-view.spec.ts │ │ │ ├── update-view.ts │ │ │ └── workspace.ts │ │ ├── plugin-title.tsx │ │ ├── plugin.spec.tsx │ │ ├── plugin.tsx │ │ ├── stores │ │ │ ├── create-view.spec.ts │ │ │ ├── create-view.ts │ │ │ ├── store.spec.ts │ │ │ └── store.ts │ │ ├── typings.d.ts │ │ └── utils │ │ │ ├── cancellable-aggregation.ts │ │ │ ├── get-schema.spec.ts │ │ │ ├── get-schema.ts │ │ │ ├── insights.ts │ │ │ ├── is-action.ts │ │ │ ├── modal-descriptions.tsx │ │ │ ├── stage.spec.ts │ │ │ └── stage.ts │ ├── test │ │ ├── configure-store.ts │ │ ├── form-helper.ts │ │ ├── mocks │ │ │ └── data-service.ts │ │ └── sample-fields.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-app-stores │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── README.md │ ├── package.json │ ├── provider.d.ts │ ├── provider.js │ ├── src │ │ ├── index.ts │ │ ├── instances-manager.spec.ts │ │ ├── instances-manager.ts │ │ ├── plugin.tsx │ │ ├── provider.spec.tsx │ │ ├── provider.tsx │ │ └── stores │ │ │ ├── index.ts │ │ │ ├── instance-store.spec.ts │ │ │ └── instance-store.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-collection │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── collection-header-actions │ │ │ │ ├── collection-header-actions.spec.tsx │ │ │ │ ├── collection-header-actions.tsx │ │ │ │ └── index.ts │ │ │ ├── collection-header │ │ │ │ ├── badges.tsx │ │ │ │ ├── collection-header.spec.tsx │ │ │ │ ├── collection-header.tsx │ │ │ │ └── index.ts │ │ │ ├── collection-tab-provider.tsx │ │ │ └── collection-tab.tsx │ │ ├── index.ts │ │ ├── modules │ │ │ └── collection-tab.ts │ │ └── stores │ │ │ ├── collection-tab.spec.ts │ │ │ └── collection-tab.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-components │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .mocharc.js │ ├── .prettierignore │ ├── README.md │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── accordion.spec.tsx │ │ │ ├── accordion.tsx │ │ │ ├── actions │ │ │ │ ├── action-glyph.tsx │ │ │ │ ├── constants.tsx │ │ │ │ ├── dropdown-menu-button.tsx │ │ │ │ ├── item-action-button.tsx │ │ │ │ ├── item-action-controls.spec.tsx │ │ │ │ ├── item-action-controls.tsx │ │ │ │ ├── item-action-group.tsx │ │ │ │ ├── item-action-menu.tsx │ │ │ │ ├── small-icon-button.tsx │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── breadcrumb.spec.tsx │ │ │ ├── breadcrumb.tsx │ │ │ ├── bson-value.spec.tsx │ │ │ ├── bson-value.tsx │ │ │ ├── chevron-collapse-icon.tsx │ │ │ ├── collapsible-field-set.spec.tsx │ │ │ ├── collapsible-field-set.tsx │ │ │ ├── combobox-with-custom-option.tsx │ │ │ ├── combobox-with-custom-options.spec.tsx │ │ │ ├── compass-components-provider.tsx │ │ │ ├── content-with-fallback.spec.tsx │ │ │ ├── content-with-fallback.tsx │ │ │ ├── document-list │ │ │ │ ├── auto-focus-context.tsx │ │ │ │ ├── document-actions-group.spec.tsx │ │ │ │ ├── document-actions-group.tsx │ │ │ │ ├── document-edit-actions-footer.tsx │ │ │ │ ├── document.spec.tsx │ │ │ │ ├── document.tsx │ │ │ │ ├── element-actions.tsx │ │ │ │ ├── element-editors.tsx │ │ │ │ ├── element.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── typography.ts │ │ │ │ ├── use-force-update.tsx │ │ │ │ ├── use-previous.tsx │ │ │ │ ├── visible-field-toggle.tsx │ │ │ │ └── visible-fields-toggle.spec.tsx │ │ │ ├── empty-content.spec.tsx │ │ │ ├── empty-content.tsx │ │ │ ├── error-boundary.spec.tsx │ │ │ ├── error-boundary.tsx │ │ │ ├── error-warning-summary.spec.tsx │ │ │ ├── error-warning-summary.tsx │ │ │ ├── feedback-popover.spec.tsx │ │ │ ├── feedback-popover.tsx │ │ │ ├── file-input.spec.tsx │ │ │ ├── file-input.tsx │ │ │ ├── form-field-container.tsx │ │ │ ├── guide-cue │ │ │ │ ├── guide-cue-exceptions.ts │ │ │ │ ├── guide-cue-groups.ts │ │ │ │ ├── guide-cue-service.spec.ts │ │ │ │ ├── guide-cue-service.ts │ │ │ │ ├── guide-cue-storage.ts │ │ │ │ ├── guide-cue.spec.tsx │ │ │ │ └── guide-cue.tsx │ │ │ ├── horizontal-rule.tsx │ │ │ ├── icons │ │ │ │ ├── document-icon.tsx │ │ │ │ ├── favorite-icon.tsx │ │ │ │ ├── logo-icon.tsx │ │ │ │ ├── no-saved-items-icon.tsx │ │ │ │ └── server-icon.tsx │ │ │ ├── index-icon.spec.tsx │ │ │ ├── index-icon.tsx │ │ │ ├── index-keys-badge.spec.tsx │ │ │ ├── index-keys-badge.tsx │ │ │ ├── inline-definition.tsx │ │ │ ├── inline-info-link.spec.tsx │ │ │ ├── inline-info-link.tsx │ │ │ ├── insights-chip.tsx │ │ │ ├── interactive-popover.spec.tsx │ │ │ ├── interactive-popover.tsx │ │ │ ├── keyline-card.tsx │ │ │ ├── leafygreen.tsx │ │ │ ├── links │ │ │ │ ├── link.spec.ts │ │ │ │ └── link.tsx │ │ │ ├── list-editor.spec.tsx │ │ │ ├── list-editor.tsx │ │ │ ├── loader.spec.tsx │ │ │ ├── loader.tsx │ │ │ ├── modals │ │ │ │ ├── confirmation-modal.spec.tsx │ │ │ │ ├── confirmation-modal.tsx │ │ │ │ ├── form-modal.tsx │ │ │ │ ├── info-modal.tsx │ │ │ │ ├── modal-body.tsx │ │ │ │ ├── modal-footer-button.tsx │ │ │ │ ├── modal-header.tsx │ │ │ │ └── modal.tsx │ │ │ ├── options-toggle.spec.tsx │ │ │ ├── options-toggle.tsx │ │ │ ├── placeholder.tsx │ │ │ ├── radio-box-group.tsx │ │ │ ├── resize-handle.spec.tsx │ │ │ ├── resize-handle.tsx │ │ │ ├── resizeable-sidebar.tsx │ │ │ ├── select-list.spec.tsx │ │ │ ├── select-list.tsx │ │ │ ├── signal-popover.spec.tsx │ │ │ ├── signal-popover.tsx │ │ │ ├── signals.tsx │ │ │ ├── tab-nav-bar.spec.tsx │ │ │ ├── tab-nav-bar.tsx │ │ │ ├── toast-body.tsx │ │ │ ├── virtual-grid.tsx │ │ │ ├── virtual-list.spec.tsx │ │ │ ├── virtual-list.tsx │ │ │ ├── workspace-container.tsx │ │ │ └── workspace-tabs │ │ │ │ ├── tab.spec.tsx │ │ │ │ ├── tab.tsx │ │ │ │ ├── workspace-tabs.spec.tsx │ │ │ │ └── workspace-tabs.tsx │ │ ├── hooks │ │ │ ├── use-confirmation.spec.tsx │ │ │ ├── use-confirmation.tsx │ │ │ ├── use-default-action.ts │ │ │ ├── use-dom-rect.ts │ │ │ ├── use-effect-on-change.ts │ │ │ ├── use-error-details.tsx │ │ │ ├── use-focus-hover.ts │ │ │ ├── use-focus-ring.ts │ │ │ ├── use-formatted-date.tsx │ │ │ ├── use-hotkeys.spec.tsx │ │ │ ├── use-hotkeys.tsx │ │ │ ├── use-persisted-state.tsx │ │ │ ├── use-scrollbars.tsx │ │ │ ├── use-sort.spec.ts │ │ │ ├── use-sort.tsx │ │ │ ├── use-stacked-component.spec.tsx │ │ │ ├── use-stacked-component.tsx │ │ │ ├── use-theme.tsx │ │ │ ├── use-toast.spec.tsx │ │ │ ├── use-toast.tsx │ │ │ ├── use-virtual-grid.test.tsx │ │ │ ├── use-virtual-grid.ts │ │ │ └── use-virtual-list-item-observer.ts │ │ ├── index.ts │ │ ├── is-electron-renderer.d.ts │ │ └── utils │ │ │ ├── format-date.ts │ │ │ ├── merge-props.ts │ │ │ ├── rafraf.ts │ │ │ └── reset-global-css.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-connection-import-export │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── export-modal.tsx │ │ │ ├── file-input.tsx │ │ │ ├── import-modal.tsx │ │ │ └── passphrase.tsx │ │ ├── context.tsx │ │ ├── hooks │ │ │ ├── common.spec.ts │ │ │ ├── common.ts │ │ │ ├── use-export-connections.spec.tsx │ │ │ ├── use-export-connections.ts │ │ │ ├── use-import-connections.spec.tsx │ │ │ └── use-import-connections.ts │ │ └── index.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-connections-navigation │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── base-navigation-item.tsx │ │ ├── connect-button-with-menu.tsx │ │ ├── connect-button.tsx │ │ ├── connections-navigation-tree.spec.tsx │ │ ├── connections-navigation-tree.tsx │ │ ├── constants.tsx │ │ ├── index.ts │ │ ├── item-actions.ts │ │ ├── navigation-item-icon.tsx │ │ ├── navigation-item.tsx │ │ ├── placeholder.tsx │ │ ├── styled-navigation-item.tsx │ │ ├── tree-data.ts │ │ ├── tree-item.tsx │ │ ├── utils.ts │ │ ├── virtual-list │ │ │ ├── use-virtual-navigation-tree.tsx │ │ │ ├── virtual-list.spec.tsx │ │ │ └── virtual-list.tsx │ │ └── with-status-marker.tsx │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-connections │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .mocharc.js │ ├── package.json │ ├── provider.d.ts │ ├── provider.js │ ├── src │ │ ├── components │ │ │ ├── connection-modal.tsx │ │ │ ├── connection-status-notifications.tsx │ │ │ ├── end-of-life-connection-modal.tsx │ │ │ ├── legacy-connections-modal.tsx │ │ │ └── non-genuine-connection-modal.tsx │ │ ├── connection-info-provider.tsx │ │ ├── connection-scoped-app-registry.spec.ts │ │ ├── connection-scoped-app-registry.ts │ │ ├── hooks │ │ │ ├── use-active-connections.spec.ts │ │ │ ├── use-active-connections.ts │ │ │ ├── use-connectable.ts │ │ │ ├── use-connection-form-preferences.tsx │ │ │ ├── use-connection-supports.spec.ts │ │ │ ├── use-connection-supports.ts │ │ │ ├── use-connections-with-status.spec.tsx │ │ │ ├── use-connections-with-status.ts │ │ │ ├── use-tab-connection-theme.spec.ts │ │ │ └── use-tab-connection-theme.ts │ │ ├── index.spec.tsx │ │ ├── index.tsx │ │ ├── provider.ts │ │ ├── stores │ │ │ ├── connections-store-redux.spec.tsx │ │ │ ├── connections-store-redux.ts │ │ │ └── store-context.tsx │ │ └── utils │ │ │ ├── connection-supports.spec.ts │ │ │ ├── connection-supports.ts │ │ │ ├── end-of-life-server.spec.ts │ │ │ ├── end-of-life-server.ts │ │ │ ├── telemetry.spec.tsx │ │ │ └── telemetry.tsx │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-crud │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── .nycrc │ ├── README.md │ ├── compass-crud.png │ ├── package.json │ ├── src │ │ ├── actions │ │ │ └── index.ts │ │ ├── components │ │ │ ├── add-data-menu.tsx │ │ │ ├── bulk-actions-toasts.spec.tsx │ │ │ ├── bulk-actions-toasts.tsx │ │ │ ├── bulk-delete-modal.spec.tsx │ │ │ ├── bulk-delete-modal.tsx │ │ │ ├── bulk-update-modal.spec.tsx │ │ │ ├── bulk-update-modal.tsx │ │ │ ├── change-view │ │ │ │ ├── bson-utils.ts │ │ │ │ ├── change-view.spec.tsx │ │ │ │ ├── change-view.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── shape-utils.ts │ │ │ │ ├── unified-document.spec.ts │ │ │ │ └── unified-document.ts │ │ │ ├── crud-toolbar.spec.tsx │ │ │ ├── crud-toolbar.tsx │ │ │ ├── delete-data-menu.tsx │ │ │ ├── document-json-view.tsx │ │ │ ├── document-list-view.spec.tsx │ │ │ ├── document-list-view.tsx │ │ │ ├── document-list.tsx │ │ │ ├── document.tsx │ │ │ ├── editable-document.spec.tsx │ │ │ ├── editable-document.tsx │ │ │ ├── insert-csfle-warning-banner.tsx │ │ │ ├── insert-document-dialog.tsx │ │ │ ├── insert-document.tsx │ │ │ ├── insert-json-document.tsx │ │ │ ├── json-editor.tsx │ │ │ ├── readonly-document.tsx │ │ │ ├── readonly-filter.tsx │ │ │ ├── table-view │ │ │ │ ├── add-field-button.spec.tsx │ │ │ │ ├── add-field-button.tsx │ │ │ │ ├── ag-grid-dist.css │ │ │ │ ├── breadcrumb.spec.tsx │ │ │ │ ├── breadcrumb.tsx │ │ │ │ ├── cell-editor.spec.tsx │ │ │ │ ├── cell-editor.tsx │ │ │ │ ├── cell-renderer.spec.tsx │ │ │ │ ├── cell-renderer.tsx │ │ │ │ ├── document-table-view.less │ │ │ │ ├── document-table-view.tsx │ │ │ │ ├── full-width-cell-renderer.spec.tsx │ │ │ │ ├── full-width-cell-renderer.tsx │ │ │ │ ├── header-cell-renderer.tsx │ │ │ │ ├── row-actions-renderer.spec.tsx │ │ │ │ ├── row-actions-renderer.tsx │ │ │ │ ├── row-number-renderer.tsx │ │ │ │ ├── types-dropdown.spec.tsx │ │ │ │ └── types-dropdown.tsx │ │ │ ├── update-data-menu.tsx │ │ │ ├── view-switcher.tsx │ │ │ ├── virtualized-document-json-view.spec.tsx │ │ │ ├── virtualized-document-json-view.tsx │ │ │ ├── virtualized-document-list-view.spec.tsx │ │ │ └── virtualized-document-list-view.tsx │ │ ├── constants │ │ │ └── documents-statuses.ts │ │ ├── index.ts │ │ ├── plugin-title.tsx │ │ ├── stores │ │ │ ├── base-reflux-store.ts │ │ │ ├── crud-store.spec.ts │ │ │ ├── crud-store.ts │ │ │ ├── grid-store.spec.ts │ │ │ └── grid-store.ts │ │ ├── typings.d.ts │ │ └── utils │ │ │ ├── cancellable-queries.spec.ts │ │ │ ├── cancellable-queries.ts │ │ │ ├── data-service.ts │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ └── toolbar-signal.ts │ ├── test │ │ ├── aggrid-helper.ts │ │ ├── before-after-fixtures.ts │ │ └── fixture-results │ │ │ ├── all_types_all_types_add.json │ │ │ ├── all_types_all_types_changed.json │ │ │ ├── all_types_all_types_identical.json │ │ │ ├── all_types_all_types_remove.json │ │ │ ├── all_types_small_change.json │ │ │ ├── array_changes_add_array_to_array.json │ │ │ ├── array_changes_add_object_to_array.json │ │ │ ├── array_changes_add_simple_value_to_array.json │ │ │ ├── array_changes_remove_array_from_array.json │ │ │ ├── array_changes_remove_object_from_array.json │ │ │ ├── array_changes_remove_simple_value_from_array.json │ │ │ ├── array_changes_simple_array.json │ │ │ ├── bson_type_change.json │ │ │ ├── nested_object_changes_nested_object_array_array_simple.json │ │ │ ├── nested_object_changes_nested_object_array_simple.json │ │ │ ├── nested_object_changes_nested_object_simple.json │ │ │ ├── objects_in_arrays_add_number_next_to_object_in_array.json │ │ │ ├── objects_in_arrays_many_items.json │ │ │ ├── objects_in_arrays_object_inside_array_changed.json │ │ │ ├── objects_in_arrays_object_value_nested_in_an_array.json │ │ │ ├── objects_in_arrays_remove_number_next_to_object_in_array.json │ │ │ ├── shape_changes_array_to_object.json │ │ │ ├── shape_changes_array_to_simple.json │ │ │ ├── shape_changes_object_to_array.json │ │ │ ├── shape_changes_object_to_simple.json │ │ │ ├── shape_changes_simple_to_array.json │ │ │ ├── shape_changes_simple_to_object.json │ │ │ ├── simple_add_field.json │ │ │ ├── simple_different_simple_types.json │ │ │ ├── simple_remove_field.json │ │ │ ├── simple_same_simple_type.json │ │ │ ├── simple_simple_add.json │ │ │ ├── simple_simple_remove.json │ │ │ └── stress_tests_airbnb.json │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-data-modeling │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── provider.d.ts │ ├── provider.js │ ├── renderer.d.ts │ ├── renderer.js │ ├── src │ │ ├── components │ │ │ ├── data-modeling.tsx │ │ │ ├── diagram-card.spec.tsx │ │ │ ├── diagram-card.tsx │ │ │ ├── diagram-editor.tsx │ │ │ ├── diagram-list-toolbar.tsx │ │ │ ├── icons │ │ │ │ ├── collaborate.tsx │ │ │ │ ├── flexibility.tsx │ │ │ │ └── schema-visualization.tsx │ │ │ ├── new-diagram-form.spec.tsx │ │ │ ├── new-diagram-form.tsx │ │ │ ├── saved-diagrams-list.spec.tsx │ │ │ └── saved-diagrams-list.tsx │ │ ├── index.spec.tsx │ │ ├── index.ts │ │ ├── provider │ │ │ └── index.tsx │ │ ├── services │ │ │ ├── data-model-storage-electron.tsx │ │ │ ├── data-model-storage-in-memory.tsx │ │ │ └── data-model-storage.ts │ │ └── store │ │ │ ├── analysis-process.ts │ │ │ ├── diagram.spec.ts │ │ │ ├── diagram.ts │ │ │ ├── generate-diagram-wizard.ts │ │ │ ├── index.ts │ │ │ ├── reducer.ts │ │ │ ├── step.ts │ │ │ └── util.ts │ ├── test │ │ └── setup-store.tsx │ ├── tsconfig-lint.json │ ├── tsconfig.json │ ├── web.d.ts │ └── web.js ├── compass-e2e-tests │ ├── .depcheckrc │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierignore │ ├── README.md │ ├── fixtures │ │ ├── array-documents.csv.gz │ │ ├── broken-json.json.gz │ │ ├── ca.pem │ │ ├── client.pem │ │ ├── curl.js │ │ ├── extended-json.json.gz │ │ ├── latin1.csv.gz │ │ ├── listings.csv.gz │ │ ├── listings.json.gz │ │ ├── source-with-bom.csv.gz │ │ └── three-documents.json.gz │ ├── helpers │ │ ├── atlas-service.ts │ │ ├── chrome-startup-flags.ts │ │ ├── commands │ │ │ ├── add-collection.ts │ │ │ ├── add-database.ts │ │ │ ├── add-wizard.ts │ │ │ ├── click-confirmation-action.ts │ │ │ ├── click-parent.ts │ │ │ ├── click-visible.ts │ │ │ ├── close-settings-modal.ts │ │ │ ├── close-shell.ts │ │ │ ├── close-welcome-modal.ts │ │ │ ├── codemirror.ts │ │ │ ├── collection-workspaces.ts │ │ │ ├── connect-form.ts │ │ │ ├── connect.ts │ │ │ ├── connection-workspaces.ts │ │ │ ├── create-index.ts │ │ │ ├── database-workspaces.ts │ │ │ ├── disconnect.ts │ │ │ ├── drop-collection-from-sidebar.ts │ │ │ ├── drop-database-from-sidebar.ts │ │ │ ├── drop-index.ts │ │ │ ├── drop-namespace.ts │ │ │ ├── exists-eventually.ts │ │ │ ├── expand-accordion.ts │ │ │ ├── export-to-language.ts │ │ │ ├── focus-stage-operator.ts │ │ │ ├── get-feature.ts │ │ │ ├── get-query-id.ts │ │ │ ├── hide-index.ts │ │ │ ├── hide-visible-modal.ts │ │ │ ├── hide-visible-toasts.ts │ │ │ ├── hover.ts │ │ │ ├── index.ts │ │ │ ├── listen-for-telemetry-events.ts │ │ │ ├── navigate-to-connect-tab.ts │ │ │ ├── open-settings-modal.ts │ │ │ ├── open-shell.ts │ │ │ ├── read-first-document-content.ts │ │ │ ├── read-stage-operators.ts │ │ │ ├── remove-connections.ts │ │ │ ├── run-find-operation.ts │ │ │ ├── run-find.ts │ │ │ ├── save-aggregation-pipeline.ts │ │ │ ├── save-connection-string-as-favorite.ts │ │ │ ├── save-favorite.ts │ │ │ ├── screenshot.ts │ │ │ ├── scroll-to-virtual-item.ts │ │ │ ├── select-connections-menu-item.ts │ │ │ ├── select-file.ts │ │ │ ├── select-focus-mode-stage-output-option.ts │ │ │ ├── select-option.ts │ │ │ ├── select-pipeline-results-output-option.ts │ │ │ ├── select-stage-menu-option.ts │ │ │ ├── select-stage-operator.ts │ │ │ ├── select-text-pipeline-output-option.ts │ │ │ ├── set-combo-box-value.ts │ │ │ ├── set-export-filename.ts │ │ │ ├── set-feature.ts │ │ │ ├── set-validation.ts │ │ │ ├── set-value-visible.ts │ │ │ ├── shell-eval.ts │ │ │ ├── sidebar-collection.ts │ │ │ ├── sidebar-connection.ts │ │ │ ├── switch-pipeline-mode.ts │ │ │ ├── toggle-aggregation-side-panel.ts │ │ │ ├── try-to-insert-document.ts │ │ │ ├── unhide-index.ts │ │ │ ├── wait-for-animations.ts │ │ │ ├── wait-for-aria-disabled.ts │ │ │ ├── wait-for-export-to-finish.ts │ │ │ └── workspace-tabs.ts │ │ ├── compass-browser.ts │ │ ├── compass-web-sandbox.ts │ │ ├── compass.ts │ │ ├── connect-form-state.ts │ │ ├── delay.ts │ │ ├── downloads.ts │ │ ├── gunzip.ts │ │ ├── insert-data.ts │ │ ├── proxy.ts │ │ ├── retry-with-backoff.ts │ │ ├── selectors.ts │ │ ├── telemetry.ts │ │ ├── test-runner-context.ts │ │ ├── test-runner-global-fixtures.ts │ │ └── test-runner-paths.ts │ ├── index.ts │ ├── nyc.config.js │ ├── package.json │ ├── positional-args │ │ ├── build.sh │ │ ├── go.mod │ │ ├── positional-args.exe │ │ └── positional-args.go │ ├── scripts │ │ └── positional-args.sh │ ├── tests │ │ ├── README.md │ │ ├── atlas-cloud │ │ │ ├── collection-ai-query.test.ts │ │ │ ├── global-writes.test.ts │ │ │ └── rolling-indexes.test.ts │ │ ├── atlas-login.test.ts │ │ ├── auto-connect.test.ts │ │ ├── auto-update.test.ts │ │ ├── collection-aggregations-tab.test.ts │ │ ├── collection-ai-query.test.ts │ │ ├── collection-bulk-delete.test.ts │ │ ├── collection-bulk-update.test.ts │ │ ├── collection-documents-tab.test.ts │ │ ├── collection-export.test.ts │ │ ├── collection-heading.test.ts │ │ ├── collection-import.test.ts │ │ ├── collection-indexes-tab.test.ts │ │ ├── collection-rename.test.ts │ │ ├── collection-schema-tab.test.ts │ │ ├── collection-validation-tab.test.ts │ │ ├── connection-form.test.ts │ │ ├── connection.test.ts │ │ ├── data-modeling-tab.test.ts │ │ ├── database-collections-tab.test.ts │ │ ├── force-connection-options.test.ts │ │ ├── global-preferences.test.ts │ │ ├── import-export-connections.test.ts │ │ ├── in-use-encryption.test.ts │ │ ├── instance-databases-tab.test.ts │ │ ├── instance-performance-tab.test.ts │ │ ├── instance-sidebar.test.ts │ │ ├── intercom.test.ts │ │ ├── logging.test.ts │ │ ├── my-queries-tab.test.ts │ │ ├── no-network-traffic.test.ts │ │ ├── oidc.test.ts │ │ ├── protect-connection-strings.test.ts │ │ ├── proxy.test.ts │ │ ├── read-only.test.ts │ │ ├── search-indexes.test.ts │ │ ├── shell.test.ts │ │ ├── show-kerberos-password-field.test.ts │ │ ├── tabs.test.ts │ │ └── time-to-first-query.test.ts │ └── tsconfig.json ├── compass-editor │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── action-button.tsx │ │ ├── actions-container.tsx │ │ ├── autocompleter.test.ts │ │ ├── autocompleter.ts │ │ ├── codemirror │ │ │ ├── ace-compat-autocompleter.ts │ │ │ ├── aggregation-autocompleter.test.ts │ │ │ ├── aggregation-autocompleter.ts │ │ │ ├── document-autocompleter.ts │ │ │ ├── query-autocompleter-with-history.test.ts │ │ │ ├── query-autocompleter-with-history.ts │ │ │ ├── query-autocompleter.test.ts │ │ │ ├── query-autocompleter.ts │ │ │ ├── query-history-autocompleter.test.ts │ │ │ ├── query-history-autocompleter.ts │ │ │ ├── search-index-autocompleter.test.ts │ │ │ ├── search-index-autocompleter.ts │ │ │ ├── stage-autocompleter.test.ts │ │ │ ├── stage-autocompleter.ts │ │ │ ├── utils.test.ts │ │ │ ├── utils.ts │ │ │ ├── validation-autocompleter.test.ts │ │ │ └── validation-autocompleter.ts │ │ ├── editor.tsx │ │ ├── index.ts │ │ ├── prettify.ts │ │ └── types.ts │ ├── test │ │ └── completer.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-explain-plan │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── README.md │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── explain-cannot-visualize-banner │ │ │ │ ├── explain-cannot-visualize-banner.tsx │ │ │ │ └── index.ts │ │ │ ├── explain-plan-modal.spec.tsx │ │ │ ├── explain-plan-modal.tsx │ │ │ ├── explain-plan-side-summary.tsx │ │ │ ├── explain-plan-view.spec.tsx │ │ │ ├── explain-plan-view.tsx │ │ │ ├── explain-tree │ │ │ │ ├── clock.tsx │ │ │ │ ├── explain-tree-data.spec.ts │ │ │ │ ├── explain-tree-data.ts │ │ │ │ ├── explain-tree-stage.spec.tsx │ │ │ │ ├── explain-tree-stage.tsx │ │ │ │ ├── explain-tree.spec.tsx │ │ │ │ ├── explain-tree.tsx │ │ │ │ ├── index.tsx │ │ │ │ └── tree-layout.tsx │ │ │ ├── zero-graphic.tsx │ │ │ └── zoom-control.tsx │ │ ├── index.ts │ │ └── stores │ │ │ ├── explain-plan-modal-store.spec.ts │ │ │ ├── explain-plan-modal-store.ts │ │ │ └── index.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-export-to-language │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── components │ │ │ └── modal.tsx │ │ ├── index.spec.tsx │ │ ├── index.ts │ │ ├── modules │ │ │ ├── count-aggregation-stages-in-string.ts │ │ │ ├── languages.spec.ts │ │ │ ├── languages.ts │ │ │ ├── transpiler.spec.ts │ │ │ └── transpiler.ts │ │ ├── stores │ │ │ └── index.ts │ │ └── typings.d.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-field-store │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── index.spec.ts │ │ ├── index.tsx │ │ ├── modules │ │ │ ├── fields.ts │ │ │ └── index.ts │ │ └── stores │ │ │ ├── context.ts │ │ │ ├── field-store-service.ts │ │ │ ├── hooks.ts │ │ │ ├── store.spec.ts │ │ │ └── store.ts │ ├── test │ │ └── fixtures │ │ │ ├── array_of_docs.fixture.json │ │ │ └── fields.fixture.json │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-find-in-page │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── README.md │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── compass-find-in-page.tsx │ │ │ ├── find-in-page-input.spec.tsx │ │ │ └── find-in-page-input.tsx │ │ ├── index.ts │ │ ├── modules │ │ │ ├── index.spec.ts │ │ │ └── index.ts │ │ └── stores │ │ │ ├── store.spec.ts │ │ │ └── store.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-generative-ai │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── provider.d.ts │ ├── src │ │ ├── atlas-ai-service.spec.ts │ │ ├── atlas-ai-service.ts │ │ ├── components │ │ │ ├── ai-entry-svg.tsx │ │ │ ├── ai-experience-entry.tsx │ │ │ ├── ai-feedback.tsx │ │ │ ├── ai-guide-cue.tsx │ │ │ ├── ai-image-banner.tsx │ │ │ ├── ai-optin-modal.spec.tsx │ │ │ ├── ai-optin-modal.tsx │ │ │ ├── ai-signin-modal.tsx │ │ │ ├── generative-ai-input.spec.tsx │ │ │ ├── generative-ai-input.tsx │ │ │ ├── index.ts │ │ │ └── plugin.tsx │ │ ├── index.ts │ │ ├── provider.tsx │ │ ├── store │ │ │ ├── atlas-ai-store.ts │ │ │ ├── atlas-optin-reducer.spec.ts │ │ │ ├── atlas-optin-reducer.ts │ │ │ ├── atlas-signin-reducer.spec.ts │ │ │ └── atlas-signin-reducer.ts │ │ └── utils │ │ │ └── util.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-global-writes │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── common-styles.ts │ │ │ ├── create-shard-key-form.spec.tsx │ │ │ ├── create-shard-key-form.tsx │ │ │ ├── example-commands-markup.spec.tsx │ │ │ ├── example-commands-markup.tsx │ │ │ ├── index.spec.tsx │ │ │ ├── index.tsx │ │ │ ├── shard-key-markup.tsx │ │ │ ├── shard-zones-description.tsx │ │ │ ├── shard-zones-descripton.spec.tsx │ │ │ ├── shard-zones-table.spec.tsx │ │ │ ├── shard-zones-table.tsx │ │ │ └── states │ │ │ │ ├── incomplete-sharding-setup.spec.tsx │ │ │ │ ├── incomplete-sharding-setup.tsx │ │ │ │ ├── loading-error.spec.tsx │ │ │ │ ├── loading-error.tsx │ │ │ │ ├── shard-key-correct.spec.tsx │ │ │ │ ├── shard-key-correct.tsx │ │ │ │ ├── shard-key-invalid.spec.tsx │ │ │ │ ├── shard-key-invalid.tsx │ │ │ │ ├── shard-key-mismatch.spec.tsx │ │ │ │ ├── shard-key-mismatch.tsx │ │ │ │ ├── sharding-error.spec.tsx │ │ │ │ ├── sharding-error.tsx │ │ │ │ ├── sharding.spec.tsx │ │ │ │ ├── sharding.tsx │ │ │ │ ├── unsharded.tsx │ │ │ │ └── usharded.spec.tsx │ │ ├── index.ts │ │ ├── plugin-title.spec.tsx │ │ ├── plugin-title.tsx │ │ ├── services │ │ │ └── atlas-global-writes-service.ts │ │ └── store │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ └── reducer.ts │ ├── tests │ │ ├── cluster-api-response.json │ │ └── create-store.tsx │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-import-export │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── scripts │ │ └── analyze-csv.ts │ ├── src │ │ ├── components │ │ │ ├── export-code-view.spec.tsx │ │ │ ├── export-code-view.tsx │ │ │ ├── export-field-options.tsx │ │ │ ├── export-in-progress-modal.tsx │ │ │ ├── export-json-format-options.tsx │ │ │ ├── export-modal.spec.tsx │ │ │ ├── export-modal.tsx │ │ │ ├── export-select-fields.spec.tsx │ │ │ ├── export-select-fields.tsx │ │ │ ├── export-toast.tsx │ │ │ ├── import-file-input.tsx │ │ │ ├── import-in-progress-modal.tsx │ │ │ ├── import-modal.tsx │ │ │ ├── import-options.tsx │ │ │ ├── import-preview-loader.tsx │ │ │ ├── import-preview.spec.tsx │ │ │ ├── import-preview.tsx │ │ │ ├── import-toast.tsx │ │ │ └── select-file-type.tsx │ │ ├── constants │ │ │ ├── export-step.ts │ │ │ ├── file-types.ts │ │ │ └── process-status.ts │ │ ├── csv │ │ │ ├── csv-types.ts │ │ │ ├── csv-utils.spec.ts │ │ │ └── csv-utils.ts │ │ ├── export-plugin.tsx │ │ ├── export │ │ │ ├── export-csv.spec.ts │ │ │ ├── export-csv.ts │ │ │ ├── export-cursor.ts │ │ │ ├── export-json.spec.ts │ │ │ ├── export-json.ts │ │ │ ├── export-types.ts │ │ │ ├── export-utils.spec.ts │ │ │ ├── export-utils.ts │ │ │ ├── gather-fields.spec.ts │ │ │ └── gather-fields.ts │ │ ├── import-plugin.tsx │ │ ├── import │ │ │ ├── analyze-csv-fields.spec.ts │ │ │ ├── analyze-csv-fields.ts │ │ │ ├── guess-filetype.spec.ts │ │ │ ├── guess-filetype.ts │ │ │ ├── import-csv.spec.ts │ │ │ ├── import-csv.ts │ │ │ ├── import-json.spec.ts │ │ │ ├── import-json.ts │ │ │ ├── import-types.ts │ │ │ ├── import-utils.spec.ts │ │ │ ├── import-utils.ts │ │ │ ├── import-writer.spec.ts │ │ │ ├── import-writer.ts │ │ │ ├── list-csv-fields.spec.ts │ │ │ └── list-csv-fields.ts │ │ ├── index.ts │ │ ├── modules │ │ │ ├── export.spec.ts │ │ │ ├── export.ts │ │ │ ├── import.spec.ts │ │ │ └── import.ts │ │ ├── stores │ │ │ ├── export-store.spec.tsx │ │ │ ├── export-store.ts │ │ │ ├── import-store.spec.tsx │ │ │ └── import-store.ts │ │ └── utils │ │ │ ├── byte-counter.ts │ │ │ ├── get-shell-js-string.spec.ts │ │ │ ├── get-shell-js-string.ts │ │ │ ├── get-user-data-file-path.ts │ │ │ ├── logger.ts │ │ │ ├── open-file.ts │ │ │ ├── query-has-projection.spec.ts │ │ │ ├── query-has-projection.ts │ │ │ ├── reveal-file.ts │ │ │ └── utf8-validator.ts │ ├── test │ │ ├── csv │ │ │ ├── array.analyzed.json │ │ │ ├── array.csv │ │ │ ├── array.exported.csv │ │ │ ├── array.gathered.json │ │ │ ├── array.imported.ejson │ │ │ ├── array.preview.json │ │ │ ├── bad.analyzed.json │ │ │ ├── bad.csv │ │ │ ├── bad.gathered.json │ │ │ ├── bad.imported.ejson │ │ │ ├── bad.preview.json │ │ │ ├── complex.analyzed.json │ │ │ ├── complex.csv │ │ │ ├── complex.exported.csv │ │ │ ├── complex.gathered.json │ │ │ ├── complex.imported.ejson │ │ │ ├── complex.preview.json │ │ │ ├── good-commas.analyzed.json │ │ │ ├── good-commas.csv │ │ │ ├── good-commas.exported.csv │ │ │ ├── good-commas.gathered.json │ │ │ ├── good-commas.imported.ejson │ │ │ ├── good-commas.preview.json │ │ │ ├── good-tabs.analyzed.json │ │ │ ├── good-tabs.csv │ │ │ ├── good-tabs.exported.csv │ │ │ ├── good-tabs.gathered.json │ │ │ ├── good-tabs.imported.ejson │ │ │ ├── good-tabs.preview.json │ │ │ ├── linebreaks.analyzed.json │ │ │ ├── linebreaks.csv │ │ │ ├── linebreaks.exported.csv │ │ │ ├── linebreaks.gathered.json │ │ │ ├── linebreaks.imported.ejson │ │ │ ├── linebreaks.preview.json │ │ │ ├── many-columns.analyzed.json │ │ │ ├── many-columns.csv │ │ │ ├── many-columns.exported.csv │ │ │ ├── many-columns.gathered.json │ │ │ ├── many-columns.imported.ejson │ │ │ ├── many-columns.preview.json │ │ │ ├── number-transform.analyzed.json │ │ │ ├── number-transform.csv │ │ │ ├── number-transform.exported.csv │ │ │ ├── number-transform.gathered.json │ │ │ ├── number-transform.imported.ejson │ │ │ ├── number-transform.preview.json │ │ │ ├── object.analyzed.json │ │ │ ├── object.csv │ │ │ ├── object.exported.csv │ │ │ ├── object.gathered.json │ │ │ ├── object.imported.ejson │ │ │ ├── object.preview.json │ │ │ ├── objectarray.analyzed.json │ │ │ ├── objectarray.csv │ │ │ ├── semicolons.analyzed.json │ │ │ ├── semicolons.csv │ │ │ ├── semicolons.exported.csv │ │ │ ├── semicolons.gathered.json │ │ │ ├── semicolons.imported.ejson │ │ │ ├── semicolons.preview.json │ │ │ ├── spaces.analyzed.json │ │ │ ├── spaces.csv │ │ │ ├── spaces.exported.csv │ │ │ ├── spaces.gathered.json │ │ │ ├── spaces.imported.ejson │ │ │ ├── spaces.preview.json │ │ │ ├── sparse.analyzed.json │ │ │ ├── sparse.csv │ │ │ ├── sparse.exported.csv │ │ │ ├── sparse.gathered.json │ │ │ ├── sparse.imported.ejson │ │ │ ├── sparse.preview.json │ │ │ └── types │ │ │ │ ├── array.csv │ │ │ │ ├── binData.csv │ │ │ │ ├── binData.exported.csv │ │ │ │ ├── boolean.csv │ │ │ │ ├── boolean.exported.csv │ │ │ │ ├── date.csv │ │ │ │ ├── date.exported.csv │ │ │ │ ├── decimal.csv │ │ │ │ ├── decimal.exported.csv │ │ │ │ ├── double.csv │ │ │ │ ├── double.exported.csv │ │ │ │ ├── ejson.csv │ │ │ │ ├── ejson.exported.csv │ │ │ │ ├── int.csv │ │ │ │ ├── int.exported.csv │ │ │ │ ├── long.csv │ │ │ │ ├── long.exported.csv │ │ │ │ ├── maxKey.csv │ │ │ │ ├── maxKey.exported.csv │ │ │ │ ├── md5.csv │ │ │ │ ├── md5.exported.csv │ │ │ │ ├── minKey.csv │ │ │ │ ├── minKey.exported.csv │ │ │ │ ├── mixed.csv │ │ │ │ ├── mixed.exported.csv │ │ │ │ ├── null.csv │ │ │ │ ├── null.exported.csv │ │ │ │ ├── number.csv │ │ │ │ ├── number.exported.csv │ │ │ │ ├── object.csv │ │ │ │ ├── objectId.csv │ │ │ │ ├── objectId.exported.csv │ │ │ │ ├── regex.csv │ │ │ │ ├── regex.exported.csv │ │ │ │ ├── string.csv │ │ │ │ ├── string.exported.csv │ │ │ │ ├── timestamp.csv │ │ │ │ ├── timestamp.exported.csv │ │ │ │ ├── uuid.csv │ │ │ │ └── uuid.exported.csv │ │ ├── docs │ │ │ ├── all-bson-types.exported.canonical.ejson │ │ │ ├── all-bson-types.exported.csv │ │ │ ├── all-bson-types.exported.default.ejson │ │ │ ├── all-bson-types.exported.relaxed.ejson │ │ │ ├── all-bson-types.gathered.json │ │ │ ├── all-bson-types.js │ │ │ └── inconsistent.js │ │ ├── fixtures.ts │ │ ├── json │ │ │ ├── complex.exported.csv │ │ │ ├── complex.exported.ejson │ │ │ ├── complex.gathered.json │ │ │ ├── complex.imported.ejson │ │ │ ├── complex.json │ │ │ ├── good.exported.csv │ │ │ ├── good.exported.ejson │ │ │ ├── good.gathered.json │ │ │ ├── good.imported.ejson │ │ │ ├── good.json │ │ │ ├── promotable.exported.csv │ │ │ ├── promotable.exported.ejson │ │ │ ├── promotable.gathered.json │ │ │ ├── promotable.imported.ejson │ │ │ └── promotable.json │ │ ├── jsonl │ │ │ ├── extra-line.exported.csv │ │ │ ├── extra-line.exported.ejson │ │ │ ├── extra-line.gathered.json │ │ │ ├── extra-line.imported.ejson │ │ │ ├── extra-line.jsonl │ │ │ ├── good.exported.csv │ │ │ ├── good.exported.ejson │ │ │ ├── good.gathered.json │ │ │ ├── good.imported.ejson │ │ │ ├── good.jsonl │ │ │ ├── jsonl-with-csv-fileext.csv │ │ │ ├── jsonl-with-csv-fileext.exported.csv │ │ │ ├── jsonl-with-csv-fileext.exported.ejson │ │ │ ├── jsonl-with-csv-fileext.gathered.json │ │ │ ├── jsonl-with-csv-fileext.imported.ejson │ │ │ ├── single-doc.exported.csv │ │ │ ├── single-doc.exported.ejson │ │ │ ├── single-doc.gathered.json │ │ │ ├── single-doc.imported.ejson │ │ │ └── single-doc.json │ │ └── other │ │ │ ├── empty │ │ │ ├── hello.txt │ │ │ └── javascript │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-indexes │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── README.md │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── create-index-actions │ │ │ │ ├── create-index-actions.spec.tsx │ │ │ │ ├── create-index-actions.tsx │ │ │ │ └── index.ts │ │ │ ├── create-index-fields.spec.tsx │ │ │ ├── create-index-fields.tsx │ │ │ ├── create-index-form │ │ │ │ ├── checkbox-input.tsx │ │ │ │ ├── collapsible-input.tsx │ │ │ │ ├── create-index-form.spec.tsx │ │ │ │ ├── create-index-form.tsx │ │ │ │ ├── index-flow-section.spec.tsx │ │ │ │ ├── index-flow-section.tsx │ │ │ │ ├── mdb-code-viewer.spec.tsx │ │ │ │ ├── mdb-code-viewer.tsx │ │ │ │ ├── query-flow-section.spec.tsx │ │ │ │ └── query-flow-section.tsx │ │ │ ├── create-index-modal │ │ │ │ ├── create-index-modal-header.spec.tsx │ │ │ │ ├── create-index-modal-header.tsx │ │ │ │ ├── create-index-modal.tsx │ │ │ │ └── index.ts │ │ │ ├── indexes-table │ │ │ │ ├── badge-with-icon-link.spec.tsx │ │ │ │ ├── badge-with-icon-link.tsx │ │ │ │ ├── index.ts │ │ │ │ └── indexes-table.tsx │ │ │ ├── indexes-toolbar │ │ │ │ ├── indexes-toolbar.spec.tsx │ │ │ │ └── indexes-toolbar.tsx │ │ │ ├── indexes │ │ │ │ ├── indexes.spec.tsx │ │ │ │ └── indexes.tsx │ │ │ ├── regular-indexes-table │ │ │ │ ├── in-progress-index-actions.spec.tsx │ │ │ │ ├── in-progress-index-actions.tsx │ │ │ │ ├── property-field.spec.tsx │ │ │ │ ├── property-field.tsx │ │ │ │ ├── regular-index-actions.spec.tsx │ │ │ │ ├── regular-index-actions.tsx │ │ │ │ ├── regular-indexes-table.spec.tsx │ │ │ │ ├── regular-indexes-table.tsx │ │ │ │ ├── size-field.spec.tsx │ │ │ │ ├── size-field.tsx │ │ │ │ ├── status-field.tsx │ │ │ │ ├── type-field.spec.tsx │ │ │ │ ├── type-field.tsx │ │ │ │ ├── usage-field.spec.tsx │ │ │ │ └── usage-field.tsx │ │ │ ├── search-index-template-dropdown │ │ │ │ ├── index.spec.tsx │ │ │ │ └── index.tsx │ │ │ ├── search-indexes-modals │ │ │ │ ├── base-search-index-modal.spec.tsx │ │ │ │ ├── base-search-index-modal.tsx │ │ │ │ ├── create-search-index-modal.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── update-search-index-modal.spec.tsx │ │ │ │ └── update-search-index-modal.tsx │ │ │ └── search-indexes-table │ │ │ │ ├── search-index-actions.spec.tsx │ │ │ │ ├── search-index-actions.tsx │ │ │ │ ├── search-indexes-table.spec.tsx │ │ │ │ ├── search-indexes-table.tsx │ │ │ │ └── zero-graphic.tsx │ │ ├── index.spec.tsx │ │ ├── index.ts │ │ ├── modules │ │ │ ├── collection-stats.ts │ │ │ ├── create-index.spec.ts │ │ │ ├── create-index.tsx │ │ │ ├── description.spec.ts │ │ │ ├── description.ts │ │ │ ├── index-view.spec.ts │ │ │ ├── index-view.ts │ │ │ ├── index.ts │ │ │ ├── is-readonly-view.spec.ts │ │ │ ├── is-readonly-view.ts │ │ │ ├── is-search-indexes-supported.ts │ │ │ ├── is-writable.spec.ts │ │ │ ├── is-writable.ts │ │ │ ├── namespace.spec.ts │ │ │ ├── namespace.ts │ │ │ ├── regular-indexes.spec.ts │ │ │ ├── regular-indexes.ts │ │ │ ├── rolling-indexes-service.spec.ts │ │ │ ├── rolling-indexes-service.ts │ │ │ ├── search-indexes.spec.ts │ │ │ ├── search-indexes.ts │ │ │ └── server-version.ts │ │ ├── plugin-title.tsx │ │ ├── stores │ │ │ ├── store.spec.ts │ │ │ └── store.ts │ │ └── utils │ │ │ ├── atlas-search-indexes-link.spec.ts │ │ │ ├── atlas-search-indexes-link.ts │ │ │ ├── columnstore-indexes.spec.ts │ │ │ ├── columnstore-indexes.ts │ │ │ ├── create-index-modal-validation.ts │ │ │ ├── fetch-reason.ts │ │ │ ├── fetch-status.ts │ │ │ ├── index-link-helper.ts │ │ │ ├── is-action.ts │ │ │ ├── modal-descriptions.tsx │ │ │ ├── vector-search-indexes.spec.ts │ │ │ └── vector-search-indexes.ts │ ├── test │ │ ├── fixtures │ │ │ ├── regular-indexes.ts │ │ │ └── search-indexes.ts │ │ ├── helpers.ts │ │ └── setup-store.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-intercom │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── intercom-script.ts │ │ ├── intercom-track.ts │ │ ├── setup-intercom.spec.ts │ │ └── setup-intercom.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-logging │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── provider.d.ts │ ├── src │ │ ├── index.spec.ts │ │ ├── index.ts │ │ ├── ipc-logger.ts │ │ ├── is-electron-renderer.d.ts │ │ ├── logger.ts │ │ └── provider.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-maybe-protect-connection-string │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── index.spec.ts │ │ └── index.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-preferences-model │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .mocharc.js │ ├── .npmignore │ ├── README.md │ ├── package.json │ ├── provider.d.ts │ ├── provider.js │ ├── src │ │ ├── compass-utils.ts │ │ ├── compass-web-preferences-access.ts │ │ ├── feature-flags.ts │ │ ├── global-config.spec.ts │ │ ├── global-config.ts │ │ ├── index.ts │ │ ├── maxtimems.ts │ │ ├── parse-record.spec.ts │ │ ├── parse-record.ts │ │ ├── preferences-in-memory-storage.ts │ │ ├── preferences-persistent-storage.spec.ts │ │ ├── preferences-persistent-storage.ts │ │ ├── preferences-schema.tsx │ │ ├── preferences-storage.ts │ │ ├── preferences.spec.ts │ │ ├── preferences.ts │ │ ├── provider.ts │ │ ├── react.spec.tsx │ │ ├── react.ts │ │ ├── read-only-preferences-access.ts │ │ ├── renderer-ipc.spec.ts │ │ ├── renderer-ipc.ts │ │ ├── setup-preferences.ts │ │ ├── user-storage.spec.ts │ │ ├── user-storage.ts │ │ └── utils.ts │ ├── test │ │ └── fixtures │ │ │ ├── index.ts │ │ │ ├── user_1.27.0.json │ │ │ ├── user_1.31.0.json │ │ │ └── user_1.38.0.json │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-query-bar │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── README.md │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── hooks.spec.tsx │ │ │ ├── hooks.tsx │ │ │ ├── option-editor.spec.tsx │ │ │ ├── option-editor.tsx │ │ │ ├── query-ai.spec.tsx │ │ │ ├── query-ai.tsx │ │ │ ├── query-bar-row.tsx │ │ │ ├── query-bar.spec.tsx │ │ │ ├── query-bar.tsx │ │ │ ├── query-history-button-popover.tsx │ │ │ ├── query-history │ │ │ │ ├── favorite-list.spec.tsx │ │ │ │ ├── favorite-list.tsx │ │ │ │ ├── index.spec.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── query-item │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── query-item-action-buttons.tsx │ │ │ │ │ ├── query-item-card.tsx │ │ │ │ │ ├── query-item-content.tsx │ │ │ │ │ └── query-item-heading.tsx │ │ │ │ ├── recent-list.spec.tsx │ │ │ │ ├── recent-list.tsx │ │ │ │ ├── save-query-form.tsx │ │ │ │ ├── toolbar │ │ │ │ │ ├── toolbar.spec.tsx │ │ │ │ │ └── toolbar.tsx │ │ │ │ └── zero-graphic.tsx │ │ │ └── query-option.tsx │ │ ├── constants │ │ │ ├── query-bar-store.ts │ │ │ ├── query-option-definition.ts │ │ │ └── query-properties.ts │ │ ├── index.tsx │ │ ├── modules │ │ │ ├── change-filter.spec.ts │ │ │ ├── change-filter.ts │ │ │ ├── merge-geo-filter.js │ │ │ └── merge-geo-filter.spec.js │ │ ├── query │ │ │ ├── leniently-fix-query.spec.ts │ │ │ └── leniently-fix-query.ts │ │ ├── stores │ │ │ ├── ai-query-reducer.spec.ts │ │ │ ├── ai-query-reducer.ts │ │ │ ├── context.tsx │ │ │ ├── query-bar-reducer.spec.ts │ │ │ ├── query-bar-reducer.ts │ │ │ ├── query-bar-store.spec.ts │ │ │ └── query-bar-store.ts │ │ ├── types.d.ts │ │ └── utils │ │ │ ├── copy-to-clipboard.ts │ │ │ ├── format-query.spec.js │ │ │ ├── format-query.ts │ │ │ ├── get-query-attributes.spec.ts │ │ │ ├── get-query-attributes.ts │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ ├── query.spec.ts │ │ │ └── query.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-saved-aggregations-queries │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── aggregations-queries-list.tsx │ │ │ ├── edit-item-modal.tsx │ │ │ ├── empty-list-items.tsx │ │ │ ├── no-active-connections-modal.tsx │ │ │ ├── saved-item-card.test.tsx │ │ │ ├── saved-item-card.tsx │ │ │ ├── select-connection-and-namespace-modal.tsx │ │ │ └── select-connection-modal.tsx │ │ ├── hooks │ │ │ ├── use-grid-filters.spec.tsx │ │ │ └── use-grid-filters.tsx │ │ ├── index.spec.tsx │ │ ├── index.ts │ │ └── stores │ │ │ ├── aggregations-queries-items.ts │ │ │ ├── copy-to-clipboard.ts │ │ │ ├── delete-item.ts │ │ │ ├── edit-item.ts │ │ │ ├── index.ts │ │ │ └── open-item.ts │ ├── test │ │ └── fixtures.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-schema-validation │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── README.md │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── compass-schema-validation.spec.tsx │ │ │ ├── compass-schema-validation.tsx │ │ │ ├── document-preview.spec.tsx │ │ │ ├── document-preview.tsx │ │ │ ├── loading-overlay.tsx │ │ │ ├── sample-documents.spec.tsx │ │ │ ├── sample-documents.tsx │ │ │ ├── validation-editor.spec.tsx │ │ │ ├── validation-editor.tsx │ │ │ ├── validation-selectors.tsx │ │ │ ├── validation-states.spec.tsx │ │ │ ├── validation-states.tsx │ │ │ └── zero-graphic.tsx │ │ ├── index.ts │ │ ├── modules │ │ │ ├── edit-mode.spec.ts │ │ │ ├── edit-mode.ts │ │ │ ├── index.ts │ │ │ ├── is-loaded.spec.ts │ │ │ ├── is-loaded.ts │ │ │ ├── namespace.spec.ts │ │ │ ├── namespace.ts │ │ │ ├── rules-generation.ts │ │ │ ├── sample-documents.spec.ts │ │ │ ├── sample-documents.ts │ │ │ ├── server-version.spec.ts │ │ │ ├── server-version.ts │ │ │ ├── validation.spec.ts │ │ │ ├── validation.ts │ │ │ ├── zero-state.spec.ts │ │ │ └── zero-state.ts │ │ ├── plugin-title.tsx │ │ ├── stores │ │ │ ├── index.ts │ │ │ ├── store.spec.ts │ │ │ └── store.ts │ │ └── util.ts │ ├── test │ │ └── mocha-plugins.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-schema │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── README.md │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── array-minichart.tsx │ │ │ ├── compass-schema.tsx │ │ │ ├── coordinates-minichart │ │ │ │ ├── constants.js │ │ │ │ ├── coordinates-minichart.css │ │ │ │ ├── coordinates-minichart.jsx │ │ │ │ ├── coordinates-minichart.spec.js │ │ │ │ ├── index.js │ │ │ │ ├── marker-popup.jsx │ │ │ │ ├── marker-popup.module.less │ │ │ │ ├── marker.jsx │ │ │ │ ├── utils.js │ │ │ │ └── utils.spec.js │ │ │ ├── d3-component │ │ │ │ ├── d3-component.jsx │ │ │ │ └── index.js │ │ │ ├── document-minichart.tsx │ │ │ ├── export-schema-legacy-modal.tsx │ │ │ ├── export-schema-modal.tsx │ │ │ ├── field.spec.tsx │ │ │ ├── field.tsx │ │ │ ├── minichart │ │ │ │ ├── index.js │ │ │ │ └── minichart.jsx │ │ │ ├── schema-toolbar.spec.tsx │ │ │ ├── schema-toolbar.tsx │ │ │ ├── type.tsx │ │ │ ├── unique-minichart │ │ │ │ ├── index.js │ │ │ │ └── unique-minichart.jsx │ │ │ ├── value-bubble.tsx │ │ │ └── zero-graphic.tsx │ │ ├── constants │ │ │ ├── analysis-states.ts │ │ │ └── schema.ts │ │ ├── index.ts │ │ ├── modules │ │ │ ├── boolean.js │ │ │ ├── create-d3-tip.js │ │ │ ├── d3-tip.js │ │ │ ├── date.js │ │ │ ├── detect-coordinates.js │ │ │ ├── detect-coordinates.spec.js │ │ │ ├── few.js │ │ │ ├── geo.spec.ts │ │ │ ├── geo.ts │ │ │ ├── index.ts │ │ │ ├── many.js │ │ │ ├── number.js │ │ │ ├── schema-analysis.spec.ts │ │ │ ├── schema-analysis.ts │ │ │ ├── shared.js │ │ │ └── string.js │ │ ├── plugin-title.tsx │ │ ├── stores │ │ │ ├── schema-analysis-reducer.ts │ │ │ ├── schema-export-reducer.ts │ │ │ ├── store.spec.ts │ │ │ └── store.ts │ │ ├── utils.spec.ts │ │ └── utils.ts │ ├── test │ │ ├── fixtures │ │ │ ├── geo_json.json │ │ │ ├── legacy_pairs.json │ │ │ └── unpromoted_doubles.json │ │ └── setup.js │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-serverstats │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── .npmignore │ ├── README.md │ ├── demo │ │ ├── rtss_demo.py │ │ ├── rtss_demo2.py │ │ └── rtss_demo3.py │ ├── package.json │ ├── src │ │ ├── actions │ │ │ └── index.js │ │ ├── components │ │ │ ├── chart-component.jsx │ │ │ ├── current-op-component.tsx │ │ │ ├── dberror-component.tsx │ │ │ ├── detailview-component.tsx │ │ │ ├── index.less │ │ │ ├── index.tsx │ │ │ ├── rtss-charts.less │ │ │ ├── rtss-db.less │ │ │ ├── rtss-lists.less │ │ │ ├── server-stats-graphs-component.jsx │ │ │ ├── server-stats-lists-component.jsx │ │ │ ├── server-stats-toolbar.tsx │ │ │ └── top-component.jsx │ │ ├── d3 │ │ │ ├── index.js │ │ │ ├── real-time-chart-lines.js │ │ │ ├── real-time-dispatcher.js │ │ │ ├── real-time-legend.js │ │ │ ├── real-time-line-chart.js │ │ │ └── real-time-mouse-overlay.js │ │ ├── index.ts │ │ └── stores │ │ │ ├── current-op-store.js │ │ │ ├── dberror-store.js │ │ │ ├── globallock-store.js │ │ │ ├── mem-store.js │ │ │ ├── network-store.js │ │ │ ├── opcounters-store.js │ │ │ ├── server-stats-graphs-store.js │ │ │ └── top-store.js │ ├── test │ │ ├── .eslintrc │ │ └── enzyme │ │ │ ├── chart-component.test.js │ │ │ ├── performance-component.test.jsx │ │ │ └── server-stats-toolbar.test.tsx │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-settings │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── index.tsx │ │ │ ├── modal.spec.tsx │ │ │ ├── modal.tsx │ │ │ ├── settings │ │ │ │ ├── atlas-login.spec.tsx │ │ │ │ ├── atlas-login.tsx │ │ │ │ ├── feature-preview.tsx │ │ │ │ ├── gen-ai-settings.spec.tsx │ │ │ │ ├── gen-ai-settings.tsx │ │ │ │ ├── general.spec.tsx │ │ │ │ ├── general.tsx │ │ │ │ ├── oidc-settings.spec.tsx │ │ │ │ ├── oidc-settings.tsx │ │ │ │ ├── privacy.spec.tsx │ │ │ │ ├── privacy.tsx │ │ │ │ ├── proxy-settings-custom.spec.tsx │ │ │ │ ├── proxy-settings-custom.tsx │ │ │ │ ├── proxy-settings.spec.tsx │ │ │ │ ├── proxy-settings.tsx │ │ │ │ ├── settings-list.tsx │ │ │ │ ├── state-labels.tsx │ │ │ │ ├── theme.spec.tsx │ │ │ │ └── theme.tsx │ │ │ ├── sidebar.spec.tsx │ │ │ └── sidebar.tsx │ │ ├── index.ts │ │ ├── stores │ │ │ ├── atlas-login.ts │ │ │ ├── index.ts │ │ │ ├── preferences-sandbox.spec.ts │ │ │ ├── preferences-sandbox.ts │ │ │ ├── settings.spec.ts │ │ │ ├── settings.ts │ │ │ └── utils.ts │ │ └── utils │ │ │ └── pick.ts │ ├── test │ │ └── configure-store.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-shell │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── README.md │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── compass-shell │ │ │ │ ├── index.ts │ │ │ │ └── tab-compass-shell.tsx │ │ │ ├── shell-header │ │ │ │ ├── index.ts │ │ │ │ ├── shell-header.spec.tsx │ │ │ │ └── shell-header.tsx │ │ │ └── shell-info-modal │ │ │ │ ├── index.ts │ │ │ │ ├── keyboard-shortcuts-table.tsx │ │ │ │ ├── shell-info-modal.spec.tsx │ │ │ │ └── shell-info-modal.tsx │ │ ├── index.ts │ │ ├── modules │ │ │ ├── history-storage.spec.ts │ │ │ ├── history-storage.ts │ │ │ └── worker-runtime.ts │ │ ├── plugin.spec.tsx │ │ ├── plugin.tsx │ │ └── stores │ │ │ └── store.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-sidebar │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── connection-info-modal.tsx │ │ │ ├── connections-filter-popover.tsx │ │ │ ├── csfle-connection-modal.tsx │ │ │ ├── csfle-marker.tsx │ │ │ ├── db-stats.tsx │ │ │ ├── multiple-connections │ │ │ │ ├── connections-navigation.tsx │ │ │ │ ├── header │ │ │ │ │ └── sidebar-header.tsx │ │ │ │ ├── navigation │ │ │ │ │ └── navigation.tsx │ │ │ │ ├── sidebar.spec.tsx │ │ │ │ └── sidebar.tsx │ │ │ ├── navigation-items-filter.tsx │ │ │ ├── non-genuine-marker.tsx │ │ │ ├── use-filtered-connections.spec.ts │ │ │ └── use-filtered-connections.ts │ │ ├── empty.ts │ │ ├── helpers │ │ │ └── find-collection.ts │ │ ├── index.ts │ │ ├── modules │ │ │ ├── connection-options.spec.ts │ │ │ ├── connection-options.ts │ │ │ ├── data-service.ts │ │ │ ├── databases.spec.ts │ │ │ ├── databases.ts │ │ │ ├── index.ts │ │ │ ├── instance.spec.ts │ │ │ ├── instance.ts │ │ │ └── is-performance-tab-supported.ts │ │ ├── plugin.tsx │ │ └── stores │ │ │ ├── index.ts │ │ │ ├── store.spec.ts │ │ │ └── store.ts │ ├── test │ │ └── helpers.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-smoke-tests │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .prettierignore │ ├── package.json │ ├── src │ │ ├── build-info.ts │ │ ├── cli.ts │ │ ├── compass-mongodb-com.d.ts │ │ ├── context.ts │ │ ├── directories.ts │ │ ├── dispatch.ts │ │ ├── downloads.ts │ │ ├── execute.ts │ │ ├── installers │ │ │ ├── apt.ts │ │ │ ├── index.ts │ │ │ ├── linux-deb.ts │ │ │ ├── linux-rpm.ts │ │ │ ├── linux-tar.ts │ │ │ ├── mac-dmg.ts │ │ │ ├── mac-utils.ts │ │ │ ├── mac-zip.ts │ │ │ ├── types.ts │ │ │ ├── windows-msi.ts │ │ │ ├── windows-registry.ts │ │ │ ├── windows-setup.ts │ │ │ └── windows-zip.ts │ │ ├── packages.ts │ │ ├── releases.ts │ │ ├── test-subject.ts │ │ └── tests │ │ │ ├── auto-update-from.ts │ │ │ ├── auto-update-to.ts │ │ │ ├── time-to-first-query.ts │ │ │ ├── types.ts │ │ │ └── update-server.ts │ └── tsconfig.json ├── compass-telemetry │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── provider.d.ts │ ├── src │ │ ├── generic-track.ts │ │ ├── growth-experiments.ts │ │ ├── index.spec.tsx │ │ ├── index.ts │ │ ├── ipc-track.ts │ │ ├── provider.tsx │ │ ├── telemetry-events.ts │ │ └── types.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-test-server │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── index.spec.ts │ │ └── index.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-user-data │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── semaphore.spec.ts │ │ ├── semaphore.ts │ │ ├── user-data.spec.ts │ │ └── user-data.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-utils │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── README.md │ ├── package.json │ ├── src │ │ ├── cancellable-promise.ts │ │ ├── electron.ts │ │ ├── index.spec.ts │ │ ├── index.ts │ │ └── promisify-ampersand-method.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-web │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── polyfills │ │ ├── @mongodb-js │ │ │ ├── connection-form │ │ │ │ └── index.ts │ │ │ ├── devtools-connect │ │ │ │ └── index.ts │ │ │ ├── devtools-proxy-support │ │ │ │ └── index.ts │ │ │ └── saslprep │ │ │ │ └── index.ts │ │ ├── dns │ │ │ └── index.ts │ │ ├── fs │ │ │ ├── index.ts │ │ │ └── promises │ │ │ │ └── index.ts │ │ ├── net │ │ │ └── index.ts │ │ ├── process │ │ │ └── index.ts │ │ ├── throwError │ │ │ └── index.ts │ │ ├── tls │ │ │ └── index.ts │ │ ├── tr46 │ │ │ ├── index.spec.ts │ │ │ └── index.ts │ │ ├── util │ │ │ └── types │ │ │ │ └── index.ts │ │ └── zlib │ │ │ └── index.ts │ ├── sandbox │ │ ├── index.html │ │ ├── index.tsx │ │ ├── sandbox-atlas-sign-in.tsx │ │ ├── sandbox-connection-storage.tsx │ │ ├── sandbox-logger.ts │ │ ├── sandbox-telemetry.ts │ │ └── sandbox-workspace-tab-router.tsx │ ├── scripts │ │ ├── electron-proxy.js │ │ ├── sync-dist-to-mms.js │ │ └── ws-proxy.js │ ├── src │ │ ├── atlas-auth-service.tsx │ │ ├── connection-storage.spec.ts │ │ ├── connection-storage.tsx │ │ ├── entrypoint.spec.tsx │ │ ├── entrypoint.tsx │ │ ├── index.tsx │ │ ├── logger-and-telemetry.spec.tsx │ │ ├── logger-and-telemetry.tsx │ │ ├── preferences.tsx │ │ ├── types.d.ts │ │ ├── url-builder.spec.ts │ │ └── url-builder.ts │ ├── tsconfig-build.json │ ├── tsconfig-lint.json │ ├── tsconfig.json │ └── webpack.config.js ├── compass-welcome │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── desktop-welcome-tab.spec.tsx │ │ │ ├── desktop-welcome-tab.tsx │ │ │ ├── index.ts │ │ │ ├── modal.spec.tsx │ │ │ ├── modal.tsx │ │ │ ├── web-welcome-tab.spec.tsx │ │ │ ├── web-welcome-tab.tsx │ │ │ └── welcome-image.tsx │ │ ├── index.ts │ │ └── stores │ │ │ └── index.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass-workspaces │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── provider.d.ts │ ├── provider.js │ ├── src │ │ ├── components │ │ │ ├── index.tsx │ │ │ ├── workspace-close-handler.tsx │ │ │ ├── workspace-tab-context-provider.tsx │ │ │ ├── workspace-tab-state-provider.spec.tsx │ │ │ ├── workspace-tab-state-provider.tsx │ │ │ ├── workspaces-provider.tsx │ │ │ └── workspaces.tsx │ │ ├── index.spec.tsx │ │ ├── index.ts │ │ ├── provider.tsx │ │ ├── stores │ │ │ ├── context.ts │ │ │ ├── workspaces.spec.ts │ │ │ └── workspaces.ts │ │ └── types.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── compass │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .mocharc.js │ ├── .mocharc.renderer.js │ ├── .prettierignore │ ├── LICENSE │ ├── README.md │ ├── app-icons │ │ ├── README.md │ │ ├── darwin │ │ │ ├── background.png │ │ │ ├── background@2x.png │ │ │ ├── mongodb-compass-logo-beta.icns │ │ │ ├── mongodb-compass-logo-dev.icns │ │ │ └── mongodb-compass-logo-stable.icns │ │ ├── linux │ │ │ ├── mongodb-compass-logo-beta.png │ │ │ ├── mongodb-compass-logo-dev.png │ │ │ └── mongodb-compass-logo-stable.png │ │ └── win32 │ │ │ ├── background.jpg │ │ │ ├── banner.jpg │ │ │ ├── mongodb-compass-installer-loading.gif │ │ │ ├── mongodb-compass-logo-beta.ico │ │ │ ├── mongodb-compass-logo-dev.ico │ │ │ └── mongodb-compass-logo-stable.ico │ ├── compass-screenshot.png │ ├── licenses.json │ ├── package.json │ ├── scripts │ │ ├── check-bundled-app-size.ts │ │ ├── download-csfle.js │ │ ├── download-fonts.js │ │ ├── electron-rebuild.js │ │ ├── macos-entitlements.xml │ │ ├── patterns │ │ │ ├── linux_tar-patterns.json │ │ │ ├── osx_zip-patterns.json │ │ │ └── windows_zip-patterns.json │ │ └── verify-package-contents.ts │ ├── src │ │ ├── app │ │ │ ├── application.tsx │ │ │ ├── components │ │ │ │ ├── entrypoint.tsx │ │ │ │ ├── home.spec.tsx │ │ │ │ ├── home.tsx │ │ │ │ ├── update-toasts.tsx │ │ │ │ └── workspace.tsx │ │ │ ├── fonts │ │ │ │ └── .gitkeep │ │ │ ├── images │ │ │ │ ├── compass-dialog-icon.png │ │ │ │ └── explain-card-clockface.png │ │ │ ├── index.html │ │ │ ├── index.less │ │ │ ├── index.ts │ │ │ ├── styles │ │ │ │ ├── fonts.less │ │ │ │ ├── index.less │ │ │ │ └── palette.less │ │ │ └── utils │ │ │ │ ├── csp.ts │ │ │ │ ├── telemetry.spec.ts │ │ │ │ ├── telemetry.ts │ │ │ │ └── update-title.ts │ │ ├── deps │ │ │ └── csfle │ │ │ │ └── .gitignore │ │ ├── index.d.ts │ │ ├── main │ │ │ ├── README.md │ │ │ ├── application.ts │ │ │ ├── auto-connect.spec.ts │ │ │ ├── auto-connect.ts │ │ │ ├── auto-update-manager.spec.ts │ │ │ ├── auto-update-manager.ts │ │ │ ├── disable-node-deprecations.ts │ │ │ ├── handle-error.ts │ │ │ ├── handle-uncaught-exception.ts │ │ │ ├── handle-unhandled-rejection.ts │ │ │ ├── icon.spec.ts │ │ │ ├── icon.ts │ │ │ ├── import-export-connections.ts │ │ │ ├── index.ts │ │ │ ├── logging.spec.ts │ │ │ ├── logging.ts │ │ │ ├── menu.spec.ts │ │ │ ├── menu.ts │ │ │ ├── optional-deps.ts │ │ │ ├── protocol-handling.spec.ts │ │ │ ├── protocol-handling.ts │ │ │ ├── setup-csfle-library.ts │ │ │ ├── squirrel-startup.ts │ │ │ ├── telemetry.ts │ │ │ ├── theme.ts │ │ │ ├── validate-connection-string.ts │ │ │ └── window-manager.ts │ │ └── setup-hadron-distribution.ts │ ├── tsconfig-lint.json │ ├── tsconfig.json │ └── webpack.config.js ├── connection-form │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── advanced-connection-options.tsx │ │ │ ├── advanced-options-tabs │ │ │ │ ├── advanced-options-tabs.spec.tsx │ │ │ │ ├── advanced-options-tabs.tsx │ │ │ │ ├── advanced-tab │ │ │ │ │ ├── advanced-tab.spec.tsx │ │ │ │ │ ├── advanced-tab.tsx │ │ │ │ │ ├── url-options-list-editor.spec.tsx │ │ │ │ │ ├── url-options-list-editor.tsx │ │ │ │ │ └── url-options.tsx │ │ │ │ ├── authentication-tab │ │ │ │ │ ├── authentication-aws.spec.tsx │ │ │ │ │ ├── authentication-aws.tsx │ │ │ │ │ ├── authentication-default.spec.tsx │ │ │ │ │ ├── authentication-default.tsx │ │ │ │ │ ├── authentication-gssapi.spec.tsx │ │ │ │ │ ├── authentication-gssapi.tsx │ │ │ │ │ ├── authentication-oidc.spec.tsx │ │ │ │ │ ├── authentication-oidc.tsx │ │ │ │ │ ├── authentication-plain.spec.tsx │ │ │ │ │ ├── authentication-plain.tsx │ │ │ │ │ ├── authentication-tab.spec.tsx │ │ │ │ │ ├── authentication-tab.tsx │ │ │ │ │ └── authentication-x509.tsx │ │ │ │ ├── csfle-tab │ │ │ │ │ ├── csfle-tab.spec.tsx │ │ │ │ │ ├── csfle-tab.tsx │ │ │ │ │ ├── encrypted-field-config-input.tsx │ │ │ │ │ ├── kms-local-key-generator.tsx │ │ │ │ │ ├── kms-provider-card.tsx │ │ │ │ │ ├── kms-provider-content.tsx │ │ │ │ │ ├── kms-provider-fields.tsx │ │ │ │ │ ├── kms-provider-status-indicator.tsx │ │ │ │ │ └── kms-tls-options.tsx │ │ │ │ ├── general-tab │ │ │ │ │ ├── direct-connection-input.spec.tsx │ │ │ │ │ ├── direct-connection-input.tsx │ │ │ │ │ ├── general-tab.spec.tsx │ │ │ │ │ ├── general-tab.tsx │ │ │ │ │ ├── host-input.spec.tsx │ │ │ │ │ ├── host-input.tsx │ │ │ │ │ ├── scheme-input.spec.tsx │ │ │ │ │ └── scheme-input.tsx │ │ │ │ ├── ssh-tunnel-tab │ │ │ │ │ ├── app-proxy.tsx │ │ │ │ │ ├── proxy-and-ssh-tunnel-tab.spec.tsx │ │ │ │ │ ├── proxy-and-ssh-tunnel-tab.tsx │ │ │ │ │ ├── socks.spec.tsx │ │ │ │ │ ├── socks.tsx │ │ │ │ │ ├── ssh-tunnel-identity.spec.tsx │ │ │ │ │ ├── ssh-tunnel-identity.tsx │ │ │ │ │ ├── ssh-tunnel-password.spec.tsx │ │ │ │ │ └── ssh-tunnel-password.tsx │ │ │ │ └── tls-ssl-tab │ │ │ │ │ ├── tls-certificate-authority.tsx │ │ │ │ │ ├── tls-client-certificate.tsx │ │ │ │ │ ├── tls-ssl-tab.spec.tsx │ │ │ │ │ └── tls-ssl-tab.tsx │ │ │ ├── connection-form-modal-actions.spec.tsx │ │ │ ├── connection-form-modal-actions.tsx │ │ │ ├── connection-form-modal.tsx │ │ │ ├── connection-form.spec.tsx │ │ │ ├── connection-form.tsx │ │ │ ├── connection-string-input.spec.tsx │ │ │ ├── connection-string-input.tsx │ │ │ └── form-help │ │ │ │ └── form-help.tsx │ │ ├── constants │ │ │ └── default-connection.ts │ │ ├── hooks │ │ │ ├── use-connect-form-settings.tsx │ │ │ ├── use-connect-form.spec.ts │ │ │ ├── use-connect-form.ts │ │ │ ├── use-connection-color.spec.tsx │ │ │ └── use-connection-color.ts │ │ ├── index.ts │ │ └── utils │ │ │ ├── authentication-handler.spec.ts │ │ │ ├── authentication-handler.ts │ │ │ ├── check-for-invalid-character-in-host.spec.ts │ │ │ ├── check-for-invalid-character-in-host.ts │ │ │ ├── connection-ssh-handler.spec.ts │ │ │ ├── connection-ssh-handler.ts │ │ │ ├── connection-string-helpers.spec.ts │ │ │ ├── connection-string-helpers.ts │ │ │ ├── connection-string-schema.spec.ts │ │ │ ├── connection-string-schema.ts │ │ │ ├── csfle-handler.spec.ts │ │ │ ├── csfle-handler.ts │ │ │ ├── csfle-kms-fields.ts │ │ │ ├── force-connection-options.spec.ts │ │ │ ├── force-connection-options.ts │ │ │ ├── get-next-host.spec.ts │ │ │ ├── get-next-host.ts │ │ │ ├── oidc-handler.spec.ts │ │ │ ├── oidc-handler.ts │ │ │ ├── set-app-name-if-missing.spec.ts │ │ │ ├── set-app-name-if-missing.ts │ │ │ ├── tls-handler.spec.ts │ │ │ ├── tls-handler.ts │ │ │ ├── url-options.ts │ │ │ ├── validation.spec.ts │ │ │ └── validation.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── connection-info │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── connection-info.ts │ │ ├── connection-secrets.spec.ts │ │ ├── connection-secrets.ts │ │ ├── connection-title.spec.ts │ │ ├── connection-title.ts │ │ └── index.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── connection-storage │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── main.d.ts │ ├── main.js │ ├── package.json │ ├── provider.d.ts │ ├── provider.js │ ├── renderer.d.ts │ ├── renderer.js │ ├── src │ │ ├── auto-connect.spec.ts │ │ ├── compass-main-connection-storage.spec.ts │ │ ├── compass-main-connection-storage.ts │ │ ├── compass-renderer-connection-storage.ts │ │ ├── connection-storage.ts │ │ ├── encrypt.spec.ts │ │ ├── encrypt.ts │ │ ├── import-export-connection.spec.ts │ │ ├── import-export-connection.ts │ │ ├── in-memory-connection-storage.ts │ │ ├── main.ts │ │ ├── provider.ts │ │ ├── renderer.ts │ │ └── utils.ts │ ├── test │ │ └── fixtures │ │ │ ├── compass-connections.ts │ │ │ ├── favorite_connection_1.27.0.json │ │ │ ├── favorite_connection_1.31.0.json │ │ │ └── favorite_connection_1.38.0.json │ ├── tsconfig-lint.json │ └── tsconfig.json ├── data-service │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .mocharc.js │ ├── .npmignore │ ├── .prettierignore │ ├── README.md │ ├── package.json │ ├── src │ │ ├── connect-mongo-client.spec.ts │ │ ├── connect-mongo-client.ts │ │ ├── connect.spec.ts │ │ ├── connect.ts │ │ ├── connection-attempt.spec.ts │ │ ├── connection-attempt.ts │ │ ├── connection-options.ts │ │ ├── csfle-collection-tracker.spec.ts │ │ ├── csfle-collection-tracker.ts │ │ ├── data-service.spec.ts │ │ ├── data-service.ts │ │ ├── index-detail-helper.spec.ts │ │ ├── index-detail-helper.ts │ │ ├── index.ts │ │ ├── instance-detail-helper.spec.ts │ │ ├── instance-detail-helper.ts │ │ ├── logger.ts │ │ ├── redact.ts │ │ ├── run-command.ts │ │ ├── search-index-detail-helper.ts │ │ ├── ssh-tunnel-helpers.ts │ │ └── types.ts │ ├── test │ │ ├── fixtures.ts │ │ ├── helpers.ts │ │ └── mocks.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── database-model │ ├── .depcheckrc │ ├── .eslintrc.js │ ├── .gitignore │ ├── .npmignore │ ├── README.md │ ├── index.d.ts │ ├── index.js │ ├── lib │ │ └── model.js │ ├── package.json │ └── test │ │ └── index.test.js ├── databases-collections-list │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── collections.tsx │ │ ├── databases.tsx │ │ ├── format.ts │ │ ├── index.spec.tsx │ │ ├── index.ts │ │ ├── items-grid.tsx │ │ ├── namespace-card.tsx │ │ ├── namespace-param.tsx │ │ └── use-view-type.tsx │ ├── tsconfig-lint.json │ └── tsconfig.json ├── databases-collections │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── README.md │ ├── package.json │ ├── src │ │ ├── collections-plugin.spec.tsx │ │ ├── collections-plugin.tsx │ │ ├── components │ │ │ ├── collation-fields │ │ │ │ ├── collation-fields.jsx │ │ │ │ ├── collation-fields.spec.jsx │ │ │ │ └── index.js │ │ │ ├── collection-fields │ │ │ │ ├── clustered-collection-fields.jsx │ │ │ │ ├── clustered-collection-fields.spec.jsx │ │ │ │ ├── collation.jsx │ │ │ │ ├── collection-fields.jsx │ │ │ │ ├── collection-fields.spec.jsx │ │ │ │ ├── collection-name.jsx │ │ │ │ ├── database-name.jsx │ │ │ │ ├── fle2-fields.jsx │ │ │ │ ├── fle2-fields.spec.jsx │ │ │ │ ├── has-clustered-collection-support.js │ │ │ │ ├── has-clustered-collection-support.spec.js │ │ │ │ ├── has-fle2-support.js │ │ │ │ ├── has-fle2-support.spec.js │ │ │ │ ├── has-flexible-bucket-config-support.spec.ts │ │ │ │ ├── has-flexible-bucket-config-support.ts │ │ │ │ ├── has-time-series-support.js │ │ │ │ ├── has-time-series-support.spec.js │ │ │ │ ├── index.js │ │ │ │ ├── time-series-fields.jsx │ │ │ │ └── time-series-fields.spec.jsx │ │ │ ├── collections.tsx │ │ │ ├── create-namespace-modal.spec.tsx │ │ │ ├── create-namespace-modal.tsx │ │ │ ├── databases.tsx │ │ │ ├── load-sample-data.tsx │ │ │ ├── rename-collection-modal │ │ │ │ ├── rename-collection-modal.spec.tsx │ │ │ │ └── rename-collection-modal.tsx │ │ │ └── zero-graphic.tsx │ │ ├── constants │ │ │ └── collation.js │ │ ├── databases-plugin.spec.tsx │ │ ├── databases-plugin.tsx │ │ ├── index.ts │ │ ├── modules │ │ │ ├── collections.ts │ │ │ ├── create-namespace.spec.ts │ │ │ ├── create-namespace.ts │ │ │ ├── databases.ts │ │ │ ├── index.ts │ │ │ └── rename-collection │ │ │ │ ├── rename-collection.spec.ts │ │ │ │ └── rename-collection.ts │ │ └── stores │ │ │ ├── collections-store.ts │ │ │ ├── create-namespace.spec.tsx │ │ │ ├── create-namespace.ts │ │ │ ├── databases-store.ts │ │ │ ├── drop-namespace.spec.tsx │ │ │ ├── drop-namespace.tsx │ │ │ ├── rename-collection.spec.tsx │ │ │ └── rename-collection.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── explain-plan-helper │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── get-execution-stats.ts │ │ ├── get-planner-info.ts │ │ ├── index.spec.ts │ │ ├── index.ts │ │ ├── utils.spec.ts │ │ └── utils.ts │ ├── test │ │ └── fixtures │ │ │ ├── aggregate_$cursor_sbe.json │ │ │ ├── aggregate_$geonearcursor.json │ │ │ ├── aggregate_$lookup_with_indexes.json │ │ │ ├── aggregate_$out.json │ │ │ ├── aggregate_collscan.json │ │ │ ├── aggregate_stages_with_no_time.json │ │ │ ├── clustered_scan.json │ │ │ ├── count_scan.json │ │ │ ├── covered_index_3.2.json │ │ │ ├── express_clustered_scan.json │ │ │ ├── express_index_scan.json │ │ │ ├── idhack_stage_3.2.json │ │ │ ├── multi-shard-aggregate-with-stages.json │ │ │ ├── multi-shard-aggregate-without-stages.json │ │ │ ├── sharded_aggregate_$lookup_with_indexes.json │ │ │ ├── sharded_geo_query_3.2.json │ │ │ ├── sharded_mixed_index_3.2.json │ │ │ ├── sharded_single_index_3.2.json │ │ │ ├── simple_collscan_3.2.json │ │ │ ├── simple_index_3.2.json │ │ │ ├── single-shard-aggregate-with-stages.json │ │ │ ├── single-shard-aggregate-without-stages.json │ │ │ └── sort_skip_limit_index_3.2.json │ ├── tsconfig-lint.json │ └── tsconfig.json ├── hadron-app-registry │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .mocharc.js │ ├── .npmignore │ ├── README.md │ ├── package.json │ ├── src │ │ ├── app-registry.spec.ts │ │ ├── app-registry.ts │ │ ├── index.ts │ │ ├── react-context.tsx │ │ ├── register-plugin.spec.tsx │ │ └── register-plugin.tsx │ ├── tsconfig-lint.json │ └── tsconfig.json ├── hadron-build │ ├── .depcheckrc │ ├── .eslintrc │ ├── .gitignore │ ├── .npmignore │ ├── .prettierignore │ ├── README.md │ ├── cli.js │ ├── commands │ │ ├── download.d.ts │ │ ├── download.js │ │ ├── info.d.ts │ │ ├── info.js │ │ ├── release.d.ts │ │ ├── release.js │ │ └── upload.js │ ├── index.js │ ├── lib │ │ ├── download-center.js │ │ ├── entitlements.xml │ │ ├── mac-notary-service.js │ │ ├── run.js │ │ ├── signtool.js │ │ ├── tar-gz.js │ │ ├── target.js │ │ ├── validate-build-config.js │ │ ├── windows-installer-version.js │ │ └── zip.js │ ├── package.json │ ├── signtool │ │ ├── build.sh │ │ ├── go.mod │ │ ├── go.sum │ │ ├── install.js │ │ ├── signtool.exe │ │ └── signtool.go │ └── test │ │ ├── config.test.js │ │ ├── download-center.test.js │ │ ├── fixtures │ │ └── hadron-app │ │ │ ├── LICENSE │ │ │ ├── background.png │ │ │ ├── hadron-app.icns │ │ │ ├── hadron-app.png │ │ │ ├── main.js │ │ │ ├── package.json │ │ │ ├── resources │ │ │ ├── darwin │ │ │ │ ├── background.png │ │ │ │ └── hadron-app.icns │ │ │ ├── linux │ │ │ │ ├── Icon.png │ │ │ │ ├── Icon128.png │ │ │ │ ├── Icon16.png │ │ │ │ ├── Icon24.png │ │ │ │ ├── Icon256.png │ │ │ │ ├── Icon32.png │ │ │ │ ├── Icon48.png │ │ │ │ ├── Icon512.png │ │ │ │ ├── Icon64.png │ │ │ │ └── Icon96.png │ │ │ └── win32 │ │ │ │ └── hadron-app.ico │ │ │ ├── src │ │ │ ├── app │ │ │ │ ├── index.html │ │ │ │ └── index.less │ │ │ └── internal-plugins │ │ │ │ └── index.js │ │ │ └── test │ │ │ ├── enzyme │ │ │ └── index.test.js │ │ │ ├── functional │ │ │ └── index.test.js │ │ │ ├── main │ │ │ └── index.test.js │ │ │ ├── renderer │ │ │ └── index.test.js │ │ │ └── unit │ │ │ └── index.test.js │ │ ├── helpers.js │ │ ├── index.test.js │ │ ├── release.test.js │ │ ├── signtool.test.js │ │ ├── tar-gz.test.js │ │ ├── target.test.js │ │ ├── upload.test.js │ │ ├── windows-installer-version.test.js │ │ └── zip.test.js ├── hadron-document │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .mocharc.js │ ├── .npmignore │ ├── README.md │ ├── package.json │ ├── src │ │ ├── document.ts │ │ ├── editor │ │ │ ├── date.ts │ │ │ ├── decimal128.ts │ │ │ ├── double.ts │ │ │ ├── index.ts │ │ │ ├── int32.ts │ │ │ ├── int64.ts │ │ │ ├── null.ts │ │ │ ├── objectid.ts │ │ │ ├── standard.ts │ │ │ ├── string.ts │ │ │ └── undefined.ts │ │ ├── element-events.ts │ │ ├── element.ts │ │ ├── index.ts │ │ ├── object-generator.ts │ │ └── utils.ts │ ├── test │ │ ├── document.test.ts │ │ ├── editor │ │ │ ├── date.spec.ts │ │ │ ├── decimal128.spec.ts │ │ │ ├── double.spec.ts │ │ │ ├── int32.spec.ts │ │ │ ├── int64.spec.ts │ │ │ ├── null.spec.ts │ │ │ ├── objectid.spec.ts │ │ │ ├── standard.spec.ts │ │ │ ├── string.spec.ts │ │ │ └── undefined.spec.ts │ │ ├── element.test.ts │ │ ├── object-generator.test.ts │ │ └── shared-examples.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── hadron-ipc │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── README.md │ ├── package.json │ ├── src │ │ ├── common.ts │ │ ├── index.spec.ts │ │ ├── index.ts │ │ ├── main.ts │ │ ├── renderer.ts │ │ ├── serialized-error.ts │ │ └── types.d.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── hadron-type-checker │ ├── .depcheckrc │ ├── .eslintrc │ ├── .gitignore │ ├── .npmignore │ ├── README.md │ ├── index.d.ts │ ├── index.js │ ├── package.json │ ├── src │ │ └── type-checker.js │ └── test │ │ └── type-checker.test.js ├── instance-model │ ├── .depcheckrc │ ├── .eslintrc.js │ ├── .gitignore │ ├── .npmignore │ ├── README.md │ ├── index.d.ts │ ├── index.js │ ├── lib │ │ ├── environment.js │ │ ├── model.js │ │ ├── server-type.js │ │ ├── server-type.spec.js │ │ ├── topology-description.js │ │ └── topology-type.js │ ├── package.json │ └── test │ │ └── index.test.js ├── mongodb-explain-compat │ ├── .depcheckrc │ ├── .eslintrc │ ├── .gitignore │ ├── README.md │ ├── index.d.ts │ ├── lib │ │ └── index.js │ ├── package.json │ └── test │ │ ├── fixtures │ │ ├── in1.json │ │ ├── in2.json │ │ ├── in4.json │ │ ├── out1.json │ │ ├── out2.json │ │ ├── query-planner-only.json │ │ ├── sharded-aggregate-with-stages.classic.in.json │ │ ├── sharded-aggregate-with-stages.classic.out.json │ │ ├── sharded-aggregate-with-stages.sbe.in.json │ │ ├── sharded-aggregate-with-stages.sbe.out.json │ │ ├── sharded-aggregate-without-stages.classic.in.json │ │ ├── sharded-aggregate-without-stages.classic.out.json │ │ ├── sharded-aggregate-without-stages.sbe.in.json │ │ ├── sharded-aggregate-without-stages.sbe.out.json │ │ ├── sharded-find.classic.in.json │ │ ├── sharded-find.classic.out.json │ │ ├── sharded-find.sbe.in.json │ │ ├── sharded-find.sbe.out.json │ │ ├── unsharded-aggregate-on-mongos.7.2.in.json │ │ ├── unsharded-aggregate-on-mongos.7.2.out.json │ │ ├── unsharded-aggregate.classic.in.json │ │ ├── unsharded-aggregate.classic.out.json │ │ ├── unsharded-aggregate.sbe.in.json │ │ ├── unsharded-aggregate.sbe.out.json │ │ ├── unsharded-find.classic.in.json │ │ ├── unsharded-find.classic.out.json │ │ ├── unsharded-find.sbe.in.json │ │ └── unsharded-find.sbe.out.json │ │ └── index.js ├── mongodb-query-util │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── src │ │ ├── bson-equal.spec.ts │ │ ├── bson-equal.ts │ │ ├── get-distinct-values.spec.ts │ │ ├── get-distinct-values.ts │ │ ├── has-distinct-value.spec.ts │ │ ├── has-distinct-value.ts │ │ ├── in-value-range.spec.ts │ │ ├── in-value-range.ts │ │ └── index.ts │ ├── tsconfig-lint.json │ └── tsconfig.json ├── my-queries-storage │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── package.json │ ├── provider.d.ts │ ├── provider.js │ ├── src │ │ ├── compass-pipeline-storage.spec.ts │ │ ├── compass-pipeline-storage.ts │ │ ├── compass-query-storage.spec.ts │ │ ├── compass-query-storage.ts │ │ ├── index.ts │ │ ├── pipeline-storage-schema.ts │ │ ├── pipeline-storage.ts │ │ ├── provider.ts │ │ ├── query-storage-schema.ts │ │ └── query-storage.ts │ ├── test │ │ └── fixtures │ │ │ ├── favorite_query_1.27.0.json │ │ │ ├── favorite_query_1.31.0.json │ │ │ ├── favorite_query_1.38.0.json │ │ │ ├── index.ts │ │ │ ├── pipeline_1.27.0.json │ │ │ ├── pipeline_1.31.0.json │ │ │ ├── pipeline_1.38.0.json │ │ │ ├── recent_query_1.27.0.json │ │ │ ├── recent_query_1.31.0.json │ │ │ └── recent_query_1.38.0.json │ ├── tsconfig-lint.json │ └── tsconfig.json └── reflux-state-mixin │ ├── .depcheckrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .mocharc.js │ ├── LICENSE │ ├── README.md │ ├── old_readme.md │ ├── package.json │ ├── src │ ├── index.spec.tsx │ ├── index.ts │ └── store-mixin.ts │ ├── tsconfig-lint.json │ └── tsconfig.json └── scripts ├── .depcheckrc ├── .eslintignore ├── .eslintrc.js ├── .prettierignore ├── .prettierrc.json ├── align-monorepo-dependencies.js ├── changed.js ├── check-docs-link.js ├── check-exports-exist.js ├── check-leafygreen-dep-usage.js ├── check-logids.js ├── check-peer-deps.js ├── cli.js ├── convert-package.js ├── create-workspace.js ├── find-packages-on-old-config.js ├── generate-authors.js ├── generate-readme-packages-overview.js ├── generate-security-test-summary.ts ├── generate-tracking-plan.ts ├── logserver.js ├── package.json ├── rebuild.js ├── release.js ├── run-in-dir.js ├── security-test-summary-template.md ├── semver-helpers.js ├── snyk-test.js ├── tsconfig-lint.json ├── update-electron.js └── workspace-dependencies.js /.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | **/node_modules -------------------------------------------------------------------------------- /.evergreen/create-static-analysis-report.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | set -x 4 | 5 | npm run create-static-analysis-report -- --first-party-deps-list-files="${FIRST_PARTY_DEPENDENCY_FILENAMES}" 6 | (cd .sbom && tar czvf ../static-analysis-report.tgz codeql.md codeql.sarif.json) 7 | -------------------------------------------------------------------------------- /.evergreen/docker-config/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "auths": { 3 | "https://index.docker.io/v1/": {} 4 | }, 5 | "credsStore": "from-env" 6 | } 7 | -------------------------------------------------------------------------------- /.evergreen/setup-ssh-key.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | 3 | set -e 4 | set +x 5 | echo "${__project_aws_ssh_key_value}" > ~/.ssh/mcipacker.pem 6 | chmod 0600 ~/.ssh/mcipacker.pem -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | *.gz binary 3 | *.png binary 4 | *.jpg binary 5 | *.gif binary 6 | *.exe binary 7 | *.ico binary 8 | *.icns binary 9 | /packages/bson-transpilers/lib/**/* linguist-generated=true 10 | packages/compass-crud/test/fixture-results/* linguist-generated=true 11 | -------------------------------------------------------------------------------- /.github/release.yml: -------------------------------------------------------------------------------- 1 | changelog: 2 | exclude: 3 | labels: 4 | - feature flagged 5 | - no release notes 6 | categories: 7 | - title: New Features 8 | labels: 9 | - feat 10 | - title: Bug Fixes 11 | labels: 12 | - fix -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | registry=https://registry.npmjs.org/ 3 | napi-build-version=7 4 | foreground-scripts=true 5 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Ignoring templates for .yml files as they contain non-yaml syntax 2 | *.in.yml 3 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | "@mongodb-js/prettier-config-compass" 2 | -------------------------------------------------------------------------------- /.tool-versions: -------------------------------------------------------------------------------- 1 | # This file is for the version management tool "asdf". 2 | # mms uses it as well. 3 | 4 | # This Node.js version matches the one required in 5 | # the "engines" in the package.json. 6 | nodejs 22.15.1 7 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "dbaeumer.vscode-eslint", 4 | "esbenp.prettier-vscode", 5 | "mike-lischke.vscode-antlr4", 6 | "ryanluker.vscode-coverage-gutters" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /configs/eslint-config-compass/.gitignore: -------------------------------------------------------------------------------- 1 | .nyc_output 2 | node_modules 3 | package-lock.json 4 | coverage 5 | lib 6 | .DS_Store 7 | -------------------------------------------------------------------------------- /configs/eslint-config-compass/README.md: -------------------------------------------------------------------------------- 1 | # @mongodb-js/eslint-config-compass 2 | 3 | > Shared [eslint][eslint] configuration for Compass packages. 4 | 5 | [eslint]: https://eslint.org/ 6 | -------------------------------------------------------------------------------- /configs/eslint-plugin-compass/.depcheckrc: -------------------------------------------------------------------------------- 1 | ignores: 2 | - '@mongodb-js/prettier-config-compass' 3 | # To avoid cyclic dependency 4 | - '@mongodb-js/eslint-config-compass' 5 | -------------------------------------------------------------------------------- /configs/eslint-plugin-compass/.eslintignore: -------------------------------------------------------------------------------- 1 | .nyc-output 2 | dist 3 | -------------------------------------------------------------------------------- /configs/eslint-plugin-compass/.eslintrc.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | root: true, 4 | extends: ['@mongodb-js/eslint-config-compass'], 5 | parserOptions: { 6 | tsconfigRootDir: __dirname, 7 | project: ['./tsconfig-lint.json'], 8 | }, 9 | }; 10 | -------------------------------------------------------------------------------- /configs/eslint-plugin-compass/.mocharc.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | ...require('@mongodb-js/mocha-config-compass'), 4 | spec: ['rules/**/*.test.js'], 5 | watchFiles: ['rules/**/*.js'], 6 | }; 7 | -------------------------------------------------------------------------------- /configs/eslint-plugin-compass/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | rules: { 4 | 'no-leafygreen-outside-compass-components': require('./rules/no-leafygreen-outside-compass-components'), 5 | 'unique-mongodb-log-id': require('./rules/unique-mongodb-log-id'), 6 | }, 7 | }; 8 | -------------------------------------------------------------------------------- /configs/eslint-plugin-compass/test/__fixtures__/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /* eslint-disable @mongodb-js/compass/unique-mongodb-log-id */ 3 | /* global mongoLogId */ 4 | mongoLogId(1); 5 | mongoLogId(2); 6 | mongoLogId(3); 7 | mongoLogId(3); // !dupedLogId 8 | -------------------------------------------------------------------------------- /configs/mocha-config-compass/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mongodb-js/compass/667a0e34db0d95f0600065d9d75e66f623610d70/configs/mocha-config-compass/.gitignore -------------------------------------------------------------------------------- /configs/mocha-config-compass/register/node-env-register.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | process.env.NODE_ENV = 'test'; 3 | -------------------------------------------------------------------------------- /configs/mocha-config-compass/window-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "webPreferences": { 3 | "subpixel-font-scaling": true, 4 | "direct-write": true, 5 | "nodeIntegration": true, 6 | "contextIsolation": false, 7 | "enableRemoteModule": true, 8 | "nodeIntegrationInWorker": true 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /configs/prettier-config-compass/.gitignore: -------------------------------------------------------------------------------- 1 | .nyc_output 2 | node_modules 3 | package-lock.json 4 | coverage 5 | lib 6 | .DS_Store 7 | -------------------------------------------------------------------------------- /configs/prettier-config-compass/.prettierignore-default: -------------------------------------------------------------------------------- 1 | .nyc_output 2 | .nyc-output 3 | dist 4 | coverage -------------------------------------------------------------------------------- /configs/prettier-config-compass/README.md: -------------------------------------------------------------------------------- 1 | # @mongodb-js/prettier-config-compass 2 | 3 | > Shared [prettier][prettier] configuration for Compass packages. 4 | 5 | [prettier]: https://prettier.io/ 6 | -------------------------------------------------------------------------------- /configs/prettier-config-compass/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | ...require('@mongodb-js/prettier-config-devtools'), 4 | }; 5 | -------------------------------------------------------------------------------- /configs/testing-library-compass/.eslintignore: -------------------------------------------------------------------------------- 1 | .nyc-output 2 | dist 3 | -------------------------------------------------------------------------------- /configs/testing-library-compass/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | extends: ['@mongodb-js/eslint-config-compass'], 4 | parserOptions: { 5 | tsconfigRootDir: __dirname, 6 | project: ['./tsconfig-lint.json'], 7 | }, 8 | }; 9 | -------------------------------------------------------------------------------- /configs/testing-library-compass/.mocharc.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@mongodb-js/mocha-config-compass'); 2 | -------------------------------------------------------------------------------- /configs/testing-library-compass/tsconfig-lint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": ["**/*"], 4 | "exclude": ["node_modules", "dist"] 5 | } 6 | -------------------------------------------------------------------------------- /configs/tsconfig-compass/.gitignore: -------------------------------------------------------------------------------- 1 | .nyc_output 2 | node_modules 3 | package-lock.json 4 | coverage 5 | lib 6 | .DS_Store 7 | -------------------------------------------------------------------------------- /configs/tsconfig-compass/README.md: -------------------------------------------------------------------------------- 1 | # @mongodb-js/tsconfig-compass 2 | 3 | > Shared TypeScript base configurations for Compass packages. 4 | -------------------------------------------------------------------------------- /configs/tsconfig-compass/tsconfig.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@mongodb-js/tsconfig-devtools/tsconfig.common.json", 3 | "compilerOptions": { 4 | "removeComments": false, 5 | "moduleResolution": "node16" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /configs/tsconfig-compass/tsconfig.react.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@mongodb-js/tsconfig-devtools/tsconfig.react.json", 3 | "compilerOptions": { 4 | "removeComments": false 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /configs/webpack-config-compass/.eslintignore: -------------------------------------------------------------------------------- 1 | .nyc-output 2 | dist 3 | -------------------------------------------------------------------------------- /configs/webpack-config-compass/.eslintrc.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | root: true, 4 | extends: ['@mongodb-js/eslint-config-compass'], 5 | parserOptions: { 6 | tsconfigRootDir: __dirname, 7 | project: ['./tsconfig-lint.json'], 8 | }, 9 | }; 10 | -------------------------------------------------------------------------------- /configs/webpack-config-compass/polyfills/@emotion/server/create-instance/index.js: -------------------------------------------------------------------------------- 1 | export default function createEmotionServer() { 2 | return {}; 3 | } 4 | -------------------------------------------------------------------------------- /configs/webpack-config-compass/tsconfig-lint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": ["**/*"], 4 | "exclude": ["node_modules", "dist"] 5 | } 6 | -------------------------------------------------------------------------------- /configs/webpack-config-compass/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@mongodb-js/tsconfig-compass/tsconfig.common.json", 3 | "compilerOptions": { 4 | "outDir": "dist", 5 | "lib": ["ES2020"] 6 | }, 7 | "include": ["src/**/*"], 8 | "exclude": ["./src/**/*.spec.*"] 9 | } 10 | -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "packages": ["packages/*", "configs/*", "scripts"], 3 | "version": "independent" 4 | } 5 | -------------------------------------------------------------------------------- /packages/atlas-service/.depcheckrc: -------------------------------------------------------------------------------- 1 | ignores: 2 | - '@mongodb-js/prettier-config-compass' 3 | - '@mongodb-js/tsconfig-compass' 4 | - '@types/chai' 5 | - '@types/sinon-chai' 6 | - 'sinon' 7 | ignore-patterns: 8 | - 'dist' 9 | -------------------------------------------------------------------------------- /packages/atlas-service/.eslintignore: -------------------------------------------------------------------------------- 1 | .nyc-output 2 | dist 3 | -------------------------------------------------------------------------------- /packages/atlas-service/.eslintrc.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | root: true, 4 | extends: ['@mongodb-js/eslint-config-compass'], 5 | parserOptions: { 6 | tsconfigRootDir: __dirname, 7 | project: ['./tsconfig-lint.json'], 8 | }, 9 | }; 10 | -------------------------------------------------------------------------------- /packages/atlas-service/.mocharc.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = require('@mongodb-js/mocha-config-compass/compass-plugin'); 3 | -------------------------------------------------------------------------------- /packages/atlas-service/main.d.ts: -------------------------------------------------------------------------------- 1 | export * from './dist/main.d'; 2 | -------------------------------------------------------------------------------- /packages/atlas-service/main.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = require('./dist/main'); 3 | -------------------------------------------------------------------------------- /packages/atlas-service/provider.d.ts: -------------------------------------------------------------------------------- 1 | export * from './dist/provider.d'; 2 | -------------------------------------------------------------------------------- /packages/atlas-service/renderer.d.ts: -------------------------------------------------------------------------------- 1 | export * from './dist/renderer.d'; 2 | -------------------------------------------------------------------------------- /packages/atlas-service/renderer.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = require('./dist/renderer'); 3 | -------------------------------------------------------------------------------- /packages/atlas-service/tsconfig-lint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": ["**/*"], 4 | "exclude": ["node_modules", "dist"] 5 | } 6 | -------------------------------------------------------------------------------- /packages/atlas-service/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@mongodb-js/tsconfig-compass/tsconfig.react.json", 3 | "compilerOptions": { 4 | "outDir": "dist" 5 | }, 6 | "include": ["src/**/*"], 7 | "exclude": ["./src/**/*.spec.*"] 8 | } 9 | -------------------------------------------------------------------------------- /packages/bson-transpilers/.depcheckrc: -------------------------------------------------------------------------------- 1 | ignores: [] -------------------------------------------------------------------------------- /packages/bson-transpilers/.eslintignore: -------------------------------------------------------------------------------- 1 | lib/symbol-table 2 | lib/antlr 3 | -------------------------------------------------------------------------------- /packages/bson-transpilers/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "mocha": true, 4 | "node": true, 5 | "es6": true 6 | }, 7 | "rules": { 8 | "camelcase": 1, 9 | "filename-rules/match": 0 10 | }, 11 | "extends": ["@mongodb-js/eslint-config-compass/plugin"] 12 | } 13 | -------------------------------------------------------------------------------- /packages/bson-transpilers/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | grammars/.antlr/ 3 | npm-debug.log 4 | node_modules/ 5 | lib-cov 6 | coverage 7 | .lock-wscript 8 | .idea/ 9 | *.iml 10 | .nvmrc 11 | .vscode 12 | .swp 13 | *.jar 14 | *.tgz 15 | -------------------------------------------------------------------------------- /packages/bson-transpilers/.npmignore: -------------------------------------------------------------------------------- 1 | .jshintrc 2 | .jsfmtrc 3 | .travis.yml 4 | .zuul.yml 5 | test/ 6 | grammars/ 7 | img-docs/ 8 | printers/ 9 | symbols/ 10 | *.jar 11 | *.pdf 12 | *.tgz 13 | -------------------------------------------------------------------------------- /packages/bson-transpilers/codegeneration/csharp/Generator.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /* 3 | * Class for handling edge cases for csharp code generation. Defines "emit" methods. 4 | */ 5 | module.exports = (Visitor) => 6 | class Generator extends Visitor { 7 | constructor() { 8 | super(); 9 | } 10 | }; 11 | -------------------------------------------------------------------------------- /packages/bson-transpilers/codegeneration/go/Generator.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /* 3 | * Class for handling edge cases for Go code generation. Defines "emit" methods. 4 | */ 5 | module.exports = (Visitor) => 6 | class Generator extends Visitor { 7 | constructor() { 8 | super(); 9 | } 10 | }; 11 | -------------------------------------------------------------------------------- /packages/bson-transpilers/codegeneration/python/Generator.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /* 3 | * Class for handling edge cases for python code generation. Defines "emit" methods. 4 | */ 5 | module.exports = (Visitor) => 6 | class Generator extends Visitor { 7 | constructor() { 8 | super(); 9 | } 10 | }; 11 | -------------------------------------------------------------------------------- /packages/bson-transpilers/codegeneration/ruby/Generator.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /* 3 | * Class for handling edge cases for ruby code generation. Defines "emit" methods. 4 | */ 5 | module.exports = (Visitor) => 6 | class Generator extends Visitor { 7 | constructor() { 8 | super(); 9 | } 10 | }; 11 | -------------------------------------------------------------------------------- /packages/bson-transpilers/codegeneration/rust/Generator.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /* 3 | * Class for handling edge cases for rust code generation. Defines "emit" methods. 4 | */ 5 | module.exports = (Visitor) => 6 | class Generator extends Visitor { 7 | constructor() { 8 | super(); 9 | } 10 | }; 11 | -------------------------------------------------------------------------------- /packages/bson-transpilers/codegeneration/shell/Generator.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /* 3 | * Class for handling edge cases for shell code generation. Defines "emit" methods. 4 | */ 5 | module.exports = (Visitor) => 6 | class Generator extends Visitor { 7 | constructor() { 8 | super(); 9 | } 10 | }; 11 | -------------------------------------------------------------------------------- /packages/bson-transpilers/img-docs/indexjs.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mongodb-js/compass/667a0e34db0d95f0600065d9d75e66f623610d70/packages/bson-transpilers/img-docs/indexjs.jpg -------------------------------------------------------------------------------- /packages/bson-transpilers/img-docs/visiting-tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mongodb-js/compass/667a0e34db0d95f0600065d9d75e66f623610d70/packages/bson-transpilers/img-docs/visiting-tree.png -------------------------------------------------------------------------------- /packages/collection-model/.depcheckrc: -------------------------------------------------------------------------------- 1 | ignores: ['@mongodb-js/prettier-config-compass'] 2 | -------------------------------------------------------------------------------- /packages/collection-model/.eslintrc.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | root: true, 4 | extends: ['@mongodb-js/eslint-config-compass'] 5 | }; 6 | -------------------------------------------------------------------------------- /packages/collection-model/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | npm-debug.log 3 | node_modules/ 4 | lib-cov 5 | coverage 6 | .lock-wscript 7 | .idea/ 8 | *.iml 9 | -------------------------------------------------------------------------------- /packages/collection-model/.npmignore: -------------------------------------------------------------------------------- 1 | .eslintrc 2 | .travis.yml 3 | examples/ 4 | test/ 5 | -------------------------------------------------------------------------------- /packages/collection-model/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var ExtendedCollectionModel = require('./lib/model'); 3 | var ExtendedCollectionModelCollection = require('./lib/model').Collection; 4 | 5 | module.exports = ExtendedCollectionModel; 6 | module.exports.Collection = ExtendedCollectionModelCollection; 7 | -------------------------------------------------------------------------------- /packages/compass-aggregations/.depcheckrc: -------------------------------------------------------------------------------- 1 | ignores: 2 | - '@mongodb-js/prettier-config-compass' 3 | - '@mongodb-js/tsconfig-compass' 4 | - '@mongodb-js/tsconfig-compass' 5 | ignore-patterns: 6 | - 'dist' 7 | -------------------------------------------------------------------------------- /packages/compass-aggregations/.eslintignore: -------------------------------------------------------------------------------- 1 | .nyc-output 2 | dist 3 | -------------------------------------------------------------------------------- /packages/compass-aggregations/.gitignore: -------------------------------------------------------------------------------- 1 | src/assets/fonts/akzid* 2 | -------------------------------------------------------------------------------- /packages/compass-aggregations/.mocharc.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = require('@mongodb-js/mocha-config-compass/compass-plugin'); 3 | -------------------------------------------------------------------------------- /packages/compass-aggregations/src/components/add-stage/index.ts: -------------------------------------------------------------------------------- 1 | import AddStage from './add-stage'; 2 | export default AddStage; 3 | -------------------------------------------------------------------------------- /packages/compass-aggregations/src/components/aggregations/index.ts: -------------------------------------------------------------------------------- 1 | import MappedAggregations, { Aggregations } from './aggregations'; 2 | export default MappedAggregations; 3 | export { Aggregations }; 4 | -------------------------------------------------------------------------------- /packages/compass-aggregations/src/components/create-view-modal/index.ts: -------------------------------------------------------------------------------- 1 | import MappedCreateViewModal, { CreateViewModal } from './create-view-modal'; 2 | export default MappedCreateViewModal; 3 | export { CreateViewModal }; 4 | -------------------------------------------------------------------------------- /packages/compass-aggregations/src/components/loading-overlay/index.ts: -------------------------------------------------------------------------------- 1 | import { LoadingOverlay } from './loading-overlay'; 2 | export default LoadingOverlay; 3 | -------------------------------------------------------------------------------- /packages/compass-aggregations/src/components/modify-source-banner/index.ts: -------------------------------------------------------------------------------- 1 | import ModifySourceBanner from './modify-source-banner'; 2 | export default ModifySourceBanner; 3 | -------------------------------------------------------------------------------- /packages/compass-aggregations/src/components/pipeline/index.ts: -------------------------------------------------------------------------------- 1 | import Pipeline from './pipeline'; 2 | export default Pipeline; 3 | -------------------------------------------------------------------------------- /packages/compass-aggregations/src/components/saving-pipeline-modal/index.ts: -------------------------------------------------------------------------------- 1 | import SavingPipelineModal from './saving-pipeline-modal'; 2 | export default SavingPipelineModal; 3 | -------------------------------------------------------------------------------- /packages/compass-aggregations/src/components/settings/index.ts: -------------------------------------------------------------------------------- 1 | import Settings from './settings'; 2 | export default Settings; 3 | -------------------------------------------------------------------------------- /packages/compass-aggregations/src/components/stage-editor/index.ts: -------------------------------------------------------------------------------- 1 | import StageEditor from './stage-editor'; 2 | export default StageEditor; 3 | -------------------------------------------------------------------------------- /packages/compass-aggregations/src/modules/edit-view-name.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * The initial state. 3 | */ 4 | export const INITIAL_STATE: string | null = null; 5 | 6 | /** 7 | * Reducer function for handle state changes to name. 8 | */ 9 | export default function reducer(state = INITIAL_STATE) { 10 | return state; 11 | } 12 | -------------------------------------------------------------------------------- /packages/compass-aggregations/src/modules/namespace.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * The initial state. 3 | */ 4 | export const INITIAL_STATE = ''; 5 | 6 | /** 7 | * Reducer function for handle state changes to namespace. 8 | */ 9 | export default function reducer(state: string = INITIAL_STATE): string { 10 | return state; 11 | } 12 | -------------------------------------------------------------------------------- /packages/compass-aggregations/src/modules/pipeline-builder/pipeline-parser/index.ts: -------------------------------------------------------------------------------- 1 | import PipelineParser from './pipeline-parser'; 2 | 3 | export { PipelineParser }; 4 | -------------------------------------------------------------------------------- /packages/compass-aggregations/src/modules/pipeline-builder/stage-ids.ts: -------------------------------------------------------------------------------- 1 | let id = 0; 2 | 3 | export function getId() { 4 | return id++; 5 | } 6 | -------------------------------------------------------------------------------- /packages/compass-aggregations/src/modules/source-name.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * The initial state. 3 | */ 4 | export const INITIAL_STATE: string | null = null; 5 | 6 | /** 7 | * Reducer function for handle state changes to source name. 8 | */ 9 | export default function reducer(state = INITIAL_STATE) { 10 | return state; 11 | } 12 | -------------------------------------------------------------------------------- /packages/compass-aggregations/src/plugin-title.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export function AggregationsTabTitle() { 4 | return