diff --git a/package-lock.json b/package-lock.json index b63d6705..650594df 100644 --- a/package-lock.json +++ b/package-lock.json @@ -74,6 +74,7 @@ "@types/underscore": "^1.11.15", "@vitest/browser-playwright": "^4.0.16", "astro": "^5.9.4", + "patch-package": "^8.0.1", "prettier-plugin-astro": "^0.13.0", "ts-node": "^10.9.2", "vite": "^6.1.1", @@ -505,21 +506,6 @@ "graphql": "*" } }, - "node_modules/@ardatan/relay-compiler/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@ardatan/relay-compiler/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -536,45 +522,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@ardatan/relay-compiler/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@ardatan/relay-compiler/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/@ardatan/relay-compiler/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@ardatan/relay-compiler/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@ariakit/core": { "version": "0.4.14", "resolved": "https://registry.npmjs.org/@ariakit/core/-/core-0.4.14.tgz", @@ -6165,22 +6112,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@jest/transform/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -6198,36 +6129,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@jest/transform/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/transform/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT", - "peer": true - }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/transform/node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -6235,19 +6136,6 @@ "license": "ISC", "peer": true }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/transform/node_modules/write-file-atomic": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", @@ -6280,22 +6168,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@jest/types/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -6313,49 +6185,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT", - "peer": true - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -22760,6 +22589,13 @@ "integrity": "sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==", "license": "MIT" }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/@zxcvbn-ts/core": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@zxcvbn-ts/core/-/core-3.0.4.tgz", @@ -23068,6 +22904,39 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ansi-styles/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ansi-styles/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", @@ -24287,22 +24156,6 @@ "@babel/core": "^7.8.0" } }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/babel-jest/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -24320,49 +24173,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/babel-jest/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/babel-jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT", - "peer": true - }, - "node_modules/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -25506,39 +25316,6 @@ "node": ">=8" } }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cliui/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cliui/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -28604,6 +28381,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/find-yarn-workspace-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", + "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "micromatch": "^4.0.2" + } + }, "node_modules/flattie": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz", @@ -29335,6 +29122,15 @@ "uncrypto": "^0.1.3" } }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/has-property-descriptors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", @@ -32085,22 +31881,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/jest-message-util/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -32118,36 +31898,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-message-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-message-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT", - "peer": true - }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-message-util/node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -32183,19 +31933,6 @@ "license": "MIT", "peer": true }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-mock": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", @@ -32239,22 +31976,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/jest-util/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -32288,36 +32009,6 @@ "node": ">=8" } }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT", - "peer": true - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-util/node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -32331,19 +32022,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-validate": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", @@ -32362,22 +32040,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/jest-validate/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -32395,36 +32057,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-validate/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-validate/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT", - "peer": true - }, - "node_modules/jest-validate/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-validate/node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -32460,19 +32092,6 @@ "license": "MIT", "peer": true }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-worker": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", @@ -32489,16 +32108,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -32644,6 +32253,33 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "license": "MIT" }, + "node_modules/json-stable-stringify": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.3.0.tgz", + "integrity": "sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "isarray": "^2.0.5", + "jsonify": "^0.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/json-stable-stringify/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, "node_modules/json-stringify-pretty-compact": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", @@ -32681,6 +32317,16 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "dev": true, + "license": "Public Domain", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/jsonpath-plus": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-10.4.0.tgz", @@ -32839,6 +32485,16 @@ "node": ">=0.10.0" } }, + "node_modules/klaw-sync": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", + "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.11" + } + }, "node_modules/kleur": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", @@ -36342,22 +35998,6 @@ "node": ">= 0.6" } }, - "node_modules/metro/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/metro/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -36382,36 +36022,6 @@ "license": "MIT", "peer": true }, - "node_modules/metro/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/metro/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT", - "peer": true - }, - "node_modules/metro/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/metro/node_modules/hermes-estree": { "version": "0.33.3", "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.33.3.tgz", @@ -36476,19 +36086,6 @@ "node": ">=0.10.0" } }, - "node_modules/metro/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/metro/node_modules/ws": { "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", @@ -53996,7 +53593,6 @@ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", "license": "MIT", - "peer": true, "dependencies": { "is-docker": "^2.0.0", "is-wsl": "^2.1.1" @@ -54013,7 +53609,6 @@ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "license": "MIT", - "peer": true, "bin": { "is-docker": "cli.js" }, @@ -54029,7 +53624,6 @@ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "license": "MIT", - "peer": true, "dependencies": { "is-docker": "^2.0.0" }, @@ -54401,6 +53995,94 @@ "tslib": "^2.0.3" } }, + "node_modules/patch-package": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.1.tgz", + "integrity": "sha512-VsKRIA8f5uqHQ7NGhwIna6Bx6D9s/1iXlA1hthBVBEbkq+t4kXD0HHt+rJhf/Z+Ci0F/HCB2hvn0qLdLG+Qxlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@yarnpkg/lockfile": "^1.1.0", + "chalk": "^4.1.2", + "ci-info": "^3.7.0", + "cross-spawn": "^7.0.3", + "find-yarn-workspace-root": "^2.0.0", + "fs-extra": "^10.0.0", + "json-stable-stringify": "^1.0.2", + "klaw-sync": "^6.0.0", + "minimist": "^1.2.6", + "open": "^7.4.2", + "semver": "^7.5.3", + "slash": "^2.0.0", + "tmp": "^0.2.4", + "yaml": "^2.2.2" + }, + "bin": { + "patch-package": "index.js" + }, + "engines": { + "node": ">=14", + "npm": ">5" + } + }, + "node_modules/patch-package/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/patch-package/node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/patch-package/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/patch-package/node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", @@ -55365,21 +55047,6 @@ "node": ">=8" } }, - "node_modules/qrcode/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/qrcode/node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -55400,24 +55067,6 @@ "wrap-ansi": "^6.2.0" } }, - "node_modules/qrcode/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/qrcode/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, "node_modules/qrcode/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -60471,6 +60120,18 @@ "node": ">=14.0.0" } }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -61777,9 +61438,9 @@ } }, "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.7.tgz", + "integrity": "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==", "license": "MIT", "engines": { "node": ">=14.14" @@ -64137,39 +63798,6 @@ "node": ">=8" } }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", diff --git a/package.json b/package.json index dc3d62b3..8bd05578 100644 --- a/package.json +++ b/package.json @@ -4,11 +4,12 @@ "private": true, "scripts": { "start": "node scripts/build.mjs && tinacms dev -c \"astro dev\"", - "build": "node scripts/build.mjs && npm run test-config && tinacms build && astro build", + "build": "node scripts/build.mjs && npm run test-config && tinacms build && node scripts/build.admin-title.mjs && astro build", "preview": "astro preview", "test-config": "vitest run config.test.ts", "vitest": "vitest run", - "playwright": "npx playwright test" + "playwright": "npx playwright test", + "postinstall": "patch-package" }, "engines": { "node": ">=24.14.0 <25.0.0" @@ -23,6 +24,7 @@ "@types/underscore": "^1.11.15", "@vitest/browser-playwright": "^4.0.16", "astro": "^5.9.4", + "patch-package": "^8.0.1", "prettier-plugin-astro": "^0.13.0", "ts-node": "^10.9.2", "vite": "^6.1.1", diff --git a/patches/@tinacms+app+2.3.28.patch b/patches/@tinacms+app+2.3.28.patch new file mode 100644 index 00000000..860b6ba9 --- /dev/null +++ b/patches/@tinacms+app+2.3.28.patch @@ -0,0 +1,13 @@ +diff --git a/node_modules/@tinacms/app/index.html b/node_modules/@tinacms/app/index.html +index 696fe73..f03d80f 100644 +--- a/node_modules/@tinacms/app/index.html ++++ b/node_modules/@tinacms/app/index.html +@@ -4,7 +4,7 @@ + + + +- TinaCMS ++ FairData + + +
diff --git a/patches/@tinacms+cli+2.1.9.patch b/patches/@tinacms+cli+2.1.9.patch new file mode 100644 index 00000000..85b7167a --- /dev/null +++ b/patches/@tinacms+cli+2.1.9.patch @@ -0,0 +1,13 @@ +diff --git a/node_modules/@tinacms/cli/dist/index.js b/node_modules/@tinacms/cli/dist/index.js +index e237e9f..de76ab1 100644 +--- a/node_modules/@tinacms/cli/dist/index.js ++++ b/node_modules/@tinacms/cli/dist/index.js +@@ -1546,7 +1546,7 @@ var devHTML = (port) => ` + + + +- TinaCMS ++ FairData + + + diff --git a/patches/tinacms+3.6.1.patch b/patches/tinacms+3.6.1.patch new file mode 100644 index 00000000..2f1ac10e --- /dev/null +++ b/patches/tinacms+3.6.1.patch @@ -0,0 +1,49 @@ +diff --git a/node_modules/tinacms/dist/index.js b/node_modules/tinacms/dist/index.js +index 523ffa5..4cb88b9 100644 +--- a/node_modules/tinacms/dist/index.js ++++ b/node_modules/tinacms/dist/index.js +@@ -383,12 +383,32 @@ const TinaIcon = ({ ...props }) => /* @__PURE__ */ React.createElement( + "svg", + { + viewBox: "0 0 32 32", +- fill: "currentColor", ++ fill: "none", ++ xmlns: "http://www.w3.org/2000/svg", ++ ...props ++ }, ++ /* @__PURE__ */ React.createElement("rect", { width: 32, height: 32, rx: 5, fill: "#F15F26" }), ++ /* @__PURE__ */ React.createElement("path", { fill: "white", d: "M16 6.25C10.9534 6.25 7 8.55625 7 11.5V20.5C7 23.4437 10.9534 25.75 16 25.75C21.0466 25.75 25 23.4437 25 20.5V11.5C25 8.55625 21.0466 6.25 16 6.25ZM23.5 16C23.5 16.9019 22.7612 17.8216 21.4741 18.5237C20.0247 19.3141 18.0803 19.75 16 19.75C13.9197 19.75 11.9753 19.3141 10.5259 18.5237C9.23875 17.8216 8.5 16.9019 8.5 16V14.44C10.0994 15.8463 12.8341 16.75 16 16.75C19.1659 16.75 21.9006 15.8425 23.5 14.44V16ZM21.4741 23.0237C20.0247 23.8141 18.0803 24.25 16 24.25C13.9197 24.25 11.9753 23.8141 10.5259 23.0237C9.23875 22.3216 8.5 21.4019 8.5 20.5V18.94C10.0994 20.3463 12.8341 21.25 16 21.25C19.1659 21.25 21.9006 20.3425 23.5 18.94V20.5C23.5 21.4019 22.7612 22.3216 21.4741 23.0237Z" }) ++); ++const FairDataLogo = ({ ...props }) => /* @__PURE__ */ React.createElement( ++ "svg", ++ { ++ viewBox: "0 0 201 32", ++ fill: "none", + xmlns: "http://www.w3.org/2000/svg", + ...props + }, +- /* @__PURE__ */ React.createElement("path", { d: "M18.6466 14.5553C19.9018 13.5141 20.458 7.36086 21.0014 5.14903C21.5447 2.9372 23.7919 3.04938 23.7919 3.04938C23.7919 3.04938 23.2085 4.06764 23.4464 4.82751C23.6844 5.58738 25.3145 6.26662 25.3145 6.26662L24.9629 7.19622C24.9629 7.19622 24.2288 7.10204 23.7919 7.9785C23.355 8.85496 24.3392 17.4442 24.3392 17.4442C24.3392 17.4442 21.4469 22.7275 21.4469 24.9206C21.4469 27.1136 22.4819 28.9515 22.4819 28.9515H21.0296C21.0296 28.9515 18.899 26.4086 18.462 25.1378C18.0251 23.8669 18.1998 22.596 18.1998 22.596C18.1998 22.596 15.8839 22.4646 13.8303 22.596C11.7767 22.7275 10.4072 24.498 10.16 25.4884C9.91287 26.4787 9.81048 28.9515 9.81048 28.9515H8.66211C7.96315 26.7882 7.40803 26.0129 7.70918 24.9206C8.54334 21.8949 8.37949 20.1788 8.18635 19.4145C7.99321 18.6501 6.68552 17.983 6.68552 17.983C7.32609 16.6741 7.97996 16.0452 10.7926 15.9796C13.6052 15.914 17.3915 15.5965 18.6466 14.5553Z" }), +- /* @__PURE__ */ React.createElement("path", { d: "M11.1268 24.7939C11.1268 24.7939 11.4236 27.5481 13.0001 28.9516H14.3511C13.0001 27.4166 12.8527 23.4155 12.8527 23.4155C12.1656 23.6399 11.3045 24.3846 11.1268 24.7939Z" }) ++ /* @__PURE__ */ React.createElement("rect", { width: 32, height: 32, rx: 5, fill: "#F15F26" }), ++ /* @__PURE__ */ React.createElement("path", { fill: "white", d: "M16 6.25C10.9534 6.25 7 8.55625 7 11.5V20.5C7 23.4437 10.9534 25.75 16 25.75C21.0466 25.75 25 23.4437 25 20.5V11.5C25 8.55625 21.0466 6.25 16 6.25ZM23.5 16C23.5 16.9019 22.7612 17.8216 21.4741 18.5237C20.0247 19.3141 18.0803 19.75 16 19.75C13.9197 19.75 11.9753 19.3141 10.5259 18.5237C9.23875 17.8216 8.5 16.9019 8.5 16V14.44C10.0994 15.8463 12.8341 16.75 16 16.75C19.1659 16.75 21.9006 15.8425 23.5 14.44V16ZM21.4741 23.0237C20.0247 23.8141 18.0803 24.25 16 24.25C13.9197 24.25 11.9753 23.8141 10.5259 23.0237C9.23875 22.3216 8.5 21.4019 8.5 20.5V18.94C10.0994 20.3463 12.8341 21.25 16 21.25C19.1659 21.25 21.9006 20.3425 23.5 18.94V20.5C23.5 21.4019 22.7612 22.3216 21.4741 23.0237Z" }), ++ /* @__PURE__ */ React.createElement("path", { fill: "#F15F26", d: "M131.366 25.832C130.422 25.832 129.566 25.64 128.798 25.256C128.03 24.856 127.422 24.264 126.974 23.48C126.526 22.696 126.302 21.728 126.302 20.576C126.302 19.44 126.534 18.464 126.998 17.648C127.478 16.832 128.102 16.208 128.87 15.776C129.654 15.328 130.502 15.104 131.414 15.104C132.374 15.104 133.158 15.312 133.766 15.728C134.39 16.128 134.878 16.6 135.23 17.144L135.062 17.528L135.302 15.536H137.582V25.592H135.11V23.072L135.374 23.672C135.31 23.8 135.174 23.984 134.966 24.224C134.758 24.448 134.478 24.688 134.126 24.944C133.79 25.2 133.39 25.416 132.926 25.592C132.478 25.752 131.958 25.832 131.366 25.832ZM132.038 23.816C132.566 23.816 133.038 23.72 133.454 23.528C133.87 23.336 134.222 23.064 134.51 22.712C134.798 22.36 134.998 21.944 135.11 21.464V19.376C134.982 18.928 134.766 18.544 134.462 18.224C134.158 17.888 133.79 17.624 133.358 17.432C132.942 17.24 132.478 17.144 131.966 17.144C131.39 17.144 130.862 17.288 130.382 17.576C129.902 17.848 129.518 18.232 129.23 18.728C128.942 19.224 128.798 19.8 128.798 20.456C128.798 21.08 128.942 21.648 129.23 22.16C129.534 22.672 129.934 23.08 130.43 23.384C130.926 23.672 131.462 23.816 132.038 23.816Z" }), ++ /* @__PURE__ */ React.createElement("path", { fill: "#F15F26", d: "M119.338 11.1201H121.81V15.5601H124.498V17.5041H121.81V25.5921H119.338V17.5041H117.562V15.5601H119.338V11.1201Z" }), ++ /* @__PURE__ */ React.createElement("path", { fill: "#F15F26", d: "M108.374 25.832C107.43 25.832 106.574 25.64 105.806 25.256C105.038 24.856 104.43 24.264 103.982 23.48C103.534 22.696 103.31 21.728 103.31 20.576C103.31 19.44 103.542 18.464 104.006 17.648C104.486 16.832 105.11 16.208 105.878 15.776C106.662 15.328 107.51 15.104 108.422 15.104C109.382 15.104 110.166 15.312 110.774 15.728C111.398 16.128 111.886 16.6 112.238 17.144L112.07 17.528L112.31 15.536H114.59V25.592H112.118V23.072L112.382 23.672C112.318 23.8 112.182 23.984 111.974 24.224C111.766 24.448 111.486 24.688 111.134 24.944C110.798 25.2 110.398 25.416 109.934 25.592C109.486 25.752 108.966 25.832 108.374 25.832ZM109.046 23.816C109.574 23.816 110.046 23.72 110.462 23.528C110.878 23.336 111.23 23.064 111.518 22.712C111.806 22.36 112.006 21.944 112.118 21.464V19.376C111.99 18.928 111.774 18.544 111.47 18.224C111.166 17.888 110.798 17.624 110.366 17.432C109.95 17.24 109.486 17.144 108.974 17.144C108.398 17.144 107.87 17.288 107.39 17.576C106.91 17.848 106.526 18.232 106.238 18.728C105.95 19.224 105.806 19.8 105.806 20.456C105.806 21.08 105.95 21.648 106.238 22.16C106.542 22.672 106.942 23.08 107.438 23.384C107.934 23.672 108.47 23.816 109.046 23.816Z" }), ++ /* @__PURE__ */ React.createElement("path", { fill: "#F15F26", d: "M86.5623 25.592V8.16797H91.4103C93.1383 8.16797 94.6103 8.43197 95.8263 8.95997C97.0423 9.48797 98.0183 10.184 98.7543 11.048C99.5063 11.912 100.05 12.872 100.386 13.928C100.738 14.984 100.914 16.048 100.914 17.12C100.914 18.416 100.682 19.584 100.218 20.624C99.7543 21.664 99.1223 22.56 98.3223 23.312C97.5223 24.048 96.6023 24.616 95.5623 25.016C94.5223 25.4 93.4183 25.592 92.2503 25.592H86.5623ZM89.1303 23.12H91.7703C92.7143 23.12 93.5783 22.984 94.3623 22.712C95.1623 22.44 95.8503 22.04 96.4263 21.512C97.0183 20.984 97.4743 20.336 97.7943 19.568C98.1143 18.8 98.2743 17.92 98.2743 16.928C98.2743 15.856 98.0903 14.928 97.7223 14.144C97.3703 13.344 96.8983 12.688 96.3063 12.176C95.7143 11.648 95.0503 11.264 94.3143 11.024C93.5943 10.768 92.8583 10.64 92.1063 10.64H89.1303V23.12Z" }), ++ /* @__PURE__ */ React.createElement("path", { fill: "#F15F26", d: "M79.0308 15.5359L79.2708 18.4159L79.1508 18.0319C79.4228 17.4239 79.8068 16.9039 80.3028 16.4719C80.7988 16.0399 81.3108 15.7119 81.8388 15.4879C82.3828 15.2479 82.8388 15.1279 83.2068 15.1279L83.0868 17.5759C82.3188 17.5279 81.6468 17.6719 81.0708 18.0079C80.5108 18.3439 80.0708 18.7919 79.7508 19.3519C79.4308 19.9119 79.2708 20.5119 79.2708 21.1519V25.5919H76.8228V15.5359H79.0308Z" }), ++ /* @__PURE__ */ React.createElement("path", { fill: "#F15F26", d: "M70.5883 15.5358H73.0603V25.5918H70.5883V15.5358ZM70.4443 11.9358C70.4443 11.5518 70.5963 11.2318 70.9003 10.9758C71.2043 10.7198 71.5323 10.5918 71.8843 10.5918C72.2523 10.5918 72.5803 10.7198 72.8683 10.9758C73.1563 11.2318 73.3003 11.5518 73.3003 11.9358C73.3003 12.3198 73.1563 12.6398 72.8683 12.8958C72.5803 13.1358 72.2523 13.2558 71.8843 13.2558C71.5323 13.2558 71.2043 13.1358 70.9003 12.8958C70.5963 12.6398 70.4443 12.3198 70.4443 11.9358Z" }), ++ /* @__PURE__ */ React.createElement("path", { fill: "#F15F26", d: "M60.5852 25.832C59.6412 25.832 58.7852 25.64 58.0172 25.256C57.2492 24.856 56.6412 24.264 56.1932 23.48C55.7452 22.696 55.5212 21.728 55.5212 20.576C55.5212 19.44 55.7532 18.464 56.2172 17.648C56.6972 16.832 57.3212 16.208 58.0892 15.776C58.8732 15.328 59.7212 15.104 60.6332 15.104C61.5932 15.104 62.3772 15.312 62.9852 15.728C63.6092 16.128 64.0972 16.6 64.4492 17.144L64.2812 17.528L64.5212 15.536H66.8012V25.592H64.3292V23.072L64.5932 23.672C64.5292 23.8 64.3932 23.984 64.1852 24.224C63.9772 24.448 63.6972 24.688 63.3452 24.944C63.0092 25.2 62.6092 25.416 62.1452 25.592C61.6972 25.752 61.1772 25.832 60.5852 25.832ZM61.2572 23.816C61.7852 23.816 62.2572 23.72 62.6732 23.528C63.0892 23.336 63.4412 23.064 63.7292 22.712C64.0172 22.36 64.2172 21.944 64.3292 21.464V19.376C64.2012 18.928 63.9852 18.544 63.6812 18.224C63.3772 17.888 63.0092 17.624 62.5772 17.432C62.1612 17.24 61.6972 17.144 61.1852 17.144C60.6092 17.144 60.0812 17.288 59.6012 17.576C59.1212 17.848 58.7372 18.232 58.4492 18.728C58.1612 19.224 58.0172 19.8 58.0172 20.456C58.0172 21.08 58.1612 21.648 58.4492 22.16C58.7532 22.672 59.1532 23.08 59.6492 23.384C60.1452 23.672 60.6812 23.816 61.2572 23.816Z" }), ++ /* @__PURE__ */ React.createElement("path", { fill: "#F15F26", d: "M43.9998 8.16797H54.4398V10.64H46.5678V15.872H53.4558V18.32H46.5678V25.592H43.9998V8.16797Z" }), ++ /* @__PURE__ */ React.createElement("path", { fill: "#F15F26", d: "M150.459 26.082L150.459 26.082Q148.645 26.082 147.234 25.578Q145.822 25.074 144.537 23.915L144.537 23.915Q144.260 23.713 144.121 23.423Q143.983 23.134 143.983 22.831L143.983 22.831Q143.983 22.352 144.336 21.974Q144.688 21.596 145.218 21.596L145.218 21.596Q145.621 21.596 145.974 21.874L145.974 21.874Q146.931 22.756 147.977 23.209Q149.023 23.663 150.434 23.663L150.434 23.663Q151.442 23.663 152.286 23.335Q153.130 23.008 153.634 22.453Q154.138 21.899 154.138 21.168L154.138 21.168Q154.138 20.261 153.622 19.669Q153.105 19.076 152.135 18.686Q151.165 18.295 149.804 18.018L149.804 18.018Q148.544 17.791 147.549 17.388Q146.553 16.985 145.848 16.367Q145.142 15.750 144.764 14.893Q144.386 14.036 144.386 12.902L144.386 12.902Q144.386 11.365 145.192 10.256Q145.999 9.148 147.385 8.543Q148.771 7.938 150.510 7.938L150.510 7.938Q152.097 7.938 153.483 8.429Q154.869 8.921 155.726 9.752L155.726 9.752Q156.331 10.282 156.331 10.886L156.331 10.886Q156.331 11.340 155.965 11.731Q155.600 12.121 155.121 12.121L155.121 12.121Q154.768 12.121 154.516 11.920L154.516 11.920Q154.113 11.491 153.433 11.151Q152.752 10.811 151.984 10.584Q151.215 10.357 150.510 10.357L150.510 10.357Q149.376 10.357 148.569 10.672Q147.763 10.987 147.334 11.529Q146.906 12.071 146.906 12.802L146.906 12.802Q146.906 13.658 147.397 14.213Q147.889 14.767 148.771 15.107Q149.653 15.448 150.787 15.725L150.787 15.725Q152.173 16.027 153.269 16.405Q154.365 16.783 155.121 17.375Q155.877 17.968 156.280 18.850Q156.684 19.732 156.684 21.042L156.684 21.042Q156.684 22.554 155.827 23.688Q154.970 24.822 153.571 25.452Q152.173 26.082 150.459 26.082ZM161.875 13.759L161.875 24.545Q161.875 25.099 161.522 25.465Q161.169 25.830 160.615 25.830L160.615 25.830Q160.086 25.830 159.720 25.465Q159.355 25.099 159.355 24.545L159.355 24.545L159.355 13.759Q159.355 13.205 159.720 12.839Q160.086 12.474 160.615 12.474L160.615 12.474Q161.169 12.474 161.522 12.839Q161.875 13.205 161.875 13.759L161.875 13.759ZM160.590 10.811L160.590 10.811Q159.859 10.811 159.531 10.546Q159.204 10.282 159.204 9.652L159.204 9.652L159.204 9.248Q159.204 8.618 159.556 8.366Q159.909 8.114 160.615 8.114L160.615 8.114Q161.371 8.114 161.698 8.379Q162.026 8.644 162.026 9.248L162.026 9.248L162.026 9.652Q162.026 10.307 161.686 10.559Q161.346 10.811 160.590 10.811ZM165.100 12.726L165.100 12.726L166.486 12.726L166.486 10.735Q166.486 10.181 166.852 9.815Q167.217 9.450 167.746 9.450L167.746 9.450Q168.301 9.450 168.654 9.815Q169.006 10.181 169.006 10.735L169.006 10.735L169.006 12.726L171.022 12.726Q171.526 12.726 171.867 13.066Q172.207 13.406 172.207 13.910L172.207 13.910Q172.207 14.389 171.867 14.717Q171.526 15.044 171.022 15.044L171.022 15.044L169.006 15.044L169.006 22.428Q169.006 22.882 169.158 23.159Q169.309 23.436 169.573 23.537Q169.838 23.638 170.115 23.638Q170.392 23.638 170.607 23.537Q170.821 23.436 171.123 23.436Q171.426 23.436 171.678 23.713Q171.930 23.990 171.930 24.469L171.930 24.469Q171.930 25.074 171.274 25.452Q170.619 25.830 169.863 25.830L169.863 25.830Q169.435 25.830 168.855 25.754Q168.276 25.679 167.734 25.376Q167.192 25.074 166.839 24.406Q166.486 23.738 166.486 22.529L166.486 22.529L166.486 15.044L165.100 15.044Q164.596 15.044 164.256 14.704Q163.916 14.364 163.916 13.885L163.916 13.885Q163.916 13.381 164.256 13.054Q164.596 12.726 165.100 12.726ZM181.052 26.082L181.052 26.082Q178.960 26.082 177.423 25.213Q175.886 24.343 175.042 22.819Q174.198 21.294 174.198 19.328L174.198 19.328Q174.198 17.111 175.092 15.536Q175.987 13.961 177.423 13.117Q178.860 12.272 180.472 12.272L180.472 12.272Q181.707 12.272 182.816 12.764Q183.925 13.255 184.794 14.125Q185.664 14.994 186.168 16.166Q186.672 17.338 186.697 18.724L186.697 18.724Q186.672 19.228 186.294 19.555Q185.916 19.883 185.412 19.883L185.412 19.883L176.667 19.883Q176.768 20.840 177.196 21.596L177.196 21.596Q177.776 22.630 178.759 23.197Q179.742 23.764 180.926 23.764L180.926 23.764Q181.858 23.764 182.463 23.575Q183.068 23.386 183.471 23.108Q183.874 22.831 184.177 22.579L184.177 22.579Q184.555 22.352 184.933 22.352L184.933 22.352Q185.386 22.352 185.689 22.667Q185.991 22.982 185.991 23.411L185.991 23.411Q185.991 23.965 185.437 24.419L185.437 24.419Q184.756 25.074 183.559 25.578Q182.362 26.082 181.052 26.082ZM176.743 17.741L176.743 17.741L184.000 17.741L184.000 17.564Q183.950 16.682 183.421 16.015Q182.892 15.347 182.110 14.981Q181.329 14.616 180.472 14.616L180.472 14.616Q179.716 14.616 179.023 14.855Q178.330 15.095 177.789 15.624Q177.247 16.153 176.944 17.010L176.944 17.010Q176.818 17.363 176.743 17.741ZM188.763 23.764L188.763 23.764Q188.536 23.411 188.562 22.945Q188.587 22.478 189.091 22.151L189.091 22.151Q189.444 21.924 189.834 21.962Q190.225 22.000 190.578 22.352L190.578 22.352Q191.283 23.134 192.153 23.587Q193.022 24.041 194.257 24.041L194.257 24.041Q194.761 24.016 195.290 23.877Q195.819 23.738 196.197 23.373Q196.575 23.008 196.575 22.302L196.575 22.302Q196.575 21.672 196.172 21.294Q195.769 20.916 195.114 20.677Q194.458 20.437 193.702 20.236L193.702 20.236Q192.896 20.009 192.077 19.732Q191.258 19.454 190.603 19.013Q189.948 18.572 189.532 17.867Q189.116 17.161 189.116 16.128L189.116 16.128Q189.116 14.944 189.784 14.087Q190.452 13.230 191.523 12.751Q192.594 12.272 193.854 12.272L193.854 12.272Q194.584 12.272 195.391 12.461Q196.197 12.650 196.953 13.054Q197.709 13.457 198.264 14.112L198.264 14.112Q198.516 14.440 198.553 14.893Q198.591 15.347 198.138 15.700L198.138 15.700Q197.835 15.952 197.407 15.926Q196.978 15.901 196.701 15.649L196.701 15.649Q196.222 15.044 195.466 14.704Q194.710 14.364 193.753 14.364L193.753 14.364Q193.274 14.364 192.757 14.503Q192.241 14.641 191.888 14.994Q191.535 15.347 191.535 16.027L191.535 16.027Q191.535 16.657 191.951 17.035Q192.367 17.413 193.047 17.665Q193.728 17.917 194.534 18.119L194.534 18.119Q195.315 18.320 196.084 18.598Q196.852 18.875 197.470 19.316Q198.087 19.757 198.478 20.450Q198.868 21.143 198.868 22.201L198.868 22.201Q198.868 23.436 198.150 24.305Q197.432 25.175 196.336 25.628Q195.240 26.082 194.030 26.082L194.030 26.082Q192.594 26.082 191.170 25.565Q189.746 25.049 188.763 23.764Z" }) + ); + const TrashIcon = ({ ...props }) => /* @__PURE__ */ React.createElement( + "svg", +@@ -47401,7 +47421,7 @@ const Nav = ({ + style: { maxWidth: `${sidebarWidth}px` }, + ...props + }, +- /* @__PURE__ */ React.createElement("div", { className: "flex w-full px-4 py-3 justify-between items-center gap-2 border-b border-gray-200" }, /* @__PURE__ */ React.createElement("span", { className: "text-left inline-flex items-center text-xl tracking-wide text-gray-800/80 flex-1 gap-1" }, /* @__PURE__ */ React.createElement(TinaExtendedIcon, { className: "h-8 w-auto fill-orange-500" })), /* @__PURE__ */ React.createElement( ++ /* @__PURE__ */ React.createElement("div", { className: "flex w-full px-4 py-3 justify-between items-center gap-2 border-b border-gray-200" }, /* @__PURE__ */ React.createElement("span", { className: "text-left inline-flex items-center text-xl tracking-wide text-gray-800/80 flex-1 gap-1" }, /* @__PURE__ */ React.createElement(FairDataLogo, { className: "h-8 w-auto" })), /* @__PURE__ */ React.createElement( + "button", + { + className: cn( diff --git a/scripts/build.admin-title.mjs b/scripts/build.admin-title.mjs new file mode 100644 index 00000000..4e860f44 --- /dev/null +++ b/scripts/build.admin-title.mjs @@ -0,0 +1,58 @@ +/** + * Personalize the TinaCMS admin browser-tab title per deployment. + * + * The admin is rebranded to FairData via patch-package (see tina/branding/), + * but the tab title should read " FairData Site" — singular, + * naming the specific site this deployment serves. The project name is the + * Branding collection's `title` (the same value the public site uses), which + * is only known per-deployment, so it can't live in a static patch. + * + * This runs after `tinacms build` (which emits public/admin/index.html) and + * before `astro build` (which copies public/ into dist/). It reads the cloned + * branding content and rewrites the admin . If anything is missing it + * leaves the existing title (the patched "FairData" fallback) untouched. + */ +import { readFile, writeFile } from 'node:fs/promises'; +import { existsSync } from 'node:fs'; +import path from 'node:path'; + +const ADMIN_HTML = path.resolve('public/admin/index.html'); +const BRANDING_JSON = path.resolve('content/branding/branding.json'); + +const escapeHtml = (s) => + s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>'); + +async function main() { + if (!existsSync(ADMIN_HTML)) { + console.log('[admin-title] public/admin/index.html not found — skipping (did tinacms build run?)'); + return; + } + + let projectName; + try { + const branding = JSON.parse(await readFile(BRANDING_JSON, 'utf8')); + projectName = typeof branding.title === 'string' ? branding.title.trim() : ''; + } catch { + console.log('[admin-title] no branding.json title — leaving the fallback title in place'); + return; + } + if (!projectName) { + console.log('[admin-title] empty branding title — leaving the fallback title in place'); + return; + } + + const title = `${escapeHtml(projectName)} FairData Site`; + const html = await readFile(ADMIN_HTML, 'utf8'); + if (!/<title>[\s\S]*?<\/title>/.test(html)) { + console.log('[admin-title] no <title> tag in admin HTML — skipping'); + return; + } + const next = html.replace(/<title>[\s\S]*?<\/title>/, `<title>${title}`); + await writeFile(ADMIN_HTML, next); + console.log(`[admin-title] set admin tab title to "${title}"`); +} + +main().catch((err) => { + // Non-fatal: a wrong tab title shouldn't fail a deploy. + console.warn('[admin-title] skipped due to error:', err.message); +}); diff --git a/tina/branding/README.md b/tina/branding/README.md new file mode 100644 index 00000000..ba1bdde5 --- /dev/null +++ b/tina/branding/README.md @@ -0,0 +1,99 @@ +# TinaCMS → FairData admin branding + +The TinaCMS admin UI ships its own "tinacms" llama branding with no config +option to override it. We rebrand it to FairData by patching the published +packages with [`patch-package`](https://github.com/ds300/patch-package). The +patches live in `/patches` and are reapplied automatically on every +`npm install` via the `postinstall` script, so the branded admin is produced by +the normal `tinacms build` on Netlify. + +## What gets replaced + +| Surface | Tina default | Patched to | Where | +|---|---|---|---| +| Slide-out hamburger menu header | `TinaExtendedIcon` (`tinacms` wordmark) | `FairDataLogo` (db mark + "FairData Sites" wordmark) | `tinacms` | +| Top-bar / page nav headers | `TinaIcon` llama | FairData db icon mark | `tinacms` | +| Modal dialog headers (incl. the auth/login modal) | `TinaIcon` llama | FairData db icon mark | `tinacms` | +| Browser tab title (prod build) | `TinaCMS` | ` FairData Site` | `scripts/build.admin-title.mjs` (+ `@tinacms/app` fallback) | +| Browser tab title (dev server) | `TinaCMS` | `FairData` | `@tinacms/cli` | + +## Admin browser-tab title + +The deployed admin tab reads **` FairData Site`** (singular — +it names the specific site this deployment serves, e.g. "Marronage Mapping +Project FairData Site"). The project name is the Branding collection's `title` +(`content/branding/branding.json`), the same value the public site uses, so it +is only known per-deployment and can't be a static patch. + +`scripts/build.admin-title.mjs` runs in the `build` script **after** +`tinacms build` (which emits `public/admin/index.html`) and **before** +`astro build` (which copies `public/` into `dist/`). It reads the cloned +branding title and rewrites the admin ``. If branding is missing it +leaves the patched `@tinacms/app` fallback (`FairData`) in place, so the title +is never "TinaCMS". The dev server (`tinacms dev`) uses the `@tinacms/cli` +title (`FairData`) and is not personalized. + +Note the **singular/plural** distinction: the *wordmark* is "FairData Sites" +(the product), while the *tab title* is "… FairData Site" (this one site). + +Tina uses two brand components, and the patch preserves Tina's original +icon-vs-wordmark split (so the wordmark never appears twice when the drawer is +open alongside a content-area header): + +- `TinaIcon` (llama icon, viewBox `0 0 32 32`) — used in the top-bar/page nav + headers (`h-10 w-auto`) and modal dialog headers (`w-10 h-auto`). Redefined as + the **FairData db icon mark** (square, two-tone). These are the compact + content-chrome marks; left as the icon, not the wordmark. +- `TinaExtendedIcon` (the `tinacms` wordmark) — used once, in the slide-out + hamburger menu header (`h-8 w-auto`). Its single usage is swapped to a new wide + `FairDataLogo` component (viewBox `0 0 201 32`, the db mark + "FairData Sites" + wordmark). + +So the patch redefines `TinaIcon` as the FairData icon mark (covering all +content headers + modals) and adds one new `FairDataLogo` wordmark used only in +the nav drawer. Putting the wordmark only in the drawer avoids showing it twice +when the drawer is pinned open next to a content-area header. + +The Tina Cloud `loginLlama` PNG is intentionally left alone — it only renders +when `isTinaCloud` is true, and this deployment uses Clerk SSO, so it never +appears. + +## Source art + +- `fairdata-icon.svg` — db mark only (32×32) +- `fairdata-logo.svg` — db mark + "FairData Sites" wordmark lockup (201×32) + +The icon mark and the "FairData" portion of the wordmark were exported from +Figma "Performant Studio Dashboard" (`TWSTQnmnQcQmnYB6pYRPN0`), node `130:1073` +(`studio_logos`). Brand orange is `#F15F26`. The SVG paths in the patches are +derived from these files (drop-shadow filters removed to avoid duplicate +filter-id rendering quirks across repeated instances). + +The Figma `studio_logos` component only has a "FairData" wordmark — there is no +"FairData Sites" lockup. The " Sites" glyphs were added by typesetting the word +in **Quicksand SemiBold (600)** — the typeface that matches the FairData +wordmark — and converting it to outline paths with +[opentype.js](https://github.com/opentypejs/opentype.js), positioned to sit on +the same baseline immediately after "FairData". This keeps the lockup a +self-contained vector (no runtime web-font dependency). To regenerate the +"Sites" path, load `Quicksand 600` and run +`font.getPath('Sites', 143, 25.83, 25.2).toPathData(3)` (start x ≈ 143, +baseline y ≈ 25.83, font-size ≈ 25.2 for a ~17.66 cap height in the 32-tall +viewBox), then extend the viewBox width to the resulting advance (~201). + +## Regenerating the patches after a TinaCMS upgrade + +`patch-package` pins each patch to a package version (e.g. +`tinacms+3.6.1.patch`). After bumping `tinacms`, `@tinacms/app`, or +`@tinacms/cli`, the patch may no longer apply cleanly — `postinstall` will warn. +To refresh: + +1. Locate the new render sites in `node_modules/tinacms/dist/index.js`: + `TinaIcon` (redefine as the icon mark; leave its usages as-is) and + `TinaExtendedIcon` (swap its single nav-drawer usage to `FairDataLogo`). + Also the `<title>TinaCMS` in `node_modules/@tinacms/app/index.html` + and `@tinacms/cli/dist/index.js`. +2. Reapply the edits described above (use the paths in `fairdata-icon.svg` / + `fairdata-logo.svg`). +3. Run `npx patch-package tinacms @tinacms/app @tinacms/cli`. +4. Delete the stale patch files for the old versions and commit the new ones. diff --git a/tina/branding/fairdata-icon.svg b/tina/branding/fairdata-icon.svg new file mode 100644 index 00000000..8d0411d1 --- /dev/null +++ b/tina/branding/fairdata-icon.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tina/branding/fairdata-logo.svg b/tina/branding/fairdata-logo.svg new file mode 100644 index 00000000..1da097a5 --- /dev/null +++ b/tina/branding/fairdata-logo.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +