From a2ec0d93fb2d891ddeae8328ec20f60afb411fcd Mon Sep 17 00:00:00 2001 From: Justin Gasper Date: Fri, 27 Jun 2025 14:25:03 +1000 Subject: [PATCH 1/6] Hacks for v6 challenge API --- .gitignore | 2 +- config/constants/development.js | 16 +-- package-lock.json | 129 ++++++++++++++++++ package.json | 3 +- server.js | 4 +- .../ChallengeViewTabs/index.js | 2 +- .../ChallengeEditor/Copilot-Field/index.js | 3 +- src/components/ChallengeEditor/index.js | 16 +-- .../ChallengeCard/index.js | 2 +- src/config/constants.js | 10 +- src/containers/ChallengeEditor/index.js | 4 +- 11 files changed, 161 insertions(+), 30 deletions(-) diff --git a/.gitignore b/.gitignore index c4b8ad9b..a556994b 100644 --- a/.gitignore +++ b/.gitignore @@ -27,7 +27,7 @@ yarn-error.log* *.env *.vscode - +*.pem # e2e test case test-automation/temp test-automation/test-results \ No newline at end of file diff --git a/config/constants/development.js b/config/constants/development.js index fd7938dc..7ce4b546 100644 --- a/config/constants/development.js +++ b/config/constants/development.js @@ -12,18 +12,18 @@ module.exports = { ACCOUNTS_APP_LOGIN_URL: `https://accounts-auth0.${DOMAIN}`, COMMUNITY_APP_URL: `https://www.${DOMAIN}`, MEMBER_API_URL: `${DEV_API_HOSTNAME}/v5/members`, - CHALLENGE_API_URL: `${DEV_API_HOSTNAME}/v5/challenges`, + CHALLENGE_API_URL: `${DEV_API_HOSTNAME}/v6/challenges`, CHALLENGE_API_VERSION: '1.1.0', - CHALLENGE_TIMELINE_TEMPLATES_URL: `${DEV_API_HOSTNAME}/v5/timeline-templates`, - CHALLENGE_TYPES_URL: `${DEV_API_HOSTNAME}/v5/challenge-types`, - CHALLENGE_TRACKS_URL: `${DEV_API_HOSTNAME}/v5/challenge-tracks`, - CHALLENGE_PHASES_URL: `${DEV_API_HOSTNAME}/v5/challenge-phases`, - CHALLENGE_TIMELINES_URL: `${DEV_API_HOSTNAME}/v5/challenge-timelines`, + CHALLENGE_TIMELINE_TEMPLATES_URL: `${DEV_API_HOSTNAME}/v6/timeline-templates`, + CHALLENGE_TYPES_URL: `${DEV_API_HOSTNAME}/v6/challenge-types`, + CHALLENGE_TRACKS_URL: `${DEV_API_HOSTNAME}/v6/challenge-tracks`, + CHALLENGE_PHASES_URL: `${DEV_API_HOSTNAME}/v6/challenge-phases`, + CHALLENGE_TIMELINES_URL: `${DEV_API_HOSTNAME}/v6/challenge-timelines`, PROJECT_API_URL: `${DEV_API_HOSTNAME}/v5/projects`, GROUPS_API_URL: `${DEV_API_HOSTNAME}/v5/groups`, TERMS_API_URL: `${DEV_API_HOSTNAME}/v5/terms`, - RESOURCES_API_URL: `${DEV_API_HOSTNAME}/v5/resources`, - RESOURCE_ROLES_API_URL: `${DEV_API_HOSTNAME}/v5/resource-roles`, + RESOURCES_API_URL: `${DEV_API_HOSTNAME}/v6/resources`, + RESOURCE_ROLES_API_URL: `${DEV_API_HOSTNAME}/v6/resource-roles`, SUBMISSIONS_API_URL: `${DEV_API_HOSTNAME}/v5/submissions`, SUBMISSION_REVIEW_APP_URL: `https://submission-review.${DOMAIN}/challenges`, STUDIO_URL: `https://studio.${DOMAIN}`, diff --git a/package-lock.json b/package-lock.json index 26029628..013d6894 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3137,6 +3137,25 @@ "resolved": "https://registry.npmjs.org/@tanem/svg-injector/-/svg-injector-1.2.1.tgz", "integrity": "sha512-mA5Q5ulPoGQ+e08Vts1R6xw2QU0BKEnMH/KcqoYoS7Gk6imvMTpyFPeu1g+NOZObSIoAzA3/kRzY8m96cEBA2A==" }, + "@toast-ui/editor": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@toast-ui/editor/-/editor-2.5.4.tgz", + "integrity": "sha512-XsuYlPQxhec9dHQREFAigjE4enHSuGMF7D0YQ6wW7phmusvAu0FnJfZUPjJBoU/GKz7WP5U6fKU9/P+8j65D8A==", + "requires": { + "@types/codemirror": "0.0.71", + "codemirror": "^5.48.4" + }, + "dependencies": { + "@types/codemirror": { + "version": "0.0.71", + "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-0.0.71.tgz", + "integrity": "sha512-b2oEEnno1LIGKMR7uBEsr40al1UijF1HEpRn0+Yf1xOLl24iQgB7DBpZVMM7y54G5wCNoclDrRO65E6KHPNO2w==", + "requires": { + "@types/tern": "*" + } + } + } + }, "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -3255,6 +3274,25 @@ "@types/unist": "*" } }, + "@types/hoist-non-react-statics": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz", + "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==", + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + } + } + }, "@types/katex": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.11.1.tgz", @@ -3318,6 +3356,21 @@ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, + "@types/react": { + "version": "19.1.6", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.6.tgz", + "integrity": "sha512-JeG0rEWak0N6Itr6QUx+X60uQmN+5t3j9r/OVDtWzFXKaj6kD1BwJzOksD0FF6iWxZlbE1kB0q9vtnU2ekqa1Q==", + "requires": { + "csstype": "^3.0.2" + }, + "dependencies": { + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + } + } + }, "@types/serve-static": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", @@ -5819,6 +5872,11 @@ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, + "codemirror": { + "version": "5.65.19", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.19.tgz", + "integrity": "sha512-+aFkvqhaAVr1gferNMuN8vkTSrWIFvzlMV9I2KBLCWS2WpZ2+UAkZjlMZmEuT+gcXTi6RrGQCkWq1/bDtGqhIA==" + }, "codemirror-spell-checker": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/codemirror-spell-checker/-/codemirror-spell-checker-1.1.2.tgz", @@ -6821,6 +6879,11 @@ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, + "deepmerge": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", + "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" + }, "default-gateway": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", @@ -8795,6 +8858,41 @@ "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz", "integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==" }, + "formik": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/formik/-/formik-2.4.6.tgz", + "integrity": "sha512-A+2EI7U7aG296q2TLGvNapDNTZp1khVt5Vk0Q/fyfSROss0V/V6+txt2aJnwEos44IxTCW/LYAi/zgWzlevj+g==", + "requires": { + "@types/hoist-non-react-statics": "^3.3.1", + "deepmerge": "^2.1.1", + "hoist-non-react-statics": "^3.3.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "react-fast-compare": "^2.0.1", + "tiny-warning": "^1.0.2", + "tslib": "^2.0.0" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + } + } + }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -17495,6 +17593,11 @@ "react-is": "^16.8.1" } }, + "property-expr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", + "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==" + }, "property-information": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", @@ -21553,6 +21656,11 @@ "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" }, + "tiny-case": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", + "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" + }, "tiny-invariant": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", @@ -21799,6 +21907,11 @@ } } }, + "toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" + }, "tough-cookie": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", @@ -21914,6 +22027,11 @@ "prelude-ls": "~1.1.2" } }, + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -24272,6 +24390,17 @@ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" }, + "yup": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/yup/-/yup-1.6.1.tgz", + "integrity": "sha512-JED8pB50qbA4FOkDol0bYF/p60qSEDQqBD0/qeIrUCG1KbPBIQ776fCUNb9ldbPcSTxA69g/47XTo4TqWiuXOA==", + "requires": { + "property-expr": "^2.0.5", + "tiny-case": "^1.0.3", + "toposort": "^2.0.2", + "type-fest": "^2.19.0" + } + }, "zwitch": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", diff --git a/package.json b/package.json index dbd288db..e3514307 100644 --- a/package.json +++ b/package.json @@ -128,7 +128,8 @@ "build": "node scripts/build.js", "lint": "eslint ./src", "lint:fix": "eslint --fix ./src", - "test": "node scripts/test.js" + "test": "node scripts/test.js", + "restart": "node scripts/build.js && node server.js" }, "eslintConfig": { "extends": [ diff --git a/server.js b/server.js index d81a88a5..b9d2ccae 100644 --- a/server.js +++ b/server.js @@ -17,10 +17,10 @@ function check () { } app.use(healthCheck.middleware([check])) app.use((req, res, next) => { - res.header('Referrer-Policy', 'strict-origin-when-cross-origin') + //res.header('Referrer-Policy', 'strict-origin-when-cross-origin') res.header('Permissions-Policy', 'geolocation=(), microphone=(), camera=()') res.header('X-Content-Type-Options', 'nosniff') - res.header('Strict-Transport-Security', 'max-age=31536000; includeSubDomains; preload') + // res.header('Strict-Transport-Security', 'max-age=31536000; includeSubDomains; preload') res.header('Cache-control', 'public, max-age=0') res.header('Pragma', 'no-cache') res.setHeader('X-Frame-Options', 'DENY') diff --git a/src/components/ChallengeEditor/ChallengeViewTabs/index.js b/src/components/ChallengeEditor/ChallengeViewTabs/index.js index 84ee5676..8bc2c4e1 100644 --- a/src/components/ChallengeEditor/ChallengeViewTabs/index.js +++ b/src/components/ChallengeEditor/ChallengeViewTabs/index.js @@ -206,7 +206,7 @@ const ChallengeViewTabs = ({ (
)} {canLaunch && (
- {challenge.legacyId || isTask ? ( + {challenge ? ( { let errMessage = 'Please set a copilot' const handleProperty = copilots.handle ? 'handle' : 'memberHandle' const selectedCopilot = _.find(copilots, { [handleProperty]: challenge.copilot }) const selectedCopilotHandle = selectedCopilot ? selectedCopilot[handleProperty] : undefined - const copilotFee = _.find(challenge.prizeSets, p => p.type === 'copilot', []) + const copilotFee = _.find(challenge.prizeSets, p => p.type === PRIZE_SETS_TYPE.COPILOT_PAYMENT, []) const selfService = challenge.selfService const copilotIsSelf = loggedInUser && selectedCopilotHandle === loggedInUser.handle const assignButtonText = `${selectedCopilot && copilotIsSelf ? 'Una' : 'A'}ssign Yourself` diff --git a/src/components/ChallengeEditor/index.js b/src/components/ChallengeEditor/index.js index 6f59b8c0..ef0806b0 100644 --- a/src/components/ChallengeEditor/index.js +++ b/src/components/ChallengeEditor/index.js @@ -956,7 +956,7 @@ class ChallengeEditor extends Component { return { ...p, prizes } }) challenge.status = status - if (status === 'Active' && isTask) { + if (status === CHALLENGE_STATUS.ACTIVE && isTask) { challenge.startDate = moment().format() } @@ -1024,7 +1024,7 @@ class ChallengeEditor extends Component { } const newChallenge = { - status: 'New', + status: CHALLENGE_STATUS.NEW, projectId: this.props.projectId, name, typeId, @@ -1095,7 +1095,7 @@ class ChallengeEditor extends Component { return ([ { name: `${challenge.name} Discussion`, - type: 'challenge', + type: 'CHALLENGE', provider: 'vanilla' } ]) @@ -1290,11 +1290,11 @@ class ChallengeEditor extends Component { } async onActiveChallenge () { - this.updateAllChallengeInfo('Active') + this.updateAllChallengeInfo(CHALLENGE_STATUS.ACTIVE) } async saveDraft () { - this.updateAllChallengeInfo('Draft') + this.updateAllChallengeInfo(CHALLENGE_STATUS.DRAFT) } async onlySave () { @@ -1487,7 +1487,7 @@ class ChallengeEditor extends Component { Closing Task Confirmation Modal and Error Modal */ if (isCloseTask && !isConfirm) { - const taskPrize = _.get(_.find(challenge.prizeSets, { type: 'placement' }), 'prizes[0].value') + const taskPrize = _.get(_.find(challenge.prizeSets, { type: PRIZE_SETS_TYPE.CHALLENGE_PRIZES }), 'prizes[0].value') const assignedMemberId = _.get(assignedMemberDetails, 'userId') const assignedMember = _.get(assignedMemberDetails, 'handle', `User Id: ${assignedMemberId}`) @@ -1535,7 +1535,7 @@ class ChallengeEditor extends Component { - {(challenge.legacyId || isTask) && !this.state.hasValidationErrors ? ( + {!this.state.hasValidationErrors ? ( ) : ( diff --git a/src/components/ChallengesComponent/ChallengeCard/index.js b/src/components/ChallengesComponent/ChallengeCard/index.js index 4347bc98..9947f48a 100644 --- a/src/components/ChallengesComponent/ChallengeCard/index.js +++ b/src/components/ChallengesComponent/ChallengeCard/index.js @@ -197,7 +197,7 @@ class ChallengeCard extends React.Component { this.setState({ isSaving: true }) const isTask = _.get(challenge, 'task.isTask', false) const payload = { - status: 'Active' + status: CHALLENGE_STATUS.ACTIVE } if (isTask) { payload.startDate = moment().format() diff --git a/src/config/constants.js b/src/config/constants.js index 2ee6e0ee..aa667f56 100644 --- a/src/config/constants.js +++ b/src/config/constants.js @@ -201,10 +201,10 @@ export const PHASE_STATUS = { // List of prize sets types export const PRIZE_SETS_TYPE = { - CHALLENGE_PRIZES: 'placement', - COPILOT_PAYMENT: 'copilot', - REVIEWER_PAYMENT: 'reviewer', - CHECKPOINT_PRIZES: 'checkpoint' + CHALLENGE_PRIZES: 'PLACEMENT', + COPILOT_PAYMENT: 'COPILOT', + REVIEWER_PAYMENT: 'REVIEWER', + CHECKPOINT_PRIZES: 'CHECKPOINT' } export const REVIEW_TYPES = { @@ -321,7 +321,7 @@ export const GROUPS_DROPDOWN_PER_PAGE = 1000000 // make sure we are getting all /** * The list of challenge types which can have multiple prizes */ -export const CHALLENGE_TYPES_WITH_MULTIPLE_PRIZES = ['Challenge'] +export const CHALLENGE_TYPES_WITH_MULTIPLE_PRIZES = ['CHALLENGE'] /** * All the repeating messages. diff --git a/src/containers/ChallengeEditor/index.js b/src/containers/ChallengeEditor/index.js index 2f55d3b5..2b04bedf 100644 --- a/src/containers/ChallengeEditor/index.js +++ b/src/containers/ChallengeEditor/index.js @@ -38,7 +38,7 @@ import { loadSubmissions } from '../../actions/challengeSubmissions' import { loadProject } from '../../actions/projects' import { connect } from 'react-redux' -import { SUBMITTER_ROLE_UUID, MESSAGE, PROJECT_ROLES } from '../../config/constants' +import { SUBMITTER_ROLE_UUID, MESSAGE, PROJECT_ROLES, CHALLENGE_STATUS } from '../../config/constants' import { patchChallenge } from '../../services/challenges' import ConfirmationModal from '../../components/Modal/ConfirmationModal' import AlertModal from '../../components/Modal/AlertModal' @@ -268,7 +268,7 @@ class ChallengeEditor extends Component { try { this.setState({ isLaunching: true }) const payload = { - status: 'Active' + status: CHALLENGE_STATUS.ACTIVE } if (isTask) { payload.startDate = moment().format() From fb89618462b7fb4c57bede8750845a9346668059 Mon Sep 17 00:00:00 2001 From: himaniraghav3 Date: Fri, 1 Aug 2025 20:14:44 +0530 Subject: [PATCH 2/6] PM-1270 Exclude cancelled and completed projects from copilot requests creation --- src/components/ChallengesComponent/index.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/components/ChallengesComponent/index.js b/src/components/ChallengesComponent/index.js index dd932641..6502354a 100644 --- a/src/components/ChallengesComponent/index.js +++ b/src/components/ChallengesComponent/index.js @@ -7,7 +7,7 @@ import PropTypes from 'prop-types' import { Helmet } from 'react-helmet' import { Link } from 'react-router-dom' import ProjectStatus from './ProjectStatus' -import { PROJECT_ROLES, PROJECT_STATUS, COPILOTS_URL } from '../../config/constants' +import { PROJECT_ROLES, PROJECT_STATUS, COPILOTS_URL, CHALLENGE_STATUS } from '../../config/constants' import { PrimaryButton, OutlineButton } from '../Buttons' import ChallengeList from './ChallengeList' import styles from './ChallengesComponent.module.scss' @@ -53,6 +53,12 @@ const ChallengesComponent = ({ const isReadOnly = checkReadOnlyRoles(auth.token) || loginUserRoleInProject === PROJECT_ROLES.READ const isAdminOrCopilot = checkAdminOrCopilot(auth.token, activeProject) + const projectStatus = activeProject && activeProject.status + ? activeProject.status.toUpperCase() + : '' + const isCompletedOrCancelled = + projectStatus === CHALLENGE_STATUS.CANCELLED || projectStatus === CHALLENGE_STATUS.COMPLETED + useEffect(() => { const loggedInUser = auth.user const projectMembers = activeProject.members @@ -94,7 +100,7 @@ const ChallengesComponent = ({ className={styles.btnOutline} /> )} - {(checkAdmin(auth.token) || checkManager(auth.token)) && ( + {(checkAdmin(auth.token) || checkManager(auth.token)) && !isCompletedOrCancelled && ( Date: Tue, 12 Aug 2025 09:28:08 +1000 Subject: [PATCH 3/6] Limit challenge name to only letters and numbers to avoid Informix issues --- src/components/ChallengeEditor/ChallengeName-Field/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ChallengeEditor/ChallengeName-Field/index.js b/src/components/ChallengeEditor/ChallengeName-Field/index.js index c5cbbd28..470bb7e7 100644 --- a/src/components/ChallengeEditor/ChallengeName-Field/index.js +++ b/src/components/ChallengeEditor/ChallengeName-Field/index.js @@ -54,4 +54,4 @@ ChallengeNameField.propTypes = { onUpdateInput: PropTypes.func.isRequired } -export default ChallengeNameField \ No newline at end of file +export default ChallengeNameField From 8990be2a654952b85e3cd5fcf91f9dc5a61cd2db Mon Sep 17 00:00:00 2001 From: Justin Gasper Date: Tue, 12 Aug 2025 09:52:23 +1000 Subject: [PATCH 4/6] Revert "Hacks for v6 challenge API" This reverts commit a2ec0d93fb2d891ddeae8328ec20f60afb411fcd. --- .gitignore | 2 +- config/constants/development.js | 16 +-- local.topcoder-dev.com-key.pem | 28 ++++ local.topcoder-dev.com.pem | 26 ++++ localhost-key.pem | 28 ++++ localhost.pem | 26 ++++ package-lock.json | 129 ------------------ package.json | 3 +- server.js | 4 +- .../ChallengeViewTabs/index.js | 2 +- .../ChallengeEditor/Copilot-Field/index.js | 3 +- src/components/ChallengeEditor/index.js | 16 +-- .../ChallengeCard/index.js | 2 +- src/config/constants.js | 8 +- src/containers/ChallengeEditor/index.js | 4 +- 15 files changed, 137 insertions(+), 160 deletions(-) create mode 100644 local.topcoder-dev.com-key.pem create mode 100644 local.topcoder-dev.com.pem create mode 100644 localhost-key.pem create mode 100644 localhost.pem diff --git a/.gitignore b/.gitignore index a556994b..c4b8ad9b 100644 --- a/.gitignore +++ b/.gitignore @@ -27,7 +27,7 @@ yarn-error.log* *.env *.vscode -*.pem + # e2e test case test-automation/temp test-automation/test-results \ No newline at end of file diff --git a/config/constants/development.js b/config/constants/development.js index e6fc0644..e06c0902 100644 --- a/config/constants/development.js +++ b/config/constants/development.js @@ -12,18 +12,18 @@ module.exports = { ACCOUNTS_APP_LOGIN_URL: `https://accounts-auth0.${DOMAIN}`, COMMUNITY_APP_URL: `https://www.${DOMAIN}`, MEMBER_API_URL: `${DEV_API_HOSTNAME}/v5/members`, - CHALLENGE_API_URL: `${DEV_API_HOSTNAME}/v6/challenges`, + CHALLENGE_API_URL: `${DEV_API_HOSTNAME}/v5/challenges`, CHALLENGE_API_VERSION: '1.1.0', - CHALLENGE_TIMELINE_TEMPLATES_URL: `${DEV_API_HOSTNAME}/v6/timeline-templates`, - CHALLENGE_TYPES_URL: `${DEV_API_HOSTNAME}/v6/challenge-types`, - CHALLENGE_TRACKS_URL: `${DEV_API_HOSTNAME}/v6/challenge-tracks`, - CHALLENGE_PHASES_URL: `${DEV_API_HOSTNAME}/v6/challenge-phases`, - CHALLENGE_TIMELINES_URL: `${DEV_API_HOSTNAME}/v6/challenge-timelines`, + CHALLENGE_TIMELINE_TEMPLATES_URL: `${DEV_API_HOSTNAME}/v5/timeline-templates`, + CHALLENGE_TYPES_URL: `${DEV_API_HOSTNAME}/v5/challenge-types`, + CHALLENGE_TRACKS_URL: `${DEV_API_HOSTNAME}/v5/challenge-tracks`, + CHALLENGE_PHASES_URL: `${DEV_API_HOSTNAME}/v5/challenge-phases`, + CHALLENGE_TIMELINES_URL: `${DEV_API_HOSTNAME}/v5/challenge-timelines`, PROJECT_API_URL: `${DEV_API_HOSTNAME}/v5/projects`, GROUPS_API_URL: `${DEV_API_HOSTNAME}/v5/groups`, TERMS_API_URL: `${DEV_API_HOSTNAME}/v5/terms`, - RESOURCES_API_URL: `${DEV_API_HOSTNAME}/v6/resources`, - RESOURCE_ROLES_API_URL: `${DEV_API_HOSTNAME}/v6/resource-roles`, + RESOURCES_API_URL: `${DEV_API_HOSTNAME}/v5/resources`, + RESOURCE_ROLES_API_URL: `${DEV_API_HOSTNAME}/v5/resource-roles`, SUBMISSIONS_API_URL: `${DEV_API_HOSTNAME}/v5/submissions`, REVIEW_TYPE_API_URL: `${DEV_API_HOSTNAME}/v5/reviewTypes`, SUBMISSION_REVIEW_APP_URL: `https://submission-review.${DOMAIN}/challenges`, diff --git a/local.topcoder-dev.com-key.pem b/local.topcoder-dev.com-key.pem new file mode 100644 index 00000000..c09c3687 --- /dev/null +++ b/local.topcoder-dev.com-key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDSaA4EMTt5Dgoc +VnvkZx1g0LoRfFDjM+iKbL/rly9c71gnqIwdGZNo3t14XdAE+soGZwsiclmBIHXb +6AfY9mOjSeCsWyqKuCGNp7kvP6/rQ/OAeWiVqa7y339Fl2JTEGnHd0aMps9hdSMR +UINpkBkMKTTeVVoF1d2Ybv5G8bwMOg0xyOConwla2yZoCZWUffHH2er93t8n0r0I +L3kYOyRNQUeEH01+bjwilVAEIih6lT78mKMp3Bj49RC1+IDr0OnLEp4onBwIhXGX +UCpxGvacxRXFGIx/1JvReHnKMCJw+YVthYv4PfPbsqf04zYjdRv1WH8SPy0QbN7U +J6Xs2K1HAgMBAAECggEAWWSkL9vK7M+uNAP6dzvoG24S38L1itJPBiDWGX4OPWnj +BlZx0RtAqdmmNrGE49i5ZKb68BOtO1NTP68BRojIJGQK9K93D6DTgJ+16gEg+M/R +8M+kQ5HoJoAWTrbWq3vZtUlTzAZDLaDa2UxfyMXUHnqTX7LboIcQsubVWcbyoi5y +myReflYeootcbw1uuSrIAIUubDnJHhTTl+A/Sh65orNgJhhCkwNAxnYlm1bjPHUr +NKkqjD9kRfS3/VOYOSmdB3sfQ7onTILhmqtvvtAQbdVuOPDjEtSdlU+QlR0rCB2U +VrxsWk20EANVM8uam4x54cZfsAmV9wOMXhlCK80LQQKBgQDlX43y/P/5PbmRPm+u +9iStmQJPfLEdY6rstov+LXaw0tXkBlLIsr/CCvidyhqQjo7MbCNDRU39SlaMyuK8 +QyQfgkpuFojfffKFXFg9aX8d1+AjT9x6rbYF6Mya7QjQT86W4Wb01RUMvgBS/yzu +WnwU/nUWqjHP8OfWo6H/B+Ts3wKBgQDq1NnJfpCQa5fwMtCbkilyRSeRoreCN8yX +0vIULdQxj9nNPyDXN9LsmRMdhr2TZ42ahflMbNSRGLW0CiozmylCBJjnqyl1VhL1 +X5aOh9l9qB4+fVVoir1O8xr0VcOLmWJGqRece0sxf6ye0I9+/n2hJZeGW2OyN9Cc +70QTx4BkmQKBgQCnlRrW73XtmeVccuuSPxApLWN8w7N7r3gQHodFm93d7wyK3vvY +2pAzq2RdlG24NA+s100kNxx19LwrfYgO2FcqFj1fFWPHNfPc780ggVV4bmK6Kf0C +PKyCwMXMY2ZPHB/qKKDaPFx2xNLj0L/5HW8Ov6K4fnyKWo5oSYFwHUpqrQKBgQCy +i/WvGxkFhZj3W1t6/Y2fwW7Nb1+BlbVsNkozB4lPyaT7RiVNHbe0hsqe54SaX+Ct +fXHIJvMUAyqcYiImLLIY7O/pLR2PhktR30TUx/uYa8vbDWZz3xECxxpWbiMIsC2l +tgkqxB+u2flAoyiHkS2p6bAkyrWpmoB14gHr3AMF+QKBgA+1sH680K56YB9P0FBI +EDZW51oJmA4r8w8IZvsAtkZHVof9/3RYWfO/E5ePfSl+yRpeNB4bo/99+Xy1vNId +B8PJPCenfEtgj2QBvOD6kA8hoppv4HibAzVyc8LlK8eM5L6A47pSRuBq7EiZRcLc +p1bK9xhVfFP3PcqEPlpO0IGR +-----END PRIVATE KEY----- diff --git a/local.topcoder-dev.com.pem b/local.topcoder-dev.com.pem new file mode 100644 index 00000000..25584d72 --- /dev/null +++ b/local.topcoder-dev.com.pem @@ -0,0 +1,26 @@ +-----BEGIN CERTIFICATE----- +MIIEbzCCAtegAwIBAgIRANBdmrQ+KH/NSLEuY4nIXlswDQYJKoZIhvcNAQELBQAw +gZcxHjAcBgNVBAoTFW1rY2VydCBkZXZlbG9wbWVudCBDQTE2MDQGA1UECwwtam1n +YXNwZXJAam1nYXNwZXItd29ya3N0YXRpb24gKEp1c3RpbiBHYXNwZXIpMT0wOwYD +VQQDDDRta2NlcnQgam1nYXNwZXJAam1nYXNwZXItd29ya3N0YXRpb24gKEp1c3Rp +biBHYXNwZXIpMB4XDTI1MDYyMDAxNTEyM1oXDTI3MDkyMDAxNTEyM1owYTEnMCUG +A1UEChMebWtjZXJ0IGRldmVsb3BtZW50IGNlcnRpZmljYXRlMTYwNAYDVQQLDC1q +bWdhc3BlckBqbWdhc3Blci13b3Jrc3RhdGlvbiAoSnVzdGluIEdhc3BlcikwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDSaA4EMTt5DgocVnvkZx1g0LoR +fFDjM+iKbL/rly9c71gnqIwdGZNo3t14XdAE+soGZwsiclmBIHXb6AfY9mOjSeCs +WyqKuCGNp7kvP6/rQ/OAeWiVqa7y339Fl2JTEGnHd0aMps9hdSMRUINpkBkMKTTe +VVoF1d2Ybv5G8bwMOg0xyOConwla2yZoCZWUffHH2er93t8n0r0IL3kYOyRNQUeE +H01+bjwilVAEIih6lT78mKMp3Bj49RC1+IDr0OnLEp4onBwIhXGXUCpxGvacxRXF +GIx/1JvReHnKMCJw+YVthYv4PfPbsqf04zYjdRv1WH8SPy0QbN7UJ6Xs2K1HAgMB +AAGjazBpMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAfBgNV +HSMEGDAWgBRxIB1YaQdvuHWwlakpJZq5033a2TAhBgNVHREEGjAYghZsb2NhbC50 +b3Bjb2Rlci1kZXYuY29tMA0GCSqGSIb3DQEBCwUAA4IBgQCSmrglluhmi34XlHQv +RlNNUz0upkklYJdjIOKAuuodlqgm3rL7XaDj1g9U9iAkPQGpXHMDfn8cS7SEjyyL +wsD+aK+qZbTwtcAcqeHGj2gYze90TY5ZzSHUYoaq4MAaDSZp3bOTc9g9l5cdT8tM +OEeeJkDMBDCMm+a7DmuIJW+1JW83vBqKqSfOmWqRvFVcEmQYVMiEmuEor5mXTjrt +nrWm/bDq0h1ezRU3ZPNbKniynlUYExOGPAuE6zBNOmJmKQXo7SEd8s5XAKGa+vvh +ieTPCvWQmcxmTQm4D5yozjPT0nnzCzar8cqo7FTLHjDSQPEIgB6AwturhqAF6CSa +D3QA5S/wvJES5cWdnWf2+adWXDXg+kM0cWWwhVoW70SDKHF//pevMuXFIE2Ejm+g +vym1GSxOMgkdKYkRya1hvO2AovcOWY9bgtf3yphBIbnAnk2YXXtFxEiAsqu6bObi +v9pXKgWJRCB3AifgJBH9EnJljgvndEj+To0eq07PYQVcsos= +-----END CERTIFICATE----- diff --git a/localhost-key.pem b/localhost-key.pem new file mode 100644 index 00000000..c7405814 --- /dev/null +++ b/localhost-key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDGvwkNFXuhP0A6 +Nt3SZ3D6FQrmxxKYK7mFbHzmqCRNnBj054NUBswEc82y+3oCorgzw9jCqCt5bQSR +GuvBEJPS9/rc3R3Mdr+ImDzo4FJiE6yPFx9rnbQPHIpMRWY21fvWqPcnkJM/FKoN +xoLxS2tQyF9dlSPpixhmoZQoDSC30Ijd7tGOTOAuoBUc80hl02NpRT/eBIcbN9A9 +8C3DAkJUCNrxwB3lhvz2LqiYBalDJo2PUsTjAMEaLfkj9SGmR9M9Ua7YcSIhimyu +mY/Q3GLCxHnPE3stVyjbwiZQIKYxI5nZgiyErJkVfVubx1vnguJcBvs/rfyH3DZ8 +3oklx7inAgMBAAECggEAdbHHkGH6doDYbiDzt5feRZqUfBnDny21jZezV3yXEwav +mMhI80ebJb/WPnnBxTHLV4xRHuUr6Zpvq+Z/WjOQ9sw3WPfwn5Zq0l8lIttEriPs +ekg9KSOY76H9HDG02CBcJMCmrF1ndWGtWr8F6BK7mHkwUGDzhWgDqTNiY11y1Ka0 +XlpR0IPr1tHg2iUoIOxLMIjUcAtbnn5OmClaIegHZyYBnxztubgiDNLPDdhEbmCk +6R7POweD+SUoOOutcHwJqvZe0dSOJaDVVScPe7GPGl8cVpXaeGJYUGZF16QRd5xH +Tbvj5pREgqYe3DowL0jzJ6c87J0BXpO/KzSaSXynYQKBgQDgrdHD/ozxO7f3VK79 +HcctuVKWiv5ksbxksYQU7dVacr1uN6u2yfSLhVKoLpLwcBhCL0LHBJ6cpwwO4jym +ab0Fr06qxhWSqOlwI3EXFR54oDOmRxItkEegW1nIxTyP2j9hPJ7VSqbMs4oE0N12 +yieaQgTvPyuwIMWz1+OQ4t4diQKBgQDic78smRC8JyaZGvvJUmNHgT8UOvm1lpnS +U/jVGCBMX2EHZrnbdgimNFb+8XeP0WZRv67yDJ46PUX5ahO7O2yeGETIJnDTrNM0 +M+aEqubA1HA/1+/h1FTvKRiTYbEDCnt65EqCIB/s7CM3v5nM/TZTnVmFut3J04kx +tyydzMtIrwKBgET2lXBnbbON9QXBxISE42IxhBwZRcR6maz+n+AcsGQ229Y82EQe +8STyI1DkGs4aWhfWkdSsolLLI3ReFOevhQl9qdPZQT3nAuAcwNWo8dVstu3O2tGJ +e7LI12I8yD4Pa2zZQpeNdm1WnoKj6ZZQrp82rHUTGsHRDV4KYhtSx4KhAoGBAJrf +GE8S++wCRpaNasfcDcP4c8CNOPxk3ByJi3OJhYVV8dETA2dBSVcKErlXQTLdvkGI +e8hUst4Xy8RxNL9nO7i/1kKgb6eE2gkoua3gB+K3J3GyZ/+lrNTH4WPieyIeSCba +/M4T1GG/ebKF2lTklAQJaBFapJaEkp6qrNvbFOhHAoGAMhssYAAweMeUpLSIQgN3 +Ndr/dTYLK3XrynJN+5cRW29mwy1DhJgN5VSl3d4m/g02H5KppOMQ0qdiuJc2w/ua +9RbUERNkZRLT4XtJPZd2kdNeiMtWaqyY6rNyrdc/yIJzl7vwZ2rxTekw0bWKnqjK +4qjSsqK57kqy+gtIrG4hH6s= +-----END PRIVATE KEY----- diff --git a/localhost.pem b/localhost.pem new file mode 100644 index 00000000..08e6b35e --- /dev/null +++ b/localhost.pem @@ -0,0 +1,26 @@ +-----BEGIN CERTIFICATE----- +MIIEYTCCAsmgAwIBAgIQCIX2MHOIoWm0a+ATrRb6oDANBgkqhkiG9w0BAQsFADCB +lzEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMTYwNAYDVQQLDC1qbWdh +c3BlckBqbWdhc3Blci13b3Jrc3RhdGlvbiAoSnVzdGluIEdhc3BlcikxPTA7BgNV +BAMMNG1rY2VydCBqbWdhc3BlckBqbWdhc3Blci13b3Jrc3RhdGlvbiAoSnVzdGlu +IEdhc3BlcikwHhcNMjUwNjIwMDE1MDU1WhcNMjcwOTIwMDE1MDU1WjBhMScwJQYD +VQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxNjA0BgNVBAsMLWpt +Z2FzcGVyQGptZ2FzcGVyLXdvcmtzdGF0aW9uIChKdXN0aW4gR2FzcGVyKTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMa/CQ0Ve6E/QDo23dJncPoVCubH +EpgruYVsfOaoJE2cGPTng1QGzARzzbL7egKiuDPD2MKoK3ltBJEa68EQk9L3+tzd +Hcx2v4iYPOjgUmITrI8XH2udtA8cikxFZjbV+9ao9yeQkz8Uqg3GgvFLa1DIX12V +I+mLGGahlCgNILfQiN3u0Y5M4C6gFRzzSGXTY2lFP94Ehxs30D3wLcMCQlQI2vHA +HeWG/PYuqJgFqUMmjY9SxOMAwRot+SP1IaZH0z1RrthxIiGKbK6Zj9DcYsLEec8T +ey1XKNvCJlAgpjEjmdmCLISsmRV9W5vHW+eC4lwG+z+t/IfcNnzeiSXHuKcCAwEA +AaNeMFwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMB8GA1Ud +IwQYMBaAFHEgHVhpB2+4dbCVqSklmrnTfdrZMBQGA1UdEQQNMAuCCWxvY2FsaG9z +dDANBgkqhkiG9w0BAQsFAAOCAYEAp6SCoXbaCDD+c00td5jN31HuRnxUe6Yfz7s7 +OWh9FlN9KAQi+KnaDe7mBBmz8mbO84Q7eLG12IHYq0/kWHObLdBuRoBZAi13vNOD +J+9NBiQdiwkkA9FYTjMxJpMz41qYspxt1NKlCDZ3GA1l5eQcT45YEXLQd8xzUpKk +GJrIlkPn2mvZaYA/01Nd7QgYTilrlshHkmG80F1Cof7Js5I56s82/RFwY5syxvwW +1g4rgakG2o5VsUm3arAB9aWLuA/fbwbewGcQ46SLKAD9mDRgL8sZYwacdZmeAGhz +m1enUx0xn7U6DoOo7/Vltqm7j5mHKwv0ExnZkeyYr39b7Kl4R6HLiYP0TAHd44Q5 +CZwuLphRmq/ZShXQ6vbg2pif5IjYLNd+eTZm3JgZk1rn7vZPApiiB21jf0it3Bwa +XnlqlNw8rcKliQeCXO6OxdE9EttM9QzbbKNQM/ounr+g3h+/hHtARUPwo0OUhbzc +ye8dz2blamHZgpr9BIeVkdRoBVj0 +-----END CERTIFICATE----- diff --git a/package-lock.json b/package-lock.json index 0b958c46..a5aedfe4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3161,25 +3161,6 @@ } } }, - "@toast-ui/editor": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/@toast-ui/editor/-/editor-2.5.4.tgz", - "integrity": "sha512-XsuYlPQxhec9dHQREFAigjE4enHSuGMF7D0YQ6wW7phmusvAu0FnJfZUPjJBoU/GKz7WP5U6fKU9/P+8j65D8A==", - "requires": { - "@types/codemirror": "0.0.71", - "codemirror": "^5.48.4" - }, - "dependencies": { - "@types/codemirror": { - "version": "0.0.71", - "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-0.0.71.tgz", - "integrity": "sha512-b2oEEnno1LIGKMR7uBEsr40al1UijF1HEpRn0+Yf1xOLl24iQgB7DBpZVMM7y54G5wCNoclDrRO65E6KHPNO2w==", - "requires": { - "@types/tern": "*" - } - } - } - }, "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -3299,25 +3280,6 @@ "@types/unist": "*" } }, - "@types/hoist-non-react-statics": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz", - "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==", - "requires": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - }, - "dependencies": { - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - } - } - } - }, "@types/katex": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.11.1.tgz", @@ -3381,21 +3343,6 @@ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" }, - "@types/react": { - "version": "19.1.6", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.6.tgz", - "integrity": "sha512-JeG0rEWak0N6Itr6QUx+X60uQmN+5t3j9r/OVDtWzFXKaj6kD1BwJzOksD0FF6iWxZlbE1kB0q9vtnU2ekqa1Q==", - "requires": { - "csstype": "^3.0.2" - }, - "dependencies": { - "csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - } - } - }, "@types/serve-static": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", @@ -5938,11 +5885,6 @@ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, - "codemirror": { - "version": "5.65.19", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.19.tgz", - "integrity": "sha512-+aFkvqhaAVr1gferNMuN8vkTSrWIFvzlMV9I2KBLCWS2WpZ2+UAkZjlMZmEuT+gcXTi6RrGQCkWq1/bDtGqhIA==" - }, "codemirror-spell-checker": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/codemirror-spell-checker/-/codemirror-spell-checker-1.1.2.tgz", @@ -6950,11 +6892,6 @@ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" }, - "deepmerge": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", - "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" - }, "default-gateway": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", @@ -8978,41 +8915,6 @@ "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz", "integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==" }, - "formik": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/formik/-/formik-2.4.6.tgz", - "integrity": "sha512-A+2EI7U7aG296q2TLGvNapDNTZp1khVt5Vk0Q/fyfSROss0V/V6+txt2aJnwEos44IxTCW/LYAi/zgWzlevj+g==", - "requires": { - "@types/hoist-non-react-statics": "^3.3.1", - "deepmerge": "^2.1.1", - "hoist-non-react-statics": "^3.3.0", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "react-fast-compare": "^2.0.1", - "tiny-warning": "^1.0.2", - "tslib": "^2.0.0" - }, - "dependencies": { - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" - } - } - }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -17788,11 +17690,6 @@ "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==" }, - "property-expr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", - "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==" - }, "property-information": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", @@ -21909,11 +21806,6 @@ "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" }, - "tiny-case": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", - "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" - }, "tiny-invariant": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", @@ -22164,11 +22056,6 @@ "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" }, - "toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" - }, "tough-cookie": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", @@ -22289,11 +22176,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" }, - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" - }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -24663,17 +24545,6 @@ "type-fest": "^2.19.0" } }, - "yup": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/yup/-/yup-1.6.1.tgz", - "integrity": "sha512-JED8pB50qbA4FOkDol0bYF/p60qSEDQqBD0/qeIrUCG1KbPBIQ776fCUNb9ldbPcSTxA69g/47XTo4TqWiuXOA==", - "requires": { - "property-expr": "^2.0.5", - "tiny-case": "^1.0.3", - "toposort": "^2.0.2", - "type-fest": "^2.19.0" - } - }, "zwitch": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", diff --git a/package.json b/package.json index 7c99813e..8eab630d 100644 --- a/package.json +++ b/package.json @@ -129,8 +129,7 @@ "build": "node scripts/build.js", "lint": "eslint ./src", "lint:fix": "eslint --fix ./src", - "test": "node scripts/test.js", - "restart": "node scripts/build.js && node server.js" + "test": "node scripts/test.js" }, "eslintConfig": { "extends": [ diff --git a/server.js b/server.js index b9d2ccae..d81a88a5 100644 --- a/server.js +++ b/server.js @@ -17,10 +17,10 @@ function check () { } app.use(healthCheck.middleware([check])) app.use((req, res, next) => { - //res.header('Referrer-Policy', 'strict-origin-when-cross-origin') + res.header('Referrer-Policy', 'strict-origin-when-cross-origin') res.header('Permissions-Policy', 'geolocation=(), microphone=(), camera=()') res.header('X-Content-Type-Options', 'nosniff') - // res.header('Strict-Transport-Security', 'max-age=31536000; includeSubDomains; preload') + res.header('Strict-Transport-Security', 'max-age=31536000; includeSubDomains; preload') res.header('Cache-control', 'public, max-age=0') res.header('Pragma', 'no-cache') res.setHeader('X-Frame-Options', 'DENY') diff --git a/src/components/ChallengeEditor/ChallengeViewTabs/index.js b/src/components/ChallengeEditor/ChallengeViewTabs/index.js index 6a7c9ad3..9c7d301f 100644 --- a/src/components/ChallengeEditor/ChallengeViewTabs/index.js +++ b/src/components/ChallengeEditor/ChallengeViewTabs/index.js @@ -210,7 +210,7 @@ const ChallengeViewTabs = ({ (
)} {canLaunch && (
- {challenge ? ( + {challenge.legacyId || isTask ? ( { let errMessage = 'Please set a copilot' const handleProperty = copilots.handle ? 'handle' : 'memberHandle' const selectedCopilot = _.find(copilots, { [handleProperty]: challenge.copilot }) const selectedCopilotHandle = selectedCopilot ? selectedCopilot[handleProperty] : undefined - const copilotFee = _.find(challenge.prizeSets, p => p.type === PRIZE_SETS_TYPE.COPILOT_PAYMENT, []) + const copilotFee = _.find(challenge.prizeSets, p => p.type === 'copilot', []) const selfService = challenge.selfService const copilotIsSelf = loggedInUser && selectedCopilotHandle === loggedInUser.handle const assignButtonText = `${selectedCopilot && copilotIsSelf ? 'Una' : 'A'}ssign Yourself` diff --git a/src/components/ChallengeEditor/index.js b/src/components/ChallengeEditor/index.js index ef0806b0..6f59b8c0 100644 --- a/src/components/ChallengeEditor/index.js +++ b/src/components/ChallengeEditor/index.js @@ -956,7 +956,7 @@ class ChallengeEditor extends Component { return { ...p, prizes } }) challenge.status = status - if (status === CHALLENGE_STATUS.ACTIVE && isTask) { + if (status === 'Active' && isTask) { challenge.startDate = moment().format() } @@ -1024,7 +1024,7 @@ class ChallengeEditor extends Component { } const newChallenge = { - status: CHALLENGE_STATUS.NEW, + status: 'New', projectId: this.props.projectId, name, typeId, @@ -1095,7 +1095,7 @@ class ChallengeEditor extends Component { return ([ { name: `${challenge.name} Discussion`, - type: 'CHALLENGE', + type: 'challenge', provider: 'vanilla' } ]) @@ -1290,11 +1290,11 @@ class ChallengeEditor extends Component { } async onActiveChallenge () { - this.updateAllChallengeInfo(CHALLENGE_STATUS.ACTIVE) + this.updateAllChallengeInfo('Active') } async saveDraft () { - this.updateAllChallengeInfo(CHALLENGE_STATUS.DRAFT) + this.updateAllChallengeInfo('Draft') } async onlySave () { @@ -1487,7 +1487,7 @@ class ChallengeEditor extends Component { Closing Task Confirmation Modal and Error Modal */ if (isCloseTask && !isConfirm) { - const taskPrize = _.get(_.find(challenge.prizeSets, { type: PRIZE_SETS_TYPE.CHALLENGE_PRIZES }), 'prizes[0].value') + const taskPrize = _.get(_.find(challenge.prizeSets, { type: 'placement' }), 'prizes[0].value') const assignedMemberId = _.get(assignedMemberDetails, 'userId') const assignedMember = _.get(assignedMemberDetails, 'handle', `User Id: ${assignedMemberId}`) @@ -1535,7 +1535,7 @@ class ChallengeEditor extends Component { - {!this.state.hasValidationErrors ? ( + {(challenge.legacyId || isTask) && !this.state.hasValidationErrors ? ( ) : ( diff --git a/src/components/ChallengesComponent/ChallengeCard/index.js b/src/components/ChallengesComponent/ChallengeCard/index.js index 9947f48a..4347bc98 100644 --- a/src/components/ChallengesComponent/ChallengeCard/index.js +++ b/src/components/ChallengesComponent/ChallengeCard/index.js @@ -197,7 +197,7 @@ class ChallengeCard extends React.Component { this.setState({ isSaving: true }) const isTask = _.get(challenge, 'task.isTask', false) const payload = { - status: CHALLENGE_STATUS.ACTIVE + status: 'Active' } if (isTask) { payload.startDate = moment().format() diff --git a/src/config/constants.js b/src/config/constants.js index 0ce445a9..47e4d2ed 100644 --- a/src/config/constants.js +++ b/src/config/constants.js @@ -227,10 +227,10 @@ export const PHASE_STATUS = { // List of prize sets types export const PRIZE_SETS_TYPE = { - CHALLENGE_PRIZES: 'PLACEMENT', - COPILOT_PAYMENT: 'COPILOT', - REVIEWER_PAYMENT: 'REVIEWER', - CHECKPOINT_PRIZES: 'CHECKPOINT' + CHALLENGE_PRIZES: 'placement', + COPILOT_PAYMENT: 'copilot', + REVIEWER_PAYMENT: 'reviewer', + CHECKPOINT_PRIZES: 'checkpoint' } export const REVIEW_TYPES = { diff --git a/src/containers/ChallengeEditor/index.js b/src/containers/ChallengeEditor/index.js index 956fcfff..dffcc934 100644 --- a/src/containers/ChallengeEditor/index.js +++ b/src/containers/ChallengeEditor/index.js @@ -38,7 +38,7 @@ import { loadSubmissions } from '../../actions/challengeSubmissions' import { loadProject } from '../../actions/projects' import { connect } from 'react-redux' -import { SUBMITTER_ROLE_UUID, MESSAGE, PROJECT_ROLES, CHALLENGE_STATUS } from '../../config/constants' +import { SUBMITTER_ROLE_UUID, MESSAGE, PROJECT_ROLES } from '../../config/constants' import { patchChallenge } from '../../services/challenges' import ConfirmationModal from '../../components/Modal/ConfirmationModal' import AlertModal from '../../components/Modal/AlertModal' @@ -275,7 +275,7 @@ class ChallengeEditor extends Component { try { this.setState({ isLaunching: true }) const payload = { - status: CHALLENGE_STATUS.ACTIVE + status: 'Active' } if (isTask) { payload.startDate = moment().format() From b70bdccd7340146858719c9b90a473b27fd4eb00 Mon Sep 17 00:00:00 2001 From: Justin Gasper Date: Tue, 12 Aug 2025 09:53:44 +1000 Subject: [PATCH 5/6] Add .pem to gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index c4b8ad9b..9bafbdb2 100644 --- a/.gitignore +++ b/.gitignore @@ -25,7 +25,7 @@ yarn-debug.log* yarn-error.log* *.env - +*.pem *.vscode # e2e test case From b7707a58abbf0dd45476d59c1375ee2cc3e2d62f Mon Sep 17 00:00:00 2001 From: Justin Gasper Date: Tue, 12 Aug 2025 09:54:16 +1000 Subject: [PATCH 6/6] Remove pem files --- local.topcoder-dev.com-key.pem | 28 ---------------------------- local.topcoder-dev.com.pem | 26 -------------------------- localhost-key.pem | 28 ---------------------------- localhost.pem | 26 -------------------------- 4 files changed, 108 deletions(-) delete mode 100644 local.topcoder-dev.com-key.pem delete mode 100644 local.topcoder-dev.com.pem delete mode 100644 localhost-key.pem delete mode 100644 localhost.pem diff --git a/local.topcoder-dev.com-key.pem b/local.topcoder-dev.com-key.pem deleted file mode 100644 index c09c3687..00000000 --- a/local.topcoder-dev.com-key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDSaA4EMTt5Dgoc -VnvkZx1g0LoRfFDjM+iKbL/rly9c71gnqIwdGZNo3t14XdAE+soGZwsiclmBIHXb -6AfY9mOjSeCsWyqKuCGNp7kvP6/rQ/OAeWiVqa7y339Fl2JTEGnHd0aMps9hdSMR -UINpkBkMKTTeVVoF1d2Ybv5G8bwMOg0xyOConwla2yZoCZWUffHH2er93t8n0r0I -L3kYOyRNQUeEH01+bjwilVAEIih6lT78mKMp3Bj49RC1+IDr0OnLEp4onBwIhXGX -UCpxGvacxRXFGIx/1JvReHnKMCJw+YVthYv4PfPbsqf04zYjdRv1WH8SPy0QbN7U -J6Xs2K1HAgMBAAECggEAWWSkL9vK7M+uNAP6dzvoG24S38L1itJPBiDWGX4OPWnj -BlZx0RtAqdmmNrGE49i5ZKb68BOtO1NTP68BRojIJGQK9K93D6DTgJ+16gEg+M/R -8M+kQ5HoJoAWTrbWq3vZtUlTzAZDLaDa2UxfyMXUHnqTX7LboIcQsubVWcbyoi5y -myReflYeootcbw1uuSrIAIUubDnJHhTTl+A/Sh65orNgJhhCkwNAxnYlm1bjPHUr -NKkqjD9kRfS3/VOYOSmdB3sfQ7onTILhmqtvvtAQbdVuOPDjEtSdlU+QlR0rCB2U -VrxsWk20EANVM8uam4x54cZfsAmV9wOMXhlCK80LQQKBgQDlX43y/P/5PbmRPm+u -9iStmQJPfLEdY6rstov+LXaw0tXkBlLIsr/CCvidyhqQjo7MbCNDRU39SlaMyuK8 -QyQfgkpuFojfffKFXFg9aX8d1+AjT9x6rbYF6Mya7QjQT86W4Wb01RUMvgBS/yzu -WnwU/nUWqjHP8OfWo6H/B+Ts3wKBgQDq1NnJfpCQa5fwMtCbkilyRSeRoreCN8yX -0vIULdQxj9nNPyDXN9LsmRMdhr2TZ42ahflMbNSRGLW0CiozmylCBJjnqyl1VhL1 -X5aOh9l9qB4+fVVoir1O8xr0VcOLmWJGqRece0sxf6ye0I9+/n2hJZeGW2OyN9Cc -70QTx4BkmQKBgQCnlRrW73XtmeVccuuSPxApLWN8w7N7r3gQHodFm93d7wyK3vvY -2pAzq2RdlG24NA+s100kNxx19LwrfYgO2FcqFj1fFWPHNfPc780ggVV4bmK6Kf0C -PKyCwMXMY2ZPHB/qKKDaPFx2xNLj0L/5HW8Ov6K4fnyKWo5oSYFwHUpqrQKBgQCy -i/WvGxkFhZj3W1t6/Y2fwW7Nb1+BlbVsNkozB4lPyaT7RiVNHbe0hsqe54SaX+Ct -fXHIJvMUAyqcYiImLLIY7O/pLR2PhktR30TUx/uYa8vbDWZz3xECxxpWbiMIsC2l -tgkqxB+u2flAoyiHkS2p6bAkyrWpmoB14gHr3AMF+QKBgA+1sH680K56YB9P0FBI -EDZW51oJmA4r8w8IZvsAtkZHVof9/3RYWfO/E5ePfSl+yRpeNB4bo/99+Xy1vNId -B8PJPCenfEtgj2QBvOD6kA8hoppv4HibAzVyc8LlK8eM5L6A47pSRuBq7EiZRcLc -p1bK9xhVfFP3PcqEPlpO0IGR ------END PRIVATE KEY----- diff --git a/local.topcoder-dev.com.pem b/local.topcoder-dev.com.pem deleted file mode 100644 index 25584d72..00000000 --- a/local.topcoder-dev.com.pem +++ /dev/null @@ -1,26 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEbzCCAtegAwIBAgIRANBdmrQ+KH/NSLEuY4nIXlswDQYJKoZIhvcNAQELBQAw -gZcxHjAcBgNVBAoTFW1rY2VydCBkZXZlbG9wbWVudCBDQTE2MDQGA1UECwwtam1n -YXNwZXJAam1nYXNwZXItd29ya3N0YXRpb24gKEp1c3RpbiBHYXNwZXIpMT0wOwYD -VQQDDDRta2NlcnQgam1nYXNwZXJAam1nYXNwZXItd29ya3N0YXRpb24gKEp1c3Rp -biBHYXNwZXIpMB4XDTI1MDYyMDAxNTEyM1oXDTI3MDkyMDAxNTEyM1owYTEnMCUG -A1UEChMebWtjZXJ0IGRldmVsb3BtZW50IGNlcnRpZmljYXRlMTYwNAYDVQQLDC1q -bWdhc3BlckBqbWdhc3Blci13b3Jrc3RhdGlvbiAoSnVzdGluIEdhc3BlcikwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDSaA4EMTt5DgocVnvkZx1g0LoR -fFDjM+iKbL/rly9c71gnqIwdGZNo3t14XdAE+soGZwsiclmBIHXb6AfY9mOjSeCs -WyqKuCGNp7kvP6/rQ/OAeWiVqa7y339Fl2JTEGnHd0aMps9hdSMRUINpkBkMKTTe -VVoF1d2Ybv5G8bwMOg0xyOConwla2yZoCZWUffHH2er93t8n0r0IL3kYOyRNQUeE -H01+bjwilVAEIih6lT78mKMp3Bj49RC1+IDr0OnLEp4onBwIhXGXUCpxGvacxRXF -GIx/1JvReHnKMCJw+YVthYv4PfPbsqf04zYjdRv1WH8SPy0QbN7UJ6Xs2K1HAgMB -AAGjazBpMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAfBgNV -HSMEGDAWgBRxIB1YaQdvuHWwlakpJZq5033a2TAhBgNVHREEGjAYghZsb2NhbC50 -b3Bjb2Rlci1kZXYuY29tMA0GCSqGSIb3DQEBCwUAA4IBgQCSmrglluhmi34XlHQv -RlNNUz0upkklYJdjIOKAuuodlqgm3rL7XaDj1g9U9iAkPQGpXHMDfn8cS7SEjyyL -wsD+aK+qZbTwtcAcqeHGj2gYze90TY5ZzSHUYoaq4MAaDSZp3bOTc9g9l5cdT8tM -OEeeJkDMBDCMm+a7DmuIJW+1JW83vBqKqSfOmWqRvFVcEmQYVMiEmuEor5mXTjrt -nrWm/bDq0h1ezRU3ZPNbKniynlUYExOGPAuE6zBNOmJmKQXo7SEd8s5XAKGa+vvh -ieTPCvWQmcxmTQm4D5yozjPT0nnzCzar8cqo7FTLHjDSQPEIgB6AwturhqAF6CSa -D3QA5S/wvJES5cWdnWf2+adWXDXg+kM0cWWwhVoW70SDKHF//pevMuXFIE2Ejm+g -vym1GSxOMgkdKYkRya1hvO2AovcOWY9bgtf3yphBIbnAnk2YXXtFxEiAsqu6bObi -v9pXKgWJRCB3AifgJBH9EnJljgvndEj+To0eq07PYQVcsos= ------END CERTIFICATE----- diff --git a/localhost-key.pem b/localhost-key.pem deleted file mode 100644 index c7405814..00000000 --- a/localhost-key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDGvwkNFXuhP0A6 -Nt3SZ3D6FQrmxxKYK7mFbHzmqCRNnBj054NUBswEc82y+3oCorgzw9jCqCt5bQSR -GuvBEJPS9/rc3R3Mdr+ImDzo4FJiE6yPFx9rnbQPHIpMRWY21fvWqPcnkJM/FKoN -xoLxS2tQyF9dlSPpixhmoZQoDSC30Ijd7tGOTOAuoBUc80hl02NpRT/eBIcbN9A9 -8C3DAkJUCNrxwB3lhvz2LqiYBalDJo2PUsTjAMEaLfkj9SGmR9M9Ua7YcSIhimyu -mY/Q3GLCxHnPE3stVyjbwiZQIKYxI5nZgiyErJkVfVubx1vnguJcBvs/rfyH3DZ8 -3oklx7inAgMBAAECggEAdbHHkGH6doDYbiDzt5feRZqUfBnDny21jZezV3yXEwav -mMhI80ebJb/WPnnBxTHLV4xRHuUr6Zpvq+Z/WjOQ9sw3WPfwn5Zq0l8lIttEriPs -ekg9KSOY76H9HDG02CBcJMCmrF1ndWGtWr8F6BK7mHkwUGDzhWgDqTNiY11y1Ka0 -XlpR0IPr1tHg2iUoIOxLMIjUcAtbnn5OmClaIegHZyYBnxztubgiDNLPDdhEbmCk -6R7POweD+SUoOOutcHwJqvZe0dSOJaDVVScPe7GPGl8cVpXaeGJYUGZF16QRd5xH -Tbvj5pREgqYe3DowL0jzJ6c87J0BXpO/KzSaSXynYQKBgQDgrdHD/ozxO7f3VK79 -HcctuVKWiv5ksbxksYQU7dVacr1uN6u2yfSLhVKoLpLwcBhCL0LHBJ6cpwwO4jym -ab0Fr06qxhWSqOlwI3EXFR54oDOmRxItkEegW1nIxTyP2j9hPJ7VSqbMs4oE0N12 -yieaQgTvPyuwIMWz1+OQ4t4diQKBgQDic78smRC8JyaZGvvJUmNHgT8UOvm1lpnS -U/jVGCBMX2EHZrnbdgimNFb+8XeP0WZRv67yDJ46PUX5ahO7O2yeGETIJnDTrNM0 -M+aEqubA1HA/1+/h1FTvKRiTYbEDCnt65EqCIB/s7CM3v5nM/TZTnVmFut3J04kx -tyydzMtIrwKBgET2lXBnbbON9QXBxISE42IxhBwZRcR6maz+n+AcsGQ229Y82EQe -8STyI1DkGs4aWhfWkdSsolLLI3ReFOevhQl9qdPZQT3nAuAcwNWo8dVstu3O2tGJ -e7LI12I8yD4Pa2zZQpeNdm1WnoKj6ZZQrp82rHUTGsHRDV4KYhtSx4KhAoGBAJrf -GE8S++wCRpaNasfcDcP4c8CNOPxk3ByJi3OJhYVV8dETA2dBSVcKErlXQTLdvkGI -e8hUst4Xy8RxNL9nO7i/1kKgb6eE2gkoua3gB+K3J3GyZ/+lrNTH4WPieyIeSCba -/M4T1GG/ebKF2lTklAQJaBFapJaEkp6qrNvbFOhHAoGAMhssYAAweMeUpLSIQgN3 -Ndr/dTYLK3XrynJN+5cRW29mwy1DhJgN5VSl3d4m/g02H5KppOMQ0qdiuJc2w/ua -9RbUERNkZRLT4XtJPZd2kdNeiMtWaqyY6rNyrdc/yIJzl7vwZ2rxTekw0bWKnqjK -4qjSsqK57kqy+gtIrG4hH6s= ------END PRIVATE KEY----- diff --git a/localhost.pem b/localhost.pem deleted file mode 100644 index 08e6b35e..00000000 --- a/localhost.pem +++ /dev/null @@ -1,26 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEYTCCAsmgAwIBAgIQCIX2MHOIoWm0a+ATrRb6oDANBgkqhkiG9w0BAQsFADCB -lzEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMTYwNAYDVQQLDC1qbWdh -c3BlckBqbWdhc3Blci13b3Jrc3RhdGlvbiAoSnVzdGluIEdhc3BlcikxPTA7BgNV -BAMMNG1rY2VydCBqbWdhc3BlckBqbWdhc3Blci13b3Jrc3RhdGlvbiAoSnVzdGlu -IEdhc3BlcikwHhcNMjUwNjIwMDE1MDU1WhcNMjcwOTIwMDE1MDU1WjBhMScwJQYD -VQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxNjA0BgNVBAsMLWpt -Z2FzcGVyQGptZ2FzcGVyLXdvcmtzdGF0aW9uIChKdXN0aW4gR2FzcGVyKTCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMa/CQ0Ve6E/QDo23dJncPoVCubH -EpgruYVsfOaoJE2cGPTng1QGzARzzbL7egKiuDPD2MKoK3ltBJEa68EQk9L3+tzd -Hcx2v4iYPOjgUmITrI8XH2udtA8cikxFZjbV+9ao9yeQkz8Uqg3GgvFLa1DIX12V -I+mLGGahlCgNILfQiN3u0Y5M4C6gFRzzSGXTY2lFP94Ehxs30D3wLcMCQlQI2vHA -HeWG/PYuqJgFqUMmjY9SxOMAwRot+SP1IaZH0z1RrthxIiGKbK6Zj9DcYsLEec8T -ey1XKNvCJlAgpjEjmdmCLISsmRV9W5vHW+eC4lwG+z+t/IfcNnzeiSXHuKcCAwEA -AaNeMFwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMB8GA1Ud -IwQYMBaAFHEgHVhpB2+4dbCVqSklmrnTfdrZMBQGA1UdEQQNMAuCCWxvY2FsaG9z -dDANBgkqhkiG9w0BAQsFAAOCAYEAp6SCoXbaCDD+c00td5jN31HuRnxUe6Yfz7s7 -OWh9FlN9KAQi+KnaDe7mBBmz8mbO84Q7eLG12IHYq0/kWHObLdBuRoBZAi13vNOD -J+9NBiQdiwkkA9FYTjMxJpMz41qYspxt1NKlCDZ3GA1l5eQcT45YEXLQd8xzUpKk -GJrIlkPn2mvZaYA/01Nd7QgYTilrlshHkmG80F1Cof7Js5I56s82/RFwY5syxvwW -1g4rgakG2o5VsUm3arAB9aWLuA/fbwbewGcQ46SLKAD9mDRgL8sZYwacdZmeAGhz -m1enUx0xn7U6DoOo7/Vltqm7j5mHKwv0ExnZkeyYr39b7Kl4R6HLiYP0TAHd44Q5 -CZwuLphRmq/ZShXQ6vbg2pif5IjYLNd+eTZm3JgZk1rn7vZPApiiB21jf0it3Bwa -XnlqlNw8rcKliQeCXO6OxdE9EttM9QzbbKNQM/ounr+g3h+/hHtARUPwo0OUhbzc -ye8dz2blamHZgpr9BIeVkdRoBVj0 ------END CERTIFICATE-----