diff --git a/.gitignore b/.gitignore index d117ea4..7299d7b 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ reflections/* dist/ .env .DS_Store +.npmrc \ No newline at end of file diff --git a/bin/nosql-client.js b/bin/nosql-client.js index 09ef14a..d64bc90 100644 --- a/bin/nosql-client.js +++ b/bin/nosql-client.js @@ -25,6 +25,8 @@ const protoConfig = [ "--ts_proto_opt=outputServices=grpc-js,env=node,useOptionals=messages,exportCommonSymbols=false,esModuleInterop=true", `--ts_proto_opt=oneof=unions`, `--ts_proto_opt=addGrpcMetadata=true`, + `--ts_proto_opt=stringEnums=true`, + `--ts_proto_opt=useDate=string`, `--ts_proto_opt=outputServerImpl=false`, `--ts_proto_out=${MODEL_DIR}`, `--proto_path ${PROTO_DIR} ${PROTO_DIR}/*.proto`, diff --git a/bin/server.js b/bin/server.js index 8748949..a440e8f 100644 --- a/bin/server.js +++ b/bin/server.js @@ -26,6 +26,7 @@ const protoConfig = [ `--ts_proto_opt=oneof=unions`, `--ts_proto_opt=addGrpcMetadata=true`, `--ts_proto_opt=outputClientImpl=false`, + `--ts_proto_opt=useDate=string`, `--include_imports`, `--descriptor_set_out ${PROTO_REFLECTIONS}`, `--proto_path ${PROTO_DIR} ${PROTO_DIR}/common/*.proto`, diff --git a/package.json b/package.json index e06365e..60370db 100644 --- a/package.json +++ b/package.json @@ -5,32 +5,41 @@ "main": "index.js", "scripts": { "build:proto:client:nosql": "node bin/nosql-client", - "build:proto:client": "yarn build:proto:client:nosql", + "build:proto:client": "node bin/nosql-client", "build:proto:server": "node bin/server", + "build:proto": "node bin/nosql-client && node bin/server", "build:app": "rimraf dist && tsc -b", "build": "yarn build:proto:client && yarn build:proto:server && yarn build:app", "start": "ts-node-dev --respawn --transpile-only src/server.ts" }, - "keywords": [], + "keywords": [ + "Topcoder Domain", + "Challenge" + ], "author": "Rakib Ansary ", "license": "ISC", "dependencies": { "@aws-sdk/client-dynamodb": "^3.183.0", "@aws-sdk/util-dynamodb": "^3.183.0", "@grpc/grpc-js": "^1.7.1", - "dayjs": "^1.11.5", + "axios": "^1.2.2", "dotenv": "^16.0.3", "grpc-server-reflection": "^0.1.5", "lodash": "^4.17.21", "source-map-support": "^0.5.21", - "topcoder-interface": "github:topcoder-platform/plat-interface-definition#v0.0.4", - "uuidv4": "^6.2.13" + "topcoder-interface": "github:topcoder-platform/plat-interface-definition#v0.0.9", + "@topcoder-framework/domain-acl": "^0.4.21-ci.0", + "tc-core-library-js": "appirio-tech/tc-core-library-js.git#v2.6.4", + "uuidv4": "^6.2.13", + "xss": "^1.0.14" }, "volta": { - "node": "18.12.0", - "typescript": "4.9.4" + "node": "18.13.0", + "typescript": "4.9.4", + "yarn": "1.22.19" }, "devDependencies": { + "@types/lodash": "^4.14.191", "@types/node": "^18.11.17", "ts-node-dev": "^2.0.0", "ts-proto": "^1.126.1", diff --git a/src/api/v4Api.ts b/src/api/v4Api.ts new file mode 100644 index 0000000..43bbcbe --- /dev/null +++ b/src/api/v4Api.ts @@ -0,0 +1,267 @@ +const { V4_TECHNOLOGIES_API_URL, V4_PLATFORMS_API_URL, V4_CHALLENGE_API_URL } = + process.env; + +import _ from "lodash"; +import axios from "axios"; + +import { + CancelledFailedScreening, + CancelledPaymentFailed, + CHECKPOINT_SUBMISSION_PHASE_ID, + prizeSetTypes, + REGISTRATION_PHASE_ID, + SUBMISSION_PHASE_ID, +} from "../common/Constants"; + +import { V5_TO_V4 } from "../common/ConversionMap"; + +// TODO: Create RPC calls in anticorruption-layer +class V4Api { + private getLegacyTrackInformation( + trackId: string, + typeId: string, + tags: string[] + ) { + return V5_TO_V4[trackId][typeId](tags); + } + /** + * Construct DTO from challenge:create payload. + * @param {Object} payload the challenge:create payload + * @param {String} m2mToken the m2m token + * @returns the DTO for saving a draft contest.(refer SaveDraftContestDTO in ap-challenge-microservice) + */ + public async getV4ChallengePayload(payload: any, m2mToken: string) { + try { + const projectId = payload.legacy.directProjectId; + const legacyTrackInfo = this.getLegacyTrackInformation( + payload.trackId, + payload.typeId, + payload.tags + ); + const data: any = { + ...legacyTrackInfo, + name: payload.name, + reviewType: _.get(payload, "legacy.reviewType", "INTERNAL"), + projectId, + status: + payload.status === CancelledPaymentFailed + ? CancelledFailedScreening + : payload.status, + billingAccountId: null, + forumId: null, + copilotId: null, + confidentialityType: null, + submissionGuidelines: "Please read above", + submissionVisibility: true, + milestoneId: 1, + detailedRequirements: payload.description, + }; + + if (payload.billingAccountId) { + data.billingAccountId = payload.billingAccountId; + } + + if (_.get(payload, "legacy.forumId")) { + data.forumId = payload.legacy.forumId; + } + if (payload.copilotId) { + data.copilotId = payload.copilotId; + } + data.confidentialityType = _.get( + payload, + "legacy.confidentialityType", + "public" + ); + + if (payload.privateDescription) { + data.detailedRequirements += "\n\r"; + data.detailedRequirements += + "V5 Challenge - Additional Details: " + payload.id; + } + + const SECONDS_TO_MILLIS = 1000; + if (payload.phases) { + const registrationPhase = _.find(payload.phases, (p) => { + return p.phaseId == REGISTRATION_PHASE_ID; + }); + const submissionPhase = _.find( + payload.phases, + (p) => p.phaseId == SUBMISSION_PHASE_ID + ); + const startDate = payload.startDate + ? new Date(payload.startDate) + : new Date(); + + data.registrationStartsAt = startDate.toISOString(); + data.registrationEndsAt = new Date( + startDate.getTime() + + (registrationPhase || submissionPhase).duration * SECONDS_TO_MILLIS + ).toISOString(); + data.registrationDuration = + (registrationPhase || submissionPhase).duration * SECONDS_TO_MILLIS; + data.submissionEndsAt = new Date( + startDate.getTime() + submissionPhase.duration * SECONDS_TO_MILLIS + ).toISOString(); + data.submissionDuration = submissionPhase.duration * SECONDS_TO_MILLIS; + + // Only Design can have checkpoint phase and checkpoint prizes + const checkpointPhase = _.find( + payload.phases, + (p) => p.phaseId === CHECKPOINT_SUBMISSION_PHASE_ID + ); + if (checkpointPhase) { + data.checkpointSubmissionStartsAt = startDate.toISOString(); + data.checkpointSubmissionEndsAt = new Date( + startDate.getTime() + checkpointPhase.duration * SECONDS_TO_MILLIS + ).toISOString(); + data.checkpointSubmissionDuration = + checkpointPhase.duration * SECONDS_TO_MILLIS; + } else { + data.checkpointSubmissionStartsAt = null; + data.checkpointSubmissionEndsAt = null; + data.checkpointSubmissionDuration = null; + } + } + if (payload.prizeSets) { + // Only Design can have checkpoint phase and checkpoint prizes + const checkpointPrize = _.find(payload.prizeSets, { + type: prizeSetTypes.CheckPoint, + }); + if (checkpointPrize) { + // checkpoint prize are the same for each checkpoint submission winner + data.numberOfCheckpointPrizes = checkpointPrize.prizes.length; + data.checkpointPrize = checkpointPrize.prizes[0].value; + } else { + data.numberOfCheckpointPrizes = 0; + data.checkpointPrize = 0; + } + + // prize type can be Challenge prizes + const challengePrizes = _.find(payload.prizeSets, { + type: prizeSetTypes.ChallengePrizes, + }); + if (!challengePrizes) { + throw new Error("Challenge prize information is invalid."); + } + data.prizes = _.map(challengePrizes.prizes, "value").sort( + (a, b) => b - a + ); + } + if (payload.tags) { + const techResult = await this.getTechnologies(m2mToken); + data.technologies = _.filter(techResult.result.content, (e) => + payload.tags.includes(e.name) + ); + + if (data.technologies.length < 1) { + data.technologies = _.filter( + techResult.result.content, + (e) => e.name === "Other" + ); + } + + const platResult = await this.getPlatforms(m2mToken); + data.platforms = _.filter(platResult.result.content, (e) => + payload.tags.includes(e.name) + ); + + if (data.platforms.length < 1) { + data.platforms = _.filter( + platResult.result.content, + (e) => e.name === "Other" + ); + } + } + + if (payload.metadata && payload.metadata.length > 0) { + const fileTypes = _.find( + payload.metadata, + (meta) => meta.name === "fileTypes" + ); + if (fileTypes) { + if (_.isArray(fileTypes.value)) { + data.fileTypes = fileTypes.value; + } else { + try { + data.fileTypes = JSON.parse(fileTypes.value); + } catch (e) { + data.fileTypes = []; + } + } + } + } + + return data; + } catch (err: unknown) { + console.log("Something went wrong", err); + // Debugging + if (err instanceof Error) { + // extract error message from V5 API + const message = _.get(err, "response.body.message"); + throw new Error(message); + } else { + throw err; + } + } + } + + public async createLegacyChallenge(payload: any, m2mToken: string) { + const data = await this.getV4ChallengePayload(payload, m2mToken); + try { + const result = await axios.post( + `${V4_CHALLENGE_API_URL}?filter=skipForum=true`, + { + param: data, + }, + { + headers: { + Authorization: `Bearer ${m2mToken}`, + "Content-Type": "application/json", + }, + } + ); + + const { + data: { + result: { content: legacyChallenge }, + }, + } = result; + + return { + legacyId: legacyChallenge.id, + track: legacyChallenge.track, + subTrack: legacyChallenge.subTrack, + isTask: payload.task || false, + forumId: legacyChallenge.forumId || 0, + }; + } catch (err) { + throw err; + } + } + + async getTechnologies( + m2mToken: string + ): Promise<{ result: { content: { name: string }[] } }> { + const response = await axios.get(V4_TECHNOLOGIES_API_URL!, { + headers: { + Authorization: `Bearer ${m2mToken}`, + }, + }); + + return response.data; + } + + async getPlatforms( + m2mToken: string + ): Promise<{ result: { content: { name: string }[] } }> { + const response = await axios.get(V4_PLATFORMS_API_URL!, { + headers: { + Authorization: `Bearer ${m2mToken}`, + }, + }); + + return response.data; + } +} + +export default new V4Api(); diff --git a/src/common/Constants.ts b/src/common/Constants.ts new file mode 100644 index 0000000..98c1a09 --- /dev/null +++ b/src/common/Constants.ts @@ -0,0 +1,14 @@ +export const { + REGISTRATION_PHASE_ID, + SUBMISSION_PHASE_ID, + CHECKPOINT_SUBMISSION_PHASE_ID, +} = process.env; + +export const CancelledPaymentFailed = "Cancelled - Payment Failed"; +export const CancelledFailedScreening = "Cancelled - Failed Screening"; +export const prizeSetTypes = { + ChallengePrizes: "placement", + CopilotPayment: "copilot", + ReviewerPayment: "reviewer", + CheckPoint: "checkpoint", +}; diff --git a/src/common/ConversionMap.ts b/src/common/ConversionMap.ts new file mode 100644 index 0000000..74c19d5 --- /dev/null +++ b/src/common/ConversionMap.ts @@ -0,0 +1,282 @@ +import _ from "lodash"; + +const V5_TRACK_IDS = { + DATA_SCIENCE: "c0f5d461-8219-4c14-878a-c3a3f356466d", + DESIGN: "5fa04185-041f-49a6-bfd1-fe82533cd6c8", + DEVELOPMENT: "9b6fc876-f4d9-4ccb-9dfd-419247628825", + QA: "36e6a8d0-7e1e-4608-a673-64279d99c115", +}; + +export const V5_TRACK_NAMES_TO_IDS: { [key: string]: string } = { + DESIGN: V5_TRACK_IDS.DESIGN, + DEVELOPMENT: V5_TRACK_IDS.DEVELOPMENT, + "DATA SCIENCE": V5_TRACK_IDS.DATA_SCIENCE, + "QUALITY ASSURANCE": V5_TRACK_IDS.QA, +}; + +const V5_TRACK_IDS_TO_NAMES = { + [V5_TRACK_IDS.DATA_SCIENCE]: "Data Science", + [V5_TRACK_IDS.DESIGN]: "Design", + [V5_TRACK_IDS.DEVELOPMENT]: "Development", + [V5_TRACK_IDS.QA]: "Quality Assurance", +}; + +const V5_TYPE_IDS = { + CHALLENGE: "927abff4-7af9-4145-8ba1-577c16e64e2e", + TASK: "ecd58c69-238f-43a4-a4bb-d172719b9f31", + FIRST_2_FINISH: "dc876fa4-ef2d-4eee-b701-b555fcc6544c", +}; + +export const V5_TYPE_NAMES_TO_IDS: { [key: string]: string } = { + CHALLENGE: V5_TYPE_IDS.CHALLENGE, + FIRST2FINISH: V5_TYPE_IDS.FIRST_2_FINISH, + TASK: V5_TYPE_IDS.TASK, +}; + +const V5_TYPE_IDS_TO_NAMES = { + [V5_TYPE_IDS.CHALLENGE]: "Challenge", + [V5_TYPE_IDS.TASK]: "Task", + [V5_TYPE_IDS.FIRST_2_FINISH]: "First2Finish", +}; + +const V4_TRACKS = { + DEVELOP: "DEVELOP", + DATA_SCIENCE: "DATA_SCIENCE", + DESIGN: "DESIGN", +}; + +const V4_SUBTRACKS = { + MARATHON_MATCH: "MARATHON_MATCH", + DESIGN_FIRST_2_FINISH: "DESIGN_FIRST_2_FINISH", + APPLICATION_FRONT_END_DESIGN: "APPLICATION_FRONT_END_DESIGN", + WEB_DESIGNS: "WEB_DESIGNS", + IDEA_GENERATION: "IDEA_GENERATION", + WIDGET_OR_MOBILE_SCREEN_DESIGN: "WIDGET_OR_MOBILE_SCREEN_DESIGN", + WIREFRAMES: "WIREFRAMES", + PRINT_OR_PRESENTATION: "PRINT_OR_PRESENTATION", + STUDIO_OTHER: "STUDIO_OTHER", + BANNERS_OR_ICONS: "BANNERS_OR_ICONS", + LOGO_DESIGN: "LOGO_DESIGN", + FRONT_END_FLASH: "FRONT_END_FLASH", + DEVELOPMENT: "DEVELOPMENT", + FIRST_2_FINISH: "FIRST_2_FINISH", + CODE: "CODE", + COPILOT_POSTING: "COPILOT_POSTING", + BUG_HUNT: "BUG_HUNT", + DEVELOP_MARATHON_MATCH: "DEVELOP_MARATHON_MATCH", + TEST_SUITES: "TEST_SUITES", + UI_PROTOTYPE_COMPETITION: "UI_PROTOTYPE_COMPETITION", + ARCHITECTURE: "ARCHITECTURE", + ASSEMBLY_COMPETITION: "ASSEMBLY_COMPETITION", + SPECIFICATION: "SPECIFICATION", + TEST_SCENARIOS: "TEST_SCENARIOS", + CONCEPTUALIZATION: "CONCEPTUALIZATION", + CONTENT_CREATION: "CONTENT_CREATION", + DESIGN: "DESIGN", + RIA_BUILD_COMPETITION: "RIA_BUILD_COMPETITION", + RIA_COMPONENT_COMPETITION: "RIA_COMPONENT_COMPETITION", + REPORTING: "REPORTING", + PROCESS: "PROCESS", + LEGACY: "Legacy", + TESTING_COMPETITION: "TESTING_COMPETITION", + DEPLOYMENT: "DEPLOYMENT", + COMPONENT_PRODUCTION: "COMPONENT_PRODUCTION", + AUTOMATED_TESTING: "AUTOMATED TESTING", + SECURITY: "SECURITY", +}; + +export const MARATHON_MATCH_TAG: string = "Marathon Match"; +export const DATA_SCIENCE_MATCH_TAG: string = "Data Science Match"; +const DATA_SCIENCE_TAG = "Data Science"; + +const FE_DESIGN_TAG = "Front-End Design"; +const IDEATION_TAG = "Ideation"; +const WIREFRAME_TAG = "Wireframe"; +const BUG_HUNT_TAG = "Bug Hunt"; +const TEST_SUITES_TAG = "Test Suites"; +const TEST_SCENARIOS_TAG = "Test Scenarios"; +const TESTING_COMPETITION_TAG = "Testing Competition"; + +// Helper methodS to simply avoid writing too much +const buildV4Data = ( + track: string, + subTrack: string, + isTask: boolean, + technologies: string[] +) => ({ + track, + subTrack, + isTask, + ...(technologies ? { technologies } : {}), +}); + +const buildV5Data = (trackId: string, typeId: string, tags: string[] = []) => ({ + trackId, + typeId, + track: V5_TRACK_IDS_TO_NAMES[trackId], + type: V5_TYPE_IDS_TO_NAMES[typeId], + tags, +}); + +export const V5_TO_V4 = { + [V5_TRACK_IDS.DATA_SCIENCE]: { + [V5_TYPE_IDS.CHALLENGE]: (tags: string[]) => { + if ( + _.includes(tags, MARATHON_MATCH_TAG) || + _.includes(tags, DATA_SCIENCE_MATCH_TAG) + ) { + return buildV4Data( + V4_TRACKS.DATA_SCIENCE, + V4_SUBTRACKS.MARATHON_MATCH, + false, + [] + ); + } else { + return buildV4Data(V4_TRACKS.DEVELOP, V4_SUBTRACKS.CODE, false, [ + DATA_SCIENCE_TAG, + ]); + } + }, + [V5_TYPE_IDS.FIRST_2_FINISH]: () => + buildV4Data(V4_TRACKS.DEVELOP, V4_SUBTRACKS.FIRST_2_FINISH, false, []), + [V5_TYPE_IDS.TASK]: () => + buildV4Data(V4_TRACKS.DEVELOP, V4_SUBTRACKS.FIRST_2_FINISH, true, []), + }, + [V5_TRACK_IDS.DESIGN]: { + [V5_TYPE_IDS.CHALLENGE]: () => + buildV4Data(V4_TRACKS.DESIGN, V4_SUBTRACKS.WEB_DESIGNS, false, []), + [V5_TYPE_IDS.FIRST_2_FINISH]: () => + buildV4Data( + V4_TRACKS.DESIGN, + V4_SUBTRACKS.DESIGN_FIRST_2_FINISH, + false, + [] + ), + [V5_TYPE_IDS.TASK]: () => + buildV4Data( + V4_TRACKS.DESIGN, + V4_SUBTRACKS.DESIGN_FIRST_2_FINISH, + true, + [] + ), + }, + [V5_TRACK_IDS.DEVELOPMENT]: { + [V5_TYPE_IDS.CHALLENGE]: () => + buildV4Data(V4_TRACKS.DEVELOP, V4_SUBTRACKS.CODE, false, []), + [V5_TYPE_IDS.FIRST_2_FINISH]: () => + buildV4Data(V4_TRACKS.DEVELOP, V4_SUBTRACKS.FIRST_2_FINISH, false, []), + [V5_TYPE_IDS.TASK]: () => + buildV4Data(V4_TRACKS.DEVELOP, V4_SUBTRACKS.FIRST_2_FINISH, true, []), + }, + [V5_TRACK_IDS.QA]: { + [V5_TYPE_IDS.CHALLENGE]: () => + buildV4Data(V4_TRACKS.DEVELOP, V4_SUBTRACKS.BUG_HUNT, false, []), + [V5_TYPE_IDS.FIRST_2_FINISH]: () => + buildV4Data(V4_TRACKS.DEVELOP, V4_SUBTRACKS.FIRST_2_FINISH, false, []), + [V5_TYPE_IDS.TASK]: () => + buildV4Data(V4_TRACKS.DEVELOP, V4_SUBTRACKS.FIRST_2_FINISH, true, []), + }, +}; + +export const V4_TO_V5 = { + [V4_TRACKS.DATA_SCIENCE]: { + // categorizes non competitive programming marathon matches as Data Science Match + [V4_SUBTRACKS.MARATHON_MATCH]: () => + buildV5Data(V5_TRACK_IDS.DATA_SCIENCE, V5_TYPE_IDS.CHALLENGE, [ + DATA_SCIENCE_MATCH_TAG, + ]), + }, + [V4_TRACKS.DESIGN]: { + [V4_SUBTRACKS.DESIGN_FIRST_2_FINISH]: (isTask: boolean) => + buildV5Data( + V5_TRACK_IDS.DESIGN, + isTask ? V5_TYPE_IDS.TASK : V5_TYPE_IDS.FIRST_2_FINISH + ), + [V4_SUBTRACKS.APPLICATION_FRONT_END_DESIGN]: () => + buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE, [FE_DESIGN_TAG]), + [V4_SUBTRACKS.WEB_DESIGNS]: () => + buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.IDEA_GENERATION]: () => + buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE, [IDEATION_TAG]), + [V4_SUBTRACKS.WIDGET_OR_MOBILE_SCREEN_DESIGN]: () => + buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.WIREFRAMES]: () => + buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE, [WIREFRAME_TAG]), + [V4_SUBTRACKS.PRINT_OR_PRESENTATION]: () => + buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.STUDIO_OTHER]: () => + buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.BANNERS_OR_ICONS]: () => + buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.LOGO_DESIGN]: () => + buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.FRONT_END_FLASH]: () => + buildV5Data(V5_TRACK_IDS.DESIGN, V5_TYPE_IDS.CHALLENGE), + }, + [V4_TRACKS.DEVELOP]: { + [V4_SUBTRACKS.DEVELOPMENT]: () => + buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.FIRST_2_FINISH]: (isTask: boolean) => + buildV5Data( + V5_TRACK_IDS.DEVELOPMENT, + isTask ? V5_TYPE_IDS.TASK : V5_TYPE_IDS.FIRST_2_FINISH + ), + [V4_SUBTRACKS.CODE]: (isTask: boolean, tags: string[]) => { + if (_.includes(tags, MARATHON_MATCH_TAG)) { + return buildV5Data(V5_TRACK_IDS.DATA_SCIENCE, V5_TYPE_IDS.CHALLENGE); + } else if (_.includes(tags, DATA_SCIENCE_TAG)) { + return buildV5Data(V5_TRACK_IDS.DATA_SCIENCE, V5_TYPE_IDS.CHALLENGE); + } else { + return buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE); + } + }, + [V4_SUBTRACKS.COPILOT_POSTING]: () => + buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.BUG_HUNT]: () => + buildV5Data(V5_TRACK_IDS.QA, V5_TYPE_IDS.CHALLENGE, [BUG_HUNT_TAG]), + [V4_SUBTRACKS.DEVELOP_MARATHON_MATCH]: () => + buildV5Data(V5_TRACK_IDS.DATA_SCIENCE, V5_TYPE_IDS.CHALLENGE, [ + MARATHON_MATCH_TAG, + ]), + [V4_SUBTRACKS.TEST_SUITES]: () => + buildV5Data(V5_TRACK_IDS.QA, V5_TYPE_IDS.CHALLENGE, [TEST_SUITES_TAG]), + [V4_SUBTRACKS.UI_PROTOTYPE_COMPETITION]: () => + buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.ARCHITECTURE]: () => + buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.ASSEMBLY_COMPETITION]: () => + buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.SPECIFICATION]: () => + buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.TEST_SCENARIOS]: () => + buildV5Data(V5_TRACK_IDS.QA, V5_TYPE_IDS.CHALLENGE, [TEST_SCENARIOS_TAG]), + [V4_SUBTRACKS.CONCEPTUALIZATION]: () => + buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.CONTENT_CREATION]: () => + buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.DESIGN]: () => + buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.RIA_BUILD_COMPETITION]: () => + buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.RIA_COMPONENT_COMPETITION]: () => + buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.REPORTING]: () => + buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.PROCESS]: () => + buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.LEGACY]: () => + buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.TESTING_COMPETITION]: () => + buildV5Data(V5_TRACK_IDS.QA, V5_TYPE_IDS.CHALLENGE, [ + TESTING_COMPETITION_TAG, + ]), + [V4_SUBTRACKS.DEPLOYMENT]: () => + buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.COMPONENT_PRODUCTION]: () => + buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.SECURITY]: () => + buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE), + [V4_SUBTRACKS.AUTOMATED_TESTING]: () => + buildV5Data(V5_TRACK_IDS.DEVELOPMENT, V5_TYPE_IDS.CHALLENGE), + }, +}; diff --git a/src/common/CoreOperations.ts b/src/common/CoreOperations.ts index 5823d94..0132bd0 100644 --- a/src/common/CoreOperations.ts +++ b/src/common/CoreOperations.ts @@ -45,7 +45,10 @@ export type DynamoTableIndex = { }; }; -abstract class CoreOperations { +abstract class CoreOperations< + T extends { [key: string]: any }, + I extends { [key: string]: any } +> { public constructor( private entityName: string, private entityAttributes: Attribute[], @@ -148,11 +151,11 @@ abstract class CoreOperations { return { nextToken: response?.nextToken, - items: response?.items!, + items: response?.items.map((item) => this.toEntity(item)) ?? [], }; } - public async create(entity: T): Promise { + protected async create(entity: I & T): Promise { const queryRequest: QueryRequest = { kind: { $case: "query", @@ -174,7 +177,7 @@ abstract class CoreOperations { throw new Error(queryResponse.kind?.error?.message); } - return entity; + return this.toEntity(entity); } public async update( @@ -425,6 +428,11 @@ abstract class CoreOperations { throw new Error(`Unsupported data type: ${dataType}`); } + // TODO: Use defined schema to do the conversion + protected toInsertAttributes(model: T): any { + return model; + } + protected abstract toEntity(response: { [key: string]: PartiQLValue }): T; } diff --git a/src/dal/models/nosql/google/protobuf/struct.ts b/src/dal/models/nosql/google/protobuf/struct.ts index 2293c0d..008c728 100644 --- a/src/dal/models/nosql/google/protobuf/struct.ts +++ b/src/dal/models/nosql/google/protobuf/struct.ts @@ -9,8 +9,8 @@ import _m0 from "protobufjs/minimal"; */ export enum NullValue { /** NULL_VALUE - Null value. */ - NULL_VALUE = 0, - UNRECOGNIZED = -1, + NULL_VALUE = "NULL_VALUE", + UNRECOGNIZED = "UNRECOGNIZED", } export function nullValueFromJSON(object: any): NullValue { @@ -35,6 +35,16 @@ export function nullValueToJSON(object: NullValue): string { } } +export function nullValueToNumber(object: NullValue): number { + switch (object) { + case NullValue.NULL_VALUE: + return 0; + case NullValue.UNRECOGNIZED: + default: + return -1; + } +} + /** * `Struct` represents a structured data value, consisting of fields * which map to dynamically typed values. In some languages, `Struct` @@ -140,6 +150,10 @@ export const Struct = { return obj; }, + create, I>>(base?: I): Struct { + return Struct.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Struct { const message = createBaseStruct(); message.fields = Object.entries(object.fields ?? {}).reduce<{ [key: string]: any }>((acc, [key, value]) => { @@ -217,6 +231,10 @@ export const Struct_FieldsEntry = { return obj; }, + create, I>>(base?: I): Struct_FieldsEntry { + return Struct_FieldsEntry.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Struct_FieldsEntry { const message = createBaseStruct_FieldsEntry(); message.key = object.key ?? ""; @@ -232,7 +250,7 @@ function createBaseValue(): Value { export const Value = { encode(message: Value, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.kind?.$case === "nullValue") { - writer.uint32(8).int32(message.kind.nullValue); + writer.uint32(8).int32(nullValueToNumber(message.kind.nullValue)); } if (message.kind?.$case === "numberValue") { writer.uint32(17).double(message.kind.numberValue); @@ -260,7 +278,7 @@ export const Value = { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.kind = { $case: "nullValue", nullValue: reader.int32() as any }; + message.kind = { $case: "nullValue", nullValue: nullValueFromJSON(reader.int32()) }; break; case 2: message.kind = { $case: "numberValue", numberValue: reader.double() }; @@ -315,6 +333,10 @@ export const Value = { return obj; }, + create, I>>(base?: I): Value { + return Value.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Value { const message = createBaseValue(); if (object.kind?.$case === "nullValue" && object.kind?.nullValue !== undefined && object.kind?.nullValue !== null) { @@ -435,6 +457,10 @@ export const ListValue = { return obj; }, + create, I>>(base?: I): ListValue { + return ListValue.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): ListValue { const message = createBaseListValue(); message.values = object.values?.map((e) => e) || []; diff --git a/src/dal/models/nosql/parti_ql.ts b/src/dal/models/nosql/parti_ql.ts index 5f7de8a..f5695d3 100644 --- a/src/dal/models/nosql/parti_ql.ts +++ b/src/dal/models/nosql/parti_ql.ts @@ -12,20 +12,27 @@ import { UntypedServiceImplementation, } from "@grpc/grpc-js"; import _m0 from "protobufjs/minimal"; -import { ListValue, NullValue, nullValueFromJSON, nullValueToJSON, Struct } from "./google/protobuf/struct"; +import { + ListValue, + NullValue, + nullValueFromJSON, + nullValueToJSON, + nullValueToNumber, + Struct, +} from "./google/protobuf/struct"; export enum DataType { - DATA_TYPE_UNSPECIFIED = 0, - DATA_TYPE_BOOLEAN = 1, - DATA_TYPE_BINARY = 2, - DATA_TYPE_LIST = 3, - DATA_TYPE_MAP = 4, - DATA_TYPE_NULL = 5, - DATA_TYPE_NUMBER = 6, - DATA_TYPE_NUMBER_SET = 7, - DATA_TYPE_STRING = 8, - DATA_TYPE_STRING_SET = 9, - UNRECOGNIZED = -1, + DATA_TYPE_UNSPECIFIED = "DATA_TYPE_UNSPECIFIED", + DATA_TYPE_BOOLEAN = "DATA_TYPE_BOOLEAN", + DATA_TYPE_BINARY = "DATA_TYPE_BINARY", + DATA_TYPE_LIST = "DATA_TYPE_LIST", + DATA_TYPE_MAP = "DATA_TYPE_MAP", + DATA_TYPE_NULL = "DATA_TYPE_NULL", + DATA_TYPE_NUMBER = "DATA_TYPE_NUMBER", + DATA_TYPE_NUMBER_SET = "DATA_TYPE_NUMBER_SET", + DATA_TYPE_STRING = "DATA_TYPE_STRING", + DATA_TYPE_STRING_SET = "DATA_TYPE_STRING_SET", + UNRECOGNIZED = "UNRECOGNIZED", } export function dataTypeFromJSON(object: any): DataType { @@ -95,21 +102,49 @@ export function dataTypeToJSON(object: DataType): string { } } +export function dataTypeToNumber(object: DataType): number { + switch (object) { + case DataType.DATA_TYPE_UNSPECIFIED: + return 0; + case DataType.DATA_TYPE_BOOLEAN: + return 1; + case DataType.DATA_TYPE_BINARY: + return 2; + case DataType.DATA_TYPE_LIST: + return 3; + case DataType.DATA_TYPE_MAP: + return 4; + case DataType.DATA_TYPE_NULL: + return 5; + case DataType.DATA_TYPE_NUMBER: + return 6; + case DataType.DATA_TYPE_NUMBER_SET: + return 7; + case DataType.DATA_TYPE_STRING: + return 8; + case DataType.DATA_TYPE_STRING_SET: + return 9; + case DataType.UNRECOGNIZED: + default: + return -1; + } +} + export enum Operator { - OPERATOR_UNSPECIFIED = 0, - OPERATOR_EQUAL = 1, - OPERATOR_NOT_EQUAL = 2, - OPERATOR_GREATER_THAN = 3, - OPERATOR_GREATER_THAN_OR_EQUAL = 4, - OPERATOR_LESS_THAN = 5, - OPERATOR_LESS_THAN_OR_EQUAL = 6, - OPERATOR_AND = 7, - OPERATOR_BETWEEN = 8, - OPERATOR_IN = 9, - OPERATOR_IS = 10, - OPERATOR_NOT = 11, - OPERATOR_OR = 12, - UNRECOGNIZED = -1, + OPERATOR_UNSPECIFIED = "OPERATOR_UNSPECIFIED", + OPERATOR_EQUAL = "OPERATOR_EQUAL", + OPERATOR_NOT_EQUAL = "OPERATOR_NOT_EQUAL", + OPERATOR_GREATER_THAN = "OPERATOR_GREATER_THAN", + OPERATOR_GREATER_THAN_OR_EQUAL = "OPERATOR_GREATER_THAN_OR_EQUAL", + OPERATOR_LESS_THAN = "OPERATOR_LESS_THAN", + OPERATOR_LESS_THAN_OR_EQUAL = "OPERATOR_LESS_THAN_OR_EQUAL", + OPERATOR_AND = "OPERATOR_AND", + OPERATOR_BETWEEN = "OPERATOR_BETWEEN", + OPERATOR_IN = "OPERATOR_IN", + OPERATOR_IS = "OPERATOR_IS", + OPERATOR_NOT = "OPERATOR_NOT", + OPERATOR_OR = "OPERATOR_OR", + UNRECOGNIZED = "UNRECOGNIZED", } export function operatorFromJSON(object: any): Operator { @@ -194,16 +229,50 @@ export function operatorToJSON(object: Operator): string { } } +export function operatorToNumber(object: Operator): number { + switch (object) { + case Operator.OPERATOR_UNSPECIFIED: + return 0; + case Operator.OPERATOR_EQUAL: + return 1; + case Operator.OPERATOR_NOT_EQUAL: + return 2; + case Operator.OPERATOR_GREATER_THAN: + return 3; + case Operator.OPERATOR_GREATER_THAN_OR_EQUAL: + return 4; + case Operator.OPERATOR_LESS_THAN: + return 5; + case Operator.OPERATOR_LESS_THAN_OR_EQUAL: + return 6; + case Operator.OPERATOR_AND: + return 7; + case Operator.OPERATOR_BETWEEN: + return 8; + case Operator.OPERATOR_IN: + return 9; + case Operator.OPERATOR_IS: + return 10; + case Operator.OPERATOR_NOT: + return 11; + case Operator.OPERATOR_OR: + return 12; + case Operator.UNRECOGNIZED: + default: + return -1; + } +} + export enum Error { - ERROR_UNSPECIFIED = 0, - ERROR_DATABASE_ERROR = 1, - ERROR_INVALID_ARGUMENT = 2, - ERROR_INVALID_QUERY = 3, - ERROR_NOT_FOUND = 4, - ERROR_UNAUTHENTICATED = 5, - ERROR_UNAUTHORIZED = 6, - ERROR_UNKNOWN = 7, - UNRECOGNIZED = -1, + ERROR_UNSPECIFIED = "ERROR_UNSPECIFIED", + ERROR_DATABASE_ERROR = "ERROR_DATABASE_ERROR", + ERROR_INVALID_ARGUMENT = "ERROR_INVALID_ARGUMENT", + ERROR_INVALID_QUERY = "ERROR_INVALID_QUERY", + ERROR_NOT_FOUND = "ERROR_NOT_FOUND", + ERROR_UNAUTHENTICATED = "ERROR_UNAUTHENTICATED", + ERROR_UNAUTHORIZED = "ERROR_UNAUTHORIZED", + ERROR_UNKNOWN = "ERROR_UNKNOWN", + UNRECOGNIZED = "UNRECOGNIZED", } export function errorFromJSON(object: any): Error { @@ -263,11 +332,35 @@ export function errorToJSON(object: Error): string { } } +export function errorToNumber(object: Error): number { + switch (object) { + case Error.ERROR_UNSPECIFIED: + return 0; + case Error.ERROR_DATABASE_ERROR: + return 1; + case Error.ERROR_INVALID_ARGUMENT: + return 2; + case Error.ERROR_INVALID_QUERY: + return 3; + case Error.ERROR_NOT_FOUND: + return 4; + case Error.ERROR_UNAUTHENTICATED: + return 5; + case Error.ERROR_UNAUTHORIZED: + return 6; + case Error.ERROR_UNKNOWN: + return 7; + case Error.UNRECOGNIZED: + default: + return -1; + } +} + export enum UpdateAction { - UPDATE_ACTION_UNSPECIFIED = 0, - UPDATE_ACTION_SET = 1, - UPDATE_ACTION_REMOVE = 2, - UNRECOGNIZED = -1, + UPDATE_ACTION_UNSPECIFIED = "UPDATE_ACTION_UNSPECIFIED", + UPDATE_ACTION_SET = "UPDATE_ACTION_SET", + UPDATE_ACTION_REMOVE = "UPDATE_ACTION_REMOVE", + UNRECOGNIZED = "UNRECOGNIZED", } export function updateActionFromJSON(object: any): UpdateAction { @@ -302,13 +395,27 @@ export function updateActionToJSON(object: UpdateAction): string { } } +export function updateActionToNumber(object: UpdateAction): number { + switch (object) { + case UpdateAction.UPDATE_ACTION_UNSPECIFIED: + return 0; + case UpdateAction.UPDATE_ACTION_SET: + return 1; + case UpdateAction.UPDATE_ACTION_REMOVE: + return 2; + case UpdateAction.UNRECOGNIZED: + default: + return -1; + } +} + export enum UpdateType { - UPDATE_TYPE_UNSPECIFIED = 0, - UPDATE_TYPE_VALUE = 1, - UPDATE_TYPE_SET_ADD = 2, - UPDATE_TYPE_SET_DELETE = 3, - UPDATE_TYPE_LIST_APPEND = 4, - UNRECOGNIZED = -1, + UPDATE_TYPE_UNSPECIFIED = "UPDATE_TYPE_UNSPECIFIED", + UPDATE_TYPE_VALUE = "UPDATE_TYPE_VALUE", + UPDATE_TYPE_SET_ADD = "UPDATE_TYPE_SET_ADD", + UPDATE_TYPE_SET_DELETE = "UPDATE_TYPE_SET_DELETE", + UPDATE_TYPE_LIST_APPEND = "UPDATE_TYPE_LIST_APPEND", + UNRECOGNIZED = "UNRECOGNIZED", } export function updateTypeFromJSON(object: any): UpdateType { @@ -353,13 +460,31 @@ export function updateTypeToJSON(object: UpdateType): string { } } +export function updateTypeToNumber(object: UpdateType): number { + switch (object) { + case UpdateType.UPDATE_TYPE_UNSPECIFIED: + return 0; + case UpdateType.UPDATE_TYPE_VALUE: + return 1; + case UpdateType.UPDATE_TYPE_SET_ADD: + return 2; + case UpdateType.UPDATE_TYPE_SET_DELETE: + return 3; + case UpdateType.UPDATE_TYPE_LIST_APPEND: + return 4; + case UpdateType.UNRECOGNIZED: + default: + return -1; + } +} + export enum ReturnValue { - RETURN_VALUE_UNSPECIFIED = 0, - RETURN_VALUE_ALL_NEW = 1, - RETURN_VALUE_MODIFIED_NEW = 2, - RETURN_VALUE_ALL_OLD = 3, - RETURN_VALUE_MODIFIED_OLD = 4, - UNRECOGNIZED = -1, + RETURN_VALUE_UNSPECIFIED = "RETURN_VALUE_UNSPECIFIED", + RETURN_VALUE_ALL_NEW = "RETURN_VALUE_ALL_NEW", + RETURN_VALUE_MODIFIED_NEW = "RETURN_VALUE_MODIFIED_NEW", + RETURN_VALUE_ALL_OLD = "RETURN_VALUE_ALL_OLD", + RETURN_VALUE_MODIFIED_OLD = "RETURN_VALUE_MODIFIED_OLD", + UNRECOGNIZED = "UNRECOGNIZED", } export function returnValueFromJSON(object: any): ReturnValue { @@ -404,6 +529,24 @@ export function returnValueToJSON(object: ReturnValue): string { } } +export function returnValueToNumber(object: ReturnValue): number { + switch (object) { + case ReturnValue.RETURN_VALUE_UNSPECIFIED: + return 0; + case ReturnValue.RETURN_VALUE_ALL_NEW: + return 1; + case ReturnValue.RETURN_VALUE_MODIFIED_NEW: + return 2; + case ReturnValue.RETURN_VALUE_ALL_OLD: + return 3; + case ReturnValue.RETURN_VALUE_MODIFIED_OLD: + return 4; + case ReturnValue.UNRECOGNIZED: + default: + return -1; + } +} + export interface StringSet { values: string[]; } @@ -556,6 +699,10 @@ export const StringSet = { return obj; }, + create, I>>(base?: I): StringSet { + return StringSet.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): StringSet { const message = createBaseStringSet(); message.values = object.values?.map((e) => e) || []; @@ -616,6 +763,10 @@ export const NumberSet = { return obj; }, + create, I>>(base?: I): NumberSet { + return NumberSet.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): NumberSet { const message = createBaseNumberSet(); message.values = object.values?.map((e) => e) || []; @@ -642,7 +793,7 @@ export const Value = { Struct.encode(Struct.wrap(message.kind.mapValue), writer.uint32(34).fork()).ldelim(); } if (message.kind?.$case === "nullValue") { - writer.uint32(40).int32(message.kind.nullValue); + writer.uint32(40).int32(nullValueToNumber(message.kind.nullValue)); } if (message.kind?.$case === "numberValue") { writer.uint32(49).double(message.kind.numberValue); @@ -679,7 +830,7 @@ export const Value = { message.kind = { $case: "mapValue", mapValue: Struct.unwrap(Struct.decode(reader, reader.uint32())) }; break; case 5: - message.kind = { $case: "nullValue", nullValue: reader.int32() as any }; + message.kind = { $case: "nullValue", nullValue: nullValueFromJSON(reader.int32()) }; break; case 6: message.kind = { $case: "numberValue", numberValue: reader.double() }; @@ -743,6 +894,10 @@ export const Value = { return obj; }, + create, I>>(base?: I): Value { + return Value.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Value { const message = createBaseValue(); if (object.kind?.$case === "boolean" && object.kind?.boolean !== undefined && object.kind?.boolean !== null) { @@ -793,7 +948,7 @@ export const Value = { }; function createBaseAttribute(): Attribute { - return { name: "", type: 0 }; + return { name: "", type: DataType.DATA_TYPE_UNSPECIFIED }; } export const Attribute = { @@ -801,8 +956,8 @@ export const Attribute = { if (message.name !== "") { writer.uint32(10).string(message.name); } - if (message.type !== 0) { - writer.uint32(16).int32(message.type); + if (message.type !== DataType.DATA_TYPE_UNSPECIFIED) { + writer.uint32(16).int32(dataTypeToNumber(message.type)); } return writer; }, @@ -818,7 +973,7 @@ export const Attribute = { message.name = reader.string(); break; case 2: - message.type = reader.int32() as any; + message.type = dataTypeFromJSON(reader.int32()); break; default: reader.skipType(tag & 7); @@ -831,7 +986,7 @@ export const Attribute = { fromJSON(object: any): Attribute { return { name: isSet(object.name) ? String(object.name) : "", - type: isSet(object.type) ? dataTypeFromJSON(object.type) : 0, + type: isSet(object.type) ? dataTypeFromJSON(object.type) : DataType.DATA_TYPE_UNSPECIFIED, }; }, @@ -842,16 +997,20 @@ export const Attribute = { return obj; }, + create, I>>(base?: I): Attribute { + return Attribute.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Attribute { const message = createBaseAttribute(); message.name = object.name ?? ""; - message.type = object.type ?? 0; + message.type = object.type ?? DataType.DATA_TYPE_UNSPECIFIED; return message; }, }; function createBaseFilter(): Filter { - return { name: "", operator: 0, value: undefined }; + return { name: "", operator: Operator.OPERATOR_UNSPECIFIED, value: undefined }; } export const Filter = { @@ -859,8 +1018,8 @@ export const Filter = { if (message.name !== "") { writer.uint32(10).string(message.name); } - if (message.operator !== 0) { - writer.uint32(16).int32(message.operator); + if (message.operator !== Operator.OPERATOR_UNSPECIFIED) { + writer.uint32(16).int32(operatorToNumber(message.operator)); } if (message.value !== undefined) { Value.encode(message.value, writer.uint32(26).fork()).ldelim(); @@ -879,7 +1038,7 @@ export const Filter = { message.name = reader.string(); break; case 2: - message.operator = reader.int32() as any; + message.operator = operatorFromJSON(reader.int32()); break; case 3: message.value = Value.decode(reader, reader.uint32()); @@ -895,7 +1054,7 @@ export const Filter = { fromJSON(object: any): Filter { return { name: isSet(object.name) ? String(object.name) : "", - operator: isSet(object.operator) ? operatorFromJSON(object.operator) : 0, + operator: isSet(object.operator) ? operatorFromJSON(object.operator) : Operator.OPERATOR_UNSPECIFIED, value: isSet(object.value) ? Value.fromJSON(object.value) : undefined, }; }, @@ -908,10 +1067,14 @@ export const Filter = { return obj; }, + create, I>>(base?: I): Filter { + return Filter.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Filter { const message = createBaseFilter(); message.name = object.name ?? ""; - message.operator = object.operator ?? 0; + message.operator = object.operator ?? Operator.OPERATOR_UNSPECIFIED; message.value = (object.value !== undefined && object.value !== null) ? Value.fromPartial(object.value) : undefined; return message; }, @@ -999,6 +1162,10 @@ export const SelectQuery = { return obj; }, + create, I>>(base?: I): SelectQuery { + return SelectQuery.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): SelectQuery { const message = createBaseSelectQuery(); message.table = object.table ?? ""; @@ -1060,6 +1227,10 @@ export const InsertQuery = { return obj; }, + create, I>>(base?: I): InsertQuery { + return InsertQuery.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): InsertQuery { const message = createBaseInsertQuery(); message.table = object.table ?? ""; @@ -1069,19 +1240,24 @@ export const InsertQuery = { }; function createBaseUpdateOperation(): UpdateOperation { - return { action: 0, attribute: "", type: 0, value: undefined }; + return { + action: UpdateAction.UPDATE_ACTION_UNSPECIFIED, + attribute: "", + type: UpdateType.UPDATE_TYPE_UNSPECIFIED, + value: undefined, + }; } export const UpdateOperation = { encode(message: UpdateOperation, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.action !== 0) { - writer.uint32(8).int32(message.action); + if (message.action !== UpdateAction.UPDATE_ACTION_UNSPECIFIED) { + writer.uint32(8).int32(updateActionToNumber(message.action)); } if (message.attribute !== "") { writer.uint32(18).string(message.attribute); } - if (message.type !== 0) { - writer.uint32(24).int32(message.type); + if (message.type !== UpdateType.UPDATE_TYPE_UNSPECIFIED) { + writer.uint32(24).int32(updateTypeToNumber(message.type)); } if (message.value !== undefined) { Value.encode(message.value, writer.uint32(34).fork()).ldelim(); @@ -1097,13 +1273,13 @@ export const UpdateOperation = { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.action = reader.int32() as any; + message.action = updateActionFromJSON(reader.int32()); break; case 2: message.attribute = reader.string(); break; case 3: - message.type = reader.int32() as any; + message.type = updateTypeFromJSON(reader.int32()); break; case 4: message.value = Value.decode(reader, reader.uint32()); @@ -1118,9 +1294,9 @@ export const UpdateOperation = { fromJSON(object: any): UpdateOperation { return { - action: isSet(object.action) ? updateActionFromJSON(object.action) : 0, + action: isSet(object.action) ? updateActionFromJSON(object.action) : UpdateAction.UPDATE_ACTION_UNSPECIFIED, attribute: isSet(object.attribute) ? String(object.attribute) : "", - type: isSet(object.type) ? updateTypeFromJSON(object.type) : 0, + type: isSet(object.type) ? updateTypeFromJSON(object.type) : UpdateType.UPDATE_TYPE_UNSPECIFIED, value: isSet(object.value) ? Value.fromJSON(object.value) : undefined, }; }, @@ -1134,11 +1310,15 @@ export const UpdateOperation = { return obj; }, + create, I>>(base?: I): UpdateOperation { + return UpdateOperation.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): UpdateOperation { const message = createBaseUpdateOperation(); - message.action = object.action ?? 0; + message.action = object.action ?? UpdateAction.UPDATE_ACTION_UNSPECIFIED; message.attribute = object.attribute ?? ""; - message.type = object.type ?? 0; + message.type = object.type ?? UpdateType.UPDATE_TYPE_UNSPECIFIED; message.value = (object.value !== undefined && object.value !== null) ? Value.fromPartial(object.value) : undefined; return message; }, @@ -1160,7 +1340,7 @@ export const UpdateQuery = { Filter.encode(v!, writer.uint32(26).fork()).ldelim(); } if (message.returnValue !== undefined) { - writer.uint32(32).int32(message.returnValue); + writer.uint32(32).int32(returnValueToNumber(message.returnValue)); } return writer; }, @@ -1182,7 +1362,7 @@ export const UpdateQuery = { message.filters.push(Filter.decode(reader, reader.uint32())); break; case 4: - message.returnValue = reader.int32() as any; + message.returnValue = returnValueFromJSON(reader.int32()); break; default: reader.skipType(tag & 7); @@ -1219,6 +1399,10 @@ export const UpdateQuery = { return obj; }, + create, I>>(base?: I): UpdateQuery { + return UpdateQuery.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): UpdateQuery { const message = createBaseUpdateQuery(); message.table = object.table ?? ""; @@ -1242,7 +1426,7 @@ export const DeleteQuery = { Filter.encode(v!, writer.uint32(18).fork()).ldelim(); } if (message.returnValues !== undefined) { - writer.uint32(24).int32(message.returnValues); + writer.uint32(24).int32(returnValueToNumber(message.returnValues)); } return writer; }, @@ -1261,7 +1445,7 @@ export const DeleteQuery = { message.filters.push(Filter.decode(reader, reader.uint32())); break; case 3: - message.returnValues = reader.int32() as any; + message.returnValues = returnValueFromJSON(reader.int32()); break; default: reader.skipType(tag & 7); @@ -1292,6 +1476,10 @@ export const DeleteQuery = { return obj; }, + create, I>>(base?: I): DeleteQuery { + return DeleteQuery.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): DeleteQuery { const message = createBaseDeleteQuery(); message.table = object.table ?? ""; @@ -1345,6 +1533,10 @@ export const ReadQuery = { return obj; }, + create, I>>(base?: I): ReadQuery { + return ReadQuery.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): ReadQuery { const message = createBaseReadQuery(); message.queries = object.queries?.map((e) => SelectQuery.fromPartial(e)) || []; @@ -1417,6 +1609,10 @@ export const WriteQuery = { return obj; }, + create, I>>(base?: I): WriteQuery { + return WriteQuery.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): WriteQuery { const message = createBaseWriteQuery(); if (object.kind?.$case === "insert" && object.kind?.insert !== undefined && object.kind?.insert !== null) { @@ -1476,6 +1672,10 @@ export const BulkWriteQuery = { return obj; }, + create, I>>(base?: I): BulkWriteQuery { + return BulkWriteQuery.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): BulkWriteQuery { const message = createBaseBulkWriteQuery(); message.queries = object.queries?.map((e) => WriteQuery.fromPartial(e)) || []; @@ -1539,6 +1739,10 @@ export const BulkQuery = { return obj; }, + create, I>>(base?: I): BulkQuery { + return BulkQuery.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): BulkQuery { const message = createBaseBulkQuery(); if (object.kind?.$case === "read" && object.kind?.read !== undefined && object.kind?.read !== null) { @@ -1633,6 +1837,10 @@ export const Query = { return obj; }, + create, I>>(base?: I): Query { + return Query.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Query { const message = createBaseQuery(); if (object.kind?.$case === "select" && object.kind?.select !== undefined && object.kind?.select !== null) { @@ -1705,6 +1913,10 @@ export const Response = { return obj; }, + create, I>>(base?: I): Response { + return Response.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Response { const message = createBaseResponse(); message.items = object.items?.map((e) => e) || []; @@ -1768,6 +1980,10 @@ export const QueryRequest = { return obj; }, + create, I>>(base?: I): QueryRequest { + return QueryRequest.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): QueryRequest { const message = createBaseQueryRequest(); if (object.kind?.$case === "query" && object.kind?.query !== undefined && object.kind?.query !== null) { @@ -1820,6 +2036,10 @@ export const ResponseError = { return obj; }, + create, I>>(base?: I): ResponseError { + return ResponseError.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): ResponseError { const message = createBaseResponseError(); message.message = object.message ?? ""; @@ -1882,6 +2102,10 @@ export const QueryResponse = { return obj; }, + create, I>>(base?: I): QueryResponse { + return QueryResponse.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): QueryResponse { const message = createBaseQueryResponse(); if (object.kind?.$case === "response" && object.kind?.response !== undefined && object.kind?.response !== null) { diff --git a/src/domain/Attachment.ts b/src/domain/Attachment.ts new file mode 100644 index 0000000..5723e6f --- /dev/null +++ b/src/domain/Attachment.ts @@ -0,0 +1,31 @@ +import { CreateAttachmentInput } from "../models/domain-layer/challenge/attachment"; +import { Value } from "../dal/models/nosql/parti_ql"; + +import { Attachment } from "../models/domain-layer/challenge/attachment"; + +import CoreOperations from "../common/CoreOperations"; +import IdGenerator from "../helpers/IdGenerator"; + +import { AttachmentSchema } from "../schema/AttachmentSchema"; + +class AttachmentDomain extends CoreOperations< + Attachment, + CreateAttachmentInput +> { + protected toEntity(item: { [key: string]: Value }): Attachment { + return Attachment.fromJSON(item); + } + + public create(createInput: CreateAttachmentInput): Promise { + return super.create({ + id: IdGenerator.generateUUID(), + ...createInput, + }); + } +} + +export default new AttachmentDomain( + AttachmentSchema.tableName, + AttachmentSchema.attributes, + AttachmentSchema.indices +); diff --git a/src/domain/Challenge.ts b/src/domain/Challenge.ts index c842f20..cf6b3ea 100644 --- a/src/domain/Challenge.ts +++ b/src/domain/Challenge.ts @@ -1,13 +1,75 @@ import { Value } from "../dal/models/nosql/parti_ql"; import { ChallengeSchema } from "../schema/Challenge"; -import { Challenge } from "../models/domain-layer/challenge/challenge"; +import { + Challenge, + CreateChallengeInput, +} from "../models/domain-layer/challenge/challenge"; import CoreOperations from "../common/CoreOperations"; +import xss from "xss"; +import IdGenerator from "../helpers/IdGenerator"; -class ChallengeDomain extends CoreOperations { +import v4Api from "../api/v4Api"; +import m2m from "../helpers/MachineToMachineToken"; + +class ChallengeDomain extends CoreOperations { protected toEntity(item: { [key: string]: Value }): Challenge { return Challenge.fromJSON(item); } + + public async create(input: CreateChallengeInput): Promise { + input.name = xss(input.name); + input.description = xss(input.description); + + if (Array.isArray(input.discussions)) { + for (const discussion of input.discussions) { + discussion.id = IdGenerator.generateUUID(); + discussion.name = xss(discussion.name.substring(0, 100)); + } + } + + let placementPrizes = 0; + if (input.prizeSets) { + for (const { type, prizes } of input.prizeSets) { + // TODO: use enum/constants + if (type === "placement") { + for (const { value } of prizes) { + placementPrizes += value; + } + } + } + } + const now = new Date().getTime(); + const token = await m2m.getM2MToken(); + + const { legacyId, track, subTrack, forumId } = + await v4Api.createLegacyChallenge(input, token); + + const challenge: Challenge = { + id: IdGenerator.generateUUID(), + created: now, + createdBy: "tcwebservice", // TODO: extract from JWT + updated: now, + updatedBy: "tcwebservice", // TODO: extract from JWT + winners: [], + overview: { + totalPrizes: placementPrizes, + }, + ...input, + legacyId, + legacy: { + ...input.legacy, + track, + subTrack, + forumId, + directProjectId: input.legacy!.directProjectId, + reviewType: input.legacy!.reviewType, + confidentialityType: input.legacy!.confidentialityType, + }, + }; + + return super.create(challenge); + } } export default new ChallengeDomain( diff --git a/src/domain/ChallengeTimelineTemplate.ts b/src/domain/ChallengeTimelineTemplate.ts index 84638f9..9251548 100644 --- a/src/domain/ChallengeTimelineTemplate.ts +++ b/src/domain/ChallengeTimelineTemplate.ts @@ -7,7 +7,10 @@ import { ChallengeTimelineTemplate } from "../models/domain-layer/challenge/chal import CoreOperations from "../common/CoreOperations"; import IdGenerator from "../helpers/IdGenerator"; -class ChallengeTimelineTemplateDomain extends CoreOperations { +class ChallengeTimelineTemplateDomain extends CoreOperations< + ChallengeTimelineTemplate, + CreateChallengeTimelineTemplateInput +> { protected toEntity(item: { [key: string]: Value; }): ChallengeTimelineTemplate { diff --git a/src/domain/ChallengeTrack.ts b/src/domain/ChallengeTrack.ts index c763d28..55818c8 100644 --- a/src/domain/ChallengeTrack.ts +++ b/src/domain/ChallengeTrack.ts @@ -8,7 +8,10 @@ import IdGenerator from "../helpers/IdGenerator"; import { ChallengeTrackSchema } from "../schema/ChallengeTrackSchema"; -class ChallengeTrackDomain extends CoreOperations { +class ChallengeTrackDomain extends CoreOperations< + ChallengeTrack, + CreateChallengeTrackInput +> { protected toEntity(item: { [key: string]: Value }): ChallengeTrack { return ChallengeTrack.fromJSON(item); } diff --git a/src/domain/ChallengeType.ts b/src/domain/ChallengeType.ts new file mode 100644 index 0000000..4c47d54 --- /dev/null +++ b/src/domain/ChallengeType.ts @@ -0,0 +1,31 @@ +import { CreateChallengeTypeInput } from "../models/domain-layer/challenge/challenge_type"; +import { Value } from "../dal/models/nosql/parti_ql"; + +import { ChallengeType } from "../models/domain-layer/challenge/challenge_type"; + +import CoreOperations from "../common/CoreOperations"; +import IdGenerator from "../helpers/IdGenerator"; + +import { ChallengeTypeSchema } from "../schema/ChallengeTypeSchema"; + +class ChallengeTypeDomain extends CoreOperations< + ChallengeType, + CreateChallengeTypeInput +> { + protected toEntity(item: { [key: string]: Value }): ChallengeType { + return ChallengeType.fromJSON(item); + } + + public create(createInput: CreateChallengeTypeInput): Promise { + return super.create({ + id: IdGenerator.generateUUID(), + ...createInput, + }); + } +} + +export default new ChallengeTypeDomain( + ChallengeTypeSchema.tableName, + ChallengeTypeSchema.attributes, + ChallengeTypeSchema.indices +); diff --git a/src/domain/Phase.ts b/src/domain/Phase.ts new file mode 100644 index 0000000..091373d --- /dev/null +++ b/src/domain/Phase.ts @@ -0,0 +1,28 @@ +import { CreatePhaseInput } from "../models/domain-layer/challenge/phase"; +import { Value } from "../dal/models/nosql/parti_ql"; + +import { Phase } from "../models/domain-layer/challenge/phase"; + +import CoreOperations from "../common/CoreOperations"; +import IdGenerator from "../helpers/IdGenerator"; + +import { PhaseSchema } from "../schema/PhaseSchema"; + +class PhaseDomain extends CoreOperations { + protected toEntity(item: { [key: string]: Value }): Phase { + return Phase.fromJSON(item); + } + + public create(createInput: CreatePhaseInput): Promise { + return super.create({ + id: IdGenerator.generateUUID(), + ...createInput, + }); + } +} + +export default new PhaseDomain( + PhaseSchema.tableName, + PhaseSchema.attributes, + PhaseSchema.indices +); diff --git a/src/domain/TimelineTemplate.ts b/src/domain/TimelineTemplate.ts new file mode 100644 index 0000000..8219639 --- /dev/null +++ b/src/domain/TimelineTemplate.ts @@ -0,0 +1,38 @@ +import { CreateTimelineTemplateInput } from "../models/domain-layer/challenge/timeline_template"; +import { Value } from "../dal/models/nosql/parti_ql"; + +import { TimelineTemplate } from "../models/domain-layer/challenge/timeline_template"; + +import CoreOperations from "../common/CoreOperations"; +import IdGenerator from "../helpers/IdGenerator"; + +import { TimelineTemplateSchema } from "../schema/TimelineTemplateSchema"; + +class TimelineTemplateDomain extends CoreOperations< + TimelineTemplate, + CreateTimelineTemplateInput +> { + protected toEntity(item: { [key: string]: Value }): TimelineTemplate { + try { + item.phases = JSON.parse(item.phases.toString()); + } catch (e) { + // do nothing + } + return TimelineTemplate.fromJSON(item); + } + + public create( + createInput: CreateTimelineTemplateInput + ): Promise { + return super.create({ + id: IdGenerator.generateUUID(), + ...createInput, + }); + } +} + +export default new TimelineTemplateDomain( + TimelineTemplateSchema.tableName, + TimelineTemplateSchema.attributes, + TimelineTemplateSchema.indices +); diff --git a/src/helpers/MachineToMachineToken.ts b/src/helpers/MachineToMachineToken.ts new file mode 100644 index 0000000..e0a2560 --- /dev/null +++ b/src/helpers/MachineToMachineToken.ts @@ -0,0 +1,28 @@ +const { + AUTH0_URL, + AUTH0_AUDIENCE, + TOKEN_CACHE_TIME, + AUTH0_CLIENT_ID, + AUTH0_CLIENT_SECRET, +} = process.env; + +import _ from "lodash"; +const m2mAuth = require("tc-core-library-js").auth.m2m; + +class Machine2MachineToken { + m2m: any; + + constructor() { + this.m2m = m2mAuth({ + AUTH0_URL, + AUTH0_AUDIENCE, + TOKEN_CACHE_TIME, + }); + } + + async getM2MToken(): Promise { + return this.m2m.getMachineToken(AUTH0_CLIENT_ID, AUTH0_CLIENT_SECRET); + } +} + +export default new Machine2MachineToken(); diff --git a/src/models/common/common.ts b/src/models/common/common.ts index 00dddfd..b788f0b 100644 --- a/src/models/common/common.ts +++ b/src/models/common/common.ts @@ -205,7 +205,7 @@ export interface LookupCriteria { } export interface GoogleProtobufTypesPlaceholder { - timestamp?: Date; + timestamp?: string; } function createBaseScanCriteria(): ScanCriteria { @@ -267,6 +267,10 @@ export const ScanCriteria = { return obj; }, + create, I>>(base?: I): ScanCriteria { + return ScanCriteria.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): ScanCriteria { const message = createBaseScanCriteria(); message.key = object.key ?? ""; @@ -332,6 +336,10 @@ export const ScanRequest = { return obj; }, + create, I>>(base?: I): ScanRequest { + return ScanRequest.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): ScanRequest { const message = createBaseScanRequest(); message.nextToken = object.nextToken ?? undefined; @@ -394,6 +402,10 @@ export const ScanResult = { return obj; }, + create, I>>(base?: I): ScanResult { + return ScanResult.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): ScanResult { const message = createBaseScanResult(); message.nextToken = object.nextToken ?? undefined; @@ -449,6 +461,10 @@ export const LookupCriteria = { return obj; }, + create, I>>(base?: I): LookupCriteria { + return LookupCriteria.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): LookupCriteria { const message = createBaseLookupCriteria(); message.key = object.key ?? ""; @@ -488,15 +504,19 @@ export const GoogleProtobufTypesPlaceholder = { }, fromJSON(object: any): GoogleProtobufTypesPlaceholder { - return { timestamp: isSet(object.timestamp) ? fromJsonTimestamp(object.timestamp) : undefined }; + return { timestamp: isSet(object.timestamp) ? String(object.timestamp) : undefined }; }, toJSON(message: GoogleProtobufTypesPlaceholder): unknown { const obj: any = {}; - message.timestamp !== undefined && (obj.timestamp = message.timestamp.toISOString()); + message.timestamp !== undefined && (obj.timestamp = message.timestamp); return obj; }, + create, I>>(base?: I): GoogleProtobufTypesPlaceholder { + return GoogleProtobufTypesPlaceholder.fromPartial(base ?? {}); + }, + fromPartial, I>>( object: I, ): GoogleProtobufTypesPlaceholder { @@ -518,26 +538,17 @@ type KeysOfUnion = T extends T ? keyof T : never; type Exact = P extends Builtin ? P : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never }; -function toTimestamp(date: Date): Timestamp { +function toTimestamp(dateStr: string): Timestamp { + const date = new Date(dateStr); const seconds = date.getTime() / 1_000; const nanos = (date.getTime() % 1_000) * 1_000_000; return { seconds, nanos }; } -function fromTimestamp(t: Timestamp): Date { +function fromTimestamp(t: Timestamp): string { let millis = t.seconds * 1_000; millis += t.nanos / 1_000_000; - return new Date(millis); -} - -function fromJsonTimestamp(o: any): Date { - if (o instanceof Date) { - return o; - } else if (typeof o === "string") { - return new Date(o); - } else { - return fromTimestamp(Timestamp.fromJSON(o)); - } + return new Date(millis).toISOString(); } function isSet(value: any): boolean { diff --git a/src/models/domain-layer/challenge/attachment.ts b/src/models/domain-layer/challenge/attachment.ts index 5a8488e..ca8d06e 100644 --- a/src/models/domain-layer/challenge/attachment.ts +++ b/src/models/domain-layer/challenge/attachment.ts @@ -1,6 +1,7 @@ /* eslint-disable */ import Long from "long"; import _m0 from "protobufjs/minimal"; +import { ScanCriteria } from "../../common/common"; export interface Attachment { id: string; @@ -16,11 +17,24 @@ export interface AttachmentList { } export interface CreateAttachmentInput { - attachment?: Attachment; + url: string; + fileSize: number; + name: string; + challengeId: string; + description?: string | undefined; } export interface UpdateAttachmentInput { - attachment?: Attachment; + filterCriteria: ScanCriteria[]; + updateInput?: UpdateAttachmentInput_UpdateInput; +} + +export interface UpdateAttachmentInput_UpdateInput { + url: string; + fileSize: number; + name: string; + challengeId: string; + description?: string | undefined; } function createBaseAttachment(): Attachment { @@ -105,6 +119,10 @@ export const Attachment = { return obj; }, + create, I>>(base?: I): Attachment { + return Attachment.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Attachment { const message = createBaseAttachment(); message.id = object.id ?? ""; @@ -161,6 +179,10 @@ export const AttachmentList = { return obj; }, + create, I>>(base?: I): AttachmentList { + return AttachmentList.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): AttachmentList { const message = createBaseAttachmentList(); message.items = object.items?.map((e) => Attachment.fromPartial(e)) || []; @@ -169,13 +191,25 @@ export const AttachmentList = { }; function createBaseCreateAttachmentInput(): CreateAttachmentInput { - return { attachment: undefined }; + return { url: "", fileSize: 0, name: "", challengeId: "", description: undefined }; } export const CreateAttachmentInput = { encode(message: CreateAttachmentInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.attachment !== undefined) { - Attachment.encode(message.attachment, writer.uint32(10).fork()).ldelim(); + if (message.url !== "") { + writer.uint32(10).string(message.url); + } + if (message.fileSize !== 0) { + writer.uint32(16).int64(message.fileSize); + } + if (message.name !== "") { + writer.uint32(26).string(message.name); + } + if (message.challengeId !== "") { + writer.uint32(34).string(message.challengeId); + } + if (message.description !== undefined) { + writer.uint32(42).string(message.description); } return writer; }, @@ -188,7 +222,19 @@ export const CreateAttachmentInput = { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.attachment = Attachment.decode(reader, reader.uint32()); + message.url = reader.string(); + break; + case 2: + message.fileSize = longToNumber(reader.int64() as Long); + break; + case 3: + message.name = reader.string(); + break; + case 4: + message.challengeId = reader.string(); + break; + case 5: + message.description = reader.string(); break; default: reader.skipType(tag & 7); @@ -199,33 +245,51 @@ export const CreateAttachmentInput = { }, fromJSON(object: any): CreateAttachmentInput { - return { attachment: isSet(object.attachment) ? Attachment.fromJSON(object.attachment) : undefined }; + return { + url: isSet(object.url) ? String(object.url) : "", + fileSize: isSet(object.fileSize) ? Number(object.fileSize) : 0, + name: isSet(object.name) ? String(object.name) : "", + challengeId: isSet(object.challengeId) ? String(object.challengeId) : "", + description: isSet(object.description) ? String(object.description) : undefined, + }; }, toJSON(message: CreateAttachmentInput): unknown { const obj: any = {}; - message.attachment !== undefined && - (obj.attachment = message.attachment ? Attachment.toJSON(message.attachment) : undefined); + message.url !== undefined && (obj.url = message.url); + message.fileSize !== undefined && (obj.fileSize = Math.round(message.fileSize)); + message.name !== undefined && (obj.name = message.name); + message.challengeId !== undefined && (obj.challengeId = message.challengeId); + message.description !== undefined && (obj.description = message.description); return obj; }, + create, I>>(base?: I): CreateAttachmentInput { + return CreateAttachmentInput.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): CreateAttachmentInput { const message = createBaseCreateAttachmentInput(); - message.attachment = (object.attachment !== undefined && object.attachment !== null) - ? Attachment.fromPartial(object.attachment) - : undefined; + message.url = object.url ?? ""; + message.fileSize = object.fileSize ?? 0; + message.name = object.name ?? ""; + message.challengeId = object.challengeId ?? ""; + message.description = object.description ?? undefined; return message; }, }; function createBaseUpdateAttachmentInput(): UpdateAttachmentInput { - return { attachment: undefined }; + return { filterCriteria: [], updateInput: undefined }; } export const UpdateAttachmentInput = { encode(message: UpdateAttachmentInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.attachment !== undefined) { - Attachment.encode(message.attachment, writer.uint32(10).fork()).ldelim(); + for (const v of message.filterCriteria) { + ScanCriteria.encode(v!, writer.uint32(10).fork()).ldelim(); + } + if (message.updateInput !== undefined) { + UpdateAttachmentInput_UpdateInput.encode(message.updateInput, writer.uint32(18).fork()).ldelim(); } return writer; }, @@ -238,7 +302,10 @@ export const UpdateAttachmentInput = { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.attachment = Attachment.decode(reader, reader.uint32()); + message.filterCriteria.push(ScanCriteria.decode(reader, reader.uint32())); + break; + case 2: + message.updateInput = UpdateAttachmentInput_UpdateInput.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -249,25 +316,137 @@ export const UpdateAttachmentInput = { }, fromJSON(object: any): UpdateAttachmentInput { - return { attachment: isSet(object.attachment) ? Attachment.fromJSON(object.attachment) : undefined }; + return { + filterCriteria: Array.isArray(object?.filterCriteria) + ? object.filterCriteria.map((e: any) => ScanCriteria.fromJSON(e)) + : [], + updateInput: isSet(object.updateInput) + ? UpdateAttachmentInput_UpdateInput.fromJSON(object.updateInput) + : undefined, + }; }, toJSON(message: UpdateAttachmentInput): unknown { const obj: any = {}; - message.attachment !== undefined && - (obj.attachment = message.attachment ? Attachment.toJSON(message.attachment) : undefined); + if (message.filterCriteria) { + obj.filterCriteria = message.filterCriteria.map((e) => e ? ScanCriteria.toJSON(e) : undefined); + } else { + obj.filterCriteria = []; + } + message.updateInput !== undefined && + (obj.updateInput = message.updateInput + ? UpdateAttachmentInput_UpdateInput.toJSON(message.updateInput) + : undefined); return obj; }, + create, I>>(base?: I): UpdateAttachmentInput { + return UpdateAttachmentInput.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): UpdateAttachmentInput { const message = createBaseUpdateAttachmentInput(); - message.attachment = (object.attachment !== undefined && object.attachment !== null) - ? Attachment.fromPartial(object.attachment) + message.filterCriteria = object.filterCriteria?.map((e) => ScanCriteria.fromPartial(e)) || []; + message.updateInput = (object.updateInput !== undefined && object.updateInput !== null) + ? UpdateAttachmentInput_UpdateInput.fromPartial(object.updateInput) : undefined; return message; }, }; +function createBaseUpdateAttachmentInput_UpdateInput(): UpdateAttachmentInput_UpdateInput { + return { url: "", fileSize: 0, name: "", challengeId: "", description: undefined }; +} + +export const UpdateAttachmentInput_UpdateInput = { + encode(message: UpdateAttachmentInput_UpdateInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.url !== "") { + writer.uint32(18).string(message.url); + } + if (message.fileSize !== 0) { + writer.uint32(24).int64(message.fileSize); + } + if (message.name !== "") { + writer.uint32(34).string(message.name); + } + if (message.challengeId !== "") { + writer.uint32(42).string(message.challengeId); + } + if (message.description !== undefined) { + writer.uint32(50).string(message.description); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UpdateAttachmentInput_UpdateInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpdateAttachmentInput_UpdateInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 2: + message.url = reader.string(); + break; + case 3: + message.fileSize = longToNumber(reader.int64() as Long); + break; + case 4: + message.name = reader.string(); + break; + case 5: + message.challengeId = reader.string(); + break; + case 6: + message.description = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): UpdateAttachmentInput_UpdateInput { + return { + url: isSet(object.url) ? String(object.url) : "", + fileSize: isSet(object.fileSize) ? Number(object.fileSize) : 0, + name: isSet(object.name) ? String(object.name) : "", + challengeId: isSet(object.challengeId) ? String(object.challengeId) : "", + description: isSet(object.description) ? String(object.description) : undefined, + }; + }, + + toJSON(message: UpdateAttachmentInput_UpdateInput): unknown { + const obj: any = {}; + message.url !== undefined && (obj.url = message.url); + message.fileSize !== undefined && (obj.fileSize = Math.round(message.fileSize)); + message.name !== undefined && (obj.name = message.name); + message.challengeId !== undefined && (obj.challengeId = message.challengeId); + message.description !== undefined && (obj.description = message.description); + return obj; + }, + + create, I>>( + base?: I, + ): UpdateAttachmentInput_UpdateInput { + return UpdateAttachmentInput_UpdateInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>( + object: I, + ): UpdateAttachmentInput_UpdateInput { + const message = createBaseUpdateAttachmentInput_UpdateInput(); + message.url = object.url ?? ""; + message.fileSize = object.fileSize ?? 0; + message.name = object.name ?? ""; + message.challengeId = object.challengeId ?? ""; + message.description = object.description ?? undefined; + return message; + }, +}; + declare var self: any | undefined; declare var window: any | undefined; declare var global: any | undefined; diff --git a/src/models/domain-layer/challenge/challenge.ts b/src/models/domain-layer/challenge/challenge.ts index 4de88fe..c9d56a8 100644 --- a/src/models/domain-layer/challenge/challenge.ts +++ b/src/models/domain-layer/challenge/challenge.ts @@ -1,328 +1,8 @@ /* eslint-disable */ +import Long from "long"; import _m0 from "protobufjs/minimal"; import { Timestamp } from "../../google/protobuf/timestamp"; -export enum Track { - TRACK_UNSPECIFIED = 0, - TRACK_DEVELOP = 1, - TRACK_DESIGN = 2, - TRACK_DATA_SCIENCE = 3, - TRACK_QA = 4, - UNRECOGNIZED = -1, -} - -export function trackFromJSON(object: any): Track { - switch (object) { - case 0: - case "TRACK_UNSPECIFIED": - return Track.TRACK_UNSPECIFIED; - case 1: - case "TRACK_DEVELOP": - return Track.TRACK_DEVELOP; - case 2: - case "TRACK_DESIGN": - return Track.TRACK_DESIGN; - case 3: - case "TRACK_DATA_SCIENCE": - return Track.TRACK_DATA_SCIENCE; - case 4: - case "TRACK_QA": - return Track.TRACK_QA; - case -1: - case "UNRECOGNIZED": - default: - return Track.UNRECOGNIZED; - } -} - -export function trackToJSON(object: Track): string { - switch (object) { - case Track.TRACK_UNSPECIFIED: - return "TRACK_UNSPECIFIED"; - case Track.TRACK_DEVELOP: - return "TRACK_DEVELOP"; - case Track.TRACK_DESIGN: - return "TRACK_DESIGN"; - case Track.TRACK_DATA_SCIENCE: - return "TRACK_DATA_SCIENCE"; - case Track.TRACK_QA: - return "TRACK_QA"; - case Track.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export enum SubTrack { - SUB_TRACK_UNSPECIFIED = 0, - SUB_TRACK_FIRST_2_FINISH = 1, - SUB_TRACK_CODE = 2, - SUB_TRACK_DESIGN_FIRST_2_FINISH = 3, - /** @deprecated */ - SUB_TRACK_ASSEMBLY_COMPETITION = 4, - /** @deprecated */ - SUB_TRACK_UI_PROTOTYPE_COMPETITION = 5, - /** @deprecated */ - SUB_TRACK_ARCHITECTURE = 6, - SUB_TRACK_BUG_HUNT = 7, - SUB_TRACK_MARATHON_MATCH = 8, - /** @deprecated */ - SUB_TRACK_SPECIFICATION = 9, - SUB_TRACK_WEB_DESIGNS = 10, - /** @deprecated */ - SUB_TRACK_TEST_SCENARIOS = 11, - /** @deprecated */ - SUB_TRACK_TEST_SUITES = 12, - UNRECOGNIZED = -1, -} - -export function subTrackFromJSON(object: any): SubTrack { - switch (object) { - case 0: - case "SUB_TRACK_UNSPECIFIED": - return SubTrack.SUB_TRACK_UNSPECIFIED; - case 1: - case "SUB_TRACK_FIRST_2_FINISH": - return SubTrack.SUB_TRACK_FIRST_2_FINISH; - case 2: - case "SUB_TRACK_CODE": - return SubTrack.SUB_TRACK_CODE; - case 3: - case "SUB_TRACK_DESIGN_FIRST_2_FINISH": - return SubTrack.SUB_TRACK_DESIGN_FIRST_2_FINISH; - case 4: - case "SUB_TRACK_ASSEMBLY_COMPETITION": - return SubTrack.SUB_TRACK_ASSEMBLY_COMPETITION; - case 5: - case "SUB_TRACK_UI_PROTOTYPE_COMPETITION": - return SubTrack.SUB_TRACK_UI_PROTOTYPE_COMPETITION; - case 6: - case "SUB_TRACK_ARCHITECTURE": - return SubTrack.SUB_TRACK_ARCHITECTURE; - case 7: - case "SUB_TRACK_BUG_HUNT": - return SubTrack.SUB_TRACK_BUG_HUNT; - case 8: - case "SUB_TRACK_MARATHON_MATCH": - return SubTrack.SUB_TRACK_MARATHON_MATCH; - case 9: - case "SUB_TRACK_SPECIFICATION": - return SubTrack.SUB_TRACK_SPECIFICATION; - case 10: - case "SUB_TRACK_WEB_DESIGNS": - return SubTrack.SUB_TRACK_WEB_DESIGNS; - case 11: - case "SUB_TRACK_TEST_SCENARIOS": - return SubTrack.SUB_TRACK_TEST_SCENARIOS; - case 12: - case "SUB_TRACK_TEST_SUITES": - return SubTrack.SUB_TRACK_TEST_SUITES; - case -1: - case "UNRECOGNIZED": - default: - return SubTrack.UNRECOGNIZED; - } -} - -export function subTrackToJSON(object: SubTrack): string { - switch (object) { - case SubTrack.SUB_TRACK_UNSPECIFIED: - return "SUB_TRACK_UNSPECIFIED"; - case SubTrack.SUB_TRACK_FIRST_2_FINISH: - return "SUB_TRACK_FIRST_2_FINISH"; - case SubTrack.SUB_TRACK_CODE: - return "SUB_TRACK_CODE"; - case SubTrack.SUB_TRACK_DESIGN_FIRST_2_FINISH: - return "SUB_TRACK_DESIGN_FIRST_2_FINISH"; - case SubTrack.SUB_TRACK_ASSEMBLY_COMPETITION: - return "SUB_TRACK_ASSEMBLY_COMPETITION"; - case SubTrack.SUB_TRACK_UI_PROTOTYPE_COMPETITION: - return "SUB_TRACK_UI_PROTOTYPE_COMPETITION"; - case SubTrack.SUB_TRACK_ARCHITECTURE: - return "SUB_TRACK_ARCHITECTURE"; - case SubTrack.SUB_TRACK_BUG_HUNT: - return "SUB_TRACK_BUG_HUNT"; - case SubTrack.SUB_TRACK_MARATHON_MATCH: - return "SUB_TRACK_MARATHON_MATCH"; - case SubTrack.SUB_TRACK_SPECIFICATION: - return "SUB_TRACK_SPECIFICATION"; - case SubTrack.SUB_TRACK_WEB_DESIGNS: - return "SUB_TRACK_WEB_DESIGNS"; - case SubTrack.SUB_TRACK_TEST_SCENARIOS: - return "SUB_TRACK_TEST_SCENARIOS"; - case SubTrack.SUB_TRACK_TEST_SUITES: - return "SUB_TRACK_TEST_SUITES"; - case SubTrack.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export enum ReviewType { - REVIEW_TYPE_UNSPECIFIED = 0, - REVIEW_TYPE_COMMUNITY = 1, - REVIEW_TYPE_INTERNAL = 2, - UNRECOGNIZED = -1, -} - -export function reviewTypeFromJSON(object: any): ReviewType { - switch (object) { - case 0: - case "REVIEW_TYPE_UNSPECIFIED": - return ReviewType.REVIEW_TYPE_UNSPECIFIED; - case 1: - case "REVIEW_TYPE_COMMUNITY": - return ReviewType.REVIEW_TYPE_COMMUNITY; - case 2: - case "REVIEW_TYPE_INTERNAL": - return ReviewType.REVIEW_TYPE_INTERNAL; - case -1: - case "UNRECOGNIZED": - default: - return ReviewType.UNRECOGNIZED; - } -} - -export function reviewTypeToJSON(object: ReviewType): string { - switch (object) { - case ReviewType.REVIEW_TYPE_UNSPECIFIED: - return "REVIEW_TYPE_UNSPECIFIED"; - case ReviewType.REVIEW_TYPE_COMMUNITY: - return "REVIEW_TYPE_COMMUNITY"; - case ReviewType.REVIEW_TYPE_INTERNAL: - return "REVIEW_TYPE_INTERNAL"; - case ReviewType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export enum ConfidentialityType { - CONFIDENTIALITY_TYPE_UNSPECIFIED = 0, - CONFIDENTIALITY_TYPE_PUBLIC = 1, - CONFIDENTIALITY_TYPE_PRIVATE = 2, - UNRECOGNIZED = -1, -} - -export function confidentialityTypeFromJSON(object: any): ConfidentialityType { - switch (object) { - case 0: - case "CONFIDENTIALITY_TYPE_UNSPECIFIED": - return ConfidentialityType.CONFIDENTIALITY_TYPE_UNSPECIFIED; - case 1: - case "CONFIDENTIALITY_TYPE_PUBLIC": - return ConfidentialityType.CONFIDENTIALITY_TYPE_PUBLIC; - case 2: - case "CONFIDENTIALITY_TYPE_PRIVATE": - return ConfidentialityType.CONFIDENTIALITY_TYPE_PRIVATE; - case -1: - case "UNRECOGNIZED": - default: - return ConfidentialityType.UNRECOGNIZED; - } -} - -export function confidentialityTypeToJSON(object: ConfidentialityType): string { - switch (object) { - case ConfidentialityType.CONFIDENTIALITY_TYPE_UNSPECIFIED: - return "CONFIDENTIALITY_TYPE_UNSPECIFIED"; - case ConfidentialityType.CONFIDENTIALITY_TYPE_PUBLIC: - return "CONFIDENTIALITY_TYPE_PUBLIC"; - case ConfidentialityType.CONFIDENTIALITY_TYPE_PRIVATE: - return "CONFIDENTIALITY_TYPE_PRIVATE"; - case ConfidentialityType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - -export enum PhaseName { - PHASE_NAME_UNSPECIFIED = 0, - PHASE_NAME_REGISTRATION = 1, - PHASE_NAME_SUBMISSION = 2, - PHASE_NAME_SCREENING = 3, - PHASE_NAME_REVIEW = 4, - PHASE_NAME_APPEALS = 5, - PHASE_NAME_APPEALS_RESPONSE = 6, - PHASE_NAME_AGGREGATION = 7, - PHASE_NAME_FINAL_FIX = 8, - PHASE_NAME_POST_MORTEM = 9, - PHASE_NAME_ITERATIVE_REVIEW = 10, - UNRECOGNIZED = -1, -} - -export function phaseNameFromJSON(object: any): PhaseName { - switch (object) { - case 0: - case "PHASE_NAME_UNSPECIFIED": - return PhaseName.PHASE_NAME_UNSPECIFIED; - case 1: - case "PHASE_NAME_REGISTRATION": - return PhaseName.PHASE_NAME_REGISTRATION; - case 2: - case "PHASE_NAME_SUBMISSION": - return PhaseName.PHASE_NAME_SUBMISSION; - case 3: - case "PHASE_NAME_SCREENING": - return PhaseName.PHASE_NAME_SCREENING; - case 4: - case "PHASE_NAME_REVIEW": - return PhaseName.PHASE_NAME_REVIEW; - case 5: - case "PHASE_NAME_APPEALS": - return PhaseName.PHASE_NAME_APPEALS; - case 6: - case "PHASE_NAME_APPEALS_RESPONSE": - return PhaseName.PHASE_NAME_APPEALS_RESPONSE; - case 7: - case "PHASE_NAME_AGGREGATION": - return PhaseName.PHASE_NAME_AGGREGATION; - case 8: - case "PHASE_NAME_FINAL_FIX": - return PhaseName.PHASE_NAME_FINAL_FIX; - case 9: - case "PHASE_NAME_POST_MORTEM": - return PhaseName.PHASE_NAME_POST_MORTEM; - case 10: - case "PHASE_NAME_ITERATIVE_REVIEW": - return PhaseName.PHASE_NAME_ITERATIVE_REVIEW; - case -1: - case "UNRECOGNIZED": - default: - return PhaseName.UNRECOGNIZED; - } -} - -export function phaseNameToJSON(object: PhaseName): string { - switch (object) { - case PhaseName.PHASE_NAME_UNSPECIFIED: - return "PHASE_NAME_UNSPECIFIED"; - case PhaseName.PHASE_NAME_REGISTRATION: - return "PHASE_NAME_REGISTRATION"; - case PhaseName.PHASE_NAME_SUBMISSION: - return "PHASE_NAME_SUBMISSION"; - case PhaseName.PHASE_NAME_SCREENING: - return "PHASE_NAME_SCREENING"; - case PhaseName.PHASE_NAME_REVIEW: - return "PHASE_NAME_REVIEW"; - case PhaseName.PHASE_NAME_APPEALS: - return "PHASE_NAME_APPEALS"; - case PhaseName.PHASE_NAME_APPEALS_RESPONSE: - return "PHASE_NAME_APPEALS_RESPONSE"; - case PhaseName.PHASE_NAME_AGGREGATION: - return "PHASE_NAME_AGGREGATION"; - case PhaseName.PHASE_NAME_FINAL_FIX: - return "PHASE_NAME_FINAL_FIX"; - case PhaseName.PHASE_NAME_POST_MORTEM: - return "PHASE_NAME_POST_MORTEM"; - case PhaseName.PHASE_NAME_ITERATIVE_REVIEW: - return "PHASE_NAME_ITERATIVE_REVIEW"; - case PhaseName.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - export interface Challenge { id: string; legacyId?: number | undefined; @@ -343,142 +23,30 @@ export interface Challenge { prizeSets: Challenge_PrizeSet[]; tags: string[]; projectId?: number | undefined; - startDate?: Date | undefined; - endDate?: Date | undefined; - status: Challenge_ChallengeStatus; + startDate?: number | undefined; + endDate?: number | undefined; + status: string; attachments: string[]; groups: string[]; winners: Challenge_Winner[]; discussions: Challenge_Discussion[]; createdBy: string; updatedBy?: string | undefined; - created?: Date; - updated?: Date | undefined; -} - -export enum Challenge_ChallengeStatus { - CHALLENGE_STATUS_UNSPECIFIED = 0, - CHALLENGE_STATUS_NEW = 1, - CHALLENGE_STATUS_DRAFT = 2, - CHALLENGE_STATUS_ACTIVE = 3, - CHALLENGE_STATUS_COMPLETED = 4, - CHALLENGE_STATUS_CANCELLED = 5, - CHALLENGE_STATUS_DELETED = 6, - CHALLENGE_STATUS_APPROVED = 7, - CHALLENGE_STATUS_CANCELLED_FAILED_REVIEW = 8, - CHALLENGE_STATUS_CANCELLED_FAILED_SCREENING = 9, - CHALLENGE_STATUS_CANCELLED_ZERO_SUBMISSIONS = 10, - CHALLENGE_STATUS_CANCELLED_WINNER_UNRESPONSIVE = 11, - CHALLENGE_STATUS_CANCELLED_CLIENT_REQUEST = 12, - CHALLENGE_STATUS_CANCELLED_REQUIREMENTS_INFEASIBLE = 13, - CHALLENGE_STATUS_CANCELLED_ZERO_REGISTRATIONS = 14, - CHALLENGE_STATUS_CANCELLED_PAYMENT_FAILED = 15, - UNRECOGNIZED = -1, -} - -export function challenge_ChallengeStatusFromJSON(object: any): Challenge_ChallengeStatus { - switch (object) { - case 0: - case "CHALLENGE_STATUS_UNSPECIFIED": - return Challenge_ChallengeStatus.CHALLENGE_STATUS_UNSPECIFIED; - case 1: - case "CHALLENGE_STATUS_NEW": - return Challenge_ChallengeStatus.CHALLENGE_STATUS_NEW; - case 2: - case "CHALLENGE_STATUS_DRAFT": - return Challenge_ChallengeStatus.CHALLENGE_STATUS_DRAFT; - case 3: - case "CHALLENGE_STATUS_ACTIVE": - return Challenge_ChallengeStatus.CHALLENGE_STATUS_ACTIVE; - case 4: - case "CHALLENGE_STATUS_COMPLETED": - return Challenge_ChallengeStatus.CHALLENGE_STATUS_COMPLETED; - case 5: - case "CHALLENGE_STATUS_CANCELLED": - return Challenge_ChallengeStatus.CHALLENGE_STATUS_CANCELLED; - case 6: - case "CHALLENGE_STATUS_DELETED": - return Challenge_ChallengeStatus.CHALLENGE_STATUS_DELETED; - case 7: - case "CHALLENGE_STATUS_APPROVED": - return Challenge_ChallengeStatus.CHALLENGE_STATUS_APPROVED; - case 8: - case "CHALLENGE_STATUS_CANCELLED_FAILED_REVIEW": - return Challenge_ChallengeStatus.CHALLENGE_STATUS_CANCELLED_FAILED_REVIEW; - case 9: - case "CHALLENGE_STATUS_CANCELLED_FAILED_SCREENING": - return Challenge_ChallengeStatus.CHALLENGE_STATUS_CANCELLED_FAILED_SCREENING; - case 10: - case "CHALLENGE_STATUS_CANCELLED_ZERO_SUBMISSIONS": - return Challenge_ChallengeStatus.CHALLENGE_STATUS_CANCELLED_ZERO_SUBMISSIONS; - case 11: - case "CHALLENGE_STATUS_CANCELLED_WINNER_UNRESPONSIVE": - return Challenge_ChallengeStatus.CHALLENGE_STATUS_CANCELLED_WINNER_UNRESPONSIVE; - case 12: - case "CHALLENGE_STATUS_CANCELLED_CLIENT_REQUEST": - return Challenge_ChallengeStatus.CHALLENGE_STATUS_CANCELLED_CLIENT_REQUEST; - case 13: - case "CHALLENGE_STATUS_CANCELLED_REQUIREMENTS_INFEASIBLE": - return Challenge_ChallengeStatus.CHALLENGE_STATUS_CANCELLED_REQUIREMENTS_INFEASIBLE; - case 14: - case "CHALLENGE_STATUS_CANCELLED_ZERO_REGISTRATIONS": - return Challenge_ChallengeStatus.CHALLENGE_STATUS_CANCELLED_ZERO_REGISTRATIONS; - case 15: - case "CHALLENGE_STATUS_CANCELLED_PAYMENT_FAILED": - return Challenge_ChallengeStatus.CHALLENGE_STATUS_CANCELLED_PAYMENT_FAILED; - case -1: - case "UNRECOGNIZED": - default: - return Challenge_ChallengeStatus.UNRECOGNIZED; - } -} - -export function challenge_ChallengeStatusToJSON(object: Challenge_ChallengeStatus): string { - switch (object) { - case Challenge_ChallengeStatus.CHALLENGE_STATUS_UNSPECIFIED: - return "CHALLENGE_STATUS_UNSPECIFIED"; - case Challenge_ChallengeStatus.CHALLENGE_STATUS_NEW: - return "CHALLENGE_STATUS_NEW"; - case Challenge_ChallengeStatus.CHALLENGE_STATUS_DRAFT: - return "CHALLENGE_STATUS_DRAFT"; - case Challenge_ChallengeStatus.CHALLENGE_STATUS_ACTIVE: - return "CHALLENGE_STATUS_ACTIVE"; - case Challenge_ChallengeStatus.CHALLENGE_STATUS_COMPLETED: - return "CHALLENGE_STATUS_COMPLETED"; - case Challenge_ChallengeStatus.CHALLENGE_STATUS_CANCELLED: - return "CHALLENGE_STATUS_CANCELLED"; - case Challenge_ChallengeStatus.CHALLENGE_STATUS_DELETED: - return "CHALLENGE_STATUS_DELETED"; - case Challenge_ChallengeStatus.CHALLENGE_STATUS_APPROVED: - return "CHALLENGE_STATUS_APPROVED"; - case Challenge_ChallengeStatus.CHALLENGE_STATUS_CANCELLED_FAILED_REVIEW: - return "CHALLENGE_STATUS_CANCELLED_FAILED_REVIEW"; - case Challenge_ChallengeStatus.CHALLENGE_STATUS_CANCELLED_FAILED_SCREENING: - return "CHALLENGE_STATUS_CANCELLED_FAILED_SCREENING"; - case Challenge_ChallengeStatus.CHALLENGE_STATUS_CANCELLED_ZERO_SUBMISSIONS: - return "CHALLENGE_STATUS_CANCELLED_ZERO_SUBMISSIONS"; - case Challenge_ChallengeStatus.CHALLENGE_STATUS_CANCELLED_WINNER_UNRESPONSIVE: - return "CHALLENGE_STATUS_CANCELLED_WINNER_UNRESPONSIVE"; - case Challenge_ChallengeStatus.CHALLENGE_STATUS_CANCELLED_CLIENT_REQUEST: - return "CHALLENGE_STATUS_CANCELLED_CLIENT_REQUEST"; - case Challenge_ChallengeStatus.CHALLENGE_STATUS_CANCELLED_REQUIREMENTS_INFEASIBLE: - return "CHALLENGE_STATUS_CANCELLED_REQUIREMENTS_INFEASIBLE"; - case Challenge_ChallengeStatus.CHALLENGE_STATUS_CANCELLED_ZERO_REGISTRATIONS: - return "CHALLENGE_STATUS_CANCELLED_ZERO_REGISTRATIONS"; - case Challenge_ChallengeStatus.CHALLENGE_STATUS_CANCELLED_PAYMENT_FAILED: - return "CHALLENGE_STATUS_CANCELLED_PAYMENT_FAILED"; - case Challenge_ChallengeStatus.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } + created: number; + updated?: number | undefined; + overview?: Challenge_Overview; } export interface Challenge_Legacy { - track: Track; - subTrack: SubTrack; - forumId: number; + /** Develop, Design, Data Science, QA */ + track?: string | undefined; + subTrack?: string | undefined; + forumId?: number | undefined; directProjectId: number; - reviewType: ReviewType; + /** Community, Internal */ + reviewType: string; + /** Public, Private */ + confidentialityType: string; reviewScorecardId?: number | undefined; screeningScorecardId?: number | undefined; pureV5Task?: boolean | undefined; @@ -510,54 +78,22 @@ export interface Challenge_Metadata { export interface Challenge_Discussion { id?: string | undefined; name: string; - type: Challenge_Discussion_DiscussionType; + /** Challenge */ + type: string; provider: string; - url: string; -} - -export enum Challenge_Discussion_DiscussionType { - DISCUSSION_TYPE_UNSPECIFIED = 0, - DISCUSSION_TYPE_CHALLENGE = 1, - UNRECOGNIZED = -1, -} - -export function challenge_Discussion_DiscussionTypeFromJSON(object: any): Challenge_Discussion_DiscussionType { - switch (object) { - case 0: - case "DISCUSSION_TYPE_UNSPECIFIED": - return Challenge_Discussion_DiscussionType.DISCUSSION_TYPE_UNSPECIFIED; - case 1: - case "DISCUSSION_TYPE_CHALLENGE": - return Challenge_Discussion_DiscussionType.DISCUSSION_TYPE_CHALLENGE; - case -1: - case "UNRECOGNIZED": - default: - return Challenge_Discussion_DiscussionType.UNRECOGNIZED; - } -} - -export function challenge_Discussion_DiscussionTypeToJSON(object: Challenge_Discussion_DiscussionType): string { - switch (object) { - case Challenge_Discussion_DiscussionType.DISCUSSION_TYPE_UNSPECIFIED: - return "DISCUSSION_TYPE_UNSPECIFIED"; - case Challenge_Discussion_DiscussionType.DISCUSSION_TYPE_CHALLENGE: - return "DISCUSSION_TYPE_CHALLENGE"; - case Challenge_Discussion_DiscussionType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } + url?: string | undefined; } export interface Challenge_Phase { duration: number; - scheduledStartDate?: Date | undefined; - scheduledEndDate?: Date | undefined; - actualStartDate?: Date | undefined; - actualEndDate?: Date | undefined; - name: PhaseName; + scheduledStartDate?: string | undefined; + scheduledEndDate?: string | undefined; + actualStartDate?: string | undefined; + actualEndDate?: string | undefined; + name: string; phaseId: string; id: string; - open: boolean; + isOpen: boolean; } export interface Challenge_Winner { @@ -572,146 +108,49 @@ export interface Challenge_Task { } export interface Challenge_PrizeSet { - type: Challenge_PrizeSet_PrizeType; - description: string; + /** Placement, Copilot, Reviewer */ + type: string; + description?: string | undefined; prizes: Challenge_PrizeSet_Prize[]; } -export enum Challenge_PrizeSet_PrizeType { - PRIZE_TYPE_UNSPECIFIED = 0, - PRIZE_TYPE_PLACEMENT = 1, - PRIZE_TYPE_COPILOT = 2, - PRIZE_TYPE_REVIEWER_PRIZE = 3, - UNRECOGNIZED = -1, -} - -export function challenge_PrizeSet_PrizeTypeFromJSON(object: any): Challenge_PrizeSet_PrizeType { - switch (object) { - case 0: - case "PRIZE_TYPE_UNSPECIFIED": - return Challenge_PrizeSet_PrizeType.PRIZE_TYPE_UNSPECIFIED; - case 1: - case "PRIZE_TYPE_PLACEMENT": - return Challenge_PrizeSet_PrizeType.PRIZE_TYPE_PLACEMENT; - case 2: - case "PRIZE_TYPE_COPILOT": - return Challenge_PrizeSet_PrizeType.PRIZE_TYPE_COPILOT; - case 3: - case "PRIZE_TYPE_REVIEWER_PRIZE": - return Challenge_PrizeSet_PrizeType.PRIZE_TYPE_REVIEWER_PRIZE; - case -1: - case "UNRECOGNIZED": - default: - return Challenge_PrizeSet_PrizeType.UNRECOGNIZED; - } -} - -export function challenge_PrizeSet_PrizeTypeToJSON(object: Challenge_PrizeSet_PrizeType): string { - switch (object) { - case Challenge_PrizeSet_PrizeType.PRIZE_TYPE_UNSPECIFIED: - return "PRIZE_TYPE_UNSPECIFIED"; - case Challenge_PrizeSet_PrizeType.PRIZE_TYPE_PLACEMENT: - return "PRIZE_TYPE_PLACEMENT"; - case Challenge_PrizeSet_PrizeType.PRIZE_TYPE_COPILOT: - return "PRIZE_TYPE_COPILOT"; - case Challenge_PrizeSet_PrizeType.PRIZE_TYPE_REVIEWER_PRIZE: - return "PRIZE_TYPE_REVIEWER_PRIZE"; - case Challenge_PrizeSet_PrizeType.UNRECOGNIZED: - default: - return "UNRECOGNIZED"; - } -} - export interface Challenge_PrizeSet_Prize { value: number; type: string; } +export interface Challenge_Overview { + totalPrizes: number; +} + export interface ChallengeList { items: Challenge[]; } export interface CreateChallengeInput { + name: string; typeId: string; - /** - * Legacy Legacy = 3; - * legacy: - * Joi.object().keys({ - * reviewType: - * Joi.string() - * .valid(_.values(constants.reviewTypes)) - * .insensitive() - * .default(constants.reviewTypes.Internal), - * confidentialityType: - * Joi.string().default(config.DEFAULT_CONFIDENTIALITY_TYPE), - * forumId: Joi.number().integer(), directProjectId: - * Joi.number().integer(), screeningScorecardId: Joi.number().integer(), - * reviewScorecardId: Joi.number().integer(), isTask: Joi.boolean(), - * useSchedulingAPI: Joi.boolean(), pureV5Task: Joi.boolean(), - * pureV5: Joi.boolean(), selfService: Joi.boolean(), - * selfServiceCopilot: Joi.string() - * }), - * billing: Joi.object() - * .keys({ - * billingAccountId: - * Joi.string(), markup: Joi.number().min(0).max(100) - * }) - * .unknown(true), - * task: Joi.object().keys({ - * isTask: - * Joi.boolean().default(false), isAssigned: - * Joi.boolean().default(false), memberId: Joi.string().allow(null) - * }), - * name: Joi.string().required(), description: Joi.string(), - * privateDescription: Joi.string(), descriptionFormat: Joi.string(), - * metadata: Joi.array() - * .items(Joi.object().keys({ - * name: - * Joi.string().required(), value: Joi.required() - * })) - * .unique((a, b) = > a.name == = b.name), - * timelineTemplateId: Joi.string(), // Joi.optionalId(), - * phases: Joi.array().items(Joi.object().keys({ - * phaseId: - * Joi.id(), duration: Joi.number().integer().min(0) - * })), - * events: Joi.array().items(Joi.object().keys({ - * id: - * Joi.number().required(), name: Joi.string(), key: Joi.string() - * })), - * discussions: Joi.array().items(Joi.object().keys({ - * id: - * Joi.optionalId(), name: Joi.string().required(), - * type: - * Joi.string().required().valid(_.values(constants.DiscussionTypes)), - * provider: Joi.string().required(), url: Joi.string(), - * options: Joi.array().items(Joi.object()) - * })), - * prizeSets: Joi.array().items(Joi.object().keys({ - * type: - * Joi.string().valid(_.values(constants.prizeSetTypes)).required(), - * description: Joi.string(), - * prizes: Joi.array() - * .items(Joi.object().keys({ - * description: - * Joi.string(), type: Joi.string().required(), - * value: Joi.number().min(0).required() - * })) - * .min(1) - * .required() - * })), - * tags: Joi.array().items(Joi.string()), // tag names - * projectId: Joi.number().integer().positive(), - * legacyId: Joi.number().integer().positive(), startDate: Joi.date(), - * status: Joi.string().valid(_.values(constants.challengeStatuses)), - * groups: Joi.array().items(Joi.optionalId()).unique(), - * // gitRepoURLs: Joi.array().items(Joi.string().uri()), - * terms: Joi.array().items(Joi.object().keys({ - * id: - * Joi.id(), roleId: Joi.id() - * })) - */ trackId: string; + timelineTemplateId?: string | undefined; + legacy?: Challenge_Legacy; + billing?: Challenge_Billing; + description: string; + privateDescription?: string | undefined; + descriptionFormat?: string | undefined; + metadata: Challenge_Metadata[]; + task?: Challenge_Task | undefined; + phases: Challenge_Phase[]; + events: Challenge_Event[]; + terms: Challenge_Term[]; + prizeSets: Challenge_PrizeSet[]; + tags: string[]; + projectId?: number | undefined; + startDate?: number | undefined; + endDate?: number | undefined; + status: string; + attachments: string[]; + groups: string[]; + discussions: Challenge_Discussion[]; } export interface UpdateChallengeInput { @@ -741,15 +180,16 @@ function createBaseChallenge(): Challenge { projectId: undefined, startDate: undefined, endDate: undefined, - status: 0, + status: "", attachments: [], groups: [], winners: [], discussions: [], createdBy: "", updatedBy: undefined, - created: undefined, + created: 0, updated: undefined, + overview: undefined, }; } @@ -813,13 +253,13 @@ export const Challenge = { writer.uint32(152).int32(message.projectId); } if (message.startDate !== undefined) { - Timestamp.encode(toTimestamp(message.startDate), writer.uint32(162).fork()).ldelim(); + writer.uint32(160).int64(message.startDate); } if (message.endDate !== undefined) { - Timestamp.encode(toTimestamp(message.endDate), writer.uint32(170).fork()).ldelim(); + writer.uint32(168).int64(message.endDate); } - if (message.status !== 0) { - writer.uint32(176).int32(message.status); + if (message.status !== "") { + writer.uint32(178).string(message.status); } for (const v of message.attachments) { writer.uint32(186).string(v!); @@ -839,11 +279,14 @@ export const Challenge = { if (message.updatedBy !== undefined) { writer.uint32(226).string(message.updatedBy); } - if (message.created !== undefined) { - Timestamp.encode(toTimestamp(message.created), writer.uint32(234).fork()).ldelim(); + if (message.created !== 0) { + writer.uint32(232).int64(message.created); } if (message.updated !== undefined) { - Timestamp.encode(toTimestamp(message.updated), writer.uint32(242).fork()).ldelim(); + writer.uint32(240).int64(message.updated); + } + if (message.overview !== undefined) { + Challenge_Overview.encode(message.overview, writer.uint32(250).fork()).ldelim(); } return writer; }, @@ -913,13 +356,13 @@ export const Challenge = { message.projectId = reader.int32(); break; case 20: - message.startDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); + message.startDate = longToNumber(reader.int64() as Long); break; case 21: - message.endDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); + message.endDate = longToNumber(reader.int64() as Long); break; case 22: - message.status = reader.int32() as any; + message.status = reader.string(); break; case 23: message.attachments.push(reader.string()); @@ -940,10 +383,13 @@ export const Challenge = { message.updatedBy = reader.string(); break; case 29: - message.created = fromTimestamp(Timestamp.decode(reader, reader.uint32())); + message.created = longToNumber(reader.int64() as Long); break; case 30: - message.updated = fromTimestamp(Timestamp.decode(reader, reader.uint32())); + message.updated = longToNumber(reader.int64() as Long); + break; + case 31: + message.overview = Challenge_Overview.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); @@ -976,9 +422,9 @@ export const Challenge = { : [], tags: Array.isArray(object?.tags) ? object.tags.map((e: any) => String(e)) : [], projectId: isSet(object.projectId) ? Number(object.projectId) : undefined, - startDate: isSet(object.startDate) ? fromJsonTimestamp(object.startDate) : undefined, - endDate: isSet(object.endDate) ? fromJsonTimestamp(object.endDate) : undefined, - status: isSet(object.status) ? challenge_ChallengeStatusFromJSON(object.status) : 0, + startDate: isSet(object.startDate) ? Number(object.startDate) : undefined, + endDate: isSet(object.endDate) ? Number(object.endDate) : undefined, + status: isSet(object.status) ? String(object.status) : "", attachments: Array.isArray(object?.attachments) ? object.attachments.map((e: any) => String(e)) : [], groups: Array.isArray(object?.groups) ? object.groups.map((e: any) => String(e)) : [], winners: Array.isArray(object?.winners) ? object.winners.map((e: any) => Challenge_Winner.fromJSON(e)) : [], @@ -987,8 +433,9 @@ export const Challenge = { : [], createdBy: isSet(object.createdBy) ? String(object.createdBy) : "", updatedBy: isSet(object.updatedBy) ? String(object.updatedBy) : undefined, - created: isSet(object.created) ? fromJsonTimestamp(object.created) : undefined, - updated: isSet(object.updated) ? fromJsonTimestamp(object.updated) : undefined, + created: isSet(object.created) ? Number(object.created) : 0, + updated: isSet(object.updated) ? Number(object.updated) : undefined, + overview: isSet(object.overview) ? Challenge_Overview.fromJSON(object.overview) : undefined, }; }, @@ -1038,9 +485,9 @@ export const Challenge = { obj.tags = []; } message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); - message.startDate !== undefined && (obj.startDate = message.startDate.toISOString()); - message.endDate !== undefined && (obj.endDate = message.endDate.toISOString()); - message.status !== undefined && (obj.status = challenge_ChallengeStatusToJSON(message.status)); + message.startDate !== undefined && (obj.startDate = Math.round(message.startDate)); + message.endDate !== undefined && (obj.endDate = Math.round(message.endDate)); + message.status !== undefined && (obj.status = message.status); if (message.attachments) { obj.attachments = message.attachments.map((e) => e); } else { @@ -1063,11 +510,17 @@ export const Challenge = { } message.createdBy !== undefined && (obj.createdBy = message.createdBy); message.updatedBy !== undefined && (obj.updatedBy = message.updatedBy); - message.created !== undefined && (obj.created = message.created.toISOString()); - message.updated !== undefined && (obj.updated = message.updated.toISOString()); + message.created !== undefined && (obj.created = Math.round(message.created)); + message.updated !== undefined && (obj.updated = Math.round(message.updated)); + message.overview !== undefined && + (obj.overview = message.overview ? Challenge_Overview.toJSON(message.overview) : undefined); return obj; }, + create, I>>(base?: I): Challenge { + return Challenge.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Challenge { const message = createBaseChallenge(); message.id = object.id ?? ""; @@ -1097,26 +550,30 @@ export const Challenge = { message.projectId = object.projectId ?? undefined; message.startDate = object.startDate ?? undefined; message.endDate = object.endDate ?? undefined; - message.status = object.status ?? 0; + message.status = object.status ?? ""; message.attachments = object.attachments?.map((e) => e) || []; message.groups = object.groups?.map((e) => e) || []; message.winners = object.winners?.map((e) => Challenge_Winner.fromPartial(e)) || []; message.discussions = object.discussions?.map((e) => Challenge_Discussion.fromPartial(e)) || []; message.createdBy = object.createdBy ?? ""; message.updatedBy = object.updatedBy ?? undefined; - message.created = object.created ?? undefined; + message.created = object.created ?? 0; message.updated = object.updated ?? undefined; + message.overview = (object.overview !== undefined && object.overview !== null) + ? Challenge_Overview.fromPartial(object.overview) + : undefined; return message; }, }; function createBaseChallenge_Legacy(): Challenge_Legacy { return { - track: 0, - subTrack: 0, - forumId: 0, + track: undefined, + subTrack: undefined, + forumId: undefined, directProjectId: 0, - reviewType: 0, + reviewType: "", + confidentialityType: "", reviewScorecardId: undefined, screeningScorecardId: undefined, pureV5Task: undefined, @@ -1127,35 +584,38 @@ function createBaseChallenge_Legacy(): Challenge_Legacy { export const Challenge_Legacy = { encode(message: Challenge_Legacy, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.track !== 0) { - writer.uint32(8).int32(message.track); + if (message.track !== undefined) { + writer.uint32(10).string(message.track); } - if (message.subTrack !== 0) { - writer.uint32(16).int32(message.subTrack); + if (message.subTrack !== undefined) { + writer.uint32(18).string(message.subTrack); } - if (message.forumId !== 0) { + if (message.forumId !== undefined) { writer.uint32(24).int32(message.forumId); } if (message.directProjectId !== 0) { writer.uint32(32).int32(message.directProjectId); } - if (message.reviewType !== 0) { - writer.uint32(40).int32(message.reviewType); + if (message.reviewType !== "") { + writer.uint32(42).string(message.reviewType); + } + if (message.confidentialityType !== "") { + writer.uint32(50).string(message.confidentialityType); } if (message.reviewScorecardId !== undefined) { - writer.uint32(48).int32(message.reviewScorecardId); + writer.uint32(56).int32(message.reviewScorecardId); } if (message.screeningScorecardId !== undefined) { - writer.uint32(56).int32(message.screeningScorecardId); + writer.uint32(64).int32(message.screeningScorecardId); } if (message.pureV5Task !== undefined) { - writer.uint32(64).bool(message.pureV5Task); + writer.uint32(72).bool(message.pureV5Task); } if (message.selfService !== undefined) { - writer.uint32(72).bool(message.selfService); + writer.uint32(80).bool(message.selfService); } if (message.selfServiceCopilot !== undefined) { - writer.uint32(82).string(message.selfServiceCopilot); + writer.uint32(90).string(message.selfServiceCopilot); } return writer; }, @@ -1168,10 +628,10 @@ export const Challenge_Legacy = { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.track = reader.int32() as any; + message.track = reader.string(); break; case 2: - message.subTrack = reader.int32() as any; + message.subTrack = reader.string(); break; case 3: message.forumId = reader.int32(); @@ -1180,21 +640,24 @@ export const Challenge_Legacy = { message.directProjectId = reader.int32(); break; case 5: - message.reviewType = reader.int32() as any; + message.reviewType = reader.string(); break; case 6: - message.reviewScorecardId = reader.int32(); + message.confidentialityType = reader.string(); break; case 7: - message.screeningScorecardId = reader.int32(); + message.reviewScorecardId = reader.int32(); break; case 8: - message.pureV5Task = reader.bool(); + message.screeningScorecardId = reader.int32(); break; case 9: - message.selfService = reader.bool(); + message.pureV5Task = reader.bool(); break; case 10: + message.selfService = reader.bool(); + break; + case 11: message.selfServiceCopilot = reader.string(); break; default: @@ -1207,11 +670,12 @@ export const Challenge_Legacy = { fromJSON(object: any): Challenge_Legacy { return { - track: isSet(object.track) ? trackFromJSON(object.track) : 0, - subTrack: isSet(object.subTrack) ? subTrackFromJSON(object.subTrack) : 0, - forumId: isSet(object.forumId) ? Number(object.forumId) : 0, + track: isSet(object.track) ? String(object.track) : undefined, + subTrack: isSet(object.subTrack) ? String(object.subTrack) : undefined, + forumId: isSet(object.forumId) ? Number(object.forumId) : undefined, directProjectId: isSet(object.directProjectId) ? Number(object.directProjectId) : 0, - reviewType: isSet(object.reviewType) ? reviewTypeFromJSON(object.reviewType) : 0, + reviewType: isSet(object.reviewType) ? String(object.reviewType) : "", + confidentialityType: isSet(object.confidentialityType) ? String(object.confidentialityType) : "", reviewScorecardId: isSet(object.reviewScorecardId) ? Number(object.reviewScorecardId) : undefined, screeningScorecardId: isSet(object.screeningScorecardId) ? Number(object.screeningScorecardId) : undefined, pureV5Task: isSet(object.pureV5Task) ? Boolean(object.pureV5Task) : undefined, @@ -1222,11 +686,12 @@ export const Challenge_Legacy = { toJSON(message: Challenge_Legacy): unknown { const obj: any = {}; - message.track !== undefined && (obj.track = trackToJSON(message.track)); - message.subTrack !== undefined && (obj.subTrack = subTrackToJSON(message.subTrack)); + message.track !== undefined && (obj.track = message.track); + message.subTrack !== undefined && (obj.subTrack = message.subTrack); message.forumId !== undefined && (obj.forumId = Math.round(message.forumId)); message.directProjectId !== undefined && (obj.directProjectId = Math.round(message.directProjectId)); - message.reviewType !== undefined && (obj.reviewType = reviewTypeToJSON(message.reviewType)); + message.reviewType !== undefined && (obj.reviewType = message.reviewType); + message.confidentialityType !== undefined && (obj.confidentialityType = message.confidentialityType); message.reviewScorecardId !== undefined && (obj.reviewScorecardId = Math.round(message.reviewScorecardId)); message.screeningScorecardId !== undefined && (obj.screeningScorecardId = Math.round(message.screeningScorecardId)); message.pureV5Task !== undefined && (obj.pureV5Task = message.pureV5Task); @@ -1235,13 +700,18 @@ export const Challenge_Legacy = { return obj; }, + create, I>>(base?: I): Challenge_Legacy { + return Challenge_Legacy.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Challenge_Legacy { const message = createBaseChallenge_Legacy(); - message.track = object.track ?? 0; - message.subTrack = object.subTrack ?? 0; - message.forumId = object.forumId ?? 0; + message.track = object.track ?? undefined; + message.subTrack = object.subTrack ?? undefined; + message.forumId = object.forumId ?? undefined; message.directProjectId = object.directProjectId ?? 0; - message.reviewType = object.reviewType ?? 0; + message.reviewType = object.reviewType ?? ""; + message.confidentialityType = object.confidentialityType ?? ""; message.reviewScorecardId = object.reviewScorecardId ?? undefined; message.screeningScorecardId = object.screeningScorecardId ?? undefined; message.pureV5Task = object.pureV5Task ?? undefined; @@ -1301,6 +771,10 @@ export const Challenge_Billing = { return obj; }, + create, I>>(base?: I): Challenge_Billing { + return Challenge_Billing.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Challenge_Billing { const message = createBaseChallenge_Billing(); message.billingAccountId = object.billingAccountId ?? 0; @@ -1367,6 +841,10 @@ export const Challenge_Event = { return obj; }, + create, I>>(base?: I): Challenge_Event { + return Challenge_Event.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Challenge_Event { const message = createBaseChallenge_Event(); message.id = object.id ?? 0; @@ -1423,6 +901,10 @@ export const Challenge_Term = { return obj; }, + create, I>>(base?: I): Challenge_Term { + return Challenge_Term.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Challenge_Term { const message = createBaseChallenge_Term(); message.id = object.id ?? ""; @@ -1481,6 +963,10 @@ export const Challenge_Metadata = { return obj; }, + create, I>>(base?: I): Challenge_Metadata { + return Challenge_Metadata.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Challenge_Metadata { const message = createBaseChallenge_Metadata(); message.name = object.name ?? ""; @@ -1490,7 +976,7 @@ export const Challenge_Metadata = { }; function createBaseChallenge_Discussion(): Challenge_Discussion { - return { id: undefined, name: "", type: 0, provider: "", url: "" }; + return { id: undefined, name: "", type: "", provider: "", url: undefined }; } export const Challenge_Discussion = { @@ -1501,13 +987,13 @@ export const Challenge_Discussion = { if (message.name !== "") { writer.uint32(18).string(message.name); } - if (message.type !== 0) { - writer.uint32(24).int32(message.type); + if (message.type !== "") { + writer.uint32(26).string(message.type); } if (message.provider !== "") { writer.uint32(34).string(message.provider); } - if (message.url !== "") { + if (message.url !== undefined) { writer.uint32(42).string(message.url); } return writer; @@ -1527,7 +1013,7 @@ export const Challenge_Discussion = { message.name = reader.string(); break; case 3: - message.type = reader.int32() as any; + message.type = reader.string(); break; case 4: message.provider = reader.string(); @@ -1547,9 +1033,9 @@ export const Challenge_Discussion = { return { id: isSet(object.id) ? String(object.id) : undefined, name: isSet(object.name) ? String(object.name) : "", - type: isSet(object.type) ? challenge_Discussion_DiscussionTypeFromJSON(object.type) : 0, + type: isSet(object.type) ? String(object.type) : "", provider: isSet(object.provider) ? String(object.provider) : "", - url: isSet(object.url) ? String(object.url) : "", + url: isSet(object.url) ? String(object.url) : undefined, }; }, @@ -1557,19 +1043,23 @@ export const Challenge_Discussion = { const obj: any = {}; message.id !== undefined && (obj.id = message.id); message.name !== undefined && (obj.name = message.name); - message.type !== undefined && (obj.type = challenge_Discussion_DiscussionTypeToJSON(message.type)); + message.type !== undefined && (obj.type = message.type); message.provider !== undefined && (obj.provider = message.provider); message.url !== undefined && (obj.url = message.url); return obj; }, + create, I>>(base?: I): Challenge_Discussion { + return Challenge_Discussion.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Challenge_Discussion { const message = createBaseChallenge_Discussion(); message.id = object.id ?? undefined; message.name = object.name ?? ""; - message.type = object.type ?? 0; + message.type = object.type ?? ""; message.provider = object.provider ?? ""; - message.url = object.url ?? ""; + message.url = object.url ?? undefined; return message; }, }; @@ -1581,10 +1071,10 @@ function createBaseChallenge_Phase(): Challenge_Phase { scheduledEndDate: undefined, actualStartDate: undefined, actualEndDate: undefined, - name: 0, + name: "", phaseId: "", id: "", - open: false, + isOpen: false, }; } @@ -1605,8 +1095,8 @@ export const Challenge_Phase = { if (message.actualEndDate !== undefined) { Timestamp.encode(toTimestamp(message.actualEndDate), writer.uint32(42).fork()).ldelim(); } - if (message.name !== 0) { - writer.uint32(48).int32(message.name); + if (message.name !== "") { + writer.uint32(50).string(message.name); } if (message.phaseId !== "") { writer.uint32(58).string(message.phaseId); @@ -1614,8 +1104,8 @@ export const Challenge_Phase = { if (message.id !== "") { writer.uint32(66).string(message.id); } - if (message.open === true) { - writer.uint32(72).bool(message.open); + if (message.isOpen === true) { + writer.uint32(72).bool(message.isOpen); } return writer; }, @@ -1643,7 +1133,7 @@ export const Challenge_Phase = { message.actualEndDate = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 6: - message.name = reader.int32() as any; + message.name = reader.string(); break; case 7: message.phaseId = reader.string(); @@ -1652,7 +1142,7 @@ export const Challenge_Phase = { message.id = reader.string(); break; case 9: - message.open = reader.bool(); + message.isOpen = reader.bool(); break; default: reader.skipType(tag & 7); @@ -1665,31 +1155,35 @@ export const Challenge_Phase = { fromJSON(object: any): Challenge_Phase { return { duration: isSet(object.duration) ? Number(object.duration) : 0, - scheduledStartDate: isSet(object.scheduledStartDate) ? fromJsonTimestamp(object.scheduledStartDate) : undefined, - scheduledEndDate: isSet(object.scheduledEndDate) ? fromJsonTimestamp(object.scheduledEndDate) : undefined, - actualStartDate: isSet(object.actualStartDate) ? fromJsonTimestamp(object.actualStartDate) : undefined, - actualEndDate: isSet(object.actualEndDate) ? fromJsonTimestamp(object.actualEndDate) : undefined, - name: isSet(object.name) ? phaseNameFromJSON(object.name) : 0, + scheduledStartDate: isSet(object.scheduledStartDate) ? String(object.scheduledStartDate) : undefined, + scheduledEndDate: isSet(object.scheduledEndDate) ? String(object.scheduledEndDate) : undefined, + actualStartDate: isSet(object.actualStartDate) ? String(object.actualStartDate) : undefined, + actualEndDate: isSet(object.actualEndDate) ? String(object.actualEndDate) : undefined, + name: isSet(object.name) ? String(object.name) : "", phaseId: isSet(object.phaseId) ? String(object.phaseId) : "", id: isSet(object.id) ? String(object.id) : "", - open: isSet(object.open) ? Boolean(object.open) : false, + isOpen: isSet(object.isOpen) ? Boolean(object.isOpen) : false, }; }, toJSON(message: Challenge_Phase): unknown { const obj: any = {}; message.duration !== undefined && (obj.duration = Math.round(message.duration)); - message.scheduledStartDate !== undefined && (obj.scheduledStartDate = message.scheduledStartDate.toISOString()); - message.scheduledEndDate !== undefined && (obj.scheduledEndDate = message.scheduledEndDate.toISOString()); - message.actualStartDate !== undefined && (obj.actualStartDate = message.actualStartDate.toISOString()); - message.actualEndDate !== undefined && (obj.actualEndDate = message.actualEndDate.toISOString()); - message.name !== undefined && (obj.name = phaseNameToJSON(message.name)); + message.scheduledStartDate !== undefined && (obj.scheduledStartDate = message.scheduledStartDate); + message.scheduledEndDate !== undefined && (obj.scheduledEndDate = message.scheduledEndDate); + message.actualStartDate !== undefined && (obj.actualStartDate = message.actualStartDate); + message.actualEndDate !== undefined && (obj.actualEndDate = message.actualEndDate); + message.name !== undefined && (obj.name = message.name); message.phaseId !== undefined && (obj.phaseId = message.phaseId); message.id !== undefined && (obj.id = message.id); - message.open !== undefined && (obj.open = message.open); + message.isOpen !== undefined && (obj.isOpen = message.isOpen); return obj; }, + create, I>>(base?: I): Challenge_Phase { + return Challenge_Phase.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Challenge_Phase { const message = createBaseChallenge_Phase(); message.duration = object.duration ?? 0; @@ -1697,10 +1191,10 @@ export const Challenge_Phase = { message.scheduledEndDate = object.scheduledEndDate ?? undefined; message.actualStartDate = object.actualStartDate ?? undefined; message.actualEndDate = object.actualEndDate ?? undefined; - message.name = object.name ?? 0; + message.name = object.name ?? ""; message.phaseId = object.phaseId ?? ""; message.id = object.id ?? ""; - message.open = object.open ?? false; + message.isOpen = object.isOpen ?? false; return message; }, }; @@ -1755,6 +1249,10 @@ export const Challenge_Winner = { return obj; }, + create, I>>(base?: I): Challenge_Winner { + return Challenge_Winner.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Challenge_Winner { const message = createBaseChallenge_Winner(); message.handle = object.handle ?? ""; @@ -1821,6 +1319,10 @@ export const Challenge_Task = { return obj; }, + create, I>>(base?: I): Challenge_Task { + return Challenge_Task.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Challenge_Task { const message = createBaseChallenge_Task(); message.isTask = object.isTask ?? false; @@ -1831,15 +1333,15 @@ export const Challenge_Task = { }; function createBaseChallenge_PrizeSet(): Challenge_PrizeSet { - return { type: 0, description: "", prizes: [] }; + return { type: "", description: undefined, prizes: [] }; } export const Challenge_PrizeSet = { encode(message: Challenge_PrizeSet, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.type !== 0) { - writer.uint32(8).int32(message.type); + if (message.type !== "") { + writer.uint32(10).string(message.type); } - if (message.description !== "") { + if (message.description !== undefined) { writer.uint32(18).string(message.description); } for (const v of message.prizes) { @@ -1856,7 +1358,7 @@ export const Challenge_PrizeSet = { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.type = reader.int32() as any; + message.type = reader.string(); break; case 2: message.description = reader.string(); @@ -1874,15 +1376,15 @@ export const Challenge_PrizeSet = { fromJSON(object: any): Challenge_PrizeSet { return { - type: isSet(object.type) ? challenge_PrizeSet_PrizeTypeFromJSON(object.type) : 0, - description: isSet(object.description) ? String(object.description) : "", + type: isSet(object.type) ? String(object.type) : "", + description: isSet(object.description) ? String(object.description) : undefined, prizes: Array.isArray(object?.prizes) ? object.prizes.map((e: any) => Challenge_PrizeSet_Prize.fromJSON(e)) : [], }; }, toJSON(message: Challenge_PrizeSet): unknown { const obj: any = {}; - message.type !== undefined && (obj.type = challenge_PrizeSet_PrizeTypeToJSON(message.type)); + message.type !== undefined && (obj.type = message.type); message.description !== undefined && (obj.description = message.description); if (message.prizes) { obj.prizes = message.prizes.map((e) => e ? Challenge_PrizeSet_Prize.toJSON(e) : undefined); @@ -1892,10 +1394,14 @@ export const Challenge_PrizeSet = { return obj; }, + create, I>>(base?: I): Challenge_PrizeSet { + return Challenge_PrizeSet.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Challenge_PrizeSet { const message = createBaseChallenge_PrizeSet(); - message.type = object.type ?? 0; - message.description = object.description ?? ""; + message.type = object.type ?? ""; + message.description = object.description ?? undefined; message.prizes = object.prizes?.map((e) => Challenge_PrizeSet_Prize.fromPartial(e)) || []; return message; }, @@ -1951,6 +1457,10 @@ export const Challenge_PrizeSet_Prize = { return obj; }, + create, I>>(base?: I): Challenge_PrizeSet_Prize { + return Challenge_PrizeSet_Prize.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Challenge_PrizeSet_Prize { const message = createBaseChallenge_PrizeSet_Prize(); message.value = object.value ?? 0; @@ -1959,6 +1469,57 @@ export const Challenge_PrizeSet_Prize = { }, }; +function createBaseChallenge_Overview(): Challenge_Overview { + return { totalPrizes: 0 }; +} + +export const Challenge_Overview = { + encode(message: Challenge_Overview, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.totalPrizes !== 0) { + writer.uint32(8).int32(message.totalPrizes); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Challenge_Overview { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseChallenge_Overview(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.totalPrizes = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Challenge_Overview { + return { totalPrizes: isSet(object.totalPrizes) ? Number(object.totalPrizes) : 0 }; + }, + + toJSON(message: Challenge_Overview): unknown { + const obj: any = {}; + message.totalPrizes !== undefined && (obj.totalPrizes = Math.round(message.totalPrizes)); + return obj; + }, + + create, I>>(base?: I): Challenge_Overview { + return Challenge_Overview.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): Challenge_Overview { + const message = createBaseChallenge_Overview(); + message.totalPrizes = object.totalPrizes ?? 0; + return message; + }, +}; + function createBaseChallengeList(): ChallengeList { return { items: [] }; } @@ -2003,6 +1564,10 @@ export const ChallengeList = { return obj; }, + create, I>>(base?: I): ChallengeList { + return ChallengeList.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): ChallengeList { const message = createBaseChallengeList(); message.items = object.items?.map((e) => Challenge.fromPartial(e)) || []; @@ -2011,16 +1576,103 @@ export const ChallengeList = { }; function createBaseCreateChallengeInput(): CreateChallengeInput { - return { typeId: "", trackId: "" }; + return { + name: "", + typeId: "", + trackId: "", + timelineTemplateId: undefined, + legacy: undefined, + billing: undefined, + description: "", + privateDescription: undefined, + descriptionFormat: undefined, + metadata: [], + task: undefined, + phases: [], + events: [], + terms: [], + prizeSets: [], + tags: [], + projectId: undefined, + startDate: undefined, + endDate: undefined, + status: "", + attachments: [], + groups: [], + discussions: [], + }; } export const CreateChallengeInput = { encode(message: CreateChallengeInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== "") { + writer.uint32(10).string(message.name); + } if (message.typeId !== "") { - writer.uint32(10).string(message.typeId); + writer.uint32(18).string(message.typeId); } if (message.trackId !== "") { - writer.uint32(18).string(message.trackId); + writer.uint32(26).string(message.trackId); + } + if (message.timelineTemplateId !== undefined) { + writer.uint32(34).string(message.timelineTemplateId); + } + if (message.legacy !== undefined) { + Challenge_Legacy.encode(message.legacy, writer.uint32(42).fork()).ldelim(); + } + if (message.billing !== undefined) { + Challenge_Billing.encode(message.billing, writer.uint32(50).fork()).ldelim(); + } + if (message.description !== "") { + writer.uint32(58).string(message.description); + } + if (message.privateDescription !== undefined) { + writer.uint32(66).string(message.privateDescription); + } + if (message.descriptionFormat !== undefined) { + writer.uint32(74).string(message.descriptionFormat); + } + for (const v of message.metadata) { + Challenge_Metadata.encode(v!, writer.uint32(82).fork()).ldelim(); + } + if (message.task !== undefined) { + Challenge_Task.encode(message.task, writer.uint32(90).fork()).ldelim(); + } + for (const v of message.phases) { + Challenge_Phase.encode(v!, writer.uint32(98).fork()).ldelim(); + } + for (const v of message.events) { + Challenge_Event.encode(v!, writer.uint32(106).fork()).ldelim(); + } + for (const v of message.terms) { + Challenge_Term.encode(v!, writer.uint32(114).fork()).ldelim(); + } + for (const v of message.prizeSets) { + Challenge_PrizeSet.encode(v!, writer.uint32(122).fork()).ldelim(); + } + for (const v of message.tags) { + writer.uint32(130).string(v!); + } + if (message.projectId !== undefined) { + writer.uint32(136).int32(message.projectId); + } + if (message.startDate !== undefined) { + writer.uint32(144).int64(message.startDate); + } + if (message.endDate !== undefined) { + writer.uint32(152).int64(message.endDate); + } + if (message.status !== "") { + writer.uint32(162).string(message.status); + } + for (const v of message.attachments) { + writer.uint32(170).string(v!); + } + for (const v of message.groups) { + writer.uint32(178).string(v!); + } + for (const v of message.discussions) { + Challenge_Discussion.encode(v!, writer.uint32(186).fork()).ldelim(); } return writer; }, @@ -2033,11 +1685,74 @@ export const CreateChallengeInput = { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.typeId = reader.string(); + message.name = reader.string(); break; case 2: + message.typeId = reader.string(); + break; + case 3: message.trackId = reader.string(); break; + case 4: + message.timelineTemplateId = reader.string(); + break; + case 5: + message.legacy = Challenge_Legacy.decode(reader, reader.uint32()); + break; + case 6: + message.billing = Challenge_Billing.decode(reader, reader.uint32()); + break; + case 7: + message.description = reader.string(); + break; + case 8: + message.privateDescription = reader.string(); + break; + case 9: + message.descriptionFormat = reader.string(); + break; + case 10: + message.metadata.push(Challenge_Metadata.decode(reader, reader.uint32())); + break; + case 11: + message.task = Challenge_Task.decode(reader, reader.uint32()); + break; + case 12: + message.phases.push(Challenge_Phase.decode(reader, reader.uint32())); + break; + case 13: + message.events.push(Challenge_Event.decode(reader, reader.uint32())); + break; + case 14: + message.terms.push(Challenge_Term.decode(reader, reader.uint32())); + break; + case 15: + message.prizeSets.push(Challenge_PrizeSet.decode(reader, reader.uint32())); + break; + case 16: + message.tags.push(reader.string()); + break; + case 17: + message.projectId = reader.int32(); + break; + case 18: + message.startDate = longToNumber(reader.int64() as Long); + break; + case 19: + message.endDate = longToNumber(reader.int64() as Long); + break; + case 20: + message.status = reader.string(); + break; + case 21: + message.attachments.push(reader.string()); + break; + case 22: + message.groups.push(reader.string()); + break; + case 23: + message.discussions.push(Challenge_Discussion.decode(reader, reader.uint32())); + break; default: reader.skipType(tag & 7); break; @@ -2048,22 +1763,136 @@ export const CreateChallengeInput = { fromJSON(object: any): CreateChallengeInput { return { + name: isSet(object.name) ? String(object.name) : "", typeId: isSet(object.typeId) ? String(object.typeId) : "", trackId: isSet(object.trackId) ? String(object.trackId) : "", + timelineTemplateId: isSet(object.timelineTemplateId) ? String(object.timelineTemplateId) : undefined, + legacy: isSet(object.legacy) ? Challenge_Legacy.fromJSON(object.legacy) : undefined, + billing: isSet(object.billing) ? Challenge_Billing.fromJSON(object.billing) : undefined, + description: isSet(object.description) ? String(object.description) : "", + privateDescription: isSet(object.privateDescription) ? String(object.privateDescription) : undefined, + descriptionFormat: isSet(object.descriptionFormat) ? String(object.descriptionFormat) : undefined, + metadata: Array.isArray(object?.metadata) ? object.metadata.map((e: any) => Challenge_Metadata.fromJSON(e)) : [], + task: isSet(object.task) ? Challenge_Task.fromJSON(object.task) : undefined, + phases: Array.isArray(object?.phases) ? object.phases.map((e: any) => Challenge_Phase.fromJSON(e)) : [], + events: Array.isArray(object?.events) ? object.events.map((e: any) => Challenge_Event.fromJSON(e)) : [], + terms: Array.isArray(object?.terms) ? object.terms.map((e: any) => Challenge_Term.fromJSON(e)) : [], + prizeSets: Array.isArray(object?.prizeSets) + ? object.prizeSets.map((e: any) => Challenge_PrizeSet.fromJSON(e)) + : [], + tags: Array.isArray(object?.tags) ? object.tags.map((e: any) => String(e)) : [], + projectId: isSet(object.projectId) ? Number(object.projectId) : undefined, + startDate: isSet(object.startDate) ? Number(object.startDate) : undefined, + endDate: isSet(object.endDate) ? Number(object.endDate) : undefined, + status: isSet(object.status) ? String(object.status) : "", + attachments: Array.isArray(object?.attachments) ? object.attachments.map((e: any) => String(e)) : [], + groups: Array.isArray(object?.groups) ? object.groups.map((e: any) => String(e)) : [], + discussions: Array.isArray(object?.discussions) + ? object.discussions.map((e: any) => Challenge_Discussion.fromJSON(e)) + : [], }; }, toJSON(message: CreateChallengeInput): unknown { const obj: any = {}; + message.name !== undefined && (obj.name = message.name); message.typeId !== undefined && (obj.typeId = message.typeId); message.trackId !== undefined && (obj.trackId = message.trackId); + message.timelineTemplateId !== undefined && (obj.timelineTemplateId = message.timelineTemplateId); + message.legacy !== undefined && (obj.legacy = message.legacy ? Challenge_Legacy.toJSON(message.legacy) : undefined); + message.billing !== undefined && + (obj.billing = message.billing ? Challenge_Billing.toJSON(message.billing) : undefined); + message.description !== undefined && (obj.description = message.description); + message.privateDescription !== undefined && (obj.privateDescription = message.privateDescription); + message.descriptionFormat !== undefined && (obj.descriptionFormat = message.descriptionFormat); + if (message.metadata) { + obj.metadata = message.metadata.map((e) => e ? Challenge_Metadata.toJSON(e) : undefined); + } else { + obj.metadata = []; + } + message.task !== undefined && (obj.task = message.task ? Challenge_Task.toJSON(message.task) : undefined); + if (message.phases) { + obj.phases = message.phases.map((e) => e ? Challenge_Phase.toJSON(e) : undefined); + } else { + obj.phases = []; + } + if (message.events) { + obj.events = message.events.map((e) => e ? Challenge_Event.toJSON(e) : undefined); + } else { + obj.events = []; + } + if (message.terms) { + obj.terms = message.terms.map((e) => e ? Challenge_Term.toJSON(e) : undefined); + } else { + obj.terms = []; + } + if (message.prizeSets) { + obj.prizeSets = message.prizeSets.map((e) => e ? Challenge_PrizeSet.toJSON(e) : undefined); + } else { + obj.prizeSets = []; + } + if (message.tags) { + obj.tags = message.tags.map((e) => e); + } else { + obj.tags = []; + } + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.startDate !== undefined && (obj.startDate = Math.round(message.startDate)); + message.endDate !== undefined && (obj.endDate = Math.round(message.endDate)); + message.status !== undefined && (obj.status = message.status); + if (message.attachments) { + obj.attachments = message.attachments.map((e) => e); + } else { + obj.attachments = []; + } + if (message.groups) { + obj.groups = message.groups.map((e) => e); + } else { + obj.groups = []; + } + if (message.discussions) { + obj.discussions = message.discussions.map((e) => e ? Challenge_Discussion.toJSON(e) : undefined); + } else { + obj.discussions = []; + } return obj; }, + create, I>>(base?: I): CreateChallengeInput { + return CreateChallengeInput.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): CreateChallengeInput { const message = createBaseCreateChallengeInput(); + message.name = object.name ?? ""; message.typeId = object.typeId ?? ""; message.trackId = object.trackId ?? ""; + message.timelineTemplateId = object.timelineTemplateId ?? undefined; + message.legacy = (object.legacy !== undefined && object.legacy !== null) + ? Challenge_Legacy.fromPartial(object.legacy) + : undefined; + message.billing = (object.billing !== undefined && object.billing !== null) + ? Challenge_Billing.fromPartial(object.billing) + : undefined; + message.description = object.description ?? ""; + message.privateDescription = object.privateDescription ?? undefined; + message.descriptionFormat = object.descriptionFormat ?? undefined; + message.metadata = object.metadata?.map((e) => Challenge_Metadata.fromPartial(e)) || []; + message.task = (object.task !== undefined && object.task !== null) + ? Challenge_Task.fromPartial(object.task) + : undefined; + message.phases = object.phases?.map((e) => Challenge_Phase.fromPartial(e)) || []; + message.events = object.events?.map((e) => Challenge_Event.fromPartial(e)) || []; + message.terms = object.terms?.map((e) => Challenge_Term.fromPartial(e)) || []; + message.prizeSets = object.prizeSets?.map((e) => Challenge_PrizeSet.fromPartial(e)) || []; + message.tags = object.tags?.map((e) => e) || []; + message.projectId = object.projectId ?? undefined; + message.startDate = object.startDate ?? undefined; + message.endDate = object.endDate ?? undefined; + message.status = object.status ?? ""; + message.attachments = object.attachments?.map((e) => e) || []; + message.groups = object.groups?.map((e) => e) || []; + message.discussions = object.discussions?.map((e) => Challenge_Discussion.fromPartial(e)) || []; return message; }, }; @@ -2109,6 +1938,10 @@ export const UpdateChallengeInput = { return obj; }, + create, I>>(base?: I): UpdateChallengeInput { + return UpdateChallengeInput.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): UpdateChallengeInput { const message = createBaseUpdateChallengeInput(); message.challenge = (object.challenge !== undefined && object.challenge !== null) @@ -2118,6 +1951,25 @@ export const UpdateChallengeInput = { }, }; +declare var self: any | undefined; +declare var window: any | undefined; +declare var global: any | undefined; +var tsProtoGlobalThis: any = (() => { + if (typeof globalThis !== "undefined") { + return globalThis; + } + if (typeof self !== "undefined") { + return self; + } + if (typeof window !== "undefined") { + return window; + } + if (typeof global !== "undefined") { + return global; + } + throw "Unable to locate global object"; +})(); + type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; type DeepPartial = T extends Builtin ? T @@ -2130,26 +1982,29 @@ type KeysOfUnion = T extends T ? keyof T : never; type Exact = P extends Builtin ? P : P & { [K in keyof P]: Exact } & { [K in Exclude>]: never }; -function toTimestamp(date: Date): Timestamp { +function toTimestamp(dateStr: string): Timestamp { + const date = new Date(dateStr); const seconds = date.getTime() / 1_000; const nanos = (date.getTime() % 1_000) * 1_000_000; return { seconds, nanos }; } -function fromTimestamp(t: Timestamp): Date { +function fromTimestamp(t: Timestamp): string { let millis = t.seconds * 1_000; millis += t.nanos / 1_000_000; - return new Date(millis); + return new Date(millis).toISOString(); } -function fromJsonTimestamp(o: any): Date { - if (o instanceof Date) { - return o; - } else if (typeof o === "string") { - return new Date(o); - } else { - return fromTimestamp(Timestamp.fromJSON(o)); +function longToNumber(long: Long): number { + if (long.gt(Number.MAX_SAFE_INTEGER)) { + throw new tsProtoGlobalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER"); } + return long.toNumber(); +} + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); } function isSet(value: any): boolean { diff --git a/src/models/domain-layer/challenge/challenge_timeline_template.ts b/src/models/domain-layer/challenge/challenge_timeline_template.ts index e517638..6a07969 100644 --- a/src/models/domain-layer/challenge/challenge_timeline_template.ts +++ b/src/models/domain-layer/challenge/challenge_timeline_template.ts @@ -107,6 +107,10 @@ export const ChallengeTimelineTemplate = { return obj; }, + create, I>>(base?: I): ChallengeTimelineTemplate { + return ChallengeTimelineTemplate.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): ChallengeTimelineTemplate { const message = createBaseChallengeTimelineTemplate(); message.id = object.id ?? ""; @@ -164,6 +168,10 @@ export const ChallengeTimelineTemplateList = { return obj; }, + create, I>>(base?: I): ChallengeTimelineTemplateList { + return ChallengeTimelineTemplateList.fromPartial(base ?? {}); + }, + fromPartial, I>>( object: I, ): ChallengeTimelineTemplateList { @@ -239,6 +247,12 @@ export const CreateChallengeTimelineTemplateInput = { return obj; }, + create, I>>( + base?: I, + ): CreateChallengeTimelineTemplateInput { + return CreateChallengeTimelineTemplateInput.fromPartial(base ?? {}); + }, + fromPartial, I>>( object: I, ): CreateChallengeTimelineTemplateInput { @@ -311,6 +325,12 @@ export const UpdateChallengeTimelineTemplateInput = { return obj; }, + create, I>>( + base?: I, + ): UpdateChallengeTimelineTemplateInput { + return UpdateChallengeTimelineTemplateInput.fromPartial(base ?? {}); + }, + fromPartial, I>>( object: I, ): UpdateChallengeTimelineTemplateInput { @@ -392,6 +412,12 @@ export const UpdateChallengeTimelineTemplateInput_UpdateInput = { return obj; }, + create, I>>( + base?: I, + ): UpdateChallengeTimelineTemplateInput_UpdateInput { + return UpdateChallengeTimelineTemplateInput_UpdateInput.fromPartial(base ?? {}); + }, + fromPartial, I>>( object: I, ): UpdateChallengeTimelineTemplateInput_UpdateInput { diff --git a/src/models/domain-layer/challenge/challenge_track.ts b/src/models/domain-layer/challenge/challenge_track.ts index 8005db3..1bcbd37 100644 --- a/src/models/domain-layer/challenge/challenge_track.ts +++ b/src/models/domain-layer/challenge/challenge_track.ts @@ -1,5 +1,6 @@ /* eslint-disable */ import _m0 from "protobufjs/minimal"; +import { ScanCriteria } from "../../common/common"; export interface ChallengeTrack { id: string; @@ -21,7 +22,11 @@ export interface CreateChallengeTrackInput { } export interface UpdateChallengeTrackInput { - id: string; + filterCriteria: ScanCriteria[]; + updateInput?: UpdateChallengeTrackInput_UpdateInput; +} + +export interface UpdateChallengeTrackInput_UpdateInput { name: string; description?: string | undefined; isActive: boolean; @@ -102,6 +107,10 @@ export const ChallengeTrack = { return obj; }, + create, I>>(base?: I): ChallengeTrack { + return ChallengeTrack.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): ChallengeTrack { const message = createBaseChallengeTrack(); message.id = object.id ?? ""; @@ -157,6 +166,10 @@ export const ChallengeTrackList = { return obj; }, + create, I>>(base?: I): ChallengeTrackList { + return ChallengeTrackList.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): ChallengeTrackList { const message = createBaseChallengeTrackList(); message.items = object.items?.map((e) => ChallengeTrack.fromPartial(e)) || []; @@ -230,6 +243,10 @@ export const CreateChallengeTrackInput = { return obj; }, + create, I>>(base?: I): CreateChallengeTrackInput { + return CreateChallengeTrackInput.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): CreateChallengeTrackInput { const message = createBaseCreateChallengeTrackInput(); message.name = object.name ?? ""; @@ -241,14 +258,85 @@ export const CreateChallengeTrackInput = { }; function createBaseUpdateChallengeTrackInput(): UpdateChallengeTrackInput { - return { id: "", name: "", description: undefined, isActive: false, abbreviation: "" }; + return { filterCriteria: [], updateInput: undefined }; } export const UpdateChallengeTrackInput = { encode(message: UpdateChallengeTrackInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.id !== "") { - writer.uint32(10).string(message.id); + for (const v of message.filterCriteria) { + ScanCriteria.encode(v!, writer.uint32(10).fork()).ldelim(); + } + if (message.updateInput !== undefined) { + UpdateChallengeTrackInput_UpdateInput.encode(message.updateInput, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UpdateChallengeTrackInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpdateChallengeTrackInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.filterCriteria.push(ScanCriteria.decode(reader, reader.uint32())); + break; + case 2: + message.updateInput = UpdateChallengeTrackInput_UpdateInput.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): UpdateChallengeTrackInput { + return { + filterCriteria: Array.isArray(object?.filterCriteria) + ? object.filterCriteria.map((e: any) => ScanCriteria.fromJSON(e)) + : [], + updateInput: isSet(object.updateInput) + ? UpdateChallengeTrackInput_UpdateInput.fromJSON(object.updateInput) + : undefined, + }; + }, + + toJSON(message: UpdateChallengeTrackInput): unknown { + const obj: any = {}; + if (message.filterCriteria) { + obj.filterCriteria = message.filterCriteria.map((e) => e ? ScanCriteria.toJSON(e) : undefined); + } else { + obj.filterCriteria = []; } + message.updateInput !== undefined && (obj.updateInput = message.updateInput + ? UpdateChallengeTrackInput_UpdateInput.toJSON(message.updateInput) + : undefined); + return obj; + }, + + create, I>>(base?: I): UpdateChallengeTrackInput { + return UpdateChallengeTrackInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): UpdateChallengeTrackInput { + const message = createBaseUpdateChallengeTrackInput(); + message.filterCriteria = object.filterCriteria?.map((e) => ScanCriteria.fromPartial(e)) || []; + message.updateInput = (object.updateInput !== undefined && object.updateInput !== null) + ? UpdateChallengeTrackInput_UpdateInput.fromPartial(object.updateInput) + : undefined; + return message; + }, +}; + +function createBaseUpdateChallengeTrackInput_UpdateInput(): UpdateChallengeTrackInput_UpdateInput { + return { name: "", description: undefined, isActive: false, abbreviation: "" }; +} + +export const UpdateChallengeTrackInput_UpdateInput = { + encode(message: UpdateChallengeTrackInput_UpdateInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(18).string(message.name); } @@ -264,16 +352,13 @@ export const UpdateChallengeTrackInput = { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): UpdateChallengeTrackInput { + decode(input: _m0.Reader | Uint8Array, length?: number): UpdateChallengeTrackInput_UpdateInput { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseUpdateChallengeTrackInput(); + const message = createBaseUpdateChallengeTrackInput_UpdateInput(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.id = reader.string(); - break; case 2: message.name = reader.string(); break; @@ -294,9 +379,8 @@ export const UpdateChallengeTrackInput = { return message; }, - fromJSON(object: any): UpdateChallengeTrackInput { + fromJSON(object: any): UpdateChallengeTrackInput_UpdateInput { return { - id: isSet(object.id) ? String(object.id) : "", name: isSet(object.name) ? String(object.name) : "", description: isSet(object.description) ? String(object.description) : undefined, isActive: isSet(object.isActive) ? Boolean(object.isActive) : false, @@ -304,9 +388,8 @@ export const UpdateChallengeTrackInput = { }; }, - toJSON(message: UpdateChallengeTrackInput): unknown { + toJSON(message: UpdateChallengeTrackInput_UpdateInput): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = message.id); message.name !== undefined && (obj.name = message.name); message.description !== undefined && (obj.description = message.description); message.isActive !== undefined && (obj.isActive = message.isActive); @@ -314,9 +397,16 @@ export const UpdateChallengeTrackInput = { return obj; }, - fromPartial, I>>(object: I): UpdateChallengeTrackInput { - const message = createBaseUpdateChallengeTrackInput(); - message.id = object.id ?? ""; + create, I>>( + base?: I, + ): UpdateChallengeTrackInput_UpdateInput { + return UpdateChallengeTrackInput_UpdateInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>( + object: I, + ): UpdateChallengeTrackInput_UpdateInput { + const message = createBaseUpdateChallengeTrackInput_UpdateInput(); message.name = object.name ?? ""; message.description = object.description ?? undefined; message.isActive = object.isActive ?? false; diff --git a/src/models/domain-layer/challenge/challenge_type.ts b/src/models/domain-layer/challenge/challenge_type.ts index 0faa342..3c1d3ca 100644 --- a/src/models/domain-layer/challenge/challenge_type.ts +++ b/src/models/domain-layer/challenge/challenge_type.ts @@ -1,5 +1,6 @@ /* eslint-disable */ import _m0 from "protobufjs/minimal"; +import { ScanCriteria } from "../../common/common"; export interface ChallengeType { id: string; @@ -23,7 +24,11 @@ export interface CreateChallengeTypeInput { } export interface UpdateChallengeTypeInput { - id: string; + filterCriteria: ScanCriteria[]; + updateInput?: UpdateChallengeTypeInput_UpdateInput; +} + +export interface UpdateChallengeTypeInput_UpdateInput { name: string; description?: string | undefined; isActive: boolean; @@ -113,6 +118,10 @@ export const ChallengeType = { return obj; }, + create, I>>(base?: I): ChallengeType { + return ChallengeType.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): ChallengeType { const message = createBaseChallengeType(); message.id = object.id ?? ""; @@ -169,6 +178,10 @@ export const ChallengeTypeList = { return obj; }, + create, I>>(base?: I): ChallengeTypeList { + return ChallengeTypeList.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): ChallengeTypeList { const message = createBaseChallengeTypeList(); message.items = object.items?.map((e) => ChallengeType.fromPartial(e)) || []; @@ -250,6 +263,10 @@ export const CreateChallengeTypeInput = { return obj; }, + create, I>>(base?: I): CreateChallengeTypeInput { + return CreateChallengeTypeInput.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): CreateChallengeTypeInput { const message = createBaseCreateChallengeTypeInput(); message.name = object.name ?? ""; @@ -262,14 +279,85 @@ export const CreateChallengeTypeInput = { }; function createBaseUpdateChallengeTypeInput(): UpdateChallengeTypeInput { - return { id: "", name: "", description: undefined, isActive: false, isTask: false, abbreviation: "" }; + return { filterCriteria: [], updateInput: undefined }; } export const UpdateChallengeTypeInput = { encode(message: UpdateChallengeTypeInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.id !== "") { - writer.uint32(10).string(message.id); + for (const v of message.filterCriteria) { + ScanCriteria.encode(v!, writer.uint32(10).fork()).ldelim(); + } + if (message.updateInput !== undefined) { + UpdateChallengeTypeInput_UpdateInput.encode(message.updateInput, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UpdateChallengeTypeInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpdateChallengeTypeInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.filterCriteria.push(ScanCriteria.decode(reader, reader.uint32())); + break; + case 2: + message.updateInput = UpdateChallengeTypeInput_UpdateInput.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): UpdateChallengeTypeInput { + return { + filterCriteria: Array.isArray(object?.filterCriteria) + ? object.filterCriteria.map((e: any) => ScanCriteria.fromJSON(e)) + : [], + updateInput: isSet(object.updateInput) + ? UpdateChallengeTypeInput_UpdateInput.fromJSON(object.updateInput) + : undefined, + }; + }, + + toJSON(message: UpdateChallengeTypeInput): unknown { + const obj: any = {}; + if (message.filterCriteria) { + obj.filterCriteria = message.filterCriteria.map((e) => e ? ScanCriteria.toJSON(e) : undefined); + } else { + obj.filterCriteria = []; } + message.updateInput !== undefined && (obj.updateInput = message.updateInput + ? UpdateChallengeTypeInput_UpdateInput.toJSON(message.updateInput) + : undefined); + return obj; + }, + + create, I>>(base?: I): UpdateChallengeTypeInput { + return UpdateChallengeTypeInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): UpdateChallengeTypeInput { + const message = createBaseUpdateChallengeTypeInput(); + message.filterCriteria = object.filterCriteria?.map((e) => ScanCriteria.fromPartial(e)) || []; + message.updateInput = (object.updateInput !== undefined && object.updateInput !== null) + ? UpdateChallengeTypeInput_UpdateInput.fromPartial(object.updateInput) + : undefined; + return message; + }, +}; + +function createBaseUpdateChallengeTypeInput_UpdateInput(): UpdateChallengeTypeInput_UpdateInput { + return { name: "", description: undefined, isActive: false, isTask: false, abbreviation: "" }; +} + +export const UpdateChallengeTypeInput_UpdateInput = { + encode(message: UpdateChallengeTypeInput_UpdateInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(18).string(message.name); } @@ -288,16 +376,13 @@ export const UpdateChallengeTypeInput = { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): UpdateChallengeTypeInput { + decode(input: _m0.Reader | Uint8Array, length?: number): UpdateChallengeTypeInput_UpdateInput { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseUpdateChallengeTypeInput(); + const message = createBaseUpdateChallengeTypeInput_UpdateInput(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.id = reader.string(); - break; case 2: message.name = reader.string(); break; @@ -321,9 +406,8 @@ export const UpdateChallengeTypeInput = { return message; }, - fromJSON(object: any): UpdateChallengeTypeInput { + fromJSON(object: any): UpdateChallengeTypeInput_UpdateInput { return { - id: isSet(object.id) ? String(object.id) : "", name: isSet(object.name) ? String(object.name) : "", description: isSet(object.description) ? String(object.description) : undefined, isActive: isSet(object.isActive) ? Boolean(object.isActive) : false, @@ -332,9 +416,8 @@ export const UpdateChallengeTypeInput = { }; }, - toJSON(message: UpdateChallengeTypeInput): unknown { + toJSON(message: UpdateChallengeTypeInput_UpdateInput): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = message.id); message.name !== undefined && (obj.name = message.name); message.description !== undefined && (obj.description = message.description); message.isActive !== undefined && (obj.isActive = message.isActive); @@ -343,9 +426,16 @@ export const UpdateChallengeTypeInput = { return obj; }, - fromPartial, I>>(object: I): UpdateChallengeTypeInput { - const message = createBaseUpdateChallengeTypeInput(); - message.id = object.id ?? ""; + create, I>>( + base?: I, + ): UpdateChallengeTypeInput_UpdateInput { + return UpdateChallengeTypeInput_UpdateInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>( + object: I, + ): UpdateChallengeTypeInput_UpdateInput { + const message = createBaseUpdateChallengeTypeInput_UpdateInput(); message.name = object.name ?? ""; message.description = object.description ?? undefined; message.isActive = object.isActive ?? false; diff --git a/src/models/domain-layer/challenge/phase.ts b/src/models/domain-layer/challenge/phase.ts index f5b477c..ea71f5a 100644 --- a/src/models/domain-layer/challenge/phase.ts +++ b/src/models/domain-layer/challenge/phase.ts @@ -1,6 +1,7 @@ /* eslint-disable */ import Long from "long"; import _m0 from "protobufjs/minimal"; +import { ScanCriteria } from "../../common/common"; export interface Phase { id: string; @@ -22,7 +23,11 @@ export interface CreatePhaseInput { } export interface UpdatePhaseInput { - id: string; + filterCriteria: ScanCriteria[]; + updateInput?: UpdatePhaseInput_UpdateInput; +} + +export interface UpdatePhaseInput_UpdateInput { name: string; description?: string | undefined; isOpen: boolean; @@ -103,6 +108,10 @@ export const Phase = { return obj; }, + create, I>>(base?: I): Phase { + return Phase.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Phase { const message = createBasePhase(); message.id = object.id ?? ""; @@ -158,6 +167,10 @@ export const PhaseList = { return obj; }, + create, I>>(base?: I): PhaseList { + return PhaseList.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): PhaseList { const message = createBasePhaseList(); message.items = object.items?.map((e) => Phase.fromPartial(e)) || []; @@ -231,6 +244,10 @@ export const CreatePhaseInput = { return obj; }, + create, I>>(base?: I): CreatePhaseInput { + return CreatePhaseInput.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): CreatePhaseInput { const message = createBaseCreatePhaseInput(); message.name = object.name ?? ""; @@ -242,14 +259,82 @@ export const CreatePhaseInput = { }; function createBaseUpdatePhaseInput(): UpdatePhaseInput { - return { id: "", name: "", description: undefined, isOpen: false, duration: 0 }; + return { filterCriteria: [], updateInput: undefined }; } export const UpdatePhaseInput = { encode(message: UpdatePhaseInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.id !== "") { - writer.uint32(10).string(message.id); + for (const v of message.filterCriteria) { + ScanCriteria.encode(v!, writer.uint32(10).fork()).ldelim(); + } + if (message.updateInput !== undefined) { + UpdatePhaseInput_UpdateInput.encode(message.updateInput, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UpdatePhaseInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpdatePhaseInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.filterCriteria.push(ScanCriteria.decode(reader, reader.uint32())); + break; + case 2: + message.updateInput = UpdatePhaseInput_UpdateInput.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): UpdatePhaseInput { + return { + filterCriteria: Array.isArray(object?.filterCriteria) + ? object.filterCriteria.map((e: any) => ScanCriteria.fromJSON(e)) + : [], + updateInput: isSet(object.updateInput) ? UpdatePhaseInput_UpdateInput.fromJSON(object.updateInput) : undefined, + }; + }, + + toJSON(message: UpdatePhaseInput): unknown { + const obj: any = {}; + if (message.filterCriteria) { + obj.filterCriteria = message.filterCriteria.map((e) => e ? ScanCriteria.toJSON(e) : undefined); + } else { + obj.filterCriteria = []; } + message.updateInput !== undefined && + (obj.updateInput = message.updateInput ? UpdatePhaseInput_UpdateInput.toJSON(message.updateInput) : undefined); + return obj; + }, + + create, I>>(base?: I): UpdatePhaseInput { + return UpdatePhaseInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): UpdatePhaseInput { + const message = createBaseUpdatePhaseInput(); + message.filterCriteria = object.filterCriteria?.map((e) => ScanCriteria.fromPartial(e)) || []; + message.updateInput = (object.updateInput !== undefined && object.updateInput !== null) + ? UpdatePhaseInput_UpdateInput.fromPartial(object.updateInput) + : undefined; + return message; + }, +}; + +function createBaseUpdatePhaseInput_UpdateInput(): UpdatePhaseInput_UpdateInput { + return { name: "", description: undefined, isOpen: false, duration: 0 }; +} + +export const UpdatePhaseInput_UpdateInput = { + encode(message: UpdatePhaseInput_UpdateInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(18).string(message.name); } @@ -265,16 +350,13 @@ export const UpdatePhaseInput = { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): UpdatePhaseInput { + decode(input: _m0.Reader | Uint8Array, length?: number): UpdatePhaseInput_UpdateInput { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseUpdatePhaseInput(); + const message = createBaseUpdatePhaseInput_UpdateInput(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.id = reader.string(); - break; case 2: message.name = reader.string(); break; @@ -295,9 +377,8 @@ export const UpdatePhaseInput = { return message; }, - fromJSON(object: any): UpdatePhaseInput { + fromJSON(object: any): UpdatePhaseInput_UpdateInput { return { - id: isSet(object.id) ? String(object.id) : "", name: isSet(object.name) ? String(object.name) : "", description: isSet(object.description) ? String(object.description) : undefined, isOpen: isSet(object.isOpen) ? Boolean(object.isOpen) : false, @@ -305,9 +386,8 @@ export const UpdatePhaseInput = { }; }, - toJSON(message: UpdatePhaseInput): unknown { + toJSON(message: UpdatePhaseInput_UpdateInput): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = message.id); message.name !== undefined && (obj.name = message.name); message.description !== undefined && (obj.description = message.description); message.isOpen !== undefined && (obj.isOpen = message.isOpen); @@ -315,9 +395,12 @@ export const UpdatePhaseInput = { return obj; }, - fromPartial, I>>(object: I): UpdatePhaseInput { - const message = createBaseUpdatePhaseInput(); - message.id = object.id ?? ""; + create, I>>(base?: I): UpdatePhaseInput_UpdateInput { + return UpdatePhaseInput_UpdateInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): UpdatePhaseInput_UpdateInput { + const message = createBaseUpdatePhaseInput_UpdateInput(); message.name = object.name ?? ""; message.description = object.description ?? undefined; message.isOpen = object.isOpen ?? false; diff --git a/src/models/domain-layer/challenge/services/attachment.ts b/src/models/domain-layer/challenge/services/attachment.ts index 7bff9a2..438b3a5 100644 --- a/src/models/domain-layer/challenge/services/attachment.ts +++ b/src/models/domain-layer/challenge/services/attachment.ts @@ -1,10 +1,28 @@ /* eslint-disable */ import { handleUnaryCall, UntypedServiceImplementation } from "@grpc/grpc-js"; -import { LookupCriteria } from "../../../common/common"; +import { LookupCriteria, ScanRequest, ScanResult } from "../../../common/common"; import { Attachment, AttachmentList, CreateAttachmentInput, UpdateAttachmentInput } from "../attachment"; export type AttachmentService = typeof AttachmentService; export const AttachmentService = { + scan: { + path: "/topcoder.domain.service.attachment.Attachment/Scan", + requestStream: false, + responseStream: false, + requestSerialize: (value: ScanRequest) => Buffer.from(ScanRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => ScanRequest.decode(value), + responseSerialize: (value: ScanResult) => Buffer.from(ScanResult.encode(value).finish()), + responseDeserialize: (value: Buffer) => ScanResult.decode(value), + }, + lookup: { + path: "/topcoder.domain.service.attachment.Attachment/Lookup", + requestStream: false, + responseStream: false, + requestSerialize: (value: LookupCriteria) => Buffer.from(LookupCriteria.encode(value).finish()), + requestDeserialize: (value: Buffer) => LookupCriteria.decode(value), + responseSerialize: (value: Attachment) => Buffer.from(Attachment.encode(value).finish()), + responseDeserialize: (value: Buffer) => Attachment.decode(value), + }, create: { path: "/topcoder.domain.service.attachment.Attachment/Create", requestStream: false, @@ -20,8 +38,8 @@ export const AttachmentService = { responseStream: false, requestSerialize: (value: UpdateAttachmentInput) => Buffer.from(UpdateAttachmentInput.encode(value).finish()), requestDeserialize: (value: Buffer) => UpdateAttachmentInput.decode(value), - responseSerialize: (value: Attachment) => Buffer.from(Attachment.encode(value).finish()), - responseDeserialize: (value: Buffer) => Attachment.decode(value), + responseSerialize: (value: AttachmentList) => Buffer.from(AttachmentList.encode(value).finish()), + responseDeserialize: (value: Buffer) => AttachmentList.decode(value), }, delete: { path: "/topcoder.domain.service.attachment.Attachment/Delete", @@ -35,7 +53,9 @@ export const AttachmentService = { } as const; export interface AttachmentServer extends UntypedServiceImplementation { + scan: handleUnaryCall; + lookup: handleUnaryCall; create: handleUnaryCall; - update: handleUnaryCall; + update: handleUnaryCall; delete: handleUnaryCall; } diff --git a/src/models/domain-layer/challenge/services/phase.ts b/src/models/domain-layer/challenge/services/phase.ts index cff76f2..cc0ba55 100644 --- a/src/models/domain-layer/challenge/services/phase.ts +++ b/src/models/domain-layer/challenge/services/phase.ts @@ -38,8 +38,8 @@ export const PhaseService = { responseStream: false, requestSerialize: (value: UpdatePhaseInput) => Buffer.from(UpdatePhaseInput.encode(value).finish()), requestDeserialize: (value: Buffer) => UpdatePhaseInput.decode(value), - responseSerialize: (value: Phase) => Buffer.from(Phase.encode(value).finish()), - responseDeserialize: (value: Buffer) => Phase.decode(value), + responseSerialize: (value: PhaseList) => Buffer.from(PhaseList.encode(value).finish()), + responseDeserialize: (value: Buffer) => PhaseList.decode(value), }, delete: { path: "/topcoder.domain.service.phase.Phase/Delete", @@ -56,6 +56,6 @@ export interface PhaseServer extends UntypedServiceImplementation { scan: handleUnaryCall; lookup: handleUnaryCall; create: handleUnaryCall; - update: handleUnaryCall; + update: handleUnaryCall; delete: handleUnaryCall; } diff --git a/src/models/domain-layer/challenge/services/timeline_template.ts b/src/models/domain-layer/challenge/services/timeline_template.ts index 3f0388e..c13f5f0 100644 --- a/src/models/domain-layer/challenge/services/timeline_template.ts +++ b/src/models/domain-layer/challenge/services/timeline_template.ts @@ -45,8 +45,8 @@ export const TimelineTemplateService = { requestSerialize: (value: UpdateTimelineTemplateInput) => Buffer.from(UpdateTimelineTemplateInput.encode(value).finish()), requestDeserialize: (value: Buffer) => UpdateTimelineTemplateInput.decode(value), - responseSerialize: (value: TimelineTemplate) => Buffer.from(TimelineTemplate.encode(value).finish()), - responseDeserialize: (value: Buffer) => TimelineTemplate.decode(value), + responseSerialize: (value: TimelineTemplateList) => Buffer.from(TimelineTemplateList.encode(value).finish()), + responseDeserialize: (value: Buffer) => TimelineTemplateList.decode(value), }, delete: { path: "/topcoder.domain.service.timeline_template.TimelineTemplate/Delete", @@ -63,6 +63,6 @@ export interface TimelineTemplateServer extends UntypedServiceImplementation { scan: handleUnaryCall; lookup: handleUnaryCall; create: handleUnaryCall; - update: handleUnaryCall; + update: handleUnaryCall; delete: handleUnaryCall; } diff --git a/src/models/domain-layer/challenge/timeline_template.ts b/src/models/domain-layer/challenge/timeline_template.ts index 2ea1efc..e84e55d 100644 --- a/src/models/domain-layer/challenge/timeline_template.ts +++ b/src/models/domain-layer/challenge/timeline_template.ts @@ -1,6 +1,7 @@ /* eslint-disable */ import Long from "long"; import _m0 from "protobufjs/minimal"; +import { ScanCriteria } from "../../common/common"; export interface TimelineTemplatePhase { phaseId: string; @@ -28,7 +29,11 @@ export interface CreateTimelineTemplateInput { } export interface UpdateTimelineTemplateInput { - id: string; + filterCriteria: ScanCriteria[]; + updateInput?: UpdateTimelineTemplateInput_UpdateInput; +} + +export interface UpdateTimelineTemplateInput_UpdateInput { name: string; description?: string | undefined; isActive: boolean; @@ -93,6 +98,10 @@ export const TimelineTemplatePhase = { return obj; }, + create, I>>(base?: I): TimelineTemplatePhase { + return TimelineTemplatePhase.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): TimelineTemplatePhase { const message = createBaseTimelineTemplatePhase(); message.phaseId = object.phaseId ?? ""; @@ -180,6 +189,10 @@ export const TimelineTemplate = { return obj; }, + create, I>>(base?: I): TimelineTemplate { + return TimelineTemplate.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): TimelineTemplate { const message = createBaseTimelineTemplate(); message.id = object.id ?? ""; @@ -235,6 +248,10 @@ export const TimelineTemplateList = { return obj; }, + create, I>>(base?: I): TimelineTemplateList { + return TimelineTemplateList.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): TimelineTemplateList { const message = createBaseTimelineTemplateList(); message.items = object.items?.map((e) => TimelineTemplate.fromPartial(e)) || []; @@ -312,6 +329,10 @@ export const CreateTimelineTemplateInput = { return obj; }, + create, I>>(base?: I): CreateTimelineTemplateInput { + return CreateTimelineTemplateInput.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): CreateTimelineTemplateInput { const message = createBaseCreateTimelineTemplateInput(); message.name = object.name ?? ""; @@ -323,14 +344,85 @@ export const CreateTimelineTemplateInput = { }; function createBaseUpdateTimelineTemplateInput(): UpdateTimelineTemplateInput { - return { id: "", name: "", description: undefined, isActive: false, phases: [] }; + return { filterCriteria: [], updateInput: undefined }; } export const UpdateTimelineTemplateInput = { encode(message: UpdateTimelineTemplateInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.id !== "") { - writer.uint32(10).string(message.id); + for (const v of message.filterCriteria) { + ScanCriteria.encode(v!, writer.uint32(10).fork()).ldelim(); + } + if (message.updateInput !== undefined) { + UpdateTimelineTemplateInput_UpdateInput.encode(message.updateInput, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UpdateTimelineTemplateInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpdateTimelineTemplateInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.filterCriteria.push(ScanCriteria.decode(reader, reader.uint32())); + break; + case 2: + message.updateInput = UpdateTimelineTemplateInput_UpdateInput.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): UpdateTimelineTemplateInput { + return { + filterCriteria: Array.isArray(object?.filterCriteria) + ? object.filterCriteria.map((e: any) => ScanCriteria.fromJSON(e)) + : [], + updateInput: isSet(object.updateInput) + ? UpdateTimelineTemplateInput_UpdateInput.fromJSON(object.updateInput) + : undefined, + }; + }, + + toJSON(message: UpdateTimelineTemplateInput): unknown { + const obj: any = {}; + if (message.filterCriteria) { + obj.filterCriteria = message.filterCriteria.map((e) => e ? ScanCriteria.toJSON(e) : undefined); + } else { + obj.filterCriteria = []; } + message.updateInput !== undefined && (obj.updateInput = message.updateInput + ? UpdateTimelineTemplateInput_UpdateInput.toJSON(message.updateInput) + : undefined); + return obj; + }, + + create, I>>(base?: I): UpdateTimelineTemplateInput { + return UpdateTimelineTemplateInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): UpdateTimelineTemplateInput { + const message = createBaseUpdateTimelineTemplateInput(); + message.filterCriteria = object.filterCriteria?.map((e) => ScanCriteria.fromPartial(e)) || []; + message.updateInput = (object.updateInput !== undefined && object.updateInput !== null) + ? UpdateTimelineTemplateInput_UpdateInput.fromPartial(object.updateInput) + : undefined; + return message; + }, +}; + +function createBaseUpdateTimelineTemplateInput_UpdateInput(): UpdateTimelineTemplateInput_UpdateInput { + return { name: "", description: undefined, isActive: false, phases: [] }; +} + +export const UpdateTimelineTemplateInput_UpdateInput = { + encode(message: UpdateTimelineTemplateInput_UpdateInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.name !== "") { writer.uint32(18).string(message.name); } @@ -346,16 +438,13 @@ export const UpdateTimelineTemplateInput = { return writer; }, - decode(input: _m0.Reader | Uint8Array, length?: number): UpdateTimelineTemplateInput { + decode(input: _m0.Reader | Uint8Array, length?: number): UpdateTimelineTemplateInput_UpdateInput { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseUpdateTimelineTemplateInput(); + const message = createBaseUpdateTimelineTemplateInput_UpdateInput(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { - case 1: - message.id = reader.string(); - break; case 2: message.name = reader.string(); break; @@ -376,9 +465,8 @@ export const UpdateTimelineTemplateInput = { return message; }, - fromJSON(object: any): UpdateTimelineTemplateInput { + fromJSON(object: any): UpdateTimelineTemplateInput_UpdateInput { return { - id: isSet(object.id) ? String(object.id) : "", name: isSet(object.name) ? String(object.name) : "", description: isSet(object.description) ? String(object.description) : undefined, isActive: isSet(object.isActive) ? Boolean(object.isActive) : false, @@ -386,9 +474,8 @@ export const UpdateTimelineTemplateInput = { }; }, - toJSON(message: UpdateTimelineTemplateInput): unknown { + toJSON(message: UpdateTimelineTemplateInput_UpdateInput): unknown { const obj: any = {}; - message.id !== undefined && (obj.id = message.id); message.name !== undefined && (obj.name = message.name); message.description !== undefined && (obj.description = message.description); message.isActive !== undefined && (obj.isActive = message.isActive); @@ -400,9 +487,16 @@ export const UpdateTimelineTemplateInput = { return obj; }, - fromPartial, I>>(object: I): UpdateTimelineTemplateInput { - const message = createBaseUpdateTimelineTemplateInput(); - message.id = object.id ?? ""; + create, I>>( + base?: I, + ): UpdateTimelineTemplateInput_UpdateInput { + return UpdateTimelineTemplateInput_UpdateInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>( + object: I, + ): UpdateTimelineTemplateInput_UpdateInput { + const message = createBaseUpdateTimelineTemplateInput_UpdateInput(); message.name = object.name ?? ""; message.description = object.description ?? undefined; message.isActive = object.isActive ?? false; diff --git a/src/models/google/protobuf/struct.ts b/src/models/google/protobuf/struct.ts index 2293c0d..f456694 100644 --- a/src/models/google/protobuf/struct.ts +++ b/src/models/google/protobuf/struct.ts @@ -140,6 +140,10 @@ export const Struct = { return obj; }, + create, I>>(base?: I): Struct { + return Struct.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Struct { const message = createBaseStruct(); message.fields = Object.entries(object.fields ?? {}).reduce<{ [key: string]: any }>((acc, [key, value]) => { @@ -217,6 +221,10 @@ export const Struct_FieldsEntry = { return obj; }, + create, I>>(base?: I): Struct_FieldsEntry { + return Struct_FieldsEntry.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Struct_FieldsEntry { const message = createBaseStruct_FieldsEntry(); message.key = object.key ?? ""; @@ -315,6 +323,10 @@ export const Value = { return obj; }, + create, I>>(base?: I): Value { + return Value.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Value { const message = createBaseValue(); if (object.kind?.$case === "nullValue" && object.kind?.nullValue !== undefined && object.kind?.nullValue !== null) { @@ -435,6 +447,10 @@ export const ListValue = { return obj; }, + create, I>>(base?: I): ListValue { + return ListValue.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): ListValue { const message = createBaseListValue(); message.values = object.values?.map((e) => e) || []; diff --git a/src/models/google/protobuf/timestamp.ts b/src/models/google/protobuf/timestamp.ts index 075f99c..bffe482 100644 --- a/src/models/google/protobuf/timestamp.ts +++ b/src/models/google/protobuf/timestamp.ts @@ -159,6 +159,10 @@ export const Timestamp = { return obj; }, + create, I>>(base?: I): Timestamp { + return Timestamp.fromPartial(base ?? {}); + }, + fromPartial, I>>(object: I): Timestamp { const message = createBaseTimestamp(); message.seconds = object.seconds ?? 0; diff --git a/src/schema/AttachmentSchema.ts b/src/schema/AttachmentSchema.ts new file mode 100644 index 0000000..288212a --- /dev/null +++ b/src/schema/AttachmentSchema.ts @@ -0,0 +1,32 @@ +import { DataType } from "../dal/models/nosql/parti_ql"; + +export const AttachmentSchema = { + tableName: "Attachment", + attributes: [ + { + name: "id", + type: DataType.DATA_TYPE_STRING, + }, + { + name: "url", + type: DataType.DATA_TYPE_STRING, + }, + { + name: "fileSize", + type: DataType.DATA_TYPE_NUMBER, + }, + { + name: "name", + type: DataType.DATA_TYPE_STRING, + }, + { + name: "challengeId", + type: DataType.DATA_TYPE_STRING, + }, + { + name: "description", + type: DataType.DATA_TYPE_STRING, + }, + ], + indices: {}, +}; diff --git a/src/schema/Challenge.ts b/src/schema/Challenge.ts index d461b82..ab7cd38 100644 --- a/src/schema/Challenge.ts +++ b/src/schema/Challenge.ts @@ -11,6 +11,10 @@ export const ChallengeSchema = { name: "phases", type: DataType.DATA_TYPE_STRING, }, + { + name: "phases", + type: DataType.DATA_TYPE_STRING_SET, + }, ], indices: {}, }; diff --git a/src/schema/ChallengeTypeSchema.ts b/src/schema/ChallengeTypeSchema.ts new file mode 100644 index 0000000..dc630ef --- /dev/null +++ b/src/schema/ChallengeTypeSchema.ts @@ -0,0 +1,32 @@ +import { DataType } from "../dal/models/nosql/parti_ql"; + +export const ChallengeTypeSchema = { + tableName: "ChallengeType", + attributes: [ + { + name: "id", + type: DataType.DATA_TYPE_STRING, + }, + { + name: "isActive", + type: DataType.DATA_TYPE_BOOLEAN, + }, + { + name: "isTask", + type: DataType.DATA_TYPE_BOOLEAN, + }, + { + name: "abbreviation", + type: DataType.DATA_TYPE_STRING, + }, + { + name: "description", + type: DataType.DATA_TYPE_STRING, + }, + { + name: "name", + type: DataType.DATA_TYPE_STRING, + }, + ], + indices: {}, +}; diff --git a/src/schema/PhaseSchema.ts b/src/schema/PhaseSchema.ts new file mode 100644 index 0000000..86544f3 --- /dev/null +++ b/src/schema/PhaseSchema.ts @@ -0,0 +1,28 @@ +import { DataType } from "../dal/models/nosql/parti_ql"; + +export const PhaseSchema = { + tableName: "Phase", + attributes: [ + { + name: "id", + type: DataType.DATA_TYPE_STRING, + }, + { + name: "isOpen", + type: DataType.DATA_TYPE_BOOLEAN, + }, + { + name: "duration", + type: DataType.DATA_TYPE_NUMBER, + }, + { + name: "name", + type: DataType.DATA_TYPE_STRING, + }, + { + name: "description", + type: DataType.DATA_TYPE_STRING, + }, + ], + indices: {}, +}; diff --git a/src/schema/TimelineTemplateSchema.ts b/src/schema/TimelineTemplateSchema.ts new file mode 100644 index 0000000..65c883f --- /dev/null +++ b/src/schema/TimelineTemplateSchema.ts @@ -0,0 +1,28 @@ +import { DataType } from "../dal/models/nosql/parti_ql"; + +export const TimelineTemplateSchema = { + tableName: "TimelineTemplate", + attributes: [ + { + name: "id", + type: DataType.DATA_TYPE_STRING, + }, + { + name: "isActive", + type: DataType.DATA_TYPE_BOOLEAN, + }, + { + name: "phases", + type: DataType.DATA_TYPE_LIST, + }, + { + name: "name", + type: DataType.DATA_TYPE_STRING, + }, + { + name: "description", + type: DataType.DATA_TYPE_STRING, + }, + ], + indices: {}, +}; diff --git a/src/server.ts b/src/server.ts index 541997e..7bbe059 100644 --- a/src/server.ts +++ b/src/server.ts @@ -17,6 +17,23 @@ import { ChallengeTrackService, } from "./service/ChallengeTrackService"; +import { + ChallengeTypeServer, + ChallengeTypeService, +} from "./service/ChallengeTypeService"; +import { + AttachmentServer, + AttachmentService, +} from "./service/AttachmentService"; + +import { + TimelineTemplateServer, + TimelineTemplateService, +} from "./service/TimelineTemplateService"; + +import { PhaseServer, PhaseService } from "./service/PhaseService"; +import { ChallengeServer, ChallengeService } from "./service/ChallengeService"; + const { ENV, GRPC_SERVER_HOST = "", GRPC_SERVER_PORT = 9092 } = process.env; const server = new Server({ @@ -35,7 +52,12 @@ server.addService( new ChallengeTimelineTemplateServer() ); +server.addService(ChallengeService, new ChallengeServer()); server.addService(ChallengeTrackService, new ChallengeTrackServer()); +server.addService(ChallengeTypeService, new ChallengeTypeServer()); +server.addService(AttachmentService, new AttachmentServer()); +server.addService(PhaseService, new PhaseServer()); +server.addService(TimelineTemplateService, new TimelineTemplateServer()); server.bindAsync( `${GRPC_SERVER_HOST}:${GRPC_SERVER_PORT}`, diff --git a/src/service/AttachmentService.ts b/src/service/AttachmentService.ts new file mode 100644 index 0000000..0928857 --- /dev/null +++ b/src/service/AttachmentService.ts @@ -0,0 +1,102 @@ +import { handleUnaryCall, sendUnaryData, ServerUnaryCall, StatusObject } from "@grpc/grpc-js"; +import { + ScanRequest, + ScanResult, + LookupCriteria, +} from "../models/common/common"; + +import { + Attachment, + CreateAttachmentInput, + UpdateAttachmentInput, + AttachmentList, +} from "../models/domain-layer/challenge/attachment"; + +import { + AttachmentServer, + AttachmentService, +} from "../models/domain-layer/challenge/services/attachment"; + +import Domain from "../domain/Attachment"; + +class AttachmentServerImpl implements AttachmentServer { + [name: string]: import("@grpc/grpc-js").UntypedHandleCall; + + scan: handleUnaryCall = async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { + request: { scanCriteria, nextToken: inputNextToken }, + } = call; + + const { items, nextToken } = await Domain.scan( + scanCriteria, + inputNextToken + ); + + callback(null, { + items, + nextToken, + }); + }; + + lookup: handleUnaryCall = async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { request: lookupCriteria } = call; + + const Attachment = await Domain.lookup(lookupCriteria); + + callback(null, Attachment); + }; + + create: handleUnaryCall = async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { request: createRequestInput } = call; + + const Attachment = await Domain.create(createRequestInput); + + callback(null, Attachment); + }; + + update: handleUnaryCall = + async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { + request: { updateInput, filterCriteria }, + } = call; + + Domain.update(filterCriteria, updateInput) + .then((challengeTypeList) => { + callback( + null, + AttachmentList.fromJSON(challengeTypeList) + ); + }) + .catch((error: StatusObject) => { + callback(error, null); + }); + }; + + delete: handleUnaryCall = async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { request: lookupCriteria } = call; + + const challengeTypes = await Domain.delete(lookupCriteria); + + callback(null, AttachmentList.fromJSON(challengeTypes)); + }; +} + +export { + AttachmentServerImpl as AttachmentServer, + AttachmentService, +}; diff --git a/src/service/ChallengeService.ts b/src/service/ChallengeService.ts index 7878355..7e70d3e 100644 --- a/src/service/ChallengeService.ts +++ b/src/service/ChallengeService.ts @@ -16,7 +16,6 @@ import { ChallengeService, } from "../models/domain-layer/challenge/services/challenge"; -import ChallengeDomain from "../domain/Challenge"; import { CreateChallengeInput, Challenge, @@ -24,6 +23,7 @@ import { UpdateChallengeInput, } from "../models/domain-layer/challenge/challenge"; +import Domain from "../domain/Challenge"; class ChallengeServerImpl implements ChallengeServer { [name: string]: UntypedHandleCall; @@ -31,7 +31,10 @@ class ChallengeServerImpl implements ChallengeServer { call: ServerUnaryCall, callback: sendUnaryData ): Promise => { - // const { request: createChallengeInput } = call; + const { request: createChallengeInput } = call; + Domain.create(createChallengeInput) + .then((challenge) => callback(null, challenge)) + .catch((error) => callback(error, null)); }; lookup: handleUnaryCall = async ( @@ -47,7 +50,7 @@ class ChallengeServerImpl implements ChallengeServer { request: { scanCriteria, nextToken: inputNextToken }, } = call; - const { items, nextToken } = await ChallengeDomain.scan( + const { items, nextToken } = await Domain.scan( scanCriteria, inputNextToken ); diff --git a/src/service/ChallengeTimelineTemplateService.ts b/src/service/ChallengeTimelineTemplateService.ts index 8bcbbeb..6565027 100644 --- a/src/service/ChallengeTimelineTemplateService.ts +++ b/src/service/ChallengeTimelineTemplateService.ts @@ -15,7 +15,6 @@ import { CreateChallengeTimelineTemplateInput, UpdateChallengeTimelineTemplateInput, ChallengeTimelineTemplateList, - UpdateChallengeTimelineTemplateInput_UpdateInput, } from "../models/domain-layer/challenge/challenge_timeline_template"; import { diff --git a/src/service/ChallengeTrackService.ts b/src/service/ChallengeTrackService.ts index e1d32ce..bd367ca 100644 --- a/src/service/ChallengeTrackService.ts +++ b/src/service/ChallengeTrackService.ts @@ -1,4 +1,4 @@ -import { handleUnaryCall, sendUnaryData, ServerUnaryCall } from "@grpc/grpc-js"; +import { handleUnaryCall, sendUnaryData, ServerUnaryCall, StatusObject } from "@grpc/grpc-js"; import { ScanRequest, ScanResult, @@ -19,7 +19,7 @@ import { import Domain from "../domain/ChallengeTrack"; -class ChallengeTimelineTemplatServerImpl implements ChallengeTrackServer { +class ChallengeTrackServerImpl implements ChallengeTrackServer { [name: string]: import("@grpc/grpc-js").UntypedHandleCall; scan: handleUnaryCall = async ( @@ -68,8 +68,20 @@ class ChallengeTimelineTemplatServerImpl implements ChallengeTrackServer { call: ServerUnaryCall, callback: sendUnaryData ): Promise => { - // TODO: Handle update - callback(new Error("Not implemented"), null); + const { + request: { updateInput, filterCriteria }, + } = call; + + Domain.update(filterCriteria, updateInput) + .then((challengeTrackList) => { + callback( + null, + ChallengeTrackList.fromJSON(challengeTrackList) + ); + }) + .catch((error: StatusObject) => { + callback(error, null); + }); }; delete: handleUnaryCall = async ( @@ -85,6 +97,6 @@ class ChallengeTimelineTemplatServerImpl implements ChallengeTrackServer { } export { - ChallengeTimelineTemplatServerImpl as ChallengeTrackServer, + ChallengeTrackServerImpl as ChallengeTrackServer, ChallengeTrackService, }; diff --git a/src/service/ChallengeTypeService.ts b/src/service/ChallengeTypeService.ts new file mode 100644 index 0000000..3a5a54a --- /dev/null +++ b/src/service/ChallengeTypeService.ts @@ -0,0 +1,102 @@ +import { handleUnaryCall, sendUnaryData, ServerUnaryCall, StatusObject } from "@grpc/grpc-js"; +import { + ScanRequest, + ScanResult, + LookupCriteria, +} from "../models/common/common"; + +import { + ChallengeType, + CreateChallengeTypeInput, + UpdateChallengeTypeInput, + ChallengeTypeList, +} from "../models/domain-layer/challenge/challenge_type"; + +import { + ChallengeTypeServer, + ChallengeTypeService, +} from "../models/domain-layer/challenge/services/challenge_type"; + +import Domain from "../domain/ChallengeType"; + +class ChallengeTypeServerImpl implements ChallengeTypeServer { + [name: string]: import("@grpc/grpc-js").UntypedHandleCall; + + scan: handleUnaryCall = async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { + request: { scanCriteria, nextToken: inputNextToken }, + } = call; + + const { items, nextToken } = await Domain.scan( + scanCriteria, + inputNextToken + ); + + callback(null, { + items, + nextToken, + }); + }; + + lookup: handleUnaryCall = async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { request: lookupCriteria } = call; + + const ChallengeType = await Domain.lookup(lookupCriteria); + + callback(null, ChallengeType); + }; + + create: handleUnaryCall = async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { request: createRequestInput } = call; + + const ChallengeType = await Domain.create(createRequestInput); + + callback(null, ChallengeType); + }; + + update: handleUnaryCall = + async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { + request: { updateInput, filterCriteria }, + } = call; + + Domain.update(filterCriteria, updateInput) + .then((challengeTypeList) => { + callback( + null, + ChallengeTypeList.fromJSON(challengeTypeList) + ); + }) + .catch((error: StatusObject) => { + callback(error, null); + }); + }; + + delete: handleUnaryCall = async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { request: lookupCriteria } = call; + + const challengeTypes = await Domain.delete(lookupCriteria); + + callback(null, ChallengeTypeList.fromJSON(challengeTypes)); + }; +} + +export { + ChallengeTypeServerImpl as ChallengeTypeServer, + ChallengeTypeService, +}; diff --git a/src/service/PhaseService.ts b/src/service/PhaseService.ts new file mode 100644 index 0000000..4f30d5c --- /dev/null +++ b/src/service/PhaseService.ts @@ -0,0 +1,102 @@ +import { handleUnaryCall, sendUnaryData, ServerUnaryCall, StatusObject } from "@grpc/grpc-js"; +import { + ScanRequest, + ScanResult, + LookupCriteria, +} from "../models/common/common"; + +import { + Phase, + CreatePhaseInput, + UpdatePhaseInput, + PhaseList, +} from "../models/domain-layer/challenge/phase"; + +import { + PhaseServer, + PhaseService, +} from "../models/domain-layer/challenge/services/phase"; + +import Domain from "../domain/Phase"; + +class PhaseServerImpl implements PhaseServer { + [name: string]: import("@grpc/grpc-js").UntypedHandleCall; + + scan: handleUnaryCall = async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { + request: { scanCriteria, nextToken: inputNextToken }, + } = call; + + const { items, nextToken } = await Domain.scan( + scanCriteria, + inputNextToken + ); + + callback(null, { + items, + nextToken, + }); + }; + + lookup: handleUnaryCall = async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { request: lookupCriteria } = call; + + const Phase = await Domain.lookup(lookupCriteria); + + callback(null, Phase); + }; + + create: handleUnaryCall = async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { request: createRequestInput } = call; + + const Phase = await Domain.create(createRequestInput); + + callback(null, Phase); + }; + + update: handleUnaryCall = + async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { + request: { updateInput, filterCriteria }, + } = call; + + Domain.update(filterCriteria, updateInput) + .then((phaseList) => { + callback( + null, + PhaseList.fromJSON(phaseList) + ); + }) + .catch((error: StatusObject) => { + callback(error, null); + }); + }; + + delete: handleUnaryCall = async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { request: lookupCriteria } = call; + + const challengeTypes = await Domain.delete(lookupCriteria); + + callback(null, PhaseList.fromJSON(challengeTypes)); + }; +} + +export { + PhaseServerImpl as PhaseServer, + PhaseService, +}; diff --git a/src/service/TimelineTemplateService.ts b/src/service/TimelineTemplateService.ts new file mode 100644 index 0000000..4274713 --- /dev/null +++ b/src/service/TimelineTemplateService.ts @@ -0,0 +1,105 @@ +import { + handleUnaryCall, + sendUnaryData, + ServerUnaryCall, + StatusObject, +} from "@grpc/grpc-js"; +import { + ScanRequest, + ScanResult, + LookupCriteria, +} from "../models/common/common"; + +import { + TimelineTemplate, + CreateTimelineTemplateInput, + UpdateTimelineTemplateInput, + TimelineTemplateList, +} from "../models/domain-layer/challenge/timeline_template"; + +import { + TimelineTemplateServer, + TimelineTemplateService, +} from "../models/domain-layer/challenge/services/timeline_template"; + +import Domain from "../domain/TimelineTemplate"; + +class TimelineTemplateServerImpl implements TimelineTemplateServer { + [name: string]: import("@grpc/grpc-js").UntypedHandleCall; + + scan: handleUnaryCall = async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { + request: { scanCriteria, nextToken: inputNextToken }, + } = call; + + const { items, nextToken } = await Domain.scan( + scanCriteria, + inputNextToken + ); + + callback(null, { + items, + nextToken, + }); + }; + + lookup: handleUnaryCall = async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { request: lookupCriteria } = call; + + const TimelineTemplate = await Domain.lookup(lookupCriteria); + + callback(null, TimelineTemplate); + }; + + create: handleUnaryCall = + async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { request: createRequestInput } = call; + + const TimelineTemplate = await Domain.create(createRequestInput); + + callback(null, TimelineTemplate); + }; + + update: handleUnaryCall = + async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { + request: { updateInput, filterCriteria }, + } = call; + + Domain.update(filterCriteria, updateInput) + .then((timelineTemplateList) => { + callback(null, TimelineTemplateList.fromJSON(timelineTemplateList)); + }) + .catch((error: StatusObject) => { + callback(error, null); + }); + }; + + delete: handleUnaryCall = async ( + call: ServerUnaryCall, + callback: sendUnaryData + ): Promise => { + const { request: lookupCriteria } = call; + + const challengeTypes = await Domain.delete(lookupCriteria); + + callback(null, TimelineTemplateList.fromJSON(challengeTypes)); + }; +} + +export { + TimelineTemplateServerImpl as TimelineTemplateServer, + TimelineTemplateService, +}; diff --git a/yarn.lock b/yarn.lock index b718e58..1678b1e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,14 +4,14 @@ "@aws-crypto/ie11-detection@^2.0.0": version "2.0.2" - resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz#9c39f4a5558196636031a933ec1b4792de959d6a" + resolved "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz" integrity sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw== dependencies: tslib "^1.11.1" "@aws-crypto/sha256-browser@2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz#741c9024df55ec59b51e5b1f5d806a4852699fb5" + resolved "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz" integrity sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A== dependencies: "@aws-crypto/ie11-detection" "^2.0.0" @@ -25,7 +25,7 @@ "@aws-crypto/sha256-js@2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz#f1f936039bdebd0b9e2dd834d65afdc2aac4efcb" + resolved "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz" integrity sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig== dependencies: "@aws-crypto/util" "^2.0.0" @@ -34,7 +34,7 @@ "@aws-crypto/sha256-js@^2.0.0": version "2.0.2" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-2.0.2.tgz#c81e5d378b8a74ff1671b58632779986e50f4c99" + resolved "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.2.tgz" integrity sha512-iXLdKH19qPmIC73fVCrHWCSYjN/sxaAvZ3jNNyw6FclmHyjLKg0f69WlC9KTnyElxCR5MO9SKaG00VwlJwyAkQ== dependencies: "@aws-crypto/util" "^2.0.2" @@ -43,14 +43,14 @@ "@aws-crypto/supports-web-crypto@^2.0.0": version "2.0.2" - resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz#9f02aafad8789cac9c0ab5faaebb1ab8aa841338" + resolved "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz" integrity sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ== dependencies: tslib "^1.11.1" "@aws-crypto/util@^2.0.0", "@aws-crypto/util@^2.0.2": version "2.0.2" - resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-2.0.2.tgz#adf5ff5dfbc7713082f897f1d01e551ce0edb9c0" + resolved "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.2.tgz" integrity sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA== dependencies: "@aws-sdk/types" "^3.110.0" @@ -59,32 +59,32 @@ "@aws-sdk/abort-controller@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.226.0.tgz#3adffb8ee5af57ddb154e8544a8eeec76ad32271" + resolved "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.226.0.tgz" integrity sha512-cJVzr1xxPBd08voknXvR0RLgtZKGKt6WyDpH/BaPCu3rfSqWCDZKzwqe940eqosjmKrxC6pUZNKASIqHOQ8xxQ== dependencies: "@aws-sdk/types" "3.226.0" tslib "^2.3.1" "@aws-sdk/client-dynamodb@^3.183.0": - version "3.231.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-dynamodb/-/client-dynamodb-3.231.0.tgz#f7c7a95c9781e955b4ff63908c57b16995b1f6cb" - integrity sha512-WvNM3NmsFFB7S7I5B2PECe945bEzdwU3MElLznmcbccaRf31S61C4EAkghm6hXz0EoZlgdRfBqHaRB1PgmAUuA== + version "3.245.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-dynamodb/-/client-dynamodb-3.245.0.tgz" + integrity sha512-k9zPoUXQ6o91iAIceaDyz1p1tXhA3gcmw4R0oB6gREDGc9bkIqBzwS6+Zu8m4B2PPhZQIl9uMpktHw9NPyMRxA== dependencies: "@aws-crypto/sha256-browser" "2.0.0" "@aws-crypto/sha256-js" "2.0.0" - "@aws-sdk/client-sts" "3.231.0" - "@aws-sdk/config-resolver" "3.231.0" - "@aws-sdk/credential-provider-node" "3.231.0" + "@aws-sdk/client-sts" "3.245.0" + "@aws-sdk/config-resolver" "3.234.0" + "@aws-sdk/credential-provider-node" "3.245.0" "@aws-sdk/fetch-http-handler" "3.226.0" "@aws-sdk/hash-node" "3.226.0" "@aws-sdk/invalid-dependency" "3.226.0" "@aws-sdk/middleware-content-length" "3.226.0" "@aws-sdk/middleware-endpoint" "3.226.0" - "@aws-sdk/middleware-endpoint-discovery" "3.231.0" + "@aws-sdk/middleware-endpoint-discovery" "3.234.0" "@aws-sdk/middleware-host-header" "3.226.0" "@aws-sdk/middleware-logger" "3.226.0" "@aws-sdk/middleware-recursion-detection" "3.226.0" - "@aws-sdk/middleware-retry" "3.229.0" + "@aws-sdk/middleware-retry" "3.235.0" "@aws-sdk/middleware-serde" "3.226.0" "@aws-sdk/middleware-signing" "3.226.0" "@aws-sdk/middleware-stack" "3.226.0" @@ -92,15 +92,15 @@ "@aws-sdk/node-config-provider" "3.226.0" "@aws-sdk/node-http-handler" "3.226.0" "@aws-sdk/protocol-http" "3.226.0" - "@aws-sdk/smithy-client" "3.226.0" + "@aws-sdk/smithy-client" "3.234.0" "@aws-sdk/types" "3.226.0" "@aws-sdk/url-parser" "3.226.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.226.0" - "@aws-sdk/util-defaults-mode-node" "3.231.0" - "@aws-sdk/util-endpoints" "3.226.0" + "@aws-sdk/util-defaults-mode-browser" "3.234.0" + "@aws-sdk/util-defaults-mode-node" "3.234.0" + "@aws-sdk/util-endpoints" "3.245.0" "@aws-sdk/util-retry" "3.229.0" "@aws-sdk/util-user-agent-browser" "3.226.0" "@aws-sdk/util-user-agent-node" "3.226.0" @@ -110,14 +110,14 @@ tslib "^2.3.1" uuid "^8.3.2" -"@aws-sdk/client-sso-oidc@3.231.0": - version "3.231.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.231.0.tgz#de8783b608faf4b829b52e12a088f88326f9b851" - integrity sha512-yqEZW9/Q6VvMDMcQoE52oa/oa6F8z8cqyax7m29VpuVrncYcfELpkZKWPoaJVfierR5ysKfKiAU0acPgMpvllQ== +"@aws-sdk/client-sso-oidc@3.245.0": + version "3.245.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.245.0.tgz" + integrity sha512-0pGPA00kEsu2Yq1Ul+OwftHxws5YVllm4iZrPtGnqmXr7wmf6B9lOtrMQF44y7Tfw53po6+bKz08OKTEWkkjUA== dependencies: "@aws-crypto/sha256-browser" "2.0.0" "@aws-crypto/sha256-js" "2.0.0" - "@aws-sdk/config-resolver" "3.231.0" + "@aws-sdk/config-resolver" "3.234.0" "@aws-sdk/fetch-http-handler" "3.226.0" "@aws-sdk/hash-node" "3.226.0" "@aws-sdk/invalid-dependency" "3.226.0" @@ -126,22 +126,22 @@ "@aws-sdk/middleware-host-header" "3.226.0" "@aws-sdk/middleware-logger" "3.226.0" "@aws-sdk/middleware-recursion-detection" "3.226.0" - "@aws-sdk/middleware-retry" "3.229.0" + "@aws-sdk/middleware-retry" "3.235.0" "@aws-sdk/middleware-serde" "3.226.0" "@aws-sdk/middleware-stack" "3.226.0" "@aws-sdk/middleware-user-agent" "3.226.0" "@aws-sdk/node-config-provider" "3.226.0" "@aws-sdk/node-http-handler" "3.226.0" "@aws-sdk/protocol-http" "3.226.0" - "@aws-sdk/smithy-client" "3.226.0" + "@aws-sdk/smithy-client" "3.234.0" "@aws-sdk/types" "3.226.0" "@aws-sdk/url-parser" "3.226.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.226.0" - "@aws-sdk/util-defaults-mode-node" "3.231.0" - "@aws-sdk/util-endpoints" "3.226.0" + "@aws-sdk/util-defaults-mode-browser" "3.234.0" + "@aws-sdk/util-defaults-mode-node" "3.234.0" + "@aws-sdk/util-endpoints" "3.245.0" "@aws-sdk/util-retry" "3.229.0" "@aws-sdk/util-user-agent-browser" "3.226.0" "@aws-sdk/util-user-agent-node" "3.226.0" @@ -149,14 +149,14 @@ "@aws-sdk/util-utf8-node" "3.208.0" tslib "^2.3.1" -"@aws-sdk/client-sso@3.231.0": - version "3.231.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.231.0.tgz#783322cb936da353bb047dd2fb762eab09c19c50" - integrity sha512-/q7BptaMiT6/wxW9vE/gcQuApMXio5vdTuqt77A6+mjqhNzYFfCn7RRS4BU8KEOpZObnYBKP3mYe3NDccEbMzQ== +"@aws-sdk/client-sso@3.245.0": + version "3.245.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.245.0.tgz" + integrity sha512-dxzRwRo55ZNQ4hQigC+cishxLSWlBrbr3iszG0FLviavLDOlnVG5UUxWpOIGvwr8pYiSfM4jnfMxiwYwiCLg1g== dependencies: "@aws-crypto/sha256-browser" "2.0.0" "@aws-crypto/sha256-js" "2.0.0" - "@aws-sdk/config-resolver" "3.231.0" + "@aws-sdk/config-resolver" "3.234.0" "@aws-sdk/fetch-http-handler" "3.226.0" "@aws-sdk/hash-node" "3.226.0" "@aws-sdk/invalid-dependency" "3.226.0" @@ -165,22 +165,22 @@ "@aws-sdk/middleware-host-header" "3.226.0" "@aws-sdk/middleware-logger" "3.226.0" "@aws-sdk/middleware-recursion-detection" "3.226.0" - "@aws-sdk/middleware-retry" "3.229.0" + "@aws-sdk/middleware-retry" "3.235.0" "@aws-sdk/middleware-serde" "3.226.0" "@aws-sdk/middleware-stack" "3.226.0" "@aws-sdk/middleware-user-agent" "3.226.0" "@aws-sdk/node-config-provider" "3.226.0" "@aws-sdk/node-http-handler" "3.226.0" "@aws-sdk/protocol-http" "3.226.0" - "@aws-sdk/smithy-client" "3.226.0" + "@aws-sdk/smithy-client" "3.234.0" "@aws-sdk/types" "3.226.0" "@aws-sdk/url-parser" "3.226.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.226.0" - "@aws-sdk/util-defaults-mode-node" "3.231.0" - "@aws-sdk/util-endpoints" "3.226.0" + "@aws-sdk/util-defaults-mode-browser" "3.234.0" + "@aws-sdk/util-defaults-mode-node" "3.234.0" + "@aws-sdk/util-endpoints" "3.245.0" "@aws-sdk/util-retry" "3.229.0" "@aws-sdk/util-user-agent-browser" "3.226.0" "@aws-sdk/util-user-agent-node" "3.226.0" @@ -188,15 +188,15 @@ "@aws-sdk/util-utf8-node" "3.208.0" tslib "^2.3.1" -"@aws-sdk/client-sts@3.231.0": - version "3.231.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.231.0.tgz#ec4689dc8d4d81d4bd1a13f3508bf3c9d5a1e7fb" - integrity sha512-5WYqlcbM49ofOFBsu28QBt3t26M5D9XynhSaswSrCzawwdNkIMYQrKOCplF5mqOy+GywVIRrFeCVVrAKPMZJxQ== +"@aws-sdk/client-sts@3.245.0": + version "3.245.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.245.0.tgz" + integrity sha512-E+7v2sy34TLni/Dmz6bTU20NWvbHYH9sVUHKQ9kHhmFopUWrs4Nt77f85PbuiKJz/irjUh9ppT5q1odJNRKRVQ== dependencies: "@aws-crypto/sha256-browser" "2.0.0" "@aws-crypto/sha256-js" "2.0.0" - "@aws-sdk/config-resolver" "3.231.0" - "@aws-sdk/credential-provider-node" "3.231.0" + "@aws-sdk/config-resolver" "3.234.0" + "@aws-sdk/credential-provider-node" "3.245.0" "@aws-sdk/fetch-http-handler" "3.226.0" "@aws-sdk/hash-node" "3.226.0" "@aws-sdk/invalid-dependency" "3.226.0" @@ -205,7 +205,7 @@ "@aws-sdk/middleware-host-header" "3.226.0" "@aws-sdk/middleware-logger" "3.226.0" "@aws-sdk/middleware-recursion-detection" "3.226.0" - "@aws-sdk/middleware-retry" "3.229.0" + "@aws-sdk/middleware-retry" "3.235.0" "@aws-sdk/middleware-sdk-sts" "3.226.0" "@aws-sdk/middleware-serde" "3.226.0" "@aws-sdk/middleware-signing" "3.226.0" @@ -214,15 +214,15 @@ "@aws-sdk/node-config-provider" "3.226.0" "@aws-sdk/node-http-handler" "3.226.0" "@aws-sdk/protocol-http" "3.226.0" - "@aws-sdk/smithy-client" "3.226.0" + "@aws-sdk/smithy-client" "3.234.0" "@aws-sdk/types" "3.226.0" "@aws-sdk/url-parser" "3.226.0" "@aws-sdk/util-base64" "3.208.0" "@aws-sdk/util-body-length-browser" "3.188.0" "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.226.0" - "@aws-sdk/util-defaults-mode-node" "3.231.0" - "@aws-sdk/util-endpoints" "3.226.0" + "@aws-sdk/util-defaults-mode-browser" "3.234.0" + "@aws-sdk/util-defaults-mode-node" "3.234.0" + "@aws-sdk/util-endpoints" "3.245.0" "@aws-sdk/util-retry" "3.229.0" "@aws-sdk/util-user-agent-browser" "3.226.0" "@aws-sdk/util-user-agent-node" "3.226.0" @@ -231,10 +231,10 @@ fast-xml-parser "4.0.11" tslib "^2.3.1" -"@aws-sdk/config-resolver@3.231.0": - version "3.231.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.231.0.tgz#3254a73d10c5d1eeaa2ee8d500676ca7e2ec4339" - integrity sha512-qpjV4Fw/NQ4a0p5/qwzqaShflYRlY/SPcgA7N5GTJjIjZjg3NV+5BKJSF3VeZcNKfbXq68kkn207OSCpyheYxQ== +"@aws-sdk/config-resolver@3.234.0": + version "3.234.0" + resolved "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.234.0.tgz" + integrity sha512-uZxy4wzllfvgCQxVc+Iqhde0NGAnfmV2hWR6ejadJaAFTuYNvQiRg9IqJy3pkyDPqXySiJ8Bom5PoJfgn55J/A== dependencies: "@aws-sdk/signature-v4" "3.226.0" "@aws-sdk/types" "3.226.0" @@ -244,7 +244,7 @@ "@aws-sdk/credential-provider-env@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.226.0.tgz#0bcb89a9abc166b3a48f5c255b9fcabc4cb80daf" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.226.0.tgz" integrity sha512-sd8uK1ojbXxaZXlthzw/VXZwCPUtU3PjObOfr3Evj7MPIM2IH8h29foOlggx939MdLQGboJf9gKvLlvKDWtJRA== dependencies: "@aws-sdk/property-provider" "3.226.0" @@ -253,7 +253,7 @@ "@aws-sdk/credential-provider-imds@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.226.0.tgz#0a4558449eb261412b0490ea1c3242eb91659759" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.226.0.tgz" integrity sha512-//z/COQm2AjYFI1Lb0wKHTQSrvLFTyuKLFQGPJsKS7DPoxGOCKB7hmYerlbl01IDoCxTdyL//TyyPxbZEOQD5Q== dependencies: "@aws-sdk/node-config-provider" "3.226.0" @@ -262,30 +262,31 @@ "@aws-sdk/url-parser" "3.226.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-ini@3.231.0": - version "3.231.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.231.0.tgz#008166b300b7e3d0139b57fc8c1204fa39182290" - integrity sha512-4JJgrJg2O91Vki4m5nSQNZGX/5yAYgzG1IOjeZ+8vCDxfR+jA2O9+/Xhi2/8aDpb1da77OJ+cK1+ezzSMchIfQ== +"@aws-sdk/credential-provider-ini@3.245.0": + version "3.245.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.245.0.tgz" + integrity sha512-1SjfVc5Wg0lLRUvwMrfjGgFkl+zfxn74gnkPr6by1QyMAoTzmeUkalPLAIqd+uHtFom9e3K633BQtX7zVPZ5XQ== dependencies: "@aws-sdk/credential-provider-env" "3.226.0" "@aws-sdk/credential-provider-imds" "3.226.0" - "@aws-sdk/credential-provider-sso" "3.231.0" + "@aws-sdk/credential-provider-process" "3.226.0" + "@aws-sdk/credential-provider-sso" "3.245.0" "@aws-sdk/credential-provider-web-identity" "3.226.0" "@aws-sdk/property-provider" "3.226.0" "@aws-sdk/shared-ini-file-loader" "3.226.0" "@aws-sdk/types" "3.226.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-node@3.231.0": - version "3.231.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.231.0.tgz#5484f06c15e07c788f6a6213d10d31190ee4965c" - integrity sha512-DOojjyYdLNeBQv9+PaDXmvvww9SmcZsaL1YCl27e5larcJSMfT41vn4WRnVRu2zBI2BIi464Z8ziRRKwd2YFVg== +"@aws-sdk/credential-provider-node@3.245.0": + version "3.245.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.245.0.tgz" + integrity sha512-Dwv8zmRLTDLeEkGrK/sLNFZSC+ahXZxr07CuID054QKACIdUEvkqYlnalRiTeXngiHGQ54u8wU7f0D32R2oL0g== dependencies: "@aws-sdk/credential-provider-env" "3.226.0" "@aws-sdk/credential-provider-imds" "3.226.0" - "@aws-sdk/credential-provider-ini" "3.231.0" + "@aws-sdk/credential-provider-ini" "3.245.0" "@aws-sdk/credential-provider-process" "3.226.0" - "@aws-sdk/credential-provider-sso" "3.231.0" + "@aws-sdk/credential-provider-sso" "3.245.0" "@aws-sdk/credential-provider-web-identity" "3.226.0" "@aws-sdk/property-provider" "3.226.0" "@aws-sdk/shared-ini-file-loader" "3.226.0" @@ -294,7 +295,7 @@ "@aws-sdk/credential-provider-process@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.226.0.tgz#bcd73a6d31d1b3181917d56e54aacbee242b077f" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.226.0.tgz" integrity sha512-iUDMdnrTvbvaCFhWwqyXrhvQ9+ojPqPqXhwZtY1X/Qaz+73S9gXBPJHZaZb2Ke0yKE1Ql3bJbKvmmxC/qLQMng== dependencies: "@aws-sdk/property-provider" "3.226.0" @@ -302,21 +303,21 @@ "@aws-sdk/types" "3.226.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-sso@3.231.0": - version "3.231.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.231.0.tgz#8a1f8a95d0aaa134da2bf506d5a3db2435bfbf60" - integrity sha512-aImUD+PAqZ7A2C1ef7gskMN3KuxFT4Am1Vrl6M0oLGyrhKG2QtRT/UaXJE+Yt6d/C2qc2OsQ9j2oim7D6Qha/A== +"@aws-sdk/credential-provider-sso@3.245.0": + version "3.245.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.245.0.tgz" + integrity sha512-txWrJc0WNBhXMi7q+twjx7cs/qzgTfbQ+vbag5idRmdoUeiR8rfLvihCab2NaGg50xhh+TaoUCXrgJp3E/XjYQ== dependencies: - "@aws-sdk/client-sso" "3.231.0" + "@aws-sdk/client-sso" "3.245.0" "@aws-sdk/property-provider" "3.226.0" "@aws-sdk/shared-ini-file-loader" "3.226.0" - "@aws-sdk/token-providers" "3.231.0" + "@aws-sdk/token-providers" "3.245.0" "@aws-sdk/types" "3.226.0" tslib "^2.3.1" "@aws-sdk/credential-provider-web-identity@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.226.0.tgz#2b7d20f93a40e2243c7e3857f54b103d19a946fb" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.226.0.tgz" integrity sha512-CCpv847rLB0SFOHz2igvUMFAzeT2fD3YnY4C8jltuJoEkn0ITn1Hlgt13nTJ5BUuvyti2mvyXZHmNzhMIMrIlw== dependencies: "@aws-sdk/property-provider" "3.226.0" @@ -325,7 +326,7 @@ "@aws-sdk/endpoint-cache@3.208.0": version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/endpoint-cache/-/endpoint-cache-3.208.0.tgz#bd3083c3b85985fb04ec0ab760afc7b4132318c3" + resolved "https://registry.npmjs.org/@aws-sdk/endpoint-cache/-/endpoint-cache-3.208.0.tgz" integrity sha512-MkrCvaZhTb1qZCjcDH73t5n43h0Kr0GS+30lpXZ9PAnHJZPqv+vhWFPK0ZsFe1XktbS0WOoDR4ED+lWm0Dw7Rg== dependencies: mnemonist "0.38.3" @@ -333,7 +334,7 @@ "@aws-sdk/fetch-http-handler@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.226.0.tgz#350f78fc18fe9cb0a889ef4870838a8fcfa8855c" + resolved "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.226.0.tgz" integrity sha512-JewZPMNEBXfi1xVnRa7pVtK/zgZD8/lQ/YnD8pq79WuMa2cwyhDtr8oqCoqsPW+WJT5ScXoMtuHxN78l8eKWgg== dependencies: "@aws-sdk/protocol-http" "3.226.0" @@ -344,7 +345,7 @@ "@aws-sdk/hash-node@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.226.0.tgz#252d98bcbb1e13c8f26d9d416db03cf8cceac185" + resolved "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.226.0.tgz" integrity sha512-MdlJhJ9/Espwd0+gUXdZRsHuostB2WxEVAszWxobP0FTT9PnicqnfK7ExmW+DUAc0ywxtEbR3e0UND65rlSTVw== dependencies: "@aws-sdk/types" "3.226.0" @@ -353,7 +354,7 @@ "@aws-sdk/invalid-dependency@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.226.0.tgz#74586f60859ed1813985e3d642066cc46d2e9d40" + resolved "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.226.0.tgz" integrity sha512-QXOYFmap8g9QzRjumcRCIo2GEZkdCwd7ePQW0OABWPhKHzlJ74vvBxywjU3s39EEBEluWXtZ7Iufg6GxZM4ifw== dependencies: "@aws-sdk/types" "3.226.0" @@ -361,26 +362,26 @@ "@aws-sdk/is-array-buffer@3.201.0": version "3.201.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz#06e557adc284fac2f26071c2944ae01f61b95854" + resolved "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz" integrity sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg== dependencies: tslib "^2.3.1" "@aws-sdk/middleware-content-length@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.226.0.tgz#6cc952049f6e3cdc3a3778c9dce9f2aee942b5fe" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.226.0.tgz" integrity sha512-ksUzlHJN2JMuyavjA46a4sctvnrnITqt2tbGGWWrAuXY1mel2j+VbgnmJUiwHKUO6bTFBBeft5Vd1TSOb4JmiA== dependencies: "@aws-sdk/protocol-http" "3.226.0" "@aws-sdk/types" "3.226.0" tslib "^2.3.1" -"@aws-sdk/middleware-endpoint-discovery@3.231.0": - version "3.231.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.231.0.tgz#592a835ecc5aa377fff238dad48219158e6677ba" - integrity sha512-8HRZRrZWuAlm/I8uwFG8+iK8TCJWHSizRTEZfNazx7V5anOk55UeCVg3ifuXnFPmGeb4VDBRTn4h2dUx4LRKLQ== +"@aws-sdk/middleware-endpoint-discovery@3.234.0": + version "3.234.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.234.0.tgz" + integrity sha512-HNZJbxXrSJfITJjAisqrju7T4S7U186xcmYr28CZX9XQNm6fc/bxcqj+8JRntWsekiJYyTvQLIrKxiCaa+TA9A== dependencies: - "@aws-sdk/config-resolver" "3.231.0" + "@aws-sdk/config-resolver" "3.234.0" "@aws-sdk/endpoint-cache" "3.208.0" "@aws-sdk/protocol-http" "3.226.0" "@aws-sdk/types" "3.226.0" @@ -388,7 +389,7 @@ "@aws-sdk/middleware-endpoint@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.226.0.tgz#d776480be4b5a9534c2805b7425be05497f840b7" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.226.0.tgz" integrity sha512-EvLFafjtUxTT0AC9p3aBQu1/fjhWdIeK58jIXaNFONfZ3F8QbEYUPuF/SqZvJM6cWfOO9qwYKkRDbCSTYhprIg== dependencies: "@aws-sdk/middleware-serde" "3.226.0" @@ -402,7 +403,7 @@ "@aws-sdk/middleware-host-header@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.226.0.tgz#1e1ecb034929e0dbc532ae501fd93781438f9a24" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.226.0.tgz" integrity sha512-haVkWVh6BUPwKgWwkL6sDvTkcZWvJjv8AgC8jiQuSl8GLZdzHTB8Qhi3IsfFta9HAuoLjxheWBE5Z/L0UrfhLA== dependencies: "@aws-sdk/protocol-http" "3.226.0" @@ -411,7 +412,7 @@ "@aws-sdk/middleware-logger@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.226.0.tgz#37fd0e62f555befd526b03748c3aab60dcefecf3" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.226.0.tgz" integrity sha512-m9gtLrrYnpN6yckcQ09rV7ExWOLMuq8mMPF/K3DbL/YL0TuILu9i2T1W+JuxSX+K9FMG2HrLAKivE/kMLr55xA== dependencies: "@aws-sdk/types" "3.226.0" @@ -419,28 +420,29 @@ "@aws-sdk/middleware-recursion-detection@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.226.0.tgz#e149b9138e94d2fa70e7752ba6b1ccb537009706" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.226.0.tgz" integrity sha512-mwRbdKEUeuNH5TEkyZ5FWxp6bL2UC1WbY+LDv6YjHxmSMKpAoOueEdtU34PqDOLrpXXxIGHDFmjeGeMfktyEcA== dependencies: "@aws-sdk/protocol-http" "3.226.0" "@aws-sdk/types" "3.226.0" tslib "^2.3.1" -"@aws-sdk/middleware-retry@3.229.0": - version "3.229.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.229.0.tgz#9df32a00e4183afa69d33745fd9f42b994e655d1" - integrity sha512-/y0BWio9b2RRH2QvRTohbuqE0vhH4IZKlc6k+JRbGV9aSwyOzACU/L/qkGftC/W0puvgNvZYjGxmB6cGHAEZaw== +"@aws-sdk/middleware-retry@3.235.0": + version "3.235.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.235.0.tgz" + integrity sha512-50WHbJGpD3SNp9763MAlHqIhXil++JdQbKejNpHg7HsJne/ao3ub+fDOfx//mMBjpzBV25BGd5UlfL6blrClSg== dependencies: "@aws-sdk/protocol-http" "3.226.0" "@aws-sdk/service-error-classification" "3.229.0" "@aws-sdk/types" "3.226.0" "@aws-sdk/util-middleware" "3.226.0" + "@aws-sdk/util-retry" "3.229.0" tslib "^2.3.1" uuid "^8.3.2" "@aws-sdk/middleware-sdk-sts@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.226.0.tgz#e8a8cf42bba8963259546120cde1e408628863f9" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.226.0.tgz" integrity sha512-NN9T/qoSD1kZvAT+VLny3NnlqgylYQcsgV3rvi/8lYzw/G/2s8VS6sm/VTWGGZhx08wZRv20MWzYu3bftcyqUg== dependencies: "@aws-sdk/middleware-signing" "3.226.0" @@ -452,7 +454,7 @@ "@aws-sdk/middleware-serde@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.226.0.tgz#c837ef33b34bec2af19a1c177a0c02a1ae20da5e" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.226.0.tgz" integrity sha512-nPuOOAkSfx9TxzdKFx0X2bDlinOxGrqD7iof926K/AEflxGD1DBdcaDdjlYlPDW2CVE8LV/rAgbYuLxh/E/1VA== dependencies: "@aws-sdk/types" "3.226.0" @@ -460,7 +462,7 @@ "@aws-sdk/middleware-signing@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.226.0.tgz#ebb1d142ac2767466f2e464bb7dba9837143b4d1" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.226.0.tgz" integrity sha512-E6HmtPcl+IjYDDzi1xI2HpCbBq2avNWcjvCriMZWuTAtRVpnA6XDDGW5GY85IfS3A8G8vuWqEVPr8JcYUcjfew== dependencies: "@aws-sdk/property-provider" "3.226.0" @@ -472,14 +474,14 @@ "@aws-sdk/middleware-stack@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.226.0.tgz#b0408370270188103987c457c758f9cf7651754f" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.226.0.tgz" integrity sha512-85wF29LvPvpoed60fZGDYLwv1Zpd/cM0C22WSSFPw1SSJeqO4gtFYyCg2squfT3KI6kF43IIkOCJ+L7GtryPug== dependencies: tslib "^2.3.1" "@aws-sdk/middleware-user-agent@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.226.0.tgz#26653189f3e8da86514f77688a80d0ad445c0799" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.226.0.tgz" integrity sha512-N1WnfzCW1Y5yWhVAphf8OPGTe8Df3vmV7/LdsoQfmpkCZgLZeK2o0xITkUQhRj1mbw7yp8tVFLFV3R2lMurdAQ== dependencies: "@aws-sdk/protocol-http" "3.226.0" @@ -488,7 +490,7 @@ "@aws-sdk/node-config-provider@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.226.0.tgz#a9e21512ef824142bb928a0b2f85b39a75b8964d" + resolved "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.226.0.tgz" integrity sha512-B8lQDqiRk7X5izFEUMXmi8CZLOKCTWQJU9HQf3ako+sF0gexo4nHN3jhoRWyLtcgC5S3on/2jxpAcqtm7kuY3w== dependencies: "@aws-sdk/property-provider" "3.226.0" @@ -498,7 +500,7 @@ "@aws-sdk/node-http-handler@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.226.0.tgz#373886e949d214a99a3521bd6c141fa17b0e89fe" + resolved "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.226.0.tgz" integrity sha512-xQCddnZNMiPmjr3W7HYM+f5ir4VfxgJh37eqZwX6EZmyItFpNNeVzKUgA920ka1VPz/ZUYB+2OFGiX3LCLkkaA== dependencies: "@aws-sdk/abort-controller" "3.226.0" @@ -509,7 +511,7 @@ "@aws-sdk/property-provider@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.226.0.tgz#ef0ff37c319dc37a52f08fa7544f861308a3bbd8" + resolved "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.226.0.tgz" integrity sha512-TsljjG+Sg0LmdgfiAlWohluWKnxB/k8xenjeozZfzOr5bHmNHtdbWv6BtNvD/R83hw7SFXxbJHlD5H4u9p2NFg== dependencies: "@aws-sdk/types" "3.226.0" @@ -517,7 +519,7 @@ "@aws-sdk/protocol-http@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.226.0.tgz#0af7bdc331508e556b722aad0cb78eefa93466e3" + resolved "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.226.0.tgz" integrity sha512-zWkVqiTA9RXL6y0hhfZc9bcU4DX2NI6Hw9IhQmSPeM59mdbPjJlY4bLlMr5YxywqO3yQ/ylNoAfrEzrDjlOSRg== dependencies: "@aws-sdk/types" "3.226.0" @@ -525,7 +527,7 @@ "@aws-sdk/querystring-builder@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.226.0.tgz#11cd751abeac66f1f9349225454bac3e39808926" + resolved "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.226.0.tgz" integrity sha512-LVurypuNeotO4lmirKXRC4NYrZRAyMJXuwO0f2a5ZAUJCjauwYrifKue6yCfU7bls7gut7nfcR6B99WBYpHs3g== dependencies: "@aws-sdk/types" "3.226.0" @@ -534,7 +536,7 @@ "@aws-sdk/querystring-parser@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.226.0.tgz#ba6a26727c98d46c95180e6cdc463039c5e4740d" + resolved "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.226.0.tgz" integrity sha512-FzB+VrQ47KAFxiPt2YXrKZ8AOLZQqGTLCKHzx4bjxGmwgsjV8yIbtJiJhZLMcUQV4LtGeIY9ixIqQhGvnZHE4A== dependencies: "@aws-sdk/types" "3.226.0" @@ -542,12 +544,12 @@ "@aws-sdk/service-error-classification@3.229.0": version "3.229.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.229.0.tgz#768f1eb92775ca2cc99c6451a2303a0008a28fc1" + resolved "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.229.0.tgz" integrity sha512-dnzWWQ0/NoWMUZ5C0DW3dPm0wC1O76Y/SpKbuJzWPkx1EYy6r8p32Ly4D9vUzrKDbRGf48YHIF2kOkBmu21CLg== "@aws-sdk/shared-ini-file-loader@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.226.0.tgz#d0ade86834b1803ce4b9dcab459e57e0376fd6cf" + resolved "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.226.0.tgz" integrity sha512-661VQefsARxVyyV2FX9V61V+nNgImk7aN2hYlFKla6BCwZfMng+dEtD0xVGyg1PfRw0qvEv5LQyxMVgHcUSevA== dependencies: "@aws-sdk/types" "3.226.0" @@ -555,7 +557,7 @@ "@aws-sdk/signature-v4@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.226.0.tgz#100390b5c5b55a9b0abd05b06fceb36cfa0ecf98" + resolved "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.226.0.tgz" integrity sha512-/R5q5agdPd7HJB68XMzpxrNPk158EHUvkFkuRu5Qf3kkkHebEzWEBlWoVpUe6ss4rP9Tqcue6xPuaftEmhjpYw== dependencies: "@aws-sdk/is-array-buffer" "3.201.0" @@ -565,21 +567,21 @@ "@aws-sdk/util-uri-escape" "3.201.0" tslib "^2.3.1" -"@aws-sdk/smithy-client@3.226.0": - version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.226.0.tgz#d6869ca3627ca33024616c0ec3f707981e080d59" - integrity sha512-BWr1FhWSUhkSBp0TLzliD5AQBjA2Jmo9FlOOt+cBwd9BKkSGlGj+HgATYJ83Sjjg2+J6qvEZBxB78LKVHhorBw== +"@aws-sdk/smithy-client@3.234.0": + version "3.234.0" + resolved "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.234.0.tgz" + integrity sha512-8AtR/k4vsFvjXeQbIzq/Wy7Nbk48Ou0wUEeVYPHWHPSU8QamFWORkOwmKtKMfHAyZvmqiAPeQqHFkq+UJhWyyQ== dependencies: "@aws-sdk/middleware-stack" "3.226.0" "@aws-sdk/types" "3.226.0" tslib "^2.3.1" -"@aws-sdk/token-providers@3.231.0": - version "3.231.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.231.0.tgz#1eb789df3689942af9327baa056f3adf91389d44" - integrity sha512-sxx6X/moSdukyrnoBtLxmgQQLWqixMc/qAM5yNg5lfNoGamWslH6CnT1HlxTFv71q8/1xwnvZ4LC2kbD6vDc6Q== +"@aws-sdk/token-providers@3.245.0": + version "3.245.0" + resolved "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.245.0.tgz" + integrity sha512-m/spXR/vEXGb+zMqRUMQYVMwFZSTdK5RkddYqamYkNhIoLm60EYeRu57JsMMs5djKi8dBRSKiXwVHx0l2rXMjg== dependencies: - "@aws-sdk/client-sso-oidc" "3.231.0" + "@aws-sdk/client-sso-oidc" "3.245.0" "@aws-sdk/property-provider" "3.226.0" "@aws-sdk/shared-ini-file-loader" "3.226.0" "@aws-sdk/types" "3.226.0" @@ -587,14 +589,14 @@ "@aws-sdk/types@3.226.0", "@aws-sdk/types@^3.1.0", "@aws-sdk/types@^3.110.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.226.0.tgz#3dba2ba223fbb8ac1ebc84de0e036ce69a81d469" + resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.226.0.tgz" integrity sha512-MmmNHrWeO4man7wpOwrAhXlevqtOV9ZLcH4RhnG5LmRce0RFOApx24HoKENfFCcOyCm5LQBlsXCqi0dZWDWU0A== dependencies: tslib "^2.3.1" "@aws-sdk/url-parser@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.226.0.tgz#f53d1f868b27fe74aca091a799f2af56237b15a2" + resolved "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.226.0.tgz" integrity sha512-p5RLE0QWyP0OcTOLmFcLdVgUcUEzmEfmdrnOxyNzomcYb0p3vUagA5zfa1HVK2azsQJFBv28GfvMnba9bGhObg== dependencies: "@aws-sdk/querystring-parser" "3.226.0" @@ -603,7 +605,7 @@ "@aws-sdk/util-base64@3.208.0": version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz#36b430e5396251f761590f7c2f0c5c12193f353c" + resolved "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz" integrity sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg== dependencies: "@aws-sdk/util-buffer-from" "3.208.0" @@ -611,21 +613,21 @@ "@aws-sdk/util-body-length-browser@3.188.0": version "3.188.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz#e1d949318c10a621b38575a9ef01e39f9857ddb0" + resolved "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz" integrity sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg== dependencies: tslib "^2.3.1" "@aws-sdk/util-body-length-node@3.208.0": version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz#baabd1fa1206ff2bd4ce3785122d86eb3258dd20" + resolved "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz" integrity sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg== dependencies: tslib "^2.3.1" "@aws-sdk/util-buffer-from@3.208.0": version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz#285e86f6dc9030148a4147d65239e75cb254a1b0" + resolved "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz" integrity sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw== dependencies: "@aws-sdk/is-array-buffer" "3.201.0" @@ -633,27 +635,27 @@ "@aws-sdk/util-config-provider@3.208.0": version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz#c485fd83fbac051337e5f6be60ea3f9fa61c0139" + resolved "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz" integrity sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg== dependencies: tslib "^2.3.1" -"@aws-sdk/util-defaults-mode-browser@3.226.0": - version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.226.0.tgz#f6f3092463533f33d95d0bdb17fc5c511ad2b072" - integrity sha512-chLx+6AeMSjuPsCVbI1B4Pg3jftjjcsuTsJucjo0DKBb1VSWqPCitmOILQVvKiA2Km8TSs3VcbUuOCyDExkzAg== +"@aws-sdk/util-defaults-mode-browser@3.234.0": + version "3.234.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.234.0.tgz" + integrity sha512-IHMKXjTbOD8XMz5+2oCOsVP94BYb9YyjXdns0aAXr2NAo7k2+RCzXQ2DebJXppGda1F6opFutoKwyVSN0cmbMw== dependencies: "@aws-sdk/property-provider" "3.226.0" "@aws-sdk/types" "3.226.0" bowser "^2.11.0" tslib "^2.3.1" -"@aws-sdk/util-defaults-mode-node@3.231.0": - version "3.231.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.231.0.tgz#6cdf6b633543950667c94657f6df0f8ca86182e2" - integrity sha512-jH+9z96x8Oxv+bqBdD7x8CRvbKzM9id+VHzI9+h1oTY9J+6MkUubPshliBTQeus5pD03NBOS/2F3GX2rJ9Avuw== +"@aws-sdk/util-defaults-mode-node@3.234.0": + version "3.234.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.234.0.tgz" + integrity sha512-UGjQ+OjBYYhxFVtUY+jtr0ZZgzZh6OHtYwRhFt8IHewJXFCfZTyfsbX20szBj5y1S4HRIUJ7cwBLIytTqMbI5w== dependencies: - "@aws-sdk/config-resolver" "3.231.0" + "@aws-sdk/config-resolver" "3.234.0" "@aws-sdk/credential-provider-imds" "3.226.0" "@aws-sdk/node-config-provider" "3.226.0" "@aws-sdk/property-provider" "3.226.0" @@ -661,44 +663,44 @@ tslib "^2.3.1" "@aws-sdk/util-dynamodb@^3.183.0": - version "3.231.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-dynamodb/-/util-dynamodb-3.231.0.tgz#ddc11336902edb85be172b6c52782d7536d84a59" - integrity sha512-7+Mj3wBqUdgV0U+9Va+89qafclXhEsjULTbfNdfic4C3PVtcRb1B5on5EPg3g2r3OlDoJBYFjoyW4CAro7TCiA== + version "3.245.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-dynamodb/-/util-dynamodb-3.245.0.tgz" + integrity sha512-Wx06Ey92DRRSQTFfpQs1DkHSoajcwVu2TLWTg07yHXgGxdi6EveJPNqh111ot5yzHGmzPIHas/IPZe3hDttzcw== dependencies: tslib "^2.3.1" -"@aws-sdk/util-endpoints@3.226.0": - version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.226.0.tgz#3728b2e30f6f757ae862a0b7cf3991e75f252c3f" - integrity sha512-iqOkac/zLmyPBUJd7SLN0PeZMkOmlGgD5PHmmekTClOkce2eUjK9SNX1PzL73aXPoPTyhg9QGLH8uEZEQ8YUzg== +"@aws-sdk/util-endpoints@3.245.0": + version "3.245.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.245.0.tgz" + integrity sha512-UNOFquB1tKx+8RT8n82Zb5tIwDyZHVPBg/m0LB0RsLETjr6krien5ASpqWezsXKIR1hftN9uaxN4bvf2dZrWHg== dependencies: "@aws-sdk/types" "3.226.0" tslib "^2.3.1" "@aws-sdk/util-hex-encoding@3.201.0": version "3.201.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz#21d7ec319240ee68c33d938e71cb79830bea315d" + resolved "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz" integrity sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA== dependencies: tslib "^2.3.1" "@aws-sdk/util-locate-window@^3.0.0": version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz#0f598fc238a1256e4bcb64d01459f03a922dd4c3" + resolved "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.208.0.tgz" integrity sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg== dependencies: tslib "^2.3.1" "@aws-sdk/util-middleware@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.226.0.tgz#7069ae96e2e00f6bb82c722e073922fb2b051ca2" + resolved "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.226.0.tgz" integrity sha512-B96CQnwX4gRvQdaQkdUtqvDPkrptV5+va6FVeJOocU/DbSYMAScLxtR3peMS8cnlOT6nL1Eoa42OI9AfZz1VwQ== dependencies: tslib "^2.3.1" "@aws-sdk/util-retry@3.229.0": version "3.229.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-retry/-/util-retry-3.229.0.tgz#17aad47b067e81acf644d5c2c0f2325f2d8faf4f" + resolved "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.229.0.tgz" integrity sha512-0zKTqi0P1inD0LzIMuXRIYYQ/8c1lWMg/cfiqUcIAF1TpatlpZuN7umU0ierpBFud7S+zDgg0oemh+Nj8xliJw== dependencies: "@aws-sdk/service-error-classification" "3.229.0" @@ -706,14 +708,14 @@ "@aws-sdk/util-uri-escape@3.201.0": version "3.201.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz#5e708d4cde001a4558ee616f889ceacfadd2ab03" + resolved "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz" integrity sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA== dependencies: tslib "^2.3.1" "@aws-sdk/util-user-agent-browser@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.226.0.tgz#164bb2da8d6353133784e47f0a0ae463bc9ebb73" + resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.226.0.tgz" integrity sha512-PhBIu2h6sPJPcv2I7ELfFizdl5pNiL4LfxrasMCYXQkJvVnoXztHA1x+CQbXIdtZOIlpjC+6BjDcE0uhnpvfcA== dependencies: "@aws-sdk/types" "3.226.0" @@ -722,7 +724,7 @@ "@aws-sdk/util-user-agent-node@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.226.0.tgz#7569460b9efc6bbd5295275c51357e480ff469c2" + resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.226.0.tgz" integrity sha512-othPc5Dz/pkYkxH+nZPhc1Al0HndQT8zHD4e9h+EZ+8lkd8n+IsnLfTS/mSJWrfiC6UlNRVw55cItstmJyMe/A== dependencies: "@aws-sdk/node-config-provider" "3.226.0" @@ -731,14 +733,14 @@ "@aws-sdk/util-utf8-browser@3.188.0", "@aws-sdk/util-utf8-browser@^3.0.0": version "3.188.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz#484762bd600401350e148277731d6744a4a92225" + resolved "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz" integrity sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q== dependencies: tslib "^2.3.1" "@aws-sdk/util-utf8-node@3.208.0": version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz#eba17de0f92f87b98481c2e2d0ceaa05c7994d67" + resolved "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz" integrity sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ== dependencies: "@aws-sdk/util-buffer-from" "3.208.0" @@ -746,7 +748,7 @@ "@aws-sdk/util-waiter@3.226.0": version "3.226.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-waiter/-/util-waiter-3.226.0.tgz#6715afd59748cbc610ddfbc5e21124b20a7e85ac" + resolved "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.226.0.tgz" integrity sha512-qYQMRxnu5k8qQihJXoIWMkBOj0+XkHHj/drLdbRnwL6ni6NcG8++cs9M3DSjIcxmxgF/7SLpDjn1H3sC7cYo4g== dependencies: "@aws-sdk/abort-controller" "3.226.0" @@ -755,22 +757,30 @@ "@cspotcode/source-map-support@^0.8.0": version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== dependencies: "@jridgewell/trace-mapping" "0.3.9" "@grpc/grpc-js@^1.7.1": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.8.0.tgz#ebfbeff2b76e2991f2831e46cad27fa573396555" - integrity sha512-ySMTXQuMvvswoobvN+0LsaPf7ITO2JVfJmHxQKI4cGehNrrUms+n81BlHEX7Hl/LExji6XE3fnI9U04GSkRruA== + version "1.8.3" + resolved "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.3.tgz" + integrity sha512-1oO40SPA9nyBEsSMg0Mq7aMxQMVH009NJLG4HeMPQ7kdDGWuC5fI6dmEjaEJzUbtmC1S2leLaDRMB4ByZ1cFew== + dependencies: + "@grpc/proto-loader" "^0.7.0" + "@types/node" ">=12.12.47" + +"@grpc/grpc-js@^1.8.0": + version "1.8.4" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.8.4.tgz#316674e8905e2dd310d8aa60331e05b32584e6ad" + integrity sha512-oaETBotls7FTBpySg5dhyUCyXSxSeCMmkBBXHXG1iw57MiNoB6D7VRhkrXYbwyHM3Q3Afjp4KlsBX0Zb+ELZXw== dependencies: "@grpc/proto-loader" "^0.7.0" "@types/node" ">=12.12.47" "@grpc/proto-loader@^0.7.0": version "0.7.4" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.4.tgz#4946a84fbf47c3ddd4e6a97acb79d69a9f47ebf2" + resolved "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.4.tgz" integrity sha512-MnWjkGwqQ3W8fx94/c1CwqLsNmHHv2t0CFn+9++6+cDphC1lolpg9M2OU0iebIjK//pBNX9e94ho+gjx6vz39w== dependencies: "@types/long" "^4.0.1" @@ -781,17 +791,17 @@ "@jridgewell/resolve-uri@^3.0.3": version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== "@jridgewell/trace-mapping@0.3.9": version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== dependencies: "@jridgewell/resolve-uri" "^3.0.3" @@ -799,27 +809,27 @@ "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== "@protobufjs/base64@^1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + resolved "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz" integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== "@protobufjs/codegen@^2.0.4": version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + resolved "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz" integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== "@protobufjs/eventemitter@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + resolved "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz" integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== "@protobufjs/fetch@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + resolved "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz" integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== dependencies: "@protobufjs/aspromise" "^1.1.1" @@ -827,104 +837,223 @@ "@protobufjs/float@^1.0.2": version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + resolved "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz" integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== "@protobufjs/inquire@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + resolved "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz" integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== "@protobufjs/path@^1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + resolved "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz" integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== "@protobufjs/pool@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + resolved "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz" integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== "@protobufjs/utf8@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@topcoder-framework/domain-acl@^0.4.21-ci.0": + version "0.4.21-ci.0" + resolved "http://localhost:4873/@topcoder-framework%2fdomain-acl/-/domain-acl-0.4.21-ci.0.tgz#819e0cbfc66231929b2c74ff07280f5b71533b5c" + integrity sha512-gqyDJSTPi12Gr51oNj1WhQLatzY3xowOUvrMBECEOypWhH3FG3aNaMyZkr/eonOjRG11AqigRnt5sXuxKYdHKw== + dependencies: + "@grpc/grpc-js" "^1.8.0" + "@topcoder-framework/lib-common" "0.4.21-ci.0" + topcoder-interface "github:topcoder-platform/plat-interface-definition#v0.0.10" + tslib "^2.4.1" + +"@topcoder-framework/lib-common@0.4.21-ci.0": + version "0.4.21-ci.0" + resolved "http://localhost:4873/@topcoder-framework%2flib-common/-/lib-common-0.4.21-ci.0.tgz#4a402815f4fccc380ce79c5980efc712649daf82" + integrity sha512-BreCcLPL1sqlJiyESjIPVLGznPQBv294hEQBXfxb3a+Vr4JmD7gHkJyo8UM6fvKkHEXnaznXKIfSXJ8v0D0cew== + dependencies: + "@grpc/grpc-js" "^1.8.0" + rimraf "^3.0.2" + topcoder-interface "github:topcoder-platform/plat-interface-definition#v0.0.10" + tslib "^2.4.1" + "@tsconfig/node10@^1.0.7": version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== "@tsconfig/node12@^1.0.7": version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== "@tsconfig/node14@^1.0.0": version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz" integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/express-jwt@0.0.42": + version "0.0.42" + resolved "https://registry.yarnpkg.com/@types/express-jwt/-/express-jwt-0.0.42.tgz#4f04e1fadf9d18725950dc041808a4a4adf7f5ae" + integrity sha512-WszgUddvM1t5dPpJ3LhWNH8kfNN8GPIBrAGxgIYXVCEGx6Bx4A036aAuf/r5WH9DIEdlmp7gHOYvSM6U87B0ag== + dependencies: + "@types/express" "*" + "@types/express-unless" "*" + +"@types/express-serve-static-core@^4.17.31": + version "4.17.32" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz#93dda387f5516af616d8d3f05f2c4c79d81e1b82" + integrity sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express-unless@*": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/express-unless/-/express-unless-2.0.1.tgz#7d5728315caf95a315a6bcc19ac99f6a8becbe49" + integrity sha512-PJLiNw03EjkWDkQbhNjIXXDLObC3eMQhFASDV+WakFbT8eL7YdjlbV6MXd3Av5Lejq499d6pFuV1jyK+EHyG3Q== + dependencies: + express-unless "*" + +"@types/express@*": + version "4.17.15" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.15.tgz#9290e983ec8b054b65a5abccb610411953d417ff" + integrity sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.31" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/lodash@^4.14.191": + version "4.14.191" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" + integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== + "@types/long@^4.0.1": version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + resolved "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz" integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== -"@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^18.11.17": - version "18.11.17" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.17.tgz#5c009e1d9c38f4a2a9d45c0b0c493fe6cdb4bcb5" - integrity sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng== +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^18.11.17": + version "18.11.18" + resolved "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz" + integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== "@types/object-hash@^1.3.0": version "1.3.4" - resolved "https://registry.yarnpkg.com/@types/object-hash/-/object-hash-1.3.4.tgz#079ba142be65833293673254831b5e3e847fe58b" + resolved "https://registry.npmjs.org/@types/object-hash/-/object-hash-1.3.4.tgz" integrity sha512-xFdpkAkikBgqBdG9vIlsqffDV8GpvnPEzs0IUtr1v3BEB97ijsFQ4RXVbUZwjFThhB4MDSTUfvmxUD5PGx0wXA== +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/serve-static@*": + version "1.15.0" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155" + integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg== + dependencies: + "@types/mime" "*" + "@types/node" "*" + "@types/strip-bom@^3.0.0": version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" + resolved "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz" integrity sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ== "@types/strip-json-comments@0.0.30": version "0.0.30" - resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" + resolved "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz" integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== "@types/uuid@8.3.4": version "8.3.4" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" + resolved "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz" integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== acorn-walk@^8.1.1: version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== acorn@^8.4.1: version "8.8.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz" integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +ajv@^6.12.3: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^4.0.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -932,27 +1061,98 @@ anymatch@~3.1.2: arg@^4.1.0: version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" + integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== + +axios@^0.19.0: + version "0.19.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" + integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== + dependencies: + follow-redirects "1.5.10" + +axios@^0.21.1: + version "0.21.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" + integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== + dependencies: + follow-redirects "^1.14.0" + +axios@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.2.tgz#72681724c6e6a43a9fea860fc558127dbe32f9f1" + integrity sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +babel-runtime@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.6.1.tgz#788b94b6f634e25b91bd6c5df72d467457afb000" + integrity sha512-5pdhO3jaxqh9L42oBfbrqy58swDhciM47sRGoODURdRxwfiqttEvK87LX27W/PYY6f4cJt2mEdyoLcr/+cM/iw== + dependencies: + core-js "^2.1.0" + +backoff@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f" + integrity sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA== + dependencies: + precond "0.2" + balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== bowser@^2.11.0: version "2.11.0" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" + resolved "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz" integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -960,24 +1160,44 @@ brace-expansion@^1.1.7: braces@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +bunyan@^1.8.12: + version "1.8.15" + resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.15.tgz#8ce34ca908a17d0776576ca1b2f6cbd916e93b46" + integrity sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig== + optionalDependencies: + dtrace-provider "~0.8" + moment "^2.19.3" + mv "~2" + safe-json-stringify "~1" + case-anything@^2.1.10: version "2.1.10" - resolved "https://registry.yarnpkg.com/case-anything/-/case-anything-2.1.10.tgz#d18a6ca968d54ec3421df71e3e190f3bced23410" + resolved "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz" integrity sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ== +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + chokidar@^3.5.1: version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" @@ -992,128 +1212,288 @@ chokidar@^3.5.1: cliui@^7.0.2: version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +codependency@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/codependency/-/codependency-0.1.4.tgz#d1763ab7264bd70c91d9626e98862d3792bf8d4a" + integrity sha512-26yAvd3+17xSfDADtnzpnL5GK+8+x4QeZ3DegekkHyno6LWeHqXuSU7q8w/IrAur7SY6ISPApOWtWTfuIF0Xpg== + dependencies: + semver "5.0.1" + color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.20.3: + version "2.20.3" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +core-js@^2.1.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + create-require@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +cssfilter@0.0.10: + version "0.0.10" + resolved "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz" + integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + dataloader@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-1.4.0.tgz#bca11d867f5d3f1b9ed9f737bd15970c65dff5c8" + resolved "https://registry.npmjs.org/dataloader/-/dataloader-1.4.0.tgz" integrity sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw== -dayjs@^1.11.5: - version "1.11.7" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" - integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== +debug@4, debug@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@=3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== detect-libc@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== diff@^4.0.1: version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== dotenv@^16.0.3: version "16.0.3" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz" integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== dprint-node@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/dprint-node/-/dprint-node-1.0.7.tgz#f571eaf61affb3a696cff1bdde78a021875ba540" + resolved "https://registry.npmjs.org/dprint-node/-/dprint-node-1.0.7.tgz" integrity sha512-NTZOW9A7ipb0n7z7nC3wftvsbceircwVHSgzobJsEQa+7RnOMbhrfX5IflA6CtC4GA63DSAiHYXa4JKEy9F7cA== dependencies: detect-libc "^1.0.3" +dtrace-provider@~0.8: + version "0.8.8" + resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.8.tgz#2996d5490c37e1347be263b423ed7b297fb0d97e" + integrity sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg== + dependencies: + nan "^2.14.0" + dynamic-dedupe@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz#06e44c223f5e4e94d78ef9db23a6515ce2f962a1" + resolved "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz" integrity sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ== dependencies: xtend "^4.0.0" +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== escalade@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +express-unless@*: + version "2.1.3" + resolved "https://registry.yarnpkg.com/express-unless/-/express-unless-2.1.3.tgz#f951c6cca52a24da3de32d42cfd4db57bc0f9a2e" + integrity sha512-wj4tLMyCVYuIIKHGt0FhCtIViBcwzWejX0EjNxveAa6dG+0XBCQhMbx+PnkLkFCxLC69qoFrxds4pIyL88inaQ== + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + fast-xml-parser@4.0.11: version "4.0.11" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz#42332a9aca544520631c8919e6ea871c0185a985" + resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz" integrity sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA== dependencies: strnum "^1.0.5" fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== + dependencies: + debug "=3.1.0" + +follow-redirects@^1.14.0, follow-redirects@^1.15.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" + glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" +glob@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + integrity sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A== + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^7.1.3: version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -1125,26 +1505,65 @@ glob@^7.1.3: google-protobuf@^3.19.1: version "3.21.2" - resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.2.tgz#4580a2bea8bbb291ee579d1fefb14d6fa3070ea4" + resolved "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz" integrity sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA== grpc-server-reflection@^0.1.5: version "0.1.5" - resolved "https://registry.yarnpkg.com/grpc-server-reflection/-/grpc-server-reflection-0.1.5.tgz#76ba71649fd71b0ebae7d5254ddc781ba61054d0" + resolved "https://registry.npmjs.org/grpc-server-reflection/-/grpc-server-reflection-0.1.5.tgz" integrity sha512-i69RYu6v65enzknNAPUgerFuVQfo+L3n9g4c1A/Sv5jUHMpxMIjSbBA+YWls9Sr4Flac4oohp4Gx8f389CaHuw== dependencies: google-protobuf "^3.19.1" +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + has@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" @@ -1152,71 +1571,243 @@ inflight@^1.0.4: inherits@2: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-core-module@^2.9.0: version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz" integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== dependencies: has "^1.0.3" is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stringify-safe@5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +jsonwebtoken@^8.5.1: + version "8.5.1" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^5.6.0" + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jwks-rsa@^1.6.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/jwks-rsa/-/jwks-rsa-1.12.3.tgz#40232f85d16734cb82837f38bb3e350a34435400" + integrity sha512-cFipFDeYYaO9FhhYJcZWX/IyZgc0+g316rcHnDpT2dNRNIE/lMOmWKKqp09TkJoYlNFzrEVODsR4GgXJMgWhnA== + dependencies: + "@types/express-jwt" "0.0.42" + axios "^0.21.1" + debug "^4.1.0" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + jsonwebtoken "^8.5.1" + limiter "^1.1.5" + lru-memoizer "^2.1.2" + ms "^2.1.2" + proxy-from-env "^1.1.0" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +limiter@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.5.tgz#8f92a25b3b16c6131293a0cc834b4a838a2aa7c2" + integrity sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA== + lodash.camelcase@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== -lodash@^4.17.21: +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== + +lodash@4.17.15: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== long@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + resolved "https://registry.npmjs.org/long/-/long-4.0.0.tgz" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== long@^5.0.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/long/-/long-5.2.1.tgz#e27595d0083d103d2fa2c20c7699f8e0c92b897f" + resolved "https://registry.npmjs.org/long/-/long-5.2.1.tgz" integrity sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A== +lru-cache@~4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" + integrity sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw== + dependencies: + pseudomap "^1.0.1" + yallist "^2.0.0" + +lru-memoizer@^2.1.2: + version "2.1.4" + resolved "https://registry.yarnpkg.com/lru-memoizer/-/lru-memoizer-2.1.4.tgz#b864d92b557f00b1eeb322156a0409cb06dafac6" + integrity sha512-IXAq50s4qwrOBrXJklY+KhgZF+5y98PDaNo0gi/v2KQBFLyWr+JyFvijZXkGKjQj/h9c0OwoE+JZbwUXce76hQ== + dependencies: + lodash.clonedeep "^4.5.0" + lru-cache "~4.0.0" + make-error@^1.1.1: version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -minimatch@^3.1.1: +millisecond@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/millisecond/-/millisecond-0.1.2.tgz#6cc5ad386241cab8e78aff964f87028eec92dac5" + integrity sha512-BJ8XtxY+woL+5TkP6uS6XvOArm0JVrX2otkgtWZseHpIax0oOOPW3cnwhOjRqbEJg7YRO/BDF7fO/PTWNT3T9Q== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@~2.1.19: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +"minimatch@2 || 3", minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -1225,61 +1816,122 @@ minimatch@^3.1.1: minimist@^1.2.6: version "1.2.7" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz" integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mkdirp@~0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + mnemonist@0.38.3: version "0.38.3" - resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.3.tgz#35ec79c1c1f4357cfda2fe264659c2775ccd7d9d" + resolved "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz" integrity sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw== dependencies: obliterator "^1.6.1" +moment@^2.19.3: + version "2.29.4" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" + integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1, ms@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mv@~2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" + integrity sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg== + dependencies: + mkdirp "~0.5.1" + ncp "~2.0.0" + rimraf "~2.4.0" + +nan@^2.14.0: + version "2.17.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" + integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== + +ncp@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" + integrity sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA== + normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + object-hash@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" + resolved "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz" integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== obliterator@^1.6.1: version "1.6.1" - resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-1.6.1.tgz#dea03e8ab821f6c4d96a299e17aef6a3af994ef3" + resolved "https://registry.npmjs.org/obliterator/-/obliterator-1.6.1.tgz" integrity sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig== once@^1.3.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + picomatch@^2.0.4, picomatch@^2.2.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +precond@0.2: + version "0.2.3" + resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac" + integrity sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ== + protobufjs@^6.11.3, protobufjs@^6.8.8: version "6.11.3" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" + resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz" integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== dependencies: "@protobufjs/aspromise" "^1.1.2" @@ -1298,7 +1950,7 @@ protobufjs@^6.11.3, protobufjs@^6.8.8: protobufjs@^7.0.0: version "7.1.2" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.1.2.tgz#a0cf6aeaf82f5625bffcf5a38b7cd2a7de05890c" + resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz" integrity sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ== dependencies: "@protobufjs/aspromise" "^1.1.2" @@ -1314,21 +1966,91 @@ protobufjs@^7.0.0: "@types/node" ">=13.7.0" long "^5.0.0" +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +pseudomap@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + +psl@^1.1.28: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +punycode@^2.1.0, punycode@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.2.0.tgz#2092cc57cd2582c38e4e7e8bb869dc8d3148bc74" + integrity sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw== + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +r7insight_node@^1.8.4: + version "1.8.4" + resolved "https://registry.yarnpkg.com/r7insight_node/-/r7insight_node-1.8.4.tgz#875633032137545b3cc7c80763baf09f6ba66801" + integrity sha512-6cQrzLkaOxdv/SRFXWRJjgFr8a3nXUOT/4IMFuBv+mWzBnu5DJl+HzONAsWYvclrlZnvfa54PaIPqPuPRSlbrQ== + dependencies: + babel-runtime "6.6.1" + codependency "0.1.4" + json-stringify-safe "5.0.1" + lodash "4.17.15" + reconnect-core "1.3.0" + semver "5.1.0" + readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" +reconnect-core@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/reconnect-core/-/reconnect-core-1.3.0.tgz#fbae52919a7877d844e3246d01a2f26701c833c8" + integrity sha512-+gLKwmyRf2tjl6bLR03DoeWELzyN6LW9Xgr3vh7NXHHwPi0JC0N2TwPyf90oUEBkCRcD+bgQ+s3HORoG3nwHDg== + dependencies: + backoff "~2.5.0" + +request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== resolve@^1.0.0: version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: is-core-module "^2.9.0" @@ -1337,14 +2059,58 @@ resolve@^1.0.0: rimraf@^2.6.1: version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rimraf@~2.4.0: + version "2.4.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" + integrity sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ== + dependencies: + glob "^6.0.1" + +safe-buffer@^5.0.1, safe-buffer@^5.1.2: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-json-stringify@~1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" + integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg== + +safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +semver@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.1.tgz#9fb3f4004f900d83c47968fe42f7583e05832cc9" + integrity sha512-Ne6/HdGZvvpXBdjW3o8J0pvxC2jnmVNBK7MKkMgsOBfrsIdTXfA5x+H9DUbQ2xzyvnLv0A0v9x8R4B40xNZIRQ== + +semver@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.1.0.tgz#85f2cf8550465c4df000cf7d86f6b054106ab9e5" + integrity sha512-sfKXKhcz5XVyfUZa2V4RbjK0xjOJCMLNF9H4p4v0UCo9wNHM/lH9RDuyDbGEtxWLMDlPBc8xI7AbbVLKXty+rQ== + +semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + source-map-support@^0.5.12, source-map-support@^0.5.21: version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" @@ -1352,12 +2118,27 @@ source-map-support@^0.5.12, source-map-support@^0.5.21: source-map@^0.6.0: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +sshpk@^1.7.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -1366,50 +2147,75 @@ string-width@^4.1.0, string-width@^4.2.0: strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-json-comments@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== strnum@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + resolved "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz" integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +tc-core-library-js@appirio-tech/tc-core-library-js.git#v2.6.4: + version "2.4.1" + resolved "https://codeload.github.com/appirio-tech/tc-core-library-js/tar.gz/df0b36c51cf80918194cbff777214b3c0cf5a151" + dependencies: + axios "^0.19.0" + bunyan "^1.8.12" + jsonwebtoken "^8.5.1" + jwks-rsa "^1.6.0" + lodash "^4.17.15" + millisecond "^0.1.2" + r7insight_node "^1.8.4" + request "^2.88.0" + to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" -"topcoder-interface@github:topcoder-platform/plat-interface-definition#v0.0.4": +"topcoder-interface@github:topcoder-platform/plat-interface-definition#v0.0.10": version "1.0.0" - resolved "https://codeload.github.com/topcoder-platform/plat-interface-definition/tar.gz/92836980d5132c341bc0479c3283710dc112582e" + resolved "https://codeload.github.com/topcoder-platform/plat-interface-definition/tar.gz/83db3ad5ac053393f8d9aa975dfe067fd8942add" + +"topcoder-interface@github:topcoder-platform/plat-interface-definition#v0.0.9": + version "1.0.0" + resolved "https://codeload.github.com/topcoder-platform/plat-interface-definition/tar.gz/ae96fdce7b4bbf811504edf12d6da23abd8dfe52" + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" tree-kill@^1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== ts-node-dev@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ts-node-dev/-/ts-node-dev-2.0.0.tgz#bdd53e17ab3b5d822ef519928dc6b4a7e0f13065" + resolved "https://registry.npmjs.org/ts-node-dev/-/ts-node-dev-2.0.0.tgz" integrity sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w== dependencies: chokidar "^3.5.1" @@ -1425,7 +2231,7 @@ ts-node-dev@^2.0.0: ts-node@^10.4.0: version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz" integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== dependencies: "@cspotcode/source-map-support" "^0.8.0" @@ -1444,23 +2250,23 @@ ts-node@^10.4.0: ts-poet@^6.2.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/ts-poet/-/ts-poet-6.3.0.tgz#954f2a6923ccaa2d4cdf55979f2e991d440e30a3" + resolved "https://registry.npmjs.org/ts-poet/-/ts-poet-6.3.0.tgz" integrity sha512-RjS37SnXMa9En8xvQf//+rvNNNCB7x2TKP/ZfsiQFidtfN3A6FYgPDESe4r7YA3F663XO2ozx+2buQItGOLMxg== dependencies: dprint-node "^1.0.7" ts-proto-descriptors@1.7.1: version "1.7.1" - resolved "https://registry.yarnpkg.com/ts-proto-descriptors/-/ts-proto-descriptors-1.7.1.tgz#685d00305b06adfa929fd5a016a419382cd64c50" + resolved "https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-1.7.1.tgz" integrity sha512-oIKUh3K4Xts4v29USGLfUG+2mEk32MsqpgZAOUyUlkrcIdv34yE+k2oZ2Nzngm6cV/JgFdOxRCqeyvmWHuYAyw== dependencies: long "^4.0.0" protobufjs "^6.8.8" ts-proto@^1.126.1: - version "1.136.1" - resolved "https://registry.yarnpkg.com/ts-proto/-/ts-proto-1.136.1.tgz#c5b81846de96e3e75540995190d2435bea6d561f" - integrity sha512-amnm7CUOsBkXtzSP9eY+bIlm9CZcmkle3p+9pm3dGbQ71Pi85AmqeC6F9+5u0kYZwqrcr0Sgaz9QeYKOyphfQA== + version "1.138.0" + resolved "https://registry.npmjs.org/ts-proto/-/ts-proto-1.138.0.tgz" + integrity sha512-C12rKQdzV2/7ncusEkcyO6Z3EK+04TfZSVdRwmhwkrNcwcktm3Azg7NKBpDTgvpktGQ4nTTPRSlO5CGTkx1zJg== dependencies: "@types/object-hash" "^1.3.0" case-anything "^2.1.10" @@ -1472,7 +2278,7 @@ ts-proto@^1.126.1: tsconfig@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" + resolved "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz" integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== dependencies: "@types/strip-bom" "^3.0.0" @@ -1482,27 +2288,51 @@ tsconfig@^7.0.0: tslib@^1.11.1: version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.3.1: +tslib@^2.3.1, tslib@^2.4.1: version "2.4.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz" integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + typescript@^4.9.4: version "4.9.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz" integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + uuid@8.3.2, uuid@^8.3.2: version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + uuidv4@^6.2.13: version "6.2.13" - resolved "https://registry.yarnpkg.com/uuidv4/-/uuidv4-6.2.13.tgz#8f95ec5ef22d1f92c8e5d4c70b735d1c89572cb7" + resolved "https://registry.npmjs.org/uuidv4/-/uuidv4-6.2.13.tgz" integrity sha512-AXyzMjazYB3ovL3q051VLH06Ixj//Knx7QnUSi1T//Ie3io6CpsPu9nVMOx5MoLWh6xV0B9J0hIaxungxXUbPQ== dependencies: "@types/uuid" "8.3.4" @@ -1510,12 +2340,21 @@ uuidv4@^6.2.13: v8-compile-cache-lib@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -1524,27 +2363,40 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +xss@^1.0.14: + version "1.0.14" + resolved "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz" + integrity sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw== + dependencies: + commander "^2.20.3" + cssfilter "0.0.10" + xtend@^4.0.0: version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== +yallist@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + yargs-parser@^20.2.2: version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== yargs@^16.2.0: version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: cliui "^7.0.2" @@ -1557,5 +2409,5 @@ yargs@^16.2.0: yn@3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==