diff --git a/.github/actions/pnpm-setup/action.yaml b/.github/actions/pnpm-setup/action.yaml new file mode 100644 index 000000000..6555b2814 --- /dev/null +++ b/.github/actions/pnpm-setup/action.yaml @@ -0,0 +1,19 @@ +name: PNPM setup +description: 'Set up pnpm with cache' + +runs: + using: 'composite' + steps: + - uses: pnpm/action-setup@v2.2.4 + with: + version: 8.0.0 + + - name: Setup Node.js environment + uses: actions/setup-node@v4 + with: + node-version: 18 + cache: 'pnpm' + + - name: Install dependencies + shell: bash + run: pnpm install diff --git a/.github/helpers/package.json b/.github/helpers/package.json new file mode 100644 index 000000000..b186100ef --- /dev/null +++ b/.github/helpers/package.json @@ -0,0 +1,13 @@ +{ + "name": "fusion-workspace-helpers", + "version": "0.0.0", + "type": "module", + "private": true, + "dependencies": { + "@actions/core": "^1.10.1", + "@actions/github": "^6.0.0", + "commander": "^11.1.0", + "markdown-table": "^3.0.3", + "tsx": "^4.6.2" + } +} diff --git a/.github/helpers/src/constants.ts b/.github/helpers/src/constants.ts new file mode 100644 index 000000000..1997af1f1 --- /dev/null +++ b/.github/helpers/src/constants.ts @@ -0,0 +1 @@ +export const RELEASE_FILE_NAME = 'release.json'; diff --git a/.github/helpers/src/issue-checker.ts b/.github/helpers/src/issue-checker.ts new file mode 100644 index 000000000..095b84225 --- /dev/null +++ b/.github/helpers/src/issue-checker.ts @@ -0,0 +1,97 @@ +#!/usr/bin/env node + +import { Command } from 'commander'; +import { getOctokit, context } from '@actions/github'; +import { info } from '@actions/core'; + +const program = new Command(); +type Octo = ReturnType; + +program.name('PR'); + +const noLinkedIssueMessage = ` +Howdy, wanderer🌵🤠🐴, + +Seems you've sauntered into our GitHub saloon with a pull request, but it appears you've forgotten to tie your horse to the hitching post. Now, in this town, we don't take kindly to stray requests, and the GitHub corral is no place for them. + +I reckon you best mosey on over and link that pull request to an issue, lest you want the winds of open source trouble blowin' your way. I've got my eye on you, stranger, and a stern warning echoes through these digital canyons. + +Now, for those who might be new to these parts or sufferin' from a bout of forgetfulness, fear not. I've rustled up a guide that's as handy as a snake in a boot🐍🥾. Take a peek at [this guide](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue), and it'll show you the way to tether that pull request like a seasoned rancher🤠. + +Don't let the sun set on your unlinked pull request, and remember, in these GitHub lands, the code speaks louder than six-shooters. + +Sincerely, +The code patrol👮 +`; + +program + .command('issue') + .option('-T, --token ', 'github token') + .option('-P, --pr ', 'Pull request number') + .action(async (args) => { + if (!args.token) { + throw new Error('Missing github token'); + } + + if (!args.pr) { + throw new Error('Missing pr number'); + } + + const client = getOctokit(args.token); + checkIssues(client, parseInt(args.pr)); + }); + +await program.parseAsync(); + +async function checkIssues(client: Octo, pr: number) { + const pullRequests = await client.graphql( + ` + query($owner: String!, $name: String!, $pr: Int!) { + repository(owner: $owner, name: $name) { + pullRequest(number: $pr) { + id + number + title + timelineItems(first: 100, itemTypes: [CONNECTED_EVENT, CROSS_REFERENCED_EVENT]) { + __typename + ... on PullRequestTimelineItemsConnection{ + totalCount + nodes { + __typename + ... on ConnectedEvent { + source { + __typename + ... on PullRequest { + number + } + } + subject { + __typename + ... on PullRequest { + number + } + } + } + } + } + } + } + } + }`, + { owner: context.repo.owner, name: context.repo.repo, pr: pr } + ); + + const linkedIssues: number = (pullRequests as any).repository.pullRequest.timelineItems.totalCount; + + if (linkedIssues === 0) { + info(`No linked issues adding comment to pr ${pr}`); + const comment = await client.rest.issues.createComment({ + issue_number: pr, + body: noLinkedIssueMessage, + owner: context.issue.owner, + repo: context.issue.repo, + }); + return; + } + info(`Linked issues: ${linkedIssues}`); +} diff --git a/.github/helpers/src/pre-version.ts b/.github/helpers/src/pre-version.ts new file mode 100644 index 000000000..fda4884a6 --- /dev/null +++ b/.github/helpers/src/pre-version.ts @@ -0,0 +1,89 @@ +#!/usr/bin/env node + +const defaultReleaseSchema: ReleaseSchema = { + packages: [], +}; + +import { Command } from 'commander'; +import { execSync } from 'child_process'; +import { writeFileSync, existsSync, readFileSync } from 'fs'; +import { parsePackageJson } from './utils/parse-package-json.js'; +import { logInfo } from './utils/logInfo.js'; +import { RELEASE_FILE_NAME } from './constants.js'; + +const program = new Command(); + +program.name('PR'); + +program.command('publish').action(async () => { + createFusionApp(); +}); + +await program.parseAsync(); + +/** + * Returns the next patch of packagejson version + */ +function packageJsonNextPatch() { + const packageJson = parsePackageJson(); + const version = packageJson.version.split('-')[0]; + + const splitVersion = version.split('.'); + + splitVersion[2] = (parseInt(splitVersion[2]) + 1).toString(); + return splitVersion.join('.'); +} + +export async function createFusionApp() { + preparePackageForVerBump(); + bumpPackageJson(); + publishPrPackage(); +} + +function publishPrPackage() { + const releaseMessage = execSync('pnpm publish --tag pr --json --no-git-checks'); + + const npmRelease: NpmRelease = JSON.parse(releaseMessage.toString('utf-8')); + logInfo(npmRelease.id, 'Green'); + appendReleaseLog(npmRelease); +} + +type ReleaseSchema = { + packages: string[]; +}; + +function appendReleaseLog(npmRelease: NpmRelease) { + const fileName = `../../${RELEASE_FILE_NAME}`; + if (!existsSync(fileName)) { + writeFileSync(fileName, JSON.stringify(defaultReleaseSchema, null, 2)); + } + const release = readFileSync(fileName).toString('utf-8'); + const contents: ReleaseSchema = JSON.parse(release); + contents.packages.push(npmRelease.id); + writeFileSync(fileName, JSON.stringify(contents)); +} + +function preparePackageForVerBump() { + const packageJson = parsePackageJson(); + const nextPatch = packageJsonNextPatch(); + const maybeVersion = execSync(`pnpm show ${packageJson.name} --json dist-tags.pr`).toString('utf-8'); + + if (maybeVersion === '') return; + + //There is a pr tag release including the package json ver + if (maybeVersion.includes(nextPatch)) { + packageJson.version = maybeVersion.replaceAll(`"`, ''); + writeFileSync('./package.json', JSON.stringify(packageJson, null, 2)); + } +} + +function bumpPackageJson() { + execSync('pnpm version prerelease --preid pr'); +} + +type NpmRelease = { + id: string; + name: string; + version: number; + unpackedSize: number; +}; diff --git a/.github/helpers/src/publish-comment.ts b/.github/helpers/src/publish-comment.ts new file mode 100644 index 000000000..dbec0c161 --- /dev/null +++ b/.github/helpers/src/publish-comment.ts @@ -0,0 +1,90 @@ +#!/usr/bin/env node + +import { Command } from 'commander'; +import { getOctokit, context } from '@actions/github'; +import { setSecret } from '@actions/core'; +import { logInfo } from './utils/logInfo.js'; +import { readFileSync } from 'fs'; +import { RELEASE_FILE_NAME } from './constants.js'; + +type Octo = ReturnType; + +async function getPullRequestFromBranch(client: Octo) { + const branch = context.ref.replace('refs/heads/', ''); + + const pullRequests = await client.rest.pulls.list({ owner: context.issue.owner, repo: context.issue.repo }); + const pullRequest = pullRequests.data.find((s) => s.head.ref === branch); + + if (!pullRequest) { + const msg = `${branch} does not have any associated pull request`; + logInfo(msg, 'Red'); + throw new Error(msg); + } + return pullRequest; +} + +async function commentPullRequest(client: Octo, issueNumber: number) { + const body = parseReleaseJson(); + + const comment = await client.rest.issues.createComment({ + issue_number: issueNumber, + body: body, + owner: context.issue.owner, + repo: context.issue.repo, + }); + if (comment.status === 201) { + logInfo('Comment created successfully', 'Green'); + } +} + +const program = new Command(); + +program.name('PR'); + +program + .command('comment') + .option('-T, --token ', 'github token') + .action(async (args) => { + if (!args.token) { + throw new Error('Missing github token'); + } + + setSecret(args.token); + const client = getOctokit(args.token); + const pr = await getPullRequestFromBranch(client); + commentPullRequest(client, pr.number); + }); + +await program.parseAsync(); + +function parseReleaseJson() { + const packages: string[] = JSON.parse(readFileSync(`./${RELEASE_FILE_NAME}`).toString('utf-8')).packages; + + const isWorkspaceRelease = packages.find((s) => s.includes('workspace-fusion')); + + const workspaceWarning = isWorkspaceRelease + ? '' + : `Well, I reckon the @equinor/workspace-fusion ain't joinin' the rodeo just yet. Seems like it's taken a rain check on the publication hoedown. Did you happen to forget to give that package a little nudge, like spurrin' a stubborn steer❓`; + + const packageLines = packages + .map( + (npmPackage) => `\`\`\` +pnpm i ${npmPackage} +\`\`\`` + ) + .join('\n'); + + const prBody = `Howdy, partner, + + Looks like you've got yourself a proper roundup with a posse of packages📦. If you're fixin' to bring 'em into your code corral, just hitch 'em up one by one with a trusty command like a cowboy tamin' a wild mustang. + + ${packageLines} + + These here commands will have your packages saddled up and ready to hit the open range of your project. Keep those dependencies roped and ride on into the sunset of seamless coding. + + ${workspaceWarning} + + Happy trailblazin' +`; + return prBody; +} diff --git a/.github/helpers/src/utils/logInfo.ts b/.github/helpers/src/utils/logInfo.ts new file mode 100644 index 000000000..5a2f4f7fa --- /dev/null +++ b/.github/helpers/src/utils/logInfo.ts @@ -0,0 +1,17 @@ +const ColorReset = '\x1b[0m'; +type TextColor = 'Red' | 'Green' | 'Black' | 'Yellow' | 'Blue' | 'Magenta' | 'Cyan' | 'White'; + +const textColor = { + Red: '\x1b[31m', + Black: '\x1b[30m', + Green: '\x1b[32m', + Yellow: '\x1b[33m', + Blue: '\x1b[34m', + Magenta: '\x1b[35m', + Cyan: '\x1b[36m', + White: '\x1b[37m', +} satisfies Record; + +export function logInfo(message: string, color: TextColor): void { + console.log(`${textColor[color]}${message}${ColorReset}`); +} diff --git a/.github/helpers/src/utils/parse-package-json.ts b/.github/helpers/src/utils/parse-package-json.ts new file mode 100644 index 000000000..0e1a8682f --- /dev/null +++ b/.github/helpers/src/utils/parse-package-json.ts @@ -0,0 +1,12 @@ +import fs from 'fs'; + +export type PackageJson = { + name?: string; + version?: string; + type?: 'module' | 'commonjs'; +} & Record; + +export function parsePackageJson(path: string = './package.json'): PackageJson { + const blob = fs.readFileSync(path); + return JSON.parse(blob.toString('utf-8')); +} diff --git a/.github/helpers/tsconfig.json b/.github/helpers/tsconfig.json new file mode 100644 index 000000000..c7c69c103 --- /dev/null +++ b/.github/helpers/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "module": "NodeNext", + "moduleResolution": "NodeNext", + "target": "ESNext" + }, + "include": ["src"] +} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7b8022cb8..ec90410fd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: CI +name: 🔨CI on: push: branches: @@ -13,19 +13,7 @@ jobs: with: fetch-depth: 0 - - uses: nrwl/nx-set-shas@v4 - - - name: Setup PNPM - uses: pnpm/action-setup@v2 - with: - version: 8 - - - uses: actions/setup-node@v4 - with: - cache: 'pnpm' - - - run: pnpm config set auto-install-peers true - - - run: npm run first-time-setup + - name: PNPM setup + uses: ./.github/actions/pnpm-setup - run: pnpm build diff --git a/.github/workflows/pr-issue-check.yml b/.github/workflows/pr-issue-check.yml new file mode 100644 index 000000000..b5a4d33c3 --- /dev/null +++ b/.github/workflows/pr-issue-check.yml @@ -0,0 +1,37 @@ +name: 👮Verify linked issue + +# This action works with pull requests and pushes +permissions: + { + contents: read, + actions: read, + checks: read, + deployments: read, + discussions: read, + id-token: write, + issues: write, + packages: read, + pages: read, + pull-requests: write, + repository-projects: read, + security-events: read, + statuses: read, + } +on: + pull_request: + +jobs: + issue-check: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + # Make sure the actual branch is checked out when running on pull requests + ref: ${{ github.head_ref }} + + - name: pnpm setup + run: npm run first-time-setup + + - run: pnpm tsx ./.github/helpers/src/issue-checker.ts issue -T ${{ github.token }} -P ${{github.event.number}} diff --git a/.github/workflows/pre-publish.yml b/.github/workflows/pre-publish.yml new file mode 100644 index 000000000..9a0514255 --- /dev/null +++ b/.github/workflows/pre-publish.yml @@ -0,0 +1,36 @@ +name: Publish PR build +on: + workflow_dispatch: +permissions: + actions: read + checks: write + contents: read + deployments: write + id-token: write + issues: write + statuses: write + pull-requests: write +jobs: + publish: + runs-on: ubuntu-latest + environment: npm + env: + NPM_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: PNPM setup + uses: ./.github/actions/pnpm-setup + + - name: Build monorepo + run: pnpm build + + - run: pnpm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}" + + - name: Publish PR version + run: pnpm pr-shipit + + - name: Comment PR + run: pnpm tsx ./.github/helpers/src/publish-comment.ts comment --token ${{github.token}} diff --git a/.github/workflows/prettier.yml b/.github/workflows/prettier.yml index 8aab9dd19..2f8007b92 100644 --- a/.github/workflows/prettier.yml +++ b/.github/workflows/prettier.yml @@ -1,25 +1,25 @@ -name: Prettify +name: 💄Prettify # This action works with pull requests and pushes on: - pull_request: - push: - branches: - - main + pull_request: + push: + branches: + - main jobs: - prettier: - runs-on: ubuntu-latest + prettier: + runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - # Make sure the actual branch is checked out when running on pull requests - ref: ${{ github.head_ref }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + # Make sure the actual branch is checked out when running on pull requests + ref: ${{ github.head_ref }} - - name: Prettify code - uses: creyD/prettier_action@v4.3 - with: - # This part is also where you can pass other options, for example: - prettier_options: --write **/*.{js,md,ts,tsx} + - name: Prettify code + uses: creyD/prettier_action@v4.3 + with: + # This part is also where you can pass other options, for example: + prettier_options: --write **/*.{js,md,ts,tsx} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f037dd5cd..d96fbfb1d 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -3,7 +3,6 @@ on: push: branches: - main - - preview/server-side jobs: publish: runs-on: ubuntu-latest @@ -14,11 +13,14 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 - - run: npm run first-time-setup - #... previous steps - # Run `build` script in every projects - - run: pnpm run build - # Set token - - run: pnpm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}" - # Publish all packages in the workspace which version still does not exist - - run: pnpm shipit --no-git-checks + + - name: PNPM setup + uses: ./.github/actions/pnpm-setup + + - name: Build monorepo + run: pnpm build + + - name: Publish NPM + run: | + pnpm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}" + pnpm shipit --no-git-checks diff --git a/package.json b/package.json index 01cafe6b3..654e5e7b9 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "build": "turbo run build", "test": "turbo run test", "documentation": "pnpx astro dev --root ./documentation", - "shipit": "pnpm build && pnpm -r publish", + "shipit": "turbo run build && pnpm -r publish", + "pr-shipit": "turbo run build && pnpm --filter ...[origin/main] pr-release", "dev": "turbo run dev --filter ./apps/**" }, "private": true, @@ -23,6 +24,7 @@ "@typescript-eslint/parser": "~5.24.0", "prettier": "^2.6.2", "tsup": "^8.0.1", + "tsx": "^4.6.2", "turbo": "^1.9.3", "typescript": "~5.0.2", "typescript-plugin-styled-components": "^2.0.0" diff --git a/packages/ag-grid/package.json b/packages/ag-grid/package.json index bb9b8bf7a..19b4e4f05 100644 --- a/packages/ag-grid/package.json +++ b/packages/ag-grid/package.json @@ -7,7 +7,8 @@ "license": "MIT", "scripts": { "build": "tsup ./src/index.ts ./src/modules/index.ts --format cjs,esm --dts --clean", - "build:prod": "tsup ./src/index.ts ./src/modules/index.ts --format cjs,esm --dts --clean" + "build:prod": "tsup ./src/index.ts ./src/modules/index.ts --format cjs,esm --dts --clean", + "pr-release": "tsx ../../.github/helpers/src/pre-version.ts publish" }, "main": "dist/index.cjs", "module": "dist/index.js", diff --git a/packages/filter/package.json b/packages/filter/package.json index f5d5c9322..f9440e8e6 100644 --- a/packages/filter/package.json +++ b/packages/filter/package.json @@ -1,12 +1,13 @@ { "name": "@equinor/workspace-filter", - "version": "3.0.8", + "version": "3.0.9", "type": "module", "sideEffects": false, "license": "MIT", "scripts": { "build": "tsup ./src/index.ts --format cjs,esm --dts --clean", - "build:prod": "tsup ./src/index.ts --format cjs,esm --dts --clean" + "build:prod": "tsup ./src/index.ts --format cjs,esm --dts --clean", + "pr-release": "tsx ../../.github/helpers/src/pre-version.ts publish" }, "publishConfig": { "access": "public" diff --git a/packages/filter/src/lib/components/quickFilter/QuickFilter.tsx b/packages/filter/src/lib/components/quickFilter/QuickFilter.tsx index 8ac3cf225..3b565fc60 100644 --- a/packages/filter/src/lib/components/quickFilter/QuickFilter.tsx +++ b/packages/filter/src/lib/components/quickFilter/QuickFilter.tsx @@ -98,10 +98,10 @@ const QuickFilterReady = ({ groups }: QuickFilterReadyProps) => { /> ))} - )} + {isFilterExpanded && ( ` display: grid; - grid-template-columns: ${(e) => (e.isExpanded ? 'minmax(200px, 350px) 1fr' : 'minmax(200px, 350px) 1fr 100px')}; + grid-template-columns: ${(e) => (e.isExpanded ? 'minmax(200px, 350px) 1fr' : 'minmax(200px, 350px) 1fr min-content')}; grid-template-rows: 1fr; overflow: hidden; gap: 2em; @@ -33,6 +33,7 @@ export const StyledWrapper = styled.div` export const StyledButtonWrapper = styled.div` display: flex; width: 100%; + align-items: center; justify-content: flex-end; background-color: ${tokens.colors.ui.background__light.hex}; `; diff --git a/packages/garden/package.json b/packages/garden/package.json index c7a375525..4216893aa 100644 --- a/packages/garden/package.json +++ b/packages/garden/package.json @@ -1,12 +1,13 @@ { "name": "@equinor/workspace-garden", - "version": "6.0.4", + "version": "7.0.0", "type": "module", "sideEffects": false, "license": "MIT", "scripts": { "build": "tsup ./src/index.ts --format cjs,esm --dts --clean", - "build:prod": "tsup ./src/index.ts --format cjs,esm --dts --clean" + "build:prod": "tsup ./src/index.ts --format cjs,esm --dts --clean", + "pr-release": "tsx ../../.github/helpers/src/pre-version.ts publish" }, "publishConfig": { "access": "public" diff --git a/packages/garden/src/lib/components/GroupingSelector/GroupingSelector.tsx b/packages/garden/src/lib/components/GroupingSelector/GroupingSelector.tsx index b9c78a6e9..359d8a532 100644 --- a/packages/garden/src/lib/components/GroupingSelector/GroupingSelector.tsx +++ b/packages/garden/src/lib/components/GroupingSelector/GroupingSelector.tsx @@ -1,6 +1,5 @@ import { Autocomplete, CircularProgress, Divider, EdsProvider, Label, Radio } from '@equinor/eds-core-react'; import { Fragment, startTransition, useRef } from 'react'; -import { GroupingOption } from '../../types'; import { RadioButtonWrapper, RadioCategoryWrapper, @@ -83,18 +82,22 @@ export function GroupingSelector({ option.groupingKey)} + options={gardenMetaQuery.data.allGroupingOptions} label={'Group by'} + optionLabel={(s) => s?.displayName ?? s?.groupingKey ?? ''} hideClearButton multiple={false} - selectedOptions={[groupingKeys[0]]} - onOptionsChange={(changes) => handleGardenKeyChange(changes.selectedItems[0])} + selectedOptions={[gardenMetaQuery.data.allGroupingOptions.find((s) => s.groupingKey == groupingKeys[0])]} + onOptionsChange={(changes) => handleGardenKeyChange(changes.selectedItems[0]?.groupingKey)} /> handleExistingSelectionChange(changes.selectedItems[0])} + selectedOptions={[ + gardenMetaQuery.data.allGroupingOptions.find((s) => s.groupingKey === groupingKeys.at(1)), + ]} + optionLabel={(s) => s?.displayName ?? s?.groupingKey ?? ''} + onOptionsChange={(changes) => handleExistingSelectionChange(changes.selectedItems[0]?.groupingKey)} /> diff --git a/packages/garden/src/lib/types/index.ts b/packages/garden/src/lib/types/index.ts index 3126047d1..1dcea6fcc 100644 --- a/packages/garden/src/lib/types/index.ts +++ b/packages/garden/src/lib/types/index.ts @@ -14,7 +14,7 @@ export type GardenMeta = { columnCount: number; rowCount: number; allGroupingOptions: GroupingOption[]; - validGroupingOptions: string[]; + validGroupingOptions: GroupingOption[]; columnWidth?: number; }; @@ -55,6 +55,7 @@ export type GardenHeaderGroup = { export type GroupingOption = { groupingKey: string; + displayName: string; timeInterval: string[] | null; dateVariant: string[] | null; }; diff --git a/packages/power-bi/package.json b/packages/power-bi/package.json index 4789ad6b5..fee7d3d85 100644 --- a/packages/power-bi/package.json +++ b/packages/power-bi/package.json @@ -1,12 +1,13 @@ { "name": "@equinor/workspace-powerbi", - "version": "1.0.12", + "version": "1.0.14", "type": "module", "sideEffects": false, "license": "MIT", "scripts": { "build": "tsup ./src/index.ts --format cjs,esm --dts --clean", - "build:prod": "tsup ./src/index.ts --format cjs,esm --dts --clean" + "build:prod": "tsup ./src/index.ts --format cjs,esm --dts --clean", + "pr-release": "tsx ../../.github/helpers/src/pre-version.ts publish" }, "publishConfig": { "access": "public" diff --git a/packages/power-bi/src/lib/components/QuickFilter/QuickFilter.tsx b/packages/power-bi/src/lib/components/QuickFilter/QuickFilter.tsx index 42d048bd8..442013ddf 100644 --- a/packages/power-bi/src/lib/components/QuickFilter/QuickFilter.tsx +++ b/packages/power-bi/src/lib/components/QuickFilter/QuickFilter.tsx @@ -65,19 +65,17 @@ export const PowerBIQuickFilter = ({ controller }: PowerBIQuickFilterProps): JSX {slicerFilters.map((s, i) => { - i < 9 && shownFilters.push(s.type); + shownFilters.push(s.type); return ( - i < 9 && ( - - handleOnChange(s, filter, singleClick) - } - group={s} - key={s.type + i} - /> - ) + + handleOnChange(s, filter, singleClick) + } + group={s} + key={s.type + i} + /> ); })} diff --git a/packages/power-bi/src/lib/components/report/Report.tsx b/packages/power-bi/src/lib/components/report/Report.tsx index dce658509..fed3f2453 100644 --- a/packages/power-bi/src/lib/components/report/Report.tsx +++ b/packages/power-bi/src/lib/components/report/Report.tsx @@ -12,6 +12,7 @@ export function Report({ getEmbedInfo, getToken, reportUri, controller, filters, queryFn: ({ signal }) => getToken(reportUri, signal), refetchInterval: generateRefetchInterval, suspense: true, + retry: false, useErrorBoundary: true, refetchOnWindowFocus: true, }); diff --git a/packages/workspace-fusion/package.json b/packages/workspace-fusion/package.json index e685c3206..978cf28c8 100644 --- a/packages/workspace-fusion/package.json +++ b/packages/workspace-fusion/package.json @@ -1,12 +1,13 @@ { "name": "@equinor/workspace-fusion", - "version": "6.1.2", + "version": "7.0.2", "type": "module", "sideEffects": false, "license": "MIT", "scripts": { "build": "tsup", - "build:prod": "tsup" + "build:prod": "tsup", + "pr-release": "tsx ../../.github/helpers/src/pre-version.ts publish" }, "publishConfig": { "access": "public" @@ -17,6 +18,40 @@ "files": [ "dist" ], + "typesVersions": { + ">=4.2": { + ".": [ + "dist/types/index" + ], + "garden": [ + "dist/types/lib/integrations/garden/index" + ], + "grid": [ + "dist/types/lib/integrations/grid/index" + ], + "power-bi": [ + "dist/types/lib/integrations/power-bi/index" + ], + "filter": [ + "dist/types/lib/integrations/filter/index" + ], + "status-bar": [ + "dist/types/lib/integrations/status-bar/index" + ], + "sidesheet": [ + "dist/types/lib/integrations/sidesheet/index" + ], + "grid-module": [ + "dist/types/modules/grid/index" + ], + "power-bi-module": [ + "dist/types/modules/power-bi/index" + ], + "garden-module": [ + "dist/types/modules/garden/index" + ] + } + }, "exports": { ".": { "require": "./dist/index.cjs", @@ -105,6 +140,5 @@ "type": "git", "url": "git+https://github.com/equinor/fusion-workspace.git", "directory": "packages/workspace-fusion" - }, - "gitHead": "6407f12589214b96228ab87d32a211f7c1cd6ba4" + } } diff --git a/packages/workspace-react/package.json b/packages/workspace-react/package.json index 06c673e35..3b62dc0e5 100644 --- a/packages/workspace-react/package.json +++ b/packages/workspace-react/package.json @@ -6,7 +6,8 @@ "license": "MIT", "scripts": { "build": "tsup ./src/index.ts --format cjs,esm --dts --clean", - "build:prod": "tsup ./src/index.ts --format cjs,esm --dts --clean" + "build:prod": "tsup ./src/index.ts --format cjs,esm --dts --clean", + "pr-release": "tsx ../../.github/helpers/src/pre-version.ts publish" }, "publishConfig": { "access": "public" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2b32635db..8634c34ae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,9 @@ importers: tsup: specifier: ^8.0.1 version: 8.0.1(typescript@5.0.2) + tsx: + specifier: ^4.6.2 + version: 4.6.2 turbo: specifier: ^1.9.3 version: 1.9.3 @@ -33,6 +36,24 @@ importers: specifier: ^2.0.0 version: 2.0.0(typescript@5.0.2) + .github/helpers: + dependencies: + '@actions/core': + specifier: ^1.10.1 + version: 1.10.1 + '@actions/github': + specifier: ^6.0.0 + version: 6.0.0 + commander: + specifier: ^11.1.0 + version: 11.1.0 + markdown-table: + specifier: ^3.0.3 + version: 3.0.3 + tsx: + specifier: ^4.6.2 + version: 4.6.2 + apps/test-app: dependencies: '@equinor/eds-core-react': @@ -574,6 +595,29 @@ packages: engines: {node: '>=0.10.0'} dev: true + /@actions/core@1.10.1: + resolution: {integrity: sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==} + dependencies: + '@actions/http-client': 2.2.0 + uuid: 8.3.2 + dev: false + + /@actions/github@6.0.0: + resolution: {integrity: sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==} + dependencies: + '@actions/http-client': 2.2.0 + '@octokit/core': 5.0.2 + '@octokit/plugin-paginate-rest': 9.1.5(@octokit/core@5.0.2) + '@octokit/plugin-rest-endpoint-methods': 10.2.0(@octokit/core@5.0.2) + dev: false + + /@actions/http-client@2.2.0: + resolution: {integrity: sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==} + dependencies: + tunnel: 0.0.6 + undici: 5.28.2 + dev: false + /@adobe/css-tools@4.2.0: resolution: {integrity: sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==} dev: true @@ -2138,6 +2182,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + /@esbuild/android-arm64@0.19.8: resolution: {integrity: sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==} engines: {node: '>=12'} @@ -2155,6 +2207,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + /@esbuild/android-arm@0.19.8: resolution: {integrity: sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==} engines: {node: '>=12'} @@ -2172,6 +2232,14 @@ packages: requiresBuild: true optional: true + /@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + optional: true + /@esbuild/android-x64@0.19.8: resolution: {integrity: sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==} engines: {node: '>=12'} @@ -2189,6 +2257,14 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + /@esbuild/darwin-arm64@0.19.8: resolution: {integrity: sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==} engines: {node: '>=12'} @@ -2206,6 +2282,14 @@ packages: requiresBuild: true optional: true + /@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + /@esbuild/darwin-x64@0.19.8: resolution: {integrity: sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==} engines: {node: '>=12'} @@ -2223,6 +2307,14 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + optional: true + /@esbuild/freebsd-arm64@0.19.8: resolution: {integrity: sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==} engines: {node: '>=12'} @@ -2240,6 +2332,14 @@ packages: requiresBuild: true optional: true + /@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + /@esbuild/freebsd-x64@0.19.8: resolution: {integrity: sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==} engines: {node: '>=12'} @@ -2257,6 +2357,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-arm64@0.19.8: resolution: {integrity: sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==} engines: {node: '>=12'} @@ -2274,6 +2382,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-arm@0.19.8: resolution: {integrity: sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==} engines: {node: '>=12'} @@ -2291,6 +2407,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-ia32@0.19.8: resolution: {integrity: sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==} engines: {node: '>=12'} @@ -2308,6 +2432,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-loong64@0.19.8: resolution: {integrity: sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==} engines: {node: '>=12'} @@ -2325,6 +2457,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-mips64el@0.19.8: resolution: {integrity: sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==} engines: {node: '>=12'} @@ -2342,6 +2482,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-ppc64@0.19.8: resolution: {integrity: sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==} engines: {node: '>=12'} @@ -2359,6 +2507,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-riscv64@0.19.8: resolution: {integrity: sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==} engines: {node: '>=12'} @@ -2376,6 +2532,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-s390x@0.19.8: resolution: {integrity: sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==} engines: {node: '>=12'} @@ -2393,6 +2557,14 @@ packages: requiresBuild: true optional: true + /@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + /@esbuild/linux-x64@0.19.8: resolution: {integrity: sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==} engines: {node: '>=12'} @@ -2410,6 +2582,14 @@ packages: requiresBuild: true optional: true + /@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + optional: true + /@esbuild/netbsd-x64@0.19.8: resolution: {integrity: sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==} engines: {node: '>=12'} @@ -2427,6 +2607,14 @@ packages: requiresBuild: true optional: true + /@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + optional: true + /@esbuild/openbsd-x64@0.19.8: resolution: {integrity: sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==} engines: {node: '>=12'} @@ -2444,6 +2632,14 @@ packages: requiresBuild: true optional: true + /@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + optional: true + /@esbuild/sunos-x64@0.19.8: resolution: {integrity: sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==} engines: {node: '>=12'} @@ -2461,6 +2657,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + /@esbuild/win32-arm64@0.19.8: resolution: {integrity: sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==} engines: {node: '>=12'} @@ -2478,6 +2682,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + /@esbuild/win32-ia32@0.19.8: resolution: {integrity: sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==} engines: {node: '>=12'} @@ -2495,6 +2707,14 @@ packages: requiresBuild: true optional: true + /@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + /@esbuild/win32-x64@0.19.8: resolution: {integrity: sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==} engines: {node: '>=12'} @@ -2541,6 +2761,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@fastify/busboy@2.1.0: + resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} + engines: {node: '>=14'} + dev: false + /@floating-ui/core@1.2.0: resolution: {integrity: sha512-GHUXPEhMEmTpnpIfesFA2KAoMJPb1SPQw964tToQwt+BbGXdhqTCWT1rOb0VURGylsxsYxiGMnseJ3IlclVpVA==} dev: false @@ -2893,6 +3118,90 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.13.0 + /@octokit/auth-token@4.0.0: + resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} + engines: {node: '>= 18'} + dev: false + + /@octokit/core@5.0.2: + resolution: {integrity: sha512-cZUy1gUvd4vttMic7C0lwPed8IYXWYp8kHIMatyhY8t8n3Cpw2ILczkV5pGMPqef7v0bLo0pOHrEHarsau2Ydg==} + engines: {node: '>= 18'} + dependencies: + '@octokit/auth-token': 4.0.0 + '@octokit/graphql': 7.0.2 + '@octokit/request': 8.1.6 + '@octokit/request-error': 5.0.1 + '@octokit/types': 12.4.0 + before-after-hook: 2.2.3 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/endpoint@9.0.4: + resolution: {integrity: sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==} + engines: {node: '>= 18'} + dependencies: + '@octokit/types': 12.4.0 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/graphql@7.0.2: + resolution: {integrity: sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==} + engines: {node: '>= 18'} + dependencies: + '@octokit/request': 8.1.6 + '@octokit/types': 12.4.0 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/openapi-types@19.1.0: + resolution: {integrity: sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==} + dev: false + + /@octokit/plugin-paginate-rest@9.1.5(@octokit/core@5.0.2): + resolution: {integrity: sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '>=5' + dependencies: + '@octokit/core': 5.0.2 + '@octokit/types': 12.4.0 + dev: false + + /@octokit/plugin-rest-endpoint-methods@10.2.0(@octokit/core@5.0.2): + resolution: {integrity: sha512-ePbgBMYtGoRNXDyKGvr9cyHjQ163PbwD0y1MkDJCpkO2YH4OeXX40c4wYHKikHGZcpGPbcRLuy0unPUuafco8Q==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '>=5' + dependencies: + '@octokit/core': 5.0.2 + '@octokit/types': 12.4.0 + dev: false + + /@octokit/request-error@5.0.1: + resolution: {integrity: sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==} + engines: {node: '>= 18'} + dependencies: + '@octokit/types': 12.4.0 + deprecation: 2.3.1 + once: 1.4.0 + dev: false + + /@octokit/request@8.1.6: + resolution: {integrity: sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==} + engines: {node: '>= 18'} + dependencies: + '@octokit/endpoint': 9.0.4 + '@octokit/request-error': 5.0.1 + '@octokit/types': 12.4.0 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/types@12.4.0: + resolution: {integrity: sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==} + dependencies: + '@octokit/openapi-types': 19.1.0 + dev: false + /@pkgr/utils@2.3.1: resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -4108,6 +4417,10 @@ packages: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: false + /before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + dev: false + /better-path-resolve@1.0.0: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} engines: {node: '>=4'} @@ -4332,7 +4645,7 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /ci-info@3.5.0: @@ -4413,6 +4726,11 @@ packages: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} dev: false + /commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + dev: false + /commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} @@ -4923,6 +5241,10 @@ packages: engines: {node: '>=0.4.0'} dev: true + /deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + dev: false + /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -5154,6 +5476,35 @@ packages: '@esbuild/win32-ia32': 0.17.12 '@esbuild/win32-x64': 0.17.12 + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + /esbuild@0.19.8: resolution: {integrity: sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==} engines: {node: '>=12'} @@ -5586,8 +5937,8 @@ packages: /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true @@ -5653,6 +6004,11 @@ packages: get-intrinsic: 1.2.1 dev: true + /get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + dependencies: + resolve-pkg-maps: 1.0.0 + /github-slugger@1.5.0: resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} dev: false @@ -6392,7 +6748,7 @@ packages: micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: false /jest-matcher-utils@27.5.1: @@ -8313,6 +8669,9 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + /resolve@1.22.1: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true @@ -8402,7 +8761,7 @@ packages: engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /rollup@3.25.1: @@ -8410,7 +8769,7 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 /rollup@4.6.1: resolution: {integrity: sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ==} @@ -8429,7 +8788,7 @@ packages: '@rollup/rollup-win32-arm64-msvc': 4.6.1 '@rollup/rollup-win32-ia32-msvc': 4.6.1 '@rollup/rollup-win32-x64-msvc': 4.6.1 - fsevents: 2.3.2 + fsevents: 2.3.3 /route-recognizer@0.1.11: resolution: {integrity: sha512-7JNu5mXQVa39zxmUKyk/bfpeF2WyEC5JKVTJO5HATcoUQpcQsI3eLzhwGU69xeOagQxfOQ+yr2sSv0G8xy+vQA==} @@ -9110,6 +9469,16 @@ packages: typescript: 5.0.2 dev: true + /tsx@4.6.2: + resolution: {integrity: sha512-QPpBdJo+ZDtqZgAnq86iY/PD2KYCUPSUGIunHdGwyII99GKH+f3z3FZ8XNFLSGQIA4I365ui8wnQpl8OKLqcsg==} + engines: {node: '>=18.0.0'} + hasBin: true + dependencies: + esbuild: 0.18.20 + get-tsconfig: 4.7.2 + optionalDependencies: + fsevents: 2.3.3 + /tty-table@4.2.1: resolution: {integrity: sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g==} engines: {node: '>=8.0.0'} @@ -9124,6 +9493,11 @@ packages: yargs: 17.7.1 dev: true + /tunnel@0.0.6: + resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} + engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} + dev: false + /turbo-darwin-64@1.9.3: resolution: {integrity: sha512-0dFc2cWXl82kRE4Z+QqPHhbEFEpUZho1msHXHWbz5+PqLxn8FY0lEVOHkq5tgKNNEd5KnGyj33gC/bHhpZOk5g==} cpu: [x64] @@ -9254,6 +9628,13 @@ packages: busboy: 1.6.0 dev: false + /undici@5.28.2: + resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==} + engines: {node: '>=14.0'} + dependencies: + '@fastify/busboy': 2.1.0 + dev: false + /unherit@3.0.1: resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==} dev: false @@ -9331,6 +9712,10 @@ packages: unist-util-visit-parents: 5.1.3 dev: false + /universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + dev: false + /universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} @@ -9376,6 +9761,11 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: false + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: false + /uuid@9.0.0: resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} hasBin: true @@ -9489,7 +9879,7 @@ packages: postcss: 8.4.24 rollup: 3.25.1 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 /vitefu@0.2.4(vite@4.3.9): resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 954b77df3..e79693da0 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,3 +2,4 @@ packages: - 'packages/*' - 'documentation' - 'apps/*' + - '.github/helpers'