├── .github ├── ISSUE_TEMPLATE │ ├── bug-report.yml │ └── config.yml ├── pull_request_template.md ├── release-drafter.yml └── workflows │ ├── pr-labeler.yml │ └── release-drafter.yml ├── .gitignore ├── .pre-commit-config.yaml ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── License.md ├── README.md ├── core ├── morph │ ├── __init__.py │ ├── api │ │ ├── __init__.py │ │ ├── app.py │ │ ├── auth.py │ │ ├── cloud │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── client.py │ │ │ └── types.py │ │ ├── context.py │ │ ├── custom_types.py │ │ ├── error.py │ │ ├── handler.py │ │ ├── plugin.py │ │ ├── service.py │ │ ├── templates │ │ │ └── index.html │ │ └── utils.py │ ├── cli │ │ ├── README.md │ │ ├── __init__.py │ │ ├── flags.py │ │ ├── main.py │ │ ├── params.py │ │ ├── requires.py │ │ └── types.py │ ├── config │ │ ├── __init__.py │ │ └── project.py │ ├── constants.py │ ├── include │ │ ├── __init__.py │ │ └── starter_template │ │ │ ├── .env │ │ │ ├── .gitignore │ │ │ ├── .mock_user_context.json │ │ │ ├── README.md │ │ │ ├── components.json │ │ │ ├── morph_project.yml │ │ │ ├── package.json │ │ │ ├── src │ │ │ ├── __init__.py │ │ │ └── pages │ │ │ │ ├── 404.tsx │ │ │ │ ├── _app.tsx │ │ │ │ ├── _components │ │ │ │ ├── header.tsx │ │ │ │ └── table-of-contents.tsx │ │ │ │ ├── _lib │ │ │ │ └── utils.ts │ │ │ │ ├── index.css │ │ │ │ └── index.mdx │ │ │ ├── static │ │ │ └── favicon.ico │ │ │ ├── tsconfig.json │ │ │ └── vite.config.ts │ ├── py.typed │ └── task │ │ ├── __init__.py │ │ ├── api.py │ │ ├── base.py │ │ ├── clean.py │ │ ├── compile.py │ │ ├── config.py │ │ ├── context.py │ │ ├── deploy.py │ │ ├── init.py │ │ ├── new.py │ │ ├── plugin.py │ │ ├── resource.py │ │ ├── run.py │ │ ├── server.py │ │ └── utils │ │ ├── __init__.py │ │ ├── connection.py │ │ ├── connections │ │ ├── athena │ │ │ ├── api.py │ │ │ └── usecase.py │ │ ├── bigquery │ │ │ ├── api.py │ │ │ ├── types.py │ │ │ └── usecase.py │ │ ├── connector.py │ │ ├── database │ │ │ ├── mssql.py │ │ │ ├── mysql.py │ │ │ ├── postgres.py │ │ │ ├── redshift.py │ │ │ ├── types.py │ │ │ └── utils.py │ │ ├── snowflake │ │ │ ├── api.py │ │ │ ├── types.py │ │ │ └── usecase.py │ │ └── utils.py │ │ ├── file_upload.py │ │ ├── load_dockerfile.py │ │ ├── logging.py │ │ ├── morph.py │ │ └── run_backend │ │ ├── __init__.py │ │ ├── cache.py │ │ ├── decorators.py │ │ ├── errors.py │ │ ├── execution.py │ │ ├── inspection.py │ │ ├── output.py │ │ ├── state.py │ │ └── types.py └── morph_lib │ ├── __init__.py │ ├── api.py │ ├── database.py │ ├── error.py │ ├── function.py │ ├── py.typed │ ├── stream.py │ ├── types.py │ └── utils │ ├── __init__.py │ ├── db_connector.py │ └── sql.py ├── mypy.ini ├── poetry.lock ├── poetry.toml ├── pyproject.toml └── pytest.ini /.github/ISSUE_TEMPLATE/bug-report.yml: -------------------------------------------------------------------------------- 1 | name: 🐞 Bug Report 2 | description: Report a bug or an issue you've found with Morph 3 | title: "[Bug]
Error {i+1}:
{error}" 71 | for i, error in enumerate(error_messages) 72 | ] 73 | ) 74 | return f""" 75 | 76 | 77 | 78 | 79 |
The server encountered an internal error and was unable to complete your request.
112 |Page not found
6 | > 7 | ); 8 | } 9 | -------------------------------------------------------------------------------- /core/morph/include/starter_template/src/pages/_app.tsx: -------------------------------------------------------------------------------- 1 | import { Head } from "@morph-data/frontend/components"; 2 | import { TableOfContents } from "./_components/table-of-contents"; 3 | import { Header } from "./_components/header"; 4 | import { 5 | usePageMeta, 6 | MdxComponentsProvider, 7 | Outlet, 8 | useRefresh, 9 | extractComponents, 10 | } from "@morph-data/frontend/components"; 11 | import { ErrorBoundary } from "react-error-boundary"; 12 | import { Callout } from "@/pages/_components/ui/callout"; 13 | 14 | import "./index.css"; 15 | 16 | const uiComponents = extractComponents( 17 | import.meta.glob("./_components/ui/**/*.tsx", { 18 | eager: true, 19 | }) 20 | ); 21 | 22 | const morphComponents = extractComponents( 23 | import.meta.glob("./_components/*.tsx", { 24 | eager: true, 25 | }) 26 | ); 27 | 28 | export default function App() { 29 | const pageMeta = usePageMeta(); 30 | 31 | useRefresh(); 32 | 33 | return ( 34 | <> 35 | 36 |