From 52c364d691ff3db8ff9821d008cd550871fad197 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Mon, 18 Mar 2024 10:12:11 +0000 Subject: [PATCH] v3: cli init command + CLI telemetry (#948) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Adding telemetry to the deploy command * Add ability to opt-out of telemetry in the CLI * Remove log * Unifying some telemetry stuff and adding it to the login command * init command * Remove extra trigger dirs * Couple tweaks to the init CLI * Don’t use npm init -y to create the package.json file --- .../route.tsx | 7 +- .../app/routes/api.v1.projects.$projectRef.ts | 71 + apps/webapp/app/routes/api.v1.projects.ts | 54 + apps/webapp/app/routes/api.v2.whoami.ts | 2 + apps/webapp/app/routes/projects.new.ts | 29 + .../app/routes/projects.v3.$projectRef.ts | 37 + packages/cli-v3/package.json | 2 +- packages/cli-v3/src/apiClient.ts | 28 + packages/cli-v3/src/cli/common.ts | 86 ++ packages/cli-v3/src/cli/index.ts | 31 +- packages/cli-v3/src/commands/deploy.ts | 1287 ++++++++++------- packages/cli-v3/src/commands/dev.tsx | 2 +- packages/cli-v3/src/commands/init.ts | 457 ++++++ packages/cli-v3/src/commands/login.ts | 372 +++-- packages/cli-v3/src/commands/whoami.ts | 28 +- packages/cli-v3/src/telemetry/telemetry.ts | 51 - packages/cli-v3/src/telemetry/tracing.ts | 24 + .../cli-v3/src/templates/examples/simple.js | 14 + .../cli-v3/src/templates/trigger.config.mjs | 16 + .../src/utilities/createFileFromTemplate.ts | 62 + .../cli-v3/src/utilities/initialBanner.ts | 2 +- .../cli-v3/src/utilities/installPackages.ts | 8 +- .../src/utilities/resolveInternalFilePath.ts | 5 + packages/cli-v3/src/utilities/session.ts | 104 +- packages/cli-v3/tsup.config.ts | 3 +- packages/core/src/v3/schemas/api.ts | 21 + .../core/src/v3/utils/flattenAttributes.ts | 2 +- pnpm-lock.yaml | 86 +- references/v3-catalog/package.json | 2 +- references/v3-catalog/trigger.config.mjs | 5 +- 30 files changed, 2137 insertions(+), 761 deletions(-) create mode 100644 apps/webapp/app/routes/api.v1.projects.$projectRef.ts create mode 100644 apps/webapp/app/routes/api.v1.projects.ts create mode 100644 apps/webapp/app/routes/projects.new.ts create mode 100644 apps/webapp/app/routes/projects.v3.$projectRef.ts create mode 100644 packages/cli-v3/src/commands/init.ts delete mode 100644 packages/cli-v3/src/telemetry/telemetry.ts create mode 100644 packages/cli-v3/src/telemetry/tracing.ts create mode 100644 packages/cli-v3/src/templates/examples/simple.js create mode 100644 packages/cli-v3/src/templates/trigger.config.mjs create mode 100644 packages/cli-v3/src/utilities/createFileFromTemplate.ts create mode 100644 packages/cli-v3/src/utilities/resolveInternalFilePath.ts diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug_.projects.new/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug_.projects.new/route.tsx index 022dd9b7e..dc3a39bba 100644 --- a/apps/webapp/app/routes/_app.orgs.$organizationSlug_.projects.new/route.tsx +++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug_.projects.new/route.tsx @@ -54,6 +54,8 @@ export async function loader({ params, request }: LoaderFunctionArgs) { throw new Response(null, { status: 404, statusText: "Organization not found" }); } + const url = new URL(request.url); + return typedjson({ organization: { id: organization.id, @@ -61,6 +63,7 @@ export async function loader({ params, request }: LoaderFunctionArgs) { slug: organizationSlug, projectsCount: organization._count.projects, }, + defaultVersion: url.searchParams.get("version") ?? "v2", }); } @@ -100,7 +103,7 @@ export const action: ActionFunction = async ({ request, params }) => { }; export default function NewOrganizationPage() { - const { organization } = useTypedLoaderData(); + const { organization, defaultVersion } = useTypedLoaderData(); const lastSubmission = useActionData(); const { v3Enabled } = useFeatures(); @@ -144,7 +147,7 @@ export default function NewOrganizationPage() {