diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..ebf575f --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,50 @@ +version: 2.1 + +jobs: + publish-image: + docker: + - image: cimg/aws:2023.01 + environment: + CODEARTIFACT_ENV: PROD + ECR_ENV: QA + SERVICE_NAME: "anticorruption-layer" + OUT_DIR: "buildscripts" + steps: + - checkout + - setup_remote_docker: + docker_layer_caching: true + - run: + name: "Setup deploy scripts" + command: | + git clone -b v1.4 https://github.com/topcoder-platform/tc-deploy-scripts ../${OUT_DIR} + cp ./../${OUT_DIR}/awsconfiguration.sh . + - run: + name: "Authenticate with AWS CodeArtifact and Build Docker Image" + command: | + ./awsconfiguration.sh ${CODEARTIFACT_ENV} + source awsenvconf + aws codeartifact login --tool npm --repository topcoder-framework --domain topcoder --domain-owner $AWS_ACCOUNT_ID --region $AWS_REGION --namespace @topcoder-framework + cp ~/.npmrc . + rm -f awsenvconf + docker build -t ${SERVICE_NAME}:${CIRCLE_SHA1} . + - run: + name: "Set AWS environment variables" + command: | + ./awsconfiguration.sh ${ECR_ENV} + - run: + name: "Publish docker image" + command: | + source awsenvconf + aws ecr get-login-password | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com + docker tag ${SERVICE_NAME}:${CIRCLE_SHA1} $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/${SERVICE_NAME}:${CIRCLE_SHA1} + docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/${SERVICE_NAME}:${CIRCLE_SHA1} + +workflows: + version: 2 + publish: + jobs: + - "publish-image": + context: "org-global" + filters: + branches: + only: "feature/legacy-challenge" diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..bba64ab --- /dev/null +++ b/.eslintignore @@ -0,0 +1,5 @@ +src/models/ +src/typings/ +node_modules/ +dist-cjs/ +dist-es/ \ No newline at end of file diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..74632a4 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,23 @@ +{ + "env": { + "es2022": true + }, + "plugins": ["@typescript-eslint", "prettier"], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:@typescript-eslint/recommended-requiring-type-checking", + "prettier" + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaVersion": 2022, + "project": "./tsconfig.json" + }, + "rules": { + "prefer-const": "error", + "@typescript-eslint/no-explicit-any": "warn", + "@typescript-eslint/no-unsafe-argument": "warn", + "@typescript-eslint/no-unsafe-member-access": "warn" + } +} diff --git a/.gitignore b/.gitignore index f40eb3a..34483c1 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ dist/ .env .DS_Store .npmrc +yarn-error.log \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..d24fdfc --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx lint-staged diff --git a/.prettierrc b/.prettierrc index de753c5..b783235 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,3 +1,4 @@ { - "printWidth": 100 + "printWidth": 100, + "organizeImportsSkipDestructiveCodeActions": true } diff --git a/Dockerfile b/Dockerfile index edf85cc..2c5562f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,21 +1,27 @@ -FROM node:18.11.0-alpine3.16 as ts-compile -WORKDIR /usr/tc-acl +FROM node:18.14.1-alpine3.17 as ts-compile +WORKDIR /usr/anticorruption-layer +COPY yarn*.lock ./ COPY package*.json ./ COPY tsconfig*.json ./ -RUN npm install +COPY .npmrc ./ +RUN yarn install --frozen-lockfile --production=false COPY . ./ -RUN npm run build:app +RUN yarn build:app -FROM node:18.11.0-alpine3.16 as ts-remove -WORKDIR /usr/tc-acl -COPY --from=ts-compile /usr/tc-acl/package*.json ./ -COPY --from=ts-compile /usr/tc-acl/dist ./ -RUN npm install --omit=dev +FROM node:18.14.1-alpine3.17 as ts-remove +WORKDIR /usr/anticorruption-layer +COPY --from=ts-compile /usr/anticorruption-layer/yarn*.lock ./ +COPY --from=ts-compile /usr/anticorruption-layer/package*.json ./ +COPY --from=ts-compile /usr/anticorruption-layer/dist ./ +COPY --from=ts-compile /usr/anticorruption-layer/.npmrc ./ +RUN yarn install --frozen-lockfile --production=false FROM gcr.io/distroless/nodejs:18 -WORKDIR /usr/tc-acl -COPY --from=ts-remove /usr/tc-acl ./ +WORKDIR /usr/anticorruption-layer +COPY --from=ts-remove /usr/anticorruption-layer ./ USER 1000 +ENV GRPC_SERVER_PORT=40020 +ENV GRPC_SERVER_HOST=localhost +ENV GRPC_RDB_SERVER_HOST=localhost +ENV GRPC_RDB_SERVER_PORT=9090 CMD ["server.js"] - - diff --git a/bin/server.js b/bin/server.js index d1e4bb8..b44f27f 100644 --- a/bin/server.js +++ b/bin/server.js @@ -19,7 +19,6 @@ const protoConfig = [ `--plugin=${PLUGIN_PATH}`, // https://github.com/stephenh/ts-proto/blob/main/README.markdown "--ts_proto_opt=outputServices=grpc-js,env=node,useOptionals=messages,exportCommonSymbols=false,esModuleInterop=true", - `--ts_proto_opt=stringEnums=true`, `--ts_proto_opt=useDate=string`, `--ts_proto_opt=oneof=unions`, `--ts_proto_opt=addGrpcMetadata=true`, diff --git a/package.json b/package.json index 8a55880..acd5868 100644 --- a/package.json +++ b/package.json @@ -9,30 +9,60 @@ "build:app": "rimraf dist && tsc -b", "build": "node bin/server && rimraf dist && tsc -b", "clean": "rimraf dist", - "start": "ts-node-dev --respawn --transpile-only src/server.ts" + "start": "ts-node-dev --respawn --transpile-only src/server.ts", + "prepare": "husky install", + "lint": "yarn eslint src --ext ts" }, - "keywords": [], + "keywords": [ + "Topcoder", + "Anticorruption Layer", + "Topcoder Platform", + "Topcoder gRPC Service" + ], "author": "Rakib Ansary ", "license": "ISC", "dependencies": { "@grpc/grpc-js": "^1.7.1", - "@topcoder-framework/client-relational": "^0.4.24-ci.0", - "@topcoder-framework/lib-common": "^0.4.24-ci.0", + "@topcoder-framework/client-relational": "^0.4.3", + "@topcoder-framework/lib-common": "^0.4.3", "dayjs": "^1.11.5", "dotenv": "^16.0.3", "grpc-server-reflection": "^0.1.5", "lodash": "^4.17.21", + "moment": "^2.29.4", "source-map-support": "^0.5.21", - "topcoder-interface": "github:topcoder-platform/plat-interface-definition#v0.0.11", + "topcoder-interface": "github:topcoder-platform/plat-interface-definition#v0.0.19", "uuidv4": "^6.2.13" }, "devDependencies": { + "@commitlint/cli": "^17.3.0", + "@commitlint/config-conventional": "^17.3.0", + "@commitlint/config-lerna-scopes": "^17.2.1", "@types/lodash": "^4.14.186", "@types/node": "18.11.18", + "@typescript-eslint/eslint-plugin": "^5.47.1", + "@typescript-eslint/parser": "^5.47.1", + "commitlint": "^17.3.0", + "eslint": "^8.30.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-prettier": "^4.2.1", + "husky": "^8.0.0", + "lint-staged": "^13.1.2", + "prettier": "^2.8.1", + "prettier-plugin-organize-imports": "^3.2.2", "ts-node-dev": "^2.0.0", "ts-proto": "^1.126.1", "typescript": "^4.9.4" }, + "lint-staged": { + "*.{ts,tsx}": [ + "npx prettier --write", + "npx eslint --fix" + ], + "*.{json,md,yml}": [ + "npx prettier --write" + ] + }, "volta": { "node": "18.13.0", "yarn": "1.22.19" diff --git a/src/common/Util.ts b/src/common/Util.ts index d41c391..9dd7aec 100644 --- a/src/common/Util.ts +++ b/src/common/Util.ts @@ -1,4 +1,6 @@ +import { Row, Value as RelationalValue } from "@topcoder-framework/client-relational"; import { Operator, ScanCriteria, Value } from "@topcoder-framework/lib-common"; +import _ from "lodash"; export class Util { public static toScanCriteria(criteria: { [key: string]: any }): ScanCriteria[] { @@ -11,4 +13,76 @@ export class Util { } as ScanCriteria) ); } + + public static toIntValue(val: number): RelationalValue { + return { + value: { + $case: "intValue", + intValue: val, + }, + }; + } + + public static toFloatValue(val: number): RelationalValue { + return { + value: { + $case: "floatValue", + floatValue: val, + }, + }; + } + + public static toStringValue(val: string): RelationalValue { + return { + value: { + $case: "stringValue", + stringValue: val, + }, + }; + } + + public static toDatetimeValue(val: string): RelationalValue { + return { + value: { + $case: "datetimeValue", + datetimeValue: val, + }, + }; + } + + public static parseRow(row: Row): any { + const obj: any = {}; + for (const key of Object.keys(row.values)) { + if (row.values[key].value?.$case) { + obj[_.camelCase(key)] = _.get(row.values[key].value, row.values[key].value!.$case); + } + } + return obj; + } + + public static formatDate(str: string | undefined) { + if (str == null || str.length == 0) { + return undefined; + } + try { + const date = new Date(str); + const year = date.getFullYear(); + const month = (date.getMonth() + 1).toString().padStart(2, "0"); + const day = date.getDate().toString().padStart(2, "0"); + const hours = date.getHours().toString().padStart(2, "0"); + const minutes = date.getMinutes().toString().padStart(2, "0"); + const seconds = date.getSeconds().toString().padStart(2, "0"); + const milliseconds = date.getMilliseconds().toString().padStart(3, "0"); + + return ( + [year, month, day].join("-") + + " " + + [hours, minutes, seconds].join(":") + + "." + + milliseconds + ); + } catch { + return undefined; + } + } } diff --git a/src/config/constants.ts b/src/config/constants.ts new file mode 100644 index 0000000..0b18511 --- /dev/null +++ b/src/config/constants.ts @@ -0,0 +1,63 @@ +export const PhaseStatusIds = { + Scheduled: 1, + Open: 2, + Closed: 3, +}; + +export const PhaseTypeIds = { + Submission: 2, + Review: 4, + IterativeReview: 18, + SpecificationSubmission: 13, +}; + +export const ProjectCategories = { + First2Finish: 38, +}; + +export const ResourceRoleTypeIds = { + Submitter: 1, + PrimaryScreener: 2, + Screener: 3, + Reviewer: 4, + Approver: 10, + Designer: 11, + Observer: 12, + Manager: 13, + Copilot: 14, + ClientManager: 15, + PostMortemReviewer: 16, + SpecificationSubmitter: 17, + SpecificationReviewer: 18, + CheckpointScreener: 19, + CheckpointReviewer: 20, + IterativeReviewer: 21, +}; + +export const ResourceInfoTypeIds = { + ExternalReferenceId: 1, + Handle: 2, + Email: 3, + Rating: 4, + Reliability: 5, + RegistrationDate: 6, + Payment: 7, + PaymentStatus: 8, + ScreeningScore: 9, + InitialScore: 10, + FinalScore: 11, + Placement: 12, + AppealsCompletedEarly: 13, + SVNPermissionAdded: 14, + ManualPayments: 15, +}; + +type ResourceInfoTypeIds = keyof typeof ResourceInfoTypeIds; + +export const ObserverResourceInfoToAdd: ResourceInfoTypeIds[] = [ + "ExternalReferenceId", + "Handle", + "RegistrationDate", + "PaymentStatus", + "AppealsCompletedEarly", +]; diff --git a/src/domain/GroupContestEligibility.ts b/src/domain/GroupContestEligibility.ts new file mode 100644 index 0000000..45d0809 --- /dev/null +++ b/src/domain/GroupContestEligibility.ts @@ -0,0 +1,134 @@ +import { Operator, QueryBuilder } from "@topcoder-framework/client-relational"; +import { CreateResult } from "@topcoder-framework/lib-common"; +import _ from "lodash"; +import { queryRunner } from "../helper/QueryRunner"; +import { + ContestEligibility, + ContestEligibilityList, + DeleteContestEligibilityInput, + DeleteGroupContestEligibilityInput, + GetContestEligibilityInput, + GetGroupContestEligibilityInput, + GroupContestEligibility, + GroupContestEligibilityList, +} from "../models/domain-layer/legacy/group_contest_eligibility"; +import { ContestEligibilitySchema } from "../schema/contest_eligibility/ContestEligibility"; +import { GroupContestEligibilitySchema } from "../schema/contest_eligibility/GroupContestEligibility"; + +class LegacyGroupContestEligibilityDomain { + public async getContestEligibilities( + input: GetContestEligibilityInput + ): Promise { + const { rows } = await queryRunner.run( + new QueryBuilder(ContestEligibilitySchema) + .select(..._.map(ContestEligibilitySchema.columns)) + .where(ContestEligibilitySchema.columns.contestId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.contestId, + }, + }) + .build() + ); + + return { + contestEligibilities: + rows && rows?.length > 0 + ? rows.map((r) => ContestEligibility.fromPartial(r as ContestEligibility)) + : [], + }; + } + + public async createContestEligibility(input: ContestEligibility): Promise { + const { lastInsertId } = await queryRunner.run( + new QueryBuilder(ContestEligibilitySchema).insert({ ...input }).build() + ); + return { + kind: { + $case: "integerId", + integerId: lastInsertId!, + }, + }; + } + + public async getGroupContestEligibilities( + input: GetGroupContestEligibilityInput + ): Promise { + const { rows } = await queryRunner.run( + new QueryBuilder(GroupContestEligibilitySchema) + .select(..._.map(GroupContestEligibilitySchema.columns)) + .where( + GroupContestEligibilitySchema.columns.contestEligibilityId, + Operator.OPERATOR_EQUAL, + { + value: { + $case: "intValue", + intValue: input.contestEligibilityId, + }, + } + ) + .build() + ); + + return { + groupContestEligibilities: + rows && rows?.length > 0 + ? rows.map((r) => GroupContestEligibility.fromPartial(r as GroupContestEligibility)) + : [], + }; + } + + public async createGroupContestEligibility( + input: GroupContestEligibility + ): Promise { + const { lastInsertId } = await queryRunner.run( + new QueryBuilder(GroupContestEligibilitySchema).insert({ ...input }).build() + ); + return { + kind: { + $case: "integerId", + integerId: lastInsertId!, + }, + }; + } + + public async deleteContestEligibility(input: DeleteContestEligibilityInput) { + await queryRunner.run( + new QueryBuilder(ContestEligibilitySchema) + .delete() + .where(ContestEligibilitySchema.columns.contestEligibilityId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.contestEligibilityId, + }, + }) + .build() + ); + } + + public async deleteGroupContestEligibility(input: DeleteGroupContestEligibilityInput) { + await queryRunner.run( + new QueryBuilder(GroupContestEligibilitySchema) + .delete() + .where( + GroupContestEligibilitySchema.columns.contestEligibilityId, + Operator.OPERATOR_EQUAL, + { + value: { + $case: "intValue", + intValue: input.contestEligibilityId, + }, + } + ) + .andWhere(GroupContestEligibilitySchema.columns.groupId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.groupId, + }, + }) + .build() + ); + } +} + +export default new LegacyGroupContestEligibilityDomain(); diff --git a/src/domain/LegacyChallenge.ts b/src/domain/LegacyChallenge.ts index 99d81f0..738d509 100644 --- a/src/domain/LegacyChallenge.ts +++ b/src/domain/LegacyChallenge.ts @@ -1,95 +1,598 @@ -import { Operator, QueryBuilder } from "@topcoder-framework/client-relational"; +import { + Operator as RelationalOperator, + QueryBuilder, +} from "@topcoder-framework/client-relational"; +import { CheckExistsResult, CreateResult, Operator } from "@topcoder-framework/lib-common"; +import _ from "lodash"; +import moment from "moment"; +import { + PhaseStatusIds, + PhaseTypeIds, + ProjectCategories, + ResourceInfoTypeIds, + ResourceRoleTypeIds, +} from "../config/constants"; +import ChallengeHelper from "../helper/ChallengeHelper"; import { queryRunner } from "../helper/QueryRunner"; +import UserHelper from "../helper/UserHelper"; import { - CheckChallengeExistsResponse, + CloseChallengeInput, CreateChallengeInput, + LegacyChallenge, + LegacyChallengeId, + UpdateChallengeInput, } from "../models/domain-layer/legacy/challenge"; import { ProjectSchema } from "../schema/project/Project"; +import LegacyPhaseDomain from "./LegacyPhase"; +import LegacyPrizeDomain from "./Prize"; +import LegacyProjectInfoDomain from "./ProjectInfo"; +import LegacyResourceDomain from "./Resource"; +import LegacyReviewDomain from "./Review"; + +const TCWEBSERVICE = 22838965; class LegacyChallengeDomain { - public async checkChallengeExists( - legacyChallengeId: number - ): Promise { - const { projectId } = ProjectSchema.columns; + public async activateChallenge(input: LegacyChallengeId) { + // update challenge status + await this.update({ + projectId: input.legacyChallengeId, + projectStatusId: 1, + }); + await LegacyProjectInfoDomain.create({ + projectInfoTypeId: 62, // Project activate date + value: moment().format("MM.dd.yyyy hh:mm a"), + projectId: input.legacyChallengeId, + }); + const { projectPhases } = await LegacyPhaseDomain.getProjectPhases({ + projectId: input.legacyChallengeId, + }); + const specificationSubmissionPhase = _.find( + projectPhases, + (p) => p.phaseTypeId === PhaseTypeIds.SpecificationSubmission + ); + if (specificationSubmissionPhase) { + // Start spec review + await LegacyPhaseDomain.updateProjectPhase({ + projectPhaseId: specificationSubmissionPhase.projectPhaseId, + fixedStartTime: "CURRENT", + scheduledStartTime: "CURRENT", + // TODO: @ThomasKranitsas please double check this - I added this line since this required field was missing + phaseStatusId: PhaseStatusIds.Open, + scheduledEndTime: moment() + .add(specificationSubmissionPhase.duration, "milliseconds") + .format("MM-dd-yyyy hh:mm:ss"), + }); + // Check if specification submitter doesn't exist + const { resources } = await LegacyResourceDomain.getResources({ + projectId: input.legacyChallengeId, + resourceRoleId: ResourceRoleTypeIds.SpecificationSubmitter, + }); + if (resources.length === 0) { + // Create spec submitter + const createResourceRes = await LegacyResourceDomain.createResource({ + projectId: input.legacyChallengeId, + resourceRoleId: ResourceRoleTypeIds.SpecificationSubmitter, + userId: 22838965, // TODO: extract user from interceptors + }); + const specSubmitterId = createResourceRes.kind + ? _.get(createResourceRes.kind, createResourceRes.kind?.$case, undefined) + : undefined; + if (!specSubmitterId) throw new Error("Failed to create specification submitter"); - const query = new QueryBuilder(ProjectSchema) - .select(projectId) - .where(projectId, Operator.OPERATOR_EQUAL, { - value: { - $case: "intValue", - intValue: legacyChallengeId, + // create resource_info + await LegacyResourceDomain.createResourceInfos({ + resourceId: specSubmitterId, + resourceInfoTypeId: 2, + value: "tcwebservice", // TODO: Extract from RPC interceptor + }); + await LegacyResourceDomain.createResourceInfos({ + resourceId: specSubmitterId, + resourceInfoTypeId: 7, + value: "null", + }); + await LegacyResourceDomain.createResourceInfos({ + resourceId: specSubmitterId, + resourceInfoTypeId: 8, + value: "N/A", + }); + await LegacyResourceDomain.createResourceInfos({ + resourceId: specSubmitterId, + resourceInfoTypeId: 1, + value: "22838965", // TODO: Extract from RPC interceptor + }); + await LegacyResourceDomain.createResourceInfos({ + resourceId: specSubmitterId, + resourceInfoTypeId: 6, + value: moment().add().format("MM-dd-yyyy hh:mm:ss"), + }); + + // create upload + const upload = await LegacyReviewDomain.createUpload({ + projectId: input.legacyChallengeId, + uploadStatusId: 1, + uploadTypeId: 1, + parameter: "parameter", // dummy upload so there is no actual file uploaded + resourceId: specSubmitterId, + projectPhaseId: specificationSubmissionPhase.projectPhaseId, + }); + // create submission + const uploadId = upload.kind + ? _.get(upload.kind, upload.kind?.$case, undefined) + : undefined; + if (!uploadId) throw new Error("Failed to create upload"); + const createSubmissionRes = await LegacyReviewDomain.createSubmission({ + uploadId, + submissionStatusId: 1, + submissionTypeId: 2, + }); + // resource_submission + const submissionId = createSubmissionRes.kind + ? _.get(createSubmissionRes.kind, createSubmissionRes.kind?.$case, undefined) + : undefined; + if (!submissionId) throw new Error("Failed to create submission"); + await LegacyReviewDomain.createResourceSubmission({ + resourceId: specSubmitterId, + submissionId, + }); + // update project_info to set autopilot to On + const { projectInfos } = await LegacyProjectInfoDomain.getProjectInfo({ + projectId: input.legacyChallengeId, + projectInfoTypeId: 9, + }); + if (projectInfos.length === 0) { + await LegacyProjectInfoDomain.create({ + projectId: input.legacyChallengeId, + projectInfoTypeId: 9, + value: "On", + }); + } else { + await LegacyProjectInfoDomain.update({ + projectId: input.legacyChallengeId, + projectInfoTypeId: 9, + value: "On", + }); + } + } + } + } + + public async closeChallenge(input: CloseChallengeInput) { + // Get the challenge + const challenge = await this.getLegacyChallenge({ legacyChallengeId: input.projectId }); + // Get the challenge phases: + const { projectPhases } = await LegacyPhaseDomain.getProjectPhases({ + projectId: input.projectId, + }); + + // close the submission phase + const submissionPhase = _.find(projectPhases, (p) => p.phaseTypeId === PhaseTypeIds.Submission); + if (!submissionPhase) throw new Error("Cannot find submission phase"); + if (submissionPhase) { + if (submissionPhase.phaseStatusId === PhaseStatusIds.Open) { + await LegacyPhaseDomain.updateProjectPhase({ + phaseStatusId: PhaseStatusIds.Closed, + projectPhaseId: submissionPhase.projectPhaseId, + actualEndTime: "CURRENT", + }); + } else if (submissionPhase.phaseStatusId === PhaseStatusIds.Scheduled) { + await LegacyPhaseDomain.updateProjectPhase({ + phaseStatusId: PhaseStatusIds.Closed, + projectPhaseId: submissionPhase.projectPhaseId, + actualEndTime: "CURRENT", + actualStartTime: "CURRENT", + }); + } + } + + // Open review phase + const reviewPhases = _.filter( + projectPhases, + (p) => + _.includes([PhaseTypeIds.Review, PhaseTypeIds.IterativeReview], p.phaseTypeId) && + p.phaseStatusId !== PhaseStatusIds.Closed + ); + _.each(reviewPhases, async (p) => { + await LegacyPhaseDomain.updateProjectPhase({ + phaseStatusId: PhaseStatusIds.Open, + projectPhaseId: p.projectPhaseId, + actualStartTime: "CURRENT", + }); + }); + + // Get winner resource + const { resources } = await LegacyResourceDomain.getResources({ + projectId: input.projectId, + }); + const winner = _.find(resources, (r) => r.userId === input.winnerId && r.resourceRoleId === 1); + if (!winner) throw new Error("Cannot close challenge without winner"); + // Get winner's submission: + const submission = await LegacyReviewDomain.getSubmission({ + projectId: input.projectId, + submissionStatusId: 1, + uploadStatusId: 1, + resourceId: winner.resourceId, + }); + let submissionId = 0; + + const challengePrizes = await LegacyPrizeDomain.scan({ + criteria: [ + { + key: "projectId", + value: input.projectId, + operator: Operator.OPERATOR_EQUAL, }, - }) - .limit(1) - .build(); + { + key: "prizeTypeId", + value: 15, + operator: Operator.OPERATOR_EQUAL, + }, + { + key: "place", + value: 1, + operator: Operator.OPERATOR_EQUAL, + }, + ], + }); - const { rows } = await queryRunner.run(query); + if (challengePrizes.prizes.length == 0) throw new Error("cannot close challenge without prize"); - return { - exists: rows?.length == 1, - }; + const prize = challengePrizes.prizes[0]; + if (submission) { + submissionId = submission.submissionId; + await LegacyReviewDomain.updateSubmission({ + submissionId: submission.submissionId, + initialScore: 100, + finalScore: 100, + placement: 1, + prizeId: prize.prizeId, + }); + } else { + // Create the missing submission in order to close the challenge + const upload = await LegacyReviewDomain.createUpload({ + projectId: input.projectId, + projectPhaseId: submissionPhase.projectPhaseId, + resourceId: winner.resourceId, + uploadTypeId: 1, + uploadStatusId: 1, + parameter: "parameter", + }); + const uploadId = upload.kind ? _.get(upload.kind, upload.kind?.$case, undefined) : undefined; + if (uploadId) { + const createSubmissionRes = await LegacyReviewDomain.createSubmission({ + uploadId, + submissionStatusId: 1, + initialScore: 100, + finalScore: 100, + placement: 1, + submissionTypeId: 1, + prizeId: prize.prizeId, + }); + if (createSubmissionRes.kind) { + submissionId = _.get(createSubmissionRes.kind, createSubmissionRes.kind?.$case, 0); + } + if (!submissionId) throw new Error("Failed to create submission"); + } + } + + const reviewers = _.filter(resources, (r) => r.resourceRoleId === 4 || r.resourceRoleId === 21); + + for (const reviewer of reviewers) { + // Remove all review item comments + await LegacyReviewDomain.deleteReviewItemComment(reviewer.resourceId); + // Remove all review items + const { items: reviewItems } = await LegacyReviewDomain.getReviews(reviewer.resourceId); + for (const r of reviewItems) { + await LegacyReviewDomain.deleteReviewItem(r.reviewId); + } + // Remove all review comments + await LegacyReviewDomain.deleteReviewComment(reviewer.resourceId); + // Remove all reviews + await LegacyReviewDomain.deleteReview(reviewer.resourceId); + // Remove all resource_info + await LegacyResourceDomain.deleteResourceInfos({ resourceId: reviewer.resourceId }); + + // Remove all reviewers + await LegacyResourceDomain.deleteResources({ + projectId: input.projectId, + resourceRoleId: 4, // Reviewer + }); + await LegacyResourceDomain.deleteResources({ + projectId: input.projectId, + resourceRoleId: 21, // Iterative Reviewer + }); + } + + // Create new reviewer using current user's id (22838965 - tcwebservice) + const createResourceRes = await LegacyResourceDomain.createResource({ + resourceRoleId: + challenge.projectCategoryId === ProjectCategories.First2Finish + ? ResourceRoleTypeIds.IterativeReviewer + : ResourceRoleTypeIds.Reviewer, + projectId: input.projectId, + userId: 22838965, // TODO: get this from interceptors + }); + const reviewerResourceId = createResourceRes.kind + ? _.get(createResourceRes.kind, createResourceRes.kind?.$case, undefined) + : undefined; + if (!reviewerResourceId) throw new Error("error creating resource"); + await LegacyResourceDomain.createResourceInfos({ + resourceId: reviewerResourceId, + resourceInfoTypeId: 1, + value: "22838965", + }); + await LegacyResourceDomain.createResourceInfos({ + resourceId: reviewerResourceId, + resourceInfoTypeId: 2, + value: "tcwebservice", + }); + await LegacyResourceDomain.createResourceInfos({ + resourceId: reviewerResourceId, + resourceInfoTypeId: 6, + value: moment().format("MM.dd.yyyy hh:mm a"), + }); + await LegacyResourceDomain.createResourceInfos({ + resourceId: reviewerResourceId, + resourceInfoTypeId: 7, + value: "N/A", + }); + await LegacyResourceDomain.createResourceInfos({ + resourceId: reviewerResourceId, + resourceInfoTypeId: 8, + value: "N/A", + }); + await LegacyResourceDomain.createResourceInfos({ + resourceId: reviewerResourceId, + resourceInfoTypeId: 15, + value: "true", + }); + // Get scorecard id + const { phaseCriteriaList } = await LegacyPhaseDomain.getPhaseCriteria({ + projectPhaseId: reviewPhases[0].projectPhaseId, // Assuming there will only be one (currently open) review phase + phaseCriteriaTypeId: 1, + }); + let scorecardId = 0; + if (phaseCriteriaList[0].parameter) { + scorecardId = _.toNumber(phaseCriteriaList[0].parameter); + } + // Create review + const createReviewRes = await LegacyReviewDomain.createReview({ + resourceId: reviewerResourceId, + submissionId, + projectPhaseId: reviewPhases[0].projectPhaseId, + scorecardId, + committed: 1, + score: 100, + initialScore: 100, + }); + const createdReviewId = createReviewRes.kind + ? _.get(createReviewRes.kind, createReviewRes.kind?.$case, undefined) + : undefined; + if (!createdReviewId) throw new Error("cannot create review"); + // Get scorecard questions + const { items: scorecardGroups } = await LegacyReviewDomain.getScorecardGroups(scorecardId); + for (const sg of scorecardGroups) { + const { items: scorecardSections } = await LegacyReviewDomain.getScorecardSections( + sg.scorecardGroupId + ); + for (const ss of scorecardSections) { + const createReviewItemRes = await LegacyReviewDomain.createReviewItem({ + reviewId: createdReviewId, + scorecardQuestionId: ss.scorecardSectionId, + answer: "10", + sort: ss.sort, + }); + const createdReviewItemId = createReviewItemRes.kind + ? _.get(createReviewItemRes.kind, createReviewItemRes.kind?.$case, undefined) + : undefined; + if (!createdReviewItemId) throw new Error("cannot create review item"); + await LegacyReviewDomain.createReviewItemComment({ + resourceId: reviewerResourceId, + reviewItemId: createdReviewItemId, + commentTypeId: 1, + content: "Ok", + sort: ss.sort, + }); + } + } } - public async createLegacyChallenge(input: CreateChallengeInput): Promise { + public async create(input: CreateChallengeInput): Promise { const transaction = queryRunner.beginTransaction(); - const createLegacyChallengeQuery = new QueryBuilder(ProjectSchema) - .insert({ - projectStatusId: input.projectStatusId, + // insert record in project + const createProjectQuery = ChallengeHelper.getChallengeCreateQuery( + { projectCategoryId: input.projectCategoryId, + projectStatusId: input.projectStatusId, tcDirectProjectId: input.tcDirectProjectId, - }) - .build(); + }, + TCWEBSERVICE + ); + + const createQueryResult = await transaction.add(createProjectQuery); - const createLegacyChallengeQueryResult = await transaction.add(createLegacyChallengeQuery); - if (createLegacyChallengeQueryResult instanceof Error) { + if (createQueryResult instanceof Error) { transaction.rollback(); - return Promise.reject({ - message: "Failed to create legacy challenge", - }); + throw createQueryResult; + } + + const projectId = createQueryResult.lastInsertId!; + + // insert record(s) in prize + const createPrizeQueries = ChallengeHelper.getPrizeCreateQueries( + projectId, + input.winnerPrizes, + TCWEBSERVICE + ); + + for (const q of createPrizeQueries) { + await transaction.add(q); + } + + // insert record(s) in project_info + const createProjectInfoQueries = ChallengeHelper.getChallengeInfoCreateQueries( + projectId, + input.projectInfo, + TCWEBSERVICE + ); + + for (const q of createProjectInfoQueries) { + await transaction.add(q); + } + + // insert record(s) in project_phase + for (const phase of input.phases) { + const createPhaseQuery = ChallengeHelper.getPhaseCreateQuery(projectId, phase, TCWEBSERVICE); + const createPhaseResult = await transaction.add(createPhaseQuery); + if (createPhaseResult instanceof Error) { + transaction.rollback(); + throw createPhaseResult; + } + const projectPhaseId = createPhaseResult.lastInsertId!; + // insert record(s) into phase_criteria + const createPhaseCriteriaQueries = ChallengeHelper.getPhaseCriteriaCreateQueries( + projectPhaseId, + phase.phaseCriteria, + TCWEBSERVICE + ); + for (const q of createPhaseCriteriaQueries) { + await transaction.add(q); + } + } + + const getObserversToAddQuery = ChallengeHelper.getDirectProjectListUserQuery( + input.tcDirectProjectId + ); + const getObserversToAddResult = await transaction.add(getObserversToAddQuery); + if (getObserversToAddResult instanceof Error) { + transaction.rollback(); + throw getObserversToAddResult; } - const { lastInsertId: legacyChallengeId } = createLegacyChallengeQueryResult; + const adminsToAdd = getObserversToAddResult?.rows + ?.map((o) => ({ + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + userId: o["user_id"], + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + handle: o["handle"], + role: ResourceRoleTypeIds.Observer, + })) + .concat([ + { userId: 22770213, handle: "Applications", role: ResourceRoleTypeIds.Manager }, + { userId: TCWEBSERVICE, handle: "tcwebservice", role: ResourceRoleTypeIds.Manager }, + ]); + + // const copilot = input.copilot; + + // if (copilot != null) { + // const getCopilotHandleQuery = UserHelper.getUserHandleQuery(copilot.userId); + // const getCopilotHandleResult = await transaction.add(getCopilotHandleQuery); + // if (getCopilotHandleResult instanceof Error || getCopilotHandleResult.rows?.length != 1) { + // transaction.rollback(); + // throw getCopilotHandleResult; + // } + // adminsToAdd?.push({ + // userId: copilot.userId, + // handle: getCopilotHandleResult.rows[0].handleLower, + // role: ResourceRoleTypeIds.Copilot, + // }); + // } + + for (const { userId, handle, role } of adminsToAdd!) { + const createResourceQuery = ChallengeHelper.getResourceCreateQuery( + projectId, + userId, + role, + undefined, + TCWEBSERVICE + ); + const result = await transaction.add(createResourceQuery); + if (result instanceof Error) { + transaction.rollback(); + throw result; + } + const resourceId = result.lastInsertId!; + const createResourceInfoQueries = ChallengeHelper.getObserverResourceInfoCreateQueries( + resourceId, + userId, + handle, + TCWEBSERVICE + ); + + for (const q of createResourceInfoQueries) { + await transaction.add(q); + } + // if (role === ResourceRoleTypeIds.Copilot && copilot != null) { + // const createCopilotResourceInfoQuery = ChallengeHelper.getResourceInfoCreateQuery( + // resourceId, + // ResourceInfoTypeIds.Payment, + // "" + copilot.fee, + // TCWEBSERVICE + // ); + // await transaction.add(createCopilotResourceInfoQuery); + // } + } + + transaction.commit(); + + return { + kind: { + $case: "integerId", + integerId: projectId, + }, + }; + } - return Promise.resolve(legacyChallengeId!); + public async update(input: UpdateChallengeInput) { + await queryRunner.run( + new QueryBuilder(ProjectSchema) + .update({ projectStatusId: input.projectStatusId }) + .where(ProjectSchema.columns.projectId, RelationalOperator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectId, + }, + }) + .build() + ); } - // public async listAvailableChallengeInfoTypes(key: string): Promise { - // const queryRequest: QueryRequest = { - // query: { - // query: { - // $case: "select", - // select: { - // table: "project_info_type_lu", - // join: [], - // column: [ - // { - // name: "", - // type: ColumnType.COLUMN_TYPE_INT, - // }, - // ], - // where: [ - // { - // key: "name", - // operator: Operator.OPERATOR_EQUAL, - // value: { - // value: { - // $case: "stringValue", - // stringValue: key, - // }, - // }, - // }, - // ], - // groupBy: [], - // orderBy: [], - // limit: 1, - // offset: 0, - // }, - // }, - // }, - // }; - // return Promise.resolve(10); - // } + public async getLegacyChallenge(input: LegacyChallengeId): Promise { + const { rows } = await queryRunner.run( + new QueryBuilder(ProjectSchema) + .select(..._.map(ProjectSchema.columns)) + .where(ProjectSchema.columns.projectId, RelationalOperator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.legacyChallengeId, + }, + }) + .build() + ); + if (!rows || rows.length === 0) + throw new Error(`Cannot find challenge with id: ${input.legacyChallengeId}`); + return LegacyChallenge.fromPartial(rows[0] as LegacyChallenge); + } + + public async checkExists(legacyChallengeId: number): Promise { + const { projectId } = ProjectSchema.columns; + + const query = new QueryBuilder(ProjectSchema) + .select(projectId) + .where(projectId, RelationalOperator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: legacyChallengeId, + }, + }) + .build(); + + const { rows } = await queryRunner.run(query); + + return { + exists: rows?.length == 1, + }; + } } export default new LegacyChallengeDomain(); diff --git a/src/domain/LegacyChallengePayment.ts b/src/domain/LegacyChallengePayment.ts new file mode 100644 index 0000000..c820373 --- /dev/null +++ b/src/domain/LegacyChallengePayment.ts @@ -0,0 +1,106 @@ +import { Operator, QueryBuilder } from "@topcoder-framework/client-relational"; +import { CreateResult } from "@topcoder-framework/lib-common"; +import _ from "lodash"; +import { queryRunner } from "../helper/QueryRunner"; +import { + CreateLegacyChallengePaymentInput, + DeleteLegacyChallengePaymentInput, + GetLegacyChallengePaymentInput, + LegacyChallengePayment, + LegacyChallengePaymentList, + UpdateLegacyChallengePaymentInput, +} from "../models/domain-layer/legacy/challenge_payment"; +import { ProjectPaymentSchema } from "../schema/project_payment/ProjectPayment"; + +class LegacyPaymentDomain { + public async getProjectPayments( + input: GetLegacyChallengePaymentInput + ): Promise { + const { rows } = await queryRunner.run( + new QueryBuilder(ProjectPaymentSchema) + .select(..._.map(ProjectPaymentSchema.columns)) + .where(ProjectPaymentSchema.columns.resourceId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.resourceId, + }, + }) + .andWhere(ProjectPaymentSchema.columns.projectPaymentTypeId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectPaymentTypeId, + }, + }) + .build() + ); + + return { + projectPayments: + rows && rows?.length > 0 + ? rows.map((r) => LegacyChallengePayment.fromPartial(r as LegacyChallengePayment)) + : [], + }; + } + + public async createProjectPayment( + input: CreateLegacyChallengePaymentInput + ): Promise { + const createInput = { + ...input, + }; + const { lastInsertId } = await queryRunner.run( + new QueryBuilder(ProjectPaymentSchema).insert(createInput).build() + ); + return { + kind: { + $case: "integerId", + integerId: lastInsertId!, + }, + }; + } + + // TODO: Test this after informix-access-layer is fixed + public async updateProjectPayment(input: UpdateLegacyChallengePaymentInput) { + await queryRunner.run( + new QueryBuilder(ProjectPaymentSchema) + .update({ + ...input, + }) + .where(ProjectPaymentSchema.columns.resourceId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.resourceId, + }, + }) + .andWhere(ProjectPaymentSchema.columns.projectPaymentTypeId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectPaymentTypeId, + }, + }) + .build() + ); + } + + public async deleteProjectPayment(input: DeleteLegacyChallengePaymentInput) { + await queryRunner.run( + new QueryBuilder(ProjectPaymentSchema) + .delete() + .where(ProjectPaymentSchema.columns.resourceId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.resourceId, + }, + }) + .andWhere(ProjectPaymentSchema.columns.projectPaymentTypeId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectPaymentTypeId, + }, + }) + .build() + ); + } +} + +export default new LegacyPaymentDomain(); diff --git a/src/domain/LegacyChallengePhase.ts b/src/domain/LegacyChallengePhase.ts index f8902e2..8dbf8f8 100644 --- a/src/domain/LegacyChallengePhase.ts +++ b/src/domain/LegacyChallengePhase.ts @@ -9,8 +9,6 @@ class LegacyChallengePhaseDomain { public async create(input: CreatePhaseInput): Promise { const createInput = { ...input, - createUser: 22838965, // tcwebservice | TODO: Get using grpc interceptor - modifyUser: 22838965, // tcwebservice | TODO: Get using grpc interceptor }; const { lastInsertId: phaseId } = await queryRunner.run( @@ -28,7 +26,6 @@ class LegacyChallengePhaseDomain { public async getPhaseTypes(): Promise { const query = new QueryBuilder(PhaseTypeSchema) .select(PhaseTypeSchema.columns.phaseTypeId, PhaseTypeSchema.columns.name) - .limit(500) .build(); const { rows: projectPhases } = await queryRunner.run(query); @@ -36,10 +33,12 @@ class LegacyChallengePhaseDomain { const list: PhaseTypeList = { items: projectPhases!.map(({ values }) => { return { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment phaseTypeId: values.phase_type_id.value?.$case === "intValue" ? values.phase_type_id.value?.intValue : 0, + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment name: values.name.value?.$case === "stringValue" ? values.name.value?.stringValue : "", }; }), diff --git a/src/domain/LegacyPhase.ts b/src/domain/LegacyPhase.ts new file mode 100644 index 0000000..50527ca --- /dev/null +++ b/src/domain/LegacyPhase.ts @@ -0,0 +1,186 @@ +import { Operator, QueryBuilder } from "@topcoder-framework/client-relational"; +import { CreateResult } from "@topcoder-framework/lib-common"; +import _ from "lodash"; +import { queryRunner } from "../helper/QueryRunner"; +import { + CreatePhaseCriteriaInput, + CreatePhaseDependencyInput, + CreateProjectPhaseInput, + DeletePhaseCriteriaInput, + DeleteProjectPhasesInput, + GetPhaseCriteriaInput, + GetProjectPhasesInput, + PhaseCriteria, + PhaseCriteriaList, + PhaseType, + PhaseTypeList, + ProjectPhase, + ProjectPhaseList, + UpdateProjectPhaseInput, +} from "../models/domain-layer/legacy/phase"; +import { PhaseCriteriaSchema } from "../schema/project/PhaseCriteria"; +import { PhaseDependencySchema } from "../schema/project/PhaseDependency"; +import { PhaseTypeSchema } from "../schema/project/PhaseType"; +import { ProjectPhaseSchema } from "../schema/project/ProjectPhase"; + +class LegacyPhaseDomain { + public async getPhaseTypes(): Promise { + const query = new QueryBuilder(PhaseTypeSchema) + .select(PhaseTypeSchema.columns.name, PhaseTypeSchema.columns.phaseTypeId) + .build(); + + const { rows } = await queryRunner.run(query); + return { phaseTypes: rows!.map((r) => PhaseType.fromPartial(r as PhaseType)) }; + } + + public async getPhaseCriteria(input: GetPhaseCriteriaInput): Promise { + const query = new QueryBuilder(PhaseCriteriaSchema) + .select(..._.map(PhaseCriteriaSchema.columns)) + .where(PhaseCriteriaSchema.columns.projectPhaseId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectPhaseId, + }, + }) + .andWhere(PhaseCriteriaSchema.columns.phaseCriteriaTypeId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.phaseCriteriaTypeId!, + }, + }) + .build(); + + const { rows } = await queryRunner.run(query); + return { phaseCriteriaList: rows!.map((r) => PhaseCriteria.fromPartial(r as PhaseCriteria)) }; + } + + public async createPhaseCriteria(input: CreatePhaseCriteriaInput): Promise { + const createInput = { + ...input, + }; + const { lastInsertId } = await queryRunner.run( + new QueryBuilder(PhaseCriteriaSchema).insert(createInput).build() + ); + return { + kind: { + $case: "integerId", + integerId: lastInsertId!, + }, + }; + } + + public async deletePhaseCriteria(input: DeletePhaseCriteriaInput) { + let query = new QueryBuilder(PhaseCriteriaSchema) + .delete() + .where(PhaseCriteriaSchema.columns.projectPhaseId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectPhaseId, + }, + }); + if (input.phaseCriteriaTypeId) { + query = query.andWhere( + PhaseCriteriaSchema.columns.phaseCriteriaTypeId, + Operator.OPERATOR_EQUAL, + { + value: { + $case: "intValue", + intValue: input.phaseCriteriaTypeId, + }, + } + ); + } + await queryRunner.run(query.build()); + } + + public async getProjectPhases(input: GetProjectPhasesInput): Promise { + let query = new QueryBuilder(ProjectPhaseSchema) + .select(..._.map(ProjectPhaseSchema.columns)) + .where(ProjectPhaseSchema.columns.projectId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectId, + }, + }); + if (input.phaseTypeId) { + query = query.andWhere(ProjectPhaseSchema.columns.phaseTypeId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.phaseTypeId, + }, + }); + } + + const { rows } = await queryRunner.run(query.build()); + return { projectPhases: rows!.map((r) => ProjectPhase.fromPartial(r as ProjectPhase)) }; + } + + public async deleteProjectPhases(input: DeleteProjectPhasesInput) { + await queryRunner.run( + new QueryBuilder(ProjectPhaseSchema) + .delete() + .where(ProjectPhaseSchema.columns.projectId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectId, + }, + }) + .andWhere(ProjectPhaseSchema.columns.projectPhaseId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectPhaseId, + }, + }) + .build() + ); + } + + public async createProjectPhase(input: CreateProjectPhaseInput): Promise { + const createInput = { + ...input, + }; + const { lastInsertId } = await queryRunner.run( + new QueryBuilder(ProjectPhaseSchema).insert(createInput).build() + ); + return { + kind: { + $case: "integerId", + integerId: lastInsertId!, + }, + }; + } + + // TODO: Test this after informix-access-layer is fixed + public async updateProjectPhase(input: UpdateProjectPhaseInput) { + const { rows } = await queryRunner.run( + new QueryBuilder(ProjectPhaseSchema) + .update({ + ...input, + }) + .where(ProjectPhaseSchema.columns.projectPhaseId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectPhaseId, + }, + }) + .build() + ); + } + + public async createPhaseDependency(input: CreatePhaseDependencyInput): Promise { + const createInput = { + ...input, + }; + const { lastInsertId } = await queryRunner.run( + new QueryBuilder(PhaseDependencySchema).insert(createInput).build() + ); + return { + kind: { + $case: "integerId", + integerId: lastInsertId!, + }, + }; + } +} + +export default new LegacyPhaseDomain(); diff --git a/src/domain/Notification.ts b/src/domain/Notification.ts new file mode 100644 index 0000000..fe25df1 --- /dev/null +++ b/src/domain/Notification.ts @@ -0,0 +1,56 @@ +import { Operator, QueryBuilder } from "@topcoder-framework/client-relational"; +import _ from "lodash"; +import { queryRunner } from "../helper/QueryRunner"; +import { + DeleteNotificationsInput, + GetNotificationsInput, + Notification, + NotificationList, +} from "../models/domain-layer/legacy/notification"; +import { NotificationSchema } from "../schema/project/Notification"; + +class LegacyNotificationDomain { + public async getNotifications(input: GetNotificationsInput): Promise { + const { rows } = await queryRunner.run( + new QueryBuilder(NotificationSchema) + .select(..._.map(NotificationSchema.columns)) + .where(NotificationSchema.columns.externalRefId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.externalRefId, + }, + }) + .andWhere(NotificationSchema.columns.projectId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectId, + }, + }) + .build() + ); + + return { notifications: rows!.map((r) => Notification.fromPartial(r as Notification)) }; + } + + public async deleteNotifications(input: DeleteNotificationsInput) { + await queryRunner.run( + new QueryBuilder(NotificationSchema) + .delete() + .where(NotificationSchema.columns.projectId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectId, + }, + }) + .andWhere(NotificationSchema.columns.externalRefId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.externalRefId, + }, + }) + .build() + ); + } +} + +export default new LegacyNotificationDomain(); diff --git a/src/domain/Prize.ts b/src/domain/Prize.ts index 24e7e2a..6bdb844 100644 --- a/src/domain/Prize.ts +++ b/src/domain/Prize.ts @@ -1,9 +1,10 @@ -import { Query, QueryBuilder } from "@topcoder-framework/client-relational"; -import { CreateResult, ScanCriteria, UpdateResult, Value } from "@topcoder-framework/lib-common"; +import { Query, QueryBuilder, Operator } from "@topcoder-framework/client-relational"; +import { CreateResult, ScanRequest, UpdateResult } from "@topcoder-framework/lib-common"; import { Util } from "../common/Util"; import { queryRunner } from "../helper/QueryRunner"; import { CreatePrizeInput, + DeletePrizeInput, Prize, PrizeList, UpdatePrizeInput, @@ -11,11 +12,32 @@ import { import { PrizeSchema } from "../schema/project_payment/Prize"; class PrizeDomain { + public async scan(scanRequest: ScanRequest): Promise { + const { criteria: scanCriteria } = scanRequest; + + const query: Query = ( + scanCriteria.length === 0 + ? new QueryBuilder(PrizeSchema).select(...Object.values(PrizeSchema.columns)) + : scanCriteria.reduce( + (query, criterion, index) => (index === 0 ? query : query.andWhere(criterion)), + new QueryBuilder(PrizeSchema) + .select(...Object.values(PrizeSchema.columns)) + .where(scanCriteria[0]) + ) + ).build(); + + const { rows: prizes } = await queryRunner.run(query); + + const list: PrizeList = { + prizes: prizes!.map((prize) => Prize.fromPartial(prize as Prize)), + }; + + return list; + } + public async create(input: CreatePrizeInput): Promise { const createInput: Partial = { ...input, - createUser: 22838965, // tcwebservice | TODO: Get using grpc interceptor - modifyUser: 22838965, // tcwebservice | TODO: Get using grpc interceptor }; const { lastInsertId: prizeId } = await queryRunner.run( @@ -30,23 +52,6 @@ class PrizeDomain { }; } - public async scan(criteria: ScanCriteria): Promise { - criteria.value = Value.wrap(criteria.value); // TODO: We shouldn't have to do this, check why scanCriteria.value is a Value - - const query: Query = new QueryBuilder(PrizeSchema) - .select(...Object.values(PrizeSchema.columns)) - .where(criteria) - .build(); - - const { rows: prizes } = await queryRunner.run(query); - - const list: PrizeList = { - prizes: prizes!.map((prize) => Prize.fromPartial(prize as Prize)), - }; - - return list; - } - public async update(updateInput: UpdatePrizeInput): Promise { const { updateInput: input, updateCriteria: criteria } = updateInput; @@ -55,13 +60,32 @@ class PrizeDomain { .where(...Util.toScanCriteria({ ...criteria })) .build(); - console.log("Query", query); const { affectedRows } = await queryRunner.run(query); return { updatedCount: affectedRows!, }; } + + public async delete(input: DeletePrizeInput) { + await queryRunner.run( + new QueryBuilder(PrizeSchema) + .delete() + .where(PrizeSchema.columns.projectId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectId, + }, + }) + .andWhere(PrizeSchema.columns.prizeId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.prizeId, + }, + }) + .build() + ); + } } export default new PrizeDomain(); diff --git a/src/domain/ProjectInfo.ts b/src/domain/ProjectInfo.ts new file mode 100644 index 0000000..26cfd54 --- /dev/null +++ b/src/domain/ProjectInfo.ts @@ -0,0 +1,120 @@ +import { Operator, QueryBuilder } from "@topcoder-framework/client-relational"; +import { UpdateResult } from "@topcoder-framework/lib-common"; +import { queryRunner } from "../helper/QueryRunner"; +import { + CreateProjectInfoInput, + DeleteProjectInfoInput, + GetProjectInfoInput, + ProjectInfo, + ProjectInfoList, + ProjectInfoType, + ProjectInfoTypeList, + UpdateProjectInfoInput, +} from "../models/domain-layer/legacy/project_info"; +import { ProjectInfoSchema } from "../schema/project/ProjectInfo"; +import { ProjectInfoTypeSchema } from "../schema/project/ProjectInfoType"; + +class ProjectInfoDomain { + public async create(input: CreateProjectInfoInput): Promise { + await queryRunner.run( + new QueryBuilder(ProjectInfoSchema) + .insert({ + value: input.value, + projectId: input.projectId, + projectInfoTypeId: input.projectInfoTypeId, + }) + .build() + ); + return input as ProjectInfo; + } + + // TODO: Test this after informix-access-layer is fixed + public async update(input: UpdateProjectInfoInput): Promise { + const res = await queryRunner.run( + new QueryBuilder(ProjectInfoSchema) + .update({ + value: input.value, + }) + .where(ProjectInfoSchema.columns.projectId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectId, + }, + }) + .andWhere(ProjectInfoSchema.columns.projectInfoTypeId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectInfoTypeId, + }, + }) + .build() + ); + return { + updatedCount: res.affectedRows!, + }; + } + + public async delete(input: DeleteProjectInfoInput) { + await queryRunner.run( + new QueryBuilder(ProjectInfoSchema) + .delete() + .where(ProjectInfoSchema.columns.projectId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectId, + }, + }) + .andWhere(ProjectInfoSchema.columns.projectInfoTypeId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectInfoTypeId, + }, + }) + .build() + ); + } + + public async getProjectInfo(input: GetProjectInfoInput): Promise { + let query = new QueryBuilder(ProjectInfoSchema) + .select( + ProjectInfoSchema.columns.projectId, + ProjectInfoSchema.columns.projectInfoTypeId, + ProjectInfoSchema.columns.value + ) + .where(ProjectInfoSchema.columns.projectId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectId, + }, + }); + if (input.projectInfoTypeId) { + query = query.andWhere(ProjectInfoSchema.columns.projectInfoTypeId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectInfoTypeId, + }, + }); + } + const { rows } = await queryRunner.run(query.build()); + + return { projectInfos: rows!.map((row) => ProjectInfo.fromPartial(row as ProjectInfo)) }; + } + + public async getProjectInfoTypes(): Promise { + const { rows } = await queryRunner.run( + new QueryBuilder(ProjectInfoTypeSchema) + .select( + ProjectInfoTypeSchema.columns.projectInfoTypeId, + ProjectInfoTypeSchema.columns.name, + ProjectInfoTypeSchema.columns.description + ) + .build() + ); + + return { + projectInfoTypes: rows!.map((row) => ProjectInfoType.fromPartial(row as ProjectInfoType)), + }; + } +} + +export default new ProjectInfoDomain(); diff --git a/src/domain/Resource.ts b/src/domain/Resource.ts new file mode 100644 index 0000000..8644046 --- /dev/null +++ b/src/domain/Resource.ts @@ -0,0 +1,168 @@ +import { Operator, QueryBuilder } from "@topcoder-framework/client-relational"; +import { CreateResult } from "@topcoder-framework/lib-common"; +import _ from "lodash"; +import { queryRunner } from "../helper/QueryRunner"; +import { + CreateResourceInfoInput, + CreateResourceInput, + DeleteResourceInfoInput, + DeleteResourcesInput, + GetResourceInfosInput, + GetResourcesInput, + Resource, + ResourceInfo, + ResourceInfoList, + ResourceList, + UpdateResourceInfoInput, +} from "../models/domain-layer/legacy/resource"; +import { ResourceSchema } from "../schema/resource/Resource"; +import { ResourceInfoSchema } from "../schema/resource/ResourceInfo"; + +class LegacyResourceDomain { + public async createResource(input: CreateResourceInput): Promise { + const { lastInsertId } = await queryRunner.run( + new QueryBuilder(ResourceSchema) + .insert({ + ...input, + }) + .build() + ); + return { + kind: { + $case: "integerId", + integerId: lastInsertId!, + }, + }; + } + + public async getResources(input: GetResourcesInput): Promise { + const { rows } = await queryRunner.run( + new QueryBuilder(ResourceSchema) + .select(..._.map(ResourceSchema.columns)) + .where(ResourceSchema.columns.projectId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectId, + }, + }) + .andWhere(ResourceSchema.columns.resourceRoleId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.resourceRoleId!, + }, + }) + .build() + ); + + return { + resources: + rows && rows?.length > 0 ? rows.map((r) => Resource.fromPartial(r as Resource)) : [], + }; + } + + public async getResourceInfos(input: GetResourceInfosInput): Promise { + let query = new QueryBuilder(ResourceInfoSchema) + .select(..._.map(ResourceInfoSchema.columns)) + .where(ResourceInfoSchema.columns.resourceId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.resourceId, + }, + }); + if (input.resourceInfoTypeId) { + query = query.andWhere( + ResourceInfoSchema.columns.resourceInfoTypeId, + Operator.OPERATOR_EQUAL, + { + value: { + $case: "intValue", + intValue: input.resourceInfoTypeId, + }, + } + ); + } + const { rows } = await queryRunner.run(query.build()); + + return { + resourceInfos: + rows && rows?.length > 0 + ? rows.map((r) => ResourceInfo.fromPartial(r as ResourceInfo)) + : [], + }; + } + + public async createResourceInfos(input: CreateResourceInfoInput): Promise { + const { lastInsertId } = await queryRunner.run( + new QueryBuilder(ResourceInfoSchema) + .insert({ + ...input, + }) + .build() + ); + return { + kind: { + $case: "integerId", + integerId: lastInsertId!, + }, + }; + } + + // TODO: Test this after informix-access-layer is fixed + public async updateResourceInfos(input: UpdateResourceInfoInput) { + const { rows } = await queryRunner.run( + new QueryBuilder(ResourceInfoSchema) + .update({ + ...input, + }) + .where(ResourceInfoSchema.columns.resourceId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.resourceId, + }, + }) + .andWhere(ResourceInfoSchema.columns.resourceInfoTypeId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.resourceInfoTypeId, + }, + }) + .build() + ); + } + + public async deleteResources(input: DeleteResourcesInput) { + await queryRunner.run( + new QueryBuilder(ResourceSchema) + .delete() + .where(ResourceSchema.columns.projectId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectId, + }, + }) + .andWhere(ResourceSchema.columns.resourceRoleId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.resourceRoleId!, + }, + }) + .build() + ); + } + + public async deleteResourceInfos(input: DeleteResourceInfoInput) { + await queryRunner.run( + new QueryBuilder(ResourceInfoSchema) + .delete() + .where(ResourceInfoSchema.columns.resourceId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.resourceId, + }, + }) + .build() + ); + } +} + +export default new LegacyResourceDomain(); diff --git a/src/domain/Review.ts b/src/domain/Review.ts new file mode 100644 index 0000000..eacf998 --- /dev/null +++ b/src/domain/Review.ts @@ -0,0 +1,297 @@ +import { Operator, QueryBuilder } from "@topcoder-framework/client-relational"; +import { CreateResult } from "@topcoder-framework/lib-common"; +import _ from "lodash"; +import { queryRunner } from "../helper/QueryRunner"; +import { CreateResourceSubmissionInput } from "../models/domain-layer/legacy/resource_submission"; +import { + CreateReviewInput, + CreateReviewItemCommentInput, + CreateReviewItemInput, + CreateSubmissionInput, + CreateUploadInput, + GetSubmissionInput, + Review, + ReviewList, + ScorecardGroup, + ScorecardGroupList, + ScorecardSection, + ScorecardSectionList, + Submission, + UpdateSubmissionInput, + Upload, +} from "../models/domain-layer/legacy/review"; +import { ReviewSchema } from "../schema/project/Review"; +import { ReviewCommentSchema } from "../schema/project/ReviewComment"; +import { ReviewItemSchema } from "../schema/project/ReviewItem"; +import { ReviewItemCommentSchema } from "../schema/project/ReviewItemComment"; +import { ScorecardGroupSchema } from "../schema/project/ScorecardGroup"; +import { ScorecardSectionSchema } from "../schema/project/ScorecardSection"; +import { SubmissionSchema } from "../schema/project/Submission"; +import { UploadSchema } from "../schema/project/Upload"; +import { ResourceSubmissionSchema } from "../schema/resource/ResourceSubmission"; + +class LegacyReviewDomain { + public async createUpload(input: CreateUploadInput): Promise { + const createInput = { + ...input, + }; + const { lastInsertId } = await queryRunner.run( + new QueryBuilder(UploadSchema).insert(createInput).build() + ); + return { + kind: { + $case: "integerId", + integerId: lastInsertId!, + }, + }; + } + + public async getUploadId(input: GetSubmissionInput): Promise { + const { rows } = await queryRunner.run( + new QueryBuilder(UploadSchema) + .select(..._.map(UploadSchema.columns)) + .where(UploadSchema.columns.projectId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectId, + }, + }) + .andWhere(UploadSchema.columns.uploadStatusId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: 1, // Active + }, + }) + .andWhere(UploadSchema.columns.resourceRoleId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: 1, // Submitter + }, + }) + .andWhere(UploadSchema.columns.resourceId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.resourceId, + }, + }) + .build() + ); + if (!rows || rows?.length === 0) return undefined; + return Upload.fromPartial(rows[0] as Upload).uploadId; + } + + public async getSubmission(input: GetSubmissionInput): Promise { + const uploadId: number | undefined = await this.getUploadId(input); + if (!uploadId) return undefined; + const { rows } = await queryRunner.run( + new QueryBuilder(SubmissionSchema) + .select(..._.map(SubmissionSchema.columns)) + .where(SubmissionSchema.columns.uploadId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: uploadId, + }, + }) + .build() + ); + if (!rows || rows?.length === 0) return undefined; + return Submission.fromPartial(rows[0] as Submission); + } + + public async updateSubmission(input: UpdateSubmissionInput) { + await queryRunner.run( + new QueryBuilder(SubmissionSchema) + .update({ + ...input, + }) + .where(SubmissionSchema.columns.submissionId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.submissionId, + }, + }) + .build() + ); + } + + public async createSubmission(input: CreateSubmissionInput): Promise { + const createInput = { + ...input, + }; + const { lastInsertId } = await queryRunner.run( + new QueryBuilder(ReviewSchema).insert(createInput).build() + ); + return { + kind: { + $case: "integerId", + integerId: lastInsertId!, + }, + }; + } + + public async createResourceSubmission( + input: CreateResourceSubmissionInput + ): Promise { + const createInput = { + ...input, + }; + const { lastInsertId } = await queryRunner.run( + new QueryBuilder(ResourceSubmissionSchema).insert(createInput).build() + ); + return { + kind: { + $case: "integerId", + integerId: lastInsertId!, + }, + }; + } + + public async createReview(input: CreateReviewInput): Promise { + const createInput = { + ...input, + }; + const { lastInsertId } = await queryRunner.run( + new QueryBuilder(ReviewSchema).insert(createInput).build() + ); + return { + kind: { + $case: "integerId", + integerId: lastInsertId!, + }, + }; + } + + public async createReviewItem(input: CreateReviewItemInput): Promise { + const createInput = { + ...input, + }; + const { lastInsertId } = await queryRunner.run( + new QueryBuilder(ReviewItemSchema).insert(createInput).build() + ); + return { + kind: { + $case: "integerId", + integerId: lastInsertId!, + }, + }; + } + + public async createReviewItemComment(input: CreateReviewItemCommentInput): Promise { + const createInput = { + ...input, + }; + const { lastInsertId } = await queryRunner.run( + new QueryBuilder(ReviewItemCommentSchema).insert(createInput).build() + ); + return { + kind: { + $case: "integerId", + integerId: lastInsertId!, + }, + }; + } + + public async deleteReviewItem(reviewId: number) { + await queryRunner.run( + new QueryBuilder(ReviewItemSchema) + .delete() + .where(ReviewItemSchema.columns.reviewId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: reviewId, + }, + }) + .build() + ); + } + + public async getReviews(resourceId: number): Promise { + const { rows } = await queryRunner.run( + new QueryBuilder(ReviewSchema) + .select(..._.map(ReviewSchema.columns)) + .where(ReviewSchema.columns.resourceId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: resourceId, + }, + }) + .build() + ); + + return { items: rows!.map((r) => Review.fromPartial(r as Review)) }; + } + + public async deleteReview(resourceId: number) { + await queryRunner.run( + new QueryBuilder(ReviewSchema) + .delete() + .where(ReviewSchema.columns.resourceId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: resourceId, + }, + }) + .build() + ); + } + + public async deleteReviewComment(resourceId: number) { + await queryRunner.run( + new QueryBuilder(ReviewCommentSchema) + .delete() + .where(ReviewCommentSchema.columns.resourceId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: resourceId, + }, + }) + .build() + ); + } + + public async deleteReviewItemComment(resourceId: number) { + await queryRunner.run( + new QueryBuilder(ReviewItemCommentSchema) + .delete() + .where(ReviewItemCommentSchema.columns.resourceId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: resourceId, + }, + }) + .build() + ); + } + + public async getScorecardSections(scorecardGroupId: number): Promise { + const { rows } = await queryRunner.run( + new QueryBuilder(ScorecardSectionSchema) + .select(..._.map(ScorecardSectionSchema.columns)) + .where(ScorecardSectionSchema.columns.scorecardGroupId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: scorecardGroupId, + }, + }) + .build() + ); + return { items: rows!.map((r) => ScorecardSection.fromPartial(r as ScorecardSection)) }; + } + + public async getScorecardGroups(scorecardId: number): Promise { + const { rows } = await queryRunner.run( + new QueryBuilder(ScorecardGroupSchema) + .select(..._.map(ScorecardGroupSchema.columns)) + .where(ScorecardGroupSchema.columns.scorecardId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: scorecardId, + }, + }) + .build() + ); + return { items: rows!.map((r) => ScorecardGroup.fromPartial(r as ScorecardGroup)) }; + } +} + +export default new LegacyReviewDomain(); diff --git a/src/domain/Term.ts b/src/domain/Term.ts new file mode 100644 index 0000000..9f2cc0d --- /dev/null +++ b/src/domain/Term.ts @@ -0,0 +1,77 @@ +import { Operator, QueryBuilder } from "@topcoder-framework/client-relational"; +import { CreateResult } from "@topcoder-framework/lib-common"; +import _ from "lodash"; +import { queryRunner } from "../helper/QueryRunner"; +import { + CreateProjectRoleTermsOfUseXrefInput, + DeleteProjectRoleTermsOfUseXrefInput, + GetProjectRoleTermsOfUseXrefInput, + ProjectRoleTermsOfUseXref, + ProjectRoleTermsOfUseXrefList, +} from "../models/domain-layer/legacy/term"; +import { ProjectRoleTermsOfUseXrefSchema } from "../schema/terms/Term"; + +class LegacyTermDomain { + public async getProjectRoleTermsOfUseXrefs( + input: GetProjectRoleTermsOfUseXrefInput + ): Promise { + const { rows } = await queryRunner.run( + new QueryBuilder(ProjectRoleTermsOfUseXrefSchema) + .select(..._.map(ProjectRoleTermsOfUseXrefSchema.columns)) + .where(ProjectRoleTermsOfUseXrefSchema.columns.projectId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectId, + }, + }) + .build() + ); + return { + terms: rows!.map((r) => + ProjectRoleTermsOfUseXref.fromPartial(r as ProjectRoleTermsOfUseXref) + ), + }; // rows!.map(r =>) + } + + public async createProjectRoleTermsOfUseXref( + input: CreateProjectRoleTermsOfUseXrefInput + ): Promise { + const { lastInsertId } = await queryRunner.run( + new QueryBuilder(ProjectRoleTermsOfUseXrefSchema).insert({ ...input }).build() + ); + return { + kind: { + $case: "integerId", + integerId: lastInsertId!, + }, + }; + } + + public async deleteProjectRoleTermsOfUseXref(input: DeleteProjectRoleTermsOfUseXrefInput) { + await queryRunner.run( + new QueryBuilder(ProjectRoleTermsOfUseXrefSchema) + .delete() + .where(ProjectRoleTermsOfUseXrefSchema.columns.projectId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.projectId, + }, + }) + .andWhere(ProjectRoleTermsOfUseXrefSchema.columns.resourceRoleId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.resourceRoleId, + }, + }) + .andWhere(ProjectRoleTermsOfUseXrefSchema.columns.termsOfUseId, Operator.OPERATOR_EQUAL, { + value: { + $case: "intValue", + intValue: input.termsOfUseId, + }, + }) + .build() + ); + } +} + +export default new LegacyTermDomain(); diff --git a/src/helper/ChallengeHelper.ts b/src/helper/ChallengeHelper.ts new file mode 100644 index 0000000..8e6e197 --- /dev/null +++ b/src/helper/ChallengeHelper.ts @@ -0,0 +1,193 @@ +import { Query, QueryBuilder } from "@topcoder-framework/client-relational"; +import { Util } from "../common/Util"; +import { ObserverResourceInfoToAdd, ResourceInfoTypeIds } from "../config/constants"; +import { + CreateChallengeInput_Phase, + CreateChallengeInput_Prize, +} from "../models/domain-layer/legacy/challenge"; +import { PhaseCriteriaSchema } from "../schema/project/PhaseCriteria"; +import { ProjectSchema } from "../schema/project/Project"; +import { ProjectInfoSchema } from "../schema/project/ProjectInfo"; +import { ProjectPhaseSchema } from "../schema/project/ProjectPhase"; +import { PrizeSchema } from "../schema/project_payment/Prize"; +import { ResourceSchema } from "../schema/resource/Resource"; +import { ResourceInfoSchema } from "../schema/resource/ResourceInfo"; + +class ChallengeHelper { + public getChallengeCreateQuery( + { + projectStatusId, + projectCategoryId, + tcDirectProjectId, + }: { + projectStatusId: number; + projectCategoryId: number; + tcDirectProjectId: number; + }, + user: number | undefined = undefined + ): Query { + return new QueryBuilder(ProjectSchema) + .insert({ + projectCategoryId, + tcDirectProjectId, + projectStatusId, + createUser: user, + modifyUser: user, + }) + .build(); + } + + public getPrizeCreateQueries( + projectId: number, + prizes: CreateChallengeInput_Prize[], + user: number | undefined = undefined + ): Query[] { + console.log("Creating prize queries", prizes); + return prizes + .filter((prize) => prize.type === "Placement") + .map((prize) => { + try { + return new QueryBuilder(PrizeSchema) + .insert({ + projectId, + place: prize.place, + prizeAmount: prize.amount, + prizeTypeId: 15, + numberOfSubmissions: prize.numSubmissions, + createUser: user, + modifyUser: user, + }) + .build(); + } catch (err) { + console.log("Failed when handling", prize, err); + throw err; + } + }); + } + + public getChallengeInfoCreateQueries( + projectId: number, + infos: { [key: number]: string }, + user: number | undefined + ): Query[] { + return Object.entries(infos).map(([key, value]) => { + return new QueryBuilder(ProjectInfoSchema) + .insert({ + projectId, + projectInfoTypeId: key, + value: value, + createUser: user, + modifyUser: user, + }) + .build(); + }); + } + + public getPhaseCreateQuery( + projectId: number, + phase: CreateChallengeInput_Phase, + user: number | undefined + ): Query { + return new QueryBuilder(ProjectPhaseSchema) + .insert({ + projectId, + phaseTypeId: phase.phaseTypeId, + phaseStatusId: phase.phaseStatusId, + fixedStartTime: Util.formatDate(phase.fixedStartTime), + scheduledStartTime: Util.formatDate(phase.scheduledStartTime), + scheduledEndTime: Util.formatDate(phase.scheduledEndTime), + actualStartTime: Util.formatDate(phase.actualStartTime), + actualEndTime: Util.formatDate(phase.actualEndTime), + duration: phase.duration, + createUser: user, + modifyUser: user, + }) + .build(); + } + + public getPhaseCriteriaCreateQueries( + projectPhaseId: number, + criteria: { [key: number]: string }, + user: number | undefined + ): Query[] { + return Object.entries(criteria).map(([key, value]) => { + return new QueryBuilder(PhaseCriteriaSchema) + .insert({ + projectPhaseId, + phaseCriteriaTypeId: key, + parameter: value, + createUser: user, + modifyUser: user, + }) + .build(); + }); + } + + public getDirectProjectListUserQuery(directProjectId: number): Query { + return { + query: { + $case: "raw", + raw: { + query: `SELECT upg.user_id as user_id, u.handle as handle FROM corporate_oltp:user_permission_grant upg inner join tcs_catalog:user u on upg.user_id = u.user_id where resource_id = ${directProjectId}`, + }, + }, + }; + } + + public getResourceCreateQuery( + projectId: number, + userId: number, + resourceRoleId: number, + projectPhaseId: number | undefined, + user: number | undefined = undefined + ): Query { + return new QueryBuilder(ResourceSchema) + .insert({ + projectId, + userId, + resourceRoleId, + projectPhaseId, + createUser: user, + modifyUser: user, + }) + .build(); + } + + public getResourceInfoCreateQuery( + resourceId: number, + resourceInfoTypeId: number, + value: string, + user: number + ): Query { + return new QueryBuilder(ResourceInfoSchema) + .insert({ + resourceId, + resourceInfoTypeId, + value, + createUser: user, + modifyUser: user, + }) + .build(); + } + + public getObserverResourceInfoCreateQueries( + resourceId: number, + userId: number, + handle: string, + user: number | undefined + ): Query[] { + return ObserverResourceInfoToAdd.map((info) => { + let value: string = handle; + + if (info === "AppealsCompletedEarly") value = "NO"; + if (info === "PaymentStatus") value = "N/A"; + if (info === "RegistrationDate") value = Util.formatDate(new Date().toISOString())!; + if (info === "Handle") value = handle; + if (info === "ExternalReferenceId") value = userId.toString(); + + return this.getResourceInfoCreateQuery(resourceId, ResourceInfoTypeIds[info], value, user!); + }); + } +} + +export default new ChallengeHelper(); diff --git a/src/helper/UserHelper.ts b/src/helper/UserHelper.ts new file mode 100644 index 0000000..0164154 --- /dev/null +++ b/src/helper/UserHelper.ts @@ -0,0 +1,19 @@ +import { Operator, Query, QueryBuilder, Value } from "@topcoder-framework/client-relational"; +import { UserSchema } from "../schema/member/User"; + +class UserHelper { + public getUserHandleQuery(userId: number): Query { + const userIdValue: Value = { + value: { + $case: "intValue", + intValue: userId, + }, + }; + return new QueryBuilder(UserSchema) + .select(UserSchema.columns.handleLower) + .where(UserSchema.columns.userId, Operator.OPERATOR_EQUAL, userIdValue) + .build(); + } +} + +export default new UserHelper(); diff --git a/src/helper/util.ts b/src/helper/util.ts deleted file mode 100644 index 6c16e29..0000000 --- a/src/helper/util.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Value } from "@topcoder-framework/client-relational"; - -class Util { - public toIntValue(val: number): Value { - return { - value: { - $case: "intValue", - intValue: val, - }, - }; - } - - public toFloatValue(val: number): Value { - return { - value: { - $case: "floatValue", - floatValue: val, - }, - }; - } - - public toStringValue(val: string): Value { - return { - value: { - $case: "stringValue", - stringValue: val, - }, - }; - } - - public toDatetimeValue(val: string): Value { - return { - value: { - $case: "datetimeValue", - datetimeValue: val, - }, - }; - } -} diff --git a/src/models/domain-layer/legacy/challenge.ts b/src/models/domain-layer/legacy/challenge.ts index 804f16f..309fd31 100644 --- a/src/models/domain-layer/legacy/challenge.ts +++ b/src/models/domain-layer/legacy/challenge.ts @@ -21,34 +21,60 @@ export interface LegacyChallengeList { legacyChallenges: LegacyChallenge[]; } -export interface CheckChallengeExistsResponse { - exists: boolean; -} - export interface CreateChallengeInput { name: string; projectStatusId: number; projectCategoryId: number; + projectStudioSpecId?: number | undefined; + projectMmSpecId?: number | undefined; tcDirectProjectId: number; - winnerPrizes: number[]; - copilotCost: number; + winnerPrizes: CreateChallengeInput_Prize[]; reviewType?: string | undefined; - reviewCost?: number | undefined; - timelineNotification: boolean; - statusNotification: boolean; - rated: boolean; confidentialityType: string; billingProject: number; - reliabilityBonusCost?: number | undefined; - checkpointBonusCost?: number | undefined; - projectInfo: { [key: string]: string }; + projectInfo: { [key: number]: string }; + phases: CreateChallengeInput_Phase[]; } export interface CreateChallengeInput_ProjectInfoEntry { - key: string; + key: number; value: string; } +export interface CreateChallengeInput_Prize { + place: number; + amount: number; + type: string; + numSubmissions: number; +} + +export interface CreateChallengeInput_Phase { + phaseTypeId: number; + phaseStatusId: number; + fixedStartTime?: string | undefined; + scheduledStartTime: string; + scheduledEndTime: string; + actualStartTime?: string | undefined; + actualEndTime?: string | undefined; + duration: number; + phaseCriteria: { [key: number]: string }; +} + +export interface CreateChallengeInput_Phase_PhaseCriteriaEntry { + key: number; + value: string; +} + +export interface UpdateChallengeInput { + projectId: number; + projectStatusId: number; +} + +export interface CloseChallengeInput { + projectId: number; + winnerId: number; +} + function createBaseLegacyChallenge(): LegacyChallenge { return { projectId: 0, @@ -284,75 +310,20 @@ export const LegacyChallengeList = { }, }; -function createBaseCheckChallengeExistsResponse(): CheckChallengeExistsResponse { - return { exists: false }; -} - -export const CheckChallengeExistsResponse = { - encode(message: CheckChallengeExistsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.exists === true) { - writer.uint32(8).bool(message.exists); - } - return writer; - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): CheckChallengeExistsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseCheckChallengeExistsResponse(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.exists = reader.bool(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }, - - fromJSON(object: any): CheckChallengeExistsResponse { - return { exists: isSet(object.exists) ? Boolean(object.exists) : false }; - }, - - toJSON(message: CheckChallengeExistsResponse): unknown { - const obj: any = {}; - message.exists !== undefined && (obj.exists = message.exists); - return obj; - }, - - create, I>>(base?: I): CheckChallengeExistsResponse { - return CheckChallengeExistsResponse.fromPartial(base ?? {}); - }, - - fromPartial, I>>(object: I): CheckChallengeExistsResponse { - const message = createBaseCheckChallengeExistsResponse(); - message.exists = object.exists ?? false; - return message; - }, -}; - function createBaseCreateChallengeInput(): CreateChallengeInput { return { name: "", projectStatusId: 0, projectCategoryId: 0, + projectStudioSpecId: undefined, + projectMmSpecId: undefined, tcDirectProjectId: 0, winnerPrizes: [], - copilotCost: 0, reviewType: undefined, - reviewCost: undefined, - timelineNotification: false, - statusNotification: false, - rated: false, confidentialityType: "", billingProject: 0, - reliabilityBonusCost: undefined, - checkpointBonusCost: undefined, projectInfo: {}, + phases: [], }; } @@ -367,47 +338,33 @@ export const CreateChallengeInput = { if (message.projectCategoryId !== 0) { writer.uint32(24).int32(message.projectCategoryId); } + if (message.projectStudioSpecId !== undefined) { + writer.uint32(32).int32(message.projectStudioSpecId); + } + if (message.projectMmSpecId !== undefined) { + writer.uint32(40).int32(message.projectMmSpecId); + } if (message.tcDirectProjectId !== 0) { - writer.uint32(32).int64(message.tcDirectProjectId); + writer.uint32(48).int64(message.tcDirectProjectId); } - writer.uint32(42).fork(); for (const v of message.winnerPrizes) { - writer.float(v); - } - writer.ldelim(); - if (message.copilotCost !== 0) { - writer.uint32(53).float(message.copilotCost); + CreateChallengeInput_Prize.encode(v!, writer.uint32(58).fork()).ldelim(); } if (message.reviewType !== undefined) { - writer.uint32(58).string(message.reviewType); - } - if (message.reviewCost !== undefined) { - writer.uint32(69).float(message.reviewCost); - } - if (message.timelineNotification === true) { - writer.uint32(72).bool(message.timelineNotification); - } - if (message.statusNotification === true) { - writer.uint32(80).bool(message.statusNotification); - } - if (message.rated === true) { - writer.uint32(88).bool(message.rated); + writer.uint32(66).string(message.reviewType); } if (message.confidentialityType !== "") { - writer.uint32(98).string(message.confidentialityType); + writer.uint32(74).string(message.confidentialityType); } if (message.billingProject !== 0) { - writer.uint32(104).int32(message.billingProject); - } - if (message.reliabilityBonusCost !== undefined) { - writer.uint32(117).float(message.reliabilityBonusCost); - } - if (message.checkpointBonusCost !== undefined) { - writer.uint32(125).float(message.checkpointBonusCost); + writer.uint32(80).int32(message.billingProject); } Object.entries(message.projectInfo).forEach(([key, value]) => { - CreateChallengeInput_ProjectInfoEntry.encode({ key: key as any, value }, writer.uint32(130).fork()).ldelim(); + CreateChallengeInput_ProjectInfoEntry.encode({ key: key as any, value }, writer.uint32(90).fork()).ldelim(); }); + for (const v of message.phases) { + CreateChallengeInput_Phase.encode(v!, writer.uint32(106).fork()).ldelim(); + } return writer; }, @@ -428,53 +385,34 @@ export const CreateChallengeInput = { message.projectCategoryId = reader.int32(); break; case 4: - message.tcDirectProjectId = longToNumber(reader.int64() as Long); + message.projectStudioSpecId = reader.int32(); break; case 5: - if ((tag & 7) === 2) { - const end2 = reader.uint32() + reader.pos; - while (reader.pos < end2) { - message.winnerPrizes.push(reader.float()); - } - } else { - message.winnerPrizes.push(reader.float()); - } + message.projectMmSpecId = reader.int32(); break; case 6: - message.copilotCost = reader.float(); + message.tcDirectProjectId = longToNumber(reader.int64() as Long); break; case 7: - message.reviewType = reader.string(); + message.winnerPrizes.push(CreateChallengeInput_Prize.decode(reader, reader.uint32())); break; case 8: - message.reviewCost = reader.float(); + message.reviewType = reader.string(); break; case 9: - message.timelineNotification = reader.bool(); + message.confidentialityType = reader.string(); break; case 10: - message.statusNotification = reader.bool(); + message.billingProject = reader.int32(); break; case 11: - message.rated = reader.bool(); - break; - case 12: - message.confidentialityType = reader.string(); + const entry11 = CreateChallengeInput_ProjectInfoEntry.decode(reader, reader.uint32()); + if (entry11.value !== undefined) { + message.projectInfo[entry11.key] = entry11.value; + } break; case 13: - message.billingProject = reader.int32(); - break; - case 14: - message.reliabilityBonusCost = reader.float(); - break; - case 15: - message.checkpointBonusCost = reader.float(); - break; - case 16: - const entry16 = CreateChallengeInput_ProjectInfoEntry.decode(reader, reader.uint32()); - if (entry16.value !== undefined) { - message.projectInfo[entry16.key] = entry16.value; - } + message.phases.push(CreateChallengeInput_Phase.decode(reader, reader.uint32())); break; default: reader.skipType(tag & 7); @@ -489,24 +427,24 @@ export const CreateChallengeInput = { name: isSet(object.name) ? String(object.name) : "", projectStatusId: isSet(object.projectStatusId) ? Number(object.projectStatusId) : 0, projectCategoryId: isSet(object.projectCategoryId) ? Number(object.projectCategoryId) : 0, + projectStudioSpecId: isSet(object.projectStudioSpecId) ? Number(object.projectStudioSpecId) : undefined, + projectMmSpecId: isSet(object.projectMmSpecId) ? Number(object.projectMmSpecId) : undefined, tcDirectProjectId: isSet(object.tcDirectProjectId) ? Number(object.tcDirectProjectId) : 0, - winnerPrizes: Array.isArray(object?.winnerPrizes) ? object.winnerPrizes.map((e: any) => Number(e)) : [], - copilotCost: isSet(object.copilotCost) ? Number(object.copilotCost) : 0, + winnerPrizes: Array.isArray(object?.winnerPrizes) + ? object.winnerPrizes.map((e: any) => CreateChallengeInput_Prize.fromJSON(e)) + : [], reviewType: isSet(object.reviewType) ? String(object.reviewType) : undefined, - reviewCost: isSet(object.reviewCost) ? Number(object.reviewCost) : undefined, - timelineNotification: isSet(object.timelineNotification) ? Boolean(object.timelineNotification) : false, - statusNotification: isSet(object.statusNotification) ? Boolean(object.statusNotification) : false, - rated: isSet(object.rated) ? Boolean(object.rated) : false, confidentialityType: isSet(object.confidentialityType) ? String(object.confidentialityType) : "", billingProject: isSet(object.billingProject) ? Number(object.billingProject) : 0, - reliabilityBonusCost: isSet(object.reliabilityBonusCost) ? Number(object.reliabilityBonusCost) : undefined, - checkpointBonusCost: isSet(object.checkpointBonusCost) ? Number(object.checkpointBonusCost) : undefined, projectInfo: isObject(object.projectInfo) - ? Object.entries(object.projectInfo).reduce<{ [key: string]: string }>((acc, [key, value]) => { - acc[key] = String(value); + ? Object.entries(object.projectInfo).reduce<{ [key: number]: string }>((acc, [key, value]) => { + acc[Number(key)] = String(value); return acc; }, {}) : {}, + phases: Array.isArray(object?.phases) + ? object.phases.map((e: any) => CreateChallengeInput_Phase.fromJSON(e)) + : [], }; }, @@ -515,28 +453,28 @@ export const CreateChallengeInput = { message.name !== undefined && (obj.name = message.name); message.projectStatusId !== undefined && (obj.projectStatusId = Math.round(message.projectStatusId)); message.projectCategoryId !== undefined && (obj.projectCategoryId = Math.round(message.projectCategoryId)); + message.projectStudioSpecId !== undefined && (obj.projectStudioSpecId = Math.round(message.projectStudioSpecId)); + message.projectMmSpecId !== undefined && (obj.projectMmSpecId = Math.round(message.projectMmSpecId)); message.tcDirectProjectId !== undefined && (obj.tcDirectProjectId = Math.round(message.tcDirectProjectId)); if (message.winnerPrizes) { - obj.winnerPrizes = message.winnerPrizes.map((e) => e); + obj.winnerPrizes = message.winnerPrizes.map((e) => e ? CreateChallengeInput_Prize.toJSON(e) : undefined); } else { obj.winnerPrizes = []; } - message.copilotCost !== undefined && (obj.copilotCost = message.copilotCost); message.reviewType !== undefined && (obj.reviewType = message.reviewType); - message.reviewCost !== undefined && (obj.reviewCost = message.reviewCost); - message.timelineNotification !== undefined && (obj.timelineNotification = message.timelineNotification); - message.statusNotification !== undefined && (obj.statusNotification = message.statusNotification); - message.rated !== undefined && (obj.rated = message.rated); message.confidentialityType !== undefined && (obj.confidentialityType = message.confidentialityType); message.billingProject !== undefined && (obj.billingProject = Math.round(message.billingProject)); - message.reliabilityBonusCost !== undefined && (obj.reliabilityBonusCost = message.reliabilityBonusCost); - message.checkpointBonusCost !== undefined && (obj.checkpointBonusCost = message.checkpointBonusCost); obj.projectInfo = {}; if (message.projectInfo) { Object.entries(message.projectInfo).forEach(([k, v]) => { obj.projectInfo[k] = v; }); } + if (message.phases) { + obj.phases = message.phases.map((e) => e ? CreateChallengeInput_Phase.toJSON(e) : undefined); + } else { + obj.phases = []; + } return obj; }, @@ -549,39 +487,35 @@ export const CreateChallengeInput = { message.name = object.name ?? ""; message.projectStatusId = object.projectStatusId ?? 0; message.projectCategoryId = object.projectCategoryId ?? 0; + message.projectStudioSpecId = object.projectStudioSpecId ?? undefined; + message.projectMmSpecId = object.projectMmSpecId ?? undefined; message.tcDirectProjectId = object.tcDirectProjectId ?? 0; - message.winnerPrizes = object.winnerPrizes?.map((e) => e) || []; - message.copilotCost = object.copilotCost ?? 0; + message.winnerPrizes = object.winnerPrizes?.map((e) => CreateChallengeInput_Prize.fromPartial(e)) || []; message.reviewType = object.reviewType ?? undefined; - message.reviewCost = object.reviewCost ?? undefined; - message.timelineNotification = object.timelineNotification ?? false; - message.statusNotification = object.statusNotification ?? false; - message.rated = object.rated ?? false; message.confidentialityType = object.confidentialityType ?? ""; message.billingProject = object.billingProject ?? 0; - message.reliabilityBonusCost = object.reliabilityBonusCost ?? undefined; - message.checkpointBonusCost = object.checkpointBonusCost ?? undefined; - message.projectInfo = Object.entries(object.projectInfo ?? {}).reduce<{ [key: string]: string }>( + message.projectInfo = Object.entries(object.projectInfo ?? {}).reduce<{ [key: number]: string }>( (acc, [key, value]) => { if (value !== undefined) { - acc[key] = String(value); + acc[Number(key)] = String(value); } return acc; }, {}, ); + message.phases = object.phases?.map((e) => CreateChallengeInput_Phase.fromPartial(e)) || []; return message; }, }; function createBaseCreateChallengeInput_ProjectInfoEntry(): CreateChallengeInput_ProjectInfoEntry { - return { key: "", value: "" }; + return { key: 0, value: "" }; } export const CreateChallengeInput_ProjectInfoEntry = { encode(message: CreateChallengeInput_ProjectInfoEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.key !== "") { - writer.uint32(10).string(message.key); + if (message.key !== 0) { + writer.uint32(8).sint32(message.key); } if (message.value !== "") { writer.uint32(18).string(message.value); @@ -597,7 +531,7 @@ export const CreateChallengeInput_ProjectInfoEntry = { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.key = reader.string(); + message.key = reader.sint32(); break; case 2: message.value = reader.string(); @@ -611,12 +545,12 @@ export const CreateChallengeInput_ProjectInfoEntry = { }, fromJSON(object: any): CreateChallengeInput_ProjectInfoEntry { - return { key: isSet(object.key) ? String(object.key) : "", value: isSet(object.value) ? String(object.value) : "" }; + return { key: isSet(object.key) ? Number(object.key) : 0, value: isSet(object.value) ? String(object.value) : "" }; }, toJSON(message: CreateChallengeInput_ProjectInfoEntry): unknown { const obj: any = {}; - message.key !== undefined && (obj.key = message.key); + message.key !== undefined && (obj.key = Math.round(message.key)); message.value !== undefined && (obj.value = message.value); return obj; }, @@ -631,12 +565,436 @@ export const CreateChallengeInput_ProjectInfoEntry = { object: I, ): CreateChallengeInput_ProjectInfoEntry { const message = createBaseCreateChallengeInput_ProjectInfoEntry(); - message.key = object.key ?? ""; + message.key = object.key ?? 0; message.value = object.value ?? ""; return message; }, }; +function createBaseCreateChallengeInput_Prize(): CreateChallengeInput_Prize { + return { place: 0, amount: 0, type: "", numSubmissions: 0 }; +} + +export const CreateChallengeInput_Prize = { + encode(message: CreateChallengeInput_Prize, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.place !== 0) { + writer.uint32(8).int32(message.place); + } + if (message.amount !== 0) { + writer.uint32(21).float(message.amount); + } + if (message.type !== "") { + writer.uint32(26).string(message.type); + } + if (message.numSubmissions !== 0) { + writer.uint32(32).int32(message.numSubmissions); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateChallengeInput_Prize { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateChallengeInput_Prize(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.place = reader.int32(); + break; + case 2: + message.amount = reader.float(); + break; + case 3: + message.type = reader.string(); + break; + case 4: + message.numSubmissions = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreateChallengeInput_Prize { + return { + place: isSet(object.place) ? Number(object.place) : 0, + amount: isSet(object.amount) ? Number(object.amount) : 0, + type: isSet(object.type) ? String(object.type) : "", + numSubmissions: isSet(object.numSubmissions) ? Number(object.numSubmissions) : 0, + }; + }, + + toJSON(message: CreateChallengeInput_Prize): unknown { + const obj: any = {}; + message.place !== undefined && (obj.place = Math.round(message.place)); + message.amount !== undefined && (obj.amount = message.amount); + message.type !== undefined && (obj.type = message.type); + message.numSubmissions !== undefined && (obj.numSubmissions = Math.round(message.numSubmissions)); + return obj; + }, + + create, I>>(base?: I): CreateChallengeInput_Prize { + return CreateChallengeInput_Prize.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): CreateChallengeInput_Prize { + const message = createBaseCreateChallengeInput_Prize(); + message.place = object.place ?? 0; + message.amount = object.amount ?? 0; + message.type = object.type ?? ""; + message.numSubmissions = object.numSubmissions ?? 0; + return message; + }, +}; + +function createBaseCreateChallengeInput_Phase(): CreateChallengeInput_Phase { + return { + phaseTypeId: 0, + phaseStatusId: 0, + fixedStartTime: undefined, + scheduledStartTime: "", + scheduledEndTime: "", + actualStartTime: undefined, + actualEndTime: undefined, + duration: 0, + phaseCriteria: {}, + }; +} + +export const CreateChallengeInput_Phase = { + encode(message: CreateChallengeInput_Phase, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.phaseTypeId !== 0) { + writer.uint32(8).sint32(message.phaseTypeId); + } + if (message.phaseStatusId !== 0) { + writer.uint32(16).sint32(message.phaseStatusId); + } + if (message.fixedStartTime !== undefined) { + writer.uint32(26).string(message.fixedStartTime); + } + if (message.scheduledStartTime !== "") { + writer.uint32(34).string(message.scheduledStartTime); + } + if (message.scheduledEndTime !== "") { + writer.uint32(42).string(message.scheduledEndTime); + } + if (message.actualStartTime !== undefined) { + writer.uint32(50).string(message.actualStartTime); + } + if (message.actualEndTime !== undefined) { + writer.uint32(58).string(message.actualEndTime); + } + if (message.duration !== 0) { + writer.uint32(64).int32(message.duration); + } + Object.entries(message.phaseCriteria).forEach(([key, value]) => { + CreateChallengeInput_Phase_PhaseCriteriaEntry.encode({ key: key as any, value }, writer.uint32(74).fork()) + .ldelim(); + }); + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateChallengeInput_Phase { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateChallengeInput_Phase(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.phaseTypeId = reader.sint32(); + break; + case 2: + message.phaseStatusId = reader.sint32(); + break; + case 3: + message.fixedStartTime = reader.string(); + break; + case 4: + message.scheduledStartTime = reader.string(); + break; + case 5: + message.scheduledEndTime = reader.string(); + break; + case 6: + message.actualStartTime = reader.string(); + break; + case 7: + message.actualEndTime = reader.string(); + break; + case 8: + message.duration = reader.int32(); + break; + case 9: + const entry9 = CreateChallengeInput_Phase_PhaseCriteriaEntry.decode(reader, reader.uint32()); + if (entry9.value !== undefined) { + message.phaseCriteria[entry9.key] = entry9.value; + } + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreateChallengeInput_Phase { + return { + phaseTypeId: isSet(object.phaseTypeId) ? Number(object.phaseTypeId) : 0, + phaseStatusId: isSet(object.phaseStatusId) ? Number(object.phaseStatusId) : 0, + fixedStartTime: isSet(object.fixedStartTime) ? String(object.fixedStartTime) : undefined, + scheduledStartTime: isSet(object.scheduledStartTime) ? String(object.scheduledStartTime) : "", + scheduledEndTime: isSet(object.scheduledEndTime) ? String(object.scheduledEndTime) : "", + actualStartTime: isSet(object.actualStartTime) ? String(object.actualStartTime) : undefined, + actualEndTime: isSet(object.actualEndTime) ? String(object.actualEndTime) : undefined, + duration: isSet(object.duration) ? Number(object.duration) : 0, + phaseCriteria: isObject(object.phaseCriteria) + ? Object.entries(object.phaseCriteria).reduce<{ [key: number]: string }>((acc, [key, value]) => { + acc[Number(key)] = String(value); + return acc; + }, {}) + : {}, + }; + }, + + toJSON(message: CreateChallengeInput_Phase): unknown { + const obj: any = {}; + message.phaseTypeId !== undefined && (obj.phaseTypeId = Math.round(message.phaseTypeId)); + message.phaseStatusId !== undefined && (obj.phaseStatusId = Math.round(message.phaseStatusId)); + message.fixedStartTime !== undefined && (obj.fixedStartTime = message.fixedStartTime); + message.scheduledStartTime !== undefined && (obj.scheduledStartTime = message.scheduledStartTime); + message.scheduledEndTime !== undefined && (obj.scheduledEndTime = message.scheduledEndTime); + message.actualStartTime !== undefined && (obj.actualStartTime = message.actualStartTime); + message.actualEndTime !== undefined && (obj.actualEndTime = message.actualEndTime); + message.duration !== undefined && (obj.duration = Math.round(message.duration)); + obj.phaseCriteria = {}; + if (message.phaseCriteria) { + Object.entries(message.phaseCriteria).forEach(([k, v]) => { + obj.phaseCriteria[k] = v; + }); + } + return obj; + }, + + create, I>>(base?: I): CreateChallengeInput_Phase { + return CreateChallengeInput_Phase.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): CreateChallengeInput_Phase { + const message = createBaseCreateChallengeInput_Phase(); + message.phaseTypeId = object.phaseTypeId ?? 0; + message.phaseStatusId = object.phaseStatusId ?? 0; + message.fixedStartTime = object.fixedStartTime ?? undefined; + message.scheduledStartTime = object.scheduledStartTime ?? ""; + message.scheduledEndTime = object.scheduledEndTime ?? ""; + message.actualStartTime = object.actualStartTime ?? undefined; + message.actualEndTime = object.actualEndTime ?? undefined; + message.duration = object.duration ?? 0; + message.phaseCriteria = Object.entries(object.phaseCriteria ?? {}).reduce<{ [key: number]: string }>( + (acc, [key, value]) => { + if (value !== undefined) { + acc[Number(key)] = String(value); + } + return acc; + }, + {}, + ); + return message; + }, +}; + +function createBaseCreateChallengeInput_Phase_PhaseCriteriaEntry(): CreateChallengeInput_Phase_PhaseCriteriaEntry { + return { key: 0, value: "" }; +} + +export const CreateChallengeInput_Phase_PhaseCriteriaEntry = { + encode(message: CreateChallengeInput_Phase_PhaseCriteriaEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.key !== 0) { + writer.uint32(8).sint32(message.key); + } + if (message.value !== "") { + writer.uint32(18).string(message.value); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateChallengeInput_Phase_PhaseCriteriaEntry { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateChallengeInput_Phase_PhaseCriteriaEntry(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.key = reader.sint32(); + break; + case 2: + message.value = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreateChallengeInput_Phase_PhaseCriteriaEntry { + return { key: isSet(object.key) ? Number(object.key) : 0, value: isSet(object.value) ? String(object.value) : "" }; + }, + + toJSON(message: CreateChallengeInput_Phase_PhaseCriteriaEntry): unknown { + const obj: any = {}; + message.key !== undefined && (obj.key = Math.round(message.key)); + message.value !== undefined && (obj.value = message.value); + return obj; + }, + + create, I>>( + base?: I, + ): CreateChallengeInput_Phase_PhaseCriteriaEntry { + return CreateChallengeInput_Phase_PhaseCriteriaEntry.fromPartial(base ?? {}); + }, + + fromPartial, I>>( + object: I, + ): CreateChallengeInput_Phase_PhaseCriteriaEntry { + const message = createBaseCreateChallengeInput_Phase_PhaseCriteriaEntry(); + message.key = object.key ?? 0; + message.value = object.value ?? ""; + return message; + }, +}; + +function createBaseUpdateChallengeInput(): UpdateChallengeInput { + return { projectId: 0, projectStatusId: 0 }; +} + +export const UpdateChallengeInput = { + encode(message: UpdateChallengeInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int32(message.projectId); + } + if (message.projectStatusId !== 0) { + writer.uint32(16).int32(message.projectStatusId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UpdateChallengeInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpdateChallengeInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = reader.int32(); + break; + case 2: + message.projectStatusId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): UpdateChallengeInput { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + projectStatusId: isSet(object.projectStatusId) ? Number(object.projectStatusId) : 0, + }; + }, + + toJSON(message: UpdateChallengeInput): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.projectStatusId !== undefined && (obj.projectStatusId = Math.round(message.projectStatusId)); + return obj; + }, + + create, I>>(base?: I): UpdateChallengeInput { + return UpdateChallengeInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): UpdateChallengeInput { + const message = createBaseUpdateChallengeInput(); + message.projectId = object.projectId ?? 0; + message.projectStatusId = object.projectStatusId ?? 0; + return message; + }, +}; + +function createBaseCloseChallengeInput(): CloseChallengeInput { + return { projectId: 0, winnerId: 0 }; +} + +export const CloseChallengeInput = { + encode(message: CloseChallengeInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int32(message.projectId); + } + if (message.winnerId !== 0) { + writer.uint32(16).int32(message.winnerId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CloseChallengeInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCloseChallengeInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = reader.int32(); + break; + case 2: + message.winnerId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CloseChallengeInput { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + winnerId: isSet(object.winnerId) ? Number(object.winnerId) : 0, + }; + }, + + toJSON(message: CloseChallengeInput): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.winnerId !== undefined && (obj.winnerId = Math.round(message.winnerId)); + return obj; + }, + + create, I>>(base?: I): CloseChallengeInput { + return CloseChallengeInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): CloseChallengeInput { + const message = createBaseCloseChallengeInput(); + message.projectId = object.projectId ?? 0; + message.winnerId = object.winnerId ?? 0; + return message; + }, +}; + declare var self: any | undefined; declare var window: any | undefined; declare var global: any | undefined; diff --git a/src/models/domain-layer/legacy/challenge_payment.ts b/src/models/domain-layer/legacy/challenge_payment.ts index 3c54c8f..01bc45c 100644 --- a/src/models/domain-layer/legacy/challenge_payment.ts +++ b/src/models/domain-layer/legacy/challenge_payment.ts @@ -3,24 +3,55 @@ import Long from "long"; import _m0 from "protobufjs/minimal"; export interface LegacyChallengePayment { - place: number; - prizeId: number; - projectId: number; - prizeTypeId: number; - prizeAmount: number; + projectPaymentId: number; + projectPaymentTypeId: number; + resourceId: number; + submissionId: number; + amount: number; + pactsPaymentId: number; createUser: number; createDate: number; modifyUser: number; modifyDate: number; } +export interface LegacyChallengePaymentList { + projectPayments: LegacyChallengePayment[]; +} + +export interface GetLegacyChallengePaymentInput { + resourceId: number; + projectPaymentTypeId: number; +} + +export interface CreateLegacyChallengePaymentInput { + projectPaymentId?: number | undefined; + projectPaymentTypeId: number; + resourceId: number; + submissionId?: number | undefined; + amount: number; + pactsPaymentId?: number | undefined; +} + +export interface UpdateLegacyChallengePaymentInput { + resourceId: number; + projectPaymentTypeId: number; + amount: number; +} + +export interface DeleteLegacyChallengePaymentInput { + resourceId: number; + projectPaymentTypeId: number; +} + function createBaseLegacyChallengePayment(): LegacyChallengePayment { return { - place: 0, - prizeId: 0, - projectId: 0, - prizeTypeId: 0, - prizeAmount: 0, + projectPaymentId: 0, + projectPaymentTypeId: 0, + resourceId: 0, + submissionId: 0, + amount: 0, + pactsPaymentId: 0, createUser: 0, createDate: 0, modifyUser: 0, @@ -30,32 +61,35 @@ function createBaseLegacyChallengePayment(): LegacyChallengePayment { export const LegacyChallengePayment = { encode(message: LegacyChallengePayment, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.place !== 0) { - writer.uint32(8).int32(message.place); + if (message.projectPaymentId !== 0) { + writer.uint32(8).int32(message.projectPaymentId); + } + if (message.projectPaymentTypeId !== 0) { + writer.uint32(16).int32(message.projectPaymentTypeId); } - if (message.prizeId !== 0) { - writer.uint32(16).int32(message.prizeId); + if (message.resourceId !== 0) { + writer.uint32(24).int32(message.resourceId); } - if (message.projectId !== 0) { - writer.uint32(24).int32(message.projectId); + if (message.submissionId !== 0) { + writer.uint32(32).int32(message.submissionId); } - if (message.prizeTypeId !== 0) { - writer.uint32(32).int32(message.prizeTypeId); + if (message.amount !== 0) { + writer.uint32(45).float(message.amount); } - if (message.prizeAmount !== 0) { - writer.uint32(45).float(message.prizeAmount); + if (message.pactsPaymentId !== 0) { + writer.uint32(48).int32(message.pactsPaymentId); } if (message.createUser !== 0) { - writer.uint32(48).int32(message.createUser); + writer.uint32(56).int32(message.createUser); } if (message.createDate !== 0) { - writer.uint32(56).int64(message.createDate); + writer.uint32(64).int64(message.createDate); } if (message.modifyUser !== 0) { - writer.uint32(64).int32(message.modifyUser); + writer.uint32(72).int32(message.modifyUser); } if (message.modifyDate !== 0) { - writer.uint32(72).int64(message.modifyDate); + writer.uint32(80).int64(message.modifyDate); } return writer; }, @@ -68,30 +102,33 @@ export const LegacyChallengePayment = { const tag = reader.uint32(); switch (tag >>> 3) { case 1: - message.place = reader.int32(); + message.projectPaymentId = reader.int32(); break; case 2: - message.prizeId = reader.int32(); + message.projectPaymentTypeId = reader.int32(); break; case 3: - message.projectId = reader.int32(); + message.resourceId = reader.int32(); break; case 4: - message.prizeTypeId = reader.int32(); + message.submissionId = reader.int32(); break; case 5: - message.prizeAmount = reader.float(); + message.amount = reader.float(); break; case 6: - message.createUser = reader.int32(); + message.pactsPaymentId = reader.int32(); break; case 7: - message.createDate = longToNumber(reader.int64() as Long); + message.createUser = reader.int32(); break; case 8: - message.modifyUser = reader.int32(); + message.createDate = longToNumber(reader.int64() as Long); break; case 9: + message.modifyUser = reader.int32(); + break; + case 10: message.modifyDate = longToNumber(reader.int64() as Long); break; default: @@ -104,11 +141,12 @@ export const LegacyChallengePayment = { fromJSON(object: any): LegacyChallengePayment { return { - place: isSet(object.place) ? Number(object.place) : 0, - prizeId: isSet(object.prizeId) ? Number(object.prizeId) : 0, - projectId: isSet(object.projectId) ? Number(object.projectId) : 0, - prizeTypeId: isSet(object.prizeTypeId) ? Number(object.prizeTypeId) : 0, - prizeAmount: isSet(object.prizeAmount) ? Number(object.prizeAmount) : 0, + projectPaymentId: isSet(object.projectPaymentId) ? Number(object.projectPaymentId) : 0, + projectPaymentTypeId: isSet(object.projectPaymentTypeId) ? Number(object.projectPaymentTypeId) : 0, + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + submissionId: isSet(object.submissionId) ? Number(object.submissionId) : 0, + amount: isSet(object.amount) ? Number(object.amount) : 0, + pactsPaymentId: isSet(object.pactsPaymentId) ? Number(object.pactsPaymentId) : 0, createUser: isSet(object.createUser) ? Number(object.createUser) : 0, createDate: isSet(object.createDate) ? Number(object.createDate) : 0, modifyUser: isSet(object.modifyUser) ? Number(object.modifyUser) : 0, @@ -118,11 +156,12 @@ export const LegacyChallengePayment = { toJSON(message: LegacyChallengePayment): unknown { const obj: any = {}; - message.place !== undefined && (obj.place = Math.round(message.place)); - message.prizeId !== undefined && (obj.prizeId = Math.round(message.prizeId)); - message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); - message.prizeTypeId !== undefined && (obj.prizeTypeId = Math.round(message.prizeTypeId)); - message.prizeAmount !== undefined && (obj.prizeAmount = message.prizeAmount); + message.projectPaymentId !== undefined && (obj.projectPaymentId = Math.round(message.projectPaymentId)); + message.projectPaymentTypeId !== undefined && (obj.projectPaymentTypeId = Math.round(message.projectPaymentTypeId)); + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.submissionId !== undefined && (obj.submissionId = Math.round(message.submissionId)); + message.amount !== undefined && (obj.amount = message.amount); + message.pactsPaymentId !== undefined && (obj.pactsPaymentId = Math.round(message.pactsPaymentId)); message.createUser !== undefined && (obj.createUser = Math.round(message.createUser)); message.createDate !== undefined && (obj.createDate = Math.round(message.createDate)); message.modifyUser !== undefined && (obj.modifyUser = Math.round(message.modifyUser)); @@ -136,11 +175,12 @@ export const LegacyChallengePayment = { fromPartial, I>>(object: I): LegacyChallengePayment { const message = createBaseLegacyChallengePayment(); - message.place = object.place ?? 0; - message.prizeId = object.prizeId ?? 0; - message.projectId = object.projectId ?? 0; - message.prizeTypeId = object.prizeTypeId ?? 0; - message.prizeAmount = object.prizeAmount ?? 0; + message.projectPaymentId = object.projectPaymentId ?? 0; + message.projectPaymentTypeId = object.projectPaymentTypeId ?? 0; + message.resourceId = object.resourceId ?? 0; + message.submissionId = object.submissionId ?? 0; + message.amount = object.amount ?? 0; + message.pactsPaymentId = object.pactsPaymentId ?? 0; message.createUser = object.createUser ?? 0; message.createDate = object.createDate ?? 0; message.modifyUser = object.modifyUser ?? 0; @@ -149,6 +189,379 @@ export const LegacyChallengePayment = { }, }; +function createBaseLegacyChallengePaymentList(): LegacyChallengePaymentList { + return { projectPayments: [] }; +} + +export const LegacyChallengePaymentList = { + encode(message: LegacyChallengePaymentList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.projectPayments) { + LegacyChallengePayment.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): LegacyChallengePaymentList { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseLegacyChallengePaymentList(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectPayments.push(LegacyChallengePayment.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): LegacyChallengePaymentList { + return { + projectPayments: Array.isArray(object?.projectPayments) + ? object.projectPayments.map((e: any) => LegacyChallengePayment.fromJSON(e)) + : [], + }; + }, + + toJSON(message: LegacyChallengePaymentList): unknown { + const obj: any = {}; + if (message.projectPayments) { + obj.projectPayments = message.projectPayments.map((e) => e ? LegacyChallengePayment.toJSON(e) : undefined); + } else { + obj.projectPayments = []; + } + return obj; + }, + + create, I>>(base?: I): LegacyChallengePaymentList { + return LegacyChallengePaymentList.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): LegacyChallengePaymentList { + const message = createBaseLegacyChallengePaymentList(); + message.projectPayments = object.projectPayments?.map((e) => LegacyChallengePayment.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseGetLegacyChallengePaymentInput(): GetLegacyChallengePaymentInput { + return { resourceId: 0, projectPaymentTypeId: 0 }; +} + +export const GetLegacyChallengePaymentInput = { + encode(message: GetLegacyChallengePaymentInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.resourceId !== 0) { + writer.uint32(8).int32(message.resourceId); + } + if (message.projectPaymentTypeId !== 0) { + writer.uint32(16).int32(message.projectPaymentTypeId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetLegacyChallengePaymentInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetLegacyChallengePaymentInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.resourceId = reader.int32(); + break; + case 2: + message.projectPaymentTypeId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GetLegacyChallengePaymentInput { + return { + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + projectPaymentTypeId: isSet(object.projectPaymentTypeId) ? Number(object.projectPaymentTypeId) : 0, + }; + }, + + toJSON(message: GetLegacyChallengePaymentInput): unknown { + const obj: any = {}; + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.projectPaymentTypeId !== undefined && (obj.projectPaymentTypeId = Math.round(message.projectPaymentTypeId)); + return obj; + }, + + create, I>>(base?: I): GetLegacyChallengePaymentInput { + return GetLegacyChallengePaymentInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>( + object: I, + ): GetLegacyChallengePaymentInput { + const message = createBaseGetLegacyChallengePaymentInput(); + message.resourceId = object.resourceId ?? 0; + message.projectPaymentTypeId = object.projectPaymentTypeId ?? 0; + return message; + }, +}; + +function createBaseCreateLegacyChallengePaymentInput(): CreateLegacyChallengePaymentInput { + return { + projectPaymentId: undefined, + projectPaymentTypeId: 0, + resourceId: 0, + submissionId: undefined, + amount: 0, + pactsPaymentId: undefined, + }; +} + +export const CreateLegacyChallengePaymentInput = { + encode(message: CreateLegacyChallengePaymentInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectPaymentId !== undefined) { + writer.uint32(8).int32(message.projectPaymentId); + } + if (message.projectPaymentTypeId !== 0) { + writer.uint32(16).int32(message.projectPaymentTypeId); + } + if (message.resourceId !== 0) { + writer.uint32(24).int32(message.resourceId); + } + if (message.submissionId !== undefined) { + writer.uint32(32).int32(message.submissionId); + } + if (message.amount !== 0) { + writer.uint32(45).float(message.amount); + } + if (message.pactsPaymentId !== undefined) { + writer.uint32(48).int32(message.pactsPaymentId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateLegacyChallengePaymentInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateLegacyChallengePaymentInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectPaymentId = reader.int32(); + break; + case 2: + message.projectPaymentTypeId = reader.int32(); + break; + case 3: + message.resourceId = reader.int32(); + break; + case 4: + message.submissionId = reader.int32(); + break; + case 5: + message.amount = reader.float(); + break; + case 6: + message.pactsPaymentId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreateLegacyChallengePaymentInput { + return { + projectPaymentId: isSet(object.projectPaymentId) ? Number(object.projectPaymentId) : undefined, + projectPaymentTypeId: isSet(object.projectPaymentTypeId) ? Number(object.projectPaymentTypeId) : 0, + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + submissionId: isSet(object.submissionId) ? Number(object.submissionId) : undefined, + amount: isSet(object.amount) ? Number(object.amount) : 0, + pactsPaymentId: isSet(object.pactsPaymentId) ? Number(object.pactsPaymentId) : undefined, + }; + }, + + toJSON(message: CreateLegacyChallengePaymentInput): unknown { + const obj: any = {}; + message.projectPaymentId !== undefined && (obj.projectPaymentId = Math.round(message.projectPaymentId)); + message.projectPaymentTypeId !== undefined && (obj.projectPaymentTypeId = Math.round(message.projectPaymentTypeId)); + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.submissionId !== undefined && (obj.submissionId = Math.round(message.submissionId)); + message.amount !== undefined && (obj.amount = message.amount); + message.pactsPaymentId !== undefined && (obj.pactsPaymentId = Math.round(message.pactsPaymentId)); + return obj; + }, + + create, I>>( + base?: I, + ): CreateLegacyChallengePaymentInput { + return CreateLegacyChallengePaymentInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>( + object: I, + ): CreateLegacyChallengePaymentInput { + const message = createBaseCreateLegacyChallengePaymentInput(); + message.projectPaymentId = object.projectPaymentId ?? undefined; + message.projectPaymentTypeId = object.projectPaymentTypeId ?? 0; + message.resourceId = object.resourceId ?? 0; + message.submissionId = object.submissionId ?? undefined; + message.amount = object.amount ?? 0; + message.pactsPaymentId = object.pactsPaymentId ?? undefined; + return message; + }, +}; + +function createBaseUpdateLegacyChallengePaymentInput(): UpdateLegacyChallengePaymentInput { + return { resourceId: 0, projectPaymentTypeId: 0, amount: 0 }; +} + +export const UpdateLegacyChallengePaymentInput = { + encode(message: UpdateLegacyChallengePaymentInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.resourceId !== 0) { + writer.uint32(8).int32(message.resourceId); + } + if (message.projectPaymentTypeId !== 0) { + writer.uint32(16).int32(message.projectPaymentTypeId); + } + if (message.amount !== 0) { + writer.uint32(29).float(message.amount); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UpdateLegacyChallengePaymentInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpdateLegacyChallengePaymentInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.resourceId = reader.int32(); + break; + case 2: + message.projectPaymentTypeId = reader.int32(); + break; + case 3: + message.amount = reader.float(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): UpdateLegacyChallengePaymentInput { + return { + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + projectPaymentTypeId: isSet(object.projectPaymentTypeId) ? Number(object.projectPaymentTypeId) : 0, + amount: isSet(object.amount) ? Number(object.amount) : 0, + }; + }, + + toJSON(message: UpdateLegacyChallengePaymentInput): unknown { + const obj: any = {}; + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.projectPaymentTypeId !== undefined && (obj.projectPaymentTypeId = Math.round(message.projectPaymentTypeId)); + message.amount !== undefined && (obj.amount = message.amount); + return obj; + }, + + create, I>>( + base?: I, + ): UpdateLegacyChallengePaymentInput { + return UpdateLegacyChallengePaymentInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>( + object: I, + ): UpdateLegacyChallengePaymentInput { + const message = createBaseUpdateLegacyChallengePaymentInput(); + message.resourceId = object.resourceId ?? 0; + message.projectPaymentTypeId = object.projectPaymentTypeId ?? 0; + message.amount = object.amount ?? 0; + return message; + }, +}; + +function createBaseDeleteLegacyChallengePaymentInput(): DeleteLegacyChallengePaymentInput { + return { resourceId: 0, projectPaymentTypeId: 0 }; +} + +export const DeleteLegacyChallengePaymentInput = { + encode(message: DeleteLegacyChallengePaymentInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.resourceId !== 0) { + writer.uint32(8).int32(message.resourceId); + } + if (message.projectPaymentTypeId !== 0) { + writer.uint32(16).int32(message.projectPaymentTypeId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteLegacyChallengePaymentInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteLegacyChallengePaymentInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.resourceId = reader.int32(); + break; + case 2: + message.projectPaymentTypeId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): DeleteLegacyChallengePaymentInput { + return { + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + projectPaymentTypeId: isSet(object.projectPaymentTypeId) ? Number(object.projectPaymentTypeId) : 0, + }; + }, + + toJSON(message: DeleteLegacyChallengePaymentInput): unknown { + const obj: any = {}; + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.projectPaymentTypeId !== undefined && (obj.projectPaymentTypeId = Math.round(message.projectPaymentTypeId)); + return obj; + }, + + create, I>>( + base?: I, + ): DeleteLegacyChallengePaymentInput { + return DeleteLegacyChallengePaymentInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>( + object: I, + ): DeleteLegacyChallengePaymentInput { + const message = createBaseDeleteLegacyChallengePaymentInput(); + message.resourceId = object.resourceId ?? 0; + message.projectPaymentTypeId = object.projectPaymentTypeId ?? 0; + return message; + }, +}; + declare var self: any | undefined; declare var window: any | undefined; declare var global: any | undefined; diff --git a/src/models/domain-layer/legacy/group_contest_eligibility.ts b/src/models/domain-layer/legacy/group_contest_eligibility.ts new file mode 100644 index 0000000..e4001a3 --- /dev/null +++ b/src/models/domain-layer/legacy/group_contest_eligibility.ts @@ -0,0 +1,531 @@ +/* eslint-disable */ +import _m0 from "protobufjs/minimal"; + +export interface ContestEligibility { + contestEligibilityId: number; + contestId: number; + isStudio: number; +} + +export interface GetContestEligibilityInput { + contestId: number; +} + +export interface ContestEligibilityList { + contestEligibilities: ContestEligibility[]; +} + +export interface DeleteContestEligibilityInput { + contestEligibilityId: number; +} + +export interface GroupContestEligibility { + contestEligibilityId: number; + groupId: number; +} + +export interface GetGroupContestEligibilityInput { + contestEligibilityId: number; +} + +export interface GroupContestEligibilityList { + groupContestEligibilities: GroupContestEligibility[]; +} + +export interface DeleteGroupContestEligibilityInput { + contestEligibilityId: number; + groupId: number; +} + +function createBaseContestEligibility(): ContestEligibility { + return { contestEligibilityId: 0, contestId: 0, isStudio: 0 }; +} + +export const ContestEligibility = { + encode(message: ContestEligibility, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.contestEligibilityId !== 0) { + writer.uint32(8).int32(message.contestEligibilityId); + } + if (message.contestId !== 0) { + writer.uint32(16).int32(message.contestId); + } + if (message.isStudio !== 0) { + writer.uint32(24).int32(message.isStudio); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ContestEligibility { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseContestEligibility(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.contestEligibilityId = reader.int32(); + break; + case 2: + message.contestId = reader.int32(); + break; + case 3: + message.isStudio = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ContestEligibility { + return { + contestEligibilityId: isSet(object.contestEligibilityId) ? Number(object.contestEligibilityId) : 0, + contestId: isSet(object.contestId) ? Number(object.contestId) : 0, + isStudio: isSet(object.isStudio) ? Number(object.isStudio) : 0, + }; + }, + + toJSON(message: ContestEligibility): unknown { + const obj: any = {}; + message.contestEligibilityId !== undefined && (obj.contestEligibilityId = Math.round(message.contestEligibilityId)); + message.contestId !== undefined && (obj.contestId = Math.round(message.contestId)); + message.isStudio !== undefined && (obj.isStudio = Math.round(message.isStudio)); + return obj; + }, + + create, I>>(base?: I): ContestEligibility { + return ContestEligibility.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ContestEligibility { + const message = createBaseContestEligibility(); + message.contestEligibilityId = object.contestEligibilityId ?? 0; + message.contestId = object.contestId ?? 0; + message.isStudio = object.isStudio ?? 0; + return message; + }, +}; + +function createBaseGetContestEligibilityInput(): GetContestEligibilityInput { + return { contestId: 0 }; +} + +export const GetContestEligibilityInput = { + encode(message: GetContestEligibilityInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.contestId !== 0) { + writer.uint32(8).int32(message.contestId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetContestEligibilityInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetContestEligibilityInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.contestId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GetContestEligibilityInput { + return { contestId: isSet(object.contestId) ? Number(object.contestId) : 0 }; + }, + + toJSON(message: GetContestEligibilityInput): unknown { + const obj: any = {}; + message.contestId !== undefined && (obj.contestId = Math.round(message.contestId)); + return obj; + }, + + create, I>>(base?: I): GetContestEligibilityInput { + return GetContestEligibilityInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): GetContestEligibilityInput { + const message = createBaseGetContestEligibilityInput(); + message.contestId = object.contestId ?? 0; + return message; + }, +}; + +function createBaseContestEligibilityList(): ContestEligibilityList { + return { contestEligibilities: [] }; +} + +export const ContestEligibilityList = { + encode(message: ContestEligibilityList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.contestEligibilities) { + ContestEligibility.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ContestEligibilityList { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseContestEligibilityList(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.contestEligibilities.push(ContestEligibility.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ContestEligibilityList { + return { + contestEligibilities: Array.isArray(object?.contestEligibilities) + ? object.contestEligibilities.map((e: any) => ContestEligibility.fromJSON(e)) + : [], + }; + }, + + toJSON(message: ContestEligibilityList): unknown { + const obj: any = {}; + if (message.contestEligibilities) { + obj.contestEligibilities = message.contestEligibilities.map((e) => e ? ContestEligibility.toJSON(e) : undefined); + } else { + obj.contestEligibilities = []; + } + return obj; + }, + + create, I>>(base?: I): ContestEligibilityList { + return ContestEligibilityList.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ContestEligibilityList { + const message = createBaseContestEligibilityList(); + message.contestEligibilities = object.contestEligibilities?.map((e) => ContestEligibility.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseDeleteContestEligibilityInput(): DeleteContestEligibilityInput { + return { contestEligibilityId: 0 }; +} + +export const DeleteContestEligibilityInput = { + encode(message: DeleteContestEligibilityInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.contestEligibilityId !== 0) { + writer.uint32(8).int32(message.contestEligibilityId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteContestEligibilityInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteContestEligibilityInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.contestEligibilityId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): DeleteContestEligibilityInput { + return { contestEligibilityId: isSet(object.contestEligibilityId) ? Number(object.contestEligibilityId) : 0 }; + }, + + toJSON(message: DeleteContestEligibilityInput): unknown { + const obj: any = {}; + message.contestEligibilityId !== undefined && (obj.contestEligibilityId = Math.round(message.contestEligibilityId)); + return obj; + }, + + create, I>>(base?: I): DeleteContestEligibilityInput { + return DeleteContestEligibilityInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>( + object: I, + ): DeleteContestEligibilityInput { + const message = createBaseDeleteContestEligibilityInput(); + message.contestEligibilityId = object.contestEligibilityId ?? 0; + return message; + }, +}; + +function createBaseGroupContestEligibility(): GroupContestEligibility { + return { contestEligibilityId: 0, groupId: 0 }; +} + +export const GroupContestEligibility = { + encode(message: GroupContestEligibility, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.contestEligibilityId !== 0) { + writer.uint32(8).int32(message.contestEligibilityId); + } + if (message.groupId !== 0) { + writer.uint32(16).int32(message.groupId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GroupContestEligibility { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGroupContestEligibility(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.contestEligibilityId = reader.int32(); + break; + case 2: + message.groupId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GroupContestEligibility { + return { + contestEligibilityId: isSet(object.contestEligibilityId) ? Number(object.contestEligibilityId) : 0, + groupId: isSet(object.groupId) ? Number(object.groupId) : 0, + }; + }, + + toJSON(message: GroupContestEligibility): unknown { + const obj: any = {}; + message.contestEligibilityId !== undefined && (obj.contestEligibilityId = Math.round(message.contestEligibilityId)); + message.groupId !== undefined && (obj.groupId = Math.round(message.groupId)); + return obj; + }, + + create, I>>(base?: I): GroupContestEligibility { + return GroupContestEligibility.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): GroupContestEligibility { + const message = createBaseGroupContestEligibility(); + message.contestEligibilityId = object.contestEligibilityId ?? 0; + message.groupId = object.groupId ?? 0; + return message; + }, +}; + +function createBaseGetGroupContestEligibilityInput(): GetGroupContestEligibilityInput { + return { contestEligibilityId: 0 }; +} + +export const GetGroupContestEligibilityInput = { + encode(message: GetGroupContestEligibilityInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.contestEligibilityId !== 0) { + writer.uint32(8).int32(message.contestEligibilityId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetGroupContestEligibilityInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetGroupContestEligibilityInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.contestEligibilityId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GetGroupContestEligibilityInput { + return { contestEligibilityId: isSet(object.contestEligibilityId) ? Number(object.contestEligibilityId) : 0 }; + }, + + toJSON(message: GetGroupContestEligibilityInput): unknown { + const obj: any = {}; + message.contestEligibilityId !== undefined && (obj.contestEligibilityId = Math.round(message.contestEligibilityId)); + return obj; + }, + + create, I>>(base?: I): GetGroupContestEligibilityInput { + return GetGroupContestEligibilityInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>( + object: I, + ): GetGroupContestEligibilityInput { + const message = createBaseGetGroupContestEligibilityInput(); + message.contestEligibilityId = object.contestEligibilityId ?? 0; + return message; + }, +}; + +function createBaseGroupContestEligibilityList(): GroupContestEligibilityList { + return { groupContestEligibilities: [] }; +} + +export const GroupContestEligibilityList = { + encode(message: GroupContestEligibilityList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.groupContestEligibilities) { + GroupContestEligibility.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GroupContestEligibilityList { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGroupContestEligibilityList(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.groupContestEligibilities.push(GroupContestEligibility.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GroupContestEligibilityList { + return { + groupContestEligibilities: Array.isArray(object?.groupContestEligibilities) + ? object.groupContestEligibilities.map((e: any) => GroupContestEligibility.fromJSON(e)) + : [], + }; + }, + + toJSON(message: GroupContestEligibilityList): unknown { + const obj: any = {}; + if (message.groupContestEligibilities) { + obj.groupContestEligibilities = message.groupContestEligibilities.map((e) => + e ? GroupContestEligibility.toJSON(e) : undefined + ); + } else { + obj.groupContestEligibilities = []; + } + return obj; + }, + + create, I>>(base?: I): GroupContestEligibilityList { + return GroupContestEligibilityList.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): GroupContestEligibilityList { + const message = createBaseGroupContestEligibilityList(); + message.groupContestEligibilities = + object.groupContestEligibilities?.map((e) => GroupContestEligibility.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseDeleteGroupContestEligibilityInput(): DeleteGroupContestEligibilityInput { + return { contestEligibilityId: 0, groupId: 0 }; +} + +export const DeleteGroupContestEligibilityInput = { + encode(message: DeleteGroupContestEligibilityInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.contestEligibilityId !== 0) { + writer.uint32(8).int32(message.contestEligibilityId); + } + if (message.groupId !== 0) { + writer.uint32(16).int32(message.groupId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteGroupContestEligibilityInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteGroupContestEligibilityInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.contestEligibilityId = reader.int32(); + break; + case 2: + message.groupId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): DeleteGroupContestEligibilityInput { + return { + contestEligibilityId: isSet(object.contestEligibilityId) ? Number(object.contestEligibilityId) : 0, + groupId: isSet(object.groupId) ? Number(object.groupId) : 0, + }; + }, + + toJSON(message: DeleteGroupContestEligibilityInput): unknown { + const obj: any = {}; + message.contestEligibilityId !== undefined && (obj.contestEligibilityId = Math.round(message.contestEligibilityId)); + message.groupId !== undefined && (obj.groupId = Math.round(message.groupId)); + return obj; + }, + + create, I>>( + base?: I, + ): DeleteGroupContestEligibilityInput { + return DeleteGroupContestEligibilityInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>( + object: I, + ): DeleteGroupContestEligibilityInput { + const message = createBaseDeleteGroupContestEligibilityInput(); + message.contestEligibilityId = object.contestEligibilityId ?? 0; + message.groupId = object.groupId ?? 0; + return message; + }, +}; + +type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; + +type DeepPartial = T extends Builtin ? T + : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> + : T extends { $case: string } ? { [K in keyof Omit]?: DeepPartial } & { $case: T["$case"] } + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +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 isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/src/models/domain-layer/legacy/notification.ts b/src/models/domain-layer/legacy/notification.ts new file mode 100644 index 0000000..d9f6254 --- /dev/null +++ b/src/models/domain-layer/legacy/notification.ts @@ -0,0 +1,292 @@ +/* eslint-disable */ +import _m0 from "protobufjs/minimal"; + +export interface Notification { + notificationTypeId: number; + externalRefId: number; + projectId: number; +} + +export interface NotificationList { + notifications: Notification[]; +} + +export interface GetNotificationsInput { + externalRefId: number; + projectId: number; +} + +export interface DeleteNotificationsInput { + externalRefId: number; + projectId: number; +} + +function createBaseNotification(): Notification { + return { notificationTypeId: 0, externalRefId: 0, projectId: 0 }; +} + +export const Notification = { + encode(message: Notification, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.notificationTypeId !== 0) { + writer.uint32(8).int32(message.notificationTypeId); + } + if (message.externalRefId !== 0) { + writer.uint32(16).int32(message.externalRefId); + } + if (message.projectId !== 0) { + writer.uint32(24).int32(message.projectId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Notification { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseNotification(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.notificationTypeId = reader.int32(); + break; + case 2: + message.externalRefId = reader.int32(); + break; + case 3: + message.projectId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Notification { + return { + notificationTypeId: isSet(object.notificationTypeId) ? Number(object.notificationTypeId) : 0, + externalRefId: isSet(object.externalRefId) ? Number(object.externalRefId) : 0, + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + }; + }, + + toJSON(message: Notification): unknown { + const obj: any = {}; + message.notificationTypeId !== undefined && (obj.notificationTypeId = Math.round(message.notificationTypeId)); + message.externalRefId !== undefined && (obj.externalRefId = Math.round(message.externalRefId)); + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + return obj; + }, + + create, I>>(base?: I): Notification { + return Notification.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): Notification { + const message = createBaseNotification(); + message.notificationTypeId = object.notificationTypeId ?? 0; + message.externalRefId = object.externalRefId ?? 0; + message.projectId = object.projectId ?? 0; + return message; + }, +}; + +function createBaseNotificationList(): NotificationList { + return { notifications: [] }; +} + +export const NotificationList = { + encode(message: NotificationList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.notifications) { + Notification.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): NotificationList { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseNotificationList(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.notifications.push(Notification.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): NotificationList { + return { + notifications: Array.isArray(object?.notifications) + ? object.notifications.map((e: any) => Notification.fromJSON(e)) + : [], + }; + }, + + toJSON(message: NotificationList): unknown { + const obj: any = {}; + if (message.notifications) { + obj.notifications = message.notifications.map((e) => e ? Notification.toJSON(e) : undefined); + } else { + obj.notifications = []; + } + return obj; + }, + + create, I>>(base?: I): NotificationList { + return NotificationList.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): NotificationList { + const message = createBaseNotificationList(); + message.notifications = object.notifications?.map((e) => Notification.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseGetNotificationsInput(): GetNotificationsInput { + return { externalRefId: 0, projectId: 0 }; +} + +export const GetNotificationsInput = { + encode(message: GetNotificationsInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.externalRefId !== 0) { + writer.uint32(8).int32(message.externalRefId); + } + if (message.projectId !== 0) { + writer.uint32(16).int32(message.projectId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetNotificationsInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetNotificationsInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.externalRefId = reader.int32(); + break; + case 2: + message.projectId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GetNotificationsInput { + return { + externalRefId: isSet(object.externalRefId) ? Number(object.externalRefId) : 0, + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + }; + }, + + toJSON(message: GetNotificationsInput): unknown { + const obj: any = {}; + message.externalRefId !== undefined && (obj.externalRefId = Math.round(message.externalRefId)); + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + return obj; + }, + + create, I>>(base?: I): GetNotificationsInput { + return GetNotificationsInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): GetNotificationsInput { + const message = createBaseGetNotificationsInput(); + message.externalRefId = object.externalRefId ?? 0; + message.projectId = object.projectId ?? 0; + return message; + }, +}; + +function createBaseDeleteNotificationsInput(): DeleteNotificationsInput { + return { externalRefId: 0, projectId: 0 }; +} + +export const DeleteNotificationsInput = { + encode(message: DeleteNotificationsInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.externalRefId !== 0) { + writer.uint32(8).int32(message.externalRefId); + } + if (message.projectId !== 0) { + writer.uint32(16).int32(message.projectId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteNotificationsInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteNotificationsInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.externalRefId = reader.int32(); + break; + case 2: + message.projectId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): DeleteNotificationsInput { + return { + externalRefId: isSet(object.externalRefId) ? Number(object.externalRefId) : 0, + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + }; + }, + + toJSON(message: DeleteNotificationsInput): unknown { + const obj: any = {}; + message.externalRefId !== undefined && (obj.externalRefId = Math.round(message.externalRefId)); + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + return obj; + }, + + create, I>>(base?: I): DeleteNotificationsInput { + return DeleteNotificationsInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): DeleteNotificationsInput { + const message = createBaseDeleteNotificationsInput(); + message.externalRefId = object.externalRefId ?? 0; + message.projectId = object.projectId ?? 0; + return message; + }, +}; + +type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; + +type DeepPartial = T extends Builtin ? T + : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> + : T extends { $case: string } ? { [K in keyof Omit]?: DeepPartial } & { $case: T["$case"] } + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +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 isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/src/models/domain-layer/legacy/payment.ts b/src/models/domain-layer/legacy/payment.ts new file mode 100644 index 0000000..62cdb70 --- /dev/null +++ b/src/models/domain-layer/legacy/payment.ts @@ -0,0 +1,1134 @@ +/* eslint-disable */ +import Long from "long"; +import _m0 from "protobufjs/minimal"; + +export interface ProjectPayment { + projectPaymentId: number; + projectPaymentTypeId: number; + resourceId: number; + submissionId: number; + amount: number; + pactsPaymentId: number; + createUser: number; + createDate: number; + modifyUser: number; + modifyDate: number; +} + +export interface ProjectPaymentList { + projectPayments: ProjectPayment[]; +} + +export interface GetProjectPaymentsInput { + resourceId: number; + projectPaymentTypeId: number; +} + +export interface CreateProjectPaymentsInput { + projectPaymentId: number; + projectPaymentTypeId: number; + resourceId: number; + submissionId: number; + amount: number; + pactsPaymentId: number; +} + +export interface UpdateProjectPaymentsInput { + resourceId: number; + projectPaymentTypeId: number; + amount: number; +} + +export interface DeleteProjectPaymentsInput { + resourceId: number; + projectPaymentTypeId: number; +} + +export interface Prize { + prizeId: number; + projectId: number; + place: number; + prizeAmount: number; + prizeTypeId: number; + numberOfSubmissions: number; + createUser: number; + createDate: number; + modifyUser: number; + modifyDate: number; +} + +export interface PrizeList { + prizes: Prize[]; +} + +export interface GetPrizesInput { + projectId: number; + prizeTypeId: number; +} + +export interface CreatePrizeInput { + prizeId: number; + projectId: number; + place: number; + prizeAmount: number; + prizeTypeId: number; + numberOfSubmissions: number; +} + +export interface UpdatePrizeInput { + prizeId: number; + projectId: number; + numberOfSubmissions: number; + prizeAmount: number; +} + +export interface DeletePrizeInput { + prizeId: number; + projectId: number; +} + +function createBaseProjectPayment(): ProjectPayment { + return { + projectPaymentId: 0, + projectPaymentTypeId: 0, + resourceId: 0, + submissionId: 0, + amount: 0, + pactsPaymentId: 0, + createUser: 0, + createDate: 0, + modifyUser: 0, + modifyDate: 0, + }; +} + +export const ProjectPayment = { + encode(message: ProjectPayment, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectPaymentId !== 0) { + writer.uint32(8).int32(message.projectPaymentId); + } + if (message.projectPaymentTypeId !== 0) { + writer.uint32(16).int32(message.projectPaymentTypeId); + } + if (message.resourceId !== 0) { + writer.uint32(24).int32(message.resourceId); + } + if (message.submissionId !== 0) { + writer.uint32(32).int32(message.submissionId); + } + if (message.amount !== 0) { + writer.uint32(45).float(message.amount); + } + if (message.pactsPaymentId !== 0) { + writer.uint32(48).int32(message.pactsPaymentId); + } + if (message.createUser !== 0) { + writer.uint32(56).int32(message.createUser); + } + if (message.createDate !== 0) { + writer.uint32(64).int64(message.createDate); + } + if (message.modifyUser !== 0) { + writer.uint32(72).int32(message.modifyUser); + } + if (message.modifyDate !== 0) { + writer.uint32(80).int64(message.modifyDate); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ProjectPayment { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseProjectPayment(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectPaymentId = reader.int32(); + break; + case 2: + message.projectPaymentTypeId = reader.int32(); + break; + case 3: + message.resourceId = reader.int32(); + break; + case 4: + message.submissionId = reader.int32(); + break; + case 5: + message.amount = reader.float(); + break; + case 6: + message.pactsPaymentId = reader.int32(); + break; + case 7: + message.createUser = reader.int32(); + break; + case 8: + message.createDate = longToNumber(reader.int64() as Long); + break; + case 9: + message.modifyUser = reader.int32(); + break; + case 10: + message.modifyDate = longToNumber(reader.int64() as Long); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ProjectPayment { + return { + projectPaymentId: isSet(object.projectPaymentId) ? Number(object.projectPaymentId) : 0, + projectPaymentTypeId: isSet(object.projectPaymentTypeId) ? Number(object.projectPaymentTypeId) : 0, + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + submissionId: isSet(object.submissionId) ? Number(object.submissionId) : 0, + amount: isSet(object.amount) ? Number(object.amount) : 0, + pactsPaymentId: isSet(object.pactsPaymentId) ? Number(object.pactsPaymentId) : 0, + createUser: isSet(object.createUser) ? Number(object.createUser) : 0, + createDate: isSet(object.createDate) ? Number(object.createDate) : 0, + modifyUser: isSet(object.modifyUser) ? Number(object.modifyUser) : 0, + modifyDate: isSet(object.modifyDate) ? Number(object.modifyDate) : 0, + }; + }, + + toJSON(message: ProjectPayment): unknown { + const obj: any = {}; + message.projectPaymentId !== undefined && (obj.projectPaymentId = Math.round(message.projectPaymentId)); + message.projectPaymentTypeId !== undefined && (obj.projectPaymentTypeId = Math.round(message.projectPaymentTypeId)); + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.submissionId !== undefined && (obj.submissionId = Math.round(message.submissionId)); + message.amount !== undefined && (obj.amount = message.amount); + message.pactsPaymentId !== undefined && (obj.pactsPaymentId = Math.round(message.pactsPaymentId)); + message.createUser !== undefined && (obj.createUser = Math.round(message.createUser)); + message.createDate !== undefined && (obj.createDate = Math.round(message.createDate)); + message.modifyUser !== undefined && (obj.modifyUser = Math.round(message.modifyUser)); + message.modifyDate !== undefined && (obj.modifyDate = Math.round(message.modifyDate)); + return obj; + }, + + create, I>>(base?: I): ProjectPayment { + return ProjectPayment.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ProjectPayment { + const message = createBaseProjectPayment(); + message.projectPaymentId = object.projectPaymentId ?? 0; + message.projectPaymentTypeId = object.projectPaymentTypeId ?? 0; + message.resourceId = object.resourceId ?? 0; + message.submissionId = object.submissionId ?? 0; + message.amount = object.amount ?? 0; + message.pactsPaymentId = object.pactsPaymentId ?? 0; + message.createUser = object.createUser ?? 0; + message.createDate = object.createDate ?? 0; + message.modifyUser = object.modifyUser ?? 0; + message.modifyDate = object.modifyDate ?? 0; + return message; + }, +}; + +function createBaseProjectPaymentList(): ProjectPaymentList { + return { projectPayments: [] }; +} + +export const ProjectPaymentList = { + encode(message: ProjectPaymentList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.projectPayments) { + ProjectPayment.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ProjectPaymentList { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseProjectPaymentList(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectPayments.push(ProjectPayment.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ProjectPaymentList { + return { + projectPayments: Array.isArray(object?.projectPayments) + ? object.projectPayments.map((e: any) => ProjectPayment.fromJSON(e)) + : [], + }; + }, + + toJSON(message: ProjectPaymentList): unknown { + const obj: any = {}; + if (message.projectPayments) { + obj.projectPayments = message.projectPayments.map((e) => e ? ProjectPayment.toJSON(e) : undefined); + } else { + obj.projectPayments = []; + } + return obj; + }, + + create, I>>(base?: I): ProjectPaymentList { + return ProjectPaymentList.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ProjectPaymentList { + const message = createBaseProjectPaymentList(); + message.projectPayments = object.projectPayments?.map((e) => ProjectPayment.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseGetProjectPaymentsInput(): GetProjectPaymentsInput { + return { resourceId: 0, projectPaymentTypeId: 0 }; +} + +export const GetProjectPaymentsInput = { + encode(message: GetProjectPaymentsInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.resourceId !== 0) { + writer.uint32(8).int32(message.resourceId); + } + if (message.projectPaymentTypeId !== 0) { + writer.uint32(16).int32(message.projectPaymentTypeId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetProjectPaymentsInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetProjectPaymentsInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.resourceId = reader.int32(); + break; + case 2: + message.projectPaymentTypeId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GetProjectPaymentsInput { + return { + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + projectPaymentTypeId: isSet(object.projectPaymentTypeId) ? Number(object.projectPaymentTypeId) : 0, + }; + }, + + toJSON(message: GetProjectPaymentsInput): unknown { + const obj: any = {}; + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.projectPaymentTypeId !== undefined && (obj.projectPaymentTypeId = Math.round(message.projectPaymentTypeId)); + return obj; + }, + + create, I>>(base?: I): GetProjectPaymentsInput { + return GetProjectPaymentsInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): GetProjectPaymentsInput { + const message = createBaseGetProjectPaymentsInput(); + message.resourceId = object.resourceId ?? 0; + message.projectPaymentTypeId = object.projectPaymentTypeId ?? 0; + return message; + }, +}; + +function createBaseCreateProjectPaymentsInput(): CreateProjectPaymentsInput { + return { projectPaymentId: 0, projectPaymentTypeId: 0, resourceId: 0, submissionId: 0, amount: 0, pactsPaymentId: 0 }; +} + +export const CreateProjectPaymentsInput = { + encode(message: CreateProjectPaymentsInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectPaymentId !== 0) { + writer.uint32(8).int32(message.projectPaymentId); + } + if (message.projectPaymentTypeId !== 0) { + writer.uint32(16).int32(message.projectPaymentTypeId); + } + if (message.resourceId !== 0) { + writer.uint32(24).int32(message.resourceId); + } + if (message.submissionId !== 0) { + writer.uint32(32).int32(message.submissionId); + } + if (message.amount !== 0) { + writer.uint32(45).float(message.amount); + } + if (message.pactsPaymentId !== 0) { + writer.uint32(48).int32(message.pactsPaymentId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateProjectPaymentsInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateProjectPaymentsInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectPaymentId = reader.int32(); + break; + case 2: + message.projectPaymentTypeId = reader.int32(); + break; + case 3: + message.resourceId = reader.int32(); + break; + case 4: + message.submissionId = reader.int32(); + break; + case 5: + message.amount = reader.float(); + break; + case 6: + message.pactsPaymentId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreateProjectPaymentsInput { + return { + projectPaymentId: isSet(object.projectPaymentId) ? Number(object.projectPaymentId) : 0, + projectPaymentTypeId: isSet(object.projectPaymentTypeId) ? Number(object.projectPaymentTypeId) : 0, + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + submissionId: isSet(object.submissionId) ? Number(object.submissionId) : 0, + amount: isSet(object.amount) ? Number(object.amount) : 0, + pactsPaymentId: isSet(object.pactsPaymentId) ? Number(object.pactsPaymentId) : 0, + }; + }, + + toJSON(message: CreateProjectPaymentsInput): unknown { + const obj: any = {}; + message.projectPaymentId !== undefined && (obj.projectPaymentId = Math.round(message.projectPaymentId)); + message.projectPaymentTypeId !== undefined && (obj.projectPaymentTypeId = Math.round(message.projectPaymentTypeId)); + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.submissionId !== undefined && (obj.submissionId = Math.round(message.submissionId)); + message.amount !== undefined && (obj.amount = message.amount); + message.pactsPaymentId !== undefined && (obj.pactsPaymentId = Math.round(message.pactsPaymentId)); + return obj; + }, + + create, I>>(base?: I): CreateProjectPaymentsInput { + return CreateProjectPaymentsInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): CreateProjectPaymentsInput { + const message = createBaseCreateProjectPaymentsInput(); + message.projectPaymentId = object.projectPaymentId ?? 0; + message.projectPaymentTypeId = object.projectPaymentTypeId ?? 0; + message.resourceId = object.resourceId ?? 0; + message.submissionId = object.submissionId ?? 0; + message.amount = object.amount ?? 0; + message.pactsPaymentId = object.pactsPaymentId ?? 0; + return message; + }, +}; + +function createBaseUpdateProjectPaymentsInput(): UpdateProjectPaymentsInput { + return { resourceId: 0, projectPaymentTypeId: 0, amount: 0 }; +} + +export const UpdateProjectPaymentsInput = { + encode(message: UpdateProjectPaymentsInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.resourceId !== 0) { + writer.uint32(8).int32(message.resourceId); + } + if (message.projectPaymentTypeId !== 0) { + writer.uint32(16).int32(message.projectPaymentTypeId); + } + if (message.amount !== 0) { + writer.uint32(29).float(message.amount); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UpdateProjectPaymentsInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpdateProjectPaymentsInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.resourceId = reader.int32(); + break; + case 2: + message.projectPaymentTypeId = reader.int32(); + break; + case 3: + message.amount = reader.float(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): UpdateProjectPaymentsInput { + return { + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + projectPaymentTypeId: isSet(object.projectPaymentTypeId) ? Number(object.projectPaymentTypeId) : 0, + amount: isSet(object.amount) ? Number(object.amount) : 0, + }; + }, + + toJSON(message: UpdateProjectPaymentsInput): unknown { + const obj: any = {}; + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.projectPaymentTypeId !== undefined && (obj.projectPaymentTypeId = Math.round(message.projectPaymentTypeId)); + message.amount !== undefined && (obj.amount = message.amount); + return obj; + }, + + create, I>>(base?: I): UpdateProjectPaymentsInput { + return UpdateProjectPaymentsInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): UpdateProjectPaymentsInput { + const message = createBaseUpdateProjectPaymentsInput(); + message.resourceId = object.resourceId ?? 0; + message.projectPaymentTypeId = object.projectPaymentTypeId ?? 0; + message.amount = object.amount ?? 0; + return message; + }, +}; + +function createBaseDeleteProjectPaymentsInput(): DeleteProjectPaymentsInput { + return { resourceId: 0, projectPaymentTypeId: 0 }; +} + +export const DeleteProjectPaymentsInput = { + encode(message: DeleteProjectPaymentsInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.resourceId !== 0) { + writer.uint32(8).int32(message.resourceId); + } + if (message.projectPaymentTypeId !== 0) { + writer.uint32(16).int32(message.projectPaymentTypeId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteProjectPaymentsInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteProjectPaymentsInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.resourceId = reader.int32(); + break; + case 2: + message.projectPaymentTypeId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): DeleteProjectPaymentsInput { + return { + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + projectPaymentTypeId: isSet(object.projectPaymentTypeId) ? Number(object.projectPaymentTypeId) : 0, + }; + }, + + toJSON(message: DeleteProjectPaymentsInput): unknown { + const obj: any = {}; + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.projectPaymentTypeId !== undefined && (obj.projectPaymentTypeId = Math.round(message.projectPaymentTypeId)); + return obj; + }, + + create, I>>(base?: I): DeleteProjectPaymentsInput { + return DeleteProjectPaymentsInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): DeleteProjectPaymentsInput { + const message = createBaseDeleteProjectPaymentsInput(); + message.resourceId = object.resourceId ?? 0; + message.projectPaymentTypeId = object.projectPaymentTypeId ?? 0; + return message; + }, +}; + +function createBasePrize(): Prize { + return { + prizeId: 0, + projectId: 0, + place: 0, + prizeAmount: 0, + prizeTypeId: 0, + numberOfSubmissions: 0, + createUser: 0, + createDate: 0, + modifyUser: 0, + modifyDate: 0, + }; +} + +export const Prize = { + encode(message: Prize, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.prizeId !== 0) { + writer.uint32(8).int32(message.prizeId); + } + if (message.projectId !== 0) { + writer.uint32(16).int32(message.projectId); + } + if (message.place !== 0) { + writer.uint32(24).int32(message.place); + } + if (message.prizeAmount !== 0) { + writer.uint32(37).float(message.prizeAmount); + } + if (message.prizeTypeId !== 0) { + writer.uint32(40).int32(message.prizeTypeId); + } + if (message.numberOfSubmissions !== 0) { + writer.uint32(48).int32(message.numberOfSubmissions); + } + if (message.createUser !== 0) { + writer.uint32(64).int32(message.createUser); + } + if (message.createDate !== 0) { + writer.uint32(72).int64(message.createDate); + } + if (message.modifyUser !== 0) { + writer.uint32(80).int32(message.modifyUser); + } + if (message.modifyDate !== 0) { + writer.uint32(88).int64(message.modifyDate); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Prize { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePrize(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.prizeId = reader.int32(); + break; + case 2: + message.projectId = reader.int32(); + break; + case 3: + message.place = reader.int32(); + break; + case 4: + message.prizeAmount = reader.float(); + break; + case 5: + message.prizeTypeId = reader.int32(); + break; + case 6: + message.numberOfSubmissions = reader.int32(); + break; + case 8: + message.createUser = reader.int32(); + break; + case 9: + message.createDate = longToNumber(reader.int64() as Long); + break; + case 10: + message.modifyUser = reader.int32(); + break; + case 11: + message.modifyDate = longToNumber(reader.int64() as Long); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Prize { + return { + prizeId: isSet(object.prizeId) ? Number(object.prizeId) : 0, + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + place: isSet(object.place) ? Number(object.place) : 0, + prizeAmount: isSet(object.prizeAmount) ? Number(object.prizeAmount) : 0, + prizeTypeId: isSet(object.prizeTypeId) ? Number(object.prizeTypeId) : 0, + numberOfSubmissions: isSet(object.numberOfSubmissions) ? Number(object.numberOfSubmissions) : 0, + createUser: isSet(object.createUser) ? Number(object.createUser) : 0, + createDate: isSet(object.createDate) ? Number(object.createDate) : 0, + modifyUser: isSet(object.modifyUser) ? Number(object.modifyUser) : 0, + modifyDate: isSet(object.modifyDate) ? Number(object.modifyDate) : 0, + }; + }, + + toJSON(message: Prize): unknown { + const obj: any = {}; + message.prizeId !== undefined && (obj.prizeId = Math.round(message.prizeId)); + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.place !== undefined && (obj.place = Math.round(message.place)); + message.prizeAmount !== undefined && (obj.prizeAmount = message.prizeAmount); + message.prizeTypeId !== undefined && (obj.prizeTypeId = Math.round(message.prizeTypeId)); + message.numberOfSubmissions !== undefined && (obj.numberOfSubmissions = Math.round(message.numberOfSubmissions)); + message.createUser !== undefined && (obj.createUser = Math.round(message.createUser)); + message.createDate !== undefined && (obj.createDate = Math.round(message.createDate)); + message.modifyUser !== undefined && (obj.modifyUser = Math.round(message.modifyUser)); + message.modifyDate !== undefined && (obj.modifyDate = Math.round(message.modifyDate)); + return obj; + }, + + create, I>>(base?: I): Prize { + return Prize.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): Prize { + const message = createBasePrize(); + message.prizeId = object.prizeId ?? 0; + message.projectId = object.projectId ?? 0; + message.place = object.place ?? 0; + message.prizeAmount = object.prizeAmount ?? 0; + message.prizeTypeId = object.prizeTypeId ?? 0; + message.numberOfSubmissions = object.numberOfSubmissions ?? 0; + message.createUser = object.createUser ?? 0; + message.createDate = object.createDate ?? 0; + message.modifyUser = object.modifyUser ?? 0; + message.modifyDate = object.modifyDate ?? 0; + return message; + }, +}; + +function createBasePrizeList(): PrizeList { + return { prizes: [] }; +} + +export const PrizeList = { + encode(message: PrizeList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.prizes) { + Prize.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): PrizeList { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePrizeList(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.prizes.push(Prize.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): PrizeList { + return { prizes: Array.isArray(object?.prizes) ? object.prizes.map((e: any) => Prize.fromJSON(e)) : [] }; + }, + + toJSON(message: PrizeList): unknown { + const obj: any = {}; + if (message.prizes) { + obj.prizes = message.prizes.map((e) => e ? Prize.toJSON(e) : undefined); + } else { + obj.prizes = []; + } + return obj; + }, + + create, I>>(base?: I): PrizeList { + return PrizeList.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): PrizeList { + const message = createBasePrizeList(); + message.prizes = object.prizes?.map((e) => Prize.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseGetPrizesInput(): GetPrizesInput { + return { projectId: 0, prizeTypeId: 0 }; +} + +export const GetPrizesInput = { + encode(message: GetPrizesInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int32(message.projectId); + } + if (message.prizeTypeId !== 0) { + writer.uint32(16).int32(message.prizeTypeId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetPrizesInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetPrizesInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = reader.int32(); + break; + case 2: + message.prizeTypeId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GetPrizesInput { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + prizeTypeId: isSet(object.prizeTypeId) ? Number(object.prizeTypeId) : 0, + }; + }, + + toJSON(message: GetPrizesInput): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.prizeTypeId !== undefined && (obj.prizeTypeId = Math.round(message.prizeTypeId)); + return obj; + }, + + create, I>>(base?: I): GetPrizesInput { + return GetPrizesInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): GetPrizesInput { + const message = createBaseGetPrizesInput(); + message.projectId = object.projectId ?? 0; + message.prizeTypeId = object.prizeTypeId ?? 0; + return message; + }, +}; + +function createBaseCreatePrizeInput(): CreatePrizeInput { + return { prizeId: 0, projectId: 0, place: 0, prizeAmount: 0, prizeTypeId: 0, numberOfSubmissions: 0 }; +} + +export const CreatePrizeInput = { + encode(message: CreatePrizeInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.prizeId !== 0) { + writer.uint32(8).int32(message.prizeId); + } + if (message.projectId !== 0) { + writer.uint32(16).int32(message.projectId); + } + if (message.place !== 0) { + writer.uint32(24).int32(message.place); + } + if (message.prizeAmount !== 0) { + writer.uint32(37).float(message.prizeAmount); + } + if (message.prizeTypeId !== 0) { + writer.uint32(40).int32(message.prizeTypeId); + } + if (message.numberOfSubmissions !== 0) { + writer.uint32(48).int32(message.numberOfSubmissions); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreatePrizeInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreatePrizeInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.prizeId = reader.int32(); + break; + case 2: + message.projectId = reader.int32(); + break; + case 3: + message.place = reader.int32(); + break; + case 4: + message.prizeAmount = reader.float(); + break; + case 5: + message.prizeTypeId = reader.int32(); + break; + case 6: + message.numberOfSubmissions = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreatePrizeInput { + return { + prizeId: isSet(object.prizeId) ? Number(object.prizeId) : 0, + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + place: isSet(object.place) ? Number(object.place) : 0, + prizeAmount: isSet(object.prizeAmount) ? Number(object.prizeAmount) : 0, + prizeTypeId: isSet(object.prizeTypeId) ? Number(object.prizeTypeId) : 0, + numberOfSubmissions: isSet(object.numberOfSubmissions) ? Number(object.numberOfSubmissions) : 0, + }; + }, + + toJSON(message: CreatePrizeInput): unknown { + const obj: any = {}; + message.prizeId !== undefined && (obj.prizeId = Math.round(message.prizeId)); + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.place !== undefined && (obj.place = Math.round(message.place)); + message.prizeAmount !== undefined && (obj.prizeAmount = message.prizeAmount); + message.prizeTypeId !== undefined && (obj.prizeTypeId = Math.round(message.prizeTypeId)); + message.numberOfSubmissions !== undefined && (obj.numberOfSubmissions = Math.round(message.numberOfSubmissions)); + return obj; + }, + + create, I>>(base?: I): CreatePrizeInput { + return CreatePrizeInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): CreatePrizeInput { + const message = createBaseCreatePrizeInput(); + message.prizeId = object.prizeId ?? 0; + message.projectId = object.projectId ?? 0; + message.place = object.place ?? 0; + message.prizeAmount = object.prizeAmount ?? 0; + message.prizeTypeId = object.prizeTypeId ?? 0; + message.numberOfSubmissions = object.numberOfSubmissions ?? 0; + return message; + }, +}; + +function createBaseUpdatePrizeInput(): UpdatePrizeInput { + return { prizeId: 0, projectId: 0, numberOfSubmissions: 0, prizeAmount: 0 }; +} + +export const UpdatePrizeInput = { + encode(message: UpdatePrizeInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.prizeId !== 0) { + writer.uint32(8).int32(message.prizeId); + } + if (message.projectId !== 0) { + writer.uint32(16).int32(message.projectId); + } + if (message.numberOfSubmissions !== 0) { + writer.uint32(24).int32(message.numberOfSubmissions); + } + if (message.prizeAmount !== 0) { + writer.uint32(37).float(message.prizeAmount); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UpdatePrizeInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpdatePrizeInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.prizeId = reader.int32(); + break; + case 2: + message.projectId = reader.int32(); + break; + case 3: + message.numberOfSubmissions = reader.int32(); + break; + case 4: + message.prizeAmount = reader.float(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): UpdatePrizeInput { + return { + prizeId: isSet(object.prizeId) ? Number(object.prizeId) : 0, + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + numberOfSubmissions: isSet(object.numberOfSubmissions) ? Number(object.numberOfSubmissions) : 0, + prizeAmount: isSet(object.prizeAmount) ? Number(object.prizeAmount) : 0, + }; + }, + + toJSON(message: UpdatePrizeInput): unknown { + const obj: any = {}; + message.prizeId !== undefined && (obj.prizeId = Math.round(message.prizeId)); + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.numberOfSubmissions !== undefined && (obj.numberOfSubmissions = Math.round(message.numberOfSubmissions)); + message.prizeAmount !== undefined && (obj.prizeAmount = message.prizeAmount); + return obj; + }, + + create, I>>(base?: I): UpdatePrizeInput { + return UpdatePrizeInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): UpdatePrizeInput { + const message = createBaseUpdatePrizeInput(); + message.prizeId = object.prizeId ?? 0; + message.projectId = object.projectId ?? 0; + message.numberOfSubmissions = object.numberOfSubmissions ?? 0; + message.prizeAmount = object.prizeAmount ?? 0; + return message; + }, +}; + +function createBaseDeletePrizeInput(): DeletePrizeInput { + return { prizeId: 0, projectId: 0 }; +} + +export const DeletePrizeInput = { + encode(message: DeletePrizeInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.prizeId !== 0) { + writer.uint32(8).int32(message.prizeId); + } + if (message.projectId !== 0) { + writer.uint32(16).int32(message.projectId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeletePrizeInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeletePrizeInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.prizeId = reader.int32(); + break; + case 2: + message.projectId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): DeletePrizeInput { + return { + prizeId: isSet(object.prizeId) ? Number(object.prizeId) : 0, + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + }; + }, + + toJSON(message: DeletePrizeInput): unknown { + const obj: any = {}; + message.prizeId !== undefined && (obj.prizeId = Math.round(message.prizeId)); + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + return obj; + }, + + create, I>>(base?: I): DeletePrizeInput { + return DeletePrizeInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): DeletePrizeInput { + const message = createBaseDeletePrizeInput(); + message.prizeId = object.prizeId ?? 0; + message.projectId = object.projectId ?? 0; + return message; + }, +}; + +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 + : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> + : T extends { $case: string } ? { [K in keyof Omit]?: DeepPartial } & { $case: T["$case"] } + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +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 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 { + return value !== null && value !== undefined; +} diff --git a/src/models/domain-layer/legacy/phase.ts b/src/models/domain-layer/legacy/phase.ts new file mode 100644 index 0000000..6510e78 --- /dev/null +++ b/src/models/domain-layer/legacy/phase.ts @@ -0,0 +1,1540 @@ +/* eslint-disable */ +import Long from "long"; +import _m0 from "protobufjs/minimal"; + +export interface PhaseType { + phaseTypeId: number; + name: string; + description?: string | undefined; + createUser?: number | undefined; + createDate?: string | undefined; + modifyUser?: number | undefined; + modifyDate?: string | undefined; +} + +export interface PhaseTypeList { + phaseTypes: PhaseType[]; +} + +export interface PhaseDependency { + dependentPhaseId: number; + dependencyStart: number; + dependentStart: number; + lagTime: number; + createUser: number; + createDate: number; + modifyUser: number; + modifyDate: number; +} + +export interface CreatePhaseDependencyInput { + dependentPhaseId: number; + dependencyStart: number; + dependentStart: number; + lagTime: number; +} + +export interface PhaseCriteria { + projectPhaseId: number; + phaseCriteriaTypeId: number; + parameter: string; + createUser: number; + createDate: number; + modifyUser: number; + modifyDate: number; +} + +export interface CreatePhaseCriteriaInput { + projectPhaseId: number; + phaseCriteriaTypeId: number; + parameter: string; +} + +export interface DeletePhaseCriteriaInput { + projectPhaseId: number; + phaseCriteriaTypeId?: number | undefined; +} + +export interface PhaseCriteriaList { + phaseCriteriaList: PhaseCriteria[]; +} + +export interface GetPhaseCriteriaInput { + projectPhaseId: number; + phaseCriteriaTypeId?: number | undefined; +} + +export interface ProjectPhase { + projectPhaseId: number; + projectId: number; + phaseTypeId: number; + phaseStatusId: number; + fixedStartTime?: number | undefined; + scheduledStartTime?: number | undefined; + scheduledEndTime?: number | undefined; + actualStartTime?: number | undefined; + actualEndTime?: number | undefined; + duration: number; + createUser?: number | undefined; + createDate?: number | undefined; + modifyUser?: number | undefined; + modifyDate?: number | undefined; +} + +export interface GetProjectPhasesInput { + projectId: number; + phaseTypeId?: number | undefined; +} + +export interface ProjectPhaseList { + projectPhases: ProjectPhase[]; +} + +export interface DeleteProjectPhasesInput { + projectId: number; + projectPhaseId: number; +} + +export interface CreateProjectPhaseInput { + projectId: number; + phaseTypeId: number; + phaseStatusId: number; + fixedStartTime?: string | undefined; + scheduledStartTime?: string | undefined; + scheduledEndTime?: string | undefined; + actualStartTime?: string | undefined; + actualEndTime?: string | undefined; + duration: number; +} + +export interface UpdateProjectPhaseInput { + projectPhaseId: number; + phaseStatusId: number; + fixedStartTime?: string | undefined; + scheduledStartTime?: string | undefined; + scheduledEndTime?: string | undefined; + duration?: number | undefined; + actualStartTime?: string | undefined; + actualEndTime?: string | undefined; +} + +function createBasePhaseType(): PhaseType { + return { + phaseTypeId: 0, + name: "", + description: undefined, + createUser: undefined, + createDate: undefined, + modifyUser: undefined, + modifyDate: undefined, + }; +} + +export const PhaseType = { + encode(message: PhaseType, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.phaseTypeId !== 0) { + writer.uint32(8).int64(message.phaseTypeId); + } + if (message.name !== "") { + writer.uint32(18).string(message.name); + } + if (message.description !== undefined) { + writer.uint32(26).string(message.description); + } + if (message.createUser !== undefined) { + writer.uint32(32).int32(message.createUser); + } + if (message.createDate !== undefined) { + writer.uint32(42).string(message.createDate); + } + if (message.modifyUser !== undefined) { + writer.uint32(48).int32(message.modifyUser); + } + if (message.modifyDate !== undefined) { + writer.uint32(58).string(message.modifyDate); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): PhaseType { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePhaseType(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.phaseTypeId = longToNumber(reader.int64() as Long); + break; + case 2: + message.name = reader.string(); + break; + case 3: + message.description = reader.string(); + break; + case 4: + message.createUser = reader.int32(); + break; + case 5: + message.createDate = reader.string(); + break; + case 6: + message.modifyUser = reader.int32(); + break; + case 7: + message.modifyDate = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): PhaseType { + return { + phaseTypeId: isSet(object.phaseTypeId) ? Number(object.phaseTypeId) : 0, + name: isSet(object.name) ? String(object.name) : "", + description: isSet(object.description) ? String(object.description) : undefined, + createUser: isSet(object.createUser) ? Number(object.createUser) : undefined, + createDate: isSet(object.createDate) ? String(object.createDate) : undefined, + modifyUser: isSet(object.modifyUser) ? Number(object.modifyUser) : undefined, + modifyDate: isSet(object.modifyDate) ? String(object.modifyDate) : undefined, + }; + }, + + toJSON(message: PhaseType): unknown { + const obj: any = {}; + message.phaseTypeId !== undefined && (obj.phaseTypeId = Math.round(message.phaseTypeId)); + message.name !== undefined && (obj.name = message.name); + message.description !== undefined && (obj.description = message.description); + message.createUser !== undefined && (obj.createUser = Math.round(message.createUser)); + message.createDate !== undefined && (obj.createDate = message.createDate); + message.modifyUser !== undefined && (obj.modifyUser = Math.round(message.modifyUser)); + message.modifyDate !== undefined && (obj.modifyDate = message.modifyDate); + return obj; + }, + + create, I>>(base?: I): PhaseType { + return PhaseType.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): PhaseType { + const message = createBasePhaseType(); + message.phaseTypeId = object.phaseTypeId ?? 0; + message.name = object.name ?? ""; + message.description = object.description ?? undefined; + message.createUser = object.createUser ?? undefined; + message.createDate = object.createDate ?? undefined; + message.modifyUser = object.modifyUser ?? undefined; + message.modifyDate = object.modifyDate ?? undefined; + return message; + }, +}; + +function createBasePhaseTypeList(): PhaseTypeList { + return { phaseTypes: [] }; +} + +export const PhaseTypeList = { + encode(message: PhaseTypeList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.phaseTypes) { + PhaseType.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): PhaseTypeList { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePhaseTypeList(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.phaseTypes.push(PhaseType.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): PhaseTypeList { + return { + phaseTypes: Array.isArray(object?.phaseTypes) ? object.phaseTypes.map((e: any) => PhaseType.fromJSON(e)) : [], + }; + }, + + toJSON(message: PhaseTypeList): unknown { + const obj: any = {}; + if (message.phaseTypes) { + obj.phaseTypes = message.phaseTypes.map((e) => e ? PhaseType.toJSON(e) : undefined); + } else { + obj.phaseTypes = []; + } + return obj; + }, + + create, I>>(base?: I): PhaseTypeList { + return PhaseTypeList.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): PhaseTypeList { + const message = createBasePhaseTypeList(); + message.phaseTypes = object.phaseTypes?.map((e) => PhaseType.fromPartial(e)) || []; + return message; + }, +}; + +function createBasePhaseDependency(): PhaseDependency { + return { + dependentPhaseId: 0, + dependencyStart: 0, + dependentStart: 0, + lagTime: 0, + createUser: 0, + createDate: 0, + modifyUser: 0, + modifyDate: 0, + }; +} + +export const PhaseDependency = { + encode(message: PhaseDependency, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.dependentPhaseId !== 0) { + writer.uint32(8).int32(message.dependentPhaseId); + } + if (message.dependencyStart !== 0) { + writer.uint32(16).int64(message.dependencyStart); + } + if (message.dependentStart !== 0) { + writer.uint32(24).int64(message.dependentStart); + } + if (message.lagTime !== 0) { + writer.uint32(32).int64(message.lagTime); + } + if (message.createUser !== 0) { + writer.uint32(40).int32(message.createUser); + } + if (message.createDate !== 0) { + writer.uint32(48).int64(message.createDate); + } + if (message.modifyUser !== 0) { + writer.uint32(56).int32(message.modifyUser); + } + if (message.modifyDate !== 0) { + writer.uint32(64).int64(message.modifyDate); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): PhaseDependency { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePhaseDependency(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.dependentPhaseId = reader.int32(); + break; + case 2: + message.dependencyStart = longToNumber(reader.int64() as Long); + break; + case 3: + message.dependentStart = longToNumber(reader.int64() as Long); + break; + case 4: + message.lagTime = longToNumber(reader.int64() as Long); + break; + case 5: + message.createUser = reader.int32(); + break; + case 6: + message.createDate = longToNumber(reader.int64() as Long); + break; + case 7: + message.modifyUser = reader.int32(); + break; + case 8: + message.modifyDate = longToNumber(reader.int64() as Long); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): PhaseDependency { + return { + dependentPhaseId: isSet(object.dependentPhaseId) ? Number(object.dependentPhaseId) : 0, + dependencyStart: isSet(object.dependencyStart) ? Number(object.dependencyStart) : 0, + dependentStart: isSet(object.dependentStart) ? Number(object.dependentStart) : 0, + lagTime: isSet(object.lagTime) ? Number(object.lagTime) : 0, + createUser: isSet(object.createUser) ? Number(object.createUser) : 0, + createDate: isSet(object.createDate) ? Number(object.createDate) : 0, + modifyUser: isSet(object.modifyUser) ? Number(object.modifyUser) : 0, + modifyDate: isSet(object.modifyDate) ? Number(object.modifyDate) : 0, + }; + }, + + toJSON(message: PhaseDependency): unknown { + const obj: any = {}; + message.dependentPhaseId !== undefined && (obj.dependentPhaseId = Math.round(message.dependentPhaseId)); + message.dependencyStart !== undefined && (obj.dependencyStart = Math.round(message.dependencyStart)); + message.dependentStart !== undefined && (obj.dependentStart = Math.round(message.dependentStart)); + message.lagTime !== undefined && (obj.lagTime = Math.round(message.lagTime)); + message.createUser !== undefined && (obj.createUser = Math.round(message.createUser)); + message.createDate !== undefined && (obj.createDate = Math.round(message.createDate)); + message.modifyUser !== undefined && (obj.modifyUser = Math.round(message.modifyUser)); + message.modifyDate !== undefined && (obj.modifyDate = Math.round(message.modifyDate)); + return obj; + }, + + create, I>>(base?: I): PhaseDependency { + return PhaseDependency.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): PhaseDependency { + const message = createBasePhaseDependency(); + message.dependentPhaseId = object.dependentPhaseId ?? 0; + message.dependencyStart = object.dependencyStart ?? 0; + message.dependentStart = object.dependentStart ?? 0; + message.lagTime = object.lagTime ?? 0; + message.createUser = object.createUser ?? 0; + message.createDate = object.createDate ?? 0; + message.modifyUser = object.modifyUser ?? 0; + message.modifyDate = object.modifyDate ?? 0; + return message; + }, +}; + +function createBaseCreatePhaseDependencyInput(): CreatePhaseDependencyInput { + return { dependentPhaseId: 0, dependencyStart: 0, dependentStart: 0, lagTime: 0 }; +} + +export const CreatePhaseDependencyInput = { + encode(message: CreatePhaseDependencyInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.dependentPhaseId !== 0) { + writer.uint32(8).int32(message.dependentPhaseId); + } + if (message.dependencyStart !== 0) { + writer.uint32(16).int64(message.dependencyStart); + } + if (message.dependentStart !== 0) { + writer.uint32(24).int64(message.dependentStart); + } + if (message.lagTime !== 0) { + writer.uint32(32).int64(message.lagTime); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreatePhaseDependencyInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreatePhaseDependencyInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.dependentPhaseId = reader.int32(); + break; + case 2: + message.dependencyStart = longToNumber(reader.int64() as Long); + break; + case 3: + message.dependentStart = longToNumber(reader.int64() as Long); + break; + case 4: + message.lagTime = longToNumber(reader.int64() as Long); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreatePhaseDependencyInput { + return { + dependentPhaseId: isSet(object.dependentPhaseId) ? Number(object.dependentPhaseId) : 0, + dependencyStart: isSet(object.dependencyStart) ? Number(object.dependencyStart) : 0, + dependentStart: isSet(object.dependentStart) ? Number(object.dependentStart) : 0, + lagTime: isSet(object.lagTime) ? Number(object.lagTime) : 0, + }; + }, + + toJSON(message: CreatePhaseDependencyInput): unknown { + const obj: any = {}; + message.dependentPhaseId !== undefined && (obj.dependentPhaseId = Math.round(message.dependentPhaseId)); + message.dependencyStart !== undefined && (obj.dependencyStart = Math.round(message.dependencyStart)); + message.dependentStart !== undefined && (obj.dependentStart = Math.round(message.dependentStart)); + message.lagTime !== undefined && (obj.lagTime = Math.round(message.lagTime)); + return obj; + }, + + create, I>>(base?: I): CreatePhaseDependencyInput { + return CreatePhaseDependencyInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): CreatePhaseDependencyInput { + const message = createBaseCreatePhaseDependencyInput(); + message.dependentPhaseId = object.dependentPhaseId ?? 0; + message.dependencyStart = object.dependencyStart ?? 0; + message.dependentStart = object.dependentStart ?? 0; + message.lagTime = object.lagTime ?? 0; + return message; + }, +}; + +function createBasePhaseCriteria(): PhaseCriteria { + return { + projectPhaseId: 0, + phaseCriteriaTypeId: 0, + parameter: "", + createUser: 0, + createDate: 0, + modifyUser: 0, + modifyDate: 0, + }; +} + +export const PhaseCriteria = { + encode(message: PhaseCriteria, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectPhaseId !== 0) { + writer.uint32(8).int32(message.projectPhaseId); + } + if (message.phaseCriteriaTypeId !== 0) { + writer.uint32(16).int32(message.phaseCriteriaTypeId); + } + if (message.parameter !== "") { + writer.uint32(26).string(message.parameter); + } + if (message.createUser !== 0) { + writer.uint32(32).int32(message.createUser); + } + if (message.createDate !== 0) { + writer.uint32(40).int64(message.createDate); + } + if (message.modifyUser !== 0) { + writer.uint32(48).int32(message.modifyUser); + } + if (message.modifyDate !== 0) { + writer.uint32(56).int64(message.modifyDate); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): PhaseCriteria { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePhaseCriteria(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectPhaseId = reader.int32(); + break; + case 2: + message.phaseCriteriaTypeId = reader.int32(); + break; + case 3: + message.parameter = reader.string(); + break; + case 4: + message.createUser = reader.int32(); + break; + case 5: + message.createDate = longToNumber(reader.int64() as Long); + break; + case 6: + message.modifyUser = reader.int32(); + break; + case 7: + message.modifyDate = longToNumber(reader.int64() as Long); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): PhaseCriteria { + return { + projectPhaseId: isSet(object.projectPhaseId) ? Number(object.projectPhaseId) : 0, + phaseCriteriaTypeId: isSet(object.phaseCriteriaTypeId) ? Number(object.phaseCriteriaTypeId) : 0, + parameter: isSet(object.parameter) ? String(object.parameter) : "", + createUser: isSet(object.createUser) ? Number(object.createUser) : 0, + createDate: isSet(object.createDate) ? Number(object.createDate) : 0, + modifyUser: isSet(object.modifyUser) ? Number(object.modifyUser) : 0, + modifyDate: isSet(object.modifyDate) ? Number(object.modifyDate) : 0, + }; + }, + + toJSON(message: PhaseCriteria): unknown { + const obj: any = {}; + message.projectPhaseId !== undefined && (obj.projectPhaseId = Math.round(message.projectPhaseId)); + message.phaseCriteriaTypeId !== undefined && (obj.phaseCriteriaTypeId = Math.round(message.phaseCriteriaTypeId)); + message.parameter !== undefined && (obj.parameter = message.parameter); + message.createUser !== undefined && (obj.createUser = Math.round(message.createUser)); + message.createDate !== undefined && (obj.createDate = Math.round(message.createDate)); + message.modifyUser !== undefined && (obj.modifyUser = Math.round(message.modifyUser)); + message.modifyDate !== undefined && (obj.modifyDate = Math.round(message.modifyDate)); + return obj; + }, + + create, I>>(base?: I): PhaseCriteria { + return PhaseCriteria.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): PhaseCriteria { + const message = createBasePhaseCriteria(); + message.projectPhaseId = object.projectPhaseId ?? 0; + message.phaseCriteriaTypeId = object.phaseCriteriaTypeId ?? 0; + message.parameter = object.parameter ?? ""; + message.createUser = object.createUser ?? 0; + message.createDate = object.createDate ?? 0; + message.modifyUser = object.modifyUser ?? 0; + message.modifyDate = object.modifyDate ?? 0; + return message; + }, +}; + +function createBaseCreatePhaseCriteriaInput(): CreatePhaseCriteriaInput { + return { projectPhaseId: 0, phaseCriteriaTypeId: 0, parameter: "" }; +} + +export const CreatePhaseCriteriaInput = { + encode(message: CreatePhaseCriteriaInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectPhaseId !== 0) { + writer.uint32(8).int32(message.projectPhaseId); + } + if (message.phaseCriteriaTypeId !== 0) { + writer.uint32(16).int32(message.phaseCriteriaTypeId); + } + if (message.parameter !== "") { + writer.uint32(26).string(message.parameter); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreatePhaseCriteriaInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreatePhaseCriteriaInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectPhaseId = reader.int32(); + break; + case 2: + message.phaseCriteriaTypeId = reader.int32(); + break; + case 3: + message.parameter = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreatePhaseCriteriaInput { + return { + projectPhaseId: isSet(object.projectPhaseId) ? Number(object.projectPhaseId) : 0, + phaseCriteriaTypeId: isSet(object.phaseCriteriaTypeId) ? Number(object.phaseCriteriaTypeId) : 0, + parameter: isSet(object.parameter) ? String(object.parameter) : "", + }; + }, + + toJSON(message: CreatePhaseCriteriaInput): unknown { + const obj: any = {}; + message.projectPhaseId !== undefined && (obj.projectPhaseId = Math.round(message.projectPhaseId)); + message.phaseCriteriaTypeId !== undefined && (obj.phaseCriteriaTypeId = Math.round(message.phaseCriteriaTypeId)); + message.parameter !== undefined && (obj.parameter = message.parameter); + return obj; + }, + + create, I>>(base?: I): CreatePhaseCriteriaInput { + return CreatePhaseCriteriaInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): CreatePhaseCriteriaInput { + const message = createBaseCreatePhaseCriteriaInput(); + message.projectPhaseId = object.projectPhaseId ?? 0; + message.phaseCriteriaTypeId = object.phaseCriteriaTypeId ?? 0; + message.parameter = object.parameter ?? ""; + return message; + }, +}; + +function createBaseDeletePhaseCriteriaInput(): DeletePhaseCriteriaInput { + return { projectPhaseId: 0, phaseCriteriaTypeId: undefined }; +} + +export const DeletePhaseCriteriaInput = { + encode(message: DeletePhaseCriteriaInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectPhaseId !== 0) { + writer.uint32(8).int32(message.projectPhaseId); + } + if (message.phaseCriteriaTypeId !== undefined) { + writer.uint32(16).int32(message.phaseCriteriaTypeId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeletePhaseCriteriaInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeletePhaseCriteriaInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectPhaseId = reader.int32(); + break; + case 2: + message.phaseCriteriaTypeId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): DeletePhaseCriteriaInput { + return { + projectPhaseId: isSet(object.projectPhaseId) ? Number(object.projectPhaseId) : 0, + phaseCriteriaTypeId: isSet(object.phaseCriteriaTypeId) ? Number(object.phaseCriteriaTypeId) : undefined, + }; + }, + + toJSON(message: DeletePhaseCriteriaInput): unknown { + const obj: any = {}; + message.projectPhaseId !== undefined && (obj.projectPhaseId = Math.round(message.projectPhaseId)); + message.phaseCriteriaTypeId !== undefined && (obj.phaseCriteriaTypeId = Math.round(message.phaseCriteriaTypeId)); + return obj; + }, + + create, I>>(base?: I): DeletePhaseCriteriaInput { + return DeletePhaseCriteriaInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): DeletePhaseCriteriaInput { + const message = createBaseDeletePhaseCriteriaInput(); + message.projectPhaseId = object.projectPhaseId ?? 0; + message.phaseCriteriaTypeId = object.phaseCriteriaTypeId ?? undefined; + return message; + }, +}; + +function createBasePhaseCriteriaList(): PhaseCriteriaList { + return { phaseCriteriaList: [] }; +} + +export const PhaseCriteriaList = { + encode(message: PhaseCriteriaList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.phaseCriteriaList) { + PhaseCriteria.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): PhaseCriteriaList { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBasePhaseCriteriaList(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.phaseCriteriaList.push(PhaseCriteria.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): PhaseCriteriaList { + return { + phaseCriteriaList: Array.isArray(object?.phaseCriteriaList) + ? object.phaseCriteriaList.map((e: any) => PhaseCriteria.fromJSON(e)) + : [], + }; + }, + + toJSON(message: PhaseCriteriaList): unknown { + const obj: any = {}; + if (message.phaseCriteriaList) { + obj.phaseCriteriaList = message.phaseCriteriaList.map((e) => e ? PhaseCriteria.toJSON(e) : undefined); + } else { + obj.phaseCriteriaList = []; + } + return obj; + }, + + create, I>>(base?: I): PhaseCriteriaList { + return PhaseCriteriaList.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): PhaseCriteriaList { + const message = createBasePhaseCriteriaList(); + message.phaseCriteriaList = object.phaseCriteriaList?.map((e) => PhaseCriteria.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseGetPhaseCriteriaInput(): GetPhaseCriteriaInput { + return { projectPhaseId: 0, phaseCriteriaTypeId: undefined }; +} + +export const GetPhaseCriteriaInput = { + encode(message: GetPhaseCriteriaInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectPhaseId !== 0) { + writer.uint32(8).int32(message.projectPhaseId); + } + if (message.phaseCriteriaTypeId !== undefined) { + writer.uint32(16).int32(message.phaseCriteriaTypeId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetPhaseCriteriaInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetPhaseCriteriaInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectPhaseId = reader.int32(); + break; + case 2: + message.phaseCriteriaTypeId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GetPhaseCriteriaInput { + return { + projectPhaseId: isSet(object.projectPhaseId) ? Number(object.projectPhaseId) : 0, + phaseCriteriaTypeId: isSet(object.phaseCriteriaTypeId) ? Number(object.phaseCriteriaTypeId) : undefined, + }; + }, + + toJSON(message: GetPhaseCriteriaInput): unknown { + const obj: any = {}; + message.projectPhaseId !== undefined && (obj.projectPhaseId = Math.round(message.projectPhaseId)); + message.phaseCriteriaTypeId !== undefined && (obj.phaseCriteriaTypeId = Math.round(message.phaseCriteriaTypeId)); + return obj; + }, + + create, I>>(base?: I): GetPhaseCriteriaInput { + return GetPhaseCriteriaInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): GetPhaseCriteriaInput { + const message = createBaseGetPhaseCriteriaInput(); + message.projectPhaseId = object.projectPhaseId ?? 0; + message.phaseCriteriaTypeId = object.phaseCriteriaTypeId ?? undefined; + return message; + }, +}; + +function createBaseProjectPhase(): ProjectPhase { + return { + projectPhaseId: 0, + projectId: 0, + phaseTypeId: 0, + phaseStatusId: 0, + fixedStartTime: undefined, + scheduledStartTime: undefined, + scheduledEndTime: undefined, + actualStartTime: undefined, + actualEndTime: undefined, + duration: 0, + createUser: undefined, + createDate: undefined, + modifyUser: undefined, + modifyDate: undefined, + }; +} + +export const ProjectPhase = { + encode(message: ProjectPhase, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectPhaseId !== 0) { + writer.uint32(8).int64(message.projectPhaseId); + } + if (message.projectId !== 0) { + writer.uint32(16).int64(message.projectId); + } + if (message.phaseTypeId !== 0) { + writer.uint32(24).int64(message.phaseTypeId); + } + if (message.phaseStatusId !== 0) { + writer.uint32(32).int64(message.phaseStatusId); + } + if (message.fixedStartTime !== undefined) { + writer.uint32(40).int64(message.fixedStartTime); + } + if (message.scheduledStartTime !== undefined) { + writer.uint32(48).int64(message.scheduledStartTime); + } + if (message.scheduledEndTime !== undefined) { + writer.uint32(56).int64(message.scheduledEndTime); + } + if (message.actualStartTime !== undefined) { + writer.uint32(64).int64(message.actualStartTime); + } + if (message.actualEndTime !== undefined) { + writer.uint32(72).int64(message.actualEndTime); + } + if (message.duration !== 0) { + writer.uint32(80).int32(message.duration); + } + if (message.createUser !== undefined) { + writer.uint32(88).int32(message.createUser); + } + if (message.createDate !== undefined) { + writer.uint32(96).int64(message.createDate); + } + if (message.modifyUser !== undefined) { + writer.uint32(104).int32(message.modifyUser); + } + if (message.modifyDate !== undefined) { + writer.uint32(112).int64(message.modifyDate); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ProjectPhase { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseProjectPhase(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectPhaseId = longToNumber(reader.int64() as Long); + break; + case 2: + message.projectId = longToNumber(reader.int64() as Long); + break; + case 3: + message.phaseTypeId = longToNumber(reader.int64() as Long); + break; + case 4: + message.phaseStatusId = longToNumber(reader.int64() as Long); + break; + case 5: + message.fixedStartTime = longToNumber(reader.int64() as Long); + break; + case 6: + message.scheduledStartTime = longToNumber(reader.int64() as Long); + break; + case 7: + message.scheduledEndTime = longToNumber(reader.int64() as Long); + break; + case 8: + message.actualStartTime = longToNumber(reader.int64() as Long); + break; + case 9: + message.actualEndTime = longToNumber(reader.int64() as Long); + break; + case 10: + message.duration = reader.int32(); + break; + case 11: + message.createUser = reader.int32(); + break; + case 12: + message.createDate = longToNumber(reader.int64() as Long); + break; + case 13: + message.modifyUser = reader.int32(); + break; + case 14: + message.modifyDate = longToNumber(reader.int64() as Long); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ProjectPhase { + return { + projectPhaseId: isSet(object.projectPhaseId) ? Number(object.projectPhaseId) : 0, + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + phaseTypeId: isSet(object.phaseTypeId) ? Number(object.phaseTypeId) : 0, + phaseStatusId: isSet(object.phaseStatusId) ? Number(object.phaseStatusId) : 0, + fixedStartTime: isSet(object.fixedStartTime) ? Number(object.fixedStartTime) : undefined, + scheduledStartTime: isSet(object.scheduledStartTime) ? Number(object.scheduledStartTime) : undefined, + scheduledEndTime: isSet(object.scheduledEndTime) ? Number(object.scheduledEndTime) : undefined, + actualStartTime: isSet(object.actualStartTime) ? Number(object.actualStartTime) : undefined, + actualEndTime: isSet(object.actualEndTime) ? Number(object.actualEndTime) : undefined, + duration: isSet(object.duration) ? Number(object.duration) : 0, + createUser: isSet(object.createUser) ? Number(object.createUser) : undefined, + createDate: isSet(object.createDate) ? Number(object.createDate) : undefined, + modifyUser: isSet(object.modifyUser) ? Number(object.modifyUser) : undefined, + modifyDate: isSet(object.modifyDate) ? Number(object.modifyDate) : undefined, + }; + }, + + toJSON(message: ProjectPhase): unknown { + const obj: any = {}; + message.projectPhaseId !== undefined && (obj.projectPhaseId = Math.round(message.projectPhaseId)); + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.phaseTypeId !== undefined && (obj.phaseTypeId = Math.round(message.phaseTypeId)); + message.phaseStatusId !== undefined && (obj.phaseStatusId = Math.round(message.phaseStatusId)); + message.fixedStartTime !== undefined && (obj.fixedStartTime = Math.round(message.fixedStartTime)); + message.scheduledStartTime !== undefined && (obj.scheduledStartTime = Math.round(message.scheduledStartTime)); + message.scheduledEndTime !== undefined && (obj.scheduledEndTime = Math.round(message.scheduledEndTime)); + message.actualStartTime !== undefined && (obj.actualStartTime = Math.round(message.actualStartTime)); + message.actualEndTime !== undefined && (obj.actualEndTime = Math.round(message.actualEndTime)); + message.duration !== undefined && (obj.duration = Math.round(message.duration)); + message.createUser !== undefined && (obj.createUser = Math.round(message.createUser)); + message.createDate !== undefined && (obj.createDate = Math.round(message.createDate)); + message.modifyUser !== undefined && (obj.modifyUser = Math.round(message.modifyUser)); + message.modifyDate !== undefined && (obj.modifyDate = Math.round(message.modifyDate)); + return obj; + }, + + create, I>>(base?: I): ProjectPhase { + return ProjectPhase.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ProjectPhase { + const message = createBaseProjectPhase(); + message.projectPhaseId = object.projectPhaseId ?? 0; + message.projectId = object.projectId ?? 0; + message.phaseTypeId = object.phaseTypeId ?? 0; + message.phaseStatusId = object.phaseStatusId ?? 0; + message.fixedStartTime = object.fixedStartTime ?? undefined; + message.scheduledStartTime = object.scheduledStartTime ?? undefined; + message.scheduledEndTime = object.scheduledEndTime ?? undefined; + message.actualStartTime = object.actualStartTime ?? undefined; + message.actualEndTime = object.actualEndTime ?? undefined; + message.duration = object.duration ?? 0; + message.createUser = object.createUser ?? undefined; + message.createDate = object.createDate ?? undefined; + message.modifyUser = object.modifyUser ?? undefined; + message.modifyDate = object.modifyDate ?? undefined; + return message; + }, +}; + +function createBaseGetProjectPhasesInput(): GetProjectPhasesInput { + return { projectId: 0, phaseTypeId: undefined }; +} + +export const GetProjectPhasesInput = { + encode(message: GetProjectPhasesInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int32(message.projectId); + } + if (message.phaseTypeId !== undefined) { + writer.uint32(16).int32(message.phaseTypeId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetProjectPhasesInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetProjectPhasesInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = reader.int32(); + break; + case 2: + message.phaseTypeId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GetProjectPhasesInput { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + phaseTypeId: isSet(object.phaseTypeId) ? Number(object.phaseTypeId) : undefined, + }; + }, + + toJSON(message: GetProjectPhasesInput): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.phaseTypeId !== undefined && (obj.phaseTypeId = Math.round(message.phaseTypeId)); + return obj; + }, + + create, I>>(base?: I): GetProjectPhasesInput { + return GetProjectPhasesInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): GetProjectPhasesInput { + const message = createBaseGetProjectPhasesInput(); + message.projectId = object.projectId ?? 0; + message.phaseTypeId = object.phaseTypeId ?? undefined; + return message; + }, +}; + +function createBaseProjectPhaseList(): ProjectPhaseList { + return { projectPhases: [] }; +} + +export const ProjectPhaseList = { + encode(message: ProjectPhaseList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.projectPhases) { + ProjectPhase.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ProjectPhaseList { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseProjectPhaseList(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectPhases.push(ProjectPhase.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ProjectPhaseList { + return { + projectPhases: Array.isArray(object?.projectPhases) + ? object.projectPhases.map((e: any) => ProjectPhase.fromJSON(e)) + : [], + }; + }, + + toJSON(message: ProjectPhaseList): unknown { + const obj: any = {}; + if (message.projectPhases) { + obj.projectPhases = message.projectPhases.map((e) => e ? ProjectPhase.toJSON(e) : undefined); + } else { + obj.projectPhases = []; + } + return obj; + }, + + create, I>>(base?: I): ProjectPhaseList { + return ProjectPhaseList.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ProjectPhaseList { + const message = createBaseProjectPhaseList(); + message.projectPhases = object.projectPhases?.map((e) => ProjectPhase.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseDeleteProjectPhasesInput(): DeleteProjectPhasesInput { + return { projectId: 0, projectPhaseId: 0 }; +} + +export const DeleteProjectPhasesInput = { + encode(message: DeleteProjectPhasesInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int32(message.projectId); + } + if (message.projectPhaseId !== 0) { + writer.uint32(16).int32(message.projectPhaseId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteProjectPhasesInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteProjectPhasesInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = reader.int32(); + break; + case 2: + message.projectPhaseId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): DeleteProjectPhasesInput { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + projectPhaseId: isSet(object.projectPhaseId) ? Number(object.projectPhaseId) : 0, + }; + }, + + toJSON(message: DeleteProjectPhasesInput): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.projectPhaseId !== undefined && (obj.projectPhaseId = Math.round(message.projectPhaseId)); + return obj; + }, + + create, I>>(base?: I): DeleteProjectPhasesInput { + return DeleteProjectPhasesInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): DeleteProjectPhasesInput { + const message = createBaseDeleteProjectPhasesInput(); + message.projectId = object.projectId ?? 0; + message.projectPhaseId = object.projectPhaseId ?? 0; + return message; + }, +}; + +function createBaseCreateProjectPhaseInput(): CreateProjectPhaseInput { + return { + projectId: 0, + phaseTypeId: 0, + phaseStatusId: 0, + fixedStartTime: undefined, + scheduledStartTime: undefined, + scheduledEndTime: undefined, + actualStartTime: undefined, + actualEndTime: undefined, + duration: 0, + }; +} + +export const CreateProjectPhaseInput = { + encode(message: CreateProjectPhaseInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int64(message.projectId); + } + if (message.phaseTypeId !== 0) { + writer.uint32(16).int64(message.phaseTypeId); + } + if (message.phaseStatusId !== 0) { + writer.uint32(24).int64(message.phaseStatusId); + } + if (message.fixedStartTime !== undefined) { + writer.uint32(34).string(message.fixedStartTime); + } + if (message.scheduledStartTime !== undefined) { + writer.uint32(42).string(message.scheduledStartTime); + } + if (message.scheduledEndTime !== undefined) { + writer.uint32(50).string(message.scheduledEndTime); + } + if (message.actualStartTime !== undefined) { + writer.uint32(58).string(message.actualStartTime); + } + if (message.actualEndTime !== undefined) { + writer.uint32(66).string(message.actualEndTime); + } + if (message.duration !== 0) { + writer.uint32(72).int32(message.duration); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateProjectPhaseInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateProjectPhaseInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = longToNumber(reader.int64() as Long); + break; + case 2: + message.phaseTypeId = longToNumber(reader.int64() as Long); + break; + case 3: + message.phaseStatusId = longToNumber(reader.int64() as Long); + break; + case 4: + message.fixedStartTime = reader.string(); + break; + case 5: + message.scheduledStartTime = reader.string(); + break; + case 6: + message.scheduledEndTime = reader.string(); + break; + case 7: + message.actualStartTime = reader.string(); + break; + case 8: + message.actualEndTime = reader.string(); + break; + case 9: + message.duration = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreateProjectPhaseInput { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + phaseTypeId: isSet(object.phaseTypeId) ? Number(object.phaseTypeId) : 0, + phaseStatusId: isSet(object.phaseStatusId) ? Number(object.phaseStatusId) : 0, + fixedStartTime: isSet(object.fixedStartTime) ? String(object.fixedStartTime) : undefined, + scheduledStartTime: isSet(object.scheduledStartTime) ? String(object.scheduledStartTime) : undefined, + scheduledEndTime: isSet(object.scheduledEndTime) ? String(object.scheduledEndTime) : undefined, + actualStartTime: isSet(object.actualStartTime) ? String(object.actualStartTime) : undefined, + actualEndTime: isSet(object.actualEndTime) ? String(object.actualEndTime) : undefined, + duration: isSet(object.duration) ? Number(object.duration) : 0, + }; + }, + + toJSON(message: CreateProjectPhaseInput): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.phaseTypeId !== undefined && (obj.phaseTypeId = Math.round(message.phaseTypeId)); + message.phaseStatusId !== undefined && (obj.phaseStatusId = Math.round(message.phaseStatusId)); + message.fixedStartTime !== undefined && (obj.fixedStartTime = message.fixedStartTime); + message.scheduledStartTime !== undefined && (obj.scheduledStartTime = message.scheduledStartTime); + message.scheduledEndTime !== undefined && (obj.scheduledEndTime = message.scheduledEndTime); + message.actualStartTime !== undefined && (obj.actualStartTime = message.actualStartTime); + message.actualEndTime !== undefined && (obj.actualEndTime = message.actualEndTime); + message.duration !== undefined && (obj.duration = Math.round(message.duration)); + return obj; + }, + + create, I>>(base?: I): CreateProjectPhaseInput { + return CreateProjectPhaseInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): CreateProjectPhaseInput { + const message = createBaseCreateProjectPhaseInput(); + message.projectId = object.projectId ?? 0; + message.phaseTypeId = object.phaseTypeId ?? 0; + message.phaseStatusId = object.phaseStatusId ?? 0; + message.fixedStartTime = object.fixedStartTime ?? undefined; + message.scheduledStartTime = object.scheduledStartTime ?? undefined; + message.scheduledEndTime = object.scheduledEndTime ?? undefined; + message.actualStartTime = object.actualStartTime ?? undefined; + message.actualEndTime = object.actualEndTime ?? undefined; + message.duration = object.duration ?? 0; + return message; + }, +}; + +function createBaseUpdateProjectPhaseInput(): UpdateProjectPhaseInput { + return { + projectPhaseId: 0, + phaseStatusId: 0, + fixedStartTime: undefined, + scheduledStartTime: undefined, + scheduledEndTime: undefined, + duration: undefined, + actualStartTime: undefined, + actualEndTime: undefined, + }; +} + +export const UpdateProjectPhaseInput = { + encode(message: UpdateProjectPhaseInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectPhaseId !== 0) { + writer.uint32(8).int64(message.projectPhaseId); + } + if (message.phaseStatusId !== 0) { + writer.uint32(16).int32(message.phaseStatusId); + } + if (message.fixedStartTime !== undefined) { + writer.uint32(26).string(message.fixedStartTime); + } + if (message.scheduledStartTime !== undefined) { + writer.uint32(34).string(message.scheduledStartTime); + } + if (message.scheduledEndTime !== undefined) { + writer.uint32(42).string(message.scheduledEndTime); + } + if (message.duration !== undefined) { + writer.uint32(48).int64(message.duration); + } + if (message.actualStartTime !== undefined) { + writer.uint32(58).string(message.actualStartTime); + } + if (message.actualEndTime !== undefined) { + writer.uint32(66).string(message.actualEndTime); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UpdateProjectPhaseInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpdateProjectPhaseInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectPhaseId = longToNumber(reader.int64() as Long); + break; + case 2: + message.phaseStatusId = reader.int32(); + break; + case 3: + message.fixedStartTime = reader.string(); + break; + case 4: + message.scheduledStartTime = reader.string(); + break; + case 5: + message.scheduledEndTime = reader.string(); + break; + case 6: + message.duration = longToNumber(reader.int64() as Long); + break; + case 7: + message.actualStartTime = reader.string(); + break; + case 8: + message.actualEndTime = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): UpdateProjectPhaseInput { + return { + projectPhaseId: isSet(object.projectPhaseId) ? Number(object.projectPhaseId) : 0, + phaseStatusId: isSet(object.phaseStatusId) ? Number(object.phaseStatusId) : 0, + fixedStartTime: isSet(object.fixedStartTime) ? String(object.fixedStartTime) : undefined, + scheduledStartTime: isSet(object.scheduledStartTime) ? String(object.scheduledStartTime) : undefined, + scheduledEndTime: isSet(object.scheduledEndTime) ? String(object.scheduledEndTime) : undefined, + duration: isSet(object.duration) ? Number(object.duration) : undefined, + actualStartTime: isSet(object.actualStartTime) ? String(object.actualStartTime) : undefined, + actualEndTime: isSet(object.actualEndTime) ? String(object.actualEndTime) : undefined, + }; + }, + + toJSON(message: UpdateProjectPhaseInput): unknown { + const obj: any = {}; + message.projectPhaseId !== undefined && (obj.projectPhaseId = Math.round(message.projectPhaseId)); + message.phaseStatusId !== undefined && (obj.phaseStatusId = Math.round(message.phaseStatusId)); + message.fixedStartTime !== undefined && (obj.fixedStartTime = message.fixedStartTime); + message.scheduledStartTime !== undefined && (obj.scheduledStartTime = message.scheduledStartTime); + message.scheduledEndTime !== undefined && (obj.scheduledEndTime = message.scheduledEndTime); + message.duration !== undefined && (obj.duration = Math.round(message.duration)); + message.actualStartTime !== undefined && (obj.actualStartTime = message.actualStartTime); + message.actualEndTime !== undefined && (obj.actualEndTime = message.actualEndTime); + return obj; + }, + + create, I>>(base?: I): UpdateProjectPhaseInput { + return UpdateProjectPhaseInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): UpdateProjectPhaseInput { + const message = createBaseUpdateProjectPhaseInput(); + message.projectPhaseId = object.projectPhaseId ?? 0; + message.phaseStatusId = object.phaseStatusId ?? 0; + message.fixedStartTime = object.fixedStartTime ?? undefined; + message.scheduledStartTime = object.scheduledStartTime ?? undefined; + message.scheduledEndTime = object.scheduledEndTime ?? undefined; + message.duration = object.duration ?? undefined; + message.actualStartTime = object.actualStartTime ?? undefined; + message.actualEndTime = object.actualEndTime ?? undefined; + return message; + }, +}; + +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 + : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> + : T extends { $case: string } ? { [K in keyof Omit]?: DeepPartial } & { $case: T["$case"] } + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +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 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 { + return value !== null && value !== undefined; +} diff --git a/src/models/domain-layer/legacy/prize.ts b/src/models/domain-layer/legacy/prize.ts index e2a0e00..978e2c4 100644 --- a/src/models/domain-layer/legacy/prize.ts +++ b/src/models/domain-layer/legacy/prize.ts @@ -54,6 +54,11 @@ export interface UpdatePrizeInput_UpdateCriteria { prizeId?: number | undefined; } +export interface DeletePrizeInput { + prizeId: number; + projectId: number; +} + function createBasePrize(): Prize { return { prizeId: 0, @@ -686,6 +691,68 @@ export const UpdatePrizeInput_UpdateCriteria = { }, }; +function createBaseDeletePrizeInput(): DeletePrizeInput { + return { prizeId: 0, projectId: 0 }; +} + +export const DeletePrizeInput = { + encode(message: DeletePrizeInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.prizeId !== 0) { + writer.uint32(8).int32(message.prizeId); + } + if (message.projectId !== 0) { + writer.uint32(16).int32(message.projectId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeletePrizeInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeletePrizeInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.prizeId = reader.int32(); + break; + case 2: + message.projectId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): DeletePrizeInput { + return { + prizeId: isSet(object.prizeId) ? Number(object.prizeId) : 0, + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + }; + }, + + toJSON(message: DeletePrizeInput): unknown { + const obj: any = {}; + message.prizeId !== undefined && (obj.prizeId = Math.round(message.prizeId)); + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + return obj; + }, + + create, I>>(base?: I): DeletePrizeInput { + return DeletePrizeInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): DeletePrizeInput { + const message = createBaseDeletePrizeInput(); + message.prizeId = object.prizeId ?? 0; + message.projectId = object.projectId ?? 0; + return message; + }, +}; + declare var self: any | undefined; declare var window: any | undefined; declare var global: any | undefined; diff --git a/src/models/domain-layer/legacy/project_info.ts b/src/models/domain-layer/legacy/project_info.ts new file mode 100644 index 0000000..dab61e5 --- /dev/null +++ b/src/models/domain-layer/legacy/project_info.ts @@ -0,0 +1,682 @@ +/* eslint-disable */ +import _m0 from "protobufjs/minimal"; + +export interface ProjectInfo { + projectId: number; + projectInfoTypeId: number; + value: string; + createUser?: number | undefined; + createDate?: string | undefined; + modifyUser?: number | undefined; + modifyDate?: string | undefined; +} + +export interface ProjectInfoList { + projectInfos: ProjectInfo[]; +} + +export interface GetProjectInfoInput { + projectId: number; + projectInfoTypeId?: number | undefined; +} + +export interface CreateProjectInfoInput { + projectId: number; + projectInfoTypeId: number; + value: string; +} + +export interface DeleteProjectInfoInput { + projectId: number; + projectInfoTypeId: number; +} + +export interface UpdateProjectInfoInput { + projectId: number; + projectInfoTypeId: number; + value: string; +} + +export interface ProjectInfoType { + projectInfoTypeId: number; + name: string; + description: string; + createUser?: number | undefined; + createDate?: string | undefined; + modifyUser?: number | undefined; + modifyDate?: string | undefined; +} + +export interface ProjectInfoTypeList { + projectInfoTypes: ProjectInfoType[]; +} + +function createBaseProjectInfo(): ProjectInfo { + return { + projectId: 0, + projectInfoTypeId: 0, + value: "", + createUser: undefined, + createDate: undefined, + modifyUser: undefined, + modifyDate: undefined, + }; +} + +export const ProjectInfo = { + encode(message: ProjectInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int32(message.projectId); + } + if (message.projectInfoTypeId !== 0) { + writer.uint32(16).int32(message.projectInfoTypeId); + } + if (message.value !== "") { + writer.uint32(26).string(message.value); + } + if (message.createUser !== undefined) { + writer.uint32(32).int32(message.createUser); + } + if (message.createDate !== undefined) { + writer.uint32(42).string(message.createDate); + } + if (message.modifyUser !== undefined) { + writer.uint32(48).int32(message.modifyUser); + } + if (message.modifyDate !== undefined) { + writer.uint32(58).string(message.modifyDate); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ProjectInfo { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseProjectInfo(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = reader.int32(); + break; + case 2: + message.projectInfoTypeId = reader.int32(); + break; + case 3: + message.value = reader.string(); + break; + case 4: + message.createUser = reader.int32(); + break; + case 5: + message.createDate = reader.string(); + break; + case 6: + message.modifyUser = reader.int32(); + break; + case 7: + message.modifyDate = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ProjectInfo { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + projectInfoTypeId: isSet(object.projectInfoTypeId) ? Number(object.projectInfoTypeId) : 0, + value: isSet(object.value) ? String(object.value) : "", + createUser: isSet(object.createUser) ? Number(object.createUser) : undefined, + createDate: isSet(object.createDate) ? String(object.createDate) : undefined, + modifyUser: isSet(object.modifyUser) ? Number(object.modifyUser) : undefined, + modifyDate: isSet(object.modifyDate) ? String(object.modifyDate) : undefined, + }; + }, + + toJSON(message: ProjectInfo): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.projectInfoTypeId !== undefined && (obj.projectInfoTypeId = Math.round(message.projectInfoTypeId)); + message.value !== undefined && (obj.value = message.value); + message.createUser !== undefined && (obj.createUser = Math.round(message.createUser)); + message.createDate !== undefined && (obj.createDate = message.createDate); + message.modifyUser !== undefined && (obj.modifyUser = Math.round(message.modifyUser)); + message.modifyDate !== undefined && (obj.modifyDate = message.modifyDate); + return obj; + }, + + create, I>>(base?: I): ProjectInfo { + return ProjectInfo.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ProjectInfo { + const message = createBaseProjectInfo(); + message.projectId = object.projectId ?? 0; + message.projectInfoTypeId = object.projectInfoTypeId ?? 0; + message.value = object.value ?? ""; + message.createUser = object.createUser ?? undefined; + message.createDate = object.createDate ?? undefined; + message.modifyUser = object.modifyUser ?? undefined; + message.modifyDate = object.modifyDate ?? undefined; + return message; + }, +}; + +function createBaseProjectInfoList(): ProjectInfoList { + return { projectInfos: [] }; +} + +export const ProjectInfoList = { + encode(message: ProjectInfoList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.projectInfos) { + ProjectInfo.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ProjectInfoList { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseProjectInfoList(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectInfos.push(ProjectInfo.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ProjectInfoList { + return { + projectInfos: Array.isArray(object?.projectInfos) + ? object.projectInfos.map((e: any) => ProjectInfo.fromJSON(e)) + : [], + }; + }, + + toJSON(message: ProjectInfoList): unknown { + const obj: any = {}; + if (message.projectInfos) { + obj.projectInfos = message.projectInfos.map((e) => e ? ProjectInfo.toJSON(e) : undefined); + } else { + obj.projectInfos = []; + } + return obj; + }, + + create, I>>(base?: I): ProjectInfoList { + return ProjectInfoList.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ProjectInfoList { + const message = createBaseProjectInfoList(); + message.projectInfos = object.projectInfos?.map((e) => ProjectInfo.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseGetProjectInfoInput(): GetProjectInfoInput { + return { projectId: 0, projectInfoTypeId: undefined }; +} + +export const GetProjectInfoInput = { + encode(message: GetProjectInfoInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int32(message.projectId); + } + if (message.projectInfoTypeId !== undefined) { + writer.uint32(16).int32(message.projectInfoTypeId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetProjectInfoInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetProjectInfoInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = reader.int32(); + break; + case 2: + message.projectInfoTypeId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GetProjectInfoInput { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + projectInfoTypeId: isSet(object.projectInfoTypeId) ? Number(object.projectInfoTypeId) : undefined, + }; + }, + + toJSON(message: GetProjectInfoInput): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.projectInfoTypeId !== undefined && (obj.projectInfoTypeId = Math.round(message.projectInfoTypeId)); + return obj; + }, + + create, I>>(base?: I): GetProjectInfoInput { + return GetProjectInfoInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): GetProjectInfoInput { + const message = createBaseGetProjectInfoInput(); + message.projectId = object.projectId ?? 0; + message.projectInfoTypeId = object.projectInfoTypeId ?? undefined; + return message; + }, +}; + +function createBaseCreateProjectInfoInput(): CreateProjectInfoInput { + return { projectId: 0, projectInfoTypeId: 0, value: "" }; +} + +export const CreateProjectInfoInput = { + encode(message: CreateProjectInfoInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int32(message.projectId); + } + if (message.projectInfoTypeId !== 0) { + writer.uint32(16).int32(message.projectInfoTypeId); + } + if (message.value !== "") { + writer.uint32(26).string(message.value); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateProjectInfoInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateProjectInfoInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = reader.int32(); + break; + case 2: + message.projectInfoTypeId = reader.int32(); + break; + case 3: + message.value = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreateProjectInfoInput { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + projectInfoTypeId: isSet(object.projectInfoTypeId) ? Number(object.projectInfoTypeId) : 0, + value: isSet(object.value) ? String(object.value) : "", + }; + }, + + toJSON(message: CreateProjectInfoInput): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.projectInfoTypeId !== undefined && (obj.projectInfoTypeId = Math.round(message.projectInfoTypeId)); + message.value !== undefined && (obj.value = message.value); + return obj; + }, + + create, I>>(base?: I): CreateProjectInfoInput { + return CreateProjectInfoInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): CreateProjectInfoInput { + const message = createBaseCreateProjectInfoInput(); + message.projectId = object.projectId ?? 0; + message.projectInfoTypeId = object.projectInfoTypeId ?? 0; + message.value = object.value ?? ""; + return message; + }, +}; + +function createBaseDeleteProjectInfoInput(): DeleteProjectInfoInput { + return { projectId: 0, projectInfoTypeId: 0 }; +} + +export const DeleteProjectInfoInput = { + encode(message: DeleteProjectInfoInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int32(message.projectId); + } + if (message.projectInfoTypeId !== 0) { + writer.uint32(16).int32(message.projectInfoTypeId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteProjectInfoInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteProjectInfoInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = reader.int32(); + break; + case 2: + message.projectInfoTypeId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): DeleteProjectInfoInput { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + projectInfoTypeId: isSet(object.projectInfoTypeId) ? Number(object.projectInfoTypeId) : 0, + }; + }, + + toJSON(message: DeleteProjectInfoInput): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.projectInfoTypeId !== undefined && (obj.projectInfoTypeId = Math.round(message.projectInfoTypeId)); + return obj; + }, + + create, I>>(base?: I): DeleteProjectInfoInput { + return DeleteProjectInfoInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): DeleteProjectInfoInput { + const message = createBaseDeleteProjectInfoInput(); + message.projectId = object.projectId ?? 0; + message.projectInfoTypeId = object.projectInfoTypeId ?? 0; + return message; + }, +}; + +function createBaseUpdateProjectInfoInput(): UpdateProjectInfoInput { + return { projectId: 0, projectInfoTypeId: 0, value: "" }; +} + +export const UpdateProjectInfoInput = { + encode(message: UpdateProjectInfoInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int32(message.projectId); + } + if (message.projectInfoTypeId !== 0) { + writer.uint32(16).int32(message.projectInfoTypeId); + } + if (message.value !== "") { + writer.uint32(26).string(message.value); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UpdateProjectInfoInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpdateProjectInfoInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = reader.int32(); + break; + case 2: + message.projectInfoTypeId = reader.int32(); + break; + case 3: + message.value = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): UpdateProjectInfoInput { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + projectInfoTypeId: isSet(object.projectInfoTypeId) ? Number(object.projectInfoTypeId) : 0, + value: isSet(object.value) ? String(object.value) : "", + }; + }, + + toJSON(message: UpdateProjectInfoInput): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.projectInfoTypeId !== undefined && (obj.projectInfoTypeId = Math.round(message.projectInfoTypeId)); + message.value !== undefined && (obj.value = message.value); + return obj; + }, + + create, I>>(base?: I): UpdateProjectInfoInput { + return UpdateProjectInfoInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): UpdateProjectInfoInput { + const message = createBaseUpdateProjectInfoInput(); + message.projectId = object.projectId ?? 0; + message.projectInfoTypeId = object.projectInfoTypeId ?? 0; + message.value = object.value ?? ""; + return message; + }, +}; + +function createBaseProjectInfoType(): ProjectInfoType { + return { + projectInfoTypeId: 0, + name: "", + description: "", + createUser: undefined, + createDate: undefined, + modifyUser: undefined, + modifyDate: undefined, + }; +} + +export const ProjectInfoType = { + encode(message: ProjectInfoType, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectInfoTypeId !== 0) { + writer.uint32(8).int32(message.projectInfoTypeId); + } + if (message.name !== "") { + writer.uint32(18).string(message.name); + } + if (message.description !== "") { + writer.uint32(26).string(message.description); + } + if (message.createUser !== undefined) { + writer.uint32(32).int32(message.createUser); + } + if (message.createDate !== undefined) { + writer.uint32(42).string(message.createDate); + } + if (message.modifyUser !== undefined) { + writer.uint32(48).int32(message.modifyUser); + } + if (message.modifyDate !== undefined) { + writer.uint32(58).string(message.modifyDate); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ProjectInfoType { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseProjectInfoType(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectInfoTypeId = reader.int32(); + break; + case 2: + message.name = reader.string(); + break; + case 3: + message.description = reader.string(); + break; + case 4: + message.createUser = reader.int32(); + break; + case 5: + message.createDate = reader.string(); + break; + case 6: + message.modifyUser = reader.int32(); + break; + case 7: + message.modifyDate = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ProjectInfoType { + return { + projectInfoTypeId: isSet(object.projectInfoTypeId) ? Number(object.projectInfoTypeId) : 0, + name: isSet(object.name) ? String(object.name) : "", + description: isSet(object.description) ? String(object.description) : "", + createUser: isSet(object.createUser) ? Number(object.createUser) : undefined, + createDate: isSet(object.createDate) ? String(object.createDate) : undefined, + modifyUser: isSet(object.modifyUser) ? Number(object.modifyUser) : undefined, + modifyDate: isSet(object.modifyDate) ? String(object.modifyDate) : undefined, + }; + }, + + toJSON(message: ProjectInfoType): unknown { + const obj: any = {}; + message.projectInfoTypeId !== undefined && (obj.projectInfoTypeId = Math.round(message.projectInfoTypeId)); + message.name !== undefined && (obj.name = message.name); + message.description !== undefined && (obj.description = message.description); + message.createUser !== undefined && (obj.createUser = Math.round(message.createUser)); + message.createDate !== undefined && (obj.createDate = message.createDate); + message.modifyUser !== undefined && (obj.modifyUser = Math.round(message.modifyUser)); + message.modifyDate !== undefined && (obj.modifyDate = message.modifyDate); + return obj; + }, + + create, I>>(base?: I): ProjectInfoType { + return ProjectInfoType.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ProjectInfoType { + const message = createBaseProjectInfoType(); + message.projectInfoTypeId = object.projectInfoTypeId ?? 0; + message.name = object.name ?? ""; + message.description = object.description ?? ""; + message.createUser = object.createUser ?? undefined; + message.createDate = object.createDate ?? undefined; + message.modifyUser = object.modifyUser ?? undefined; + message.modifyDate = object.modifyDate ?? undefined; + return message; + }, +}; + +function createBaseProjectInfoTypeList(): ProjectInfoTypeList { + return { projectInfoTypes: [] }; +} + +export const ProjectInfoTypeList = { + encode(message: ProjectInfoTypeList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.projectInfoTypes) { + ProjectInfoType.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ProjectInfoTypeList { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseProjectInfoTypeList(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectInfoTypes.push(ProjectInfoType.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ProjectInfoTypeList { + return { + projectInfoTypes: Array.isArray(object?.projectInfoTypes) + ? object.projectInfoTypes.map((e: any) => ProjectInfoType.fromJSON(e)) + : [], + }; + }, + + toJSON(message: ProjectInfoTypeList): unknown { + const obj: any = {}; + if (message.projectInfoTypes) { + obj.projectInfoTypes = message.projectInfoTypes.map((e) => e ? ProjectInfoType.toJSON(e) : undefined); + } else { + obj.projectInfoTypes = []; + } + return obj; + }, + + create, I>>(base?: I): ProjectInfoTypeList { + return ProjectInfoTypeList.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ProjectInfoTypeList { + const message = createBaseProjectInfoTypeList(); + message.projectInfoTypes = object.projectInfoTypes?.map((e) => ProjectInfoType.fromPartial(e)) || []; + return message; + }, +}; + +type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; + +type DeepPartial = T extends Builtin ? T + : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> + : T extends { $case: string } ? { [K in keyof Omit]?: DeepPartial } & { $case: T["$case"] } + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +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 isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/src/models/domain-layer/legacy/resource.ts b/src/models/domain-layer/legacy/resource.ts index 4700eef..068fc88 100644 --- a/src/models/domain-layer/legacy/resource.ts +++ b/src/models/domain-layer/legacy/resource.ts @@ -14,6 +14,62 @@ export interface Resource { modifyDate: number; } +export interface CreateResourceInput { + resourceRoleId: number; + projectId: number; + projectPhaseId?: number | undefined; + userId: number; +} + +export interface GetResourcesInput { + projectId: number; + resourceRoleId?: number | undefined; +} + +export interface DeleteResourcesInput { + projectId: number; + resourceRoleId?: number | undefined; +} + +export interface ResourceList { + resources: Resource[]; +} + +export interface ResourceInfo { + resourceId: number; + resourceInfoTypeId: number; + value: string; + createUser: number; + createDate: number; + modifyUser: number; + modifyDate: number; +} + +export interface CreateResourceInfoInput { + resourceId: number; + resourceInfoTypeId: number; + value: string; +} + +export interface UpdateResourceInfoInput { + resourceId: number; + resourceInfoTypeId: number; + value: string; +} + +export interface DeleteResourceInfoInput { + resourceId: number; +} + +export interface GetResourceInfosInput { + resourceId: number; + resourceInfoTypeId?: number | undefined; +} + +export interface ResourceInfoList { + resourceInfos: ResourceInfo[]; +} + function createBaseResource(): Resource { return { resourceId: 0, @@ -149,6 +205,696 @@ export const Resource = { }, }; +function createBaseCreateResourceInput(): CreateResourceInput { + return { resourceRoleId: 0, projectId: 0, projectPhaseId: undefined, userId: 0 }; +} + +export const CreateResourceInput = { + encode(message: CreateResourceInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.resourceRoleId !== 0) { + writer.uint32(16).int32(message.resourceRoleId); + } + if (message.projectId !== 0) { + writer.uint32(24).int32(message.projectId); + } + if (message.projectPhaseId !== undefined) { + writer.uint32(32).int32(message.projectPhaseId); + } + if (message.userId !== 0) { + writer.uint32(40).int32(message.userId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateResourceInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateResourceInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 2: + message.resourceRoleId = reader.int32(); + break; + case 3: + message.projectId = reader.int32(); + break; + case 4: + message.projectPhaseId = reader.int32(); + break; + case 5: + message.userId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreateResourceInput { + return { + resourceRoleId: isSet(object.resourceRoleId) ? Number(object.resourceRoleId) : 0, + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + projectPhaseId: isSet(object.projectPhaseId) ? Number(object.projectPhaseId) : undefined, + userId: isSet(object.userId) ? Number(object.userId) : 0, + }; + }, + + toJSON(message: CreateResourceInput): unknown { + const obj: any = {}; + message.resourceRoleId !== undefined && (obj.resourceRoleId = Math.round(message.resourceRoleId)); + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.projectPhaseId !== undefined && (obj.projectPhaseId = Math.round(message.projectPhaseId)); + message.userId !== undefined && (obj.userId = Math.round(message.userId)); + return obj; + }, + + create, I>>(base?: I): CreateResourceInput { + return CreateResourceInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): CreateResourceInput { + const message = createBaseCreateResourceInput(); + message.resourceRoleId = object.resourceRoleId ?? 0; + message.projectId = object.projectId ?? 0; + message.projectPhaseId = object.projectPhaseId ?? undefined; + message.userId = object.userId ?? 0; + return message; + }, +}; + +function createBaseGetResourcesInput(): GetResourcesInput { + return { projectId: 0, resourceRoleId: undefined }; +} + +export const GetResourcesInput = { + encode(message: GetResourcesInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int32(message.projectId); + } + if (message.resourceRoleId !== undefined) { + writer.uint32(16).int32(message.resourceRoleId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetResourcesInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetResourcesInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = reader.int32(); + break; + case 2: + message.resourceRoleId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GetResourcesInput { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + resourceRoleId: isSet(object.resourceRoleId) ? Number(object.resourceRoleId) : undefined, + }; + }, + + toJSON(message: GetResourcesInput): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.resourceRoleId !== undefined && (obj.resourceRoleId = Math.round(message.resourceRoleId)); + return obj; + }, + + create, I>>(base?: I): GetResourcesInput { + return GetResourcesInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): GetResourcesInput { + const message = createBaseGetResourcesInput(); + message.projectId = object.projectId ?? 0; + message.resourceRoleId = object.resourceRoleId ?? undefined; + return message; + }, +}; + +function createBaseDeleteResourcesInput(): DeleteResourcesInput { + return { projectId: 0, resourceRoleId: undefined }; +} + +export const DeleteResourcesInput = { + encode(message: DeleteResourcesInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int32(message.projectId); + } + if (message.resourceRoleId !== undefined) { + writer.uint32(16).int32(message.resourceRoleId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteResourcesInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteResourcesInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = reader.int32(); + break; + case 2: + message.resourceRoleId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): DeleteResourcesInput { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + resourceRoleId: isSet(object.resourceRoleId) ? Number(object.resourceRoleId) : undefined, + }; + }, + + toJSON(message: DeleteResourcesInput): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.resourceRoleId !== undefined && (obj.resourceRoleId = Math.round(message.resourceRoleId)); + return obj; + }, + + create, I>>(base?: I): DeleteResourcesInput { + return DeleteResourcesInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): DeleteResourcesInput { + const message = createBaseDeleteResourcesInput(); + message.projectId = object.projectId ?? 0; + message.resourceRoleId = object.resourceRoleId ?? undefined; + return message; + }, +}; + +function createBaseResourceList(): ResourceList { + return { resources: [] }; +} + +export const ResourceList = { + encode(message: ResourceList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.resources) { + Resource.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ResourceList { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseResourceList(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.resources.push(Resource.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ResourceList { + return { + resources: Array.isArray(object?.resources) ? object.resources.map((e: any) => Resource.fromJSON(e)) : [], + }; + }, + + toJSON(message: ResourceList): unknown { + const obj: any = {}; + if (message.resources) { + obj.resources = message.resources.map((e) => e ? Resource.toJSON(e) : undefined); + } else { + obj.resources = []; + } + return obj; + }, + + create, I>>(base?: I): ResourceList { + return ResourceList.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ResourceList { + const message = createBaseResourceList(); + message.resources = object.resources?.map((e) => Resource.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseResourceInfo(): ResourceInfo { + return { + resourceId: 0, + resourceInfoTypeId: 0, + value: "", + createUser: 0, + createDate: 0, + modifyUser: 0, + modifyDate: 0, + }; +} + +export const ResourceInfo = { + encode(message: ResourceInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.resourceId !== 0) { + writer.uint32(8).int32(message.resourceId); + } + if (message.resourceInfoTypeId !== 0) { + writer.uint32(16).int32(message.resourceInfoTypeId); + } + if (message.value !== "") { + writer.uint32(26).string(message.value); + } + if (message.createUser !== 0) { + writer.uint32(32).int32(message.createUser); + } + if (message.createDate !== 0) { + writer.uint32(40).int64(message.createDate); + } + if (message.modifyUser !== 0) { + writer.uint32(48).int32(message.modifyUser); + } + if (message.modifyDate !== 0) { + writer.uint32(56).int64(message.modifyDate); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ResourceInfo { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseResourceInfo(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.resourceId = reader.int32(); + break; + case 2: + message.resourceInfoTypeId = reader.int32(); + break; + case 3: + message.value = reader.string(); + break; + case 4: + message.createUser = reader.int32(); + break; + case 5: + message.createDate = longToNumber(reader.int64() as Long); + break; + case 6: + message.modifyUser = reader.int32(); + break; + case 7: + message.modifyDate = longToNumber(reader.int64() as Long); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ResourceInfo { + return { + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + resourceInfoTypeId: isSet(object.resourceInfoTypeId) ? Number(object.resourceInfoTypeId) : 0, + value: isSet(object.value) ? String(object.value) : "", + createUser: isSet(object.createUser) ? Number(object.createUser) : 0, + createDate: isSet(object.createDate) ? Number(object.createDate) : 0, + modifyUser: isSet(object.modifyUser) ? Number(object.modifyUser) : 0, + modifyDate: isSet(object.modifyDate) ? Number(object.modifyDate) : 0, + }; + }, + + toJSON(message: ResourceInfo): unknown { + const obj: any = {}; + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.resourceInfoTypeId !== undefined && (obj.resourceInfoTypeId = Math.round(message.resourceInfoTypeId)); + message.value !== undefined && (obj.value = message.value); + message.createUser !== undefined && (obj.createUser = Math.round(message.createUser)); + message.createDate !== undefined && (obj.createDate = Math.round(message.createDate)); + message.modifyUser !== undefined && (obj.modifyUser = Math.round(message.modifyUser)); + message.modifyDate !== undefined && (obj.modifyDate = Math.round(message.modifyDate)); + return obj; + }, + + create, I>>(base?: I): ResourceInfo { + return ResourceInfo.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ResourceInfo { + const message = createBaseResourceInfo(); + message.resourceId = object.resourceId ?? 0; + message.resourceInfoTypeId = object.resourceInfoTypeId ?? 0; + message.value = object.value ?? ""; + message.createUser = object.createUser ?? 0; + message.createDate = object.createDate ?? 0; + message.modifyUser = object.modifyUser ?? 0; + message.modifyDate = object.modifyDate ?? 0; + return message; + }, +}; + +function createBaseCreateResourceInfoInput(): CreateResourceInfoInput { + return { resourceId: 0, resourceInfoTypeId: 0, value: "" }; +} + +export const CreateResourceInfoInput = { + encode(message: CreateResourceInfoInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.resourceId !== 0) { + writer.uint32(8).int32(message.resourceId); + } + if (message.resourceInfoTypeId !== 0) { + writer.uint32(16).int32(message.resourceInfoTypeId); + } + if (message.value !== "") { + writer.uint32(26).string(message.value); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateResourceInfoInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateResourceInfoInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.resourceId = reader.int32(); + break; + case 2: + message.resourceInfoTypeId = reader.int32(); + break; + case 3: + message.value = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreateResourceInfoInput { + return { + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + resourceInfoTypeId: isSet(object.resourceInfoTypeId) ? Number(object.resourceInfoTypeId) : 0, + value: isSet(object.value) ? String(object.value) : "", + }; + }, + + toJSON(message: CreateResourceInfoInput): unknown { + const obj: any = {}; + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.resourceInfoTypeId !== undefined && (obj.resourceInfoTypeId = Math.round(message.resourceInfoTypeId)); + message.value !== undefined && (obj.value = message.value); + return obj; + }, + + create, I>>(base?: I): CreateResourceInfoInput { + return CreateResourceInfoInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): CreateResourceInfoInput { + const message = createBaseCreateResourceInfoInput(); + message.resourceId = object.resourceId ?? 0; + message.resourceInfoTypeId = object.resourceInfoTypeId ?? 0; + message.value = object.value ?? ""; + return message; + }, +}; + +function createBaseUpdateResourceInfoInput(): UpdateResourceInfoInput { + return { resourceId: 0, resourceInfoTypeId: 0, value: "" }; +} + +export const UpdateResourceInfoInput = { + encode(message: UpdateResourceInfoInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.resourceId !== 0) { + writer.uint32(8).int32(message.resourceId); + } + if (message.resourceInfoTypeId !== 0) { + writer.uint32(16).int32(message.resourceInfoTypeId); + } + if (message.value !== "") { + writer.uint32(26).string(message.value); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UpdateResourceInfoInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpdateResourceInfoInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.resourceId = reader.int32(); + break; + case 2: + message.resourceInfoTypeId = reader.int32(); + break; + case 3: + message.value = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): UpdateResourceInfoInput { + return { + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + resourceInfoTypeId: isSet(object.resourceInfoTypeId) ? Number(object.resourceInfoTypeId) : 0, + value: isSet(object.value) ? String(object.value) : "", + }; + }, + + toJSON(message: UpdateResourceInfoInput): unknown { + const obj: any = {}; + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.resourceInfoTypeId !== undefined && (obj.resourceInfoTypeId = Math.round(message.resourceInfoTypeId)); + message.value !== undefined && (obj.value = message.value); + return obj; + }, + + create, I>>(base?: I): UpdateResourceInfoInput { + return UpdateResourceInfoInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): UpdateResourceInfoInput { + const message = createBaseUpdateResourceInfoInput(); + message.resourceId = object.resourceId ?? 0; + message.resourceInfoTypeId = object.resourceInfoTypeId ?? 0; + message.value = object.value ?? ""; + return message; + }, +}; + +function createBaseDeleteResourceInfoInput(): DeleteResourceInfoInput { + return { resourceId: 0 }; +} + +export const DeleteResourceInfoInput = { + encode(message: DeleteResourceInfoInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.resourceId !== 0) { + writer.uint32(8).int32(message.resourceId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteResourceInfoInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteResourceInfoInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.resourceId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): DeleteResourceInfoInput { + return { resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0 }; + }, + + toJSON(message: DeleteResourceInfoInput): unknown { + const obj: any = {}; + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + return obj; + }, + + create, I>>(base?: I): DeleteResourceInfoInput { + return DeleteResourceInfoInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): DeleteResourceInfoInput { + const message = createBaseDeleteResourceInfoInput(); + message.resourceId = object.resourceId ?? 0; + return message; + }, +}; + +function createBaseGetResourceInfosInput(): GetResourceInfosInput { + return { resourceId: 0, resourceInfoTypeId: undefined }; +} + +export const GetResourceInfosInput = { + encode(message: GetResourceInfosInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.resourceId !== 0) { + writer.uint32(8).int32(message.resourceId); + } + if (message.resourceInfoTypeId !== undefined) { + writer.uint32(16).int32(message.resourceInfoTypeId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetResourceInfosInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetResourceInfosInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.resourceId = reader.int32(); + break; + case 2: + message.resourceInfoTypeId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GetResourceInfosInput { + return { + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + resourceInfoTypeId: isSet(object.resourceInfoTypeId) ? Number(object.resourceInfoTypeId) : undefined, + }; + }, + + toJSON(message: GetResourceInfosInput): unknown { + const obj: any = {}; + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.resourceInfoTypeId !== undefined && (obj.resourceInfoTypeId = Math.round(message.resourceInfoTypeId)); + return obj; + }, + + create, I>>(base?: I): GetResourceInfosInput { + return GetResourceInfosInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): GetResourceInfosInput { + const message = createBaseGetResourceInfosInput(); + message.resourceId = object.resourceId ?? 0; + message.resourceInfoTypeId = object.resourceInfoTypeId ?? undefined; + return message; + }, +}; + +function createBaseResourceInfoList(): ResourceInfoList { + return { resourceInfos: [] }; +} + +export const ResourceInfoList = { + encode(message: ResourceInfoList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.resourceInfos) { + ResourceInfo.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ResourceInfoList { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseResourceInfoList(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.resourceInfos.push(ResourceInfo.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ResourceInfoList { + return { + resourceInfos: Array.isArray(object?.resourceInfos) + ? object.resourceInfos.map((e: any) => ResourceInfo.fromJSON(e)) + : [], + }; + }, + + toJSON(message: ResourceInfoList): unknown { + const obj: any = {}; + if (message.resourceInfos) { + obj.resourceInfos = message.resourceInfos.map((e) => e ? ResourceInfo.toJSON(e) : undefined); + } else { + obj.resourceInfos = []; + } + return obj; + }, + + create, I>>(base?: I): ResourceInfoList { + return ResourceInfoList.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ResourceInfoList { + const message = createBaseResourceInfoList(); + message.resourceInfos = object.resourceInfos?.map((e) => ResourceInfo.fromPartial(e)) || []; + return message; + }, +}; + declare var self: any | undefined; declare var window: any | undefined; declare var global: any | undefined; diff --git a/src/models/domain-layer/legacy/resource_submission.ts b/src/models/domain-layer/legacy/resource_submission.ts index 9e6fb74..7ceb688 100644 --- a/src/models/domain-layer/legacy/resource_submission.ts +++ b/src/models/domain-layer/legacy/resource_submission.ts @@ -11,6 +11,11 @@ export interface ResourceSubmission { modifyDate: number; } +export interface CreateResourceSubmissionInput { + resourceId: number; + submissionId: number; +} + function createBaseResourceSubmission(): ResourceSubmission { return { resourceId: 0, submissionId: 0, createUser: 0, createDate: 0, modifyUser: 0, modifyDate: 0 }; } @@ -109,6 +114,70 @@ export const ResourceSubmission = { }, }; +function createBaseCreateResourceSubmissionInput(): CreateResourceSubmissionInput { + return { resourceId: 0, submissionId: 0 }; +} + +export const CreateResourceSubmissionInput = { + encode(message: CreateResourceSubmissionInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.resourceId !== 0) { + writer.uint32(8).int32(message.resourceId); + } + if (message.submissionId !== 0) { + writer.uint32(16).int32(message.submissionId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateResourceSubmissionInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateResourceSubmissionInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.resourceId = reader.int32(); + break; + case 2: + message.submissionId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreateResourceSubmissionInput { + return { + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + submissionId: isSet(object.submissionId) ? Number(object.submissionId) : 0, + }; + }, + + toJSON(message: CreateResourceSubmissionInput): unknown { + const obj: any = {}; + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.submissionId !== undefined && (obj.submissionId = Math.round(message.submissionId)); + return obj; + }, + + create, I>>(base?: I): CreateResourceSubmissionInput { + return CreateResourceSubmissionInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>( + object: I, + ): CreateResourceSubmissionInput { + const message = createBaseCreateResourceSubmissionInput(); + message.resourceId = object.resourceId ?? 0; + message.submissionId = object.submissionId ?? 0; + return message; + }, +}; + declare var self: any | undefined; declare var window: any | undefined; declare var global: any | undefined; diff --git a/src/models/domain-layer/legacy/review.ts b/src/models/domain-layer/legacy/review.ts new file mode 100644 index 0000000..55fe9dc --- /dev/null +++ b/src/models/domain-layer/legacy/review.ts @@ -0,0 +1,2242 @@ +/* eslint-disable */ +import Long from "long"; +import _m0 from "protobufjs/minimal"; + +export interface Review { + reviewId: number; + resourceId: number; + submissionId: number; + projectPhaseId: number; + scorecardId: number; + committed: number; + score: number; + initialScore: number; + createUser: number; + createDate: number; + modifyUser: number; + modifyDate: number; +} + +export interface ReviewList { + items: Review[]; +} + +export interface CreateReviewInput { + resourceId: number; + submissionId: number; + projectPhaseId: number; + scorecardId: number; + committed: number; + score: number; + initialScore: number; +} + +export interface ReviewItem { + reviewItemId: number; + reviewId: number; + scorecardQuestionId: number; + uploadId?: number | undefined; + answer: string; + sort: number; + createUser?: number | undefined; + createDate?: number | undefined; + modifyUser?: number | undefined; + modifyDate?: number | undefined; +} + +export interface CreateReviewItemInput { + reviewId: number; + scorecardQuestionId: number; + uploadId?: number | undefined; + answer: string; + sort: number; +} + +export interface Submission { + submissionId: number; + uploadId: number; + initialScore?: number | undefined; + finalScore?: number | undefined; + placement?: number | undefined; + prizeId?: number | undefined; + submissionStatusId: number; + submissionTypeId: number; +} + +export interface GetSubmissionInput { + projectId: number; + submissionStatusId?: number | undefined; + uploadStatusId?: number | undefined; + resourceId: number; +} + +export interface CreateSubmissionInput { + uploadId: number; + initialScore?: number | undefined; + finalScore?: number | undefined; + placement?: number | undefined; + prizeId?: number | undefined; + submissionStatusId: number; + submissionTypeId: number; +} + +export interface UpdateSubmissionInput { + submissionId: number; + initialScore?: number | undefined; + finalScore?: number | undefined; + placement?: number | undefined; + prizeId?: number | undefined; +} + +export interface Upload { + uploadId: number; + projectId: number; + uploadStatusId: number; + resourceRoleId: number; + resourceId: number; +} + +export interface CreateUploadInput { + projectId: number; + uploadStatusId: number; + resourceId: number; + projectPhaseId: number; + uploadTypeId: number; + parameter: string; +} + +export interface ReviewComment { + reviewCommentId: number; + resourceId: number; + reviewId: number; + commentTypeId: number; + content: string; +} + +export interface CreateReviewComment { + resourceId: number; + reviewId: number; + commentTypeId: number; + content: string; +} + +export interface ReviewItemComment { + reviewItemCommentId: number; + resourceId: number; + reviewItemId: number; + commentTypeId: number; + content: string; + sort: number; +} + +export interface CreateReviewItemCommentInput { + resourceId: number; + reviewItemId: number; + commentTypeId: number; + content: string; + sort: number; +} + +export interface ScorecardGroup { + scorecardGroupId: number; + scorecardId: number; + name: string; + weight: number; + sort: number; + version: number; + createUser?: number | undefined; + createDate?: number | undefined; + modifyUser?: number | undefined; + modifyDate?: number | undefined; +} + +export interface ScorecardGroupList { + items: ScorecardGroup[]; +} + +export interface GetScorecardGroupsInput { + scorecardId: number; +} + +export interface ScorecardSection { + scorecardSectionId: number; + scorecardGroupId: number; + name: string; + weight: number; + sort: number; + version: number; + createUser?: number | undefined; + createDate?: number | undefined; + modifyUser?: number | undefined; + modifyDate?: number | undefined; +} + +export interface ScorecardSectionList { + items: ScorecardSection[]; +} + +export interface GetScorecardSectionsInput { + scorecardGroupId: number; +} + +function createBaseReview(): Review { + return { + reviewId: 0, + resourceId: 0, + submissionId: 0, + projectPhaseId: 0, + scorecardId: 0, + committed: 0, + score: 0, + initialScore: 0, + createUser: 0, + createDate: 0, + modifyUser: 0, + modifyDate: 0, + }; +} + +export const Review = { + encode(message: Review, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.reviewId !== 0) { + writer.uint32(8).int32(message.reviewId); + } + if (message.resourceId !== 0) { + writer.uint32(16).int32(message.resourceId); + } + if (message.submissionId !== 0) { + writer.uint32(24).int32(message.submissionId); + } + if (message.projectPhaseId !== 0) { + writer.uint32(32).int32(message.projectPhaseId); + } + if (message.scorecardId !== 0) { + writer.uint32(40).int32(message.scorecardId); + } + if (message.committed !== 0) { + writer.uint32(48).int32(message.committed); + } + if (message.score !== 0) { + writer.uint32(61).float(message.score); + } + if (message.initialScore !== 0) { + writer.uint32(69).float(message.initialScore); + } + if (message.createUser !== 0) { + writer.uint32(72).int32(message.createUser); + } + if (message.createDate !== 0) { + writer.uint32(80).int64(message.createDate); + } + if (message.modifyUser !== 0) { + writer.uint32(88).int32(message.modifyUser); + } + if (message.modifyDate !== 0) { + writer.uint32(96).int64(message.modifyDate); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Review { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseReview(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.reviewId = reader.int32(); + break; + case 2: + message.resourceId = reader.int32(); + break; + case 3: + message.submissionId = reader.int32(); + break; + case 4: + message.projectPhaseId = reader.int32(); + break; + case 5: + message.scorecardId = reader.int32(); + break; + case 6: + message.committed = reader.int32(); + break; + case 7: + message.score = reader.float(); + break; + case 8: + message.initialScore = reader.float(); + break; + case 9: + message.createUser = reader.int32(); + break; + case 10: + message.createDate = longToNumber(reader.int64() as Long); + break; + case 11: + message.modifyUser = reader.int32(); + break; + case 12: + message.modifyDate = longToNumber(reader.int64() as Long); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Review { + return { + reviewId: isSet(object.reviewId) ? Number(object.reviewId) : 0, + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + submissionId: isSet(object.submissionId) ? Number(object.submissionId) : 0, + projectPhaseId: isSet(object.projectPhaseId) ? Number(object.projectPhaseId) : 0, + scorecardId: isSet(object.scorecardId) ? Number(object.scorecardId) : 0, + committed: isSet(object.committed) ? Number(object.committed) : 0, + score: isSet(object.score) ? Number(object.score) : 0, + initialScore: isSet(object.initialScore) ? Number(object.initialScore) : 0, + createUser: isSet(object.createUser) ? Number(object.createUser) : 0, + createDate: isSet(object.createDate) ? Number(object.createDate) : 0, + modifyUser: isSet(object.modifyUser) ? Number(object.modifyUser) : 0, + modifyDate: isSet(object.modifyDate) ? Number(object.modifyDate) : 0, + }; + }, + + toJSON(message: Review): unknown { + const obj: any = {}; + message.reviewId !== undefined && (obj.reviewId = Math.round(message.reviewId)); + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.submissionId !== undefined && (obj.submissionId = Math.round(message.submissionId)); + message.projectPhaseId !== undefined && (obj.projectPhaseId = Math.round(message.projectPhaseId)); + message.scorecardId !== undefined && (obj.scorecardId = Math.round(message.scorecardId)); + message.committed !== undefined && (obj.committed = Math.round(message.committed)); + message.score !== undefined && (obj.score = message.score); + message.initialScore !== undefined && (obj.initialScore = message.initialScore); + message.createUser !== undefined && (obj.createUser = Math.round(message.createUser)); + message.createDate !== undefined && (obj.createDate = Math.round(message.createDate)); + message.modifyUser !== undefined && (obj.modifyUser = Math.round(message.modifyUser)); + message.modifyDate !== undefined && (obj.modifyDate = Math.round(message.modifyDate)); + return obj; + }, + + create, I>>(base?: I): Review { + return Review.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): Review { + const message = createBaseReview(); + message.reviewId = object.reviewId ?? 0; + message.resourceId = object.resourceId ?? 0; + message.submissionId = object.submissionId ?? 0; + message.projectPhaseId = object.projectPhaseId ?? 0; + message.scorecardId = object.scorecardId ?? 0; + message.committed = object.committed ?? 0; + message.score = object.score ?? 0; + message.initialScore = object.initialScore ?? 0; + message.createUser = object.createUser ?? 0; + message.createDate = object.createDate ?? 0; + message.modifyUser = object.modifyUser ?? 0; + message.modifyDate = object.modifyDate ?? 0; + return message; + }, +}; + +function createBaseReviewList(): ReviewList { + return { items: [] }; +} + +export const ReviewList = { + encode(message: ReviewList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.items) { + Review.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ReviewList { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseReviewList(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.items.push(Review.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ReviewList { + return { items: Array.isArray(object?.items) ? object.items.map((e: any) => Review.fromJSON(e)) : [] }; + }, + + toJSON(message: ReviewList): unknown { + const obj: any = {}; + if (message.items) { + obj.items = message.items.map((e) => e ? Review.toJSON(e) : undefined); + } else { + obj.items = []; + } + return obj; + }, + + create, I>>(base?: I): ReviewList { + return ReviewList.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ReviewList { + const message = createBaseReviewList(); + message.items = object.items?.map((e) => Review.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseCreateReviewInput(): CreateReviewInput { + return { resourceId: 0, submissionId: 0, projectPhaseId: 0, scorecardId: 0, committed: 0, score: 0, initialScore: 0 }; +} + +export const CreateReviewInput = { + encode(message: CreateReviewInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.resourceId !== 0) { + writer.uint32(16).int32(message.resourceId); + } + if (message.submissionId !== 0) { + writer.uint32(24).int32(message.submissionId); + } + if (message.projectPhaseId !== 0) { + writer.uint32(32).int32(message.projectPhaseId); + } + if (message.scorecardId !== 0) { + writer.uint32(40).int32(message.scorecardId); + } + if (message.committed !== 0) { + writer.uint32(48).int32(message.committed); + } + if (message.score !== 0) { + writer.uint32(61).float(message.score); + } + if (message.initialScore !== 0) { + writer.uint32(69).float(message.initialScore); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateReviewInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateReviewInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 2: + message.resourceId = reader.int32(); + break; + case 3: + message.submissionId = reader.int32(); + break; + case 4: + message.projectPhaseId = reader.int32(); + break; + case 5: + message.scorecardId = reader.int32(); + break; + case 6: + message.committed = reader.int32(); + break; + case 7: + message.score = reader.float(); + break; + case 8: + message.initialScore = reader.float(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreateReviewInput { + return { + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + submissionId: isSet(object.submissionId) ? Number(object.submissionId) : 0, + projectPhaseId: isSet(object.projectPhaseId) ? Number(object.projectPhaseId) : 0, + scorecardId: isSet(object.scorecardId) ? Number(object.scorecardId) : 0, + committed: isSet(object.committed) ? Number(object.committed) : 0, + score: isSet(object.score) ? Number(object.score) : 0, + initialScore: isSet(object.initialScore) ? Number(object.initialScore) : 0, + }; + }, + + toJSON(message: CreateReviewInput): unknown { + const obj: any = {}; + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.submissionId !== undefined && (obj.submissionId = Math.round(message.submissionId)); + message.projectPhaseId !== undefined && (obj.projectPhaseId = Math.round(message.projectPhaseId)); + message.scorecardId !== undefined && (obj.scorecardId = Math.round(message.scorecardId)); + message.committed !== undefined && (obj.committed = Math.round(message.committed)); + message.score !== undefined && (obj.score = message.score); + message.initialScore !== undefined && (obj.initialScore = message.initialScore); + return obj; + }, + + create, I>>(base?: I): CreateReviewInput { + return CreateReviewInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): CreateReviewInput { + const message = createBaseCreateReviewInput(); + message.resourceId = object.resourceId ?? 0; + message.submissionId = object.submissionId ?? 0; + message.projectPhaseId = object.projectPhaseId ?? 0; + message.scorecardId = object.scorecardId ?? 0; + message.committed = object.committed ?? 0; + message.score = object.score ?? 0; + message.initialScore = object.initialScore ?? 0; + return message; + }, +}; + +function createBaseReviewItem(): ReviewItem { + return { + reviewItemId: 0, + reviewId: 0, + scorecardQuestionId: 0, + uploadId: undefined, + answer: "", + sort: 0, + createUser: undefined, + createDate: undefined, + modifyUser: undefined, + modifyDate: undefined, + }; +} + +export const ReviewItem = { + encode(message: ReviewItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.reviewItemId !== 0) { + writer.uint32(8).int32(message.reviewItemId); + } + if (message.reviewId !== 0) { + writer.uint32(16).int32(message.reviewId); + } + if (message.scorecardQuestionId !== 0) { + writer.uint32(24).int32(message.scorecardQuestionId); + } + if (message.uploadId !== undefined) { + writer.uint32(32).int32(message.uploadId); + } + if (message.answer !== "") { + writer.uint32(42).string(message.answer); + } + if (message.sort !== 0) { + writer.uint32(48).int32(message.sort); + } + if (message.createUser !== undefined) { + writer.uint32(56).int32(message.createUser); + } + if (message.createDate !== undefined) { + writer.uint32(64).int64(message.createDate); + } + if (message.modifyUser !== undefined) { + writer.uint32(72).int32(message.modifyUser); + } + if (message.modifyDate !== undefined) { + writer.uint32(80).int64(message.modifyDate); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ReviewItem { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseReviewItem(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.reviewItemId = reader.int32(); + break; + case 2: + message.reviewId = reader.int32(); + break; + case 3: + message.scorecardQuestionId = reader.int32(); + break; + case 4: + message.uploadId = reader.int32(); + break; + case 5: + message.answer = reader.string(); + break; + case 6: + message.sort = reader.int32(); + break; + case 7: + message.createUser = reader.int32(); + break; + case 8: + message.createDate = longToNumber(reader.int64() as Long); + break; + case 9: + message.modifyUser = reader.int32(); + break; + case 10: + message.modifyDate = longToNumber(reader.int64() as Long); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ReviewItem { + return { + reviewItemId: isSet(object.reviewItemId) ? Number(object.reviewItemId) : 0, + reviewId: isSet(object.reviewId) ? Number(object.reviewId) : 0, + scorecardQuestionId: isSet(object.scorecardQuestionId) ? Number(object.scorecardQuestionId) : 0, + uploadId: isSet(object.uploadId) ? Number(object.uploadId) : undefined, + answer: isSet(object.answer) ? String(object.answer) : "", + sort: isSet(object.sort) ? Number(object.sort) : 0, + createUser: isSet(object.createUser) ? Number(object.createUser) : undefined, + createDate: isSet(object.createDate) ? Number(object.createDate) : undefined, + modifyUser: isSet(object.modifyUser) ? Number(object.modifyUser) : undefined, + modifyDate: isSet(object.modifyDate) ? Number(object.modifyDate) : undefined, + }; + }, + + toJSON(message: ReviewItem): unknown { + const obj: any = {}; + message.reviewItemId !== undefined && (obj.reviewItemId = Math.round(message.reviewItemId)); + message.reviewId !== undefined && (obj.reviewId = Math.round(message.reviewId)); + message.scorecardQuestionId !== undefined && (obj.scorecardQuestionId = Math.round(message.scorecardQuestionId)); + message.uploadId !== undefined && (obj.uploadId = Math.round(message.uploadId)); + message.answer !== undefined && (obj.answer = message.answer); + message.sort !== undefined && (obj.sort = Math.round(message.sort)); + message.createUser !== undefined && (obj.createUser = Math.round(message.createUser)); + message.createDate !== undefined && (obj.createDate = Math.round(message.createDate)); + message.modifyUser !== undefined && (obj.modifyUser = Math.round(message.modifyUser)); + message.modifyDate !== undefined && (obj.modifyDate = Math.round(message.modifyDate)); + return obj; + }, + + create, I>>(base?: I): ReviewItem { + return ReviewItem.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ReviewItem { + const message = createBaseReviewItem(); + message.reviewItemId = object.reviewItemId ?? 0; + message.reviewId = object.reviewId ?? 0; + message.scorecardQuestionId = object.scorecardQuestionId ?? 0; + message.uploadId = object.uploadId ?? undefined; + message.answer = object.answer ?? ""; + message.sort = object.sort ?? 0; + message.createUser = object.createUser ?? undefined; + message.createDate = object.createDate ?? undefined; + message.modifyUser = object.modifyUser ?? undefined; + message.modifyDate = object.modifyDate ?? undefined; + return message; + }, +}; + +function createBaseCreateReviewItemInput(): CreateReviewItemInput { + return { reviewId: 0, scorecardQuestionId: 0, uploadId: undefined, answer: "", sort: 0 }; +} + +export const CreateReviewItemInput = { + encode(message: CreateReviewItemInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.reviewId !== 0) { + writer.uint32(16).int32(message.reviewId); + } + if (message.scorecardQuestionId !== 0) { + writer.uint32(24).int32(message.scorecardQuestionId); + } + if (message.uploadId !== undefined) { + writer.uint32(32).int32(message.uploadId); + } + if (message.answer !== "") { + writer.uint32(42).string(message.answer); + } + if (message.sort !== 0) { + writer.uint32(48).int32(message.sort); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateReviewItemInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateReviewItemInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 2: + message.reviewId = reader.int32(); + break; + case 3: + message.scorecardQuestionId = reader.int32(); + break; + case 4: + message.uploadId = reader.int32(); + break; + case 5: + message.answer = reader.string(); + break; + case 6: + message.sort = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreateReviewItemInput { + return { + reviewId: isSet(object.reviewId) ? Number(object.reviewId) : 0, + scorecardQuestionId: isSet(object.scorecardQuestionId) ? Number(object.scorecardQuestionId) : 0, + uploadId: isSet(object.uploadId) ? Number(object.uploadId) : undefined, + answer: isSet(object.answer) ? String(object.answer) : "", + sort: isSet(object.sort) ? Number(object.sort) : 0, + }; + }, + + toJSON(message: CreateReviewItemInput): unknown { + const obj: any = {}; + message.reviewId !== undefined && (obj.reviewId = Math.round(message.reviewId)); + message.scorecardQuestionId !== undefined && (obj.scorecardQuestionId = Math.round(message.scorecardQuestionId)); + message.uploadId !== undefined && (obj.uploadId = Math.round(message.uploadId)); + message.answer !== undefined && (obj.answer = message.answer); + message.sort !== undefined && (obj.sort = Math.round(message.sort)); + return obj; + }, + + create, I>>(base?: I): CreateReviewItemInput { + return CreateReviewItemInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): CreateReviewItemInput { + const message = createBaseCreateReviewItemInput(); + message.reviewId = object.reviewId ?? 0; + message.scorecardQuestionId = object.scorecardQuestionId ?? 0; + message.uploadId = object.uploadId ?? undefined; + message.answer = object.answer ?? ""; + message.sort = object.sort ?? 0; + return message; + }, +}; + +function createBaseSubmission(): Submission { + return { + submissionId: 0, + uploadId: 0, + initialScore: undefined, + finalScore: undefined, + placement: undefined, + prizeId: undefined, + submissionStatusId: 0, + submissionTypeId: 0, + }; +} + +export const Submission = { + encode(message: Submission, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.submissionId !== 0) { + writer.uint32(8).int32(message.submissionId); + } + if (message.uploadId !== 0) { + writer.uint32(16).int32(message.uploadId); + } + if (message.initialScore !== undefined) { + writer.uint32(24).int32(message.initialScore); + } + if (message.finalScore !== undefined) { + writer.uint32(32).int32(message.finalScore); + } + if (message.placement !== undefined) { + writer.uint32(40).int32(message.placement); + } + if (message.prizeId !== undefined) { + writer.uint32(48).int32(message.prizeId); + } + if (message.submissionStatusId !== 0) { + writer.uint32(56).int32(message.submissionStatusId); + } + if (message.submissionTypeId !== 0) { + writer.uint32(64).int32(message.submissionTypeId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Submission { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSubmission(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.submissionId = reader.int32(); + break; + case 2: + message.uploadId = reader.int32(); + break; + case 3: + message.initialScore = reader.int32(); + break; + case 4: + message.finalScore = reader.int32(); + break; + case 5: + message.placement = reader.int32(); + break; + case 6: + message.prizeId = reader.int32(); + break; + case 7: + message.submissionStatusId = reader.int32(); + break; + case 8: + message.submissionTypeId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Submission { + return { + submissionId: isSet(object.submissionId) ? Number(object.submissionId) : 0, + uploadId: isSet(object.uploadId) ? Number(object.uploadId) : 0, + initialScore: isSet(object.initialScore) ? Number(object.initialScore) : undefined, + finalScore: isSet(object.finalScore) ? Number(object.finalScore) : undefined, + placement: isSet(object.placement) ? Number(object.placement) : undefined, + prizeId: isSet(object.prizeId) ? Number(object.prizeId) : undefined, + submissionStatusId: isSet(object.submissionStatusId) ? Number(object.submissionStatusId) : 0, + submissionTypeId: isSet(object.submissionTypeId) ? Number(object.submissionTypeId) : 0, + }; + }, + + toJSON(message: Submission): unknown { + const obj: any = {}; + message.submissionId !== undefined && (obj.submissionId = Math.round(message.submissionId)); + message.uploadId !== undefined && (obj.uploadId = Math.round(message.uploadId)); + message.initialScore !== undefined && (obj.initialScore = Math.round(message.initialScore)); + message.finalScore !== undefined && (obj.finalScore = Math.round(message.finalScore)); + message.placement !== undefined && (obj.placement = Math.round(message.placement)); + message.prizeId !== undefined && (obj.prizeId = Math.round(message.prizeId)); + message.submissionStatusId !== undefined && (obj.submissionStatusId = Math.round(message.submissionStatusId)); + message.submissionTypeId !== undefined && (obj.submissionTypeId = Math.round(message.submissionTypeId)); + return obj; + }, + + create, I>>(base?: I): Submission { + return Submission.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): Submission { + const message = createBaseSubmission(); + message.submissionId = object.submissionId ?? 0; + message.uploadId = object.uploadId ?? 0; + message.initialScore = object.initialScore ?? undefined; + message.finalScore = object.finalScore ?? undefined; + message.placement = object.placement ?? undefined; + message.prizeId = object.prizeId ?? undefined; + message.submissionStatusId = object.submissionStatusId ?? 0; + message.submissionTypeId = object.submissionTypeId ?? 0; + return message; + }, +}; + +function createBaseGetSubmissionInput(): GetSubmissionInput { + return { projectId: 0, submissionStatusId: undefined, uploadStatusId: undefined, resourceId: 0 }; +} + +export const GetSubmissionInput = { + encode(message: GetSubmissionInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int32(message.projectId); + } + if (message.submissionStatusId !== undefined) { + writer.uint32(16).int32(message.submissionStatusId); + } + if (message.uploadStatusId !== undefined) { + writer.uint32(24).int32(message.uploadStatusId); + } + if (message.resourceId !== 0) { + writer.uint32(32).int32(message.resourceId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetSubmissionInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetSubmissionInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = reader.int32(); + break; + case 2: + message.submissionStatusId = reader.int32(); + break; + case 3: + message.uploadStatusId = reader.int32(); + break; + case 4: + message.resourceId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GetSubmissionInput { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + submissionStatusId: isSet(object.submissionStatusId) ? Number(object.submissionStatusId) : undefined, + uploadStatusId: isSet(object.uploadStatusId) ? Number(object.uploadStatusId) : undefined, + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + }; + }, + + toJSON(message: GetSubmissionInput): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.submissionStatusId !== undefined && (obj.submissionStatusId = Math.round(message.submissionStatusId)); + message.uploadStatusId !== undefined && (obj.uploadStatusId = Math.round(message.uploadStatusId)); + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + return obj; + }, + + create, I>>(base?: I): GetSubmissionInput { + return GetSubmissionInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): GetSubmissionInput { + const message = createBaseGetSubmissionInput(); + message.projectId = object.projectId ?? 0; + message.submissionStatusId = object.submissionStatusId ?? undefined; + message.uploadStatusId = object.uploadStatusId ?? undefined; + message.resourceId = object.resourceId ?? 0; + return message; + }, +}; + +function createBaseCreateSubmissionInput(): CreateSubmissionInput { + return { + uploadId: 0, + initialScore: undefined, + finalScore: undefined, + placement: undefined, + prizeId: undefined, + submissionStatusId: 0, + submissionTypeId: 0, + }; +} + +export const CreateSubmissionInput = { + encode(message: CreateSubmissionInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.uploadId !== 0) { + writer.uint32(8).int32(message.uploadId); + } + if (message.initialScore !== undefined) { + writer.uint32(16).int32(message.initialScore); + } + if (message.finalScore !== undefined) { + writer.uint32(24).int32(message.finalScore); + } + if (message.placement !== undefined) { + writer.uint32(32).int32(message.placement); + } + if (message.prizeId !== undefined) { + writer.uint32(40).int32(message.prizeId); + } + if (message.submissionStatusId !== 0) { + writer.uint32(48).int32(message.submissionStatusId); + } + if (message.submissionTypeId !== 0) { + writer.uint32(56).int32(message.submissionTypeId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateSubmissionInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateSubmissionInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.uploadId = reader.int32(); + break; + case 2: + message.initialScore = reader.int32(); + break; + case 3: + message.finalScore = reader.int32(); + break; + case 4: + message.placement = reader.int32(); + break; + case 5: + message.prizeId = reader.int32(); + break; + case 6: + message.submissionStatusId = reader.int32(); + break; + case 7: + message.submissionTypeId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreateSubmissionInput { + return { + uploadId: isSet(object.uploadId) ? Number(object.uploadId) : 0, + initialScore: isSet(object.initialScore) ? Number(object.initialScore) : undefined, + finalScore: isSet(object.finalScore) ? Number(object.finalScore) : undefined, + placement: isSet(object.placement) ? Number(object.placement) : undefined, + prizeId: isSet(object.prizeId) ? Number(object.prizeId) : undefined, + submissionStatusId: isSet(object.submissionStatusId) ? Number(object.submissionStatusId) : 0, + submissionTypeId: isSet(object.submissionTypeId) ? Number(object.submissionTypeId) : 0, + }; + }, + + toJSON(message: CreateSubmissionInput): unknown { + const obj: any = {}; + message.uploadId !== undefined && (obj.uploadId = Math.round(message.uploadId)); + message.initialScore !== undefined && (obj.initialScore = Math.round(message.initialScore)); + message.finalScore !== undefined && (obj.finalScore = Math.round(message.finalScore)); + message.placement !== undefined && (obj.placement = Math.round(message.placement)); + message.prizeId !== undefined && (obj.prizeId = Math.round(message.prizeId)); + message.submissionStatusId !== undefined && (obj.submissionStatusId = Math.round(message.submissionStatusId)); + message.submissionTypeId !== undefined && (obj.submissionTypeId = Math.round(message.submissionTypeId)); + return obj; + }, + + create, I>>(base?: I): CreateSubmissionInput { + return CreateSubmissionInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): CreateSubmissionInput { + const message = createBaseCreateSubmissionInput(); + message.uploadId = object.uploadId ?? 0; + message.initialScore = object.initialScore ?? undefined; + message.finalScore = object.finalScore ?? undefined; + message.placement = object.placement ?? undefined; + message.prizeId = object.prizeId ?? undefined; + message.submissionStatusId = object.submissionStatusId ?? 0; + message.submissionTypeId = object.submissionTypeId ?? 0; + return message; + }, +}; + +function createBaseUpdateSubmissionInput(): UpdateSubmissionInput { + return { submissionId: 0, initialScore: undefined, finalScore: undefined, placement: undefined, prizeId: undefined }; +} + +export const UpdateSubmissionInput = { + encode(message: UpdateSubmissionInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.submissionId !== 0) { + writer.uint32(8).int32(message.submissionId); + } + if (message.initialScore !== undefined) { + writer.uint32(24).int32(message.initialScore); + } + if (message.finalScore !== undefined) { + writer.uint32(32).int32(message.finalScore); + } + if (message.placement !== undefined) { + writer.uint32(40).int32(message.placement); + } + if (message.prizeId !== undefined) { + writer.uint32(48).int32(message.prizeId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UpdateSubmissionInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpdateSubmissionInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.submissionId = reader.int32(); + break; + case 3: + message.initialScore = reader.int32(); + break; + case 4: + message.finalScore = reader.int32(); + break; + case 5: + message.placement = reader.int32(); + break; + case 6: + message.prizeId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): UpdateSubmissionInput { + return { + submissionId: isSet(object.submissionId) ? Number(object.submissionId) : 0, + initialScore: isSet(object.initialScore) ? Number(object.initialScore) : undefined, + finalScore: isSet(object.finalScore) ? Number(object.finalScore) : undefined, + placement: isSet(object.placement) ? Number(object.placement) : undefined, + prizeId: isSet(object.prizeId) ? Number(object.prizeId) : undefined, + }; + }, + + toJSON(message: UpdateSubmissionInput): unknown { + const obj: any = {}; + message.submissionId !== undefined && (obj.submissionId = Math.round(message.submissionId)); + message.initialScore !== undefined && (obj.initialScore = Math.round(message.initialScore)); + message.finalScore !== undefined && (obj.finalScore = Math.round(message.finalScore)); + message.placement !== undefined && (obj.placement = Math.round(message.placement)); + message.prizeId !== undefined && (obj.prizeId = Math.round(message.prizeId)); + return obj; + }, + + create, I>>(base?: I): UpdateSubmissionInput { + return UpdateSubmissionInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): UpdateSubmissionInput { + const message = createBaseUpdateSubmissionInput(); + message.submissionId = object.submissionId ?? 0; + message.initialScore = object.initialScore ?? undefined; + message.finalScore = object.finalScore ?? undefined; + message.placement = object.placement ?? undefined; + message.prizeId = object.prizeId ?? undefined; + return message; + }, +}; + +function createBaseUpload(): Upload { + return { uploadId: 0, projectId: 0, uploadStatusId: 0, resourceRoleId: 0, resourceId: 0 }; +} + +export const Upload = { + encode(message: Upload, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.uploadId !== 0) { + writer.uint32(8).int32(message.uploadId); + } + if (message.projectId !== 0) { + writer.uint32(16).int32(message.projectId); + } + if (message.uploadStatusId !== 0) { + writer.uint32(24).int32(message.uploadStatusId); + } + if (message.resourceRoleId !== 0) { + writer.uint32(32).int32(message.resourceRoleId); + } + if (message.resourceId !== 0) { + writer.uint32(40).int32(message.resourceId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Upload { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpload(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.uploadId = reader.int32(); + break; + case 2: + message.projectId = reader.int32(); + break; + case 3: + message.uploadStatusId = reader.int32(); + break; + case 4: + message.resourceRoleId = reader.int32(); + break; + case 5: + message.resourceId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Upload { + return { + uploadId: isSet(object.uploadId) ? Number(object.uploadId) : 0, + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + uploadStatusId: isSet(object.uploadStatusId) ? Number(object.uploadStatusId) : 0, + resourceRoleId: isSet(object.resourceRoleId) ? Number(object.resourceRoleId) : 0, + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + }; + }, + + toJSON(message: Upload): unknown { + const obj: any = {}; + message.uploadId !== undefined && (obj.uploadId = Math.round(message.uploadId)); + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.uploadStatusId !== undefined && (obj.uploadStatusId = Math.round(message.uploadStatusId)); + message.resourceRoleId !== undefined && (obj.resourceRoleId = Math.round(message.resourceRoleId)); + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + return obj; + }, + + create, I>>(base?: I): Upload { + return Upload.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): Upload { + const message = createBaseUpload(); + message.uploadId = object.uploadId ?? 0; + message.projectId = object.projectId ?? 0; + message.uploadStatusId = object.uploadStatusId ?? 0; + message.resourceRoleId = object.resourceRoleId ?? 0; + message.resourceId = object.resourceId ?? 0; + return message; + }, +}; + +function createBaseCreateUploadInput(): CreateUploadInput { + return { projectId: 0, uploadStatusId: 0, resourceId: 0, projectPhaseId: 0, uploadTypeId: 0, parameter: "" }; +} + +export const CreateUploadInput = { + encode(message: CreateUploadInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(16).int32(message.projectId); + } + if (message.uploadStatusId !== 0) { + writer.uint32(24).int32(message.uploadStatusId); + } + if (message.resourceId !== 0) { + writer.uint32(32).int32(message.resourceId); + } + if (message.projectPhaseId !== 0) { + writer.uint32(40).int32(message.projectPhaseId); + } + if (message.uploadTypeId !== 0) { + writer.uint32(48).int32(message.uploadTypeId); + } + if (message.parameter !== "") { + writer.uint32(58).string(message.parameter); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateUploadInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateUploadInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 2: + message.projectId = reader.int32(); + break; + case 3: + message.uploadStatusId = reader.int32(); + break; + case 4: + message.resourceId = reader.int32(); + break; + case 5: + message.projectPhaseId = reader.int32(); + break; + case 6: + message.uploadTypeId = reader.int32(); + break; + case 7: + message.parameter = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreateUploadInput { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + uploadStatusId: isSet(object.uploadStatusId) ? Number(object.uploadStatusId) : 0, + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + projectPhaseId: isSet(object.projectPhaseId) ? Number(object.projectPhaseId) : 0, + uploadTypeId: isSet(object.uploadTypeId) ? Number(object.uploadTypeId) : 0, + parameter: isSet(object.parameter) ? String(object.parameter) : "", + }; + }, + + toJSON(message: CreateUploadInput): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.uploadStatusId !== undefined && (obj.uploadStatusId = Math.round(message.uploadStatusId)); + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.projectPhaseId !== undefined && (obj.projectPhaseId = Math.round(message.projectPhaseId)); + message.uploadTypeId !== undefined && (obj.uploadTypeId = Math.round(message.uploadTypeId)); + message.parameter !== undefined && (obj.parameter = message.parameter); + return obj; + }, + + create, I>>(base?: I): CreateUploadInput { + return CreateUploadInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): CreateUploadInput { + const message = createBaseCreateUploadInput(); + message.projectId = object.projectId ?? 0; + message.uploadStatusId = object.uploadStatusId ?? 0; + message.resourceId = object.resourceId ?? 0; + message.projectPhaseId = object.projectPhaseId ?? 0; + message.uploadTypeId = object.uploadTypeId ?? 0; + message.parameter = object.parameter ?? ""; + return message; + }, +}; + +function createBaseReviewComment(): ReviewComment { + return { reviewCommentId: 0, resourceId: 0, reviewId: 0, commentTypeId: 0, content: "" }; +} + +export const ReviewComment = { + encode(message: ReviewComment, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.reviewCommentId !== 0) { + writer.uint32(8).int32(message.reviewCommentId); + } + if (message.resourceId !== 0) { + writer.uint32(16).int32(message.resourceId); + } + if (message.reviewId !== 0) { + writer.uint32(24).int32(message.reviewId); + } + if (message.commentTypeId !== 0) { + writer.uint32(32).int32(message.commentTypeId); + } + if (message.content !== "") { + writer.uint32(42).string(message.content); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ReviewComment { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseReviewComment(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.reviewCommentId = reader.int32(); + break; + case 2: + message.resourceId = reader.int32(); + break; + case 3: + message.reviewId = reader.int32(); + break; + case 4: + message.commentTypeId = reader.int32(); + break; + case 5: + message.content = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ReviewComment { + return { + reviewCommentId: isSet(object.reviewCommentId) ? Number(object.reviewCommentId) : 0, + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + reviewId: isSet(object.reviewId) ? Number(object.reviewId) : 0, + commentTypeId: isSet(object.commentTypeId) ? Number(object.commentTypeId) : 0, + content: isSet(object.content) ? String(object.content) : "", + }; + }, + + toJSON(message: ReviewComment): unknown { + const obj: any = {}; + message.reviewCommentId !== undefined && (obj.reviewCommentId = Math.round(message.reviewCommentId)); + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.reviewId !== undefined && (obj.reviewId = Math.round(message.reviewId)); + message.commentTypeId !== undefined && (obj.commentTypeId = Math.round(message.commentTypeId)); + message.content !== undefined && (obj.content = message.content); + return obj; + }, + + create, I>>(base?: I): ReviewComment { + return ReviewComment.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ReviewComment { + const message = createBaseReviewComment(); + message.reviewCommentId = object.reviewCommentId ?? 0; + message.resourceId = object.resourceId ?? 0; + message.reviewId = object.reviewId ?? 0; + message.commentTypeId = object.commentTypeId ?? 0; + message.content = object.content ?? ""; + return message; + }, +}; + +function createBaseCreateReviewComment(): CreateReviewComment { + return { resourceId: 0, reviewId: 0, commentTypeId: 0, content: "" }; +} + +export const CreateReviewComment = { + encode(message: CreateReviewComment, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.resourceId !== 0) { + writer.uint32(16).int32(message.resourceId); + } + if (message.reviewId !== 0) { + writer.uint32(24).int32(message.reviewId); + } + if (message.commentTypeId !== 0) { + writer.uint32(32).int32(message.commentTypeId); + } + if (message.content !== "") { + writer.uint32(42).string(message.content); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateReviewComment { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateReviewComment(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 2: + message.resourceId = reader.int32(); + break; + case 3: + message.reviewId = reader.int32(); + break; + case 4: + message.commentTypeId = reader.int32(); + break; + case 5: + message.content = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreateReviewComment { + return { + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + reviewId: isSet(object.reviewId) ? Number(object.reviewId) : 0, + commentTypeId: isSet(object.commentTypeId) ? Number(object.commentTypeId) : 0, + content: isSet(object.content) ? String(object.content) : "", + }; + }, + + toJSON(message: CreateReviewComment): unknown { + const obj: any = {}; + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.reviewId !== undefined && (obj.reviewId = Math.round(message.reviewId)); + message.commentTypeId !== undefined && (obj.commentTypeId = Math.round(message.commentTypeId)); + message.content !== undefined && (obj.content = message.content); + return obj; + }, + + create, I>>(base?: I): CreateReviewComment { + return CreateReviewComment.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): CreateReviewComment { + const message = createBaseCreateReviewComment(); + message.resourceId = object.resourceId ?? 0; + message.reviewId = object.reviewId ?? 0; + message.commentTypeId = object.commentTypeId ?? 0; + message.content = object.content ?? ""; + return message; + }, +}; + +function createBaseReviewItemComment(): ReviewItemComment { + return { reviewItemCommentId: 0, resourceId: 0, reviewItemId: 0, commentTypeId: 0, content: "", sort: 0 }; +} + +export const ReviewItemComment = { + encode(message: ReviewItemComment, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.reviewItemCommentId !== 0) { + writer.uint32(8).int32(message.reviewItemCommentId); + } + if (message.resourceId !== 0) { + writer.uint32(16).int32(message.resourceId); + } + if (message.reviewItemId !== 0) { + writer.uint32(24).int32(message.reviewItemId); + } + if (message.commentTypeId !== 0) { + writer.uint32(32).int32(message.commentTypeId); + } + if (message.content !== "") { + writer.uint32(42).string(message.content); + } + if (message.sort !== 0) { + writer.uint32(48).int32(message.sort); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ReviewItemComment { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseReviewItemComment(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.reviewItemCommentId = reader.int32(); + break; + case 2: + message.resourceId = reader.int32(); + break; + case 3: + message.reviewItemId = reader.int32(); + break; + case 4: + message.commentTypeId = reader.int32(); + break; + case 5: + message.content = reader.string(); + break; + case 6: + message.sort = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ReviewItemComment { + return { + reviewItemCommentId: isSet(object.reviewItemCommentId) ? Number(object.reviewItemCommentId) : 0, + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + reviewItemId: isSet(object.reviewItemId) ? Number(object.reviewItemId) : 0, + commentTypeId: isSet(object.commentTypeId) ? Number(object.commentTypeId) : 0, + content: isSet(object.content) ? String(object.content) : "", + sort: isSet(object.sort) ? Number(object.sort) : 0, + }; + }, + + toJSON(message: ReviewItemComment): unknown { + const obj: any = {}; + message.reviewItemCommentId !== undefined && (obj.reviewItemCommentId = Math.round(message.reviewItemCommentId)); + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.reviewItemId !== undefined && (obj.reviewItemId = Math.round(message.reviewItemId)); + message.commentTypeId !== undefined && (obj.commentTypeId = Math.round(message.commentTypeId)); + message.content !== undefined && (obj.content = message.content); + message.sort !== undefined && (obj.sort = Math.round(message.sort)); + return obj; + }, + + create, I>>(base?: I): ReviewItemComment { + return ReviewItemComment.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ReviewItemComment { + const message = createBaseReviewItemComment(); + message.reviewItemCommentId = object.reviewItemCommentId ?? 0; + message.resourceId = object.resourceId ?? 0; + message.reviewItemId = object.reviewItemId ?? 0; + message.commentTypeId = object.commentTypeId ?? 0; + message.content = object.content ?? ""; + message.sort = object.sort ?? 0; + return message; + }, +}; + +function createBaseCreateReviewItemCommentInput(): CreateReviewItemCommentInput { + return { resourceId: 0, reviewItemId: 0, commentTypeId: 0, content: "", sort: 0 }; +} + +export const CreateReviewItemCommentInput = { + encode(message: CreateReviewItemCommentInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.resourceId !== 0) { + writer.uint32(16).int32(message.resourceId); + } + if (message.reviewItemId !== 0) { + writer.uint32(24).int32(message.reviewItemId); + } + if (message.commentTypeId !== 0) { + writer.uint32(32).int32(message.commentTypeId); + } + if (message.content !== "") { + writer.uint32(42).string(message.content); + } + if (message.sort !== 0) { + writer.uint32(48).int32(message.sort); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateReviewItemCommentInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateReviewItemCommentInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 2: + message.resourceId = reader.int32(); + break; + case 3: + message.reviewItemId = reader.int32(); + break; + case 4: + message.commentTypeId = reader.int32(); + break; + case 5: + message.content = reader.string(); + break; + case 6: + message.sort = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreateReviewItemCommentInput { + return { + resourceId: isSet(object.resourceId) ? Number(object.resourceId) : 0, + reviewItemId: isSet(object.reviewItemId) ? Number(object.reviewItemId) : 0, + commentTypeId: isSet(object.commentTypeId) ? Number(object.commentTypeId) : 0, + content: isSet(object.content) ? String(object.content) : "", + sort: isSet(object.sort) ? Number(object.sort) : 0, + }; + }, + + toJSON(message: CreateReviewItemCommentInput): unknown { + const obj: any = {}; + message.resourceId !== undefined && (obj.resourceId = Math.round(message.resourceId)); + message.reviewItemId !== undefined && (obj.reviewItemId = Math.round(message.reviewItemId)); + message.commentTypeId !== undefined && (obj.commentTypeId = Math.round(message.commentTypeId)); + message.content !== undefined && (obj.content = message.content); + message.sort !== undefined && (obj.sort = Math.round(message.sort)); + return obj; + }, + + create, I>>(base?: I): CreateReviewItemCommentInput { + return CreateReviewItemCommentInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): CreateReviewItemCommentInput { + const message = createBaseCreateReviewItemCommentInput(); + message.resourceId = object.resourceId ?? 0; + message.reviewItemId = object.reviewItemId ?? 0; + message.commentTypeId = object.commentTypeId ?? 0; + message.content = object.content ?? ""; + message.sort = object.sort ?? 0; + return message; + }, +}; + +function createBaseScorecardGroup(): ScorecardGroup { + return { + scorecardGroupId: 0, + scorecardId: 0, + name: "", + weight: 0, + sort: 0, + version: 0, + createUser: undefined, + createDate: undefined, + modifyUser: undefined, + modifyDate: undefined, + }; +} + +export const ScorecardGroup = { + encode(message: ScorecardGroup, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.scorecardGroupId !== 0) { + writer.uint32(8).int32(message.scorecardGroupId); + } + if (message.scorecardId !== 0) { + writer.uint32(16).int32(message.scorecardId); + } + if (message.name !== "") { + writer.uint32(26).string(message.name); + } + if (message.weight !== 0) { + writer.uint32(37).float(message.weight); + } + if (message.sort !== 0) { + writer.uint32(40).int32(message.sort); + } + if (message.version !== 0) { + writer.uint32(48).int32(message.version); + } + if (message.createUser !== undefined) { + writer.uint32(72).int32(message.createUser); + } + if (message.createDate !== undefined) { + writer.uint32(80).int64(message.createDate); + } + if (message.modifyUser !== undefined) { + writer.uint32(88).int32(message.modifyUser); + } + if (message.modifyDate !== undefined) { + writer.uint32(96).int64(message.modifyDate); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ScorecardGroup { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseScorecardGroup(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.scorecardGroupId = reader.int32(); + break; + case 2: + message.scorecardId = reader.int32(); + break; + case 3: + message.name = reader.string(); + break; + case 4: + message.weight = reader.float(); + break; + case 5: + message.sort = reader.int32(); + break; + case 6: + message.version = reader.int32(); + break; + case 9: + message.createUser = reader.int32(); + break; + case 10: + message.createDate = longToNumber(reader.int64() as Long); + break; + case 11: + message.modifyUser = reader.int32(); + break; + case 12: + message.modifyDate = longToNumber(reader.int64() as Long); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ScorecardGroup { + return { + scorecardGroupId: isSet(object.scorecardGroupId) ? Number(object.scorecardGroupId) : 0, + scorecardId: isSet(object.scorecardId) ? Number(object.scorecardId) : 0, + name: isSet(object.name) ? String(object.name) : "", + weight: isSet(object.weight) ? Number(object.weight) : 0, + sort: isSet(object.sort) ? Number(object.sort) : 0, + version: isSet(object.version) ? Number(object.version) : 0, + createUser: isSet(object.createUser) ? Number(object.createUser) : undefined, + createDate: isSet(object.createDate) ? Number(object.createDate) : undefined, + modifyUser: isSet(object.modifyUser) ? Number(object.modifyUser) : undefined, + modifyDate: isSet(object.modifyDate) ? Number(object.modifyDate) : undefined, + }; + }, + + toJSON(message: ScorecardGroup): unknown { + const obj: any = {}; + message.scorecardGroupId !== undefined && (obj.scorecardGroupId = Math.round(message.scorecardGroupId)); + message.scorecardId !== undefined && (obj.scorecardId = Math.round(message.scorecardId)); + message.name !== undefined && (obj.name = message.name); + message.weight !== undefined && (obj.weight = message.weight); + message.sort !== undefined && (obj.sort = Math.round(message.sort)); + message.version !== undefined && (obj.version = Math.round(message.version)); + message.createUser !== undefined && (obj.createUser = Math.round(message.createUser)); + message.createDate !== undefined && (obj.createDate = Math.round(message.createDate)); + message.modifyUser !== undefined && (obj.modifyUser = Math.round(message.modifyUser)); + message.modifyDate !== undefined && (obj.modifyDate = Math.round(message.modifyDate)); + return obj; + }, + + create, I>>(base?: I): ScorecardGroup { + return ScorecardGroup.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ScorecardGroup { + const message = createBaseScorecardGroup(); + message.scorecardGroupId = object.scorecardGroupId ?? 0; + message.scorecardId = object.scorecardId ?? 0; + message.name = object.name ?? ""; + message.weight = object.weight ?? 0; + message.sort = object.sort ?? 0; + message.version = object.version ?? 0; + message.createUser = object.createUser ?? undefined; + message.createDate = object.createDate ?? undefined; + message.modifyUser = object.modifyUser ?? undefined; + message.modifyDate = object.modifyDate ?? undefined; + return message; + }, +}; + +function createBaseScorecardGroupList(): ScorecardGroupList { + return { items: [] }; +} + +export const ScorecardGroupList = { + encode(message: ScorecardGroupList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.items) { + ScorecardGroup.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ScorecardGroupList { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseScorecardGroupList(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.items.push(ScorecardGroup.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ScorecardGroupList { + return { items: Array.isArray(object?.items) ? object.items.map((e: any) => ScorecardGroup.fromJSON(e)) : [] }; + }, + + toJSON(message: ScorecardGroupList): unknown { + const obj: any = {}; + if (message.items) { + obj.items = message.items.map((e) => e ? ScorecardGroup.toJSON(e) : undefined); + } else { + obj.items = []; + } + return obj; + }, + + create, I>>(base?: I): ScorecardGroupList { + return ScorecardGroupList.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ScorecardGroupList { + const message = createBaseScorecardGroupList(); + message.items = object.items?.map((e) => ScorecardGroup.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseGetScorecardGroupsInput(): GetScorecardGroupsInput { + return { scorecardId: 0 }; +} + +export const GetScorecardGroupsInput = { + encode(message: GetScorecardGroupsInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.scorecardId !== 0) { + writer.uint32(8).int32(message.scorecardId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetScorecardGroupsInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetScorecardGroupsInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.scorecardId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GetScorecardGroupsInput { + return { scorecardId: isSet(object.scorecardId) ? Number(object.scorecardId) : 0 }; + }, + + toJSON(message: GetScorecardGroupsInput): unknown { + const obj: any = {}; + message.scorecardId !== undefined && (obj.scorecardId = Math.round(message.scorecardId)); + return obj; + }, + + create, I>>(base?: I): GetScorecardGroupsInput { + return GetScorecardGroupsInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): GetScorecardGroupsInput { + const message = createBaseGetScorecardGroupsInput(); + message.scorecardId = object.scorecardId ?? 0; + return message; + }, +}; + +function createBaseScorecardSection(): ScorecardSection { + return { + scorecardSectionId: 0, + scorecardGroupId: 0, + name: "", + weight: 0, + sort: 0, + version: 0, + createUser: undefined, + createDate: undefined, + modifyUser: undefined, + modifyDate: undefined, + }; +} + +export const ScorecardSection = { + encode(message: ScorecardSection, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.scorecardSectionId !== 0) { + writer.uint32(8).int32(message.scorecardSectionId); + } + if (message.scorecardGroupId !== 0) { + writer.uint32(16).int32(message.scorecardGroupId); + } + if (message.name !== "") { + writer.uint32(26).string(message.name); + } + if (message.weight !== 0) { + writer.uint32(37).float(message.weight); + } + if (message.sort !== 0) { + writer.uint32(40).int32(message.sort); + } + if (message.version !== 0) { + writer.uint32(48).int32(message.version); + } + if (message.createUser !== undefined) { + writer.uint32(72).int32(message.createUser); + } + if (message.createDate !== undefined) { + writer.uint32(80).int64(message.createDate); + } + if (message.modifyUser !== undefined) { + writer.uint32(88).int32(message.modifyUser); + } + if (message.modifyDate !== undefined) { + writer.uint32(96).int64(message.modifyDate); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ScorecardSection { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseScorecardSection(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.scorecardSectionId = reader.int32(); + break; + case 2: + message.scorecardGroupId = reader.int32(); + break; + case 3: + message.name = reader.string(); + break; + case 4: + message.weight = reader.float(); + break; + case 5: + message.sort = reader.int32(); + break; + case 6: + message.version = reader.int32(); + break; + case 9: + message.createUser = reader.int32(); + break; + case 10: + message.createDate = longToNumber(reader.int64() as Long); + break; + case 11: + message.modifyUser = reader.int32(); + break; + case 12: + message.modifyDate = longToNumber(reader.int64() as Long); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ScorecardSection { + return { + scorecardSectionId: isSet(object.scorecardSectionId) ? Number(object.scorecardSectionId) : 0, + scorecardGroupId: isSet(object.scorecardGroupId) ? Number(object.scorecardGroupId) : 0, + name: isSet(object.name) ? String(object.name) : "", + weight: isSet(object.weight) ? Number(object.weight) : 0, + sort: isSet(object.sort) ? Number(object.sort) : 0, + version: isSet(object.version) ? Number(object.version) : 0, + createUser: isSet(object.createUser) ? Number(object.createUser) : undefined, + createDate: isSet(object.createDate) ? Number(object.createDate) : undefined, + modifyUser: isSet(object.modifyUser) ? Number(object.modifyUser) : undefined, + modifyDate: isSet(object.modifyDate) ? Number(object.modifyDate) : undefined, + }; + }, + + toJSON(message: ScorecardSection): unknown { + const obj: any = {}; + message.scorecardSectionId !== undefined && (obj.scorecardSectionId = Math.round(message.scorecardSectionId)); + message.scorecardGroupId !== undefined && (obj.scorecardGroupId = Math.round(message.scorecardGroupId)); + message.name !== undefined && (obj.name = message.name); + message.weight !== undefined && (obj.weight = message.weight); + message.sort !== undefined && (obj.sort = Math.round(message.sort)); + message.version !== undefined && (obj.version = Math.round(message.version)); + message.createUser !== undefined && (obj.createUser = Math.round(message.createUser)); + message.createDate !== undefined && (obj.createDate = Math.round(message.createDate)); + message.modifyUser !== undefined && (obj.modifyUser = Math.round(message.modifyUser)); + message.modifyDate !== undefined && (obj.modifyDate = Math.round(message.modifyDate)); + return obj; + }, + + create, I>>(base?: I): ScorecardSection { + return ScorecardSection.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ScorecardSection { + const message = createBaseScorecardSection(); + message.scorecardSectionId = object.scorecardSectionId ?? 0; + message.scorecardGroupId = object.scorecardGroupId ?? 0; + message.name = object.name ?? ""; + message.weight = object.weight ?? 0; + message.sort = object.sort ?? 0; + message.version = object.version ?? 0; + message.createUser = object.createUser ?? undefined; + message.createDate = object.createDate ?? undefined; + message.modifyUser = object.modifyUser ?? undefined; + message.modifyDate = object.modifyDate ?? undefined; + return message; + }, +}; + +function createBaseScorecardSectionList(): ScorecardSectionList { + return { items: [] }; +} + +export const ScorecardSectionList = { + encode(message: ScorecardSectionList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.items) { + ScorecardSection.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ScorecardSectionList { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseScorecardSectionList(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.items.push(ScorecardSection.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ScorecardSectionList { + return { items: Array.isArray(object?.items) ? object.items.map((e: any) => ScorecardSection.fromJSON(e)) : [] }; + }, + + toJSON(message: ScorecardSectionList): unknown { + const obj: any = {}; + if (message.items) { + obj.items = message.items.map((e) => e ? ScorecardSection.toJSON(e) : undefined); + } else { + obj.items = []; + } + return obj; + }, + + create, I>>(base?: I): ScorecardSectionList { + return ScorecardSectionList.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ScorecardSectionList { + const message = createBaseScorecardSectionList(); + message.items = object.items?.map((e) => ScorecardSection.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseGetScorecardSectionsInput(): GetScorecardSectionsInput { + return { scorecardGroupId: 0 }; +} + +export const GetScorecardSectionsInput = { + encode(message: GetScorecardSectionsInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.scorecardGroupId !== 0) { + writer.uint32(8).int32(message.scorecardGroupId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetScorecardSectionsInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetScorecardSectionsInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.scorecardGroupId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GetScorecardSectionsInput { + return { scorecardGroupId: isSet(object.scorecardGroupId) ? Number(object.scorecardGroupId) : 0 }; + }, + + toJSON(message: GetScorecardSectionsInput): unknown { + const obj: any = {}; + message.scorecardGroupId !== undefined && (obj.scorecardGroupId = Math.round(message.scorecardGroupId)); + return obj; + }, + + create, I>>(base?: I): GetScorecardSectionsInput { + return GetScorecardSectionsInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): GetScorecardSectionsInput { + const message = createBaseGetScorecardSectionsInput(); + message.scorecardGroupId = object.scorecardGroupId ?? 0; + return message; + }, +}; + +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 + : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> + : T extends { $case: string } ? { [K in keyof Omit]?: DeepPartial } & { $case: T["$case"] } + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +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 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 { + return value !== null && value !== undefined; +} diff --git a/src/models/domain-layer/legacy/services/challenge.ts b/src/models/domain-layer/legacy/services/challenge.ts index 21feaf7..a16d202 100644 --- a/src/models/domain-layer/legacy/services/challenge.ts +++ b/src/models/domain-layer/legacy/services/challenge.ts @@ -1,27 +1,28 @@ /* eslint-disable */ import { handleUnaryCall, UntypedServiceImplementation } from "@grpc/grpc-js"; -import { CreateResult, LookupCriteria } from "@topcoder-framework/lib-common"; +import { CheckExistsResult, CreateResult, Empty, LookupCriteria, UpdateResult } from "@topcoder-framework/lib-common"; import { - CheckChallengeExistsResponse, + CloseChallengeInput, CreateChallengeInput, + LegacyChallenge, LegacyChallengeId, LegacyChallengeList, + UpdateChallengeInput, } from "../challenge"; export type LegacyChallengeService = typeof LegacyChallengeService; export const LegacyChallengeService = { - checkChallengeExists: { - path: "/topcoder.domain.legacy_challenge_service.LegacyChallenge/CheckChallengeExists", + checkExists: { + path: "/topcoder.domain.service.legacy_challenge_service.LegacyChallenge/CheckExists", requestStream: false, responseStream: false, requestSerialize: (value: LegacyChallengeId) => Buffer.from(LegacyChallengeId.encode(value).finish()), requestDeserialize: (value: Buffer) => LegacyChallengeId.decode(value), - responseSerialize: (value: CheckChallengeExistsResponse) => - Buffer.from(CheckChallengeExistsResponse.encode(value).finish()), - responseDeserialize: (value: Buffer) => CheckChallengeExistsResponse.decode(value), + responseSerialize: (value: CheckExistsResult) => Buffer.from(CheckExistsResult.encode(value).finish()), + responseDeserialize: (value: Buffer) => CheckExistsResult.decode(value), }, lookup: { - path: "/topcoder.domain.legacy_challenge_service.LegacyChallenge/Lookup", + path: "/topcoder.domain.service.legacy_challenge_service.LegacyChallenge/Lookup", requestStream: false, responseStream: false, requestSerialize: (value: LookupCriteria) => Buffer.from(LookupCriteria.encode(value).finish()), @@ -30,7 +31,7 @@ export const LegacyChallengeService = { responseDeserialize: (value: Buffer) => LegacyChallengeList.decode(value), }, create: { - path: "/topcoder.domain.legacy_challenge_service.LegacyChallenge/Create", + path: "/topcoder.domain.service.legacy_challenge_service.LegacyChallenge/Create", requestStream: false, responseStream: false, requestSerialize: (value: CreateChallengeInput) => Buffer.from(CreateChallengeInput.encode(value).finish()), @@ -38,10 +39,50 @@ export const LegacyChallengeService = { responseSerialize: (value: CreateResult) => Buffer.from(CreateResult.encode(value).finish()), responseDeserialize: (value: Buffer) => CreateResult.decode(value), }, + update: { + path: "/topcoder.domain.service.legacy_challenge_service.LegacyChallenge/Update", + requestStream: false, + responseStream: false, + requestSerialize: (value: UpdateChallengeInput) => Buffer.from(UpdateChallengeInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => UpdateChallengeInput.decode(value), + responseSerialize: (value: UpdateResult) => Buffer.from(UpdateResult.encode(value).finish()), + responseDeserialize: (value: Buffer) => UpdateResult.decode(value), + }, + get: { + path: "/topcoder.domain.service.legacy_challenge_service.LegacyChallenge/Get", + requestStream: false, + responseStream: false, + requestSerialize: (value: LegacyChallengeId) => Buffer.from(LegacyChallengeId.encode(value).finish()), + requestDeserialize: (value: Buffer) => LegacyChallengeId.decode(value), + responseSerialize: (value: LegacyChallenge) => Buffer.from(LegacyChallenge.encode(value).finish()), + responseDeserialize: (value: Buffer) => LegacyChallenge.decode(value), + }, + activate: { + path: "/topcoder.domain.service.legacy_challenge_service.LegacyChallenge/Activate", + requestStream: false, + responseStream: false, + requestSerialize: (value: LegacyChallengeId) => Buffer.from(LegacyChallengeId.encode(value).finish()), + requestDeserialize: (value: Buffer) => LegacyChallengeId.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, + closeChallenge: { + path: "/topcoder.domain.service.legacy_challenge_service.LegacyChallenge/CloseChallenge", + requestStream: false, + responseStream: false, + requestSerialize: (value: CloseChallengeInput) => Buffer.from(CloseChallengeInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => CloseChallengeInput.decode(value), + responseSerialize: (value: LegacyChallenge) => Buffer.from(LegacyChallenge.encode(value).finish()), + responseDeserialize: (value: Buffer) => LegacyChallenge.decode(value), + }, } as const; export interface LegacyChallengeServer extends UntypedServiceImplementation { - checkChallengeExists: handleUnaryCall; + checkExists: handleUnaryCall; lookup: handleUnaryCall; create: handleUnaryCall; + update: handleUnaryCall; + get: handleUnaryCall; + activate: handleUnaryCall; + closeChallenge: handleUnaryCall; } diff --git a/src/models/domain-layer/legacy/services/challenge_payment.ts b/src/models/domain-layer/legacy/services/challenge_payment.ts new file mode 100644 index 0000000..3dde9b4 --- /dev/null +++ b/src/models/domain-layer/legacy/services/challenge_payment.ts @@ -0,0 +1,62 @@ +/* eslint-disable */ +import { handleUnaryCall, UntypedServiceImplementation } from "@grpc/grpc-js"; +import { CreateResult, Empty, UpdateResult } from "@topcoder-framework/lib-common"; +import { + CreateLegacyChallengePaymentInput, + DeleteLegacyChallengePaymentInput, + GetLegacyChallengePaymentInput, + LegacyChallengePaymentList, + UpdateLegacyChallengePaymentInput, +} from "../challenge_payment"; + +export type LegacyChallengePaymentService = typeof LegacyChallengePaymentService; +export const LegacyChallengePaymentService = { + get: { + path: "/topcoder.domain.service.legacy_challenge_payment.LegacyChallengePayment/Get", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetLegacyChallengePaymentInput) => + Buffer.from(GetLegacyChallengePaymentInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetLegacyChallengePaymentInput.decode(value), + responseSerialize: (value: LegacyChallengePaymentList) => + Buffer.from(LegacyChallengePaymentList.encode(value).finish()), + responseDeserialize: (value: Buffer) => LegacyChallengePaymentList.decode(value), + }, + create: { + path: "/topcoder.domain.service.legacy_challenge_payment.LegacyChallengePayment/Create", + requestStream: false, + responseStream: false, + requestSerialize: (value: CreateLegacyChallengePaymentInput) => + Buffer.from(CreateLegacyChallengePaymentInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => CreateLegacyChallengePaymentInput.decode(value), + responseSerialize: (value: CreateResult) => Buffer.from(CreateResult.encode(value).finish()), + responseDeserialize: (value: Buffer) => CreateResult.decode(value), + }, + update: { + path: "/topcoder.domain.service.legacy_challenge_payment.LegacyChallengePayment/Update", + requestStream: false, + responseStream: false, + requestSerialize: (value: UpdateLegacyChallengePaymentInput) => + Buffer.from(UpdateLegacyChallengePaymentInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => UpdateLegacyChallengePaymentInput.decode(value), + responseSerialize: (value: UpdateResult) => Buffer.from(UpdateResult.encode(value).finish()), + responseDeserialize: (value: Buffer) => UpdateResult.decode(value), + }, + delete: { + path: "/topcoder.domain.service.legacy_challenge_payment.LegacyChallengePayment/Delete", + requestStream: false, + responseStream: false, + requestSerialize: (value: DeleteLegacyChallengePaymentInput) => + Buffer.from(DeleteLegacyChallengePaymentInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => DeleteLegacyChallengePaymentInput.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, +} as const; + +export interface LegacyChallengePaymentServer extends UntypedServiceImplementation { + get: handleUnaryCall; + create: handleUnaryCall; + update: handleUnaryCall; + delete: handleUnaryCall; +} diff --git a/src/models/domain-layer/legacy/services/challenge_phase.ts b/src/models/domain-layer/legacy/services/challenge_phase.ts index d75c8b1..b7c8c0f 100644 --- a/src/models/domain-layer/legacy/services/challenge_phase.ts +++ b/src/models/domain-layer/legacy/services/challenge_phase.ts @@ -6,7 +6,7 @@ import { CreatePhaseInput, PhaseTypeList } from "../challenge_phase"; export type LegacyChallengePhaseService = typeof LegacyChallengePhaseService; export const LegacyChallengePhaseService = { create: { - path: "/topcoder.domain.challenge_phase_service.LegacyChallengePhase/Create", + path: "/topcoder.domain.service.challenge_phase_service.LegacyChallengePhase/Create", requestStream: false, responseStream: false, requestSerialize: (value: CreatePhaseInput) => Buffer.from(CreatePhaseInput.encode(value).finish()), @@ -15,7 +15,7 @@ export const LegacyChallengePhaseService = { responseDeserialize: (value: Buffer) => CreateResult.decode(value), }, getPhaseTypes: { - path: "/topcoder.domain.challenge_phase_service.LegacyChallengePhase/GetPhaseTypes", + path: "/topcoder.domain.service.challenge_phase_service.LegacyChallengePhase/GetPhaseTypes", requestStream: false, responseStream: false, requestSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), diff --git a/src/models/domain-layer/legacy/services/group_contest_eligibility.ts b/src/models/domain-layer/legacy/services/group_contest_eligibility.ts new file mode 100644 index 0000000..32af3bb --- /dev/null +++ b/src/models/domain-layer/legacy/services/group_contest_eligibility.ts @@ -0,0 +1,88 @@ +/* eslint-disable */ +import { handleUnaryCall, UntypedServiceImplementation } from "@grpc/grpc-js"; +import { Empty } from "@topcoder-framework/lib-common"; +import { + ContestEligibility, + ContestEligibilityList, + DeleteContestEligibilityInput, + DeleteGroupContestEligibilityInput, + GetContestEligibilityInput, + GetGroupContestEligibilityInput, + GroupContestEligibility, + GroupContestEligibilityList, +} from "../group_contest_eligibility"; + +export type LegacyGroupContestEligibilityService = typeof LegacyGroupContestEligibilityService; +export const LegacyGroupContestEligibilityService = { + getContestEligibilities: { + path: "/topcoder.domain.service.group_contest_eligibility.LegacyGroupContestEligibility/GetContestEligibilities", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetContestEligibilityInput) => + Buffer.from(GetContestEligibilityInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetContestEligibilityInput.decode(value), + responseSerialize: (value: ContestEligibilityList) => Buffer.from(ContestEligibilityList.encode(value).finish()), + responseDeserialize: (value: Buffer) => ContestEligibilityList.decode(value), + }, + createContestEligibility: { + path: "/topcoder.domain.service.group_contest_eligibility.LegacyGroupContestEligibility/CreateContestEligibility", + requestStream: false, + responseStream: false, + requestSerialize: (value: ContestEligibility) => Buffer.from(ContestEligibility.encode(value).finish()), + requestDeserialize: (value: Buffer) => ContestEligibility.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, + getGroupContestEligibilities: { + path: + "/topcoder.domain.service.group_contest_eligibility.LegacyGroupContestEligibility/GetGroupContestEligibilities", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetGroupContestEligibilityInput) => + Buffer.from(GetGroupContestEligibilityInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetGroupContestEligibilityInput.decode(value), + responseSerialize: (value: GroupContestEligibilityList) => + Buffer.from(GroupContestEligibilityList.encode(value).finish()), + responseDeserialize: (value: Buffer) => GroupContestEligibilityList.decode(value), + }, + createGroupContestEligibility: { + path: + "/topcoder.domain.service.group_contest_eligibility.LegacyGroupContestEligibility/CreateGroupContestEligibility", + requestStream: false, + responseStream: false, + requestSerialize: (value: GroupContestEligibility) => Buffer.from(GroupContestEligibility.encode(value).finish()), + requestDeserialize: (value: Buffer) => GroupContestEligibility.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, + deleteContestEligibility: { + path: "/topcoder.domain.service.group_contest_eligibility.LegacyGroupContestEligibility/DeleteContestEligibility", + requestStream: false, + responseStream: false, + requestSerialize: (value: DeleteContestEligibilityInput) => + Buffer.from(DeleteContestEligibilityInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => DeleteContestEligibilityInput.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, + deleteGroupContestEligibility: { + path: + "/topcoder.domain.service.group_contest_eligibility.LegacyGroupContestEligibility/DeleteGroupContestEligibility", + requestStream: false, + responseStream: false, + requestSerialize: (value: DeleteGroupContestEligibilityInput) => + Buffer.from(DeleteGroupContestEligibilityInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => DeleteGroupContestEligibilityInput.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, +} as const; + +export interface LegacyGroupContestEligibilityServer extends UntypedServiceImplementation { + getContestEligibilities: handleUnaryCall; + createContestEligibility: handleUnaryCall; + getGroupContestEligibilities: handleUnaryCall; + createGroupContestEligibility: handleUnaryCall; + deleteContestEligibility: handleUnaryCall; + deleteGroupContestEligibility: handleUnaryCall; +} diff --git a/src/models/domain-layer/legacy/services/notification.ts b/src/models/domain-layer/legacy/services/notification.ts new file mode 100644 index 0000000..cfa2f84 --- /dev/null +++ b/src/models/domain-layer/legacy/services/notification.ts @@ -0,0 +1,31 @@ +/* eslint-disable */ +import { handleUnaryCall, UntypedServiceImplementation } from "@grpc/grpc-js"; +import { Empty } from "@topcoder-framework/lib-common"; +import { DeleteNotificationsInput, GetNotificationsInput, NotificationList } from "../notification"; + +export type LegacyNotificationService = typeof LegacyNotificationService; +export const LegacyNotificationService = { + getNotifications: { + path: "/topcoder.domain.service.notification.LegacyNotification/GetNotifications", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetNotificationsInput) => Buffer.from(GetNotificationsInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetNotificationsInput.decode(value), + responseSerialize: (value: NotificationList) => Buffer.from(NotificationList.encode(value).finish()), + responseDeserialize: (value: Buffer) => NotificationList.decode(value), + }, + deleteNotifications: { + path: "/topcoder.domain.service.notification.LegacyNotification/DeleteNotifications", + requestStream: false, + responseStream: false, + requestSerialize: (value: DeleteNotificationsInput) => Buffer.from(DeleteNotificationsInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => DeleteNotificationsInput.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, +} as const; + +export interface LegacyNotificationServer extends UntypedServiceImplementation { + getNotifications: handleUnaryCall; + deleteNotifications: handleUnaryCall; +} diff --git a/src/models/domain-layer/legacy/services/payment.ts b/src/models/domain-layer/legacy/services/payment.ts new file mode 100644 index 0000000..1690b7e --- /dev/null +++ b/src/models/domain-layer/legacy/services/payment.ts @@ -0,0 +1,105 @@ +/* eslint-disable */ +import { handleUnaryCall, UntypedServiceImplementation } from "@grpc/grpc-js"; +import { CreateResult, Empty } from "@topcoder-framework/lib-common"; +import { + CreatePrizeInput, + CreateProjectPaymentsInput, + DeletePrizeInput, + DeleteProjectPaymentsInput, + GetPrizesInput, + GetProjectPaymentsInput, + PrizeList, + ProjectPaymentList, + UpdatePrizeInput, + UpdateProjectPaymentsInput, +} from "../payment"; + +export type LegacyPaymentService = typeof LegacyPaymentService; +export const LegacyPaymentService = { + getProjectPayments: { + path: "/topcoder.domain.service.payment.LegacyPayment/GetProjectPayments", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetProjectPaymentsInput) => Buffer.from(GetProjectPaymentsInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetProjectPaymentsInput.decode(value), + responseSerialize: (value: ProjectPaymentList) => Buffer.from(ProjectPaymentList.encode(value).finish()), + responseDeserialize: (value: Buffer) => ProjectPaymentList.decode(value), + }, + createProjectPayment: { + path: "/topcoder.domain.service.payment.LegacyPayment/CreateProjectPayment", + requestStream: false, + responseStream: false, + requestSerialize: (value: CreateProjectPaymentsInput) => + Buffer.from(CreateProjectPaymentsInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => CreateProjectPaymentsInput.decode(value), + responseSerialize: (value: CreateResult) => Buffer.from(CreateResult.encode(value).finish()), + responseDeserialize: (value: Buffer) => CreateResult.decode(value), + }, + updateProjectPayment: { + path: "/topcoder.domain.service.payment.LegacyPayment/UpdateProjectPayment", + requestStream: false, + responseStream: false, + requestSerialize: (value: UpdateProjectPaymentsInput) => + Buffer.from(UpdateProjectPaymentsInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => UpdateProjectPaymentsInput.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, + deleteProjectPayment: { + path: "/topcoder.domain.service.payment.LegacyPayment/DeleteProjectPayment", + requestStream: false, + responseStream: false, + requestSerialize: (value: DeleteProjectPaymentsInput) => + Buffer.from(DeleteProjectPaymentsInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => DeleteProjectPaymentsInput.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, + getProjectPrizes: { + path: "/topcoder.domain.service.payment.LegacyPayment/GetProjectPrizes", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetPrizesInput) => Buffer.from(GetPrizesInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetPrizesInput.decode(value), + responseSerialize: (value: PrizeList) => Buffer.from(PrizeList.encode(value).finish()), + responseDeserialize: (value: Buffer) => PrizeList.decode(value), + }, + createProjectPrize: { + path: "/topcoder.domain.service.payment.LegacyPayment/CreateProjectPrize", + requestStream: false, + responseStream: false, + requestSerialize: (value: CreatePrizeInput) => Buffer.from(CreatePrizeInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => CreatePrizeInput.decode(value), + responseSerialize: (value: CreateResult) => Buffer.from(CreateResult.encode(value).finish()), + responseDeserialize: (value: Buffer) => CreateResult.decode(value), + }, + updateProjectPrize: { + path: "/topcoder.domain.service.payment.LegacyPayment/UpdateProjectPrize", + requestStream: false, + responseStream: false, + requestSerialize: (value: UpdatePrizeInput) => Buffer.from(UpdatePrizeInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => UpdatePrizeInput.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, + deleteProjectPrize: { + path: "/topcoder.domain.service.payment.LegacyPayment/DeleteProjectPrize", + requestStream: false, + responseStream: false, + requestSerialize: (value: DeletePrizeInput) => Buffer.from(DeletePrizeInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => DeletePrizeInput.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, +} as const; + +export interface LegacyPaymentServer extends UntypedServiceImplementation { + getProjectPayments: handleUnaryCall; + createProjectPayment: handleUnaryCall; + updateProjectPayment: handleUnaryCall; + deleteProjectPayment: handleUnaryCall; + getProjectPrizes: handleUnaryCall; + createProjectPrize: handleUnaryCall; + updateProjectPrize: handleUnaryCall; + deleteProjectPrize: handleUnaryCall; +} diff --git a/src/models/domain-layer/legacy/services/phase.ts b/src/models/domain-layer/legacy/services/phase.ts new file mode 100644 index 0000000..b5eb5c2 --- /dev/null +++ b/src/models/domain-layer/legacy/services/phase.ts @@ -0,0 +1,114 @@ +/* eslint-disable */ +import { handleUnaryCall, UntypedServiceImplementation } from "@grpc/grpc-js"; +import { CreateResult, Empty } from "@topcoder-framework/lib-common"; +import { + CreatePhaseCriteriaInput, + CreatePhaseDependencyInput, + CreateProjectPhaseInput, + DeletePhaseCriteriaInput, + DeleteProjectPhasesInput, + GetPhaseCriteriaInput, + GetProjectPhasesInput, + PhaseCriteriaList, + PhaseTypeList, + ProjectPhaseList, + UpdateProjectPhaseInput, +} from "../phase"; + +export type LegacyPhaseService = typeof LegacyPhaseService; +export const LegacyPhaseService = { + getPhaseCriteria: { + path: "/topcoder.domain.service.phase.LegacyPhase/GetPhaseCriteria", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetPhaseCriteriaInput) => Buffer.from(GetPhaseCriteriaInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetPhaseCriteriaInput.decode(value), + responseSerialize: (value: PhaseCriteriaList) => Buffer.from(PhaseCriteriaList.encode(value).finish()), + responseDeserialize: (value: Buffer) => PhaseCriteriaList.decode(value), + }, + createPhaseCriteria: { + path: "/topcoder.domain.service.phase.LegacyPhase/CreatePhaseCriteria", + requestStream: false, + responseStream: false, + requestSerialize: (value: CreatePhaseCriteriaInput) => Buffer.from(CreatePhaseCriteriaInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => CreatePhaseCriteriaInput.decode(value), + responseSerialize: (value: CreateResult) => Buffer.from(CreateResult.encode(value).finish()), + responseDeserialize: (value: Buffer) => CreateResult.decode(value), + }, + deletePhaseCriteria: { + path: "/topcoder.domain.service.phase.LegacyPhase/DeletePhaseCriteria", + requestStream: false, + responseStream: false, + requestSerialize: (value: DeletePhaseCriteriaInput) => Buffer.from(DeletePhaseCriteriaInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => DeletePhaseCriteriaInput.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, + getPhaseTypes: { + path: "/topcoder.domain.service.phase.LegacyPhase/GetPhaseTypes", + requestStream: false, + responseStream: false, + requestSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + requestDeserialize: (value: Buffer) => Empty.decode(value), + responseSerialize: (value: PhaseTypeList) => Buffer.from(PhaseTypeList.encode(value).finish()), + responseDeserialize: (value: Buffer) => PhaseTypeList.decode(value), + }, + getProjectPhases: { + path: "/topcoder.domain.service.phase.LegacyPhase/GetProjectPhases", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetProjectPhasesInput) => Buffer.from(GetProjectPhasesInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetProjectPhasesInput.decode(value), + responseSerialize: (value: ProjectPhaseList) => Buffer.from(ProjectPhaseList.encode(value).finish()), + responseDeserialize: (value: Buffer) => ProjectPhaseList.decode(value), + }, + deleteProjectPhases: { + path: "/topcoder.domain.service.phase.LegacyPhase/DeleteProjectPhases", + requestStream: false, + responseStream: false, + requestSerialize: (value: DeleteProjectPhasesInput) => Buffer.from(DeleteProjectPhasesInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => DeleteProjectPhasesInput.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, + createProjectPhase: { + path: "/topcoder.domain.service.phase.LegacyPhase/CreateProjectPhase", + requestStream: false, + responseStream: false, + requestSerialize: (value: CreateProjectPhaseInput) => Buffer.from(CreateProjectPhaseInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => CreateProjectPhaseInput.decode(value), + responseSerialize: (value: CreateResult) => Buffer.from(CreateResult.encode(value).finish()), + responseDeserialize: (value: Buffer) => CreateResult.decode(value), + }, + updateProjectPhase: { + path: "/topcoder.domain.service.phase.LegacyPhase/UpdateProjectPhase", + requestStream: false, + responseStream: false, + requestSerialize: (value: UpdateProjectPhaseInput) => Buffer.from(UpdateProjectPhaseInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => UpdateProjectPhaseInput.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, + createPhaseDependency: { + path: "/topcoder.domain.service.phase.LegacyPhase/CreatePhaseDependency", + requestStream: false, + responseStream: false, + requestSerialize: (value: CreatePhaseDependencyInput) => + Buffer.from(CreatePhaseDependencyInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => CreatePhaseDependencyInput.decode(value), + responseSerialize: (value: CreateResult) => Buffer.from(CreateResult.encode(value).finish()), + responseDeserialize: (value: Buffer) => CreateResult.decode(value), + }, +} as const; + +export interface LegacyPhaseServer extends UntypedServiceImplementation { + getPhaseCriteria: handleUnaryCall; + createPhaseCriteria: handleUnaryCall; + deletePhaseCriteria: handleUnaryCall; + getPhaseTypes: handleUnaryCall; + getProjectPhases: handleUnaryCall; + deleteProjectPhases: handleUnaryCall; + createProjectPhase: handleUnaryCall; + updateProjectPhase: handleUnaryCall; + createPhaseDependency: handleUnaryCall; +} diff --git a/src/models/domain-layer/legacy/services/prize.ts b/src/models/domain-layer/legacy/services/prize.ts index aa9f64a..443901c 100644 --- a/src/models/domain-layer/legacy/services/prize.ts +++ b/src/models/domain-layer/legacy/services/prize.ts @@ -1,12 +1,12 @@ /* eslint-disable */ import { handleUnaryCall, UntypedServiceImplementation } from "@grpc/grpc-js"; -import { CreateResult, Empty, ScanCriteria, UpdateResult } from "@topcoder-framework/lib-common"; -import { CreatePrizeInput, PrizeList, PrizeTypeList, UpdatePrizeInput } from "../prize"; +import { CreateResult, Empty, ScanRequest, UpdateResult } from "@topcoder-framework/lib-common"; +import { CreatePrizeInput, DeletePrizeInput, PrizeList, PrizeTypeList, UpdatePrizeInput } from "../prize"; -export type PrizeServiceService = typeof PrizeServiceService; -export const PrizeServiceService = { +export type LegacyPrizeServiceService = typeof LegacyPrizeServiceService; +export const LegacyPrizeServiceService = { create: { - path: "/topcoder.domain.legacy_prize_service.PrizeService/Create", + path: "/topcoder.domain.service.legacy_prize_service.LegacyPrizeService/Create", requestStream: false, responseStream: false, requestSerialize: (value: CreatePrizeInput) => Buffer.from(CreatePrizeInput.encode(value).finish()), @@ -15,16 +15,16 @@ export const PrizeServiceService = { responseDeserialize: (value: Buffer) => CreateResult.decode(value), }, scan: { - path: "/topcoder.domain.legacy_prize_service.PrizeService/Scan", + path: "/topcoder.domain.service.legacy_prize_service.LegacyPrizeService/Scan", requestStream: false, responseStream: false, - requestSerialize: (value: ScanCriteria) => Buffer.from(ScanCriteria.encode(value).finish()), - requestDeserialize: (value: Buffer) => ScanCriteria.decode(value), + requestSerialize: (value: ScanRequest) => Buffer.from(ScanRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => ScanRequest.decode(value), responseSerialize: (value: PrizeList) => Buffer.from(PrizeList.encode(value).finish()), responseDeserialize: (value: Buffer) => PrizeList.decode(value), }, update: { - path: "/topcoder.domain.legacy_prize_service.PrizeService/Update", + path: "/topcoder.domain.service.legacy_prize_service.LegacyPrizeService/Update", requestStream: false, responseStream: false, requestSerialize: (value: UpdatePrizeInput) => Buffer.from(UpdatePrizeInput.encode(value).finish()), @@ -33,7 +33,7 @@ export const PrizeServiceService = { responseDeserialize: (value: Buffer) => UpdateResult.decode(value), }, getPrizeTypes: { - path: "/topcoder.domain.legacy_prize_service.PrizeService/GetPrizeTypes", + path: "/topcoder.domain.service.legacy_prize_service.LegacyPrizeService/GetPrizeTypes", requestStream: false, responseStream: false, requestSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), @@ -41,11 +41,21 @@ export const PrizeServiceService = { responseSerialize: (value: PrizeTypeList) => Buffer.from(PrizeTypeList.encode(value).finish()), responseDeserialize: (value: Buffer) => PrizeTypeList.decode(value), }, + delete: { + path: "/topcoder.domain.service.legacy_prize_service.LegacyPrizeService/Delete", + requestStream: false, + responseStream: false, + requestSerialize: (value: DeletePrizeInput) => Buffer.from(DeletePrizeInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => DeletePrizeInput.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, } as const; -export interface PrizeServiceServer extends UntypedServiceImplementation { +export interface LegacyPrizeServiceServer extends UntypedServiceImplementation { create: handleUnaryCall; - scan: handleUnaryCall; + scan: handleUnaryCall; update: handleUnaryCall; getPrizeTypes: handleUnaryCall; + delete: handleUnaryCall; } diff --git a/src/models/domain-layer/legacy/services/project_info.ts b/src/models/domain-layer/legacy/services/project_info.ts new file mode 100644 index 0000000..d6b516d --- /dev/null +++ b/src/models/domain-layer/legacy/services/project_info.ts @@ -0,0 +1,69 @@ +/* eslint-disable */ +import { handleUnaryCall, UntypedServiceImplementation } from "@grpc/grpc-js"; +import { Empty, UpdateResult } from "@topcoder-framework/lib-common"; +import { + CreateProjectInfoInput, + DeleteProjectInfoInput, + GetProjectInfoInput, + ProjectInfo, + ProjectInfoList, + ProjectInfoTypeList, + UpdateProjectInfoInput, +} from "../project_info"; + +export type LegacyProjectInfoService = typeof LegacyProjectInfoService; +export const LegacyProjectInfoService = { + create: { + path: "/topcoder.domain.service.project_info.LegacyProjectInfo/Create", + requestStream: false, + responseStream: false, + requestSerialize: (value: CreateProjectInfoInput) => Buffer.from(CreateProjectInfoInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => CreateProjectInfoInput.decode(value), + responseSerialize: (value: ProjectInfo) => Buffer.from(ProjectInfo.encode(value).finish()), + responseDeserialize: (value: Buffer) => ProjectInfo.decode(value), + }, + update: { + path: "/topcoder.domain.service.project_info.LegacyProjectInfo/Update", + requestStream: false, + responseStream: false, + requestSerialize: (value: UpdateProjectInfoInput) => Buffer.from(UpdateProjectInfoInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => UpdateProjectInfoInput.decode(value), + responseSerialize: (value: UpdateResult) => Buffer.from(UpdateResult.encode(value).finish()), + responseDeserialize: (value: Buffer) => UpdateResult.decode(value), + }, + delete: { + path: "/topcoder.domain.service.project_info.LegacyProjectInfo/Delete", + requestStream: false, + responseStream: false, + requestSerialize: (value: DeleteProjectInfoInput) => Buffer.from(DeleteProjectInfoInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => DeleteProjectInfoInput.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, + getProjectInfo: { + path: "/topcoder.domain.service.project_info.LegacyProjectInfo/GetProjectInfo", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetProjectInfoInput) => Buffer.from(GetProjectInfoInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetProjectInfoInput.decode(value), + responseSerialize: (value: ProjectInfoList) => Buffer.from(ProjectInfoList.encode(value).finish()), + responseDeserialize: (value: Buffer) => ProjectInfoList.decode(value), + }, + getProjectInfoTypes: { + path: "/topcoder.domain.service.project_info.LegacyProjectInfo/GetProjectInfoTypes", + requestStream: false, + responseStream: false, + requestSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + requestDeserialize: (value: Buffer) => Empty.decode(value), + responseSerialize: (value: ProjectInfoTypeList) => Buffer.from(ProjectInfoTypeList.encode(value).finish()), + responseDeserialize: (value: Buffer) => ProjectInfoTypeList.decode(value), + }, +} as const; + +export interface LegacyProjectInfoServer extends UntypedServiceImplementation { + create: handleUnaryCall; + update: handleUnaryCall; + delete: handleUnaryCall; + getProjectInfo: handleUnaryCall; + getProjectInfoTypes: handleUnaryCall; +} diff --git a/src/models/domain-layer/legacy/services/resource.ts b/src/models/domain-layer/legacy/services/resource.ts new file mode 100644 index 0000000..4df7d23 --- /dev/null +++ b/src/models/domain-layer/legacy/services/resource.ts @@ -0,0 +1,58 @@ +/* eslint-disable */ +import { handleUnaryCall, UntypedServiceImplementation } from "@grpc/grpc-js"; +import { CreateResult, Empty } from "@topcoder-framework/lib-common"; +import { + CreateResourceInfoInput, + GetResourceInfosInput, + GetResourcesInput, + ResourceInfoList, + ResourceList, + UpdateResourceInfoInput, +} from "../resource"; + +export type LegacyResourceService = typeof LegacyResourceService; +export const LegacyResourceService = { + getResources: { + path: "/topcoder.domain.service.resource.LegacyResource/GetResources", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetResourcesInput) => Buffer.from(GetResourcesInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetResourcesInput.decode(value), + responseSerialize: (value: ResourceList) => Buffer.from(ResourceList.encode(value).finish()), + responseDeserialize: (value: Buffer) => ResourceList.decode(value), + }, + getResourceInfos: { + path: "/topcoder.domain.service.resource.LegacyResource/GetResourceInfos", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetResourceInfosInput) => Buffer.from(GetResourceInfosInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetResourceInfosInput.decode(value), + responseSerialize: (value: ResourceInfoList) => Buffer.from(ResourceInfoList.encode(value).finish()), + responseDeserialize: (value: Buffer) => ResourceInfoList.decode(value), + }, + createResourceInfos: { + path: "/topcoder.domain.service.resource.LegacyResource/CreateResourceInfos", + requestStream: false, + responseStream: false, + requestSerialize: (value: CreateResourceInfoInput) => Buffer.from(CreateResourceInfoInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => CreateResourceInfoInput.decode(value), + responseSerialize: (value: CreateResult) => Buffer.from(CreateResult.encode(value).finish()), + responseDeserialize: (value: Buffer) => CreateResult.decode(value), + }, + updateResourceInfos: { + path: "/topcoder.domain.service.resource.LegacyResource/UpdateResourceInfos", + requestStream: false, + responseStream: false, + requestSerialize: (value: UpdateResourceInfoInput) => Buffer.from(UpdateResourceInfoInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => UpdateResourceInfoInput.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, +} as const; + +export interface LegacyResourceServer extends UntypedServiceImplementation { + getResources: handleUnaryCall; + getResourceInfos: handleUnaryCall; + createResourceInfos: handleUnaryCall; + updateResourceInfos: handleUnaryCall; +} diff --git a/src/models/domain-layer/legacy/services/review.ts b/src/models/domain-layer/legacy/services/review.ts new file mode 100644 index 0000000..59367db --- /dev/null +++ b/src/models/domain-layer/legacy/services/review.ts @@ -0,0 +1,41 @@ +/* eslint-disable */ +import { handleUnaryCall, UntypedServiceImplementation } from "@grpc/grpc-js"; +import { CreateResult } from "@topcoder-framework/lib-common"; +import { CreateReviewInput, CreateReviewItemInput, GetSubmissionInput, Submission } from "../review"; + +export type LegacyReviewService = typeof LegacyReviewService; +export const LegacyReviewService = { + createReview: { + path: "/topcoder.domain.service.review.LegacyReview/CreateReview", + requestStream: false, + responseStream: false, + requestSerialize: (value: CreateReviewInput) => Buffer.from(CreateReviewInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => CreateReviewInput.decode(value), + responseSerialize: (value: CreateResult) => Buffer.from(CreateResult.encode(value).finish()), + responseDeserialize: (value: Buffer) => CreateResult.decode(value), + }, + createReviewItem: { + path: "/topcoder.domain.service.review.LegacyReview/CreateReviewItem", + requestStream: false, + responseStream: false, + requestSerialize: (value: CreateReviewItemInput) => Buffer.from(CreateReviewItemInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => CreateReviewItemInput.decode(value), + responseSerialize: (value: CreateResult) => Buffer.from(CreateResult.encode(value).finish()), + responseDeserialize: (value: Buffer) => CreateResult.decode(value), + }, + getSubmission: { + path: "/topcoder.domain.service.review.LegacyReview/GetSubmission", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetSubmissionInput) => Buffer.from(GetSubmissionInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetSubmissionInput.decode(value), + responseSerialize: (value: Submission) => Buffer.from(Submission.encode(value).finish()), + responseDeserialize: (value: Buffer) => Submission.decode(value), + }, +} as const; + +export interface LegacyReviewServer extends UntypedServiceImplementation { + createReview: handleUnaryCall; + createReviewItem: handleUnaryCall; + getSubmission: handleUnaryCall; +} diff --git a/src/models/domain-layer/legacy/services/sync.ts b/src/models/domain-layer/legacy/services/sync.ts new file mode 100644 index 0000000..7b7eb95 --- /dev/null +++ b/src/models/domain-layer/legacy/services/sync.ts @@ -0,0 +1,21 @@ +/* eslint-disable */ +import { handleUnaryCall, UntypedServiceImplementation } from "@grpc/grpc-js"; +import { Empty } from "@topcoder-framework/lib-common"; +import { SyncInput } from "../sync"; + +export type LegacySyncService = typeof LegacySyncService; +export const LegacySyncService = { + syncLegacy: { + path: "/topcoder.domain.service.sync.LegacySync/SyncLegacy", + requestStream: false, + responseStream: false, + requestSerialize: (value: SyncInput) => Buffer.from(SyncInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => SyncInput.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, +} as const; + +export interface LegacySyncServer extends UntypedServiceImplementation { + syncLegacy: handleUnaryCall; +} diff --git a/src/models/domain-layer/legacy/services/term.ts b/src/models/domain-layer/legacy/services/term.ts new file mode 100644 index 0000000..74be816 --- /dev/null +++ b/src/models/domain-layer/legacy/services/term.ts @@ -0,0 +1,50 @@ +/* eslint-disable */ +import { handleUnaryCall, UntypedServiceImplementation } from "@grpc/grpc-js"; +import { CreateResult, Empty } from "@topcoder-framework/lib-common"; +import { + CreateProjectRoleTermsOfUseXrefInput, + DeleteProjectRoleTermsOfUseXrefInput, + GetProjectRoleTermsOfUseXrefInput, + ProjectRoleTermsOfUseXrefList, +} from "../term"; + +export type LegacyTermService = typeof LegacyTermService; +export const LegacyTermService = { + getProjectRoleTermsOfUseXrefs: { + path: "/topcoder.domain.service.term.LegacyTerm/GetProjectRoleTermsOfUseXrefs", + requestStream: false, + responseStream: false, + requestSerialize: (value: GetProjectRoleTermsOfUseXrefInput) => + Buffer.from(GetProjectRoleTermsOfUseXrefInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetProjectRoleTermsOfUseXrefInput.decode(value), + responseSerialize: (value: ProjectRoleTermsOfUseXrefList) => + Buffer.from(ProjectRoleTermsOfUseXrefList.encode(value).finish()), + responseDeserialize: (value: Buffer) => ProjectRoleTermsOfUseXrefList.decode(value), + }, + createProjectRoleTermsOfUseXref: { + path: "/topcoder.domain.service.term.LegacyTerm/CreateProjectRoleTermsOfUseXref", + requestStream: false, + responseStream: false, + requestSerialize: (value: CreateProjectRoleTermsOfUseXrefInput) => + Buffer.from(CreateProjectRoleTermsOfUseXrefInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => CreateProjectRoleTermsOfUseXrefInput.decode(value), + responseSerialize: (value: CreateResult) => Buffer.from(CreateResult.encode(value).finish()), + responseDeserialize: (value: Buffer) => CreateResult.decode(value), + }, + deleteProjectRoleTermsOfUseXref: { + path: "/topcoder.domain.service.term.LegacyTerm/DeleteProjectRoleTermsOfUseXref", + requestStream: false, + responseStream: false, + requestSerialize: (value: DeleteProjectRoleTermsOfUseXrefInput) => + Buffer.from(DeleteProjectRoleTermsOfUseXrefInput.encode(value).finish()), + requestDeserialize: (value: Buffer) => DeleteProjectRoleTermsOfUseXrefInput.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, +} as const; + +export interface LegacyTermServer extends UntypedServiceImplementation { + getProjectRoleTermsOfUseXrefs: handleUnaryCall; + createProjectRoleTermsOfUseXref: handleUnaryCall; + deleteProjectRoleTermsOfUseXref: handleUnaryCall; +} diff --git a/src/models/domain-layer/legacy/sync.ts b/src/models/domain-layer/legacy/sync.ts new file mode 100644 index 0000000..2cf6de9 --- /dev/null +++ b/src/models/domain-layer/legacy/sync.ts @@ -0,0 +1,172 @@ +/* eslint-disable */ +import _m0 from "protobufjs/minimal"; + +export interface SyncInput { + projectId: number; + updatedTables: Table[]; +} + +export interface Table { + table: string; + primaryKey: string; + value: string[]; +} + +function createBaseSyncInput(): SyncInput { + return { projectId: 0, updatedTables: [] }; +} + +export const SyncInput = { + encode(message: SyncInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int32(message.projectId); + } + for (const v of message.updatedTables) { + Table.encode(v!, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): SyncInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSyncInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = reader.int32(); + break; + case 2: + message.updatedTables.push(Table.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): SyncInput { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + updatedTables: Array.isArray(object?.updatedTables) + ? object.updatedTables.map((e: any) => Table.fromJSON(e)) + : [], + }; + }, + + toJSON(message: SyncInput): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + if (message.updatedTables) { + obj.updatedTables = message.updatedTables.map((e) => e ? Table.toJSON(e) : undefined); + } else { + obj.updatedTables = []; + } + return obj; + }, + + create, I>>(base?: I): SyncInput { + return SyncInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): SyncInput { + const message = createBaseSyncInput(); + message.projectId = object.projectId ?? 0; + message.updatedTables = object.updatedTables?.map((e) => Table.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseTable(): Table { + return { table: "", primaryKey: "", value: [] }; +} + +export const Table = { + encode(message: Table, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.table !== "") { + writer.uint32(10).string(message.table); + } + if (message.primaryKey !== "") { + writer.uint32(18).string(message.primaryKey); + } + for (const v of message.value) { + writer.uint32(26).string(v!); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Table { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTable(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.table = reader.string(); + break; + case 2: + message.primaryKey = reader.string(); + break; + case 3: + message.value.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Table { + return { + table: isSet(object.table) ? String(object.table) : "", + primaryKey: isSet(object.primaryKey) ? String(object.primaryKey) : "", + value: Array.isArray(object?.value) ? object.value.map((e: any) => String(e)) : [], + }; + }, + + toJSON(message: Table): unknown { + const obj: any = {}; + message.table !== undefined && (obj.table = message.table); + message.primaryKey !== undefined && (obj.primaryKey = message.primaryKey); + if (message.value) { + obj.value = message.value.map((e) => e); + } else { + obj.value = []; + } + return obj; + }, + + create, I>>(base?: I): Table { + return Table.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): Table { + const message = createBaseTable(); + message.table = object.table ?? ""; + message.primaryKey = object.primaryKey ?? ""; + message.value = object.value?.map((e) => e) || []; + return message; + }, +}; + +type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; + +type DeepPartial = T extends Builtin ? T + : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> + : T extends { $case: string } ? { [K in keyof Omit]?: DeepPartial } & { $case: T["$case"] } + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +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 isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/src/models/domain-layer/legacy/term.ts b/src/models/domain-layer/legacy/term.ts new file mode 100644 index 0000000..bde4bf1 --- /dev/null +++ b/src/models/domain-layer/legacy/term.ts @@ -0,0 +1,471 @@ +/* eslint-disable */ +import Long from "long"; +import _m0 from "protobufjs/minimal"; + +export interface ProjectRoleTermsOfUseXref { + projectId: number; + resourceRoleId: number; + termsOfUseId: number; + createDate: number; + modifyDate: number; + sortOrder: number; + groupInd: number; +} + +export interface GetProjectRoleTermsOfUseXrefInput { + projectId: number; +} + +export interface ProjectRoleTermsOfUseXrefList { + terms: ProjectRoleTermsOfUseXref[]; +} + +export interface CreateProjectRoleTermsOfUseXrefInput { + projectId: number; + resourceRoleId: number; + termsOfUseId: number; + sortOrder?: number | undefined; + groupInd?: number | undefined; +} + +export interface DeleteProjectRoleTermsOfUseXrefInput { + projectId: number; + resourceRoleId: number; + termsOfUseId: number; +} + +function createBaseProjectRoleTermsOfUseXref(): ProjectRoleTermsOfUseXref { + return { projectId: 0, resourceRoleId: 0, termsOfUseId: 0, createDate: 0, modifyDate: 0, sortOrder: 0, groupInd: 0 }; +} + +export const ProjectRoleTermsOfUseXref = { + encode(message: ProjectRoleTermsOfUseXref, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int32(message.projectId); + } + if (message.resourceRoleId !== 0) { + writer.uint32(16).int32(message.resourceRoleId); + } + if (message.termsOfUseId !== 0) { + writer.uint32(24).int32(message.termsOfUseId); + } + if (message.createDate !== 0) { + writer.uint32(32).int64(message.createDate); + } + if (message.modifyDate !== 0) { + writer.uint32(40).int64(message.modifyDate); + } + if (message.sortOrder !== 0) { + writer.uint32(48).int32(message.sortOrder); + } + if (message.groupInd !== 0) { + writer.uint32(56).int32(message.groupInd); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ProjectRoleTermsOfUseXref { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseProjectRoleTermsOfUseXref(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = reader.int32(); + break; + case 2: + message.resourceRoleId = reader.int32(); + break; + case 3: + message.termsOfUseId = reader.int32(); + break; + case 4: + message.createDate = longToNumber(reader.int64() as Long); + break; + case 5: + message.modifyDate = longToNumber(reader.int64() as Long); + break; + case 6: + message.sortOrder = reader.int32(); + break; + case 7: + message.groupInd = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ProjectRoleTermsOfUseXref { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + resourceRoleId: isSet(object.resourceRoleId) ? Number(object.resourceRoleId) : 0, + termsOfUseId: isSet(object.termsOfUseId) ? Number(object.termsOfUseId) : 0, + createDate: isSet(object.createDate) ? Number(object.createDate) : 0, + modifyDate: isSet(object.modifyDate) ? Number(object.modifyDate) : 0, + sortOrder: isSet(object.sortOrder) ? Number(object.sortOrder) : 0, + groupInd: isSet(object.groupInd) ? Number(object.groupInd) : 0, + }; + }, + + toJSON(message: ProjectRoleTermsOfUseXref): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.resourceRoleId !== undefined && (obj.resourceRoleId = Math.round(message.resourceRoleId)); + message.termsOfUseId !== undefined && (obj.termsOfUseId = Math.round(message.termsOfUseId)); + message.createDate !== undefined && (obj.createDate = Math.round(message.createDate)); + message.modifyDate !== undefined && (obj.modifyDate = Math.round(message.modifyDate)); + message.sortOrder !== undefined && (obj.sortOrder = Math.round(message.sortOrder)); + message.groupInd !== undefined && (obj.groupInd = Math.round(message.groupInd)); + return obj; + }, + + create, I>>(base?: I): ProjectRoleTermsOfUseXref { + return ProjectRoleTermsOfUseXref.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): ProjectRoleTermsOfUseXref { + const message = createBaseProjectRoleTermsOfUseXref(); + message.projectId = object.projectId ?? 0; + message.resourceRoleId = object.resourceRoleId ?? 0; + message.termsOfUseId = object.termsOfUseId ?? 0; + message.createDate = object.createDate ?? 0; + message.modifyDate = object.modifyDate ?? 0; + message.sortOrder = object.sortOrder ?? 0; + message.groupInd = object.groupInd ?? 0; + return message; + }, +}; + +function createBaseGetProjectRoleTermsOfUseXrefInput(): GetProjectRoleTermsOfUseXrefInput { + return { projectId: 0 }; +} + +export const GetProjectRoleTermsOfUseXrefInput = { + encode(message: GetProjectRoleTermsOfUseXrefInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int32(message.projectId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetProjectRoleTermsOfUseXrefInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetProjectRoleTermsOfUseXrefInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GetProjectRoleTermsOfUseXrefInput { + return { projectId: isSet(object.projectId) ? Number(object.projectId) : 0 }; + }, + + toJSON(message: GetProjectRoleTermsOfUseXrefInput): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + return obj; + }, + + create, I>>( + base?: I, + ): GetProjectRoleTermsOfUseXrefInput { + return GetProjectRoleTermsOfUseXrefInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>( + object: I, + ): GetProjectRoleTermsOfUseXrefInput { + const message = createBaseGetProjectRoleTermsOfUseXrefInput(); + message.projectId = object.projectId ?? 0; + return message; + }, +}; + +function createBaseProjectRoleTermsOfUseXrefList(): ProjectRoleTermsOfUseXrefList { + return { terms: [] }; +} + +export const ProjectRoleTermsOfUseXrefList = { + encode(message: ProjectRoleTermsOfUseXrefList, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + for (const v of message.terms) { + ProjectRoleTermsOfUseXref.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ProjectRoleTermsOfUseXrefList { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseProjectRoleTermsOfUseXrefList(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.terms.push(ProjectRoleTermsOfUseXref.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ProjectRoleTermsOfUseXrefList { + return { + terms: Array.isArray(object?.terms) ? object.terms.map((e: any) => ProjectRoleTermsOfUseXref.fromJSON(e)) : [], + }; + }, + + toJSON(message: ProjectRoleTermsOfUseXrefList): unknown { + const obj: any = {}; + if (message.terms) { + obj.terms = message.terms.map((e) => e ? ProjectRoleTermsOfUseXref.toJSON(e) : undefined); + } else { + obj.terms = []; + } + return obj; + }, + + create, I>>(base?: I): ProjectRoleTermsOfUseXrefList { + return ProjectRoleTermsOfUseXrefList.fromPartial(base ?? {}); + }, + + fromPartial, I>>( + object: I, + ): ProjectRoleTermsOfUseXrefList { + const message = createBaseProjectRoleTermsOfUseXrefList(); + message.terms = object.terms?.map((e) => ProjectRoleTermsOfUseXref.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseCreateProjectRoleTermsOfUseXrefInput(): CreateProjectRoleTermsOfUseXrefInput { + return { projectId: 0, resourceRoleId: 0, termsOfUseId: 0, sortOrder: undefined, groupInd: undefined }; +} + +export const CreateProjectRoleTermsOfUseXrefInput = { + encode(message: CreateProjectRoleTermsOfUseXrefInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int32(message.projectId); + } + if (message.resourceRoleId !== 0) { + writer.uint32(16).int32(message.resourceRoleId); + } + if (message.termsOfUseId !== 0) { + writer.uint32(24).int32(message.termsOfUseId); + } + if (message.sortOrder !== undefined) { + writer.uint32(32).int32(message.sortOrder); + } + if (message.groupInd !== undefined) { + writer.uint32(40).int32(message.groupInd); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): CreateProjectRoleTermsOfUseXrefInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseCreateProjectRoleTermsOfUseXrefInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = reader.int32(); + break; + case 2: + message.resourceRoleId = reader.int32(); + break; + case 3: + message.termsOfUseId = reader.int32(); + break; + case 4: + message.sortOrder = reader.int32(); + break; + case 5: + message.groupInd = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): CreateProjectRoleTermsOfUseXrefInput { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + resourceRoleId: isSet(object.resourceRoleId) ? Number(object.resourceRoleId) : 0, + termsOfUseId: isSet(object.termsOfUseId) ? Number(object.termsOfUseId) : 0, + sortOrder: isSet(object.sortOrder) ? Number(object.sortOrder) : undefined, + groupInd: isSet(object.groupInd) ? Number(object.groupInd) : undefined, + }; + }, + + toJSON(message: CreateProjectRoleTermsOfUseXrefInput): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.resourceRoleId !== undefined && (obj.resourceRoleId = Math.round(message.resourceRoleId)); + message.termsOfUseId !== undefined && (obj.termsOfUseId = Math.round(message.termsOfUseId)); + message.sortOrder !== undefined && (obj.sortOrder = Math.round(message.sortOrder)); + message.groupInd !== undefined && (obj.groupInd = Math.round(message.groupInd)); + return obj; + }, + + create, I>>( + base?: I, + ): CreateProjectRoleTermsOfUseXrefInput { + return CreateProjectRoleTermsOfUseXrefInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>( + object: I, + ): CreateProjectRoleTermsOfUseXrefInput { + const message = createBaseCreateProjectRoleTermsOfUseXrefInput(); + message.projectId = object.projectId ?? 0; + message.resourceRoleId = object.resourceRoleId ?? 0; + message.termsOfUseId = object.termsOfUseId ?? 0; + message.sortOrder = object.sortOrder ?? undefined; + message.groupInd = object.groupInd ?? undefined; + return message; + }, +}; + +function createBaseDeleteProjectRoleTermsOfUseXrefInput(): DeleteProjectRoleTermsOfUseXrefInput { + return { projectId: 0, resourceRoleId: 0, termsOfUseId: 0 }; +} + +export const DeleteProjectRoleTermsOfUseXrefInput = { + encode(message: DeleteProjectRoleTermsOfUseXrefInput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.projectId !== 0) { + writer.uint32(8).int32(message.projectId); + } + if (message.resourceRoleId !== 0) { + writer.uint32(16).int32(message.resourceRoleId); + } + if (message.termsOfUseId !== 0) { + writer.uint32(24).int32(message.termsOfUseId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteProjectRoleTermsOfUseXrefInput { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteProjectRoleTermsOfUseXrefInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.projectId = reader.int32(); + break; + case 2: + message.resourceRoleId = reader.int32(); + break; + case 3: + message.termsOfUseId = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): DeleteProjectRoleTermsOfUseXrefInput { + return { + projectId: isSet(object.projectId) ? Number(object.projectId) : 0, + resourceRoleId: isSet(object.resourceRoleId) ? Number(object.resourceRoleId) : 0, + termsOfUseId: isSet(object.termsOfUseId) ? Number(object.termsOfUseId) : 0, + }; + }, + + toJSON(message: DeleteProjectRoleTermsOfUseXrefInput): unknown { + const obj: any = {}; + message.projectId !== undefined && (obj.projectId = Math.round(message.projectId)); + message.resourceRoleId !== undefined && (obj.resourceRoleId = Math.round(message.resourceRoleId)); + message.termsOfUseId !== undefined && (obj.termsOfUseId = Math.round(message.termsOfUseId)); + return obj; + }, + + create, I>>( + base?: I, + ): DeleteProjectRoleTermsOfUseXrefInput { + return DeleteProjectRoleTermsOfUseXrefInput.fromPartial(base ?? {}); + }, + + fromPartial, I>>( + object: I, + ): DeleteProjectRoleTermsOfUseXrefInput { + const message = createBaseDeleteProjectRoleTermsOfUseXrefInput(); + message.projectId = object.projectId ?? 0; + message.resourceRoleId = object.resourceRoleId ?? 0; + message.termsOfUseId = object.termsOfUseId ?? 0; + return message; + }, +}; + +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 + : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> + : T extends { $case: string } ? { [K in keyof Omit]?: DeepPartial } & { $case: T["$case"] } + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +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 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 { + return value !== null && value !== undefined; +} diff --git a/src/models/domain-layer/legacy/user.ts b/src/models/domain-layer/legacy/user.ts new file mode 100644 index 0000000..6382d6b --- /dev/null +++ b/src/models/domain-layer/legacy/user.ts @@ -0,0 +1,186 @@ +/* eslint-disable */ +import Long from "long"; +import _m0 from "protobufjs/minimal"; + +export interface User { + userId: number; + firstName: string; + lastName: string; + createDate: number; + modifyDate: number; + handle: string; + status: string; + handleLower: string; +} + +function createBaseUser(): User { + return { + userId: 0, + firstName: "", + lastName: "", + createDate: 0, + modifyDate: 0, + handle: "", + status: "", + handleLower: "", + }; +} + +export const User = { + encode(message: User, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.userId !== 0) { + writer.uint32(8).int64(message.userId); + } + if (message.firstName !== "") { + writer.uint32(18).string(message.firstName); + } + if (message.lastName !== "") { + writer.uint32(26).string(message.lastName); + } + if (message.createDate !== 0) { + writer.uint32(32).int64(message.createDate); + } + if (message.modifyDate !== 0) { + writer.uint32(40).int64(message.modifyDate); + } + if (message.handle !== "") { + writer.uint32(50).string(message.handle); + } + if (message.status !== "") { + writer.uint32(66).string(message.status); + } + if (message.handleLower !== "") { + writer.uint32(90).string(message.handleLower); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): User { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUser(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.userId = longToNumber(reader.int64() as Long); + break; + case 2: + message.firstName = reader.string(); + break; + case 3: + message.lastName = reader.string(); + break; + case 4: + message.createDate = longToNumber(reader.int64() as Long); + break; + case 5: + message.modifyDate = longToNumber(reader.int64() as Long); + break; + case 6: + message.handle = reader.string(); + break; + case 8: + message.status = reader.string(); + break; + case 11: + message.handleLower = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): User { + return { + userId: isSet(object.userId) ? Number(object.userId) : 0, + firstName: isSet(object.firstName) ? String(object.firstName) : "", + lastName: isSet(object.lastName) ? String(object.lastName) : "", + createDate: isSet(object.createDate) ? Number(object.createDate) : 0, + modifyDate: isSet(object.modifyDate) ? Number(object.modifyDate) : 0, + handle: isSet(object.handle) ? String(object.handle) : "", + status: isSet(object.status) ? String(object.status) : "", + handleLower: isSet(object.handleLower) ? String(object.handleLower) : "", + }; + }, + + toJSON(message: User): unknown { + const obj: any = {}; + message.userId !== undefined && (obj.userId = Math.round(message.userId)); + message.firstName !== undefined && (obj.firstName = message.firstName); + message.lastName !== undefined && (obj.lastName = message.lastName); + message.createDate !== undefined && (obj.createDate = Math.round(message.createDate)); + message.modifyDate !== undefined && (obj.modifyDate = Math.round(message.modifyDate)); + message.handle !== undefined && (obj.handle = message.handle); + message.status !== undefined && (obj.status = message.status); + message.handleLower !== undefined && (obj.handleLower = message.handleLower); + return obj; + }, + + create, I>>(base?: I): User { + return User.fromPartial(base ?? {}); + }, + + fromPartial, I>>(object: I): User { + const message = createBaseUser(); + message.userId = object.userId ?? 0; + message.firstName = object.firstName ?? ""; + message.lastName = object.lastName ?? ""; + message.createDate = object.createDate ?? 0; + message.modifyDate = object.modifyDate ?? 0; + message.handle = object.handle ?? ""; + message.status = object.status ?? ""; + message.handleLower = object.handleLower ?? ""; + return message; + }, +}; + +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 + : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> + : T extends { $case: string } ? { [K in keyof Omit]?: DeepPartial } & { $case: T["$case"] } + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +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 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 { + return value !== null && value !== undefined; +} diff --git a/src/schema/contest_eligibility/ContestEligibility.ts b/src/schema/contest_eligibility/ContestEligibility.ts new file mode 100644 index 0000000..6ea7063 --- /dev/null +++ b/src/schema/contest_eligibility/ContestEligibility.ts @@ -0,0 +1,12 @@ +import { ColumnType, Schema } from "@topcoder-framework/client-relational"; +import { ContestEligibility } from "../../models/domain-layer/legacy/group_contest_eligibility"; + +export const ContestEligibilitySchema: Schema = { + dbSchema: "tcs_catalog", + tableName: "contest_eligibility", + columns: { + contestEligibilityId: { name: "contest_eligibility_id", type: ColumnType.COLUMN_TYPE_INT }, + contestId: { name: "contest_id", type: ColumnType.COLUMN_TYPE_INT }, + isStudio: { name: "is_studio", type: ColumnType.COLUMN_TYPE_INT }, + }, +}; diff --git a/src/schema/contest_eligibility/GroupContestEligibility.ts b/src/schema/contest_eligibility/GroupContestEligibility.ts new file mode 100644 index 0000000..76ee553 --- /dev/null +++ b/src/schema/contest_eligibility/GroupContestEligibility.ts @@ -0,0 +1,11 @@ +import { ColumnType, Schema } from "@topcoder-framework/client-relational"; +import { GroupContestEligibility } from "../../models/domain-layer/legacy/group_contest_eligibility"; + +export const GroupContestEligibilitySchema: Schema = { + dbSchema: "tcs_catalog", + tableName: "group_contest_eligibility", + columns: { + contestEligibilityId: { name: "contest_eligibility_id", type: ColumnType.COLUMN_TYPE_INT }, + groupId: { name: "group_id", type: ColumnType.COLUMN_TYPE_INT }, + }, +}; diff --git a/src/schema/member/User.ts b/src/schema/member/User.ts new file mode 100644 index 0000000..3480721 --- /dev/null +++ b/src/schema/member/User.ts @@ -0,0 +1,17 @@ +import { ColumnType, Schema } from "@topcoder-framework/client-relational"; +import { User } from "../../models/domain-layer/legacy/user"; + +export const UserSchema: Schema = { + dbSchema: "tcs_catalog", + tableName: "notification", + columns: { + userId: { name: "user_id", type: ColumnType.COLUMN_TYPE_INT }, + firstName: { name: "first_name", type: ColumnType.COLUMN_TYPE_STRING }, + lastName: { name: "last_name", type: ColumnType.COLUMN_TYPE_STRING }, + handle: { name: "handle", type: ColumnType.COLUMN_TYPE_STRING }, + status: { name: "status", type: ColumnType.COLUMN_TYPE_STRING }, + handleLower: { name: "handle_lower", type: ColumnType.COLUMN_TYPE_STRING }, + createDate: { name: "create_date", type: ColumnType.COLUMN_TYPE_DATETIME }, + modifyDate: { name: "modify_date", type: ColumnType.COLUMN_TYPE_DATETIME }, + }, +}; diff --git a/src/schema/project/Notification.ts b/src/schema/project/Notification.ts new file mode 100644 index 0000000..87ace0e --- /dev/null +++ b/src/schema/project/Notification.ts @@ -0,0 +1,14 @@ +import { ColumnType, Schema } from "@topcoder-framework/client-relational"; +import { Notification } from "../../models/domain-layer/legacy/notification"; +import { AuditColumns } from "../common/AuditColumns"; + +export const NotificationSchema: Schema = { + dbSchema: "tcs_catalog", + tableName: "notification", + columns: { + projectId: { name: "project_id", type: ColumnType.COLUMN_TYPE_INT }, + notificationTypeId: { name: "notification_type_id", type: ColumnType.COLUMN_TYPE_INT }, + externalRefId: { name: "external_ref_id", type: ColumnType.COLUMN_TYPE_INT }, + ...AuditColumns, + }, +}; diff --git a/src/schema/project/PhaseCriteria.ts b/src/schema/project/PhaseCriteria.ts new file mode 100644 index 0000000..8ab010f --- /dev/null +++ b/src/schema/project/PhaseCriteria.ts @@ -0,0 +1,14 @@ +import { ColumnType, Schema } from "@topcoder-framework/client-relational"; +import { PhaseCriteria } from "../../models/domain-layer/legacy/phase"; +import { AuditColumns } from "../common/AuditColumns"; + +export const PhaseCriteriaSchema: Schema = { + dbSchema: "tcs_catalog", + tableName: "phase_criteria", + columns: { + projectPhaseId: { name: "project_phase_id", type: ColumnType.COLUMN_TYPE_INT }, + phaseCriteriaTypeId: { name: "phase_criteria_type_id", type: ColumnType.COLUMN_TYPE_INT }, + parameter: { name: "parameter", type: ColumnType.COLUMN_TYPE_STRING }, + ...AuditColumns, + }, +}; diff --git a/src/schema/project/PhaseDependency.ts b/src/schema/project/PhaseDependency.ts new file mode 100644 index 0000000..087d030 --- /dev/null +++ b/src/schema/project/PhaseDependency.ts @@ -0,0 +1,15 @@ +import { ColumnType, Schema } from "@topcoder-framework/client-relational"; +import { PhaseDependency } from "../../models/domain-layer/legacy/phase"; +import { AuditColumns } from "../common/AuditColumns"; + +export const PhaseDependencySchema: Schema = { + dbSchema: "tcs_catalog", + tableName: "phase_dependency", + columns: { + dependentPhaseId: { name: "dependent_phase_id", type: ColumnType.COLUMN_TYPE_INT }, + dependencyStart: { name: "dependency_start", type: ColumnType.COLUMN_TYPE_INT }, + dependentStart: { name: "dependent_start", type: ColumnType.COLUMN_TYPE_INT }, + lagTime: { name: "lag_time", type: ColumnType.COLUMN_TYPE_INT }, + ...AuditColumns, + }, +}; diff --git a/src/schema/project/Project.ts b/src/schema/project/Project.ts index 8a6c8c1..c92a1b5 100644 --- a/src/schema/project/Project.ts +++ b/src/schema/project/Project.ts @@ -6,7 +6,7 @@ export const ProjectSchema: Schema = { dbSchema: "tcs_catalog", tableName: "project", idSequence: "project_id_seq", - idColumn: "projectId", + idColumn: "project_id", idTable: "project", columns: { projectId: { name: "project_id", type: ColumnType.COLUMN_TYPE_INT }, diff --git a/src/schema/project/ProjectInfo.ts b/src/schema/project/ProjectInfo.ts new file mode 100644 index 0000000..43c71d9 --- /dev/null +++ b/src/schema/project/ProjectInfo.ts @@ -0,0 +1,14 @@ +import { ColumnType, Schema } from "@topcoder-framework/client-relational"; +import { ProjectInfo } from "../../models/domain-layer/legacy/project_info"; +import { AuditColumns } from "../common/AuditColumns"; + +export const ProjectInfoSchema: Schema = { + dbSchema: "tcs_catalog", + tableName: "project_info", + columns: { + projectId: { name: "project_id", type: ColumnType.COLUMN_TYPE_INT }, + projectInfoTypeId: { name: "project_info_type_id", type: ColumnType.COLUMN_TYPE_INT }, + value: { name: "value", type: ColumnType.COLUMN_TYPE_STRING }, + ...AuditColumns, + }, +}; diff --git a/src/schema/project/ProjectInfoType.ts b/src/schema/project/ProjectInfoType.ts index e69de29..824cd05 100644 --- a/src/schema/project/ProjectInfoType.ts +++ b/src/schema/project/ProjectInfoType.ts @@ -0,0 +1,14 @@ +import { ColumnType, Schema } from "@topcoder-framework/client-relational"; +import { ProjectInfoType } from "../../models/domain-layer/legacy/project_info"; +import { AuditColumns } from "../common/AuditColumns"; + +export const ProjectInfoTypeSchema: Schema = { + dbSchema: "tcs_catalog", + tableName: "project_info_type_lu", + columns: { + projectInfoTypeId: { name: "project_info_type_id", type: ColumnType.COLUMN_TYPE_INT }, + name: { name: "name", type: ColumnType.COLUMN_TYPE_STRING }, + description: { name: "description", type: ColumnType.COLUMN_TYPE_STRING }, + ...AuditColumns, + }, +}; diff --git a/src/schema/project/Review.ts b/src/schema/project/Review.ts new file mode 100644 index 0000000..02d1d78 --- /dev/null +++ b/src/schema/project/Review.ts @@ -0,0 +1,22 @@ +import { ColumnType, Schema } from "@topcoder-framework/client-relational"; +import { Review } from "../../models/domain-layer/legacy/review"; +import { AuditColumns } from "../common/AuditColumns"; + +export const ReviewSchema: Schema = { + dbSchema: "tcs_catalog", + tableName: "review", + idColumn: "review_id", + idSequence: "review_id_seq", + idTable: "review", + columns: { + reviewId: { name: "review_id", type: ColumnType.COLUMN_TYPE_INT }, + resourceId: { name: "resource_id", type: ColumnType.COLUMN_TYPE_INT }, + submissionId: { name: "submission_id", type: ColumnType.COLUMN_TYPE_INT }, + projectPhaseId: { name: "project_phase_id", type: ColumnType.COLUMN_TYPE_INT }, + scorecardId: { name: "scorecard_id", type: ColumnType.COLUMN_TYPE_INT }, + committed: { name: "committed", type: ColumnType.COLUMN_TYPE_INT }, + score: { name: "score", type: ColumnType.COLUMN_TYPE_FLOAT }, + initialScore: { name: "initial_score", type: ColumnType.COLUMN_TYPE_FLOAT }, + ...AuditColumns, + }, +}; diff --git a/src/schema/project/ReviewComment.ts b/src/schema/project/ReviewComment.ts new file mode 100644 index 0000000..5db2637 --- /dev/null +++ b/src/schema/project/ReviewComment.ts @@ -0,0 +1,19 @@ +import { ColumnType, Schema } from "@topcoder-framework/client-relational"; +import { ReviewComment } from "../../models/domain-layer/legacy/review"; +import { AuditColumns } from "../common/AuditColumns"; + +export const ReviewCommentSchema: Schema = { + dbSchema: "tcs_catalog", + tableName: "review_comment", + idColumn: "review_comment_id", + idSequence: "review_comment_id_seq", + idTable: "review_comment", + columns: { + reviewCommentId: { name: "review_comment_id", type: ColumnType.COLUMN_TYPE_INT }, + reviewId: { name: "review_id", type: ColumnType.COLUMN_TYPE_INT }, + resourceId: { name: "resource_id", type: ColumnType.COLUMN_TYPE_INT }, + commentTypeId: { name: "comment_type_id", type: ColumnType.COLUMN_TYPE_INT }, + content: { name: "content", type: ColumnType.COLUMN_TYPE_STRING }, + ...AuditColumns, + }, +}; diff --git a/src/schema/project/ReviewItem.ts b/src/schema/project/ReviewItem.ts new file mode 100644 index 0000000..17e2554 --- /dev/null +++ b/src/schema/project/ReviewItem.ts @@ -0,0 +1,20 @@ +import { ColumnType, Schema } from "@topcoder-framework/client-relational"; +import { ReviewItem } from "../../models/domain-layer/legacy/review"; +import { AuditColumns } from "../common/AuditColumns"; + +export const ReviewItemSchema: Schema = { + dbSchema: "tcs_catalog", + tableName: "review_item", + idColumn: "review_item_id", + idSequence: "review_item_id_seq", + idTable: "review_item", + columns: { + reviewItemId: { name: "review_item_id", type: ColumnType.COLUMN_TYPE_INT }, + reviewId: { name: "review_id", type: ColumnType.COLUMN_TYPE_INT }, + scorecardQuestionId: { name: "scorecard_question_id", type: ColumnType.COLUMN_TYPE_INT }, + uploadId: { name: "upload_id", type: ColumnType.COLUMN_TYPE_INT }, + sort: { name: "sort", type: ColumnType.COLUMN_TYPE_INT }, + answer: { name: "committed", type: ColumnType.COLUMN_TYPE_STRING }, + ...AuditColumns, + }, +}; diff --git a/src/schema/project/ReviewItemComment.ts b/src/schema/project/ReviewItemComment.ts new file mode 100644 index 0000000..15cbba9 --- /dev/null +++ b/src/schema/project/ReviewItemComment.ts @@ -0,0 +1,20 @@ +import { ColumnType, Schema } from "@topcoder-framework/client-relational"; +import { ReviewItemComment } from "../../models/domain-layer/legacy/review"; +import { AuditColumns } from "../common/AuditColumns"; + +export const ReviewItemCommentSchema: Schema = { + dbSchema: "tcs_catalog", + tableName: "review_item_comment", + idColumn: "review_item_comment_id", + idSequence: "review_item_comment_id_seq", + idTable: "review_item_comment", + columns: { + reviewItemCommentId: { name: "review_item_comment_id", type: ColumnType.COLUMN_TYPE_INT }, + reviewItemId: { name: "review_item_id", type: ColumnType.COLUMN_TYPE_INT }, + resourceId: { name: "resource_id", type: ColumnType.COLUMN_TYPE_INT }, + commentTypeId: { name: "comment_type_id", type: ColumnType.COLUMN_TYPE_INT }, + content: { name: "content", type: ColumnType.COLUMN_TYPE_STRING }, + sort: { name: "sort", type: ColumnType.COLUMN_TYPE_INT }, + ...AuditColumns, + }, +}; diff --git a/src/schema/project/ScorecardGroup.ts b/src/schema/project/ScorecardGroup.ts new file mode 100644 index 0000000..7ac639a --- /dev/null +++ b/src/schema/project/ScorecardGroup.ts @@ -0,0 +1,17 @@ +import { ColumnType, Schema } from "@topcoder-framework/client-relational"; +import { ScorecardGroup } from "../../models/domain-layer/legacy/review"; +import { AuditColumns } from "../common/AuditColumns"; + +export const ScorecardGroupSchema: Schema = { + dbSchema: "tcs_catalog", + tableName: "scorecard_group", + columns: { + scorecardGroupId: { name: "scorecard_group_id", type: ColumnType.COLUMN_TYPE_INT }, + name: { name: "name", type: ColumnType.COLUMN_TYPE_STRING }, + scorecardId: { name: "scorecard_id", type: ColumnType.COLUMN_TYPE_INT }, + weight: { name: "weight", type: ColumnType.COLUMN_TYPE_FLOAT }, + sort: { name: "sort", type: ColumnType.COLUMN_TYPE_INT }, + version: { name: "version", type: ColumnType.COLUMN_TYPE_INT }, + ...AuditColumns, + }, +}; diff --git a/src/schema/project/ScorecardSection.ts b/src/schema/project/ScorecardSection.ts new file mode 100644 index 0000000..d924127 --- /dev/null +++ b/src/schema/project/ScorecardSection.ts @@ -0,0 +1,17 @@ +import { ColumnType, Schema } from "@topcoder-framework/client-relational"; +import { ScorecardSection } from "../../models/domain-layer/legacy/review"; +import { AuditColumns } from "../common/AuditColumns"; + +export const ScorecardSectionSchema: Schema = { + dbSchema: "tcs_catalog", + tableName: "scorecard_section", + columns: { + scorecardSectionId: { name: "scorecard_section_id", type: ColumnType.COLUMN_TYPE_INT }, + name: { name: "name", type: ColumnType.COLUMN_TYPE_STRING }, + scorecardGroupId: { name: "scorecard_id", type: ColumnType.COLUMN_TYPE_INT }, + weight: { name: "weight", type: ColumnType.COLUMN_TYPE_FLOAT }, + sort: { name: "sort", type: ColumnType.COLUMN_TYPE_INT }, + version: { name: "version", type: ColumnType.COLUMN_TYPE_INT }, + ...AuditColumns, + }, +}; diff --git a/src/schema/project/Submission.ts b/src/schema/project/Submission.ts new file mode 100644 index 0000000..15dec00 --- /dev/null +++ b/src/schema/project/Submission.ts @@ -0,0 +1,22 @@ +import { ColumnType, Schema } from "@topcoder-framework/client-relational"; +import { Submission } from "../../models/domain-layer/legacy/review"; +import { AuditColumns } from "../common/AuditColumns"; + +export const SubmissionSchema: Schema = { + dbSchema: "tcs_catalog", + tableName: "submission", + idColumn: "submission_id", + idSequence: "submission_id_seq", + idTable: "submission", + columns: { + submissionId: { name: "submission_id", type: ColumnType.COLUMN_TYPE_INT }, + uploadId: { name: "upload_id", type: ColumnType.COLUMN_TYPE_INT }, + initialScore: { name: "initial_score", type: ColumnType.COLUMN_TYPE_INT }, + finalScore: { name: "final_score", type: ColumnType.COLUMN_TYPE_INT }, + placement: { name: "placement", type: ColumnType.COLUMN_TYPE_INT }, + prizeId: { name: "prize_id", type: ColumnType.COLUMN_TYPE_INT }, + submissionStatusId: { name: "submission_status_id", type: ColumnType.COLUMN_TYPE_INT }, + submissionTypeId: { name: "submission_type_id", type: ColumnType.COLUMN_TYPE_INT }, + ...AuditColumns, + }, +}; diff --git a/src/schema/project/Upload.ts b/src/schema/project/Upload.ts new file mode 100644 index 0000000..985c473 --- /dev/null +++ b/src/schema/project/Upload.ts @@ -0,0 +1,16 @@ +import { ColumnType, Schema } from "@topcoder-framework/client-relational"; +import { Upload } from "../../models/domain-layer/legacy/review"; +import { AuditColumns } from "../common/AuditColumns"; + +export const UploadSchema: Schema = { + dbSchema: "tcs_catalog", + tableName: "upload", + columns: { + projectId: { name: "project_id", type: ColumnType.COLUMN_TYPE_INT }, + uploadStatusId: { name: "upload_status_id", type: ColumnType.COLUMN_TYPE_INT }, + uploadId: { name: "upload_id", type: ColumnType.COLUMN_TYPE_INT }, + resourceRoleId: { name: "resource_role_id", type: ColumnType.COLUMN_TYPE_INT }, + resourceId: { name: "resource_id", type: ColumnType.COLUMN_TYPE_INT }, + ...AuditColumns, + }, +}; diff --git a/src/schema/project_payment/ProjectPayment.ts b/src/schema/project_payment/ProjectPayment.ts index 27fff16..f49d76b 100644 --- a/src/schema/project_payment/ProjectPayment.ts +++ b/src/schema/project_payment/ProjectPayment.ts @@ -6,11 +6,12 @@ export const ProjectPaymentSchema: Schema = { dbSchema: "tcs_catalog", tableName: "project_payment", columns: { - place: { name: "place", type: ColumnType.COLUMN_TYPE_INT }, - prizeId: { name: "prize_id", type: ColumnType.COLUMN_TYPE_INT }, - projectId: { name: "project_id", type: ColumnType.COLUMN_TYPE_INT }, - prizeTypeId: { name: "prize_type_id", type: ColumnType.COLUMN_TYPE_INT }, - prizeAmount: { name: "prize_amount", type: ColumnType.COLUMN_TYPE_FLOAT }, + projectPaymentId: { name: "project_payment_id", type: ColumnType.COLUMN_TYPE_INT }, + projectPaymentTypeId: { name: "project_payment_type_id", type: ColumnType.COLUMN_TYPE_INT }, + resourceId: { name: "resource_id", type: ColumnType.COLUMN_TYPE_INT }, + submissionId: { name: "submission_id", type: ColumnType.COLUMN_TYPE_INT }, + pactsPaymentId: { name: "pacts_payment_id", type: ColumnType.COLUMN_TYPE_INT }, + amount: { name: "amount", type: ColumnType.COLUMN_TYPE_FLOAT }, ...AuditColumns, }, }; diff --git a/src/schema/resource/Resource.ts b/src/schema/resource/Resource.ts index baf5c43..70b425a 100644 --- a/src/schema/resource/Resource.ts +++ b/src/schema/resource/Resource.ts @@ -5,6 +5,9 @@ import { AuditColumns } from "../common/AuditColumns"; export const ResourceSchema: Schema = { dbSchema: "tcs_catalog", tableName: "resource", + idColumn: "resource_id", + idSequence: "resource_id_seq", + idTable: "resource", columns: { resourceId: { name: "resource_id", type: ColumnType.COLUMN_TYPE_INT }, resourceRoleId: { name: "resource_role_id", type: ColumnType.COLUMN_TYPE_INT }, diff --git a/src/schema/resource/ResourceInfo.ts b/src/schema/resource/ResourceInfo.ts index 99b54d2..5898758 100644 --- a/src/schema/resource/ResourceInfo.ts +++ b/src/schema/resource/ResourceInfo.ts @@ -1,8 +1,8 @@ import { ColumnType, Schema } from "@topcoder-framework/client-relational"; -import { ResourceInfo } from "../../models/domain-layer/legacy/resource_info"; +import { ResourceInfo } from "../../models/domain-layer/legacy/resource"; import { AuditColumns } from "../common/AuditColumns"; -export const ResourcInfoSchema: Schema = { +export const ResourceInfoSchema: Schema = { dbSchema: "tcs_catalog", tableName: "resource_info", columns: { diff --git a/src/schema/terms/Term.ts b/src/schema/terms/Term.ts new file mode 100644 index 0000000..3721dae --- /dev/null +++ b/src/schema/terms/Term.ts @@ -0,0 +1,17 @@ +import { ColumnType, Schema } from "@topcoder-framework/client-relational"; +import { ProjectRoleTermsOfUseXref } from "../../models/domain-layer/legacy/term"; +import { AuditColumns } from "../common/AuditColumns"; + +export const ProjectRoleTermsOfUseXrefSchema: Schema = { + dbSchema: "tcs_catalog", + tableName: "project_role_terms_of_use_xref", + columns: { + resourceRoleId: { name: "resource_role_id", type: ColumnType.COLUMN_TYPE_INT }, + projectId: { name: "project_id", type: ColumnType.COLUMN_TYPE_INT }, + termsOfUseId: { name: "terms_of_use_id", type: ColumnType.COLUMN_TYPE_INT }, + sortOrder: { name: "sort_order", type: ColumnType.COLUMN_TYPE_INT }, + groupInd: { name: "group_ind", type: ColumnType.COLUMN_TYPE_INT }, + createDate: AuditColumns.createDate, + modifyDate: AuditColumns.modifyDate, + }, +}; diff --git a/src/server.ts b/src/server.ts index 648f1a2..ef0a1ae 100644 --- a/src/server.ts +++ b/src/server.ts @@ -1,5 +1,5 @@ -import "source-map-support/register"; import * as dotenv from "dotenv"; +import "source-map-support/register"; dotenv.config(); @@ -10,11 +10,25 @@ import { addReflection } from "grpc-server-reflection"; import { LegacyChallengeServer, LegacyChallengeService } from "./service/LegacyChallenge"; import { - LegacyChallengePhaseService, LegacyChallengePhaseServer, + LegacyChallengePhaseService, } from "./service/LegacyChallengePhase"; -import { PrizeServiceService, PrizeServer } from "./service/Prize"; +import { + LegacyGroupContestEligibilityServer, + LegacyGroupContestEligibilityService, +} from "./service/GroupContestEligibility"; +import { + LegacyChallengePaymentServer, + LegacyChallengePaymentService, +} from "./service/LegacyChallengePayment"; +import { LegacyPhaseServer, LegacyPhaseService } from "./service/LegacyPhase"; +import { LegacyPrizeServer, LegacyPrizeServiceService } from "./service/LegacyPrize"; +import { LegacyNotificationServer, LegacyNotificationService } from "./service/Notification"; +import { LegacyProjectInfoServer, LegacyProjectInfoService } from "./service/ProjectInfo"; +import { LegacyResourceServer, LegacyResourceService } from "./service/Resource"; +import { LegacyReviewServer, LegacyReviewService } from "./service/Review"; +import { LegacyTermServer, LegacyTermService } from "./service/Term"; const { GRPC_SERVER_HOST = "", GRPC_SERVER_PORT = 9091 } = process.env; @@ -29,7 +43,15 @@ if (process.env.ENV === "local") { server.addService(LegacyChallengeService, new LegacyChallengeServer()); server.addService(LegacyChallengePhaseService, new LegacyChallengePhaseServer()); -server.addService(PrizeServiceService, new PrizeServer()); +server.addService(LegacyProjectInfoService, new LegacyProjectInfoServer()); +server.addService(LegacyTermService, new LegacyTermServer()); +server.addService(LegacyReviewService, new LegacyReviewServer()); +server.addService(LegacyPhaseService, new LegacyPhaseServer()); +server.addService(LegacyNotificationService, new LegacyNotificationServer()); +server.addService(LegacyResourceService, new LegacyResourceServer()); +server.addService(LegacyGroupContestEligibilityService, new LegacyGroupContestEligibilityServer()); +server.addService(LegacyChallengePaymentService, new LegacyChallengePaymentServer()); +server.addService(LegacyPrizeServiceService, new LegacyPrizeServer()); server.bindAsync( `${GRPC_SERVER_HOST}:${GRPC_SERVER_PORT}`, diff --git a/src/service/GroupContestEligibility.ts b/src/service/GroupContestEligibility.ts new file mode 100644 index 0000000..a03468c --- /dev/null +++ b/src/service/GroupContestEligibility.ts @@ -0,0 +1,85 @@ +import { handleUnaryCall, sendUnaryData, ServerUnaryCall, UntypedHandleCall } from "@grpc/grpc-js"; + +import { + LegacyGroupContestEligibilityServer, + LegacyGroupContestEligibilityService, +} from "../models/domain-layer/legacy/services/group_contest_eligibility"; + +import { Empty } from "@topcoder-framework/lib-common"; +import LegacyGroupContestEligibilityDomain from "../domain/GroupContestEligibility"; +import { + ContestEligibility, + ContestEligibilityList, + DeleteContestEligibilityInput, + DeleteGroupContestEligibilityInput, + GetContestEligibilityInput, + GetGroupContestEligibilityInput, + GroupContestEligibility, + GroupContestEligibilityList, +} from "../models/domain-layer/legacy/group_contest_eligibility"; + +class LegacyGroupContestEligibilityServerImpl implements LegacyGroupContestEligibilityServer { + [name: string]: UntypedHandleCall; + + getContestEligibilities: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyGroupContestEligibilityDomain.getContestEligibilities(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + createContestEligibility: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyGroupContestEligibilityDomain.createContestEligibility(call.request) + .then((response) => callback(null)) + .catch((err) => callback(err, null)); + }; + + getGroupContestEligibilities: handleUnaryCall< + GetGroupContestEligibilityInput, + GroupContestEligibilityList + > = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyGroupContestEligibilityDomain.getGroupContestEligibilities(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + createGroupContestEligibility: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyGroupContestEligibilityDomain.createGroupContestEligibility(call.request) + .then((response) => callback(null)) + .catch((err) => callback(err, null)); + }; + + deleteContestEligibility: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyGroupContestEligibilityDomain.deleteContestEligibility(call.request) + .then((response) => callback(null)) + .catch((err) => callback(err, null)); + }; + + deleteGroupContestEligibility: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyGroupContestEligibilityDomain.deleteGroupContestEligibility(call.request) + .then((response) => callback(null)) + .catch((err) => callback(err, null)); + }; +} + +export { + LegacyGroupContestEligibilityServerImpl as LegacyGroupContestEligibilityServer, + LegacyGroupContestEligibilityService, +}; diff --git a/src/service/LegacyChallenge.ts b/src/service/LegacyChallenge.ts index 5ce39ef..5be6008 100644 --- a/src/service/LegacyChallenge.ts +++ b/src/service/LegacyChallenge.ts @@ -1,10 +1,11 @@ import { handleUnaryCall, sendUnaryData, ServerUnaryCall, UntypedHandleCall } from "@grpc/grpc-js"; import { - CheckChallengeExistsResponse, - CreateChallengeInput, + CloseChallengeInput, + LegacyChallenge, LegacyChallengeId, LegacyChallengeList, + UpdateChallengeInput, } from "../models/domain-layer/legacy/challenge"; import { @@ -12,25 +13,40 @@ import { LegacyChallengeService, } from "../models/domain-layer/legacy/services/challenge"; -import { CreateResult, LookupCriteria } from "@topcoder-framework/lib-common"; +import { + CheckExistsResult, + CreateResult, + LookupCriteria, + UpdateResult, +} from "@topcoder-framework/lib-common"; import LegacyChallengeDomain from "../domain/LegacyChallenge"; class LegacyChallengeServerImpl implements LegacyChallengeServer { - create: handleUnaryCall = ( - call: ServerUnaryCall, + [name: string]: UntypedHandleCall; + + create: handleUnaryCall = ( + call: ServerUnaryCall, callback: sendUnaryData ) => { - // LegacyChallengeDomain.create(call.request) - // .then((response) => callback(null, response)) - // .catch((err) => callback(err, null)); + LegacyChallengeDomain.create(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); }; - [name: string]: UntypedHandleCall; - checkChallengeExists: handleUnaryCall = ( - call: ServerUnaryCall, - callback: sendUnaryData + checkExists: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData ) => { - LegacyChallengeDomain.checkChallengeExists(call.request.legacyChallengeId) + LegacyChallengeDomain.checkExists(call.request.legacyChallengeId) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + get: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyChallengeDomain.getLegacyChallenge(call.request) .then((response) => callback(null, response)) .catch((err) => callback(err, null)); }; @@ -38,7 +54,36 @@ class LegacyChallengeServerImpl implements LegacyChallengeServer { lookup: handleUnaryCall = ( call: ServerUnaryCall, callback: sendUnaryData - ) => {}; + ) => { + // TODO: Implement lookup + }; + + update: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyChallengeDomain.update(call.request) + .then((response) => callback(null)) + .catch((err) => callback(err, null)); + }; + + activate: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyChallengeDomain.activateChallenge(call.request) + .then((response) => callback(null)) + .catch((err) => callback(err, null)); + }; + + closeChallenge: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyChallengeDomain.closeChallenge(call.request) + .then((response) => callback(null)) + .catch((err) => callback(err, null)); + }; } export { LegacyChallengeServerImpl as LegacyChallengeServer, LegacyChallengeService }; diff --git a/src/service/LegacyChallengePayment.ts b/src/service/LegacyChallengePayment.ts new file mode 100644 index 0000000..f28fa4b --- /dev/null +++ b/src/service/LegacyChallengePayment.ts @@ -0,0 +1,61 @@ +import { handleUnaryCall, sendUnaryData, ServerUnaryCall, UntypedHandleCall } from "@grpc/grpc-js"; + +import { + LegacyChallengePaymentServer, + LegacyChallengePaymentService, +} from "../models/domain-layer/legacy/services/challenge_payment"; + +import { CreateResult, Empty, UpdateResult } from "@topcoder-framework/lib-common"; +import LegacyPaymentDomain from "../domain/LegacyChallengePayment"; +import { + CreateLegacyChallengePaymentInput, + DeleteLegacyChallengePaymentInput, + GetLegacyChallengePaymentInput, + LegacyChallengePaymentList, + UpdateLegacyChallengePaymentInput, +} from "../models/domain-layer/legacy/challenge_payment"; + +class LegacyChallengePaymentServerImpl implements LegacyChallengePaymentServer { + [name: string]: UntypedHandleCall; + + get: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyPaymentDomain.getProjectPayments(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + create: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyPaymentDomain.createProjectPayment(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + update: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyPaymentDomain.updateProjectPayment(call.request) + .then((response) => callback(null)) + .catch((err) => callback(err, null)); + }; + + delete: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyPaymentDomain.deleteProjectPayment(call.request) + .then((response) => callback(null)) + .catch((err) => callback(err, null)); + }; +} + +export { + LegacyChallengePaymentServerImpl as LegacyChallengePaymentServer, + LegacyChallengePaymentService, +}; diff --git a/src/service/LegacyChallengePhase.ts b/src/service/LegacyChallengePhase.ts index 33d99af..14a224b 100644 --- a/src/service/LegacyChallengePhase.ts +++ b/src/service/LegacyChallengePhase.ts @@ -7,8 +7,8 @@ import { LegacyChallengePhaseService, } from "../models/domain-layer/legacy/services/challenge_phase"; -import LegacyChallengePhaseDomain from "../domain/LegacyChallengePhase"; import { CreateResult, Empty } from "@topcoder-framework/lib-common"; +import LegacyChallengePhaseDomain from "../domain/LegacyChallengePhase"; class LegacyChallengePhaseServerImpl implements LegacyChallengePhaseServer { [name: string]: UntypedHandleCall; diff --git a/src/service/LegacyPhase.ts b/src/service/LegacyPhase.ts new file mode 100644 index 0000000..bf62057 --- /dev/null +++ b/src/service/LegacyPhase.ts @@ -0,0 +1,109 @@ +import { handleUnaryCall, sendUnaryData, ServerUnaryCall, UntypedHandleCall } from "@grpc/grpc-js"; + +import { + LegacyPhaseServer, + LegacyPhaseService, +} from "../models/domain-layer/legacy/services/phase"; + +import { CreateResult, Empty } from "@topcoder-framework/lib-common"; +import LegacyPhaseDomain from "../domain/LegacyPhase"; +import { + PhaseCriteriaList, + CreatePhaseCriteriaInput, + DeletePhaseCriteriaInput, + PhaseTypeList, + GetProjectPhasesInput, + ProjectPhaseList, + DeleteProjectPhasesInput, + CreateProjectPhaseInput, + ProjectPhase, + UpdateProjectPhaseInput, + CreatePhaseDependencyInput, + GetPhaseCriteriaInput, +} from "../models/domain-layer/legacy/phase"; + +class LegacyPhaseServerImpl implements LegacyPhaseServer { + [name: string]: UntypedHandleCall; + getPhaseCriteria: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyPhaseDomain.getPhaseCriteria(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + createPhaseCriteria: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyPhaseDomain.createPhaseCriteria(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + deletePhaseCriteria: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyPhaseDomain.deletePhaseCriteria(call.request) + .then((response) => callback(null)) + .catch((err) => callback(err, null)); + }; + + getPhaseTypes: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyPhaseDomain.getPhaseTypes() + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + getProjectPhases: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyPhaseDomain.getProjectPhases(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + deleteProjectPhases: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyPhaseDomain.deleteProjectPhases(call.request) + .then((response) => callback(null)) + .catch((err) => callback(err, null)); + }; + + createProjectPhase: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyPhaseDomain.createProjectPhase(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + updateProjectPhase: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyPhaseDomain.updateProjectPhase(call.request) + .then((response) => callback(null)) + .catch((err) => callback(err, null)); + }; + + createPhaseDependency: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyPhaseDomain.createPhaseDependency(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; +} + +export { LegacyPhaseServerImpl as LegacyPhaseServer, LegacyPhaseService }; diff --git a/src/service/Prize.ts b/src/service/LegacyPrize.ts similarity index 66% rename from src/service/Prize.ts rename to src/service/LegacyPrize.ts index 4ebb327..71d8e8e 100644 --- a/src/service/Prize.ts +++ b/src/service/LegacyPrize.ts @@ -1,21 +1,23 @@ import { handleUnaryCall, sendUnaryData, ServerUnaryCall, UntypedHandleCall } from "@grpc/grpc-js"; -import { CreateResult, ScanCriteria, Empty, UpdateResult } from "@topcoder-framework/lib-common"; +import { CreateResult, Empty, ScanRequest, UpdateResult } from "@topcoder-framework/lib-common"; import { CreatePrizeInput, - UpdatePrizeInput, + DeletePrizeInput, PrizeList, PrizeTypeList, + UpdatePrizeInput, } from "../models/domain-layer/legacy/prize"; import { - PrizeServiceServer, - PrizeServiceService, + LegacyPrizeServiceServer, + LegacyPrizeServiceService, } from "../models/domain-layer/legacy/services/prize"; import PrizeDomain from "../domain/Prize"; -class PrizeServerImpl implements PrizeServiceServer { +class LegacyPrizeServerImpl implements LegacyPrizeServiceServer { [name: string]: UntypedHandleCall; + create: handleUnaryCall = ( call: ServerUnaryCall, callback: sendUnaryData @@ -29,8 +31,8 @@ class PrizeServerImpl implements PrizeServiceServer { }); }; - scan: handleUnaryCall = ( - call: ServerUnaryCall, + scan: handleUnaryCall = ( + call: ServerUnaryCall, callback: sendUnaryData ) => { PrizeDomain.scan(call.request) @@ -41,7 +43,9 @@ class PrizeServerImpl implements PrizeServiceServer { getPrizeTypes: handleUnaryCall = ( call: ServerUnaryCall, callback: sendUnaryData - ) => {}; + ) => { + // TODO: intentionally not implemented + }; update: handleUnaryCall = ( call: ServerUnaryCall, @@ -51,6 +55,13 @@ class PrizeServerImpl implements PrizeServiceServer { .then((result) => callback(null, result)) .catch((err) => callback(err, null)); }; + + delete: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + // TODO: intentionally not implemented + }; } -export { PrizeServerImpl as PrizeServer, PrizeServiceService }; +export { LegacyPrizeServerImpl as LegacyPrizeServer, LegacyPrizeServiceService }; diff --git a/src/service/Notification.ts b/src/service/Notification.ts new file mode 100644 index 0000000..3801498 --- /dev/null +++ b/src/service/Notification.ts @@ -0,0 +1,38 @@ +import { handleUnaryCall, sendUnaryData, ServerUnaryCall, UntypedHandleCall } from "@grpc/grpc-js"; + +import { + LegacyNotificationServer, + LegacyNotificationService, +} from "../models/domain-layer/legacy/services/notification"; + +import { Empty } from "@topcoder-framework/lib-common"; +import LegacyNotificationDomain from "../domain/Notification"; +import { + GetNotificationsInput, + NotificationList, + DeleteNotificationsInput, +} from "../models/domain-layer/legacy/notification"; + +class LegacyNotificationServerImpl implements LegacyNotificationServer { + [name: string]: UntypedHandleCall; + + getNotifications: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyNotificationDomain.getNotifications(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + deleteNotifications: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyNotificationDomain.deleteNotifications(call.request) + .then((response) => callback(null)) + .catch((err) => callback(err, null)); + }; +} + +export { LegacyNotificationServerImpl as LegacyNotificationServer, LegacyNotificationService }; diff --git a/src/service/ProjectInfo.ts b/src/service/ProjectInfo.ts new file mode 100644 index 0000000..6188570 --- /dev/null +++ b/src/service/ProjectInfo.ts @@ -0,0 +1,70 @@ +import { handleUnaryCall, sendUnaryData, ServerUnaryCall, UntypedHandleCall } from "@grpc/grpc-js"; + +import { + CreateProjectInfoInput, + DeleteProjectInfoInput, + GetProjectInfoInput, + ProjectInfo, + ProjectInfoList, + ProjectInfoTypeList, + UpdateProjectInfoInput, +} from "../models/domain-layer/legacy/project_info"; + +import { + LegacyProjectInfoServer, + LegacyProjectInfoService, +} from "../models/domain-layer/legacy/services/project_info"; + +import { Empty, UpdateResult } from "@topcoder-framework/lib-common"; +import ProjectInfoDomain from "../domain/ProjectInfo"; + +class LegacyProjectInfoServerImpl implements LegacyProjectInfoServer { + [name: string]: UntypedHandleCall; + + create: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + ProjectInfoDomain.create(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + update: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + ProjectInfoDomain.update(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + delete: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + ProjectInfoDomain.delete(call.request) + .then((response) => callback(null)) + .catch((err) => callback(err)); + }; + + getProjectInfo: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + ProjectInfoDomain.getProjectInfo(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + getProjectInfoTypes: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + ProjectInfoDomain.getProjectInfoTypes() + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; +} + +export { LegacyProjectInfoServerImpl as LegacyProjectInfoServer, LegacyProjectInfoService }; diff --git a/src/service/Resource.ts b/src/service/Resource.ts new file mode 100644 index 0000000..f553394 --- /dev/null +++ b/src/service/Resource.ts @@ -0,0 +1,59 @@ +import { handleUnaryCall, sendUnaryData, ServerUnaryCall, UntypedHandleCall } from "@grpc/grpc-js"; + +import { + LegacyResourceServer, + LegacyResourceService, +} from "../models/domain-layer/legacy/services/resource"; + +import { CreateResult, Empty } from "@topcoder-framework/lib-common"; +import LegacyResourceDomain from "../domain/Resource"; +import { + GetResourcesInput, + ResourceList, + GetResourceInfosInput, + ResourceInfoList, + CreateResourceInfoInput, + UpdateResourceInfoInput, +} from "../models/domain-layer/legacy/resource"; + +class LegacyResourceServerImpl implements LegacyResourceServer { + [name: string]: UntypedHandleCall; + + getResources: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyResourceDomain.getResources(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + getResourceInfos: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyResourceDomain.getResourceInfos(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + createResourceInfos: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyResourceDomain.createResourceInfos(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + updateResourceInfos: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyResourceDomain.updateResourceInfos(call.request) + .then((response) => callback(null)) + .catch((err) => callback(err, null)); + }; +} + +export { LegacyResourceServerImpl as LegacyResourceServer, LegacyResourceService }; diff --git a/src/service/Review.ts b/src/service/Review.ts new file mode 100644 index 0000000..bf61204 --- /dev/null +++ b/src/service/Review.ts @@ -0,0 +1,48 @@ +import { handleUnaryCall, sendUnaryData, ServerUnaryCall, UntypedHandleCall } from "@grpc/grpc-js"; + +import { + LegacyReviewServer, + LegacyReviewService, +} from "../models/domain-layer/legacy/services/review"; + +import { CreateResult } from "@topcoder-framework/lib-common"; +import LegacyReviewDomain from "../domain/Review"; +import { + CreateReviewInput, + CreateReviewItemInput, + GetSubmissionInput, + Submission, +} from "../models/domain-layer/legacy/review"; + +class LegacyReviewServerImpl implements LegacyReviewServer { + [name: string]: UntypedHandleCall; + + createReviewItem: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyReviewDomain.createReviewItem(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + getSubmission: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyReviewDomain.getSubmission(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + createReview: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyReviewDomain.createReview(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; +} + +export { LegacyReviewServerImpl as LegacyReviewServer, LegacyReviewService }; diff --git a/src/service/Term.ts b/src/service/Term.ts new file mode 100644 index 0000000..9322809 --- /dev/null +++ b/src/service/Term.ts @@ -0,0 +1,51 @@ +import { handleUnaryCall, sendUnaryData, ServerUnaryCall, UntypedHandleCall } from "@grpc/grpc-js"; + +import { LegacyTermServer, LegacyTermService } from "../models/domain-layer/legacy/services/term"; + +import { CreateResult, Empty } from "@topcoder-framework/lib-common"; +import LegacyTermDomain from "../domain/Term"; +import { + CreateProjectRoleTermsOfUseXrefInput, + DeleteProjectRoleTermsOfUseXrefInput, + GetProjectRoleTermsOfUseXrefInput, + ProjectRoleTermsOfUseXrefList, +} from "../models/domain-layer/legacy/term"; + +class LegacyTermServerImpl implements LegacyTermServer { + [name: string]: UntypedHandleCall; + + getProjectRoleTermsOfUseXrefs: handleUnaryCall< + GetProjectRoleTermsOfUseXrefInput, + ProjectRoleTermsOfUseXrefList + > = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyTermDomain.getProjectRoleTermsOfUseXrefs(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + createProjectRoleTermsOfUseXref: handleUnaryCall< + CreateProjectRoleTermsOfUseXrefInput, + CreateResult + > = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyTermDomain.createProjectRoleTermsOfUseXref(call.request) + .then((response) => callback(null, response)) + .catch((err) => callback(err, null)); + }; + + deleteProjectRoleTermsOfUseXref: handleUnaryCall = ( + call: ServerUnaryCall, + callback: sendUnaryData + ) => { + LegacyTermDomain.deleteProjectRoleTermsOfUseXref(call.request) + .then((response) => callback(null)) + .catch((err) => callback(err, null)); + }; +} + +export { LegacyTermServerImpl as LegacyTermServer, LegacyTermService }; diff --git a/yarn.lock b/yarn.lock index fe6ecbb..28b1f2b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,198 @@ # yarn lockfile v1 +"@babel/code-frame@^7.0.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/helper-validator-identifier@^7.18.6": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@commitlint/cli@^17.3.0", "@commitlint/cli@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.4.4.tgz#36df08bfa31dbb9a2b6b1d7187a31e578f001a06" + integrity sha512-HwKlD7CPVMVGTAeFZylVNy14Vm5POVY0WxPkZr7EXLC/os0LH/obs6z4HRvJtH/nHCMYBvUBQhGwnufKfTjd5g== + dependencies: + "@commitlint/format" "^17.4.4" + "@commitlint/lint" "^17.4.4" + "@commitlint/load" "^17.4.4" + "@commitlint/read" "^17.4.4" + "@commitlint/types" "^17.4.4" + execa "^5.0.0" + lodash.isfunction "^3.0.9" + resolve-from "5.0.0" + resolve-global "1.0.0" + yargs "^17.0.0" + +"@commitlint/config-conventional@^17.3.0": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.4.4.tgz#f30b1e5b2e48ce5799a483c200c52f218a98efcc" + integrity sha512-u6ztvxqzi6NuhrcEDR7a+z0yrh11elY66nRrQIpqsqW6sZmpxYkDLtpRH8jRML+mmxYQ8s4qqF06Q/IQx5aJeQ== + dependencies: + conventional-changelog-conventionalcommits "^5.0.0" + +"@commitlint/config-lerna-scopes@^17.2.1": + version "17.4.2" + resolved "https://registry.yarnpkg.com/@commitlint/config-lerna-scopes/-/config-lerna-scopes-17.4.2.tgz#6979712c39d7c1bd01781f01ca7597dea8105126" + integrity sha512-uqunHW7LWBkjEflRAxmzlNu4l3n6Yh/W4EN7eUs404dNj8jhX/K05/ZcFq9i7KzadVp70MUIpZEXfWBTqR9Jyg== + dependencies: + glob "^8.0.3" + import-from "4.0.0" + resolve-pkg "2.0.0" + semver "7.3.8" + +"@commitlint/config-validator@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.4.4.tgz#d0742705719559a101d2ee49c0c514044af6d64d" + integrity sha512-bi0+TstqMiqoBAQDvdEP4AFh0GaKyLFlPPEObgI29utoKEYoPQTvF0EYqIwYYLEoJYhj5GfMIhPHJkTJhagfeg== + dependencies: + "@commitlint/types" "^17.4.4" + ajv "^8.11.0" + +"@commitlint/ensure@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-17.4.4.tgz#a36e7719bdb9c2b86c8b8c2e852b463a7bfda5fa" + integrity sha512-AHsFCNh8hbhJiuZ2qHv/m59W/GRE9UeOXbkOqxYMNNg9pJ7qELnFcwj5oYpa6vzTSHtPGKf3C2yUFNy1GGHq6g== + dependencies: + "@commitlint/types" "^17.4.4" + lodash.camelcase "^4.3.0" + lodash.kebabcase "^4.1.1" + lodash.snakecase "^4.1.1" + lodash.startcase "^4.4.0" + lodash.upperfirst "^4.3.1" + +"@commitlint/execute-rule@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz#4518e77958893d0a5835babe65bf87e2638f6939" + integrity sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA== + +"@commitlint/format@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-17.4.4.tgz#0f6e1b4d7a301c7b1dfd4b6334edd97fc050b9f5" + integrity sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ== + dependencies: + "@commitlint/types" "^17.4.4" + chalk "^4.1.0" + +"@commitlint/is-ignored@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.4.4.tgz#82e03f1abe2de2c0c8c162a250b8d466225e922b" + integrity sha512-Y3eo1SFJ2JQDik4rWkBC4tlRIxlXEFrRWxcyrzb1PUT2k3kZ/XGNuCDfk/u0bU2/yS0tOA/mTjFsV+C4qyACHw== + dependencies: + "@commitlint/types" "^17.4.4" + semver "7.3.8" + +"@commitlint/lint@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.4.4.tgz#0ecd70b44ec5f4823c2e00e0c4b04ebd41d42856" + integrity sha512-qgkCRRFjyhbMDWsti/5jRYVJkgYZj4r+ZmweZObnbYqPUl5UKLWMf9a/ZZisOI4JfiPmRktYRZ2JmqlSvg+ccw== + dependencies: + "@commitlint/is-ignored" "^17.4.4" + "@commitlint/parse" "^17.4.4" + "@commitlint/rules" "^17.4.4" + "@commitlint/types" "^17.4.4" + +"@commitlint/load@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.4.4.tgz#13fcb553572f265339801cde6dd10ee5eea07f5e" + integrity sha512-z6uFIQ7wfKX5FGBe1AkOF4l/ShOQsaa1ml/nLMkbW7R/xF8galGS7Zh0yHvzVp/srtfS0brC+0bUfQfmpMPFVQ== + dependencies: + "@commitlint/config-validator" "^17.4.4" + "@commitlint/execute-rule" "^17.4.0" + "@commitlint/resolve-extends" "^17.4.4" + "@commitlint/types" "^17.4.4" + "@types/node" "*" + chalk "^4.1.0" + cosmiconfig "^8.0.0" + cosmiconfig-typescript-loader "^4.0.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + lodash.uniq "^4.5.0" + resolve-from "^5.0.0" + ts-node "^10.8.1" + typescript "^4.6.4" + +"@commitlint/message@^17.4.2": + version "17.4.2" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.4.2.tgz#f4753a79701ad6db6db21f69076e34de6580e22c" + integrity sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q== + +"@commitlint/parse@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.4.4.tgz#8311b12f2b730de6ea0679ae2a37b386bcc5b04b" + integrity sha512-EKzz4f49d3/OU0Fplog7nwz/lAfXMaDxtriidyGF9PtR+SRbgv4FhsfF310tKxs6EPj8Y+aWWuX3beN5s+yqGg== + dependencies: + "@commitlint/types" "^17.4.4" + conventional-changelog-angular "^5.0.11" + conventional-commits-parser "^3.2.2" + +"@commitlint/read@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.4.4.tgz#de6ec00aad827764153009aa54517e3df2154555" + integrity sha512-B2TvUMJKK+Svzs6eji23WXsRJ8PAD+orI44lVuVNsm5zmI7O8RSGJMvdEZEikiA4Vohfb+HevaPoWZ7PiFZ3zA== + dependencies: + "@commitlint/top-level" "^17.4.0" + "@commitlint/types" "^17.4.4" + fs-extra "^11.0.0" + git-raw-commits "^2.0.0" + minimist "^1.2.6" + +"@commitlint/resolve-extends@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.4.4.tgz#8f931467dea8c43b9fe38373e303f7c220de6fdc" + integrity sha512-znXr1S0Rr8adInptHw0JeLgumS11lWbk5xAWFVno+HUFVN45875kUtqjrI6AppmD3JI+4s0uZlqqlkepjJd99A== + dependencies: + "@commitlint/config-validator" "^17.4.4" + "@commitlint/types" "^17.4.4" + import-fresh "^3.0.0" + lodash.mergewith "^4.6.2" + resolve-from "^5.0.0" + resolve-global "^1.0.0" + +"@commitlint/rules@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.4.4.tgz#9b33f41e5eb529f916396bac7c62e61f0edd6791" + integrity sha512-0tgvXnHi/mVcyR8Y8mjTFZIa/FEQXA4uEutXS/imH2v1UNkYDSEMsK/68wiXRpfW1euSgEdwRkvE1z23+yhNrQ== + dependencies: + "@commitlint/ensure" "^17.4.4" + "@commitlint/message" "^17.4.2" + "@commitlint/to-lines" "^17.4.0" + "@commitlint/types" "^17.4.4" + execa "^5.0.0" + +"@commitlint/to-lines@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-17.4.0.tgz#9bd02e911e7d4eab3fb4a50376c4c6d331e10d8d" + integrity sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg== + +"@commitlint/top-level@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-17.4.0.tgz#540cac8290044cf846fbdd99f5cc51e8ac5f27d6" + integrity sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g== + dependencies: + find-up "^5.0.0" + +"@commitlint/types@^17.4.4": + version "17.4.4" + resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-17.4.4.tgz#1416df936e9aad0d6a7bbc979ecc31e55dade662" + integrity sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ== + dependencies: + chalk "^4.1.0" + "@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" @@ -9,18 +201,33 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" +"@eslint/eslintrc@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" + integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.4.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + "@grpc/grpc-js@^1.7.1", "@grpc/grpc-js@^1.8.0": - version "1.8.8" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.8.8.tgz#a7c6765d0302f47ba67c0ce3cb79718d6b028248" - integrity sha512-4gfDqMLXTrorvYTKA1jL22zLvVwiHJ73t6Re1OHwdCFRjdGTDOVtSJuaWhtHaivyeDGg0LeCkmU77MTKoV3wPA== + version "1.8.9" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.8.9.tgz#84e9167dc80b0c3a98608e14b839458bf0df684d" + integrity sha512-xzsl2HamhovnZddS/2pMF4Q+FgwINaBvxoFGQ+G54Lo7Xsge36VvfDO/TDkL7FofmrRK/X5weRvwlJh7rKwN4w== 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" - integrity sha512-MnWjkGwqQ3W8fx94/c1CwqLsNmHHv2t0CFn+9++6+cDphC1lolpg9M2OU0iebIjK//pBNX9e94ho+gjx6vz39w== + version "0.7.5" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.5.tgz#ee9e7488fa585dc6b0f7fe88cd39723a3e64c906" + integrity sha512-mfcTuMbFowq1wh/Rn5KQl6qb95M21Prej3bewD9dUQMurYGVckGO/Pbe2Ocwto6sD05b/mxZLspvqwx60xO2Rg== dependencies: "@types/long" "^4.0.1" lodash.camelcase "^4.3.0" @@ -28,6 +235,25 @@ protobufjs "^7.0.0" yargs "^16.2.0" +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== + dependencies: + "@humanwhocodes/object-schema" "^1.2.1" + debug "^4.1.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + "@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" @@ -46,6 +272,27 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + "@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" @@ -99,25 +346,24 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== -"@topcoder-framework/client-relational@^0.4.22-ci.0", "@topcoder-framework/client-relational@^0.4.24-ci.0": - version "0.4.24-ci.0" - resolved "http://localhost:4873/@topcoder-framework%2fclient-relational/-/client-relational-0.4.24-ci.0.tgz#ada970a70f7c9c34371752523ce20cbf734a40a7" - integrity sha512-cnyzp4414BQuFml//y2A9Vgo0ULMSFEEnKjrq8kdpitvncVIenkowai6Geic37tOvnwZG3xxBNtmiHpDw3u/4A== +"@topcoder-framework/client-relational@^0.4.3": + version "0.4.3" + resolved "https://topcoder-409275337247.d.codeartifact.us-east-1.amazonaws.com:443/npm/topcoder-framework/@topcoder-framework/client-relational/-/client-relational-0.4.3.tgz#c36aa64e117b23ceddc81d648d6568b6a31af44f" + integrity sha512-N39BneVhIgB5TWAQRFeMBiQzFS2YnGcx3BBI/sfvnD0V1EC8+4GK26PytYy+JVPm9EzF0dceKX4UGA+luUD2gQ== dependencies: "@grpc/grpc-js" "^1.8.0" - "@topcoder-framework/lib-common" "0.4.23-ci.0" - topcoder-interface "github:topcoder-platform/plat-interface-definition#v0.0.10" + "@topcoder-framework/lib-common" "^0.4.3" + topcoder-interface "github:topcoder-platform/plat-interface-definition#v0.0.17" tslib "^2.4.1" -"@topcoder-framework/lib-common@0.4.23-ci.0", "@topcoder-framework/lib-common@^0.4.24-ci.0": - version "0.4.24-ci.0" - resolved "http://localhost:4873/@topcoder-framework%2flib-common/-/lib-common-0.4.24-ci.0.tgz#3f32ce108fa799bb5522200f21c4173e1328f816" - integrity sha512-h3TrHGUIewfd/psX7yvoT/eUrh+E3KDpTCWEyVrmb3YD8CcvqFzeks2ryTZ1JADJHJoREQUFRNuW5odApQbJIg== +"@topcoder-framework/lib-common@^0.4.3": + version "0.4.3" + resolved "https://topcoder-409275337247.d.codeartifact.us-east-1.amazonaws.com:443/npm/topcoder-framework/@topcoder-framework/lib-common/-/lib-common-0.4.3.tgz#3c992482860ec89f151235d24c9efa2be55e30ba" + integrity sha512-0eB6l146r+uSuHoLV7wPC58mZedAabLwkqDeeuh6h5dB0G+esYNBfbr1Hugim0lR8q0Rlny0aqx4ysz2Rf6Ebg== dependencies: "@grpc/grpc-js" "^1.8.0" - "@topcoder-framework/client-relational" "^0.4.22-ci.0" rimraf "^3.0.2" - topcoder-interface "github:topcoder-platform/plat-interface-definition#v0.0.10" + topcoder-interface "github:topcoder-platform/plat-interface-definition#v0.0.17" tslib "^2.4.1" "@tsconfig/node10@^1.0.7": @@ -140,6 +386,11 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== +"@types/json-schema@^7.0.9": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + "@types/lodash@^4.14.186": version "4.14.191" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" @@ -150,21 +401,36 @@ resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== +"@types/minimist@^1.2.0": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" + integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": + version "18.14.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.0.tgz#94c47b9217bbac49d4a67a967fdcdeed89ebb7d0" + integrity sha512-5EWrvLmglK+imbCJY0+INViFWUHg1AHel1sq4ZVSfdcNqGy9Edv3UB9IIzzg+xPaUcAgZYcfVs2fBcwDeZzU0A== + "@types/node@18.11.18": version "18.11.18" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== -"@types/node@>=12.12.47", "@types/node@>=13.7.0": - version "18.13.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.13.0.tgz#0400d1e6ce87e9d3032c19eb6c58205b0d3f7850" - integrity sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg== +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== "@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" integrity sha512-xFdpkAkikBgqBdG9vIlsqffDV8GpvnPEzs0IUtr1v3BEB97ijsFQ4RXVbUZwjFThhB4MDSTUfvmxUD5PGx0wXA== +"@types/semver@^7.3.12": + version "7.3.13" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" + integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== + "@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" @@ -180,28 +446,177 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== +"@typescript-eslint/eslint-plugin@^5.47.1": + version "5.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.52.0.tgz#5fb0d43574c2411f16ea80f5fc335b8eaa7b28a8" + integrity sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg== + dependencies: + "@typescript-eslint/scope-manager" "5.52.0" + "@typescript-eslint/type-utils" "5.52.0" + "@typescript-eslint/utils" "5.52.0" + debug "^4.3.4" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + regexpp "^3.2.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/parser@^5.47.1": + version "5.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.52.0.tgz#73c136df6c0133f1d7870de7131ccf356f5be5a4" + integrity sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA== + dependencies: + "@typescript-eslint/scope-manager" "5.52.0" + "@typescript-eslint/types" "5.52.0" + "@typescript-eslint/typescript-estree" "5.52.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.52.0": + version "5.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.52.0.tgz#a993d89a0556ea16811db48eabd7c5b72dcb83d1" + integrity sha512-AR7sxxfBKiNV0FWBSARxM8DmNxrwgnYMPwmpkC1Pl1n+eT8/I2NAUPuwDy/FmDcC6F8pBfmOcaxcxRHspgOBMw== + dependencies: + "@typescript-eslint/types" "5.52.0" + "@typescript-eslint/visitor-keys" "5.52.0" + +"@typescript-eslint/type-utils@5.52.0": + version "5.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.52.0.tgz#9fd28cd02e6f21f5109e35496df41893f33167aa" + integrity sha512-tEKuUHfDOv852QGlpPtB3lHOoig5pyFQN/cUiZtpw99D93nEBjexRLre5sQZlkMoHry/lZr8qDAt2oAHLKA6Jw== + dependencies: + "@typescript-eslint/typescript-estree" "5.52.0" + "@typescript-eslint/utils" "5.52.0" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.52.0": + version "5.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.52.0.tgz#19e9abc6afb5bd37a1a9bea877a1a836c0b3241b" + integrity sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ== + +"@typescript-eslint/typescript-estree@5.52.0": + version "5.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.52.0.tgz#6408cb3c2ccc01c03c278cb201cf07e73347dfca" + integrity sha512-WeWnjanyEwt6+fVrSR0MYgEpUAuROxuAH516WPjUblIrClzYJj0kBbjdnbQXLpgAN8qbEuGywiQsXUVDiAoEuQ== + dependencies: + "@typescript-eslint/types" "5.52.0" + "@typescript-eslint/visitor-keys" "5.52.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.52.0": + version "5.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.52.0.tgz#b260bb5a8f6b00a0ed51db66bdba4ed5e4845a72" + integrity sha512-As3lChhrbwWQLNk2HC8Ree96hldKIqk98EYvypd3It8Q1f8d5zWyIoaZEp2va5667M4ZyE7X8UUR+azXrFl+NA== + dependencies: + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.52.0" + "@typescript-eslint/types" "5.52.0" + "@typescript-eslint/typescript-estree" "5.52.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.52.0": + version "5.52.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.52.0.tgz#e38c971259f44f80cfe49d97dbffa38e3e75030f" + integrity sha512-qMwpw6SU5VHCPr99y274xhbm+PRViK/NATY6qzt+Et7+mThGuFSl/ompj2/hrBlRP/kq+BFdgagnOSgw9TB0eA== + dependencies: + "@typescript-eslint/types" "5.52.0" + eslint-visitor-keys "^3.3.0" + +JSONStream@^1.0.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + acorn-walk@^8.1.1: version "8.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^8.4.1: +acorn@^8.4.1, acorn@^8.8.0: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.10.0, ajv@^6.12.4: + 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" + +ajv@^8.11.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-styles@^4.0.0: +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" +ansi-styles@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -215,6 +630,31 @@ arg@^4.1.0: resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -233,7 +673,14 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@~3.0.2: +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -245,11 +692,47 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + case-anything@^2.1.10: version "2.1.10" resolved "https://registry.yarnpkg.com/case-anything/-/case-anything-2.1.10.tgz#d18a6ca968d54ec3421df71e3e190f3bced23410" integrity sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ== +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chokidar@^3.5.1: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -265,6 +748,34 @@ chokidar@^3.5.1: optionalDependencies: fsevents "~2.3.2" +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-truncate@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" + integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== + dependencies: + slice-ansi "^5.0.0" + string-width "^5.0.0" + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -274,6 +785,22 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + color-convert@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" @@ -281,21 +808,110 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +colorette@^2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== + +commander@^9.4.1: + version "9.5.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" + integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== + +commitlint@^17.3.0: + version "17.4.4" + resolved "https://registry.yarnpkg.com/commitlint/-/commitlint-17.4.4.tgz#884031ff5be10cc7a508f6f214e95543f9a2e020" + integrity sha512-trjD7/aJ3FyCMNRhP27QorPjvlE9m0AIlLKcusS6r8aDaDJQ8/MQMmANMv3LvjVx1SKy1MTSF0/oUw3T3If/EA== + dependencies: + "@commitlint/cli" "^17.4.4" + "@commitlint/types" "^17.4.4" + +compare-func@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" + integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== + dependencies: + array-ify "^1.0.0" + dot-prop "^5.1.0" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +conventional-changelog-angular@^5.0.11: + version "5.0.13" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" + integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== + dependencies: + compare-func "^2.0.0" + q "^1.5.1" + +conventional-changelog-conventionalcommits@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-5.0.0.tgz#41bdce54eb65a848a4a3ffdca93e92fa22b64a86" + integrity sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw== + dependencies: + compare-func "^2.0.0" + lodash "^4.17.15" + q "^1.5.1" + +conventional-commits-parser@^3.2.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz#a7d3b77758a202a9b2293d2112a8d8052c740972" + integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q== + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.1" + lodash "^4.17.15" + meow "^8.0.0" + split2 "^3.0.0" + through2 "^4.0.0" + +cosmiconfig-typescript-loader@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz#c4259ce474c9df0f32274ed162c0447c951ef073" + integrity sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q== + +cosmiconfig@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.0.0.tgz#e9feae014eab580f858f8a0288f38997a7bebe97" + integrity sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ== + dependencies: + import-fresh "^3.2.1" + js-yaml "^4.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + create-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +dargs@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" + integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== + dataloader@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-1.4.0.tgz#bca11d867f5d3f1b9ed9f737bd15970c65dff5c8" @@ -306,6 +922,31 @@ dayjs@^1.11.5: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== +debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: + 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" + +decamelize-keys@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" @@ -316,6 +957,27 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dot-prop@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + dotenv@^16.0.3: version "16.0.3" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" @@ -335,16 +997,246 @@ dynamic-dedupe@^0.3.0: dependencies: xtend "^4.0.0" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-prettier@^8.5.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207" + integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA== + +eslint-plugin-prettier@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-visitor-keys@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" + integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== + +eslint@^8.30.0: + version "8.34.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.34.0.tgz#fe0ab0ef478104c1f9ebc5537e303d25a8fb22d6" + integrity sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg== + dependencies: + "@eslint/eslintrc" "^1.4.1" + "@humanwhocodes/config-array" "^0.11.8" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.1.1" + eslint-utils "^3.0.0" + eslint-visitor-keys "^3.3.0" + espree "^9.4.0" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + grapheme-splitter "^1.0.4" + ignore "^5.2.0" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-sdsl "^4.1.4" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.1" + regexpp "^3.2.0" + strip-ansi "^6.0.1" + strip-json-comments "^3.1.0" + text-table "^0.2.0" + +espree@^9.4.0: + version "9.4.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd" + integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== + dependencies: + acorn "^8.8.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.3.0" + +esquery@^1.4.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.2.tgz#c6d3fee05dd665808e2ad870631f221f5617b1d1" + integrity sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +execa@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" + integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^3.0.1" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + 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-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + +fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +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-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -352,6 +1244,44 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + +fs-extra@^11.0.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.0.tgz#5784b102104433bb0e090f48bfc4a30742c357ed" + integrity sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -372,13 +1302,36 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -glob-parent@~5.1.2: +get-stream@^6.0.0, get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +git-raw-commits@^2.0.0: + version "2.0.11" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" + integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== + dependencies: + dargs "^7.0.0" + lodash "^4.17.15" + meow "^8.0.0" + split2 "^3.0.0" + through2 "^4.0.0" + +glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + glob@^7.1.3: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -391,11 +1344,58 @@ glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.3: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +global-dirs@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg== + dependencies: + ini "^1.3.4" + +globals@^13.19.0: + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + dependencies: + type-fest "^0.20.2" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + google-protobuf@^3.19.1: version "3.21.2" resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.2.tgz#4580a2bea8bbb291ee579d1fefb14d6fa3070ea4" integrity sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA== +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + 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" @@ -403,6 +1403,21 @@ grpc-server-reflection@^0.1.5: dependencies: google-protobuf "^3.19.1" +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -410,6 +1425,61 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +human-signals@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" + integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== + +husky@^8.0.0: + version "8.0.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" + integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== + +ignore@^5.2.0: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-4.0.0.tgz#2710b8d66817d232e16f4166e319248d3d5492e2" + integrity sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -418,11 +1488,21 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2: +inherits@2, inherits@^2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +ini@^1.3.4: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + 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" @@ -430,7 +1510,7 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-core-module@^2.9.0: +is-core-module@^2.5.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" integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== @@ -447,7 +1527,12 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^4.0.1, is-glob@~4.0.1: +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -459,16 +1544,229 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + +is-text-path@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== + dependencies: + text-extensions "^1.0.0" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +js-sdsl@^4.1.4: + version "4.3.0" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711" + integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +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-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lilconfig@2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" + integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +lint-staged@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.2.tgz#443636a0cfd834d5518d57d228130dc04c83d6fb" + integrity sha512-K9b4FPbWkpnupvK3WXZLbgu9pchUJ6N7TtVZjbaPsoizkqFUDkUReUL25xdrCljJs7uLUF3tZ7nVPeo/6lp+6w== + dependencies: + cli-truncate "^3.1.0" + colorette "^2.0.19" + commander "^9.4.1" + debug "^4.3.4" + execa "^6.1.0" + lilconfig "2.0.6" + listr2 "^5.0.5" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-inspect "^1.12.2" + pidtree "^0.6.0" + string-argv "^0.3.1" + yaml "^2.1.3" + +listr2@^5.0.5: + version "5.0.7" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.7.tgz#de69ccc4caf6bea7da03c74f7a2ffecf3904bd53" + integrity sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.19" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.8.0" + through "^2.3.8" + wrap-ansi "^7.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== -lodash@^4.17.21: +lodash.isfunction@^3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" + integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== + +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.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.mergewith@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" + integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== + +lodash.snakecase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" + integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== + +lodash.startcase@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" + integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash.upperfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== + +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== +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + long@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" @@ -479,18 +1777,101 @@ long@^5.0.0: resolved "https://registry.yarnpkg.com/long/-/long-5.2.1.tgz#e27595d0083d103d2fa2c20c7699f8e0c92b897f" integrity sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A== +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^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" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -minimatch@^3.1.1: +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== + +map-obj@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== + +meow@^8.0.0: + version "8.1.2" + resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" + integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimist-options@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" @@ -501,16 +1882,75 @@ mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +moment@^2.29.4: + version "2.29.4" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" + integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== + +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== + +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + dependencies: + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" + 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" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + object-hash@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== +object-inspect@^1.12.2: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== + once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -518,21 +1958,151 @@ once@^1.3.0: dependencies: wrappy "1" +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + 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" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -picomatch@^2.0.4, picomatch@^2.2.1: +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pidtree@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier-plugin-organize-imports@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.2.tgz#91993365e017daa5d0d28d8183179834224d8dd1" + integrity sha512-e97lE6odGSiHonHJMTYC0q0iLXQyw0u5z/PJpvP/3vRy6/Zi9kLBwFAbEGjDzIowpjQv8b+J04PDamoUSQbzGA== + +prettier@^2.8.1: + version "2.8.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3" + integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== + protobufjs@^6.11.3, protobufjs@^6.8.8: version "6.11.3" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" @@ -570,6 +2140,54 @@ protobufjs@^7.0.0: "@types/node" ">=13.7.0" long "^5.0.0" +punycode@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + +q@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +readable-stream@3, readable-stream@^3.0.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -577,12 +2195,54 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +regexpp@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -resolve@^1.0.0: +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-global@1.0.0, resolve-global@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" + integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== + dependencies: + global-dirs "^0.1.1" + +resolve-pkg@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-pkg/-/resolve-pkg-2.0.0.tgz#ac06991418a7623edc119084edc98b0e6bf05a41" + integrity sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ== + dependencies: + resolve-from "^5.0.0" + +resolve@^1.0.0, resolve@^1.10.0: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -591,6 +2251,24 @@ resolve@^1.0.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + rimraf@^2.6.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -605,6 +2283,85 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rxjs@^7.8.0: + version "7.8.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" + integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== + dependencies: + tslib "^2.1.0" + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"semver@2 || 3 || 4 || 5": + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.3.8, semver@^7.3.4, semver@^7.3.7: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + 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" @@ -618,7 +2375,45 @@ source-map@^0.6.0: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -string-width@^4.1.0, string-width@^4.2.0: +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.12" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" + integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== + +split2@^3.0.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" + integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== + dependencies: + readable-stream "^3.0.0" + +string-argv@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" + integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -627,6 +2422,22 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.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" @@ -634,21 +2445,86 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + dependencies: + ansi-regex "^6.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" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + 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" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + 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" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +text-extensions@^1.0.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +through2@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" + integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== + dependencies: + readable-stream "3" + +"through@>=2.2.7 <3", through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + 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" @@ -656,19 +2532,24 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -"topcoder-interface@github:topcoder-platform/plat-interface-definition#v0.0.10": +"topcoder-interface@github:topcoder-platform/plat-interface-definition#v0.0.17": version "1.0.0" - resolved "https://codeload.github.com/topcoder-platform/plat-interface-definition/tar.gz/83db3ad5ac053393f8d9aa975dfe067fd8942add" + resolved "https://codeload.github.com/topcoder-platform/plat-interface-definition/tar.gz/59d8fca8a16906d1a45bfa2f11bba73ce42388d4" -"topcoder-interface@github:topcoder-platform/plat-interface-definition#v0.0.11": +"topcoder-interface@github:topcoder-platform/plat-interface-definition#v0.0.19": version "1.0.0" - resolved "https://codeload.github.com/topcoder-platform/plat-interface-definition/tar.gz/ef173ab2efd5f7a015d2b64412cab082c78221c7" + resolved "https://codeload.github.com/topcoder-platform/plat-interface-definition/tar.gz/336341e8ea7c5a7d5e02b40a56e58e6a2264f210" tree-kill@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== +trim-newlines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== + 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" @@ -685,7 +2566,7 @@ ts-node-dev@^2.0.0: ts-node "^10.4.0" tsconfig "^7.0.0" -ts-node@^10.4.0: +ts-node@^10.4.0, ts-node@^10.8.1: version "10.9.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== @@ -742,16 +2623,77 @@ tsconfig@^7.0.0: strip-bom "^3.0.0" strip-json-comments "^2.0.0" -tslib@^2.4.1: +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.1.0, tslib@^2.4.1: version "2.5.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== -typescript@^4.9.4: +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +typescript@^4.6.4, typescript@^4.9.4: version "4.9.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +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" + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + uuid@8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -770,6 +2712,35 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -794,11 +2765,26 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yargs-parser@^20.2.2: +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^2.1.3: + version "2.2.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.1.tgz#3014bf0482dcd15147aa8e56109ce8632cd60ce4" + integrity sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw== + +yargs-parser@^20.2.2, yargs-parser@^20.2.3: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" @@ -812,7 +2798,25 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" +yargs@^17.0.0: + version "17.7.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.0.tgz#b21e9af1e0a619a2a9c67b1133219b2975a07985" + integrity sha512-dwqOPg5trmrre9+v8SUo2q/hAwyKoVfu8OC1xPHKJGNdxAvPl4sKxL4vBnh3bQz/ZvvGAFeA5H3ou2kcOY8sQQ== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==