diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..3ef84740 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,15 @@ +node_modules +#.git +.env +.gitignore + +.DS_Store +.env +*.code-workspace +_site +.turbo/ +.vscode/ +coverage/ +html/ +NOTES.md +tsconfig.tsbuildinfo diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 00000000..f198a79d --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,75 @@ +name: 'Run tests' + +on: + push: + branches: + - main + workflow_dispatch: + +env: + TAG_NAME: ghcr.io/gsa-tts/tts-10x-atj-dev/doj-demo:latest + +jobs: + init-deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Read node version from `.nvmrc` file + id: nvmrc + shell: bash + run: echo ::set-output name=NODE_VERSION::$(cat .nvmrc) + + - name: Install required node.js version + uses: actions/setup-node@v3 + with: + node-version: ${{ steps.nvmrc.outputs.NODE_VERSION }} + + - name: Install pnpm + uses: pnpm/action-setup@v2 + id: pnpm-install + with: + version: 8 + run_install: false + - name: Get pnpm store directory + id: pnpm-cache + shell: bash + run: | + echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT + + - uses: actions/cache@v3 + name: Setup pnpm cache + with: + path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- + + - name: Install dependencies + run: pnpm install + + build-image: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Build container image + run: docker build . --platform linux/amd64 --target doj-demo --tag ${TAG_NAME} + + - name: Publish to container registry + run: docker push ${TAG_NAME} + + deploy: + runs-on: ubuntu-latest + needs: [build-image, init-deploy] + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Initialize Terraform CDK configuration + run: pnpm build + + - name: Apply Terraform CDK configuration + run: pnpm cdktf deploy diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..ed66c6c5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,33 @@ +FROM node:20-bookworm AS base + +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" +RUN corepack enable + +FROM base AS build + +RUN apt update && \ + apt install -y git +COPY . /usr/src/app +WORKDIR /usr/src/app +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile +RUN pnpm build +RUN pnpm deploy --filter=doj-demo --prod /app/doj-demo +#RUN pnpm deploy --filter=spotlight --prod /app/spotlight + +FROM base AS doj-demo + +LABEL org.opencontainers.image.description 10x-atj DOJ demo + +COPY --from=build /app/doj-demo /app/doj-demo +COPY --from=build /usr/src/app/apps/doj-demo/dist /app/doj-demo/dist +WORKDIR /app/doj-demo + +ENV HOST=0.0.0.0 +ENV PORT=4321 +EXPOSE 4321 + +CMD [ "node", "./dist/server/entry.mjs" ] + +#HEALTHCHECK --interval=5m --timeout=3s \ +# CMD curl -f http://localhost:4321/ || exit 1 diff --git a/apps/doj-demo/.gitignore b/apps/doj-demo/.gitignore new file mode 100644 index 00000000..6240da8b --- /dev/null +++ b/apps/doj-demo/.gitignore @@ -0,0 +1,21 @@ +# build output +dist/ +# generated types +.astro/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store diff --git a/apps/doj-demo/.nvmrc b/apps/doj-demo/.nvmrc new file mode 120000 index 00000000..15bb0fb5 --- /dev/null +++ b/apps/doj-demo/.nvmrc @@ -0,0 +1 @@ +../../.nvmrc \ No newline at end of file diff --git a/apps/doj-demo/README.md b/apps/doj-demo/README.md new file mode 100644 index 00000000..e34a99b4 --- /dev/null +++ b/apps/doj-demo/README.md @@ -0,0 +1,47 @@ +# Astro Starter Kit: Minimal + +```sh +npm create astro@latest -- --template minimal +``` + +[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/minimal) +[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/minimal) +[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/minimal/devcontainer.json) + +> πŸ§‘β€πŸš€ **Seasoned astronaut?** Delete this file. Have fun! + +## πŸš€ Project Structure + +Inside of your Astro project, you'll see the following folders and files: + +```text +/ +β”œβ”€β”€ public/ +β”œβ”€β”€ src/ +β”‚ └── pages/ +β”‚ └── index.astro +└── package.json +``` + +Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name. + +There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components. + +Any static assets, like images, can be placed in the `public/` directory. + +## 🧞 Commands + +All commands are run from the root of the project, from a terminal: + +| Command | Action | +| :------------------------ | :----------------------------------------------- | +| `npm install` | Installs dependencies | +| `npm run dev` | Starts local dev server at `localhost:4321` | +| `npm run build` | Build your production site to `./dist/` | +| `npm run preview` | Preview your build locally, before deploying | +| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` | +| `npm run astro -- --help` | Get help using the Astro CLI | + +## πŸ‘€ Want to learn more? + +Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat). diff --git a/apps/doj-demo/astro.config.mjs b/apps/doj-demo/astro.config.mjs new file mode 100644 index 00000000..7230dea6 --- /dev/null +++ b/apps/doj-demo/astro.config.mjs @@ -0,0 +1,29 @@ +import { defineConfig } from 'astro/config'; +import node from '@astrojs/node'; +import react from '@astrojs/react'; + +// https://astro.build/config +export default defineConfig({ + output: 'server', + trailingSlash: 'never', + base: addTrailingSlash(process.env.BASEURL || ''), + adapter: node({ + mode: 'standalone', + }), + integrations: [ + react({ + include: ['src/components/react/**'], + }), + ], + server: { + port: 80, + }, +}); + +function addTrailingSlash(path) { + var lastChar = path.substr(-1); + if (lastChar === '/') { + return path; + } + return path + '/'; +} diff --git a/apps/doj-demo/package.json b/apps/doj-demo/package.json new file mode 100644 index 00000000..91d9be94 --- /dev/null +++ b/apps/doj-demo/package.json @@ -0,0 +1,29 @@ +{ + "name": "doj-demo", + "type": "module", + "version": "0.0.1", + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro check && astro build", + "preview": "astro preview", + "astro": "astro" + }, + "dependencies": { + "@astrojs/check": "^0.5.6", + "@astrojs/node": "^8.2.3", + "@astrojs/react": "^3.0.9", + "@atj/design": "workspace:*", + "@atj/documents": "workspace:*", + "@atj/form-service": "workspace:*", + "@atj/forms": "workspace:*", + "astro": "^4.4.11", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-error-boundary": "^4.0.12", + "typescript": "^5.3.3" + }, + "devDependencies": { + "@types/react": "^18.2.62" + } +} diff --git a/apps/doj-demo/public/favicon.ico b/apps/doj-demo/public/favicon.ico new file mode 100644 index 00000000..0c0872e1 Binary files /dev/null and b/apps/doj-demo/public/favicon.ico differ diff --git a/apps/doj-demo/public/uswds b/apps/doj-demo/public/uswds new file mode 120000 index 00000000..bb61b72f --- /dev/null +++ b/apps/doj-demo/public/uswds @@ -0,0 +1 @@ +../../../packages/design/static/uswds \ No newline at end of file diff --git a/apps/doj-demo/src/components/AppAvailableFormList.tsx b/apps/doj-demo/src/components/AppAvailableFormList.tsx new file mode 100644 index 00000000..57216134 --- /dev/null +++ b/apps/doj-demo/src/components/AppAvailableFormList.tsx @@ -0,0 +1,26 @@ +import React from 'react'; +import { ErrorBoundary } from 'react-error-boundary'; + +import { AvailableFormList } from '@atj/design'; +import { getAppContext } from '../context'; +import { getFormUrl } from '../routes'; +import DebugTools from './DebugTools'; + +export default () => { + const ctx = getAppContext(); + return ( + + There was an unexpected error rendering the form list. + + + } + > + + + ); +}; diff --git a/apps/doj-demo/src/components/AppFormManager.tsx b/apps/doj-demo/src/components/AppFormManager.tsx new file mode 100644 index 00000000..394120a1 --- /dev/null +++ b/apps/doj-demo/src/components/AppFormManager.tsx @@ -0,0 +1,25 @@ +import React from 'react'; + +import { + FormManager, + defaultFormElementComponents, + defaultFormElementEditComponents, +} from '@atj/design'; + +import { getAppContext } from '../context'; + +export default function () { + const ctx = getAppContext(); + return ( + + ); +} diff --git a/apps/doj-demo/src/components/AppFormRouter.tsx b/apps/doj-demo/src/components/AppFormRouter.tsx new file mode 100644 index 00000000..7164b641 --- /dev/null +++ b/apps/doj-demo/src/components/AppFormRouter.tsx @@ -0,0 +1,18 @@ +import React from 'react'; + +import { FormRouter, defaultFormElementComponents } from '@atj/design'; +import { getAppContext } from '../context'; + +export default function AppFormRouter() { + const ctx = getAppContext(); + return ( + + ); +} diff --git a/apps/doj-demo/src/components/DebugTools.tsx b/apps/doj-demo/src/components/DebugTools.tsx new file mode 100644 index 00000000..4369c300 --- /dev/null +++ b/apps/doj-demo/src/components/DebugTools.tsx @@ -0,0 +1,18 @@ +import React from 'react'; + +export default function DebugTools() { + return ( +
+ +
+ ); +} diff --git a/apps/doj-demo/src/components/Footer.astro b/apps/doj-demo/src/components/Footer.astro new file mode 100644 index 00000000..5dec3f5b --- /dev/null +++ b/apps/doj-demo/src/components/Footer.astro @@ -0,0 +1,26 @@ +--- + +--- + + diff --git a/apps/doj-demo/src/components/Header.astro b/apps/doj-demo/src/components/Header.astro new file mode 100644 index 00000000..abdf4a62 --- /dev/null +++ b/apps/doj-demo/src/components/Header.astro @@ -0,0 +1,51 @@ +--- +import closeSvg from '@atj/design/static/uswds/img/usa-icons/close.svg'; +import logoSvg from '@atj/design/images/logo.svg'; + +import * as routes from '../routes'; + +const getNavLinkClasses = (url: string) => { + if (url === Astro.url.pathname) { + return 'usa-nav-link usa-current'; + } else { + return 'usa-nav-link'; + } +}; +--- + +
+
+ + +
diff --git a/apps/doj-demo/src/components/UsaBanner.astro b/apps/doj-demo/src/components/UsaBanner.astro new file mode 100644 index 00000000..b97a7390 --- /dev/null +++ b/apps/doj-demo/src/components/UsaBanner.astro @@ -0,0 +1,100 @@ +--- +import iconDotGov from '@atj/design/static/uswds/img/icon-dot-gov.svg'; +import iconHttps from '@atj/design/static/uswds/img/icon-https.svg'; +import usFlagSmall from '@atj/design/static/uswds/img/us_flag_small.png'; +--- + +
+
+
+
+
+ U.S. flag +
+
+

+ An official website of the United States government +

+ +
+ +
+
+ +
+
diff --git a/apps/doj-demo/src/context.ts b/apps/doj-demo/src/context.ts new file mode 100644 index 00000000..9556e6a9 --- /dev/null +++ b/apps/doj-demo/src/context.ts @@ -0,0 +1,40 @@ +import { FormConfig } from '@atj/forms'; +import { defaultFormConfig } from '@atj/forms'; +import { + type FormService, + createBrowserFormService, + createTestFormService, +} from '@atj/form-service'; + +export type AppContext = { + baseUrl: `${string}/`; + formConfig: FormConfig; + formService: FormService; + uswdsRoot: `${string}/`; +}; + +let _context: AppContext | null = null; + +export const getAppContext = (): AppContext => { + if (_context === null) { + _context = createAppContext(import.meta.env); + } + return _context; +}; + +const createAppContext = (env: any): AppContext => { + return { + baseUrl: env.BASE_URL, + formConfig: defaultFormConfig, + formService: createAppFormService(), + uswdsRoot: `${env.BASE_URL}uswds/`, + }; +}; + +const createAppFormService = () => { + if (globalThis.window) { + return createBrowserFormService(); + } else { + return createTestFormService(); + } +}; diff --git a/apps/doj-demo/src/env.d.ts b/apps/doj-demo/src/env.d.ts new file mode 100644 index 00000000..f964fe0c --- /dev/null +++ b/apps/doj-demo/src/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/apps/doj-demo/src/layouts/ContentLayout.astro b/apps/doj-demo/src/layouts/ContentLayout.astro new file mode 100644 index 00000000..bc9a3134 --- /dev/null +++ b/apps/doj-demo/src/layouts/ContentLayout.astro @@ -0,0 +1,22 @@ +--- +import Layout from './Layout.astro'; + +interface Props { + title: string; +} +const { title } = Astro.props; +--- + + +
+
+
+
+
+ +
+
+
+
+
+
diff --git a/apps/doj-demo/src/layouts/Layout.astro b/apps/doj-demo/src/layouts/Layout.astro new file mode 100644 index 00000000..ceec5ed7 --- /dev/null +++ b/apps/doj-demo/src/layouts/Layout.astro @@ -0,0 +1,48 @@ +--- +import '../styles.css'; + +import UsaBanner from '../components/UsaBanner.astro'; +import Footer from '../components/Footer.astro'; +import Header from '../components/Header.astro'; +import { getAppContext } from '../context'; +import * as routes from '../routes'; + +interface Props { + title: string; +} +const { title } = Astro.props; +const context = getAppContext(); +--- + + + + + + + + + + + + + Office of the Pardon Attorney - Department of Justice - {title} + + + +
+ +
+ +
+ + diff --git a/apps/doj-demo/src/lib/initialize.ts b/apps/doj-demo/src/lib/initialize.ts new file mode 100644 index 00000000..d45adc20 --- /dev/null +++ b/apps/doj-demo/src/lib/initialize.ts @@ -0,0 +1,4 @@ +/** + * Global initialization script. + */ +import '@atj/design'; diff --git a/apps/doj-demo/src/pages/404.astro b/apps/doj-demo/src/pages/404.astro new file mode 100644 index 00000000..ec41f553 --- /dev/null +++ b/apps/doj-demo/src/pages/404.astro @@ -0,0 +1,7 @@ +--- +import ContentLayout from '../layouts/ContentLayout.astro'; +--- + + +

404: Not Found

+
diff --git a/apps/doj-demo/src/pages/forms/index.astro b/apps/doj-demo/src/pages/forms/index.astro new file mode 100644 index 00000000..e69c1ada --- /dev/null +++ b/apps/doj-demo/src/pages/forms/index.astro @@ -0,0 +1,8 @@ +--- +import AppFormRouter from '../../components/AppFormRouter'; +import ContentLayout from '../../layouts/ContentLayout.astro'; +--- + + + + diff --git a/apps/doj-demo/src/pages/index.astro b/apps/doj-demo/src/pages/index.astro new file mode 100644 index 00000000..8b952084 --- /dev/null +++ b/apps/doj-demo/src/pages/index.astro @@ -0,0 +1,8 @@ +--- +import ContentLayout from '../layouts/ContentLayout.astro'; +--- + + +

Office of the Pardon Attorney

+

Sample forms

+
diff --git a/apps/doj-demo/src/pages/manage/import-pdf.astro b/apps/doj-demo/src/pages/manage/import-pdf.astro new file mode 100644 index 00000000..b60e571f --- /dev/null +++ b/apps/doj-demo/src/pages/manage/import-pdf.astro @@ -0,0 +1,7 @@ +--- +import ContentLayout from '../../layouts/ContentLayout.astro'; +--- + + + + diff --git a/apps/doj-demo/src/pages/manage/index.astro b/apps/doj-demo/src/pages/manage/index.astro new file mode 100644 index 00000000..47478d3a --- /dev/null +++ b/apps/doj-demo/src/pages/manage/index.astro @@ -0,0 +1,8 @@ +--- +import AppFormManager from '../../components/AppFormManager'; +import ContentLayout from '../../layouts/ContentLayout.astro'; +--- + + + + diff --git a/apps/doj-demo/src/routes.ts b/apps/doj-demo/src/routes.ts new file mode 100644 index 00000000..a4d77920 --- /dev/null +++ b/apps/doj-demo/src/routes.ts @@ -0,0 +1,21 @@ +import { getAppContext } from './context'; + +export const getFormUrl = (formId: string) => { + const context = getAppContext(); + return `${context.baseUrl}forms/#${formId}`; +}; + +export const getManageUrl = () => { + const context = getAppContext(); + return `${context.baseUrl}manage/`; +}; + +export const getHomeUrl = () => { + const context = getAppContext(); + return context.baseUrl; +}; + +export const getFaviconUrl = () => { + const context = getAppContext(); + return `${context.baseUrl}favicon.ico`; +}; diff --git a/apps/doj-demo/src/styles.css b/apps/doj-demo/src/styles.css new file mode 100644 index 00000000..a6caa7a3 --- /dev/null +++ b/apps/doj-demo/src/styles.css @@ -0,0 +1 @@ +@import '@atj/design/static/uswds/styles/styles.css'; diff --git a/apps/doj-demo/tsconfig.json b/apps/doj-demo/tsconfig.json new file mode 100644 index 00000000..5ce2532e --- /dev/null +++ b/apps/doj-demo/tsconfig.json @@ -0,0 +1,17 @@ +{ + // For reference, the base Astro tsconfig: + // https://github.com/withastro/astro/blob/main/packages/astro/tsconfigs/base.json + "extends": "../../tsconfig.json", + "compilerOptions": { + "module": "ESNext", + "noEmit": true, + "jsx": "react", + "resolveJsonModule": true + }, + "include": [ + "src/**/*.ts" + ], + "exclude": [ + "src/components/**" + ] +} diff --git a/apps/spotlight/package.json b/apps/spotlight/package.json index 64c41ef2..2527ac40 100644 --- a/apps/spotlight/package.json +++ b/apps/spotlight/package.json @@ -16,7 +16,6 @@ "@atj/form-service": "workspace:*", "@atj/forms": "workspace:*", "astro": "^4.3.3", - "cheerio": "1.0.0-rc.12", "react": "^18.2.0", "react-dom": "^18.2.0", "react-error-boundary": "^4.0.12" diff --git a/apps/spotlight/src/htmlParser/form-field-output.json b/apps/spotlight/src/htmlParser/form-field-output.json deleted file mode 100644 index 0637a088..00000000 --- a/apps/spotlight/src/htmlParser/form-field-output.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/apps/spotlight/src/htmlParser/form-input.html b/apps/spotlight/src/htmlParser/form-input.html deleted file mode 100644 index bb757308..00000000 --- a/apps/spotlight/src/htmlParser/form-input.html +++ /dev/null @@ -1,1110 +0,0 @@ - - - -
-
-
-
-
-
- UD-105
-
- STATE BAR NUMBER:
-
- FOR COURT USE ONLY
-
- ATTORNEY OR PARTY WITHOUT ATTORNEY
-
- NAME:
-
- FIRM NAME:
-
- STREET ADDRESS:
-
- CITY:
-
- STATE: ZIP CODE:
-
- FAX NO.:
-
- TELEPHONE NO.:
-
- EMAIL ADDRESS:
-
- ATTORNEY FOR (name):
-
- SUPERIOR COURT OF CALIFORNIA, COUNTY OF
-
- STREET ADDRESS:
-
- MAILING ADDRESS:
-
- CITY AND ZIP CODE:
-
- BRANCH NAME:
-
- PLAINTIFF:
-
- DEFENDANT:
-
- CASE NUMBER:
-
- ANSWERβ€”UNLAWFUL DETAINER
-
- 1. Defendant
-
- (all defendants for whom this answer is filed must be named and must sign this answer unless their attorney signs):
-
- answers the complaint as follows:
-
- 2. DENIALS (Check ONLY ONE of the next two boxes.)
-
- a.
-
- General Denial (Do not check this box if the complaint demands more than $1,000.)
-
- Defendant generally denies each statement of the complaint and of the Mandatory Cover Sheet and Supplemental
-
- Allegationsβ€”Unlawful Detainer (form UD-101).
-
- b.
-
- Specific Denials (Check this box and complete (1) and (2) below if complaint demands more than $1,000.)
-
- Defendant admits that all of the statements of the complaint and of the Mandatory Cover Sheet and Supplemental
-
- Allegationsβ€”Unlawful Detainer (form UD-101) are true EXCEPT:
-
- (1) Denial of Allegations in Complaint (Form UD-100 or Other Complaint for Unlawful Detainer)
-
- (a) Defendant claims the following statements of the complaint are false (state paragraph numbers from the complaint or
-
- explain below or, if more room needed, on form MC-025):
-
- Explanation is on form MC-025, titled as Attachment 2b(1)(a).
-
- (b) Defendant has no information or belief that the following statements of the complaint are true, so defendant denies
-
- them (state paragraph numbers from the complaint or explain below or, if more room needed, on form MC-025):
-
- Explanation is on form MC-025, titled as Attachment 2b(1)(b).
-
- (2) Denial of Allegations in Mandatory Cover Sheet and Supplemental Allegationsβ€”Unlawful Detainer (form UD-101)
-
- (a)
-
- Defendant did not receive plaintiff's Mandatory Cover Sheet and Supplemental Allegations (form UD-101). (If
-
- not checked, complete (b) and (c), as appropriate.)
-
- Defendant claims the statements in the Verification required for issuance of summonsβ€”residential, item 3
-
- (b)
-
- of plaintiff's Mandatory Cover Sheet and Supplemental Allegations (form UD-101), are false.
-
- (c) Defendant claims the following statements on the Mandatory Cover Sheet and Supplemental Allegationsβ€”Unlawful
-
- Detainer (form UD-101) are false (state paragraph numbers from form UD-101 or explain below or, if more room
-
- needed, on form MC-025):
-
- Explanation is on form MC-025, titled as Attachment 2b(2)(c).
-
- Page 1 of 5
-
- Form Approved for Optional Use
-
- Judicial Council of California
-
- UD-105 [Rev. April 14, 2022]
-
- ANSWERβ€”UNLAWFUL DETAINER
-
- Civil Code, Β§ 1940 et seq.;
-
- Code of Civil Procedure, §§ 425.12,
-
- 1161 et seq., 1179.01 et seq.
-
- www.courts.ca.gov
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-
-
- UD-105
-
- PLAINTIFF:
-
- CASE NUMBER:
-
- DEFENDANT:
-
- 2. b. (2) (d) Defendant has no information or belief that the following statements on the Mandatory Cover Sheet and Supplemental
-
- Allegationsβ€”Unlawful Detainer (form UD-101) are true, so defendant denies them (state paragraph numbers from
-
- form UD-101 or explain below or, if more room needed, on form MC-025):
-
- Explanation is on form MC-025, titled as Attachment 2b(2)(d).
-
- 3. DEFENSES AND OBJECTIONS (NOTE: For each box checked, you must state brief facts to support it in item 3w (on page 4) or, if
-
- more room is needed, on form MC-025. You can learn more about defenses and objections at
-
- .)
-
- a.
-
- (Nonpayment of rent only)
-
- Plaintiff has breached the warranty to provide habitable premises.
-
- b.
-
- (Nonpayment of rent only)
-
- Defendant made needed repairs and properly deducted the cost from the rent, and plaintiff did
-
- not give proper credit.
-
- c.
-
- On
-
- (Nonpayment of rent only)
-
- (date):
-
- before the notice to pay or quit expired, defendant offered
-
- the rent due but plaintiff would not accept it.
-
- d.
-
- Plaintiff waived, changed, or canceled the notice to quit.
-
- e.
-
- Plaintiff served defendant with the notice to quit or filed the complaint to retaliate against defendant.
-
- f.
-
- By serving defendant with the notice to quit or filing the complaint, plaintiff is arbitrarily discriminating against the
-
- defendant in violation of the Constitution or the laws of the United States or California.
-
- g.
-
- Plaintiff's demand for possession violates the local rent control or eviction control ordinance of
-
- (city or county, title of
-
- ordinance, and date of passage):
-
- (Also, briefly state in item 3w the facts showing violation of the ordinance.)
-
- h.
-
- Plaintiff's demand for possession is subject to the Tenant Protection Act of 2019, Civil Code section 1946.2 or 1947.12,
-
- and is not in compliance with the act. (Check all that apply and briefly state in item 3w the facts that support each.)
-
- (1)
-
- Plaintiff failed to state a just cause for termination of tenancy in the written notice to terminate.
-
- (2)
-
- Plaintiff failed to provide an opportunity to cure any alleged violations of terms and conditions of the lease (other than
-
- payment of rent) as required under Civil Code section 1946.2(c).
-
- (3)
-
- Plaintiff failed to comply with the relocation assistance requirements of Civil Code section 1946.2(d).
-
- (4)
-
- Plaintiff has raised the rent more than the amount allowed under Civil Code section 1947.12, and the only unpaid rent
-
- is the unauthorized amount.
-
- (5)
-
- Plaintiff violated the Tenant Protection Act in another manner that defeats the complaint.
-
- i.
-
- Plaintiff accepted rent from defendant to cover a period of time after the date the notice to quit expired.
-
- j.
-
- Plaintiff seeks to evict defendant based on an act against defendant or a member of defendant's household that
-
- constitutes domestic violence, sexual assault, stalking, human trafficking, or abuse of an elder or a dependent adult. (This
-
- defense requires one of the following: (1) a temporary restraining order, protective order, or police report that is not
-
- more than 180 days old; OR (2) a signed statement from a qualified third party (e.g., a doctor, domestic violence or
-
- sexual assault counselor, human trafficking caseworker, or psychologist) concerning the injuries or abuse resulting from
-
- these acts).)
-
- k.
-
- Plaintiff seeks to evict defendant based on defendant or another person calling the police or emergency assistance (e.g.,
-
- ambulance) by or on behalf of a victim of abuse, a victim of crime, or an individual in an emergency when defendant or
-
- the other person believed that assistance was necessary.
-
- l.
-
- Plaintiff's demand for possession of a residential property is in retaliation for nonpayment of rent or other financial
-
- obligations due between March 1, 2020, and September 30, 2021, even though alleged to be based on other reasons.
-
- (Civ. Code, Β§ 1942.5(d); Gov. Code, Β§ 12955.)
-
- m.
-
- Plaintiff's demand for possession of a residential property is based on nonpayment of rent or other financial obligations
-
- due between March 1, 2020, and September 30, 2021, and (check all that apply):
-
- (1)
-
- Plaintiff did not serve the general notice or notices of rights under the COVID-19 Tenant Relief Act as required by
-
- Code of Civil Procedure section 1179.04.
-
- (2)
-
- Plaintiff did not serve the required 15-day notice. (Code Civ. Proc., Β§ 1179.03(b) or (c).)
-
- Page 2 of 5
-
- UD-105 [Rev. April 14, 2022] ANSWERβ€”UNLAWFUL DETAINER
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-
-
- UD-105
-
- PLAINTIFF:
-
- CASE NUMBER:
-
- DEFENDANT:
-
- 3.
-
- m. (3)
-
- Plaintiff did not provide an unsigned declaration of COVID-19 – related financial distress with the 15-day notice. (Code
-
- Civ. Proc., Β§ 1179.03(d).)
-
- (4)
-
- Plaintiff did not provide an unsigned declaration of COVID-19–related financial distress in the language in which the
-
- landlord was required to provide a translation of the rental agreement. (Code Civ. Proc., Β§ 1179.03(d).)
-
- (5)
-
- Plaintiff identified defendant as a β€œhigh-income tenant” in the 15-day notice, but plaintiff did not possess proof at the
-
- time the notice was served establishing that defendant met the definition of high-income tenant. (Code Civ. Proc.,
-
- Β§ 1179.02.5(b).)
-
- (6)
-
- Defendant delivered to plaintiff one or more declarations of COVID-19–related financial distress and, if required as a
-
- "high-income tenant," documentation in support. (Code Civ. Proc., §§ 1179.03(f) and 1179.02.5.)
-
- (Describe when and how delivered and check all other items below that apply):
-
- (a)
-
- Plaintiff's demand for payment includes late fees on rent or other financial obligations due between March 1,
-
- 2020, and September 30, 2021.
-
- (b)
-
- Plaintiff's demand for payment includes fees for services that were increased or not previously charged.
-
- (c)
-
- Defendant, on or before September 30, 2021, paid or offered plaintiff payment of at least 25% of the total rental
-
- payments that were due between September 1, 2020, and September 30, 2021, and that were demanded in the
-
- termination notices for which defendant delivered the declarations described in (a). (Code Civ. Proc.,
-
- Β§ 1179.03(g)(2).)
-
- (7)
-
- Defendant is currently filing or has already filed a declaration of COVID-19–related financial distress with the court.
-
- (Code Civ. Proc., Β§ 1179.03(h).)
-
- n.
-
- Plaintiff's demand for possession of a residential property is based on nonpayment of rent or other financial obligations
-
- due between October 1, 2021, and March 31, 2022, and (check all that apply):
-
- (1)
-
- Plaintiff's notice to quit was served before April 1, 2022, and
-
- (a)
-
- Did not contain the required contact information for the pertinent governmental rental assistance program, or the
-
- other content required by Code of Civil Procedure section 1179.10(a).
-
- (b)
-
- Did not did not include a translation of the statutorily required notice. (Code Civ. Proc., Β§ 1179.10(a)(2) and Civ.
-
- Code, Β§ 1632.)
-
- (2)
-
- Plaintiff's notice to quit was served between April 1, 2022, and June 30, 2022, and did not contain the required
-
- information about the government rental assistance program and possible protections, as required by Code of Civil
-
- Procedure section 1179.10(b).
-
- o.
-
- For a tenancy initially established before October 1, 2021, plaintiff's demand for possession of a residential property is
-
- based on nonpayment of rent or other financial obligations due between March 1, 2020, and March 31, 2022, and (check
-
- all that apply):
-
- (1)
-
- Plaintiff did not complete an application for rental assistance to cover the rental debt demanded in the complaint
-
- before filing the complaint in this action.
-
- (2)
-
- Plaintiff's application for rental assistance was not denied.
-
- (3)
-
- Plaintiff's application for rental assistance was denied for a reason that does not support issuance of a summons or
-
- judgment in an unlawful detainer action (check all that apply):
-
- (a)
-
- Plaintiff did not fully or properly complete plaintiff's portion of the application. (Code Civ. Proc.,
-
- Β§ 1179.09(d)(2)(A).)
-
- (b)
-
- Plaintiff did not apply to the correct rental assistance program. (Code Civ. Proc., Β§ 1179.09(d)(2)(C).)
-
- (4)
-
- An application for rental assistance was filed before April 1, 2022, and the determination is still pending.
-
- (5)
-
- Rental assistance has been approved and tenant is separately filing an application to prevent forfeiture (form UD-125).
-
- p.
-
- Plaintiff's demand for possession of a residential property is based on nonpayment of rent or other financial obligations
-
- and (check all that apply):
-
- (1)
-
- Plaintiff received or has a pending application for rental assistance from a governmental rental assistance program or
-
- some other source relating to the amount claimed in the notice to pay rent or quit. (Health & Saf. Code,
-
- §§ 50897.1(d)(2)(B) and 50897.3(e)(2).)
-
- (2)
-
- Plaintiff received or has a pending application for rental assistance from a governmental rental assistance program or
-
- some other source for rent accruing since the notice to pay rent or quit. (Health & Saf. Code, §§ 50897.1(d)(2)(B) and
-
- 50897.3(e)(2).)
-
- Page 3 of 5
-
- UD-105 [Rev. April 14, 2022] ANSWERβ€”UNLAWFUL DETAINER
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-
-
- UD-105
-
- PLAINTIFF:
-
- CASE NUMBER:
-
- DEFENDANT:
-
- 3.
-
- p.
-
- (3)
-
- Plaintiff's demand for possession is based only on late fees for defendant's failure to provide landlord payment within
-
- 15 days of receiving governmental rental assistance. (Health & Saf. Code, Β§ 50897.1(e)(2)(B).)
-
- q.
-
- Plaintiff violated the COVID-19 Tenant Relief Act (Code Civ. Proc., Β§ 1179.01 et seq.) or a local COVID-19 – related
-
- ordinance regarding evictions in some other way (briefly state facts describing this in item 3w).
-
- r.
-
- The property is covered by the federal CARES Act and the plaintiff did not provide 30 days' notice to vacate.
-
- (Property covered by the CARES Act means property where the landlord:
-
- β€’ is participating in a covered housing program as defined by the Violence Against Women Act;
-
- β€’ is participating in the rural housing voucher program under section 542 of the Housing Act of 1949; or
-
- β€’ has a federally backed mortgage loan or a federally backed multifamily mortgage loan.)
-
- s.
-
- Plaintiff improperly applied payments made by defendant in a tenancy that was in existence between March 1, 2020, and
-
- September 30, 2021 (Code Civ. Proc., Β§ 1179.04.5), as follows (check all that apply):
-
- (1)
-
- Plaintiff applied a security deposit to rent, or other financial obligations due, without tenant’s written agreement.
-
- (2)
-
- Plaintiff applied a monthly rental payment to rent or other financial obligations that were due between March 1, 2020,
-
- and September 30, 2021, other than to the prospective month’s rent, without tenant’s written agreement.
-
- t.
-
- Plaintiff refused to accept payment from a third party for rent due. (Civ. Code, Β§ 1947.3; Gov. Code, Β§ 12955.)
-
- u.
-
- Defendant has a disability and plaintiff refused to provide a reasonable accommodation that was requested.
-
- (Cal. Code Regs., tit. 2, Β§ 12176(c).)
-
- v.
-
- Other defenses and objections are stated in item 3w.
-
- w. (Provide facts for each item checked above, either below or, if more room needed, on form MC-025):
-
- Description of facts or defenses are on form MC-025, titled as Attachment 3w.
-
- 4. OTHER STATEMENTS
-
- a.
-
- Defendant vacated the premises on (date):
-
- b.
-
- The fair rental value of the premises alleged in the complaint is excessive
-
- (explain below or, if more room needed, on
-
- form MC-025):
-
- Explanation is on form MC-025, titled as Attachment 4b.
-
- c.
-
- Other (specify below or, if more room needed, on form MC-025):
-
- Other statements are on form MC-025, titled as Attachment 4c.
-
- 5. DEFENDANT REQUESTS
-
- a. that plaintiff take nothing requested in the complaint.
-
- b. costs incurred in this proceeding.
-
- c.
-
- reasonable attorney fees.
-
- d.
-
- that plaintiff be ordered to (1) make repairs and correct the conditions that constitute a breach of the warranty to provide
-
- habitable premises and (2) reduce the monthly rent to a reasonable rental value until the conditions are corrected.
-
- Page 4 of 5
-
- UD-105 [Rev. April 14, 2022] ANSWERβ€”UNLAWFUL DETAINER
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-
-
- UD-105
-
- PLAINTIFF:
-
- CASE NUMBER:
-
- DEFENDANT:
-
- 5. e.
-
- Other (specify below or on form MC-025):
-
- All other requests are stated on form MC-025, titled as Attachment 5e.
-
- 6. Number of pages attached:
-
- UNLAWFUL DETAINER ASSISTANT (Bus. & Prof. Code, §§ 6400–6415)
-
- 7. (Must be completed in all cases.) An unlawful detainer assistant
-
- did not
-
- did for compensation give advice or
-
- assistance with this form.
-
- (If defendant has received any help or advice for pay from an unlawful detainer assistant, state):
-
- a. Assistant's name:
-
- b. Telephone number:
-
- c. Street address, city, and zip code:
-
- d. County of registration:
-
- e. Registration number:
-
- f. Expiration
-
- date:
-
- (Each defendant for whom this answer is filed must be named in item 1 and must sign this answer unless defendant's attorney signs.)
-
- (TYPE OR PRINT NAME)
-
- (SIGNATURE OF DEFENDANT OR ATTORNEY)
-
- (TYPE OR PRINT NAME)
-
- (SIGNATURE OF DEFENDANT OR ATTORNEY)
-
- (TYPE OR PRINT NAME)
-
- (SIGNATURE OF DEFENDANT OR ATTORNEY)
-
- VERIFICATION
-
- (Use a different verification form if the verification is by an attorney or for a corporation or partnership.)
-
- I am the defendant in this proceeding and have read this answer. I declare under penalty of perjury under the laws of the State of
-
- California that the foregoing is true and correct.
-
- Date:
-
- (TYPE OR PRINT NAME)
-
- (SIGNATURE OF DEFENDANT)
-
- Date:
-
- (TYPE OR PRINT NAME)
-
- (SIGNATURE OF DEFENDANT)
-
- Date:
-
- (TYPE OR PRINT NAME)
-
- (SIGNATURE OF DEFENDANT)
-
- UD-105 [Rev. April 14, 2022] ANSWERβ€”UNLAWFUL DETAINER Page 5 of 5
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - \ No newline at end of file diff --git a/apps/spotlight/src/htmlParser/processHtml.js b/apps/spotlight/src/htmlParser/processHtml.js deleted file mode 100644 index 77f2455a..00000000 --- a/apps/spotlight/src/htmlParser/processHtml.js +++ /dev/null @@ -1,61 +0,0 @@ -/** -To extract form fields, their attributes and labels from an HTML code and output them in a JSON file, go to the "htmlParser" directory: - -```bash - cd apps/spotlight/src/htmlParser -``` - -If you're already in the "spotlight" directory - -```bash - cd src/htmlParser -``` - -Replace the HTML content that's inside the "form-input.html" with your HTML, then run: - -```bash - node processHtml.js yourCustomJSONFileName.json -``` - -Be sure to replace "yourCustomJSONFileName.json" with whatever name you want your output JSON file to be called. If you don't indicate a new file name, your file will be given the default file name which is "form-field-output.json". - */ -import { load } from 'cheerio'; -import fs from 'fs'; -import path from 'path'; - -const htmlFilePath = path.join(process.cwd(), 'form-input.html'); -const defaultOutputFileName = 'form-field-output.json'; -const outputFileName = process.argv[2] || defaultOutputFileName; -const outputJsonPath = path.join(process.cwd(), outputFileName); - -function extractFormFields(htmlContent) { - const $ = load(htmlContent); - let formFields = []; - - $('input, textarea, select').each((index, element) => { - const field = $(element); - const label = - $("label[for='" + field.attr('id') + "']").text() || 'No Label'; - - formFields.push({ - tag: field.prop('tagName').toLowerCase(), - type: field.attr('type'), - name: field.attr('name'), - id: field.attr('id'), - value: field.attr('value'), - label: label.trim(), - }); - }); - - return formFields; -} - -function processHtmlFile() { - const htmlContent = fs.readFileSync(htmlFilePath, 'utf8'); - const formFields = extractFormFields(htmlContent); - - fs.writeFileSync(outputJsonPath, JSON.stringify(formFields, null, 2)); - console.log(`Processed HTML file. Form data written to ${outputJsonPath}`); -} - -processHtmlFile(); diff --git a/apps/spotlight/src/htmlParser/ud105-form-field-output.json b/apps/spotlight/src/htmlParser/ud105-form-field-output.json deleted file mode 100644 index 5c618da6..00000000 --- a/apps/spotlight/src/htmlParser/ud105-form-field-output.json +++ /dev/null @@ -1,1151 +0,0 @@ -[ - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page1[0].P1Caption[0].CaseNumber[0].CaseNumber[0]", - "id": "pdf-obj-0-4", - "value": "", - "label": "CASE NUMBER (For court use only)" - }, - { - "tag": "h2", - "name": "UD-105[0].Page1[0].P1Caption[0].Header2[0]", - "label": "ATTORNEY OR PARTY WITHOUT ATTORNEY" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page1[0].P1Caption[0].AttyPartyInfo[0].AttyBarNo[0]", - "id": "pdf-obj-0-5", - "value": "", - "label": "STATE BAR NUMBER" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page1[0].P1Caption[0].AttyPartyInfo[0].Name[0]", - "id": "pdf-obj-0-6", - "value": "", - "label": "NAME" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page1[0].P1Caption[0].AttyPartyInfo[0].AttyFirm[0]", - "id": "pdf-obj-0-7", - "value": "", - "label": "FIRM NAME" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page1[0].P1Caption[0].AttyPartyInfo[0].Street[0]", - "id": "pdf-obj-0-8", - "value": "", - "label": "STREET ADDRESS" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page1[0].P1Caption[0].AttyPartyInfo[0].City[0]", - "id": "pdf-obj-0-9", - "value": "", - "label": "CITY" - }, - { - "tag": "select", - "name": "UD-105[0].Page1[0].P1Caption[0].AttyPartyInfo[0].State[0]", - "id": "pdf-obj-0-10", - "value": "", - "label": "STATE", - "options": [ - {"name": "- Select -", "value": ""}, - {"name": "Alabama", "value": "AL"}, - {"name": "Alaska", "value": "AK"}, - {"name": "American Samoa", "value": "AS"}, - {"name": "Arizona", "value": "AZ"}, - {"name": "Arkansas", "value": "AR"}, - {"name": "California", "value": "CA"}, - {"name": "Colorado", "value": "CO"}, - {"name": "Connecticut", "value": "CT"}, - {"name": "Delaware", "value": "DE"}, - {"name": "District of Columbia", "value": "DC"}, - {"name": "Florida", "value": "FL"}, - {"name": "Georgia", "value": "GA"}, - {"name": "Guam", "value": "GU"}, - {"name": "Hawaii", "value": "HI"}, - {"name": "Idaho", "value": "ID"}, - {"name": "Illinois", "value": "IL"}, - {"name": "Indiana", "value": "IN"}, - {"name": "Iowa", "value": "IA"}, - {"name": "Kansas", "value": "KS"}, - {"name": "Kentucky", "value": "KY"}, - {"name": "Louisiana", "value": "LA"}, - {"name": "Maine", "value": "ME"}, - {"name": "Maryland", "value": "MD"}, - {"name": "Massachusetts", "value": "MA"}, - {"name": "Michigan", "value": "MI"}, - {"name": "Minnesota", "value": "MN"}, - {"name": "Mississippi", "value": "MS"}, - {"name": "Missouri", "value": "MO"}, - {"name": "Montana", "value": "MT"}, - {"name": "Nebraska", "value": "NE"}, - {"name": "Nevada", "value": "NV"}, - {"name": "New Hampshire", "value": "NH"}, - {"name": "New Jersey", "value": "NJ"}, - {"name": "New Mexico", "value": "NM"}, - {"name": "New York", "value": "NY"}, - {"name": "North Carolina", "value": "NC"}, - {"name": "North Dakota", "value": "ND"}, - {"name": "Northern Mariana Islands", "value": "MP"}, - {"name": "Ohio", "value": "OH"}, - {"name": "Oklahoma", "value": "OK"}, - {"name": "Oregon", "value": "OR"}, - {"name": "Pennsylvania", "value": "PA"}, - {"name": "Puerto Rico", "value": "PR"}, - {"name": "Rhode Island", "value": "RI"}, - {"name": "South Carolina", "value": "SC"}, - {"name": "South Dakota", "value": "SD"}, - {"name": "Tennessee", "value": "TN"}, - {"name": "Texas", "value": "TX"}, - {"name": "United States Minor Outlying Islands", "value": "UM"}, - {"name": "Utah", "value": "UT"}, - {"name": "Vermont", "value": "VT"}, - {"name": "Virginia", "value": "VA"}, - {"name": "Washington", "value": "WA"}, - {"name": "West Virginia", "value": "WV"}, - {"name": "Wisconsin", "value": "WI"}, - {"name": "Wyoming", "value": "WY"}, - {"name": "Armed Forces Americas", "value": "AA"}, - {"name": "Armed Forces Africa", "value": "AE"}, - {"name": "Armed Forces Canada", "value": "AE"}, - {"name": "Armed Forces Europe", "value": "AE"}, - {"name": "Armed Forces Middle East", "value": "AE"}, - {"name": "Armed Forces Pacific", "value": "AP"} - ] - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page1[0].P1Caption[0].AttyPartyInfo[0].Zip[0]", - "class": "usa-input--medium", - "id": "pdf-obj-0-11", - "value": "", - "label": "ZIP CODE" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page1[0].P1Caption[0].AttyPartyInfo[0].Phone[0]", - "id": "pdf-obj-0-12", - "value": "", - "label": "Telephone number:" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page1[0].P1Caption[0].AttyPartyInfo[0].Fax[0]", - "id": "pdf-obj-0-13", - "value": "", - "label": "Fax number" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page1[0].P1Caption[0].AttyPartyInfo[0].Email[0]", - "id": "pdf-obj-0-14", - "value": "", - "label": "E-MAIL ADDRESS:" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page1[0].P1Caption[0].AttyPartyInfo[0].AttyFor[0]", - "id": "pdf-obj-0-15", - "value": "", - "label": "ATTORNEY FOR (name)" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page1[0].P1Caption[0].CourtInfo[0].CrtCounty[0]", - "id": "pdf-obj-0-16", - "value": "", - "label": "SUPERIOR COURT OF CALIFORNIA, COUNTY OF" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page1[0].P1Caption[0].CourtInfo[0].CrtStreet[0]", - "id": "pdf-obj-0-17", - "value": "", - "label": "STREET ADDRESS" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page1[0].P1Caption[0].CourtInfo[0].CrtMailingAdd[0]", - "id": "pdf-obj-0-18", - "value": "", - "label": "MAILING ADDRESS" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page1[0].P1Caption[0].CourtInfo[0].CrtCityZip[0]", - "id": "pdf-obj-0-19", - "value": "", - "label": "CITY AND ZIP CODE" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page1[0].P1Caption[0].CourtInfo[0].CrtBranch[0]", - "id": "pdf-obj-0-20", - "value": "", - "label": "BRANCH NAME" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page1[0].P1Caption[0].TitlePartyName[0].Party1[0]", - "id": "pdf-obj-0-21", - "value": "", - "label": "PLAINTIFF" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page1[0].P1Caption[0].TitlePartyName[0].Party2[0]", - "id": "pdf-obj-0-22", - "value": "", - "label": "DEFENDANT" - }, - { - "tag": "textarea", - "name": "UD-105[0].Page1[0].List1[0].item1[0].FillField1[0]", - "id": "pdf-obj-0-23", - "label": "Defendant (all defendants for whom this answer is filed must be named and must sign this answer unless their attorney signs)" - }, - { - "tag": "h2", - "name": "UD-105[0].Page1[0].List1[0].Header2[0]", - "label": "Answers the complaint as follows" - }, - { - "tag": "p", - "name": "UD-105[0].Page1[0].List2[0].Paragraph[0]", - "label": "DENIALS (Check ONLY ONE of the next two boxes.)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page1[0].List2[0].Lia[0].Check1[0]", - "id": "pdf-obj-0-24", - "value": "1", - "label": "General Denial (Do not check this box if the complaint demands more than $1,000.)\n Defendant generally denies each statement of the complaint and of the Mandatory Cover Sheet and Supplemental AllegationsUnlawful Detainer (form UD-101)." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page1[0].List2[0].Lib[0].Check2[0]", - "id": "pdf-obj-0-25", - "value": "2", - "label": "Specific Denials (Check this box and complete (1) and (2) below if complaint demands more than $1,000.)\n Defendant admits that all of the statements of the complaint and of the Mandatory Cover Sheet and Supplemental AllegationsUnlawful Detainer (form UD-101) are true EXCEPT:" - }, - { - "tag": "p", - "name": "UD-105[0].Page1[0].List2[0].Lib[0].SubListb[0].Paragraph[0]", - "label": "Denial of Allegations in Complaint (Form UD-100 or Other Complaint for Unlawful Detainer)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page1[0].List2[0].Lib[0].SubListb[0].Li1[0].Subitem1[0].Lia[0].Check3[0]", - "id": "pdf-obj-0-27", - "value": "1", - "label": "Explanation is on form MC-025, titled as Attachment 2b(1)(a)." - }, - { - "tag": "textarea", - "name": "UD-105[0].Page1[0].List2[0].Lib[0].SubListb[0].Li1[0].Subitem1[0].Lia[0].FillField2[0]", - "id": "pdf-obj-0-26", - "label": "Defendant claims the following statements of the complaint are false (state paragraph numbers from the complaint or explain below or, if more room needed, on form MC-025)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page1[0].List2[0].Lib[0].SubListb[0].Li1[0].Subitem1[0].Lib[0].Check4[0]", - "id": "pdf-obj-0-28", - "value": "1", - "label": "Explanation is on form MC-025, titled as Attachment 2b(1)(b)." - }, - { - "tag": "textarea", - "name": "UD-105[0].Page1[0].List2[0].Lib[0].SubListb[0].Li1[0].Subitem1[0].Lib[0].FillField3[0]", - "id": "pdf-obj-0-29", - "label": "Defendant has no information or belief that the following statements of the complaint are true, so defendant denies them (state paragraph numbers from the complaint or explain below or, if more room needed, on form MC-025)" - }, - { - "tag": "p", - "name": "UD-105[0].Page1[0].List2[0].Lib[0].SubListb[0].Paragraph[1]", - "label": "Denial of Allegations in Mandatory Cover Sheet and Supplemental Allegationsβ€”Unlawful Detainer (form UD-101)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page1[0].List2[0].Lib[0].SubListb[0].Li2[0].Subitem2[0].Lia[0].Check5[0]", - "id": "pdf-obj-0-30", - "value": "1", - "label": "Defendant did not receive plaintiff's Mandatory Cover Sheet and Supplemental Allegations (form UD-101). (If not checked, complete (b) and (c), as appropriate.)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page1[0].List2[0].Lib[0].SubListb[0].Li2[0].Subitem2[0].Lib[0].Check5[0]", - "id": "pdf-obj-0-31", - "value": "1", - "label": "Defendant claims the statements in the Verification required for issuance of summonsresidential, item 3 of plaintiff's Mandatory Cover Sheet and Supplemental Allegations (form UD-101), are false." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page1[0].List2[0].Lib[0].SubListb[0].Li2[0].Subitem2[0].Lic[0].Check6[0]", - "id": "pdf-obj-0-33", - "value": "1", - "label": "Explanation is on form MC-025, titled as Attachment 2b(2)(c)." - }, - { - "tag": "textarea", - "name": "UD-105[0].Page1[0].List2[0].Lib[0].SubListb[0].Li2[0].Subitem2[0].Lic[0].FillField4[0]", - "id": "pdf-obj-0-32", - "label": "Defendant claims the following statements on the Mandatory Cover Sheet and Supplemental AllegationsUnlawful Detainer form UD-101 are false state paragraph numbers from form UD-101 or explain here or, if more room needed, on form MC-025" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List2[0].Lib[0].Sublib[0].Li2[0].Subitem2[0].Lid[0].Check7[0]", - "id": "pdf-obj-1-8", - "value": "1", - "label": "Explanation is on form MC-025, titled as Attachment 2b(2)(d)." - }, - { - "tag": "textarea", - "name": "UD-105[0].Page2[0].List2[0].Lib[0].Sublib[0].Li2[0].Subitem2[0].Lid[0].FillField5[0]", - "id": "pdf-obj-1-7", - "label": "Defendant has no information or belief that the following statements on the Mandatory Cover Sheet and Supplemental AllegationsUnlawful Detainer form UD-101 are true, so defendant denies them state paragraph numbers from form UD-101 or explain here or, if more room needed, on form MC-025" - }, - { - "tag": "h3", - "name": "UD-105[0].Page2[0].List3[0].Header3[0]", - "label": "DEFENSES AND OBJECTIONS" - }, - { - "tag": "p", - "name": "UD-105[0].Page2[0].List3[0].Paragraph[0]", - "label": "(NOTE: For each box checked, you must state brief facts to support it in item 3w (on page 4) or, if more room is needed, on form MC-025. You can learn more about defenses and objections at: ", - "linkurl": "https://selfhelp.courts.ca.gov/eviction" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lia[0].Check8[0]", - "id": "pdf-obj-1-10", - "value": "1", - "label": "(Nonpayment of rent only) Plaintiff has breached the warranty to provide habitable premises." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lib[0].Check9[0]", - "id": "pdf-obj-1-11", - "value": "1", - "label": "(Nonpayment of rent only) Defendant made needed repairs and properly deducted the cost from the rent, and plaintiff did not give proper credit." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lic[0].Check10[0]", - "id": "pdf-obj-1-12", - "value": "1", - "label": "(Nonpayment of rent only) on date" - }, - { - "tag": "input", - "type": "date", - "name": "appointment-date", - "id": "appointment-date", - "arialabelledby": "appointment-date-label", - "ariadescribedby": "appointment-date-label", - "value": "", - "label": "mm/dd/yyyy" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lid[0].Check11[0]", - "id": "pdf-obj-1-14", - "value": "1", - "label": "Plaintiff waived, changed, or canceled the notice to quit." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lie[0].Check12[0]", - "id": "pdf-obj-1-15", - "value": "1", - "label": "Plaintiff served defendant with the notice to quit or filed the complaint to retaliate against defendant." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lif[0].Check13[0]", - "id": "pdf-obj-1-16", - "value": "1", - "label": "By serving defendant with the notice to quit or filing the complaint, plaintiff is arbitrarily discriminating against the defendant in violation of the Constitution or the laws of the United States or California." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lig[0].Check14[0]", - "id": "pdf-obj-1-17", - "value": "1", - "label": "Plaintiff's demand for possession violates the local rent control or eviction control ordinance of city or county, title of ordinance, and date of passage" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page2[0].List3[0].Lig[0].FillField6[0]", - "id": "pdf-obj-1-18", - "value": "", - "label": "(Also, briefly state in item 3w the facts showing violation of the ordinance.)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lih[0].Check15[0]", - "id": "pdf-obj-1-19", - "value": "1", - "label": "Plaintiff's demand for possession is subject to the Tenant Protection Act of 2019, Civil Code section 1946.2 or 1947.12, and is not in compliance with the act. (Check all that apply and briefly state in item 3w the facts that support each.)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lih[0].SubListh[0].Li1[0].Check16[0]", - "id": "pdf-obj-1-20", - "value": "1", - "label": "Plaintiff failed to state a just cause for termination of tenancy in the written notice to terminate." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lih[0].SubListh[0].Li2[0].Check17[0]", - "id": "pdf-obj-1-21", - "value": "1", - "label": "Plaintiff failed to provide an opportunity to cure any alleged violations of terms and conditions of the lease (other than payment of rent) as required under Civil Code section 1946.2(c)." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lih[0].SubListh[0].Li3[0].Check18[0]", - "id": "pdf-obj-1-22", - "value": "1", - "label": "Plaintiff failed to comply with the relocation assistance requirements of Civil Code section 1946.2(d)." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lih[0].SubListh[0].Li4[0].Check19[0]", - "id": "pdf-obj-1-23", - "value": "1", - "label": "Plaintiff has raised the rent more than the amount allowed under Civil Code section 1947.12, and the only unpaid rent is the unauthorized amount." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lih[0].SubListh[0].Li5[0].Check20[0]", - "id": "pdf-obj-1-24", - "value": "1", - "label": "Plaintiff violated the Tenant Protection Act in another manner that defeats the complaint." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lii[0].Check21[0]", - "id": "pdf-obj-1-25", - "value": "1", - "label": "Plaintiff accepted rent from defendant to cover a period of time after the date the notice to quit expired." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lij[0].Check22[0]", - "id": "pdf-obj-1-26", - "value": "1", - "label": "Plaintiff seeks to evict defendant based on an act against defendant or a member of defendant's household that constitutes domestic violence, sexual assault, stalking, human trafficking, or abuse of an elder or a dependent adult. (This defense requires one of the following: (1) a temporary restraining order, protective order, or police report that is not more than 180 days old; OR (2) a signed statement from a qualified third party (e.g., a doctor, domestic violence or sexual assault counselor, human trafficking caseworker, or psychologist) concerning the injuries or abuse resulting from these acts).)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lik[0].Check23[0]", - "id": "pdf-obj-1-27", - "value": "1", - "label": "Plaintiff seeks to evict defendant based on defendant or another person calling the police or emergency assistance (e.g., ambulance) by or on behalf of a victim of abuse, a victim of crime, or an individual in an emergency when defendant or the other person believed that assistance was necessary." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lil[0].Check24[0]", - "id": "pdf-obj-1-28", - "value": "1", - "label": "Plaintiff's demand for possession of a residential property is in retaliation for nonpayment of rent or other financial obligations due between March 1, 2020, and September 30, 2021, even though alleged to be based on other reasons. (Civil Code, section 1942.5(d); Governmental Code, section 12955.)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lim[0].Check25[0]", - "id": "pdf-obj-1-29", - "value": "1", - "label": "Plaintiff's demand for possession of a residential property is based on nonpayment of rent or other financial obligations due between March 1, 2020, and September 30, 2021, and (check all that apply):" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lim[0].SublIm[0].Li1[0].Check26[0]", - "id": "pdf-obj-1-30", - "value": "1", - "label": "Plaintiff did not serve the general notice or notices of rights under the COVID-19 Tenant Relief Act as required by Code of Civil Procedure section 1179.04." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page2[0].List3[0].Lim[0].SublIm[0].Li2[0].Check27[0]", - "id": "pdf-obj-1-31", - "value": "1", - "label": "Plaintiff did not serve the required 15-day notice. (Code Civil Procedure, section 1179.03(b) or (c).)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lim[0].SubLim[0].Li3[0].Check28[0]", - "id": "pdf-obj-2-7", - "value": "1", - "label": "Plaintiff did not provide an unsigned declaration of COVID-19 related financial distress with the 15-day notice. (Code Civil Procedure, section 1179.03(d).)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lim[0].SubLim[0].Li4[0].Check29[0]", - "id": "pdf-obj-2-8", - "value": "1", - "label": "Plaintiff did not provide an unsigned declaration of COVID-19related financial distress in the language in which the landlord was required to provide a translation of the rental agreement. (Code Civil Procedure, section 1179.03(d).)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lim[0].SubLim[0].Li5[0].Check30[0]", - "id": "pdf-obj-2-9", - "value": "1", - "label": "Plaintiff identified defendant as a high-income tenant in the 15-day notice, but plaintiff did not possess proof at the time the notice was served establishing that defendant met the definition of high-income tenant. (Code Civil Procedure, section 1179.02.5(b).)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lim[0].SubLim[0].Li6[0].SubItem6[0].Lia[0].Check31[0]", - "id": "pdf-obj-2-10", - "value": "1", - "label": "Defendant delivered to plaintiff one or more declarations of COVID-19related financial distress and, if required as a \"high-income tenant,\" documentation in support. (Code Civil Procedure, sections 1179.03(f) and 1179.02.5.)" - }, - { - "tag": "textarea", - "name": "UD-105[0].Page3[0].List3[0].Lim[0].SubLim[0].Li6[0].SubItem6[0].Lia[0].FillField7[0]", - "id": "pdf-obj-2-11", - "label": "(Describe when and how delivered and check all other items below that apply):" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lim[0].SubLim[0].Li6[0].SubItem6[0].Lib[0].Check32[0]", - "id": "pdf-obj-2-12", - "value": "1", - "label": "Plaintiff's demand for payment includes late fees on rent or other financial obligations due between March 1, 2020, and September 30, 2021." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lim[0].SubLim[0].Li6[0].SubItem6[0].Lic[0].Check33[0]", - "id": "pdf-obj-2-13", - "value": "1", - "label": "Plaintiff's demand for payment includes fees for services that were increased or not previously charged." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lim[0].SubLim[0].Li6[0].SubItem6[0].Lid[0].Check34[0]", - "id": "pdf-obj-2-14", - "value": "1", - "label": "Defendant, on or before September 30, 2021, paid or offered plaintiff payment of at least 25% of the total rental payments that were due between September 1, 2020, and September 30, 2021, and that were demanded in the termination notices for which defendant delivered the declarations described in (a). (Code Civil Procedure, section 1179.03(g)(2).)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lim[0].SubLim[0].Li7[0].Check35[0]", - "id": "pdf-obj-2-15", - "value": "1", - "label": "Defendant is currently filing or has already filed a declaration of COVID-19related financial distress with the court. (Code Civil Procedure, section 1179.03(h).)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lin[0].Check36[0]", - "id": "pdf-obj-2-16", - "value": "1", - "label": "Plaintiff's demand for possession of a residential property is based on nonpayment of rent or other financial obligations due between October 1, 2021, and March 31, 2022, and (check all that apply):" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lin[0].SubLin[0].Li1[0].Check35[0]", - "id": "pdf-obj-2-17", - "value": "1", - "label": "Plaintiff's notice to quit was served before April 1, 2022, and" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lin[0].SubLin[0].Li1[0].SubLi1[0].Lia[0].CheckBox190[0]", - "id": "pdf-obj-2-18", - "value": "1", - "label": "Did not contain the required contact information for the pertinent governmental rental assistance program, or the other content required by Code of Civil Procedure section 1179.10(a)." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lin[0].SubLin[0].Li1[0].SubLi1[0].Lib[0].CheckBox192[0]", - "id": "pdf-obj-2-19", - "value": "1", - "label": "Did not did not include a translation of the statutorily required notice. (Code Civil Procedure, section 1179.10(a)(2) and Civil Code, section 1632.)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lin[0].SubLin[0].Li2[0].Check35[0]", - "id": "pdf-obj-2-20", - "value": "1", - "label": "Plaintiff's notice to quit was served between April 1, 2022, and June 30, 2022, and did not contain the required information about the government rental assistance program and possible protections, as required by Code of Civil Procedure section 1179.10(b)." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lio[0].Check37[0]", - "id": "pdf-obj-2-21", - "value": "1", - "label": "For a tenancy initially established before October 1, 2021, plaintiff's demand for possession of a residential property is based on nonpayment of rent or other financial obligations due between March 1, 2020, and March 31, 2022, and (check all that apply):" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lio[0].SubLio[0].Li1[0].Check35[0]", - "id": "pdf-obj-2-22", - "value": "1", - "label": "Plaintiff did not complete an application for rental assistance to cover the rental debt demanded in the complaint before filing the complaint in this action." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lio[0].SubLio[0].Li2[0].Check35[0]", - "id": "pdf-obj-2-23", - "value": "1", - "label": "Plaintiff's application for rental assistance was not denied." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lio[0].SubLio[0].Li3[0].Check35[0]", - "id": "pdf-obj-2-24", - "value": "1", - "label": "Plaintiff's application for rental assistance was denied for a reason that does not support issuance of a summons or judgment in an unlawful detainer action (check all that apply):" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lio[0].SubLio[0].Li3[0].SubLi3[0].Lia[0].Check32[0]", - "id": "pdf-obj-2-25", - "value": "1", - "label": "Plaintiff did not fully or properly complete plaintiff's portion of the application. (Code Civil Procedure, section 1179.09(d)(2)(A).)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lio[0].SubLio[0].Li3[0].SubLi3[0].Lib[0].Check33[0]", - "id": "pdf-obj-2-26", - "value": "1", - "label": "Plaintiff did not apply to the correct rental assistance program. (Code Civil Procedure, section 1179.09(d)(2)(C).)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lio[0].SubLio[0].Li4[0].Check35[0]", - "id": "pdf-obj-2-27", - "value": "1", - "label": "An application for rental assistance was filed before April 1, 2022, and the determination is still pending." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lio[0].SubLio[0].Li5[0].Check35[0]", - "id": "pdf-obj-2-28", - "value": "1", - "label": "Rental assistance has been approved and tenant is separately filing an application to prevent forfeiture (form UD-125)." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lip[0].Check38[0]", - "id": "pdf-obj-2-29", - "value": "1", - "label": "Defendant provided plaintiff with a declaration under penalty of perjury for the Centers for Disease Control and Prevention's temporary halt in evictions to prevent further spread of COVID-19 (85 Federal Register 55292 at 55297), and plaintiff's reason for termination of the tenancy is one that the temporary halt in evictions applies to." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lip[0].SubLip[0].Li1[0].Check35[0]", - "id": "pdf-obj-2-30", - "value": "1", - "label": "Plaintiff received or has a pending application for rental assistance from a governmental rental assistance program or some other source relating to the amount claimed in the notice to pay rent or quit. (Health & Safety Code, sections 50897.1(d)(2)(B) and 50897.3(e)(2).)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page3[0].List3[0].Lip[0].SubLip[0].Li2[0].Check35[0]", - "id": "pdf-obj-2-31", - "value": "1", - "label": "Plaintiff received or has a pending application for rental assistance from a governmental rental assistance program or some other source for rent accruing since the notice to pay rent or quit. (Health & Safety Code, sections 50897.1(d)(2)(B) and 50897.3(e)(2).)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page4[0].List3[0].Li3[0].Check35[0]", - "id": "pdf-obj-3-17", - "value": "1", - "label": "Plaintiff's demand for possession is based only on late fees for defendant's failure to provide landlord payment within 15 days of receiving governmental rental assistance. (Health & Safety Code, section 50897.1(e)(2)(B).)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page4[0].List3[0].Liq[0].Check39[0]", - "id": "pdf-obj-3-7", - "value": "1", - "label": "Plaintiff violated the COVID-19 Tenant Relief Act (Code Civil Procedure, section 1179.01 et seq.) or a local COVID-19 related ordinance regarding evictions in some other way (briefly state facts describing this in item 3w)." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page4[0].List3[0].Lir[0].Check39[0]", - "id": "pdf-obj-3-8", - "value": "1", - "label": "The property is covered by the federal CARES Act and the plaintiff did not provide 30 days' notice to vacate." - }, - { - "tag": "p", - "name": "UD-105[0].Page4[0].List3[0].Lir[0].Paragraph[0]", - "label": "Property covered by the CARES Act means property where the landlord:" - }, - { - "tag": "ul", - "name": "UD-105[0].Page4[0].List3[0].Lir[0].List[0]", - "items": [ - { - "tag": "li", - "content": "is participating in a covered housing program as defined by the Violence Against Women Act;" - }, - { - "tag": "li", - "content": "is participating in the rural housing voucher program under section 542 of the Housing Act of 1949; or" - }, - { - "tag": "li", - "content": "has a federally backed mortgage loan or a federally backed multifamily mortgage loan." - } - ] - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page4[0].List3[0].Lis[0].Check42[0]", - "id": "pdf-obj-3-9", - "value": "1", - "label": "Plaintiff improperly applied payments made by defendant in a tenancy that was in existence between March 1, 2020, and September 30, 2021 (Code Civil Procedure, section 1179.04.5), as follows (check all that apply):" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page4[0].List3[0].Lis[0].SubLis[0].Li1[0].Check43[0]", - "id": "pdf-obj-3-10", - "value": "1", - "label": "Plaintiff applied a security deposit to rent, or other financial obligations due, without tenants written agreement." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page4[0].List3[0].Lis[0].SubLis[0].Li2[0].Check44[0]", - "id": "pdf-obj-3-11", - "value": "1", - "label": "Plaintiff applied a monthly rental payment to rent or other financial obligations that were due between March 1, 2020, and September 30, 2021, other than to the prospective months rent, without tenants written agreement." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page4[0].List3[0].Lit[0].Check45[0]", - "id": "pdf-obj-3-12", - "value": "1", - "label": "Plaintiff refused to accept payment from a third party for rent due. (Civil Code, section 1947.3; Governmental Code, section 12955.)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page4[0].List3[0].Liu[0].CheckBox19[0]", - "id": "pdf-obj-3-13", - "value": "1", - "label": "Defendant has a disability and plaintiff refused to provide a reasonable accommodation that was requested. )(Cal. Code Regs., tit. 2, 12176(c).)" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page4[0].List3[0].Liv[0].Check45[0]", - "id": "pdf-obj-3-14", - "value": "1", - "label": "Other defenses and objections are stated in item 3w." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page4[0].List3[0].Liw[0].Check46[0]", - "id": "pdf-obj-3-16", - "value": "1", - "label": "Description of facts or defenses are on form MC-025, titled as Attachment 3w." - }, - { - "tag": "textarea", - "name": "UD-105[0].Page4[0].List3[0].Liw[0].FillField9[0]", - "id": "pdf-obj-3-15", - "label": "Provide facts for each item checked above, either here, or, if more room needed, on form MC-025" - }, - { - "tag": "p", - "name": "UD-105[0].Page4[0].List3[0].Li4[0].Paragraph[0]", - "label": "Defendant vacated the premises on" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page4[0].List4[0].Lia[0].Check47[0]", - "id": "pdf-obj-3-18", - "value": "1", - "label": "Defendant vacated the premises on date:" - }, - { - "tag": "input", - "type": "date", - "name": "appointment-date2", - "id": "appointment-date2", - "arialabelledby": "appointment-date-label2", - "ariadescribedby": "appointment-date-label2", - "value": "", - "label": "mm/dd/yyyy" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page4[0].List4[0].Lib[0].Check48[0]", - "id": "pdf-obj-3-20", - "value": "1", - "label": "The fair rental value of the premises alleged in the complaint is excessive" - }, - { - "tag": "textarea", - "name": "UD-105[0].Page4[0].List4[0].Lib[0].FillField10[0]", - "id": "pdf-obj-3-22", - "label": "(explain below or, if more room needed, on form MC-025):" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page4[0].List4[0].Lib[0].Check49[0]", - "id": "pdf-obj-3-21", - "value": "1", - "label": "Explanation is on form MC-025, titled as Attachment 4b." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page4[0].List4[0].Lic[0].Check50[0]", - "id": "pdf-obj-3-23", - "value": "1", - "label": "Other" - }, - { - "tag": "textarea", - "name": "UD-105[0].Page4[0].List4[0].Lic[0].FillField11[0]", - "id": "pdf-obj-3-25", - "label": "(specify below or, if more room needed, on form MC-025):" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page4[0].List4[0].Lic[0].Check51[0]", - "id": "pdf-obj-3-24", - "value": "1", - "label": "Other statements are on form MC-025, titled as Attachment 4c." - }, - { - "tag": "p", - "name": "UD-105[0].Page4[0].List4[0].Lic[0].Paragraph[0]", - "label": "DEFENDANT REQUESTS" - }, - { - "tag": "ul", - "name": "UD-105[0].Page4[0].List4[0].Lir[0].List[0]", - "items": [ - { - "tag": "li", - "content": "that plaintiff take nothing requested in the complaint." - }, - { - "tag": "li", - "content": "costs incurred in this proceeding." - } - ] - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page4[0].List5[0].Lic[0].Check52[0]", - "id": "pdf-obj-3-26", - "value": "1", - "label": "reasonable attorney fees." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page4[0].List5[0].Lid[0].Check53[0]", - "id": "pdf-obj-3-27", - "value": "1", - "label": "that plaintiff be ordered to (1) make repairs and correct the conditions that constitute a breach of the warranty to provide habitable premises and (2) reduce the monthly rent to a reasonable rental value until the conditions are corrected." - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page5[0].List5[0].Lie[0].Check54[0]", - "id": "pdf-obj-4-9", - "value": "1", - "label": "Other" - }, - { - "tag": "textarea", - "name": "UD-105[0].Page5[0].List5[0].Lie[0].FillField12[0]", - "id": "pdf-obj-4-11", - "label": "(specify below or on form MC-025):" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page5[0].List5[0].Lie[0].Check55[0]", - "id": "pdf-obj-4-10", - "value": "1", - "label": "All other requests are stated on form MC-025, titled as Attachment 5e." - }, - - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page5[0].List6[0].item6[0].FillPages1[0]", - "id": "pdf-obj-4-12", - "value": "", - "label": "Number of pages attached" - }, - { - "tag": "h3", - "name": "UD-105[0].Page5[0].UDAssistant[0].List7[0].Header3[0]", - "label": "UNLAWFUL DETAINER ASSISTANT (Bus. & Prof. Code, sections 6400–6415)" - }, - { - "tag": "p", - "name": "UD-105[0].Page5[0].UDAssistant[0].List7[0].Paragraph[0]", - "label": "(Must be completed in all cases.) An unlawful detainer assistant" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page5[0].UDAssistant[0].List7[0].Check561[0]", - "id": "pdf-obj-4-13", - "value": "1", - "label": "did not" - }, - { - "tag": "input", - "type": "checkbox", - "name": "UD-105[0].Page5[0].UDAssistant[0].List7[0].Check561[1]", - "id": "pdf-obj-4-14", - "value": "2", - "label": "did" - }, - { - "tag": "p", - "name": "UD-105[0].Page5[0].UDAssistant[0].List7[0].Paragraph[1]", - "label": "for compensation give advice or assistance with this form. (If defendant has received any help or advice for pay from an unlawful detainer assistant, state):" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page5[0].UDAssistant[0].List7[0].Lia[0].AsstName[0]", - "id": "pdf-obj-4-15", - "value": "", - "label": "Assistant's name" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page5[0].UDAssistant[0].List7[0].Lib[0].PhoneNum[0]", - "id": "pdf-obj-4-16", - "value": "", - "label": "Telephone number" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page5[0].UDAssistant[0].List7[0].Lic[0].Address[0]", - "id": "pdf-obj-4-17", - "value": "", - "label": "Street address city and zip code" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page5[0].UDAssistant[0].List7[0].Lid[0].RegCounty[0]", - "id": "pdf-obj-4-18", - "value": "", - "label": "County of registration" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page5[0].UDAssistant[0].List7[0].Lie[0].RegNo[0]", - "id": "pdf-obj-4-19", - "value": "", - "label": "Registration number" - }, - { - "tag": "p", - "name": "UD-105[0].Page5[0].UDAssistant[0].List7[0].Lif[0].Paragraph[0]", - "label": "Expiration date" - }, - { - "tag": "input", - "type": "date", - "name": "appointment-date3", - "id": "appointment-date3", - "arialabelledby": "appointment-date-label3", - "ariadescribedby": "appointment-date-label3", - "value": "", - "label": "mm/dd/yyyy" - }, - { - "tag": "p", - "name": "UD-105[0].Page5[0].UDAssistant[0].Sign[0].Paragraph[0]", - "label": "(Each defendant for whom this answer is filed must be named in item 1 and must sign this answer unless defendant's attorney signs.)" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page5[0].UDAssistant[0].Sign[0].PrintName1[0]", - "id": "pdf-obj-4-21", - "value": "", - "label": "Type name" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page5[0].UDAssistant[0].Sign[0].PrintName2[0]", - "id": "pdf-obj-4-22", - "value": "", - "label": "Type name" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page5[0].UDAssistant[0].Sign[0].PrintName11[0]", - "id": "pdf-obj-4-23", - "value": "", - "label": "Type name" - }, - { - "tag": "h3", - "name": "UD-105[0].Page5[0].Verification[0].Header3[0]", - "label": "VERIFICATION" - }, - { - "tag": "p", - "name": "UD-105[0].Page5[0].Verification[0].Paragraph[0]", - "label": "(Use a different verification form if the verification is by an attorney or for a corporation or partnership.)" - }, - { - "tag": "p", - "name": "UD-105[0].Page5[0].Verification[0].Paragraph[1]", - "label": "I am the defendant in this proceeding and have read this answer. I declare under penalty of perjury under the laws of the State of California that the foregoing is true and correct." - }, - { - "tag": "input", - "type": "date", - "name": "appointment-date4", - "id": "appointment-date4", - "arialabelledby": "appointment-date-label4", - "ariadescribedby": "appointment-date-label4", - "value": "", - "label": "mm/dd/yyyy" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page5[0].Verification[0].PrintName3[0]", - "id": "pdf-obj-4-25", - "value": "", - "label": "Type name" - }, - { - "tag": "input", - "type": "date", - "name": "appointment-date5", - "id": "appointment-date5", - "arialabelledby": "appointment-date-label5", - "ariadescribedby": "appointment-date-label5", - "value": "", - "label": "mm/dd/yyyy" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page5[0].Verification[0].PrintName4[0]", - "id": "pdf-obj-4-27", - "value": "", - "label": "Type name" - }, - { - "tag": "input", - "type": "date", - "name": "appointment-date6", - "id": "appointment-date6", - "arialabelledby": "appointment-date-label6", - "ariadescribedby": "appointment-date-label6", - "value": "", - "label": "mm/dd/yyyy" - }, - { - "tag": "input", - "type": "text", - "name": "UD-105[0].Page5[0].Verification[0].PrintName5[0]", - "id": "pdf-obj-4-29", - "value": "", - "label": "Type name" - } -] \ No newline at end of file diff --git a/apps/spotlight/src/styles.css b/apps/spotlight/src/styles.css index 1c378f58..a6caa7a3 100644 --- a/apps/spotlight/src/styles.css +++ b/apps/spotlight/src/styles.css @@ -1,4 +1 @@ @import '@atj/design/static/uswds/styles/styles.css'; - - - diff --git a/infra/.gitignore b/infra/.gitignore index 4916cce9..2e53445f 100644 --- a/infra/.gitignore +++ b/infra/.gitignore @@ -7,3 +7,6 @@ __tests__/**/*.d.ts __tests__/**/*.js src/**/*.js src/**/*.d.ts + +# Generated by `cdktf get` +.gen/ diff --git a/infra/README.md b/infra/README.md index 15a177c0..1a7e76d1 100644 --- a/infra/README.md +++ b/infra/README.md @@ -1,3 +1,59 @@ # @atj/infra Infrastructure-as-code (IaC) for the project, implemented with [Terraform CDK](https://github.com/hashicorp/terraform-cdk). + +## Deployment steps + +To prepare for deployment, first build the project: + +```bash +pnpm build +``` + +To perform a deployment, ensure the current environment is configured with credentials for AWS and Cloud.gov (see below for details). Then, you may deploy with: + +```bash +pnpm deploy +``` + +## Cloud services + +### AWS + +The Terraform state is maintained in an AWS S3 bucket. Also, some experimental integrations have at times been deployed to AWS. In order to apply the Terraform, you must have appropriate AWS credentials in your current environment. + +### Cloud.gov + +The project team intends to default to deploying infrastructure to Cloud.gov. The + +Interacting with cloud.gov requires login via the Cloudfoundry CLI: + +```bash +cf login -a api.fr.cloud.gov --sso +``` + +cloud.gov operations may be bootstrapped with `./scripts/cloud.sh`. + +```bash +./scripts/cloud.sh -h +``` + +To initialize a deployment space and create a service account for deployments: + +```bash +./scripts/cloud.sh setup -o -s +``` + +To view the credentials: + +```bash +./scripts/cloud.sh show -o -s +``` + +To export the deploy user's credentials to your environment: + +```bash +source ./scripts/cloud.sh export -o -s +``` + +Once the credentials are exported to the environment, you may utilize them via the Terraform CDK project. diff --git a/infra/cdktf.json b/infra/cdktf.json index bed01fc8..963a5837 100644 --- a/infra/cdktf.json +++ b/infra/cdktf.json @@ -3,7 +3,7 @@ "app": "npx ts-node src/index.ts", "projectId": "9bbe7827-9202-4cf8-8d85-a8241c08ab5c", "sendCrashReports": "false", - "terraformProviders": [], + "terraformProviders": ["cloudfoundry-community/cloudfoundry@0.53.1"], "terraformModules": [], "context": { "excludeStackIdFromLogicalIds": "true", diff --git a/infra/package.json b/infra/package.json index 081eebd1..f5cff7fd 100644 --- a/infra/package.json +++ b/infra/package.json @@ -4,18 +4,20 @@ "main": "src/index.js", "types": "src/index.ts", "scripts": { - "compile": "tsc --pretty", - "dev": "tsc -w", + "build": "pnpm build:tsc && pnpm build:synth", + "build:get": "cdktf get", + "build:synth": "cdktf synth", + "build:tsc": "tsc --pretty", + "clean": "rm -rf .gen cdktf.out", "deploy": "cdktf deploy", - "get": "cdktf get", - "synth": "cdktf synth", + "dev": "tsc -w", "test": "jest", "test:watch": "jest --watch" }, "dependencies": { "@cdktf/provider-aws": "18.0.1", - "cdktf": "^0.19.0", - "cdktf-cli": "^0.19.0", + "cdktf": "^0.20.4", + "cdktf-cli": "^0.20.4", "constructs": "^10.3.0" }, "devDependencies": { diff --git a/packages-python/docassemble-server/cloud.sh b/infra/scripts/cloud.sh similarity index 88% rename from packages-python/docassemble-server/cloud.sh rename to infra/scripts/cloud.sh index bb5b8b63..ea010d3e 100755 --- a/packages-python/docassemble-server/cloud.sh +++ b/infra/scripts/cloud.sh @@ -5,7 +5,6 @@ #set -eo pipefail -CMS_SERVICE=cms-service DEPLOY_USER=a2j-deployer DEPLOY_USER_KEY=${DEPLOY_USER}-key @@ -67,8 +66,8 @@ export_service_key() { echo "Querying for ${DEPLOY_USER_KEY}..." SERVICE_KEY=$(cf service-key ${DEPLOY_USER} ${DEPLOY_USER_KEY} | tail -n +2) echo "Exporting ${DEPLOY_USER_KEY} CF_USER, CF_PASSWORD..." - export CF_USER=$(echo $SERVICE_KEY | jq -r .username) - export CF_PASSWORD=$(echo $SERVICE_KEY | jq -r .password) + export CF_USER=$(echo $SERVICE_KEY | jq -r .credentials.username) + export CF_PASSWORD=$(echo $SERVICE_KEY | jq -r .credentials.password) } export_environment() { @@ -80,6 +79,7 @@ setup() { echo space "${space_name}" already created else cf create-space ${space_name} -o ${organization_name} + cf target -o ${organization_name} -s ${space_name} fi if service_exists "${DEPLOY_USER}" ; then @@ -101,7 +101,7 @@ setup_keys() { cf create-service-key ${DEPLOY_USER} ${DEPLOY_USER_KEY} fi - echo "To see service keys, execute './cloud.sh'" + echo "To see service keys, execute: ./scripts/cloud.sh show -o -s " } update_keys() { @@ -127,21 +127,9 @@ deploy() { cf push -f manifest.yml } -rotate() { - update_keys - cat << EOF - - -You need to update CI/CD github secrets with ./cloud.sh show - - a2j-deployer-key.password => CF_PASSWORD_ENV - a2j-deployer-key.username => CF_USER_ENV -EOF -} - while [ "$1" != "" ]; do case $1 in - rotate | setup | show | export | deploy ) operation=$1 + setup | show | export | deploy ) operation=$1 ;; -o | --organization ) shift organization_name=$1 @@ -164,8 +152,6 @@ validate_parameters cf target -o ${organization_name} -s ${space_name} case $operation in - rotate ) rotate - ;; setup ) setup ;; show ) show diff --git a/infra/recreate.sh b/infra/scripts/recreate.sh similarity index 100% rename from infra/recreate.sh rename to infra/scripts/recreate.sh diff --git a/infra/src/app-stack.ts b/infra/src/app-stack.ts index 0fa95fc8..b63c725b 100644 --- a/infra/src/app-stack.ts +++ b/infra/src/app-stack.ts @@ -1,10 +1,9 @@ import { App, TerraformStack } from 'cdktf'; import { Construct } from 'constructs'; -import { AwsProvider } from '@cdktf/provider-aws/lib/provider'; +import { CloudfoundryProvider } from '../.gen/providers/cloudfoundry/provider'; import { withBackend } from './backend'; -import { Docassemble } from './docassemble'; -import { FormService } from './rest-api'; +import { CloudGovSpace } from './cloud.gov/space'; export const registerAppStack = (stackPrefix: string) => { const app = new App(); @@ -17,11 +16,18 @@ class AppStack extends TerraformStack { constructor(scope: Construct, id: string) { super(scope, id); - new AwsProvider(this, 'AWS', { + /*new AwsProvider(this, 'AWS', { region: 'us-east-2', + });*/ + + new CloudfoundryProvider(this, 'cloud-gov', { + apiUrl: 'https://api.fr.cloud.gov', + appLogsMax: 30, + ssoPasscode: '', }); - new Docassemble(this, `${id}-docassemble`); - new FormService(this, `${id}-rest-api`); + //new Docassemble(this, `${id}-docassemble`); + new CloudGovSpace(this, id); + //new FormService(this, `${id}-rest-api`); } } diff --git a/infra/src/cloud.gov/config.ts b/infra/src/cloud.gov/config.ts new file mode 100644 index 00000000..280658de --- /dev/null +++ b/infra/src/cloud.gov/config.ts @@ -0,0 +1 @@ +export const CLOUD_GOV_ORG_NAME = 'gsa-10x-prototyping'; diff --git a/infra/src/cloud.gov/index.ts b/infra/src/cloud.gov/index.ts new file mode 100644 index 00000000..514cc1ba --- /dev/null +++ b/infra/src/cloud.gov/index.ts @@ -0,0 +1 @@ +export { CloudGovSpace } from './space'; diff --git a/infra/src/cloud.gov/node-astro.ts b/infra/src/cloud.gov/node-astro.ts new file mode 100644 index 00000000..948fd674 --- /dev/null +++ b/infra/src/cloud.gov/node-astro.ts @@ -0,0 +1,38 @@ +import { Construct } from 'constructs'; +import * as cloudfoundry from '../../.gen/providers/cloudfoundry'; + +export class AstroService extends Construct { + constructor(scope: Construct, id: string, spaceId: string) { + super(scope, id); + + const domain = + new cloudfoundry.dataCloudfoundryDomain.DataCloudfoundryDomain( + scope, + `${id}-data-domain`, + { + name: 'app.cloud.gov', + } + ); + + const route = new cloudfoundry.route.Route(scope, `${id}-route`, { + domain: domain.id, + space: spaceId, + hostname: id, + }); + + new cloudfoundry.app.App(this, `${id}-app`, { + name: `${id}-app`, + space: spaceId, + dockerImage: 'ghcr.io/gsa-tts/tts-10x-atj-dev/doj-demo:latest', + memory: 1024, + diskQuota: 4096, + healthCheckType: 'http', + healthCheckHttpEndpoint: '/', + routes: [ + { + route: route.id, + }, + ], + }); + } +} diff --git a/infra/src/cloud.gov/space.ts b/infra/src/cloud.gov/space.ts new file mode 100644 index 00000000..740925d6 --- /dev/null +++ b/infra/src/cloud.gov/space.ts @@ -0,0 +1,22 @@ +import { Construct } from 'constructs'; + +import * as cloudfoundry from '../../.gen/providers/cloudfoundry'; +import { CLOUD_GOV_ORG_NAME } from './config'; +import { AstroService } from './node-astro'; + +export class CloudGovSpace extends Construct { + constructor(scope: Construct, id: string) { + super(scope, id); + + const space = new cloudfoundry.dataCloudfoundrySpace.DataCloudfoundrySpace( + scope, + `${id}-data-space`, + { + name: id, + orgName: CLOUD_GOV_ORG_NAME, + } + ); + + new AstroService(scope, `${id}-doj-demo`, space.id); + } +} diff --git a/package.json b/package.json index ec44b95e..c340e5ab 100644 --- a/package.json +++ b/package.json @@ -6,15 +6,14 @@ "main": "index.js", "license": "CC0", "scripts": { - "build": "turbo run build", + "build": "turbo run build --filter=!infra", "clean": "turbo run clean", "dev": "turbo run dev --concurrency 12", "format": "prettier --write \"packages/**/*.{js,jsx,ts,tsx}\"", "lint": "turbo run lint", "pages": "rm -rf node_modules && npm i -g pnpm turbo && pnpm i && pnpm build && ln -sf ./apps/spotlight/dist _site", - "test": "run-p test:*", - "test:infra": "turbo run --filter=infra test", - "test:vitest": "vitest run --coverage.enabled --coverage.reporter=text --coverage.reporter=json-summary --coverage.reporter=json --coverage.reportOnFailure --reporter vitest-github-actions-reporter" + "test": "vitest run --coverage.enabled --coverage.reporter=text --coverage.reporter=json-summary --coverage.reporter=json --coverage.reportOnFailure --reporter vitest-github-actions-reporter", + "test:infra": "turbo run --filter=infra test" }, "hooks": { "pre-commit": "pnpm format" diff --git a/packages-python/docassemble-server/README.md b/packages-python/docassemble-server/README.md index be010495..70b014d6 100644 --- a/packages-python/docassemble-server/README.md +++ b/packages-python/docassemble-server/README.md @@ -9,17 +9,3 @@ The configuration does not mount volumes for persistent data, because it is inte ```bash docker-compose up ``` - -## Cloud.gov deployment - -To login with the Cloudfoundry CLI: - -```bash -cf login -a api.fr.cloud.gov --sso -``` - -Deployment operations are available via this script: - -```bash -./cloud.sh --help -``` diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 05df76ce..daab8ccc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,6 +67,49 @@ importers: specifier: ^11.1.0 version: 11.1.0 + apps/doj-demo: + dependencies: + '@astrojs/check': + specifier: ^0.5.6 + version: 0.5.6(prettier@3.2.5)(typescript@5.3.3) + '@astrojs/node': + specifier: ^8.2.3 + version: 8.2.3(astro@4.4.11) + '@astrojs/react': + specifier: ^3.0.9 + version: 3.0.9(@types/react-dom@18.2.14)(@types/react@18.2.62)(react-dom@18.2.0)(react@18.2.0)(vite@5.1.4) + '@atj/design': + specifier: workspace:* + version: link:../../packages/design + '@atj/documents': + specifier: workspace:* + version: link:../../packages/documents + '@atj/form-service': + specifier: workspace:* + version: link:../../packages/form-service + '@atj/forms': + specifier: workspace:* + version: link:../../packages/forms + astro: + specifier: ^4.4.11 + version: 4.4.11(@types/node@20.11.16)(typescript@5.3.3) + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + react-error-boundary: + specifier: ^4.0.12 + version: 4.0.12(react@18.2.0) + typescript: + specifier: ^5.3.3 + version: 5.3.3 + devDependencies: + '@types/react': + specifier: ^18.2.62 + version: 18.2.62 + apps/rest-api: dependencies: '@atj/form-service': @@ -84,7 +127,7 @@ importers: dependencies: '@astrojs/react': specifier: ^3.0.9 - version: 3.0.9(@types/react-dom@18.2.14)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0)(vite@5.1.3) + version: 3.0.9(@types/react-dom@18.2.14)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0)(vite@5.1.4) '@atj/design': specifier: workspace:* version: link:../../packages/design @@ -100,9 +143,6 @@ importers: astro: specifier: ^4.3.3 version: 4.3.3(@types/node@20.11.16)(typescript@5.3.3) - cheerio: - specifier: 1.0.0-rc.12 - version: 1.0.0-rc.12 react: specifier: ^18.2.0 version: 18.2.0 @@ -127,13 +167,13 @@ importers: dependencies: '@cdktf/provider-aws': specifier: 18.0.1 - version: 18.0.1(cdktf@0.19.0)(constructs@10.3.0) + version: 18.0.1(cdktf@0.20.4)(constructs@10.3.0) cdktf: - specifier: ^0.19.0 - version: 0.19.0(constructs@10.3.0) + specifier: ^0.20.4 + version: 0.20.4(constructs@10.3.0) cdktf-cli: - specifier: ^0.19.0 - version: 0.19.0(ink@3.2.0)(react@17.0.2) + specifier: ^0.20.4 + version: 0.20.4(ink@3.2.0)(react@17.0.2) constructs: specifier: ^10.3.0 version: 10.3.0 @@ -419,6 +459,23 @@ packages: - prettier-plugin-astro dev: true + /@astrojs/check@0.5.6(prettier@3.2.5)(typescript@5.3.3): + resolution: {integrity: sha512-i7j5ogoSg/Bu2NV5zVvwCo9R4kGWXWsJDejxpCu9F7iNNlR333u8EwpP4bpeKASDtjOA1rXKo9ogUTEVlIAHqA==} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + dependencies: + '@astrojs/language-server': 2.7.6(prettier@3.2.5)(typescript@5.3.3) + chokidar: 3.5.3 + fast-glob: 3.3.2 + kleur: 4.1.5 + typescript: 5.3.3 + yargs: 17.7.2 + transitivePeerDependencies: + - prettier + - prettier-plugin-astro + dev: false + /@astrojs/compiler@2.5.3: resolution: {integrity: sha512-jzj01BRv/fmo+9Mr2FhocywGzEYiyiP2GVHje1ziGNU6c97kwhYGsnvwMkHrncAy9T9Vi54cjaMK7UE4ClX4vA==} @@ -461,6 +518,39 @@ packages: - typescript dev: true + /@astrojs/language-server@2.7.6(prettier@3.2.5)(typescript@5.3.3): + resolution: {integrity: sha512-NhMSmMAuKBMXnvpfn9eYPR7R6zOasAjRb+ta8L+rCHHuKzUc0lBgAF5M6rx01FJqlpGqeqao13eYt4287Ze49g==} + hasBin: true + peerDependencies: + prettier: ^3.0.0 + prettier-plugin-astro: '>=0.11.0' + peerDependenciesMeta: + prettier: + optional: true + prettier-plugin-astro: + optional: true + dependencies: + '@astrojs/compiler': 2.5.3 + '@jridgewell/sourcemap-codec': 1.4.15 + '@volar/kit': 2.0.4(typescript@5.3.3) + '@volar/language-core': 2.0.4 + '@volar/language-server': 2.0.4 + '@volar/language-service': 2.0.4 + '@volar/typescript': 2.0.4 + fast-glob: 3.3.2 + prettier: 3.2.5 + volar-service-css: 0.0.30(@volar/language-service@2.0.4) + volar-service-emmet: 0.0.30(@volar/language-service@2.0.4) + volar-service-html: 0.0.30(@volar/language-service@2.0.4) + volar-service-prettier: 0.0.30(@volar/language-service@2.0.4)(prettier@3.2.5) + volar-service-typescript: 0.0.30(@volar/language-service@2.0.4)(@volar/typescript@2.0.4) + volar-service-typescript-twoslash-queries: 0.0.30(@volar/language-service@2.0.4) + vscode-html-languageservice: 5.1.2 + vscode-uri: 3.0.8 + transitivePeerDependencies: + - typescript + dev: false + /@astrojs/markdown-remark@4.2.1: resolution: {integrity: sha512-2RQBIwrq+2qPYtp99bH+eL5hfbK0BoxXla85lHsRpIX/IsGqFrPX6pXI2cbWPihBwGbKCdxS6uZNX2QerZWwpQ==} dependencies: @@ -482,6 +572,18 @@ packages: - supports-color dev: false + /@astrojs/node@8.2.3(astro@4.4.11): + resolution: {integrity: sha512-VQQy7QIv4X+5dlKCEchYIxMFryS+BwDOFGNzeRmHe1/P819TlNup9/M8XqnWW4aZPxV7P6CoDeFxX6HuT/kOmQ==} + peerDependencies: + astro: ^4.2.0 + dependencies: + astro: 4.4.11(@types/node@20.11.16)(typescript@5.3.3) + send: 0.18.0 + server-destroy: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: false + /@astrojs/prism@3.0.0: resolution: {integrity: sha512-g61lZupWq1bYbcBnYZqdjndShr/J3l/oFobBKPA3+qMat146zce3nz2kdO4giGbhYDt4gYdhmoBz0vZJ4sIurQ==} engines: {node: '>=18.14.1'} @@ -489,7 +591,7 @@ packages: prismjs: 1.29.0 dev: false - /@astrojs/react@3.0.9(@types/react-dom@18.2.14)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0)(vite@5.1.3): + /@astrojs/react@3.0.9(@types/react-dom@18.2.14)(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0)(vite@5.1.4): resolution: {integrity: sha512-31J5yF5p9yBFV1axBooLA9PB4B2+MYm7swWhtlezSsJiUNXRFo5Is9qI3teJ7cKgmaCv+ZA593Smskko0NGaDQ==} engines: {node: '>=18.14.1'} peerDependencies: @@ -500,7 +602,27 @@ packages: dependencies: '@types/react': 18.2.37 '@types/react-dom': 18.2.14 - '@vitejs/plugin-react': 4.2.1(vite@5.1.3) + '@vitejs/plugin-react': 4.2.1(vite@5.1.4) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + ultrahtml: 1.5.2 + transitivePeerDependencies: + - supports-color + - vite + dev: false + + /@astrojs/react@3.0.9(@types/react-dom@18.2.14)(@types/react@18.2.62)(react-dom@18.2.0)(react@18.2.0)(vite@5.1.4): + resolution: {integrity: sha512-31J5yF5p9yBFV1axBooLA9PB4B2+MYm7swWhtlezSsJiUNXRFo5Is9qI3teJ7cKgmaCv+ZA593Smskko0NGaDQ==} + engines: {node: '>=18.14.1'} + peerDependencies: + '@types/react': ^17.0.50 || ^18.0.21 + '@types/react-dom': ^17.0.17 || ^18.0.6 + react: ^17.0.2 || ^18.0.0 + react-dom: ^17.0.2 || ^18.0.0 + dependencies: + '@types/react': 18.2.62 + '@types/react-dom': 18.2.14 + '@vitejs/plugin-react': 4.2.1(vite@5.1.4) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) ultrahtml: 1.5.2 @@ -614,6 +736,7 @@ packages: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.18 jsesc: 2.5.2 + dev: true /@babel/generator@7.23.6: resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} @@ -894,6 +1017,14 @@ packages: dependencies: '@babel/types': 7.23.6 + /@babel/parser@7.24.0: + resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.9 + dev: false + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} @@ -2012,11 +2143,20 @@ packages: '@babel/parser': 7.23.6 '@babel/types': 7.23.6 + /@babel/template@7.23.9: + resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.24.0 + '@babel/types': 7.23.9 + dev: false + /@babel/traverse@7.23.0: resolution: {integrity: sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.23.5 '@babel/generator': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 @@ -2055,6 +2195,15 @@ packages: '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 + /@babel/types@7.23.9: + resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: false + /@base2/pretty-print-object@1.0.1: resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} dev: true @@ -2063,28 +2212,29 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@cdktf/cli-core@0.19.0(react@17.0.2): - resolution: {integrity: sha512-iSkhxuSHEPkPCPwvcM81ytniS3v/3YT+zY/MzeKWVkaMj1hZDF3e2C5gnjOdrb0ZCFIH1+znF+aJK9LiqBoV+Q==} + /@cdktf/cli-core@0.20.4(react@17.0.2): + resolution: {integrity: sha512-x5KqngrqdK7mjocvBiAHPJUEv84djnm2vLOHwSOmTswYBHEP4r+egFFiAb2r2VPUpej4mPtoLNUJfjJ1LVVD1w==} dependencies: - '@cdktf/commons': 0.19.0 - '@cdktf/hcl2cdk': 0.19.0 - '@cdktf/hcl2json': 0.19.0 + '@cdktf/commons': 0.20.4(constructs@10.1.167) + '@cdktf/hcl-tools': 0.20.4 + '@cdktf/hcl2cdk': 0.20.4(constructs@10.1.167) + '@cdktf/hcl2json': 0.20.4 '@cdktf/node-pty-prebuilt-multiarch': 0.10.1-pre.11 - '@cdktf/provider-schema': 0.19.0 - '@sentry/node': 7.73.0 + '@cdktf/provider-schema': 0.20.4(constructs@10.1.167) + '@sentry/node': 7.101.1 archiver: 5.3.2 - cdktf: 0.19.0(constructs@10.3.0) + cdktf: 0.20.4(constructs@10.1.167) chalk: 4.1.2 - chokidar: 3.5.3 - cli-spinners: 2.7.0 - codemaker: 1.89.0 - constructs: 10.3.0 + chokidar: 3.6.0 + cli-spinners: 2.9.2 + codemaker: 1.94.0 + constructs: 10.1.167 cross-fetch: 3.1.8 cross-spawn: 7.0.3 detect-port: 1.5.1 execa: 5.1.1 extract-zip: 2.0.1 - follow-redirects: 1.15.3 + follow-redirects: 1.15.5 fs-extra: 8.1.0 https-proxy-agent: 5.0.1 indent-string: 4.0.0 @@ -2093,9 +2243,9 @@ packages: ink-spinner: 4.0.3(ink@3.2.0)(react@17.0.2) ink-testing-library: 2.1.0 ink-use-stdout-dimensions: 1.0.5(ink@3.2.0)(react@17.0.2) - jsii: 5.1.12 - jsii-pacmak: 1.89.0 - jsii-srcmak: 0.1.951 + jsii: 5.3.19 + jsii-pacmak: 1.94.0 + jsii-srcmak: 0.1.1039 lodash.isequal: 4.5.0 log4js: 6.9.1 minimatch: 5.1.6 @@ -2103,17 +2253,17 @@ packages: open: 7.4.2 parse-gitignore: 1.0.1 pkg-up: 3.1.0 - semver: 7.5.4 + semver: 7.6.0 sscaff: 1.2.274 stream-buffers: 3.0.2 strip-ansi: 6.0.1 tunnel-agent: 0.6.0 uuid: 8.3.2 xml-js: 1.6.11 - xstate: 4.38.2 + xstate: 4.38.3 yargs: 17.7.2 yoga-layout-prebuilt: 1.10.0 - zod: 1.11.17 + zod: 3.22.4 transitivePeerDependencies: - '@types/react' - bufferutil @@ -2124,53 +2274,61 @@ packages: - utf-8-validate dev: false - /@cdktf/commons@0.19.0: - resolution: {integrity: sha512-zhqGhx7PWa1lCa1B7RUH1qoln2emrGbGJ3kjRKMOxJxbTKdQBwFUbsaEOiOAVBm0ukTt2DX+VWQc8YPpMgSbgA==} + /@cdktf/commons@0.20.4(constructs@10.1.167): + resolution: {integrity: sha512-quCT7/Mz1S96YXuv5M2raQ2rTWMkjPyB7OkKe8dMv1CSg3tNry/r//sTMIi/ZrR+jjzz3qW7kDNwouPi7D9L3A==} dependencies: - '@sentry/node': 7.73.0 - cdktf: 0.19.0(constructs@10.3.0) + '@sentry/node': 7.102.1 + cdktf: 0.20.4(constructs@10.1.167) ci-info: 3.9.0 - codemaker: 1.89.0 - constructs: 10.3.0 + codemaker: 1.94.0 cross-spawn: 7.0.3 - follow-redirects: 1.15.3 - fs-extra: 11.1.1 + follow-redirects: 1.15.5 + fs-extra: 11.2.0 is-valid-domain: 0.1.6 log4js: 6.9.1 + strip-ansi: 6.0.1 uuid: 9.0.1 transitivePeerDependencies: + - constructs - debug - supports-color dev: false - /@cdktf/hcl2cdk@0.19.0: - resolution: {integrity: sha512-43XWR/ZLZVc8amOC6GmyGFkK9doiP9DKMjEDpYEnXCl1UhdFGHHipcSK6fnc30RCIq3KFF9FTuztvUyruToRyA==} + /@cdktf/hcl-tools@0.20.4: + resolution: {integrity: sha512-uZFub433AcKzccdpOTdvcROptOj9vFBY7xuBfItDJUtvQ1/In5fxW4XHdP+A+UOUDgnC3FvN0EDXAF7HjCEqjQ==} + dev: false + + /@cdktf/hcl2cdk@0.20.4(constructs@10.1.167): + resolution: {integrity: sha512-XJ0pClv18NtVOJZMIyPC+YZKtyqtswWcO0Ar+4GXBJlOE4ikzr34dvDzI9FoKECOQ/05Q96c9p/DMt3PrTRhVA==} dependencies: - '@babel/generator': 7.23.0 - '@babel/template': 7.22.15 - '@babel/types': 7.23.6 - '@cdktf/commons': 0.19.0 - '@cdktf/hcl2json': 0.19.0 - '@cdktf/provider-generator': 0.19.0 - '@cdktf/provider-schema': 0.19.0 + '@babel/generator': 7.23.6 + '@babel/template': 7.23.9 + '@babel/types': 7.23.9 + '@cdktf/commons': 0.20.4(constructs@10.1.167) + '@cdktf/hcl2json': 0.20.4 + '@cdktf/provider-generator': 0.20.4(constructs@10.1.167) + '@cdktf/provider-schema': 0.20.4(constructs@10.1.167) camelcase: 6.3.0 - deep-equal: 2.2.2 + cdktf: 0.20.4(constructs@10.1.167) + codemaker: 1.94.0 + deep-equal: 2.2.3 glob: 10.3.10 graphology: 0.25.4(graphology-types@0.24.7) graphology-types: 0.24.7 - jsii-rosetta: 5.1.13 + jsii-rosetta: 5.3.19 prettier: 2.8.8 reserved-words: 0.1.2 zod: 3.22.4 transitivePeerDependencies: + - constructs - debug - supports-color dev: false - /@cdktf/hcl2json@0.19.0: - resolution: {integrity: sha512-wo68qo74dTxcZWJkwlhTV+YoVopUUUTpRC8W73HWkaL/lw6GDozh4GHwphagIHYJy07Ecxdx/WTp0sGDBaFBuQ==} + /@cdktf/hcl2json@0.20.4: + resolution: {integrity: sha512-j9rQckF5lm8+9NB6kXqUc/YFKbo5SzZVp96xa2uYe3+1cmjum4SsA3P4M1du6Vuw6GRUh6mtYY6e3JQbZVQ05g==} dependencies: - fs-extra: 11.1.1 + fs-extra: 11.2.0 dev: false /@cdktf/node-pty-prebuilt-multiarch@0.10.1-pre.11: @@ -2181,39 +2339,42 @@ packages: prebuild-install: 7.1.1 dev: false - /@cdktf/provider-aws@18.0.1(cdktf@0.19.0)(constructs@10.3.0): + /@cdktf/provider-aws@18.0.1(cdktf@0.20.4)(constructs@10.3.0): resolution: {integrity: sha512-gnhfZWlZpzoHwfbC7H/36jSBK3vusGSlNnXsCvEZXKG33EQyR9iv8gbFCEmYAQ4RdyXm3zxKRoVY9c0SkZ7FxA==} engines: {node: '>= 18.12.0'} peerDependencies: cdktf: ^0.19.0 constructs: ^10.0.0 dependencies: - cdktf: 0.19.0(constructs@10.3.0) + cdktf: 0.20.4(constructs@10.3.0) constructs: 10.3.0 dev: false - /@cdktf/provider-generator@0.19.0: - resolution: {integrity: sha512-+1qKfvSA4YH+i6PBbuDwj8xP5NNCsyeF5KR6S/2NqBxz/4w4xptB+h/IehiVGSHtwI2/XmL4bF3gLpNB9Q2dGg==} + /@cdktf/provider-generator@0.20.4(constructs@10.1.167): + resolution: {integrity: sha512-pE4Psqlzjf0eV/RTBJvlXx7Q+MmF+7kK98QqR4JPWYofJBl9SRUw2QWas4xxaLXkCzhOio5aHZk4f6YwzT/98w==} dependencies: - '@cdktf/commons': 0.19.0 - '@cdktf/hcl2json': 0.19.0 - '@cdktf/provider-schema': 0.19.0 - '@types/node': 18.11.19 - codemaker: 1.89.0 - deepmerge: 4.3.1 + '@cdktf/commons': 0.20.4(constructs@10.1.167) + '@cdktf/provider-schema': 0.20.4(constructs@10.1.167) + '@types/node': 18.19.18 + codemaker: 1.94.0 fs-extra: 8.1.0 - jsii-srcmak: 0.1.951 + glob: 10.3.10 + jsii-srcmak: 0.1.1039 transitivePeerDependencies: + - constructs - debug - supports-color dev: false - /@cdktf/provider-schema@0.19.0: - resolution: {integrity: sha512-tfl6EqzBGL+qRBc+lgtb4qZvj8J4R+htF+N6BmrFnz9NiplRJmy1xzRMZ1fsrboeH0QExlyFYdIaZ97Q3CtD7A==} + /@cdktf/provider-schema@0.20.4(constructs@10.1.167): + resolution: {integrity: sha512-9PMsdDTRR4n5i/xg++zkoJJ6CjQ62sdhLq5xGapwDBPnOtanUr4iQ/gUvdI+44Fps8Zi7vj7PAR/+k26Hv9w4A==} dependencies: - '@cdktf/commons': 0.19.0 - fs-extra: 11.1.1 + '@cdktf/commons': 0.20.4(constructs@10.1.167) + '@cdktf/hcl2json': 0.20.4 + deepmerge: 4.3.1 + fs-extra: 11.2.0 transitivePeerDependencies: + - constructs - debug - supports-color dev: false @@ -2284,17 +2445,14 @@ packages: resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} dependencies: '@emmetio/scanner': 1.0.4 - dev: true /@emmetio/css-abbreviation@2.1.8: resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} dependencies: '@emmetio/scanner': 1.0.4 - dev: true /@emmetio/scanner@1.0.4: resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} - dev: true /@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0): resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} @@ -3435,24 +3593,24 @@ packages: - supports-color dev: true - /@jsii/check-node@1.88.0: - resolution: {integrity: sha512-AveFyqkJIb8qZvGk5nZal/8mEJB6lWhwqvAQLodHmqE3WzpmZD5+h+aspBVt0El5cEFRJ1k1mrQqhAnJCVpvxg==} + /@jsii/check-node@1.94.0: + resolution: {integrity: sha512-46W+V1oTFvF9ZpKpPYy//1WUmhZ8AD8O0ElmQtv9mundLHccZm+q7EmCYhozr7rlK5uSjU9/WHfbIx2DwynuJw==} engines: {node: '>= 14.17.0'} dependencies: chalk: 4.1.2 - semver: 7.5.4 + semver: 7.6.0 dev: false - /@jsii/check-node@1.89.0: - resolution: {integrity: sha512-RMw19IEj6ch6oOGkBrAbtzwshrOXMKlfbX54S0hGrwR1qlSjNS9qqt4p+LRSpurhriEo7oHDegItNGUjPYoNXw==} + /@jsii/check-node@1.95.0: + resolution: {integrity: sha512-E5njkBk6X4WrQHtGeO0ed+cvkMxqinQZY83TJZ9RFEIwrndDfj7asMgWkRkYQRF05AlQXks+Eh8wza7ErIl85Q==} engines: {node: '>= 14.17.0'} dependencies: chalk: 4.1.2 semver: 7.5.4 dev: false - /@jsii/spec@1.89.0: - resolution: {integrity: sha512-byzIC5M5FrEaW+GaPGQfPsobfwmEfzHvS7dh5d5fgY4VvvsHBkkhhF/H5xUG+1wQBcdBnqdKyp5CEFm8UEVfqg==} + /@jsii/spec@1.95.0: + resolution: {integrity: sha512-gQtNQHAvSYIsuOEt/Et256SNFJJhG4mpm4k6bwJ5BX2ibEAN4t0amAKjYslrYLhJo8iSGcMedh/YC9hOReL2Iw==} engines: {node: '>= 14.17.0'} dependencies: ajv: 8.12.0 @@ -4607,52 +4765,82 @@ packages: string-argv: 0.3.2 dev: true - /@sentry-internal/tracing@7.73.0: - resolution: {integrity: sha512-ig3WL/Nqp8nRQ52P205NaypGKNfIl/G+cIqge9xPW6zfRb5kJdM1YParw9GSJ1SPjEZBkBORGAML0on5H2FILw==} + /@sentry-internal/tracing@7.101.1: + resolution: {integrity: sha512-ihjWG8x4x0ozx6t+EHoXLKbsPrgzYLCpeBLWyS+M6n3hn6cmHM76c8nZw3ldhUQi5UYL3LFC/JZ50b4oSxtlrg==} engines: {node: '>=8'} dependencies: - '@sentry/core': 7.73.0 - '@sentry/types': 7.73.0 - '@sentry/utils': 7.73.0 - tslib: 2.5.0 + '@sentry/core': 7.101.1 + '@sentry/types': 7.101.1 + '@sentry/utils': 7.101.1 dev: false - /@sentry/core@7.73.0: - resolution: {integrity: sha512-9FEz4Gq848LOgVN2OxJGYuQqxv7cIVw69VlAzWHEm3njt8mjvlTq+7UiFsGRo84+59V2FQuHxzA7vVjl90WfSg==} + /@sentry-internal/tracing@7.102.1: + resolution: {integrity: sha512-RkFlFyAC0fQOvBbBqnq0CLmFW5m3JJz9pKbZd5vXPraWAlniKSb1bC/4DF9SlNx0FN1LWG+IU3ISdpzwwTeAGg==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.73.0 - '@sentry/utils': 7.73.0 - tslib: 2.5.0 + '@sentry/core': 7.102.1 + '@sentry/types': 7.102.1 + '@sentry/utils': 7.102.1 dev: false - /@sentry/node@7.73.0: - resolution: {integrity: sha512-i50bRfmgkRRx0XXUbg9jGD/RuznDJxJXc4rBILhoJuhl+BjRIaoXA3ayplfJn8JLZxsNh75uJaCq4IUK70SORw==} + /@sentry/core@7.101.1: + resolution: {integrity: sha512-XSmXXeYT1d4O14eDF3OXPJFUgaN2qYEeIGUztqPX9nBs9/ij8y/kZOayFqlIMnfGvjOUM+63sy/2xDBOpFn6ug==} engines: {node: '>=8'} dependencies: - '@sentry-internal/tracing': 7.73.0 - '@sentry/core': 7.73.0 - '@sentry/types': 7.73.0 - '@sentry/utils': 7.73.0 - cookie: 0.5.0 - https-proxy-agent: 5.0.1 - lru_map: 0.3.3 - tslib: 2.5.0 - transitivePeerDependencies: - - supports-color + '@sentry/types': 7.101.1 + '@sentry/utils': 7.101.1 dev: false - /@sentry/types@7.73.0: - resolution: {integrity: sha512-/v8++bly8jW7r4cP2wswYiiVpn7eLLcqwnfPUMeCQze4zj3F3nTRIKc9BGHzU0V+fhHa3RwRC2ksqTGq1oJMDg==} + /@sentry/core@7.102.1: + resolution: {integrity: sha512-QjY+LSP3du3J/C8x/FfEbRxgZgsWd0jfTJ4P7s9f219I1csK4OeBMC3UA1HwEa0pY/9OF6H/egW2CjOcMM5Pdg==} engines: {node: '>=8'} + dependencies: + '@sentry/types': 7.102.1 + '@sentry/utils': 7.102.1 dev: false - /@sentry/utils@7.73.0: - resolution: {integrity: sha512-h3ZK/qpf4k76FhJV9uiSbvMz3V/0Ovy94C+5/9UgPMVCJXFmVsdw8n/dwANJ7LupVPfYP23xFGgebDMFlK1/2w==} + /@sentry/node@7.101.1: + resolution: {integrity: sha512-iXSxUT6Zbt/KUY0+fRcW5II6Tgp2zdTfhBW+fQuDt/UUZt7Ypvb+6n4U2oom3LJfttmD7mdjQuT4+vsNImDjTQ==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.73.0 - tslib: 2.5.0 + '@sentry-internal/tracing': 7.101.1 + '@sentry/core': 7.101.1 + '@sentry/types': 7.101.1 + '@sentry/utils': 7.101.1 + dev: false + + /@sentry/node@7.102.1: + resolution: {integrity: sha512-mb3vmM3SGuCruckPiv/Vafeh89UQavTfpPFoU6Jwe6dSpQ39BO8fO8k8Zev+/nP6r/FKLtX17mJobErHECXsYw==} + engines: {node: '>=8'} + dependencies: + '@sentry-internal/tracing': 7.102.1 + '@sentry/core': 7.102.1 + '@sentry/types': 7.102.1 + '@sentry/utils': 7.102.1 + dev: false + + /@sentry/types@7.101.1: + resolution: {integrity: sha512-bwtkQvrCZ6JGc7vqX7TEAKBgkbQFORt84FFS3JQQb8G3efTt9fZd2ReY4buteKQdlALl8h1QWVngTLmI+kyUuw==} + engines: {node: '>=8'} + dev: false + + /@sentry/types@7.102.1: + resolution: {integrity: sha512-htKorf3t/D0XYtM7foTcmG+rM47rDP6XdbvCcX5gBCuCYlzpM1vqCt2rl3FLktZC6TaIpFRJw1TLfx6m+x5jdA==} + engines: {node: '>=8'} + dev: false + + /@sentry/utils@7.101.1: + resolution: {integrity: sha512-Nrg0nrEI3nrOCd9SLJ/WGzxS5KMQE4cryLOvrDcHJRWpsSyGBF1hLLerk84Nsw/0myMsn7zTYU+xoq7idNsX5A==} + engines: {node: '>=8'} + dependencies: + '@sentry/types': 7.101.1 + dev: false + + /@sentry/utils@7.102.1: + resolution: {integrity: sha512-+8WcFjHVV/HROXSAwMuUzveElBFC43EiTG7SNEBNgOUeQzQVTmbUZXyTVgLrUmtoWqvnIxCacoLxtZo1o67kdg==} + engines: {node: '>=8'} + dependencies: + '@sentry/types': 7.102.1 dev: false /@sideway/address@4.1.4: @@ -5937,13 +6125,15 @@ packages: resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==} dev: true - /@types/node@18.11.19: - resolution: {integrity: sha512-YUgMWAQBWLObABqrvx8qKO1enAvBUdjZOAWQ5grBAkp5LQv45jBvYKZ3oFS9iKRCQyFjqw6iuEa1vmFqtxYLZw==} - dev: false - /@types/node@18.18.6: resolution: {integrity: sha512-wf3Vz+jCmOQ2HV1YUJuCWdL64adYxumkrxtc+H1VUQlnQI04+5HtH+qZCOE21lBE7gIrt+CwX2Wv8Acrw5Ak6w==} + /@types/node@18.19.18: + resolution: {integrity: sha512-80CP7B8y4PzZF0GWx15/gVWRrB5y/bIjNI84NK3cmQJu0WZwvmj2WMA5LcofQFVfLqqCSp545+U2LsrVzX36Zg==} + dependencies: + undici-types: 5.26.5 + dev: false + /@types/node@20.10.4: resolution: {integrity: sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==} dependencies: @@ -5995,6 +6185,13 @@ packages: '@types/scheduler': 0.16.3 csstype: 3.1.2 + /@types/react@18.2.62: + resolution: {integrity: sha512-l3f57BbaEKP0xcFzf+5qRG8/PXykZiuVM6eEoPtqBPCp6dxO3HhDkLIgIyXPhPKNAeXn3KO2pEaNgzaEo/asaw==} + dependencies: + '@types/prop-types': 15.7.11 + '@types/scheduler': 0.16.3 + csstype: 3.1.2 + /@types/resolve@1.20.6: resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} dev: true @@ -6261,7 +6458,7 @@ packages: - supports-color dev: true - /@vitejs/plugin-react@4.2.1(vite@5.1.3): + /@vitejs/plugin-react@4.2.1(vite@5.1.4): resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -6272,7 +6469,7 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.7) '@types/babel__core': 7.20.5 react-refresh: 0.14.0 - vite: 5.1.3(@types/node@20.11.16) + vite: 5.1.4(@types/node@20.11.16) transitivePeerDependencies: - supports-color dev: false @@ -6409,12 +6606,31 @@ packages: vscode-uri: 3.0.8 dev: true + /@volar/kit@2.0.4(typescript@5.3.3): + resolution: {integrity: sha512-USRx/o0jKz7o8+lEKWMxWqbqvC46XFrf3IE6CZBYzRo9kM7RERQLwUYaoT2bOcHt5DQWublpnTgdgHMm37Gysg==} + peerDependencies: + typescript: '*' + dependencies: + '@volar/language-service': 2.0.4 + '@volar/typescript': 2.0.4 + typesafe-path: 0.2.2 + typescript: 5.3.3 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + dev: false + /@volar/language-core@1.11.1: resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} dependencies: '@volar/source-map': 1.11.1 dev: true + /@volar/language-core@2.0.4: + resolution: {integrity: sha512-VhC8i03P0x9LKGLTBi81xNTNWm40yxQ/Iba8IpH+LFr+Yb7c/D7fF90Cvf31MzPDM4G5rjIOlCfs+eQKPBkwQw==} + dependencies: + '@volar/source-map': 2.0.4 + dev: false + /@volar/language-server@1.11.1: resolution: {integrity: sha512-XYG4HcML2qimQV9UouQ7c1GuuqQw1NXoNDxAOAcfyYlz43P+HgzGQx4QEou+QMGHJeYIN86foDvkTN3fcopw9A==} dependencies: @@ -6430,6 +6646,22 @@ packages: vscode-uri: 3.0.8 dev: true + /@volar/language-server@2.0.4: + resolution: {integrity: sha512-VnljhooQjT6RhmvwwJK9+3YYs2ovFmav4IVNHiQgnTMfiOiyABzcghwvJrJrI39rJDI6LNOWF7BYUJq7K07BKQ==} + dependencies: + '@volar/language-core': 2.0.4 + '@volar/language-service': 2.0.4 + '@volar/snapshot-document': 2.0.4 + '@volar/typescript': 2.0.4 + '@vscode/l10n': 0.0.16 + path-browserify: 1.0.1 + request-light: 0.7.0 + vscode-languageserver: 9.0.1 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + dev: false + /@volar/language-service@1.11.1: resolution: {integrity: sha512-dKo8z1UzQRPHnlXxwfONGrasS1wEWXMoLQiohZ8KgWqZALbekZCwdGImLZD4DeFGNjk3HTTdfeCzo3KjwohjEQ==} dependencies: @@ -6440,12 +6672,34 @@ packages: vscode-uri: 3.0.8 dev: true + /@volar/language-service@2.0.4: + resolution: {integrity: sha512-DoanyU9I9Nl85lUytDl8jgyk+nrUDR5CFNVMrxWXGXclP4WTqBayBgSFAeF1L/5AwP3MywmWoK4GLAEVvl8D+Q==} + dependencies: + '@volar/language-core': 2.0.4 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + dev: false + + /@volar/snapshot-document@2.0.4: + resolution: {integrity: sha512-YzgdmvpdRFxiBFCOVWga67naAtbPtKmPaFtGnmxWx+KXrjGkpUXT/2tzeKn5FLdtoYV+DRTdpMdP/45ArnVwZQ==} + dependencies: + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + dev: false + /@volar/source-map@1.11.1: resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} dependencies: muggle-string: 0.3.1 dev: true + /@volar/source-map@2.0.4: + resolution: {integrity: sha512-BbxUinEMoJZqrHsSj1aBa0boCBnN3BoXnf7j9IBwjxosxGXOhCvqmH2L9raJemadaKjeVR8ZQLhV7AOhyoHt/Q==} + dependencies: + muggle-string: 0.4.1 + dev: false + /@volar/typescript@1.11.1: resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} dependencies: @@ -6453,6 +6707,13 @@ packages: path-browserify: 1.0.1 dev: true + /@volar/typescript@2.0.4: + resolution: {integrity: sha512-KF7yh7GIo4iWuAQOKf/ONeFHdQA+wFriitW8LtGZB4iOOT6MdlRlYNsRL8do7XxmXvsBKcs4jTMtGn+uZRwlWg==} + dependencies: + '@volar/language-core': 2.0.4 + path-browserify: 1.0.1 + dev: false + /@vscode/emmet-helper@2.9.2: resolution: {integrity: sha512-MaGuyW+fa13q3aYsluKqclmh62Hgp0BpKIqS66fCxfOaBcVQ1OnMQxRRgQUYnCkxFISAQlkJ0qWWPyXjro1Qrg==} dependencies: @@ -6461,11 +6722,13 @@ packages: vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 vscode-uri: 2.1.2 - dev: true /@vscode/l10n@0.0.16: resolution: {integrity: sha512-JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==} - dev: true + + /@vscode/l10n@0.0.18: + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + dev: false /@vue/compiler-core@3.4.14: resolution: {integrity: sha512-ro4Zzl/MPdWs7XwxT7omHRxAjMbDFRZEEjD+2m3NBf8YzAe3HuoSEZosXQo+m1GQ1G3LQ1LdmNh1RKTYe+ssEg==} @@ -6821,8 +7084,20 @@ packages: readable-stream: 3.6.2 dev: false - /archiver@5.3.1: - resolution: {integrity: sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==} + /archiver-utils@4.0.1: + resolution: {integrity: sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==} + engines: {node: '>= 12.0.0'} + dependencies: + glob: 8.1.0 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash: 4.17.21 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + dev: false + + /archiver@5.3.2: + resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} engines: {node: '>= 10'} dependencies: archiver-utils: 2.1.0 @@ -6834,17 +7109,17 @@ packages: zip-stream: 4.1.1 dev: false - /archiver@5.3.2: - resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} - engines: {node: '>= 10'} + /archiver@6.0.1: + resolution: {integrity: sha512-CXGy4poOLBKptiZH//VlWdFuUC1RESbdZjGjILwBuZ73P7WkAUN0htfSfBq/7k6FRFlpu7bg4JOkj1vU9G6jcQ==} + engines: {node: '>= 12.0.0'} dependencies: - archiver-utils: 2.1.0 + archiver-utils: 4.0.1 async: 3.2.4 buffer-crc32: 0.2.13 readable-stream: 3.6.2 readdir-glob: 1.1.3 - tar-stream: 2.2.0 - zip-stream: 4.1.1 + tar-stream: 3.1.6 + zip-stream: 5.0.2 dev: false /archy@1.0.0: @@ -7022,7 +7297,6 @@ packages: get-intrinsic: 1.2.2 is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 - dev: true /as-table@1.0.55: resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} @@ -7225,6 +7499,89 @@ packages: - typescript dev: false + /astro@4.4.11(@types/node@20.11.16)(typescript@5.3.3): + resolution: {integrity: sha512-mJ1k67xzAJO1vTTpATe76uSWhOgiEj3Id7narE6X2rMMOBjR8vJM+9Cmv/Wbpot6uMwFo780skUowlMptK96fQ==} + engines: {node: '>=18.14.1', npm: '>=6.14.0'} + hasBin: true + dependencies: + '@astrojs/compiler': 2.5.3 + '@astrojs/internal-helpers': 0.2.1 + '@astrojs/markdown-remark': 4.2.1 + '@astrojs/telemetry': 3.0.4 + '@babel/core': 7.23.7 + '@babel/generator': 7.23.6 + '@babel/parser': 7.23.6 + '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.23.7) + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 + '@medv/finder': 3.1.0 + '@types/babel__core': 7.20.5 + acorn: 8.11.3 + aria-query: 5.3.0 + axobject-query: 4.0.0 + boxen: 7.1.1 + chokidar: 3.5.3 + ci-info: 4.0.0 + clsx: 2.0.0 + common-ancestor-path: 1.0.1 + cookie: 0.6.0 + cssesc: 3.0.0 + debug: 4.3.4 + deterministic-object-hash: 2.0.2 + devalue: 4.3.2 + diff: 5.1.0 + dlv: 1.1.3 + dset: 3.1.3 + es-module-lexer: 1.4.1 + esbuild: 0.19.12 + estree-walker: 3.0.3 + execa: 8.0.1 + fast-glob: 3.3.2 + flattie: 1.1.0 + github-slugger: 2.0.0 + gray-matter: 4.0.3 + html-escaper: 3.0.3 + http-cache-semantics: 4.1.1 + js-yaml: 4.1.0 + kleur: 4.1.5 + magic-string: 0.30.7 + mdast-util-to-hast: 13.0.2 + mime: 3.0.0 + ora: 7.0.1 + p-limit: 5.0.0 + p-queue: 8.0.1 + path-to-regexp: 6.2.1 + preferred-pm: 3.1.2 + prompts: 2.4.2 + rehype: 13.0.1 + resolve: 1.22.8 + semver: 7.5.4 + shikiji: 0.9.19 + shikiji-core: 0.9.19 + string-width: 7.1.0 + strip-ansi: 7.1.0 + tsconfck: 3.0.0(typescript@5.3.3) + unist-util-visit: 5.0.0 + vfile: 6.0.1 + vite: 5.1.4(@types/node@20.11.16) + vitefu: 0.2.5(vite@5.1.4) + which-pm: 2.1.1 + yargs-parser: 21.1.1 + zod: 3.22.4 + optionalDependencies: + sharp: 0.32.6 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + - typescript + dev: false + /async-done@1.3.2: resolution: {integrity: sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==} engines: {node: '>= 0.10'} @@ -7330,7 +7687,6 @@ packages: resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} requiresBuild: true dev: false - optional: true /babel-core@7.0.0-bridge.0(@babel/core@7.23.7): resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} @@ -7588,6 +7944,7 @@ packages: /boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true /boxen@5.1.2: resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} @@ -7868,26 +8225,27 @@ packages: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} dev: false - /cdktf-cli@0.19.0(ink@3.2.0)(react@17.0.2): - resolution: {integrity: sha512-WGLs0IOgig8WDO2E6RYWtG5lCDL+ICX+plFipWT8JhuJpemxBhk8pO8uhDSWvBF85ZpVecQv+szfQVmXq8mdUg==} + /cdktf-cli@0.20.4(ink@3.2.0)(react@17.0.2): + resolution: {integrity: sha512-L4Z9cF5zG5gpEUf1zGXugmyRiQDFDlgreyqLUV3hedz4K54JFpV0CjH/NdAq4jqa150/1WimjnNwCjoygTxIBA==} hasBin: true dependencies: - '@cdktf/cli-core': 0.19.0(react@17.0.2) - '@cdktf/commons': 0.19.0 - '@cdktf/hcl2cdk': 0.19.0 - '@cdktf/hcl2json': 0.19.0 + '@cdktf/cli-core': 0.20.4(react@17.0.2) + '@cdktf/commons': 0.20.4(constructs@10.1.167) + '@cdktf/hcl-tools': 0.20.4 + '@cdktf/hcl2cdk': 0.20.4(constructs@10.1.167) + '@cdktf/hcl2json': 0.20.4 '@inquirer/prompts': 2.3.1 - '@sentry/node': 7.73.0 - cdktf: 0.19.0(constructs@10.3.0) + '@sentry/node': 7.101.1 + cdktf: 0.20.4(constructs@10.1.167) ci-info: 3.9.0 - codemaker: 1.89.0 - constructs: 10.3.0 + codemaker: 1.94.0 + constructs: 10.1.167 cross-spawn: 7.0.3 https-proxy-agent: 5.0.1 ink-select-input: 4.2.2(ink@3.2.0)(react@17.0.2) - ink-table: 3.0.0(ink@3.2.0)(react@17.0.2) - jsii: 5.1.12 - jsii-pacmak: 1.89.0 + ink-table: 3.1.0(ink@3.2.0)(react@17.0.2) + jsii: 5.3.19 + jsii-pacmak: 1.94.0 minimatch: 5.1.6 node-fetch: 2.7.0 pidtree: 0.6.0 @@ -7896,7 +8254,7 @@ packages: xml-js: 1.6.11 yargs: 17.7.2 yoga-layout-prebuilt: 1.10.0 - zod: 1.11.17 + zod: 3.22.4 transitivePeerDependencies: - '@types/react' - bufferutil @@ -7908,15 +8266,30 @@ packages: - utf-8-validate dev: false - /cdktf@0.19.0(constructs@10.3.0): - resolution: {integrity: sha512-5tcNhvrvsE9WawC5cPwV7B9ATQ5lWNjyCJN7EnMofxTtkBEdnnGx0esC+vpNO4Fs0LhmV37qCUlm+K6anZaPYw==} + /cdktf@0.20.4(constructs@10.1.167): + resolution: {integrity: sha512-4vgJ8TLik1xse5B8gMcWoE2DkdnkhiTVVyvE+j7dNoCpDApqkINY8MpiZjgCQ4HQ2H/wjRrVAD80bV9JaHixRQ==} + peerDependencies: + constructs: ^10.0.25 + dependencies: + archiver: 6.0.1 + constructs: 10.1.167 + json-stable-stringify: 1.1.1 + semver: 7.6.0 + dev: false + bundledDependencies: + - archiver + - json-stable-stringify + - semver + + /cdktf@0.20.4(constructs@10.3.0): + resolution: {integrity: sha512-4vgJ8TLik1xse5B8gMcWoE2DkdnkhiTVVyvE+j7dNoCpDApqkINY8MpiZjgCQ4HQ2H/wjRrVAD80bV9JaHixRQ==} peerDependencies: constructs: ^10.0.25 dependencies: - archiver: 5.3.1 + archiver: 6.0.1 constructs: 10.3.0 - json-stable-stringify: 1.0.2 - semver: 7.5.4 + json-stable-stringify: 1.1.1 + semver: 7.6.0 dev: false bundledDependencies: - archiver @@ -8003,6 +8376,7 @@ packages: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.1.0 + dev: true /cheerio@1.0.0-rc.12: resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} @@ -8015,6 +8389,7 @@ packages: htmlparser2: 8.0.2 parse5: 7.1.2 parse5-htmlparser2-tree-adapter: 7.0.0 + dev: true /chokidar@2.1.8: resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} @@ -8051,6 +8426,21 @@ packages: optionalDependencies: fsevents: 2.3.3 + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: false + /chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} requiresBuild: true @@ -8138,13 +8528,13 @@ packages: restore-cursor: 4.0.0 dev: false - /cli-spinners@2.7.0: - resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} + /cli-spinners@2.9.1: + resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} engines: {node: '>=6'} dev: false - /cli-spinners@2.9.1: - resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} dev: false @@ -8257,8 +8647,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /codemaker@1.89.0: - resolution: {integrity: sha512-Jh9ZrMxzX+jbzNvuHNlmEjXUYMSGVNW151SV2aOXU01V3bMjaSP+exfHFsYQ66x/zGEWcjh33pAu2rY44hyYIQ==} + /codemaker@1.94.0: + resolution: {integrity: sha512-V+896C7RojQVfG0UlOXaFfVVxmFb08rPtJvzcxhdJfowc2o6xGwGG0OpWSLHy6fQrmt4BxLXnKZ6Xeuqt4aKjw==} engines: {node: '>= 14.17.0'} dependencies: camelcase: 6.3.0 @@ -8390,6 +8780,16 @@ packages: string.prototype.repeat: 0.2.0 dev: false + /commonmark@0.31.0: + resolution: {integrity: sha512-nuDsQ34gjmgAqjyIz6mbRWBW/XPE9wsBempAMBk2V/AA88ekztjTM46oi07J6c6Y/2Y8TdYCZi9L0pIBt/oMZw==} + hasBin: true + dependencies: + entities: 3.0.1 + mdurl: 1.0.1 + minimist: 1.2.8 + string.prototype.repeat: 1.0.0 + dev: false + /component-emitter@1.3.0: resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} dev: true @@ -8404,6 +8804,16 @@ packages: readable-stream: 3.6.2 dev: false + /compress-commons@5.0.3: + resolution: {integrity: sha512-/UIcLWvwAQyVibgpQDPtfNM3SvqN7G9elAPAV7GM0L53EbNWwWiCsWtK8Fwed/APEbptPHXs5PuW+y8Bq8lFTA==} + engines: {node: '>= 12.0.0'} + dependencies: + crc-32: 1.2.2 + crc32-stream: 5.0.1 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + dev: false + /compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -8470,6 +8880,11 @@ packages: engines: {node: ^14.18.0 || >=16.10.0} dev: false + /constructs@10.1.167: + resolution: {integrity: sha512-zGt88EmcJUtWbd/sTM9GKcHRjYWzEx5jzMYuK69vl25Dj01sJAc7uF6AEJgZBtlLAc3VnRUvzgitHwmJkS9BFw==} + engines: {node: '>= 14.17.0'} + dev: false + /constructs@10.3.0: resolution: {integrity: sha512-vbK8i3rIb/xwZxSpTjz3SagHn1qq9BChLEfy5Hf6fB3/2eFbrwt2n9kHwQcS0CPTRBesreeAcsJfMq2229FnbQ==} engines: {node: '>= 16.14.0'} @@ -8549,6 +8964,14 @@ packages: readable-stream: 3.6.2 dev: false + /crc32-stream@5.0.1: + resolution: {integrity: sha512-lO1dFui+CEUh/ztYIpgpKItKW9Bb4NWakCRJrnqAbFIYD+OZAwb2VfD5T5eXMw2FNcsDHkQcNl/Wh3iVXYwU6g==} + engines: {node: '>= 12.0.0'} + dependencies: + crc-32: 1.2.2 + readable-stream: 3.6.2 + dev: false + /create-jest@29.7.0(@types/node@20.11.16)(ts-node@10.9.2): resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8630,6 +9053,7 @@ packages: domhandler: 5.0.3 domutils: 3.1.0 nth-check: 2.1.1 + dev: true /css-tree@2.2.1: resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} @@ -8642,6 +9066,7 @@ packages: /css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} + dev: true /css.escape@1.5.1: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} @@ -8810,29 +9235,6 @@ packages: type-detect: 4.0.8 dev: true - /deep-equal@2.2.2: - resolution: {integrity: sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==} - dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.5 - es-get-iterator: 1.1.3 - get-intrinsic: 1.2.2 - is-arguments: 1.1.1 - is-array-buffer: 3.0.2 - is-date-object: 1.0.5 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - isarray: 2.0.5 - object-is: 1.1.5 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.5.1 - side-channel: 1.0.4 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.1 - which-typed-array: 1.1.13 - dev: false - /deep-equal@2.2.3: resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} engines: {node: '>= 0.4'} @@ -9120,6 +9522,7 @@ packages: domelementtype: 2.3.0 domhandler: 5.0.3 entities: 4.5.0 + dev: true /domelementtype@1.3.1: resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} @@ -9127,6 +9530,7 @@ packages: /domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true /domhandler@2.4.2: resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} @@ -9139,6 +9543,7 @@ packages: engines: {node: '>= 4'} dependencies: domelementtype: 2.3.0 + dev: true /domutils@1.7.0: resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} @@ -9153,6 +9558,7 @@ packages: dom-serializer: 2.0.0 domelementtype: 2.3.0 domhandler: 5.0.3 + dev: true /dotenv-expand@10.0.0: resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} @@ -9166,9 +9572,9 @@ packages: resolution: {integrity: sha512-vo835pntK7kzYStk7xUHDifiYJvXxVhUapt85uk2AI94gUUAQX9HNRtrcMHNSc3YHJUEHGbYIGsM99uIbgAtxw==} hasBin: true dependencies: - semver: 7.5.4 + semver: 7.6.0 shelljs: 0.8.5 - typescript: 5.5.0-dev.20240226 + typescript: 5.5.0-dev.20240305 dev: false /dset@3.1.3: @@ -9227,7 +9633,6 @@ packages: dependencies: '@emmetio/abbreviation': 2.3.3 '@emmetio/css-abbreviation': 2.1.8 - dev: true /emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} @@ -9261,6 +9666,11 @@ packages: /entities@2.0.3: resolution: {integrity: sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==} + /entities@3.0.1: + resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} + engines: {node: '>=0.12'} + dev: false + /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -9319,7 +9729,6 @@ packages: typed-array-length: 1.0.4 unbox-primitive: 1.0.2 which-typed-array: 1.1.13 - dev: true /es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} @@ -9368,7 +9777,6 @@ packages: get-intrinsic: 1.2.2 has-tostringtag: 1.0.0 hasown: 2.0.0 - dev: true /es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} @@ -9383,7 +9791,6 @@ packages: is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 - dev: true /es5-ext@0.10.62: resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} @@ -9929,7 +10336,6 @@ packages: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} requiresBuild: true dev: false - optional: true /fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} @@ -10203,16 +10609,6 @@ packages: readable-stream: 2.3.8 dev: true - /follow-redirects@1.15.3: - resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: false - /follow-redirects@1.15.5: resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} engines: {node: '>=4.0'} @@ -10221,7 +10617,6 @@ packages: peerDependenciesMeta: debug: optional: true - dev: true /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -10313,6 +10708,15 @@ packages: jsonfile: 6.1.0 universalify: 2.0.0 + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: false + /fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -10397,7 +10801,6 @@ packages: define-properties: 1.2.1 es-abstract: 1.22.3 functions-have-names: 1.2.3 - dev: true /functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} @@ -10480,7 +10883,6 @@ packages: dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 - dev: true /get-value@2.0.6: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} @@ -10611,6 +11013,17 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + dev: false + /global-modules@0.2.3: resolution: {integrity: sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==} engines: {node: '>=0.10.0'} @@ -10665,7 +11078,6 @@ packages: engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 - dev: true /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} @@ -11117,6 +11529,7 @@ packages: domhandler: 5.0.3 domutils: 3.1.0 entities: 4.5.0 + dev: true /http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} @@ -11317,13 +11730,13 @@ packages: ink: '>=3.0.5' react: '>=16.8.2' dependencies: - cli-spinners: 2.9.1 + cli-spinners: 2.9.2 ink: 3.2.0(react@17.0.2) react: 17.0.2 dev: false - /ink-table@3.0.0(ink@3.2.0)(react@17.0.2): - resolution: {integrity: sha512-RtcYjenHKZWjnwVNQ6zSYWMOLKwkWscDAJsqUQXftyjkYho1gGrluGss87NOoIzss0IKr74lKasd6MtlQYALiA==} + /ink-table@3.1.0(ink@3.2.0)(react@17.0.2): + resolution: {integrity: sha512-qxVb4DIaEaJryvF9uZGydnmP9Hkmas3DCKVpEcBYC0E4eJd3qNgNe+PZKuzgCERFe9LfAS1TNWxCr9+AU4v3YA==} peerDependencies: ink: '>=3.0.0' react: '>=16.8.0' @@ -11686,7 +12099,6 @@ packages: /is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} - dev: true /is-number-object@1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} @@ -11831,7 +12243,7 @@ packages: /is-valid-domain@0.1.6: resolution: {integrity: sha512-ZKtq737eFkZr71At8NxOFcP9O1K89gW3DkdrGMpp1upr/ueWjj+Weh4l9AI4rN0Gt8W2M1w7jrG2b/Yv83Ljpg==} dependencies: - punycode: 2.3.0 + punycode: 2.3.1 dev: false /is-valid-glob@1.0.0: @@ -11846,7 +12258,6 @@ packages: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.5 - dev: true /is-weakset@2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} @@ -12734,104 +13145,104 @@ packages: engines: {node: '>=4'} hasBin: true - /jsii-pacmak@1.89.0: - resolution: {integrity: sha512-fEvXWBdIOz1WyPrpZRbDaaV1f3UyAN8vYIhzH8mtLklsdFUkS3SZdfFJWEKsa6gjILT+4/CqBtLOEZE0iHy0bg==} + /jsii-pacmak@1.94.0: + resolution: {integrity: sha512-L5s3RZ0AOx1XfAhXsEjyeCteVrw6nwJLynL+t93eXVDcw7NFT7S0fCFXzQ4lpYQ23P/yVpSIy32J3zpUOf4uDQ==} engines: {node: '>= 14.17.0'} hasBin: true dependencies: - '@jsii/check-node': 1.89.0 - '@jsii/spec': 1.89.0 + '@jsii/check-node': 1.94.0 + '@jsii/spec': 1.95.0 clone: 2.1.2 - codemaker: 1.89.0 + codemaker: 1.94.0 commonmark: 0.30.0 escape-string-regexp: 4.0.0 fs-extra: 10.1.0 - jsii-reflect: 1.89.0 - jsii-rosetta: 1.89.0 + jsii-reflect: 1.95.0 + jsii-rosetta: 1.95.0 semver: 7.5.4 - spdx-license-list: 6.7.0 + spdx-license-list: 6.9.0 xmlbuilder: 15.1.1 yargs: 16.2.0 transitivePeerDependencies: - supports-color dev: false - /jsii-reflect@1.89.0: - resolution: {integrity: sha512-05g0fUVot46rPGXYWzB3q4w2Cx2Ox7pzWfsGuIz6Kql/d9KoAFWMuGjwQbSbrI2I52RPKfTbM8wATzzp6Q5kdQ==} + /jsii-reflect@1.95.0: + resolution: {integrity: sha512-/o/UdqX1MtOmavwAF+cqMAHs7Ewi/j2a9PVGYTzi3U4M5Cvxsyrk7e1EWKvw/NHK0JZmmKd1UqE0Mz5EHqZSxw==} engines: {node: '>= 14.17.0'} hasBin: true dependencies: - '@jsii/check-node': 1.89.0 - '@jsii/spec': 1.89.0 + '@jsii/check-node': 1.95.0 + '@jsii/spec': 1.95.0 chalk: 4.1.2 fs-extra: 10.1.0 - oo-ascii-tree: 1.89.0 + oo-ascii-tree: 1.95.0 yargs: 16.2.0 dev: false - /jsii-rosetta@1.89.0: - resolution: {integrity: sha512-1hmLO+LtZ6bf2uvYW45YaRBQJD+rVondVkWfT2Ex9xYrkxAsc4304TV2DoQILfZbkaUPezyJ3ejGFlMhliNG0g==} + /jsii-rosetta@1.95.0: + resolution: {integrity: sha512-J9tQy6wT7ERgXC73ubjWmkp8EO5SHPn9eDkTKLmAi+AkMAOAJEb1oxaA1bKPBf/2SQp6wDU5TUfEpx6ukSmc1g==} engines: {node: '>= 14.17.0'} hasBin: true dependencies: - '@jsii/check-node': 1.89.0 - '@jsii/spec': 1.89.0 + '@jsii/check-node': 1.95.0 + '@jsii/spec': 1.95.0 '@xmldom/xmldom': 0.8.10 commonmark: 0.30.0 fast-glob: 3.3.2 - jsii: 1.89.0 + jsii: 1.95.0 semver: 7.5.4 semver-intersect: 1.4.0 stream-json: 1.8.0 typescript: 3.9.10 - workerpool: 6.5.0 + workerpool: 6.5.1 yargs: 16.2.0 transitivePeerDependencies: - supports-color dev: false - /jsii-rosetta@5.1.13: - resolution: {integrity: sha512-EmtQU/Q5ex/e2XmysU1ZdEW3vK4feEPDXaivRj5Cf284fuEcWINcD38oPYog0XofPdqeBbf0n+EciBitoEhKGA==} - engines: {node: '>= 16.14.0'} + /jsii-rosetta@5.3.19: + resolution: {integrity: sha512-+fQ62AbrgDDN7i6dC6JILVFFOppCABpnzS/eEtbGSMdSy5EF+5kfl61D3UJJEloG+an/WS3VwuiEu1POG1tVkA==} + engines: {node: '>= 18.12.0'} hasBin: true dependencies: - '@jsii/check-node': 1.88.0 - '@jsii/spec': 1.89.0 + '@jsii/check-node': 1.94.0 + '@jsii/spec': 1.95.0 '@xmldom/xmldom': 0.8.10 chalk: 4.1.2 - commonmark: 0.30.0 + commonmark: 0.31.0 fast-glob: 3.3.2 - jsii: 5.1.12 - semver: 7.5.4 - semver-intersect: 1.4.0 + jsii: 5.3.19 + semver: 7.6.0 + semver-intersect: 1.5.0 stream-json: 1.8.0 - typescript: 5.1.6 - workerpool: 6.5.0 + typescript: 5.3.3 + workerpool: 6.5.1 yargs: 17.7.2 transitivePeerDependencies: - supports-color dev: false - /jsii-srcmak@0.1.951: - resolution: {integrity: sha512-zaKqrsR416yX+QhE1T4mkBWqPpsHQmBnBbsR0f5a32Uknr3+l4PCVtuV5/rgthAG6iE4Pa6c/jO0vcTzyzEY6A==} + /jsii-srcmak@0.1.1039: + resolution: {integrity: sha512-3lBjyxBy5UpPGK8bXFmVRzaoK6caDQ5DO40Qbyv3LOWtrsuUQmuVI2/5wRwNtfg6sFzOFD3+kE3LZuNXo7QE/Q==} hasBin: true dependencies: fs-extra: 9.1.0 - jsii: 5.1.12 - jsii-pacmak: 1.89.0 + jsii: 5.3.19 + jsii-pacmak: 1.94.0 ncp: 2.0.0 yargs: 15.4.1 transitivePeerDependencies: - supports-color dev: false - /jsii@1.89.0: - resolution: {integrity: sha512-NOeltDlkRSu7OXpNS8I4izFtcVKsMppn0pbqM07LWHXrNZT0Y7c/dDtuMyYRIDNcwB6aLtOzLHfls9rd6qrLyg==} + /jsii@1.95.0: + resolution: {integrity: sha512-GvBqcZrhKZ5WV6u44w88aFym8G4Xkw9QRZuAAGYHOFJWiK/fyqeRPPgPkEBqfE+xs412JvGVdejUodKLlhEP9w==} engines: {node: '>= 14.17.0'} hasBin: true dependencies: - '@jsii/check-node': 1.89.0 - '@jsii/spec': 1.89.0 + '@jsii/check-node': 1.95.0 + '@jsii/spec': 1.95.0 case: 1.6.3 chalk: 4.1.2 fast-deep-equal: 3.1.3 @@ -12840,30 +13251,30 @@ packages: semver: 7.5.4 semver-intersect: 1.4.0 sort-json: 2.0.1 - spdx-license-list: 6.7.0 + spdx-license-list: 6.9.0 typescript: 3.9.10 yargs: 16.2.0 transitivePeerDependencies: - supports-color dev: false - /jsii@5.1.12: - resolution: {integrity: sha512-iY3zLosUEKbeua6IAGJXjFxibiiI0xHFjyYPyewOc56MBRHC7nczWSVGRP+Jgwyo7HWXs4TvJKLG6w8zSuAZrg==} - engines: {node: '>= 16.14.0'} + /jsii@5.3.19: + resolution: {integrity: sha512-rc8kkEvnthCG0DS1TK+NY+cl+fkH+OJ4FHCs6o3a8sO2zekMOYb09uJDVHHbxBMlIJXuNKhpp+UYehVnHFkmIA==} + engines: {node: '>= 18.12.0'} hasBin: true dependencies: - '@jsii/check-node': 1.88.0 - '@jsii/spec': 1.89.0 + '@jsii/check-node': 1.94.0 + '@jsii/spec': 1.95.0 case: 1.6.3 chalk: 4.1.2 downlevel-dts: 0.11.0 fast-deep-equal: 3.1.3 log4js: 6.9.1 - semver: 7.5.4 - semver-intersect: 1.4.0 + semver: 7.6.0 + semver-intersect: 1.5.0 sort-json: 2.0.1 - spdx-license-list: 6.7.0 - typescript: 5.1.6 + spdx-license-list: 6.9.0 + typescript: 5.3.3 yargs: 17.7.2 transitivePeerDependencies: - supports-color @@ -12892,10 +13303,14 @@ packages: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /json-stable-stringify@1.0.2: - resolution: {integrity: sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==} + /json-stable-stringify@1.1.1: + resolution: {integrity: sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==} + engines: {node: '>= 0.4'} dependencies: + call-bind: 1.0.5 + isarray: 2.0.5 jsonify: 0.0.1 + object-keys: 1.1.1 dev: false /json-stringify-safe@5.0.1: @@ -12909,7 +13324,6 @@ packages: /jsonc-parser@2.3.1: resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} - dev: true /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} @@ -13261,10 +13675,6 @@ packages: es5-ext: 0.10.62 dev: true - /lru_map@0.3.3: - resolution: {integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==} - dev: false - /lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -14032,6 +14442,10 @@ packages: resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} dev: true + /muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + dev: false + /mute-stdout@1.0.1: resolution: {integrity: sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==} engines: {node: '>= 0.10'} @@ -14343,6 +14757,7 @@ packages: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 + dev: true /number-is-nan@1.0.1: resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} @@ -14553,8 +14968,8 @@ packages: mimic-fn: 4.0.0 dev: false - /oo-ascii-tree@1.89.0: - resolution: {integrity: sha512-HRFmdGyLTO/xUo9XNHwa8ColVVP6IEeeRKcxbzRIbgRpPcIiDGo99ShecJdkaXOyR+q4Wi6hiX5b7yrsBI/gxA==} + /oo-ascii-tree@1.95.0: + resolution: {integrity: sha512-e9LWcjDtQIwFHICbeAjv2+RGJUFu3+A6oTjpymH+gfxATqPqcUV5oeGON9a/1uBr8Q0bc2/yEHVp1A/dp1iaog==} engines: {node: '>= 14.17.0'} dev: false @@ -14828,6 +15243,7 @@ packages: dependencies: domhandler: 5.0.3 parse5: 7.1.2 + dev: true /parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} @@ -14855,7 +15271,6 @@ packages: /path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - dev: true /path-dirname@1.0.2: resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} @@ -15260,7 +15675,6 @@ packages: resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} engines: {node: '>=14'} hasBin: true - dev: true /pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} @@ -15396,6 +15810,7 @@ packages: /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} + dev: true /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} @@ -15448,7 +15863,6 @@ packages: resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} requiresBuild: true dev: false - optional: true /quick-lru@4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} @@ -16064,7 +16478,6 @@ packages: /request-light@0.7.0: resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} - dev: true /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} @@ -16313,7 +16726,6 @@ packages: get-intrinsic: 1.2.2 has-symbols: 1.0.3 isarray: 2.0.5 - dev: true /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -16337,7 +16749,6 @@ packages: call-bind: 1.0.5 get-intrinsic: 1.2.2 is-regex: 1.1.4 - dev: true /safe-regex@1.1.0: resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} @@ -16497,6 +16908,12 @@ packages: semver: 5.7.2 dev: false + /semver-intersect@1.5.0: + resolution: {integrity: sha512-BDjWX7yCC0haX4W/zrnV2JaMpVirwaEkGOBmgRQtH++F1N3xl9v7k9H44xfTqwl+yLNNSbMKosoVSTIiJVQ2Pw==} + dependencies: + semver: 6.3.1 + dev: false + /semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true @@ -16512,6 +16929,14 @@ packages: dependencies: lru-cache: 6.0.0 + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: false + /send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -16888,8 +17313,8 @@ packages: /spdx-license-ids@3.0.16: resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} - /spdx-license-list@6.7.0: - resolution: {integrity: sha512-NFqavuJxNsHdwSy/0PjmUpcc76XwlmHQRPjVVtE62qmSLhKJUnzSvJCkU9nrY6TsChfGU1xqGePriBkNtNRMiA==} + /spdx-license-list@6.9.0: + resolution: {integrity: sha512-L2jl5vc2j6jxWcNCvcVj/BW9A8yGIG02Dw+IUw0ZxDM70f7Ylf5Hq39appV1BI9yxyWQRpq2TQ1qaXvf+yjkqA==} engines: {node: '>=8'} dev: false @@ -17032,7 +17457,6 @@ packages: fast-fifo: 1.3.2 queue-tick: 1.0.1 dev: false - optional: true /string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} @@ -17124,6 +17548,13 @@ packages: resolution: {integrity: sha512-1BH+X+1hSthZFW+X+JaUkjkkUPwIlLEMJBLANN3hOob3RhEk5snLWNECDnYbgn/m5c5JV7Ersu1Yubaf+05cIA==} dev: false + /string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: false + /string.prototype.trim@1.2.8: resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} @@ -17131,7 +17562,6 @@ packages: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - dev: true /string.prototype.trimend@1.0.7: resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} @@ -17139,7 +17569,6 @@ packages: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - dev: true /string.prototype.trimstart@1.0.7: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} @@ -17147,7 +17576,6 @@ packages: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - dev: true /string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} @@ -17338,7 +17766,6 @@ packages: fast-fifo: 1.3.2 streamx: 2.15.1 dev: false - optional: true /tar@6.2.0: resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} @@ -17877,7 +18304,6 @@ packages: call-bind: 1.0.5 get-intrinsic: 1.2.2 is-typed-array: 1.1.12 - dev: true /typed-array-byte-length@1.0.0: resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} @@ -17887,7 +18313,6 @@ packages: for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 - dev: true /typed-array-byte-offset@1.0.0: resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} @@ -17898,7 +18323,6 @@ packages: for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 - dev: true /typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} @@ -17906,7 +18330,6 @@ packages: call-bind: 1.0.5 for-each: 0.3.3 is-typed-array: 1.1.12 - dev: true /typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} @@ -17919,7 +18342,6 @@ packages: /typesafe-path@0.2.2: resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} - dev: true /typescript-auto-import-cache@0.3.0: resolution: {integrity: sha512-Rq6/q4O9iyqUdjvOoyas7x/Qf9nWUMeqpP3YeTaLA+uECgfy5wOhfOS+SW/+fZ/uI/ZcKaf+2/ZhFzXh8xfofQ==} @@ -17927,25 +18349,25 @@ packages: semver: 7.5.4 dev: true + /typescript-auto-import-cache@0.3.2: + resolution: {integrity: sha512-+laqe5SFL1vN62FPOOJSUDTZxtgsoOXjneYOXIpx5rQ4UMiN89NAtJLpqLqyebv9fgQ/IMeeTX+mQyRnwvJzvg==} + dependencies: + semver: 7.5.4 + dev: false + /typescript@3.9.10: resolution: {integrity: sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==} engines: {node: '>=4.2.0'} hasBin: true dev: false - /typescript@5.1.6: - resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} - engines: {node: '>=14.17'} - hasBin: true - dev: false - /typescript@5.3.3: resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} hasBin: true - /typescript@5.5.0-dev.20240226: - resolution: {integrity: sha512-mLY9/pjzSCr7JLkMKHS3KQUKX+LPO9WWjiR+mRcWKcskSdMBZ0j1TPhk/zUyuBklOf3YX4orkvamNiZWZEK0CQ==} + /typescript@5.5.0-dev.20240305: + resolution: {integrity: sha512-ERkltjdukpttYHdXPg6cQAeuQrK1BIZ/QnNXLljBx5r90B+8lZ7pZ1qCL/XHHsUEi0lkVLpf9LPfwEYxie3qcA==} engines: {node: '>=14.17'} hasBin: true dev: false @@ -17976,7 +18398,6 @@ packages: has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - dev: true /unc-path-regex@0.1.2: resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} @@ -18617,6 +19038,42 @@ packages: fsevents: 2.3.3 dev: false + /vite@5.1.4(@types/node@20.11.16): + resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.11.16 + esbuild: 0.19.12 + postcss: 8.4.35 + rollup: 4.9.5 + optionalDependencies: + fsevents: 2.3.3 + dev: false + /vitefu@0.2.5(vite@5.0.12): resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: @@ -18639,6 +19096,17 @@ packages: vite: 5.1.3(@types/node@20.11.16) dev: false + /vitefu@0.2.5(vite@5.1.4): + resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + vite: + optional: true + dependencies: + vite: 5.1.4(@types/node@20.11.16) + dev: false + /vitest-github-actions-reporter@0.11.1(vitest@0.34.6): resolution: {integrity: sha512-ZHHB0wBgOPhMYCB17WKVlJZa+5SdudBZFoVoebwfq3ioIUTeLQGYHwh85vpdJAxRghLP8d0qI/6eCTueGyDVXA==} engines: {node: '>=14.16.0'} @@ -18739,6 +19207,19 @@ packages: vscode-uri: 3.0.8 dev: true + /volar-service-css@0.0.30(@volar/language-service@2.0.4): + resolution: {integrity: sha512-jui+1N0HBfjW43tRfhyZp0axhBee4997BRyX4os8xQm/7cjD2KjAuyz92nMIPRt1QDoG4/7uQT28xNhy0TPJTA==} + peerDependencies: + '@volar/language-service': ~2.0.1 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 2.0.4 + vscode-css-languageservice: 6.2.10 + vscode-uri: 3.0.8 + dev: false + /volar-service-emmet@0.0.17(@volar/language-service@1.11.1): resolution: {integrity: sha512-C6hVnuQL52MqaydkrblYUbzIo5ZmIGo1hR8wmpcCjs5uNcjqn8aPqZRfznhLiUSaPHpFC+zQxJwFcZI9/u2iKQ==} peerDependencies: @@ -18752,6 +19233,19 @@ packages: volar-service-html: 0.0.17(@volar/language-service@1.11.1) dev: true + /volar-service-emmet@0.0.30(@volar/language-service@2.0.4): + resolution: {integrity: sha512-HEeIrmqQ/DTfuQDI9ER5+YReXXjE9f7W6MlBmn5biUuPyizVTGfuILN8pJhmYvmPHCA7qHhU7CJqwE9DAh9AJg==} + peerDependencies: + '@volar/language-service': ~2.0.1 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 2.0.4 + '@vscode/emmet-helper': 2.9.2 + volar-service-html: 0.0.30(@volar/language-service@2.0.4) + dev: false + /volar-service-html@0.0.17(@volar/language-service@1.11.1): resolution: {integrity: sha512-OGkP+ZTo13j/+enafGe+esXvda/W4eU78YNLbbHxtV3rnX4odVrewenLJmXiECg6wdQz/PG8rLijZqQnDUYkfw==} peerDependencies: @@ -18765,6 +19259,19 @@ packages: vscode-uri: 3.0.8 dev: true + /volar-service-html@0.0.30(@volar/language-service@2.0.4): + resolution: {integrity: sha512-wW3TEeRTeHv/3mC8Ik6T62SwewMWFungb8ydyEK/2GDHEntBEG/J9wtuh01/J0kYqPerhlT9zhdGB6PGYHAGuA==} + peerDependencies: + '@volar/language-service': ~2.0.1 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 2.0.4 + vscode-html-languageservice: 5.1.2 + vscode-uri: 3.0.8 + dev: false + /volar-service-prettier@0.0.17(@volar/language-service@1.11.1)(prettier@3.2.5): resolution: {integrity: sha512-YYnzZ+OT0M3Bx+xKuoAfs/uVuxk7ofz4dkZDQqjwa9iC63Ay4YGqONtmHd+xsO3lufkEBXlAQCbofDeZbSz3YQ==} peerDependencies: @@ -18780,6 +19287,22 @@ packages: prettier: 3.2.5 dev: true + /volar-service-prettier@0.0.30(@volar/language-service@2.0.4)(prettier@3.2.5): + resolution: {integrity: sha512-Qdc5Zc0y4hJmJbpIQ52cSDjs0uvVug/e2nuL/XZWPJM6Cr5/3RjjoRVKtDQbKItFYlGk+JH+LSXvwQeD5TXZqg==} + peerDependencies: + '@volar/language-service': ~2.0.1 + prettier: ^2.2 || ^3.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + prettier: + optional: true + dependencies: + '@volar/language-service': 2.0.4 + prettier: 3.2.5 + vscode-uri: 3.0.8 + dev: false + /volar-service-typescript-twoslash-queries@0.0.17(@volar/language-service@1.11.1): resolution: {integrity: sha512-6FHXK5AWeFzCL6uGmEcbkZmQsaQ0m9IjbeLdgOIQ4KGvauqT2aA1BhdfDJu6vRAFIfXe7xjEJ85keIlHl72tSA==} peerDependencies: @@ -18791,6 +19314,17 @@ packages: '@volar/language-service': 1.11.1 dev: true + /volar-service-typescript-twoslash-queries@0.0.30(@volar/language-service@2.0.4): + resolution: {integrity: sha512-ahj6woBxhkZu7icQR58x5TnUaS8ZRKn7a+UvY+andmiTWsOaSu85zj36+LPZgZQi1MG+BtjNwUjKoxtZiN51PA==} + peerDependencies: + '@volar/language-service': ~2.0.1 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 2.0.4 + dev: false + /volar-service-typescript@0.0.17(@volar/language-service@1.11.1)(@volar/typescript@1.11.1): resolution: {integrity: sha512-Krs8pOIo2yoBVoJ91hKT1czhWt9ek7EbuK3MxxgvDYdd4HYHOtHi1eOlb7bFnZMNgFcwsL48yQI9vbPm160s9A==} peerDependencies: @@ -18810,6 +19344,25 @@ packages: vscode-uri: 3.0.8 dev: true + /volar-service-typescript@0.0.30(@volar/language-service@2.0.4)(@volar/typescript@2.0.4): + resolution: {integrity: sha512-jA8c0Mhy9rgAsrgtwocK95Smws1M2E0MxlQ/SVo/rmOGH32cX9UGgI0IENWKa3yagp/khfoemOIQDz/KNhI3zg==} + peerDependencies: + '@volar/language-service': ~2.0.1 + '@volar/typescript': ~2.0.1 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 2.0.4 + '@volar/typescript': 2.0.4 + path-browserify: 1.0.1 + semver: 7.5.4 + typescript-auto-import-cache: 0.3.2 + vscode-languageserver-textdocument: 1.0.11 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + dev: false + /vscode-css-languageservice@6.2.10: resolution: {integrity: sha512-sYUZPku4mQ06AWGCbMyjv2tdR6juBW6hTbVPFwbJvNVzdtEfBioQOgkdXg7yMJNWnXkvWSU1FL2kb4Vxu5Cdyw==} dependencies: @@ -18817,7 +19370,6 @@ packages: vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 vscode-uri: 3.0.8 - dev: true /vscode-html-languageservice@5.1.0: resolution: {integrity: sha512-cGOu5+lrz+2dDXSGS15y24lDtPaML1T8K/SfqgFbLmCZ1btYOxceFieR+ybTS2es/A67kRc62m2cKFLUQPWG5g==} @@ -18828,44 +19380,45 @@ packages: vscode-uri: 3.0.8 dev: true + /vscode-html-languageservice@5.1.2: + resolution: {integrity: sha512-wkWfEx/IIR3s2P5yD4aTGHiOb8IAzFxgkSt1uSC3itJ4oDAm23yG7o0L29JljUdnXDDgLafPAvhv8A2I/8riHw==} + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + dev: false + /vscode-jsonrpc@8.2.0: resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} engines: {node: '>=14.0.0'} - dev: true /vscode-languageserver-protocol@3.17.5: resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} dependencies: vscode-jsonrpc: 8.2.0 vscode-languageserver-types: 3.17.5 - dev: true /vscode-languageserver-textdocument@1.0.11: resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} - dev: true /vscode-languageserver-types@3.17.5: resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} - dev: true /vscode-languageserver@9.0.1: resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} hasBin: true dependencies: vscode-languageserver-protocol: 3.17.5 - dev: true /vscode-nls@5.2.0: resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} - dev: true /vscode-uri@2.1.2: resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} - dev: true /vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - dev: true /vue-template-compiler@2.7.16: resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} @@ -19136,8 +19689,8 @@ packages: /wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - /workerpool@6.5.0: - resolution: {integrity: sha512-r64Ea3glXY2RVzMeNxB+4J+0YHAVzUdV4cM5nHi4BBC2LvnO1pWFAIYKYuGcPElbg1/7eEiaPtZ/jzCjIUuGBg==} + /workerpool@6.5.1: + resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} dev: false /wrap-ansi@2.1.0: @@ -19281,8 +19834,8 @@ packages: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} dev: true - /xstate@4.38.2: - resolution: {integrity: sha512-Fba/DwEPDLneHT3tbJ9F3zafbQXszOlyCJyQqqdzmtlY/cwE2th462KK48yaANf98jHlP6lJvxfNtN0LFKXPQg==} + /xstate@4.38.3: + resolution: {integrity: sha512-SH7nAaaPQx57dx6qvfcIgqKRXIh4L0A1iYEqim4s1u7c9VoCgzZc+63FY90AKU4ZzOC2cfJzTnpO4zK7fCUzzw==} dev: false /xtend@4.0.2: @@ -19444,8 +19997,13 @@ packages: readable-stream: 3.6.2 dev: false - /zod@1.11.17: - resolution: {integrity: sha512-UzIwO92D0dSFwIRyyqAfRXICITLjF0IP8tRbEK/un7adirMssWZx8xF/1hZNE7t61knWZ+lhEuUvxlu2MO8qqA==} + /zip-stream@5.0.2: + resolution: {integrity: sha512-LfOdrUvPB8ZoXtvOBz6DlNClfvi//b5d56mSWyJi7XbH/HfhOHfUhOqxhT/rUiR7yiktlunqRo+jY6y/cWC/5g==} + engines: {node: '>= 12.0.0'} + dependencies: + archiver-utils: 4.0.1 + compress-commons: 5.0.3 + readable-stream: 3.6.2 dev: false /zod@3.22.4: