From e2e5497c62231d0b4d332153f915a4a47b76ddf1 Mon Sep 17 00:00:00 2001 From: Wanjohi <71614375+wanjohiryan@users.noreply.github.com> Date: Tue, 3 Sep 2024 06:55:51 +0300 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20Add=20`www`=20to=20cloudfla?= =?UTF-8?q?re=20pages=20(#105)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: --global <--global> Add our website to cloudflare pages --- .github/workflows/sst.yml | 60 +++++++++++++++++++ .gitignore | 6 ++ apps/docs/package.json | 6 +- apps/nexus/package.json | 2 +- apps/www/{.eslintrc.js => .eslintrc.cjs} | 0 apps/www/package.json | 6 +- apps/www/postcss.config.cjs | 8 ++- apps/www/src/routes/404.tsx | 2 - apps/www/src/routes/changelog/index.tsx | 1 + apps/www/src/routes/home/index.tsx | 2 +- apps/www/sst-env.d.ts | 4 ++ apps/www/tailwind.config.js | 2 +- apps/www/tsconfig.json | 3 +- bun.lockb | Bin 427584 -> 428352 bytes infra/domain.ts | 9 +++ infra/github.ts | 38 ++++++++++++ infra/secrets.ts | 5 ++ infra/stage.ts | 2 + infra/www.ts | 36 +++++++++++ package.json | 11 +++- packages/mdx/package.json | 6 +- packages/ui/package.json | 8 +-- packages/ui/post.config.js | 2 +- packages/ui/src/card.tsx | 1 - packages/ui/src/github-banner.tsx | 2 +- packages/ui/src/home-nav-bar.tsx | 2 +- packages/ui/src/image/basic-image-loader.tsx | 4 +- packages/ui/src/image/image-loader.tsx | 2 +- packages/ui/src/input.tsx | 2 +- packages/ui/src/nav-bar.tsx | 2 +- packages/ui/src/react/cursor.tsx | 2 +- packages/ui/src/react/display.tsx | 4 +- packages/ui/src/react/hero-section.tsx | 2 +- packages/ui/src/react/marquee.tsx | 2 +- packages/ui/src/react/my-cursor.tsx | 3 +- packages/ui/src/react/save.tsx | 2 +- packages/ui/src/react/text.tsx | 2 +- packages/ui/src/react/title-section.tsx | 2 +- packages/ui/src/react/title.tsx | 2 +- packages/ui/tsconfig.json | 5 +- packages/ui/tsconfig.lint.json | 1 + sst-env.d.ts | 8 +++ sst.config.ts | 20 +++++++ tsconfig.json | 1 + 44 files changed, 243 insertions(+), 47 deletions(-) create mode 100644 .github/workflows/sst.yml rename apps/www/{.eslintrc.js => .eslintrc.cjs} (100%) create mode 100644 apps/www/sst-env.d.ts create mode 100644 infra/domain.ts create mode 100644 infra/github.ts create mode 100644 infra/secrets.ts create mode 100644 infra/stage.ts create mode 100644 infra/www.ts create mode 100644 sst-env.d.ts create mode 100644 sst.config.ts create mode 100644 tsconfig.json diff --git a/.github/workflows/sst.yml b/.github/workflows/sst.yml new file mode 100644 index 00000000..b8b90161 --- /dev/null +++ b/.github/workflows/sst.yml @@ -0,0 +1,60 @@ +name: sst + +on: + workflow_dispatch: + +concurrency: + group: ${{ github.ref }} + + +jobs: + deploy: + runs-on: ubuntu-latest + permissions: + id-token: write + contents: read + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - uses: actions/cache@v2 + with: + path: | + .sst + key: ${{ runner.os }}-sst + + - uses: oven-sh/setup-bun@v1 + with: + bun-version: latest + + - uses: actions/setup-node@v1 + with: + node-version: "20" + + - run: "curl -fsSL https://ion.sst.dev/install | bash" + + - if: github.ref == 'refs/heads/dev' + name: Configure Dev AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + role-to-assume: arn:aws:iam::058264103289:role/terminal-shop-dev-github + aws-region: us-east-2 + + - if: github.ref == 'refs/heads/production' + name: Configure Production AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + role-to-assume: arn:aws:iam::211125775473:role/terminal-shop-production-github + aws-region: us-east-2 + + - name: deps + run: bun install + + - name: Deploy + env: + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} + run: | + sst install + sst deploy --stage=${GITHUB_REF_NAME} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 96fab4fe..28dc834e 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,9 @@ yarn-error.log* # Misc .DS_Store *.pem + +# sst +.sst + +#Bun merging errors, EVERY time :( +bun.lockb \ No newline at end of file diff --git a/apps/docs/package.json b/apps/docs/package.json index ea1bb6a7..2b08ccc9 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -31,9 +31,9 @@ "devDependencies": { "@builder.io/qwik": "^1.8.0", "@builder.io/qwik-city": "^1.8.0", - "@nestri/eslint-config": "workspace:*", - "@nestri/typescript-config": "workspace:*", - "@nestri/ui": "workspace:*", + "@nestri/eslint-config": "*", + "@nestri/typescript-config": "*", + "@nestri/ui": "*", "@types/eslint": "8.56.10", "@types/node": "20.14.11", "@typescript-eslint/eslint-plugin": "7.16.1", diff --git a/apps/nexus/package.json b/apps/nexus/package.json index 9bc4a03d..1bd375eb 100644 --- a/apps/nexus/package.json +++ b/apps/nexus/package.json @@ -16,7 +16,7 @@ "@jsquash/avif": "^1.3.0", "@jsquash/jpeg": "^1.4.0", "@jsquash/resize": "^2.0.0", - "@nestri/cache": "workspace:*", + "@nestri/cache": "*", "tinycolor2": "^1.6.0", "wrangler": "^3.72.2" } diff --git a/apps/www/.eslintrc.js b/apps/www/.eslintrc.cjs similarity index 100% rename from apps/www/.eslintrc.js rename to apps/www/.eslintrc.cjs diff --git a/apps/www/package.json b/apps/www/package.json index 9e034cf4..b39d3648 100644 --- a/apps/www/package.json +++ b/apps/www/package.json @@ -32,9 +32,9 @@ "@builder.io/qwik": "^1.8.0", "@builder.io/qwik-city": "^1.8.0", "@builder.io/qwik-react": "0.5.0", - "@nestri/eslint-config": "workspace:*", - "@nestri/typescript-config": "workspace:*", - "@nestri/ui": "workspace:*", + "@nestri/eslint-config": "*", + "@nestri/typescript-config": "*", + "@nestri/ui": "*", "@types/eslint": "8.56.10", "@types/node": "^22.5.1", "@types/react": "^18.2.28", diff --git a/apps/www/postcss.config.cjs b/apps/www/postcss.config.cjs index dd1d0abe..c1464c07 100644 --- a/apps/www/postcss.config.cjs +++ b/apps/www/postcss.config.cjs @@ -1 +1,7 @@ -module.exports = require("@nestri/ui/postcss.config"); \ No newline at end of file +// module.exports = require("@nestri/ui/postcss.config"); +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; \ No newline at end of file diff --git a/apps/www/src/routes/404.tsx b/apps/www/src/routes/404.tsx index d7e0ec4d..18a4c2e9 100644 --- a/apps/www/src/routes/404.tsx +++ b/apps/www/src/routes/404.tsx @@ -1,7 +1,5 @@ import { component$ } from "@builder.io/qwik"; import { Link } from "@builder.io/qwik-city"; -import { buttonVariants, cn } from "@nestri/ui/design"; - export default component$(() => { return ( diff --git a/apps/www/src/routes/changelog/index.tsx b/apps/www/src/routes/changelog/index.tsx index c0bf2634..1170c38e 100644 --- a/apps/www/src/routes/changelog/index.tsx +++ b/apps/www/src/routes/changelog/index.tsx @@ -1,3 +1,4 @@ +/* eslint-disable qwik/jsx-img */ import { component$ } from "@builder.io/qwik"; import { Link } from "@builder.io/qwik-city"; import { NavBar, Footer } from "@nestri/ui"; diff --git a/apps/www/src/routes/home/index.tsx b/apps/www/src/routes/home/index.tsx index ce9d5e6e..02d4478a 100644 --- a/apps/www/src/routes/home/index.tsx +++ b/apps/www/src/routes/home/index.tsx @@ -1,5 +1,5 @@ import { component$ } from "@builder.io/qwik"; -import { GameCard, HomeNavBar, Card } from "@nestri/ui"; +import { HomeNavBar, Card } from "@nestri/ui"; function getGreeting(): string { const hour = new Date().getHours(); diff --git a/apps/www/sst-env.d.ts b/apps/www/sst-env.d.ts new file mode 100644 index 00000000..af3a3c21 --- /dev/null +++ b/apps/www/sst-env.d.ts @@ -0,0 +1,4 @@ +/* tslint:disable */ +/* eslint-disable */ +/// +export {} diff --git a/apps/www/tailwind.config.js b/apps/www/tailwind.config.js index e9547628..81dc036f 100644 --- a/apps/www/tailwind.config.js +++ b/apps/www/tailwind.config.js @@ -1,8 +1,8 @@ // import colors from "tailwindcss/colors"; import baseConfig from "@nestri/ui/tailwind.config"; /** @type {import('tailwindcss').Config} */ -module.exports = { +module.exports = { content: [ "./{src,components,app}/**/*.{ts,tsx,html}", "../../packages/ui/src/**/*.{ts,tsx}", diff --git a/apps/www/tsconfig.json b/apps/www/tsconfig.json index a6e96939..cbbdb97d 100644 --- a/apps/www/tsconfig.json +++ b/apps/www/tsconfig.json @@ -11,6 +11,7 @@ "forceConsistentCasingInFileNames": true, "resolveJsonModule": true, "moduleResolution": "Bundler", + "allowImportingTsExtensions": true, "esModuleInterop": true, "skipLibCheck": true, "incremental": true, @@ -24,7 +25,7 @@ } }, "files": [ - ".eslintrc.js" + ".eslintrc.cjs" ], "include": [ "src", diff --git a/bun.lockb b/bun.lockb index bf2135800ab7219c76f28aacea4dfb5a148a1c5a..9a524b4dffb7babedadf1e3989186e65b668ffe3 100755 GIT binary patch delta 87191 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 delta 86179 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 Nj2x=^j_}y~e*i-s7N`IK diff --git a/infra/domain.ts b/infra/domain.ts new file mode 100644 index 00000000..2fd8e807 --- /dev/null +++ b/infra/domain.ts @@ -0,0 +1,9 @@ +export const domain = + { + production: "fst.so", + dev: "dev.fst.so", + }[$app.stage] || $app.stage + ".dev.fst.so"; + +export const zone = cloudflare.getZoneOutput({ + name: "fst.so", +}); \ No newline at end of file diff --git a/infra/github.ts b/infra/github.ts new file mode 100644 index 00000000..cf1e0d5f --- /dev/null +++ b/infra/github.ts @@ -0,0 +1,38 @@ +import { isPermanentStage } from "./stage"; + +if (isPermanentStage) { + const github = new aws.iam.OpenIdConnectProvider("GithubProvider", { + url: "https://token.actions.githubusercontent.com", + clientIdLists: ["sts.amazonaws.com"], + thumbprintLists: [ + "6938fd4d98bab03faadb97b34396831e3780aea1", + "1c58a3a8518e8759bf075b76b750d4f2df264fcd", + ], + }); + + const githubRole = new aws.iam.Role("GithubRole", { + name: [$app.name, $app.stage, "github"].join("-"), + assumeRolePolicy: { + Version: "2012-10-17", + Statement: [ + { + Effect: "Allow", + Principal: { + Federated: github.arn, + }, + Action: "sts:AssumeRoleWithWebIdentity", + Condition: { + StringLike: github.url.apply((url) => ({ + [`${url}:sub`]: "repo:nestriness/nestri:*", + })), + }, + }, + ], + }, + }); + + new aws.iam.RolePolicyAttachment("GithubRolePolicy", { + policyArn: "arn:aws:iam::aws:policy/AdministratorAccess", + role: githubRole.name, + }); +} \ No newline at end of file diff --git a/infra/secrets.ts b/infra/secrets.ts new file mode 100644 index 00000000..28377c8d --- /dev/null +++ b/infra/secrets.ts @@ -0,0 +1,5 @@ +export const secret = { + CloudflareAccountIdSecret: new sst.Secret("CloudflareAccountId"), +}; + +export const allSecrets = Object.values(secret); \ No newline at end of file diff --git a/infra/stage.ts b/infra/stage.ts new file mode 100644 index 00000000..3f4f5335 --- /dev/null +++ b/infra/stage.ts @@ -0,0 +1,2 @@ +export const isPermanentStage = + $app.stage === "production" || $app.stage === "dev"; \ No newline at end of file diff --git a/infra/www.ts b/infra/www.ts new file mode 100644 index 00000000..705a679a --- /dev/null +++ b/infra/www.ts @@ -0,0 +1,36 @@ +//Deploys the website to cloudflare pages under the domain nestri.io (redirects all requests to www.nestri.io to avoid duplicate content) +// const cloudflareAccountId = new sst.Secret("CloudflareAccountId"); + +export const www = new cloudflare.PagesProject("www", { + name: "nestri", + accountId: "8405b2acb6746935b975bc2cfcb5c288", + productionBranch: "main", + buildConfig: { + rootDir: "apps/www", + // buildCommand: "bun run build", + destinationDir: "dist" + }, + deploymentConfigs: { + production: { + compatibilityFlags: ["nodejs_compat"] + }, + preview: { + compatibilityFlags: ["nodejs_compat"] + } + }, + source: { + type: "github", + config: { + owner: "nestriness", + deploymentsEnabled: true, + productionBranch: "main", + repoName: "nestri", + productionDeploymentEnabled: true, + prCommentsEnabled: true, + } + } +}); + +export const outputs = { + www: www.subdomain, +}; \ No newline at end of file diff --git a/package.json b/package.json index 08f45986..0a112bbd 100644 --- a/package.json +++ b/package.json @@ -4,10 +4,12 @@ "scripts": { "build": "turbo build", "dev": "turbo dev", - "lint": "turbo lint", - "format": "prettier --write \"**/*.{ts,tsx,md}\"" + "format": "prettier --write \"**/*.{ts,tsx,md}\"", + "lint": "turbo lint" }, "devDependencies": { + "@cloudflare/workers-types": "4.20240821.1", + "@types/aws-lambda": "8.10.145", "prettier": "^3.2.5", "sst": "^3.0.91", "turbo": "^2.0.12", @@ -25,5 +27,8 @@ "core-js-pure", "esbuild", "workerd" - ] + ], + "dependencies": { + "sst": "3.0.94" + } } diff --git a/packages/mdx/package.json b/packages/mdx/package.json index d970a671..67e3a339 100644 --- a/packages/mdx/package.json +++ b/packages/mdx/package.json @@ -14,9 +14,9 @@ "@builder.io/qwik": "^1.8.0", "@builder.io/qwik-city": "^1.8.0", "@builder.io/qwik-react": "0.5.0", - "@nestri/eslint-config": "workspace:*", - "@nestri/typescript-config": "workspace:*", - "@nestri/core": "workspace:*", + "@nestri/eslint-config": "*", + "@nestri/typescript-config": "*", + "@nestri/core": "*", "@types/eslint": "^8.56.5", "@types/node": "^20.11.24", "autoprefixer": "^10.4.20", diff --git a/packages/ui/package.json b/packages/ui/package.json index cf7d3946..54c405fb 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -4,7 +4,7 @@ "private": true, "sideEffects": false, "files": [ - "tailwind.config.ts", + "tailwind.config.js", "postcss.config.js", "globals.css" ], @@ -26,9 +26,9 @@ "@builder.io/qwik-react": "0.5.0", "@fontsource/bricolage-grotesque": "^5.0.7", "@fontsource/geist-sans": "^5.0.3", - "@nestri/eslint-config": "workspace:*", - "@nestri/typescript-config": "workspace:*", - "@nestri/core": "workspace:*", + "@nestri/eslint-config": "*", + "@nestri/typescript-config": "*", + "@nestri/core": "*", "@turbo/gen": "^1.12.4", "@types/eslint": "^8.56.5", "@types/node": "^20.11.24", diff --git a/packages/ui/post.config.js b/packages/ui/post.config.js index 4701c1c1..ba7a7e40 100644 --- a/packages/ui/post.config.js +++ b/packages/ui/post.config.js @@ -1,4 +1,4 @@ -export default { +module.exports = { plugins: { tailwindcss: {}, autoprefixer: {}, diff --git a/packages/ui/src/card.tsx b/packages/ui/src/card.tsx index 3addf169..4973f2e2 100644 --- a/packages/ui/src/card.tsx +++ b/packages/ui/src/card.tsx @@ -10,7 +10,6 @@ type Props = { export const Card = component$(({ game }: Props) => { const imageUrl = `http://localhost:8787/image/cover/${game.id}.avif` const backgroundColor = useSignal(undefined); - const ringColor = useSignal(undefined); const imgRef = useSignal(); const extractColor = $((img: HTMLImageElement) => { diff --git a/packages/ui/src/github-banner.tsx b/packages/ui/src/github-banner.tsx index 69b02bd7..302cad9b 100644 --- a/packages/ui/src/github-banner.tsx +++ b/packages/ui/src/github-banner.tsx @@ -1,5 +1,5 @@ import { component$ } from "@builder.io/qwik"; -import { MotionComponent, transition } from "@/react/motion"; +import { MotionComponent, transition } from "@nestri/ui/react"; import { Link } from "@builder.io/qwik-city"; export const GithubBanner = component$(() => { diff --git a/packages/ui/src/home-nav-bar.tsx b/packages/ui/src/home-nav-bar.tsx index d89f885b..2e2d59da 100644 --- a/packages/ui/src/home-nav-bar.tsx +++ b/packages/ui/src/home-nav-bar.tsx @@ -1,5 +1,5 @@ import { $, component$, useOnDocument, useSignal } from "@builder.io/qwik"; -import { cn } from "@/design"; +import { cn } from "./design"; export const HomeNavBar = component$(() => { const hasScrolled = useSignal(false); diff --git a/packages/ui/src/image/basic-image-loader.tsx b/packages/ui/src/image/basic-image-loader.tsx index 6972d9c6..fc0c0190 100644 --- a/packages/ui/src/image/basic-image-loader.tsx +++ b/packages/ui/src/image/basic-image-loader.tsx @@ -1,6 +1,6 @@ /* eslint-disable qwik/no-use-visible-task */ -import { cn } from '@/design'; -import { component$, useSignal, useTask$, useStyles$, useVisibleTask$, $ } from '@builder.io/qwik'; +import { cn } from '@nestri/ui/design'; +import { component$, useSignal, useTask$, useStyles$, useVisibleTask$ } from '@builder.io/qwik'; interface ImageLoaderProps { src: string; diff --git a/packages/ui/src/image/image-loader.tsx b/packages/ui/src/image/image-loader.tsx index fa26db63..472c011b 100644 --- a/packages/ui/src/image/image-loader.tsx +++ b/packages/ui/src/image/image-loader.tsx @@ -1,5 +1,5 @@ /* eslint-disable qwik/no-use-visible-task */ -import { cn } from '@/design'; +import { cn } from '@nestri/ui/design'; import { component$, useSignal, useTask$, useStyles$, useVisibleTask$, $ } from '@builder.io/qwik'; interface ImageLoaderProps { diff --git a/packages/ui/src/input.tsx b/packages/ui/src/input.tsx index 63cc31a1..36dcf144 100644 --- a/packages/ui/src/input.tsx +++ b/packages/ui/src/input.tsx @@ -2,7 +2,7 @@ import { form, cn, type InputProps as InputVariants, -} from "@/design" +} from "./design" import { type QwikIntrinsicElements, component$ } from '@builder.io/qwik'; export interface InputComponentProps extends Omit, InputVariants { diff --git a/packages/ui/src/nav-bar.tsx b/packages/ui/src/nav-bar.tsx index 14092aef..0273780c 100644 --- a/packages/ui/src/nav-bar.tsx +++ b/packages/ui/src/nav-bar.tsx @@ -1,6 +1,6 @@ import { $, component$, useOnDocument, useSignal } from "@builder.io/qwik"; import { Link, useLocation } from "@builder.io/qwik-city"; -import { buttonVariants, cn } from "@/design"; +import { buttonVariants, cn } from "./design"; const navLinks = [ { diff --git a/packages/ui/src/react/cursor.tsx b/packages/ui/src/react/cursor.tsx index be7b27a2..b73ad35c 100644 --- a/packages/ui/src/react/cursor.tsx +++ b/packages/ui/src/react/cursor.tsx @@ -1,7 +1,7 @@ /** @jsxImportSource react */ import React from 'react' import { motion } from 'framer-motion' -import { cn } from '@/design' +import { cn } from "@nestri/ui/design" import { qwikify$ } from '@builder.io/qwik-react'; export const CursorSVG = ({ flip }: { flip?: boolean }) => ( diff --git a/packages/ui/src/react/display.tsx b/packages/ui/src/react/display.tsx index 85369d8f..a0fd4d0d 100644 --- a/packages/ui/src/react/display.tsx +++ b/packages/ui/src/react/display.tsx @@ -6,9 +6,9 @@ import { type DisplayProps as DisplayVariants, type TextAlignProp, type TextWeightProp -} from "@/design" +} from "@nestri/ui/design" import * as ReactBalancer from "react-wrap-balancer" -import { cn } from "@/design" +import { cn } from "@nestri/ui/design" import { qwikify$ } from "@builder.io/qwik-react" type DisplaySize = DisplayVariants["size"] diff --git a/packages/ui/src/react/hero-section.tsx b/packages/ui/src/react/hero-section.tsx index f80abd0a..207696d4 100644 --- a/packages/ui/src/react/hero-section.tsx +++ b/packages/ui/src/react/hero-section.tsx @@ -2,7 +2,7 @@ /** @jsxImportSource react */ import { qwikify$ } from "@builder.io/qwik-react"; import { motion } from "framer-motion" -import { ReactDisplay } from "@/react/display" +import { ReactDisplay } from "./display" import * as React from "react" // type Props = { // children?: React.ReactElement[] diff --git a/packages/ui/src/react/marquee.tsx b/packages/ui/src/react/marquee.tsx index 29bc3586..d3870dc9 100644 --- a/packages/ui/src/react/marquee.tsx +++ b/packages/ui/src/react/marquee.tsx @@ -1,4 +1,4 @@ -import { cn } from "@/design"; +import { cn } from "@nestri/ui/design"; import { component$, useStore, type Component } from "@builder.io/qwik"; diff --git a/packages/ui/src/react/my-cursor.tsx b/packages/ui/src/react/my-cursor.tsx index 7c89bff5..bbb43ebe 100644 --- a/packages/ui/src/react/my-cursor.tsx +++ b/packages/ui/src/react/my-cursor.tsx @@ -1,7 +1,6 @@ /** @jsxImportSource react */ import React from 'react' -import { motion } from 'framer-motion' -import { cn } from '@/design' +import { cn } from "@nestri/ui/design" import { qwikify$ } from '@builder.io/qwik-react'; export const CursorSVG = ({ flip }: { flip?: boolean }) => ( diff --git a/packages/ui/src/react/save.tsx b/packages/ui/src/react/save.tsx index ea17fed2..eb9d848d 100644 --- a/packages/ui/src/react/save.tsx +++ b/packages/ui/src/react/save.tsx @@ -1,5 +1,5 @@ /** @jsxImportSource react */ -import { cn } from "@/design"; +import { cn } from "@nestri/ui/design"; import { qwikify$ } from "@builder.io/qwik-react"; import React, { useEffect, useRef, useState } from "react"; import { diff --git a/packages/ui/src/react/text.tsx b/packages/ui/src/react/text.tsx index e8bc3498..aece6f7e 100644 --- a/packages/ui/src/react/text.tsx +++ b/packages/ui/src/react/text.tsx @@ -7,7 +7,7 @@ import { type TextAlignProp, type TextWeightProp, cn -} from "@/design" +} from "@nestri/ui/design" // import * as ReactBalancer from "react-wrap-balancer" import { qwikify$ } from "@builder.io/qwik-react" diff --git a/packages/ui/src/react/title-section.tsx b/packages/ui/src/react/title-section.tsx index 554ee989..e03f85fd 100644 --- a/packages/ui/src/react/title-section.tsx +++ b/packages/ui/src/react/title-section.tsx @@ -2,7 +2,7 @@ /** @jsxImportSource react */ import { qwikify$ } from "@builder.io/qwik-react"; import { motion } from "framer-motion" -import { ReactDisplay } from "@/react/display" +import { ReactDisplay } from "./display" // type Props = { // children?: React.ReactElement[] // } diff --git a/packages/ui/src/react/title.tsx b/packages/ui/src/react/title.tsx index b1ad8289..b7e766ab 100644 --- a/packages/ui/src/react/title.tsx +++ b/packages/ui/src/react/title.tsx @@ -7,7 +7,7 @@ import { type TextAlignProp, type TextWeightProp, cn -} from "@/design" +} from "@nestri/ui/design" import { qwikify$ } from "@builder.io/qwik-react"; diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json index d377e2e7..e8055b2b 100644 --- a/packages/ui/tsconfig.json +++ b/packages/ui/tsconfig.json @@ -3,10 +3,7 @@ "compilerOptions": { "outDir": "tmp", "rootDir": ".", - "allowImportingTsExtensions": true, - "paths": { - "@/*": ["./src/*"] - } + "allowImportingTsExtensions": true }, "files": [".eslintrc.js"], "include": ["src", "./*.d.ts"] diff --git a/packages/ui/tsconfig.lint.json b/packages/ui/tsconfig.lint.json index 5e2b9c84..f150d092 100644 --- a/packages/ui/tsconfig.lint.json +++ b/packages/ui/tsconfig.lint.json @@ -2,6 +2,7 @@ "extends": "@nestri/typescript-config/base.json", "compilerOptions": { "outDir": "dist", + "allowImportingTsExtensions": true }, "include": ["src", "./*.config.js","./.eslintrc.js"], "exclude": ["node_modules", "dist"] diff --git a/sst-env.d.ts b/sst-env.d.ts new file mode 100644 index 00000000..f110f330 --- /dev/null +++ b/sst-env.d.ts @@ -0,0 +1,8 @@ +/* tslint:disable */ +/* eslint-disable */ +import "sst" +declare module "sst" { + export interface Resource { + } +} +export {} diff --git a/sst.config.ts b/sst.config.ts new file mode 100644 index 00000000..8f3f882a --- /dev/null +++ b/sst.config.ts @@ -0,0 +1,20 @@ +/// +import { readdirSync } from "fs"; +export default $config({ + app(input) { + return { + name: "nestri", + removal: input?.stage === "production" ? "retain" : "remove", + home: "aws", + providers: { cloudflare: "5.37.1" }, + }; + }, + async run() { + const outputs = {}; + for (const value of readdirSync("./infra/")) { + const result = await import("./infra/" + value); + if (result.outputs) Object.assign(outputs, result.outputs); + } + return outputs; + }, +}); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1 @@ +{}