diff --git a/.circleci/config.yml b/.circleci/config.yml index 904d2817d..2d67873a1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -6,7 +6,7 @@ orbs: aws-cli: circleci/aws-cli@4.0 eb: circleci/aws-elastic-beanstalk@2.0.1 jobs: - api-deploy: + imex-api-deploy: docker: - image: cimg/node:18.18.2 steps: @@ -19,9 +19,9 @@ jobs: eb deploy eb status - hasura-migrate: + imex-hasura-migrate: docker: - - image: cimg/node:16.15.0 + - image: cimg/node:18.18.2 parameters: secret: type: string @@ -38,30 +38,10 @@ jobs: hasura metadata apply --endpoint https://db.imex.online/ --admin-secret << parameters.secret >> hasura metadata reload --endpoint https://db.imex.online/ --admin-secret << parameters.secret >> - app-build: - docker: - - image: cimg/node:16.15.0 - - working_directory: ~/repo/client - - steps: - - checkout: - path: ~/repo - - run: - name: Install Dependencies - command: npm i - - - run: npm run build - - - aws-s3/sync: - from: build - to: "s3://imex-online-production/" - arguments: "--exclude '*.map'" - - app-beta-build: + imex-app-build: docker: - image: cimg/node:18.18.2 - resource_class: large + working_directory: ~/repo/client steps: @@ -71,7 +51,7 @@ jobs: name: Install Dependencies command: npm i - - run: npm run build + - run: npm run build:imex - aws-cli/setup: aws_access_key_id: AWS_ACCESS_KEY_ID @@ -80,9 +60,106 @@ jobs: - aws-s3/sync: from: build - to: "s3://imex-online-beta/" + to: "s3://imex-online-production/" arguments: "--exclude '*.map'" + rome-api-deploy: + docker: + - image: "cimg/base:stable" + steps: + - checkout + - eb/setup + - run: + command: | + eb init romeonline-productionapi -r us-east-2 -p "Node.js 18 running on 64bit Amazon Linux 2" + eb status --verbose + eb deploy + eb status + + rome-hasura-migrate: + docker: + - image: cimg/node:18.18.2 + parameters: + secret: + type: string + default: $HASURA_ROME_PROD_SECRET + working_directory: ~/repo/hasura + steps: + - checkout: + path: ~/repo + - run: + name: Execute migration + command: | + npm install hasura-cli -g + hasura migrate apply --endpoint https://db.romeonline.io/ --admin-secret << parameters.secret >> + hasura metadata apply --endpoint https://db.romeonline.io/ --admin-secret << parameters.secret >> + hasura metadata reload --endpoint https://db.romeonline.io/ --admin-secret << parameters.secret >> + + rome-app-build: + docker: + - image: cimg/node:18.18.2 + + working_directory: ~/repo/client + + steps: + - checkout: + path: ~/repo + - run: + name: Install Dependencies + command: npm i + + - run: npm run build:rome + + - aws-cli/setup: + aws_access_key_id: AWS_ACCESS_KEY_ID + aws_secret_access_key: AWS_SECRET_ACCESS_KEY + region: AWS_REGION + + - aws-s3/sync: + from: build + to: "s3://rome-online-production/" + arguments: "--exclude '*.map'" + + test-rome-hasura-migrate: + docker: + - image: cimg/node:16.15.0 + parameters: + secret: + type: string + default: $HASURA_ROME_TEST_SECRET + working_directory: ~/repo/hasura + steps: + - checkout: + path: ~/repo + - run: + name: Execute migration + command: | + npm install hasura-cli -g + hasura migrate apply --endpoint https://db.test.romeonline.io/ --admin-secret << parameters.secret >> + hasura metadata apply --endpoint https://db.test.romeonline.io/ --admin-secret << parameters.secret >> + hasura metadata reload --endpoint https://db.test.romeonline.io/ --admin-secret << parameters.secret >> + + test-rome-app-build: + docker: + - image: cimg/node:18.18.2 + + working_directory: ~/repo/client + + steps: + - checkout: + path: ~/repo + - run: + name: Install Dependencies + command: npm i + + - run: npm run build:test:rome + + - aws-s3/sync: + from: build + to: "s3://rome-online-test/" + arguments: "--exclude '*.map'" + + test-hasura-migrate: docker: - image: cimg/node:16.15.0 @@ -98,12 +175,11 @@ jobs: name: Execute migration command: | npm install hasura-cli -g - echo ${HASURA_TEST_SECRET} hasura migrate apply --endpoint https://db.test.bodyshop.app/ --admin-secret << parameters.secret >> hasura metadata apply --endpoint https://db.test.bodyshop.app/ --admin-secret << parameters.secret >> hasura metadata reload --endpoint https://db.test.bodyshop.app/ --admin-secret << parameters.secret >> - test-app-build: + imex-test-app-build: docker: - image: cimg/node:16.15.0 @@ -116,40 +192,13 @@ jobs: name: Install Dependencies command: npm i - - run: npm run build:test + - run: npm run build:test:imex - aws-s3/sync: from: build to: "s3://imex-online-test/" arguments: "--exclude '*.map'" - test-app-beta-build: - docker: - - image: cimg/node:18.18.2 - resource_class: large - working_directory: ~/repo/client - - steps: - - checkout: - path: ~/repo - - - run: - name: Install Dependencies - command: npm i - - - run: npm run build:test - - - run: npm run sentry:sourcemaps - - - aws-cli/setup: - aws_access_key_id: AWS_ACCESS_KEY_ID - aws_secret_access_key: AWS_SECRET_ACCESS_KEY - region: AWS_REGION - - - aws-s3/sync: - from: build - to: "s3://imex-online-test-beta/" - arguments: "--exclude '*.map'" admin-app-build: docker: @@ -184,37 +233,52 @@ jobs: workflows: deploy_and_build: jobs: - - api-deploy: + - imex-api-deploy: filters: branches: only: master - - app-build: + - imex-app-build: filters: branches: only: master - - app-beta-build: - filters: - branches: - only: master-beta - hasura-migrate: secret: ${HASURA_PROD_SECRET} filters: branches: only: master - - test-app-build: + - rome-api-deploy: + filters: + branches: + only: rome/master + - rome-app-build: + filters: + branches: + only: rome/master + - rome-hasura-migrate: + secret: ${HASURA_PROD_SECRET} + filters: + branches: + only: rome/master + - imex-test-app-build: filters: branches: only: test - - test-app-beta-build: - filters: - branches: - only: test-beta + - test-hasura-migrate: secret: ${HASURA_TEST_SECRET} filters: branches: only: test + - test-rome-app-build: + filters: + branches: + only: rome/test + - test-rome-hasura-migrate: + secret: ${HASURA_ROME_TEST_SECRET} + filters: + branches: + only: rome/test #- admin-app-build: #filters: #branches: - #only: master \ No newline at end of file + #only: master diff --git a/bodyshop_translations.babel b/bodyshop_translations.babel index f07d49c89..77a8015de 100644 --- a/bodyshop_translations.babel +++ b/bodyshop_translations.babel @@ -1030,6 +1030,27 @@ + + smspaymentreminder + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + suggesteddates false @@ -1432,6 +1453,27 @@ messages + + admin_job_remove_from_ar + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + admin_jobmarkexported false @@ -1516,6 +1558,90 @@ + + alerttoggle + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + appointmentcancel + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + appointmentinsert + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + assignedlinehours + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + billposted false @@ -1726,6 +1852,27 @@ + + jobinvoiced + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + jobioucreated false @@ -2229,6 +2376,27 @@ + + mod_lbr_adjustment + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + other false @@ -2328,6 +2496,27 @@ actions + + deductallhours + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + edit false @@ -3204,6 +3393,27 @@ + + federal_tax_exempt + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + generatepartslabel false @@ -3372,6 +3582,27 @@ + + printlabels + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + retailtotal false @@ -5401,6 +5632,32 @@ + + md_functionality_toggles + + + parts_queue_toggle + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + md_hour_split @@ -5755,6 +6012,27 @@ md_tasks_presets + + enable_tasks + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + hourstype false @@ -5818,6 +6096,27 @@ + + nextstatus + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + percent false @@ -5839,6 +6138,27 @@ + + use_approvals + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + @@ -7082,6 +7402,27 @@ + + reportcenter + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + templates false @@ -7463,6 +7804,111 @@ + + responsibilitycenter_tax_rate + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + responsibilitycenter_tax_sur + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + responsibilitycenter_tax_thres + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + responsibilitycenter_tax_tier + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + responsibilitycenter_tax_type + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + responsibilitycenters @@ -10070,6 +10516,27 @@ + + md_parts_scan + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + md_tasks_presets false @@ -12837,6 +13304,27 @@ + + readiness + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + registrationexpires false @@ -13311,6 +13799,53 @@ + + readiness + + + notready + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + ready + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + status @@ -13941,6 +14476,48 @@ titles + + labhours + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + larhours + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + monthlyemployeeefficiency false @@ -15260,6 +15837,27 @@ + + max_load + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + name false @@ -15836,6 +16434,27 @@ + + active + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + endmustbeafterstart false @@ -15878,6 +16497,27 @@ + + inactive + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + name false @@ -15920,6 +16560,27 @@ + + status + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + straight_time false @@ -16039,6 +16700,445 @@ + + eula + + + buttons + + + accept + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + + + content + + + never_scrolled + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + + + errors + + + acceptance + + + description + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + message + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + + + + + labels + + + accepted_terms + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + address + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + business_name + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + date_accepted + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + first_name + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + last_name + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + phone_number + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + + + messages + + + accepted_terms + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + business_name + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + date_accepted + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + first_name + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + last_name + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + phone_number + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + + + titles + + + modal + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + upper_card + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + + + exportlogs @@ -18180,6 +19280,27 @@ + + tvmode + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + unknown false @@ -19241,6 +20362,383 @@ + + job_lifecycle + + + columns + + + duration + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + end + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + relative_end + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + relative_start + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + start + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + value + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + + + content + + + current_status_accumulated_time + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + data_unavailable + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + legend_title + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + loading + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + not_available + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + previous_status_accumulated_time + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + title + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + title_durations + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + title_loading + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + title_transitions + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + + + errors + + + fetch + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + + + job_payments @@ -19608,6 +21106,27 @@ actions + + assign_team + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + converttolabor false @@ -19629,6 +21148,27 @@ + + dispatchparts + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + new false @@ -19744,6 +21284,69 @@ + + assigned_team + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + assigned_team_name + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + create_ppc + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + db_price false @@ -22141,6 +23744,48 @@ + + taxprofileoverride + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + taxprofileoverride_confirm + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + uninvoice false @@ -23521,6 +25166,352 @@ + + cieca_pfl + + + lbr_tax_in + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + lbr_tx_in1 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + lbr_tx_in2 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + lbr_tx_in3 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + lbr_tx_in4 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + lbr_tx_in5 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + + + cieca_pfo + + + stor_t_in1 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + stor_t_in2 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + stor_t_in3 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + stor_t_in4 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + stor_t_in5 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + tow_t_in1 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + tow_t_in2 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + tow_t_in3 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + tow_t_in4 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + tow_t_in5 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + claim_total false @@ -23731,6 +25722,27 @@ + + date_lost_sale + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + date_next_contact false @@ -25767,6 +27779,242 @@ + + materials + + + MAPA + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + MASH + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + cal_maxdlr + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + cal_opcode + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + mat_tx_in1 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + mat_tx_in2 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + mat_tx_in3 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + mat_tx_in4 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + mat_tx_in5 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + materials + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + tax_ind + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + other_amount_payable false @@ -26211,6 +28459,111 @@ + + prt_tx_in1 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + prt_tx_in2 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + prt_tx_in3 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + prt_tx_in4 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + prt_tx_in5 + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + prt_type false @@ -28467,6 +30820,27 @@ + + more + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + notes false @@ -28637,6 +31011,69 @@ + + cieca_pfl + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + cieca_pfo + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + cieca_pft + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + closeconfirm false @@ -30038,6 +32475,53 @@ + + materials + + + mapa + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + + + missingprofileinfo + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + multipayers false @@ -30888,6 +33372,27 @@ + + remove_from_ar + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + returntotals false @@ -31329,6 +33834,27 @@ + + total_sales_tax + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + totals false @@ -33944,6 +36470,27 @@ + + lifecycle + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + partssublet false @@ -34080,6 +36627,69 @@ tech + + assignedjobs + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + claimtask + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + dispatchedparts + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + home false @@ -34690,6 +37300,32 @@ + + render + + + conversation_list + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + @@ -36168,6 +38804,188 @@ + + parts_dispatch + + + actions + + + accept + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + + + errors + + + accepting + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + creating + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + + + fields + + + number + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + percent_accepted + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + + + labels + + + parts_dispatch + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + + + + + parts_dispatch_lines + + + fields + + + accepted_at + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + + + parts_orders @@ -39124,6 +41942,27 @@ + + committed_timetickets_ro + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + coversheet_landscape false @@ -39864,6 +42703,27 @@ + + parts_dispatch + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + parts_invoice_label_single false @@ -40599,6 +43459,27 @@ + + worksheet_sorted_by_team + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + @@ -40942,6 +43823,27 @@ + + parts_dispatch + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + parts_order false @@ -42714,6 +45616,27 @@ + + ar_aging + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + attendance_detail false @@ -42777,6 +45700,69 @@ + + committed_timetickets + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + committed_timetickets_employee + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + committed_timetickets_summary + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + credits_not_received_date false @@ -43932,6 +46918,48 @@ + + load_level + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + lost_sales + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + open_orders false @@ -43995,6 +47023,27 @@ + + open_orders_excel + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + open_orders_ins_co false @@ -44940,6 +47989,27 @@ + + work_in_progress_committed_labour + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + work_in_progress_jobs false @@ -45332,6 +48402,27 @@ labels + + allemployeetimetickets + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + asoftodaytarget false @@ -45353,6 +48444,48 @@ + + body + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + bodycharttitle + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + calendarperiod false @@ -45374,6 +48507,27 @@ + + combinedcharttitle + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + dailyactual false @@ -45479,6 +48633,27 @@ + + jobscompletednotinvoiced + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + lastmonth false @@ -45542,6 +48717,27 @@ + + priorweek + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + productivestatistics false @@ -45584,6 +48780,48 @@ + + refinish + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + refinishcharttitle + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + targets false @@ -45668,6 +48906,27 @@ + + timeticketsemployee + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + todateactual false @@ -45689,6 +48948,27 @@ + + totalhrs + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + totaloverperiod false @@ -46070,6 +49350,48 @@ + + commit + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + commitone + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + enter false @@ -46091,6 +49413,27 @@ + + payall + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + printemployee false @@ -46112,6 +49455,27 @@ + + uncommit + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + @@ -46243,6 +49607,27 @@ + + payall + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + shiftalreadyclockedon false @@ -46395,6 +49780,27 @@ + + committed_at + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + cost_center false @@ -46605,6 +50011,27 @@ + + task_name + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + @@ -46673,6 +50100,27 @@ + + claimtaskpreview + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + clockhours false @@ -46862,6 +50310,27 @@ + + payrollclaimedtasks + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + pmbreak false @@ -46967,6 +50436,27 @@ + + task + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + timetickets false @@ -46988,6 +50478,27 @@ + + unassigned + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + zeroactualnegativeprod false @@ -47056,6 +50567,27 @@ + + committed + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + created false @@ -47098,6 +50630,27 @@ + + payall + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + @@ -47166,6 +50719,27 @@ + + unassignedlines + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + @@ -49047,6 +52621,90 @@ + + techconsole + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + techjobclock + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + techjoblookup + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + techshiftclock + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + temporarydocs false @@ -49183,6 +52841,53 @@ + + labels + + + approval_queue_in_use + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + calculate + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + diff --git a/client/.env.development b/client/.env.development.imex similarity index 94% rename from client/.env.development rename to client/.env.development.imex index 6676c072a..05cd1cbc7 100644 --- a/client/.env.development +++ b/client/.env.development.imex @@ -10,4 +10,5 @@ REACT_APP_FIREBASE_PUBLIC_VAPID_KEY='BG3tzU7L2BXlGZ_3VLK4PNaRceoEXEnmHfxcVbRMF5o REACT_APP_STRIPE_PUBLIC_KEY=pk_test_51GqB4TJl3nQjrZ0wCQWAxAhlNF8jKe0tipIa6ExBaxwJGitwvFsIZUEua4dUzaMIAuXp4qwYHXx7lgjyQSwP0Pe900vzm38C7g REACT_APP_AXIOS_BASE_API_URL=http://localhost:4000 REACT_APP_REPORTS_SERVER_URL=https://reports3.test.imex.online -REACT_APP_SPLIT_API=ts615lqgnmk84thn72uk18uu5pgce6e0l4rc \ No newline at end of file +REACT_APP_SPLIT_API=ts615lqgnmk84thn72uk18uu5pgce6e0l4rc +INSTANCE=IMEX diff --git a/client/.env.development.promanager b/client/.env.development.promanager new file mode 100644 index 000000000..a4d89915d --- /dev/null +++ b/client/.env.development.promanager @@ -0,0 +1,14 @@ +REACT_APP_GRAPHQL_ENDPOINT=https://db.dev.bodyshop.app/v1/graphql +REACT_APP_GRAPHQL_ENDPOINT_WS=wss://db.dev.bodyshop.app/v1/graphql +REACT_APP_GA_CODE=231099835 +REACT_APP_FIREBASE_CONFIG={"apiKey":"AIzaSyDPLT8GiDHDR1R4nI66Qi0BY1aYviDPioc","authDomain":"imex-dev.firebaseapp.com","databaseURL":"https://imex-dev.firebaseio.com","projectId":"imex-dev","storageBucket":"imex-dev.appspot.com","messagingSenderId":"759548147434","appId":"1:759548147434:web:e8239868a48ceb36700993","measurementId":"G-K5XRBVVB4S"} +REACT_APP_CLOUDINARY_ENDPOINT_API=https://api.cloudinary.com/v1_1/io-test +REACT_APP_CLOUDINARY_ENDPOINT=https://res.cloudinary.com/io-test +REACT_APP_CLOUDINARY_API_KEY=957865933348715 +REACT_APP_CLOUDINARY_THUMB_TRANSFORMATIONS=c_fill,h_250,w_250 +REACT_APP_FIREBASE_PUBLIC_VAPID_KEY='BG3tzU7L2BXlGZ_3VLK4PNaRceoEXEnmHfxcVbRMF5o5g05ejslhVPki9kBM9cBBT-08Ad9kN3HSpS6JmrWD6h4' +REACT_APP_STRIPE_PUBLIC_KEY=pk_test_51GqB4TJl3nQjrZ0wCQWAxAhlNF8jKe0tipIa6ExBaxwJGitwvFsIZUEua4dUzaMIAuXp4qwYHXx7lgjyQSwP0Pe900vzm38C7g +REACT_APP_AXIOS_BASE_API_URL=http://localhost:4000 +REACT_APP_REPORTS_SERVER_URL=https://reports3.test.imex.online +REACT_APP_SPLIT_API=ts615lqgnmk84thn72uk18uu5pgce6e0l4rc +INSTANCE=PROMANAGER diff --git a/client/.env.development.rome b/client/.env.development.rome new file mode 100644 index 000000000..e5591e583 --- /dev/null +++ b/client/.env.development.rome @@ -0,0 +1,15 @@ +REACT_APP_GRAPHQL_ENDPOINT=https://db.dev.bodyshop.app/v1/graphql +REACT_APP_GRAPHQL_ENDPOINT_WS=wss://db.dev.bodyshop.app/v1/graphql +REACT_APP_GA_CODE=231099835 +REACT_APP_FIREBASE_CONFIG={ "apiKey": "AIzaSyAuLQR9SV5LsVxjU8wh9hvFLdhcAHU6cxE", "authDomain": "rome-prod-1.firebaseapp.com", "projectId": "rome-prod-1", "storageBucket": "rome-prod-1.appspot.com", "messagingSenderId": "147786367145", "appId": "1:147786367145:web:9d4cba68071c3f29a8a9b8", "measurementId": "G-G8Z9DRHTZS"} +REACT_APP_CLOUDINARY_ENDPOINT_API=https://api.cloudinary.com/v1_1/io-test +REACT_APP_CLOUDINARY_ENDPOINT=https://res.cloudinary.com/io-test +REACT_APP_CLOUDINARY_API_KEY=957865933348715 +REACT_APP_CLOUDINARY_THUMB_TRANSFORMATIONS=c_fill,h_250,w_250 +REACT_APP_FIREBASE_PUBLIC_VAPID_KEY='BP1B7ZTYpn-KMt6nOxlld6aS8Skt3Q7ZLEqP0hAvGHxG4UojPYiXZ6kPlzZkUC5jH-EcWXomTLtmadAIxurfcHo' +REACT_APP_STRIPE_PUBLIC_KEY=pk_test_51GqB4TJl3nQjrZ0wCQWAxAhlNF8jKe0tipIa6ExBaxwJGitwvFsIZUEua4dUzaMIAuXp4qwYHXx7lgjyQSwP0Pe900vzm38C7g +REACT_APP_AXIOS_BASE_API_URL=http://localhost:4000 +REACT_APP_REPORTS_SERVER_URL=https://reports3.test.imex.online +REACT_APP_SPLIT_API=ts615lqgnmk84thn72uk18uu5pgce6e0l4rc +REACT_APP_COUNTRY=USA +INSTANCE=ROME diff --git a/client/.env.production b/client/.env.production.imex similarity index 94% rename from client/.env.production rename to client/.env.production.imex index cdf721dcb..5ca553cdb 100644 --- a/client/.env.production +++ b/client/.env.production.imex @@ -11,4 +11,5 @@ REACT_APP_FIREBASE_PUBLIC_VAPID_KEY='BMgZT1NZztW2DsJl8Mg2L04hgY9FzAg6b8fbzgNAfww REACT_APP_STRIPE_PUBLIC_KEY=pk_test_51GqB4TJl3nQjrZ0wCQWAxAhlNF8jKe0tipIa6ExBaxwJGitwvFsIZUEua4dUzaMIAuXp4qwYHXx7lgjyQSwP0Pe900vzm38C7g REACT_APP_AXIOS_BASE_API_URL=https://api.imex.online/ REACT_APP_REPORTS_SERVER_URL=https://reports.imex.online -REACT_APP_SPLIT_API=et9pjkik6bn67he5evpmpr1agoo7gactphgk \ No newline at end of file +REACT_APP_SPLIT_API=et9pjkik6bn67he5evpmpr1agoo7gactphgk +INSTANCE=IMEX diff --git a/client/.env.production.promanager b/client/.env.production.promanager new file mode 100644 index 000000000..112ef4751 --- /dev/null +++ b/client/.env.production.promanager @@ -0,0 +1,15 @@ +GENERATE_SOURCEMAP=true +REACT_APP_GRAPHQL_ENDPOINT=https://db.imex.online/v1/graphql +REACT_APP_GRAPHQL_ENDPOINT_WS=wss://db.imex.online/v1/graphql +REACT_APP_GA_CODE=231103507 +REACT_APP_FIREBASE_CONFIG={"apiKey":"AIzaSyDSezy-jGJreo7ulgpLdlpOwAOrgcaEkhU","authDomain":"imex-prod.firebaseapp.com","databaseURL":"https://imex-prod.firebaseio.com","projectId":"imex-prod","storageBucket":"imex-prod.appspot.com","messagingSenderId":"253497221485","appId":"1:253497221485:web:3c81c483b94db84b227a64","measurementId":"G-NTWBKG2L0M"} +REACT_APP_CLOUDINARY_ENDPOINT_API=https://api.cloudinary.com/v1_1/bodyshop +REACT_APP_CLOUDINARY_ENDPOINT=https://res.cloudinary.com/bodyshop +REACT_APP_CLOUDINARY_API_KEY=473322739956866 +REACT_APP_CLOUDINARY_THUMB_TRANSFORMATIONS=c_fill,h_250,w_250 +REACT_APP_FIREBASE_PUBLIC_VAPID_KEY='BMgZT1NZztW2DsJl8Mg2L04hgY9FzAg6b8fbzgNAfww2VDzH3VE63Ot9EaP_U7KWS2JT-7HPHaw0T_Tw_5vkZc8' +REACT_APP_STRIPE_PUBLIC_KEY=pk_test_51GqB4TJl3nQjrZ0wCQWAxAhlNF8jKe0tipIa6ExBaxwJGitwvFsIZUEua4dUzaMIAuXp4qwYHXx7lgjyQSwP0Pe900vzm38C7g +REACT_APP_AXIOS_BASE_API_URL=https://api.imex.online/ +REACT_APP_REPORTS_SERVER_URL=https://reports.imex.online +REACT_APP_SPLIT_API=et9pjkik6bn67he5evpmpr1agoo7gactphgk +INSTANCE=PROMANAGER diff --git a/client/.env.production.rome b/client/.env.production.rome new file mode 100644 index 000000000..f8d45517d --- /dev/null +++ b/client/.env.production.rome @@ -0,0 +1,15 @@ +GENERATE_SOURCEMAP=true +REACT_APP_GRAPHQL_ENDPOINT=https://db.romeonline.io/v1/graphql +REACT_APP_GRAPHQL_ENDPOINT_WS=wss://db.romeonline.io/v1/graphql +REACT_APP_GA_CODE=231103507 +REACT_APP_FIREBASE_CONFIG={ "apiKey": "AIzaSyAuLQR9SV5LsVxjU8wh9hvFLdhcAHU6cxE", "authDomain": "rome-prod-1.firebaseapp.com", "projectId": "rome-prod-1", "storageBucket": "rome-prod-1.appspot.com", "messagingSenderId": "147786367145", "appId": "1:147786367145:web:9d4cba68071c3f29a8a9b8", "measurementId": "G-G8Z9DRHTZS"} +REACT_APP_CLOUDINARY_ENDPOINT_API=https://api.cloudinary.com/v1_1/bodyshop +REACT_APP_CLOUDINARY_ENDPOINT=https://res.cloudinary.com/bodyshop +REACT_APP_CLOUDINARY_API_KEY=473322739956866 +REACT_APP_CLOUDINARY_THUMB_TRANSFORMATIONS=c_fill,h_250,w_250 +REACT_APP_FIREBASE_PUBLIC_VAPID_KEY='BP1B7ZTYpn-KMt6nOxlld6aS8Skt3Q7ZLEqP0hAvGHxG4UojPYiXZ6kPlzZkUC5jH-EcWXomTLtmadAIxurfcHo' +REACT_APP_STRIPE_PUBLIC_KEY=pk_test_51GqB4TJl3nQjrZ0wCQWAxAhlNF8jKe0tipIa6ExBaxwJGitwvFsIZUEua4dUzaMIAuXp4qwYHXx7lgjyQSwP0Pe900vzm38C7g +REACT_APP_AXIOS_BASE_API_URL=https://api.romeonline.io/ +REACT_APP_REPORTS_SERVER_URL=https://reports.romeonline.io +REACT_APP_SPLIT_API=et9pjkik6bn67he5evpmpr1agoo7gactphgk +INSTANCE=ROME diff --git a/client/.env.test b/client/.env.test.imex similarity index 94% rename from client/.env.test rename to client/.env.test.imex index c6403dee6..ea15d7ad6 100644 --- a/client/.env.test +++ b/client/.env.test.imex @@ -11,4 +11,5 @@ REACT_APP_STRIPE_PUBLIC_KEY=pk_test_51GqB4TJl3nQjrZ0wCQWAxAhlNF8jKe0tipIa6ExBaxw REACT_APP_AXIOS_BASE_API_URL=https://api.test.imex.online/ REACT_APP_REPORTS_SERVER_URL=https://reports3.test.imex.online REACT_APP_IS_TEST=true -REACT_APP_SPLIT_API=ts615lqgnmk84thn72uk18uu5pgce6e0l4rc \ No newline at end of file +REACT_APP_SPLIT_API=ts615lqgnmk84thn72uk18uu5pgce6e0l4rc +INSTANCE=IMEX diff --git a/client/.env.test.promanager b/client/.env.test.promanager new file mode 100644 index 000000000..0b5b0da03 --- /dev/null +++ b/client/.env.test.promanager @@ -0,0 +1,15 @@ +REACT_APP_GRAPHQL_ENDPOINT=https://db.test.bodyshop.app/v1/graphql +REACT_APP_GRAPHQL_ENDPOINT_WS=wss://db.test.bodyshop.app/v1/graphql +REACT_APP_GA_CODE=231099835 +REACT_APP_FIREBASE_CONFIG={ "apiKey":"AIzaSyBw7_GTy7GtQyfkIRPVrWHEGKfcqeyXw0c", "authDomain":"imex-test.firebaseapp.com", "projectId":"imex-test", "storageBucket":"imex-test.appspot.com", "messagingSenderId":"991923618608", "appId":"1:991923618608:web:633437569cdad78299bef5", "measurementId":"G-TW0XLZEH18"} +REACT_APP_CLOUDINARY_ENDPOINT_API=https://api.cloudinary.com/v1_1/bodyshop +REACT_APP_CLOUDINARY_ENDPOINT=https://res.cloudinary.com/bodyshop +REACT_APP_CLOUDINARY_API_KEY=473322739956866 +REACT_APP_CLOUDINARY_THUMB_TRANSFORMATIONS=c_fill,h_250,w_250 +REACT_APP_FIREBASE_PUBLIC_VAPID_KEY='BN2GcDPjipR5MTEosO5dT4CfQ3cmrdBIsI4juoOQrRijn_5aRiHlwj1mlq0W145mOusx6xynEKl_tvYJhpCc9lo' +REACT_APP_STRIPE_PUBLIC_KEY=pk_test_51GqB4TJl3nQjrZ0wCQWAxAhlNF8jKe0tipIa6ExBaxwJGitwvFsIZUEua4dUzaMIAuXp4qwYHXx7lgjyQSwP0Pe900vzm38C7g +REACT_APP_AXIOS_BASE_API_URL=https://api.test.imex.online/ +REACT_APP_REPORTS_SERVER_URL=https://reports3.test.imex.online +REACT_APP_IS_TEST=true +REACT_APP_SPLIT_API=ts615lqgnmk84thn72uk18uu5pgce6e0l4rc +INSTANCE=PROMANAGER diff --git a/client/.env.test.rome b/client/.env.test.rome new file mode 100644 index 000000000..2a5182437 --- /dev/null +++ b/client/.env.test.rome @@ -0,0 +1,15 @@ +REACT_APP_GRAPHQL_ENDPOINT=https://db.test.romeonline.io/v1/graphql +REACT_APP_GRAPHQL_ENDPOINT_WS=wss://db.test.romeonline.io/v1/graphql +REACT_APP_GA_CODE=231103507 +REACT_APP_FIREBASE_CONFIG={ "apiKey": "AIzaSyAuLQR9SV5LsVxjU8wh9hvFLdhcAHU6cxE", "authDomain": "rome-prod-1.firebaseapp.com", "projectId": "rome-prod-1", "storageBucket": "rome-prod-1.appspot.com", "messagingSenderId": "147786367145", "appId": "1:147786367145:web:9d4cba68071c3f29a8a9b8", "measurementId": "G-G8Z9DRHTZS"} +REACT_APP_CLOUDINARY_ENDPOINT_API=https://api.cloudinary.com/v1_1/bodyshop +REACT_APP_CLOUDINARY_ENDPOINT=https://res.cloudinary.com/bodyshop +REACT_APP_CLOUDINARY_API_KEY=473322739956866 +REACT_APP_CLOUDINARY_THUMB_TRANSFORMATIONS=c_fill,h_250,w_250 +REACT_APP_FIREBASE_PUBLIC_VAPID_KEY='BP1B7ZTYpn-KMt6nOxlld6aS8Skt3Q7ZLEqP0hAvGHxG4UojPYiXZ6kPlzZkUC5jH-EcWXomTLtmadAIxurfcHo' +REACT_APP_STRIPE_PUBLIC_KEY=pk_test_51GqB4TJl3nQjrZ0wCQWAxAhlNF8jKe0tipIa6ExBaxwJGitwvFsIZUEua4dUzaMIAuXp4qwYHXx7lgjyQSwP0Pe900vzm38C7g +REACT_APP_AXIOS_BASE_API_URL=https://api.test.romeonline.io/ +REACT_APP_REPORTS_SERVER_URL=https://reports.test.romeonline.io +REACT_APP_IS_TEST=true +REACT_APP_SPLIT_API=ts615lqgnmk84thn72uk18uu5pgce6e0l4rc +INSTANCE=ROME diff --git a/client/craco.config.js b/client/craco.config.js index 96aa36127..54f46cdb6 100644 --- a/client/craco.config.js +++ b/client/craco.config.js @@ -13,21 +13,7 @@ const v4Token = convertLegacyToken(mapToken); module.exports = { plugins: [ - // { - // plugin: SentryWebpackPlugin, - // options: { - // // sentry-cli configuration - // authToken: - // "6b45b028a02342db97a9a2f92c0959058665443d379d4a3a876430009e744260", - // org: "snapt-software", - // project: "imexonline", - // release: process.env.REACT_APP_GIT_SHA, - // - // // webpack-specific configuration - // include: ".", - // ignore: ["node_modules", "webpack.config.js"], - // }, - // }, + { plugin: CracoLessPlugin, options: { diff --git a/client/package-lock.json b/client/package-lock.json index e5455a68a..3aa7489a5 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -92,6 +92,7 @@ }, "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.21.11", + "@dotenvx/dotenvx": "^0.15.0", "@sentry/webpack-plugin": "^2.14.0", "@testing-library/cypress": "^10.0.1", "cypress": "^13.6.4", @@ -2879,6 +2880,106 @@ "ms": "^2.1.1" } }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "dev": true, + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@dotenvx/dotenvx": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@dotenvx/dotenvx/-/dotenvx-0.15.0.tgz", + "integrity": "sha512-+JyZ+hKkrM6gPnfJ18/oNeaO8nkmu6HjUttGymwODKZrFTnTe2LMmA6IlJIaR8TM7Si4Fkyn8I9XWR0086NuSA==", + "dev": true, + "dependencies": { + "@inquirer/prompts": "^3.3.0", + "axios": "^1.6.2", + "chalk": "^4.1.2", + "clipboardy": "^2.3.0", + "commander": "^11.1.0", + "conf": "^10.2.0", + "dotenv": "^16.4.0", + "dotenv-expand": "^10.0.0", + "execa": "^5.1.1", + "ignore": "^5.3.0", + "open": "^8.4.2", + "ora": "^5.4.1", + "update-notifier": "^5.1.0", + "winston": "^3.11.0", + "xxhashjs": "^0.2.2" + }, + "bin": { + "dotenvx": "src/cli/dotenvx.js", + "git-dotenvx": "src/cli/dotenvx.js" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/dotenv-expand": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", + "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/@emotion/hash": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", @@ -3586,6 +3687,205 @@ "react": "*" } }, + "node_modules/@inquirer/checkbox": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-1.5.2.tgz", + "integrity": "sha512-CifrkgQjDkUkWexmgYYNyB5603HhTHI91vLFeQXh6qrTKiCMVASol01Rs1cv6LP/A2WccZSRlJKZhbaBIs/9ZA==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "figures": "^3.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/confirm": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-2.0.17.tgz", + "integrity": "sha512-EqzhGryzmGpy2aJf6LxJVhndxYmFs+m8cxXzf8nejb1DE3sabf6mUgBcp4J0jAUEiAcYzqmkqRr7LPFh/WdnXA==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/core": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-6.0.0.tgz", + "integrity": "sha512-fKi63Khkisgda3ohnskNf5uZJj+zXOaBvOllHsOkdsXRA/ubQLJQrZchFFi57NKbZzkTunXiBMdvWOv71alonw==", + "dev": true, + "dependencies": { + "@inquirer/type": "^1.1.6", + "@types/mute-stream": "^0.0.4", + "@types/node": "^20.10.7", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "cli-spinners": "^2.9.2", + "cli-width": "^4.1.0", + "figures": "^3.2.0", + "mute-stream": "^1.0.0", + "run-async": "^3.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/core/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@inquirer/core/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/editor": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-1.2.15.tgz", + "integrity": "sha512-gQ77Ls09x5vKLVNMH9q/7xvYPT6sIs5f7URksw+a2iJZ0j48tVS6crLqm2ugG33tgXHIwiEqkytY60Zyh5GkJQ==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "chalk": "^4.1.2", + "external-editor": "^3.1.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/expand": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-1.1.16.tgz", + "integrity": "sha512-TGLU9egcuo+s7PxphKUCnJnpCIVY32/EwPCLLuu+gTvYiD8hZgx8Z2niNQD36sa6xcfpdLY6xXDBiL/+g1r2XQ==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "chalk": "^4.1.2", + "figures": "^3.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/input": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-1.2.16.tgz", + "integrity": "sha512-Ou0LaSWvj1ni+egnyQ+NBtfM1885UwhRCMtsRt2bBO47DoC1dwtCa+ZUNgrxlnCHHF0IXsbQHYtIIjFGAavI4g==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/password": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-1.1.16.tgz", + "integrity": "sha512-aZYZVHLUXZ2gbBot+i+zOJrks1WaiI95lvZCn1sKfcw6MtSSlYC8uDX8sTzQvAsQ8epHoP84UNvAIT0KVGOGqw==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/prompts": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-3.3.2.tgz", + "integrity": "sha512-k52mOMRvTUejrqyF1h8Z07chC+sbaoaUYzzr1KrJXyj7yaX7Nrh0a9vktv8TuocRwIJOQMaj5oZEmkspEcJFYQ==", + "dev": true, + "dependencies": { + "@inquirer/checkbox": "^1.5.2", + "@inquirer/confirm": "^2.0.17", + "@inquirer/core": "^6.0.0", + "@inquirer/editor": "^1.2.15", + "@inquirer/expand": "^1.1.16", + "@inquirer/input": "^1.2.16", + "@inquirer/password": "^1.1.16", + "@inquirer/rawlist": "^1.2.16", + "@inquirer/select": "^1.3.3" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/rawlist": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-1.2.16.tgz", + "integrity": "sha512-pZ6TRg2qMwZAOZAV6TvghCtkr53dGnK29GMNQ3vMZXSNguvGqtOVc4j/h1T8kqGJFagjyfBZhUPGwNS55O5qPQ==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/select": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-1.3.3.tgz", + "integrity": "sha512-RzlRISXWqIKEf83FDC9ZtJ3JvuK1l7aGpretf41BCWYrvla2wU8W8MTRNMiPrPJ+1SIqrRC1nZdZ60hD9hRXLg==", + "dev": true, + "dependencies": { + "@inquirer/core": "^6.0.0", + "@inquirer/type": "^1.1.6", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "figures": "^3.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/@inquirer/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.2.0.tgz", + "integrity": "sha512-/vvkUkYhrjbm+RolU7V1aUFDydZVKNKqKHR5TsE+j5DXgXFwrsOPcoGUJ02K0O7q7O53CU2DOTMYCHeGZ25WHA==", + "dev": true, + "engines": { + "node": ">=18" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -4878,6 +5178,15 @@ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/@sinonjs/commons": { "version": "1.8.6", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", @@ -5181,6 +5490,18 @@ "url": "https://github.com/sponsors/gregberge" } }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@tanem/react-nprogress": { "version": "5.0.51", "resolved": "https://registry.npmjs.org/@tanem/react-nprogress/-/react-nprogress-5.0.51.tgz", @@ -5568,10 +5889,19 @@ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, + "node_modules/@types/mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/node": { - "version": "20.10.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.4.tgz", - "integrity": "sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==", + "version": "20.11.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz", + "integrity": "sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==", "dependencies": { "undici-types": "~5.26.4" } @@ -5723,6 +6053,12 @@ "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.0.tgz", "integrity": "sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw==" }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", + "dev": true + }, "node_modules/@types/trusted-types": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", @@ -5743,6 +6079,12 @@ "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.3.tgz", "integrity": "sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q==" }, + "node_modules/@types/wrap-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", + "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", + "dev": true + }, "node_modules/@types/ws": { "version": "8.5.10", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", @@ -6384,6 +6726,15 @@ "ajv": "^6.9.1" } }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -6818,6 +7169,15 @@ "node": ">= 4.0.0" } }, + "node_modules/atomically": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", + "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", + "dev": true, + "engines": { + "node": ">=10.12.0" + } + }, "node_modules/autoprefixer": { "version": "10.4.16", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", @@ -7273,6 +7633,17 @@ "node": ">=8" } }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "node_modules/blob-util": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", @@ -7388,6 +7759,28 @@ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -7534,6 +7927,57 @@ "node": ">= 0.8" } }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true + }, + "node_modules/cacheable-request/node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/cachedir": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", @@ -7712,6 +8156,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, "node_modules/check-more-types": { "version": "2.24.0", "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", @@ -7815,6 +8265,18 @@ "node": ">=6" } }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -7827,6 +8289,18 @@ "node": ">=8" } }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cli-table3": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", @@ -7858,11 +8332,152 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" }, + "node_modules/clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "dependencies": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clipboardy/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/clipboardy/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clipboardy/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clipboardy/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clipboardy/node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/clipboardy/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/clipboardy/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/clipboardy/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clipboardy/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clipboardy/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -7876,6 +8491,15 @@ "node": ">=12" } }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -7889,6 +8513,18 @@ "node": ">=6" } }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/clsx": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", @@ -7988,6 +8624,16 @@ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" }, + "node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -8004,6 +8650,31 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", @@ -8014,6 +8685,16 @@ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" }, + "node_modules/colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "dev": true, + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -8117,6 +8798,114 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, + "node_modules/conf": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/conf/-/conf-10.2.0.tgz", + "integrity": "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==", + "dev": true, + "dependencies": { + "ajv": "^8.6.3", + "ajv-formats": "^2.1.1", + "atomically": "^1.7.0", + "debounce-fn": "^4.0.0", + "dot-prop": "^6.0.1", + "env-paths": "^2.2.1", + "json-schema-typed": "^7.0.3", + "onetime": "^5.1.2", + "pkg-up": "^3.1.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conf/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/conf/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/configstore/node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/configstore/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/configstore/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/configstore/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/confusing-browser-globals": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", @@ -8979,6 +9768,30 @@ "dayjs": "^1.11.10" } }, + "node_modules/debounce-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", + "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/debounce-fn/node_modules/mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -9025,6 +9838,18 @@ "node": ">=14.16" } }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -9079,6 +9904,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -9144,6 +9978,24 @@ "node": ">=10.17.0" } }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, "node_modules/define-data-property": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", @@ -9499,6 +10351,12 @@ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "dev": true + }, "node_modules/earcut": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", @@ -9562,6 +10420,12 @@ "node": ">= 4" } }, + "node_modules/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", + "dev": true + }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -9688,6 +10552,15 @@ "node": ">= 6" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", @@ -9864,6 +10737,15 @@ "node": ">=6" } }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -10754,6 +11636,44 @@ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -10859,6 +11779,12 @@ "pend": "~1.2.0" } }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "dev": true + }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -11113,6 +12039,12 @@ "resolved": "https://registry.npmjs.org/svg-path-properties/-/svg-path-properties-0.2.2.tgz", "integrity": "sha512-GmrB+b6woz6CCdQe6w1GHs/1lt25l7SR5hmhF8jRdarpv/OgjLyuQygLu1makJapixeb1aQhP/Oa1iKi93o/aQ==" }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", + "dev": true + }, "node_modules/follow-redirects": { "version": "1.15.4", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", @@ -11620,6 +12552,40 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/got/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -11739,6 +12705,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/hasown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", @@ -11971,6 +12946,12 @@ "entities": "^2.0.0" } }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", @@ -12217,6 +13198,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/import-local": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", @@ -12627,6 +13617,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", @@ -12651,6 +13650,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -12883,6 +13894,12 @@ "node": ">=8" } }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", @@ -14246,6 +15263,12 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, + "node_modules/json-schema-typed": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", + "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==", + "dev": true + }, "node_modules/json-source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/json-source-map/-/json-source-map-0.6.1.tgz", @@ -14412,6 +15435,12 @@ "node": ">= 8" } }, + "node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "dev": true + }, "node_modules/language-subtag-registry": { "version": "0.3.22", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", @@ -14428,6 +15457,18 @@ "node": ">=0.10" } }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/launch-editor": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", @@ -14748,6 +15789,32 @@ "node": ">=8" } }, + "node_modules/logform": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.6.0.tgz", + "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==", + "dev": true, + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/logform/node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/logrocket": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/logrocket/-/logrocket-7.0.0.tgz", @@ -14786,6 +15853,15 @@ "tslib": "^2.0.3" } }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/lru-cache": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", @@ -15554,6 +16630,15 @@ "node": ">=6" } }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/mini-css-extract-plugin": { "version": "2.7.6", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", @@ -15710,6 +16795,15 @@ "multicast-dns": "cli.js" } }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -15784,6 +16878,12 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -16077,6 +17177,15 @@ "wrappy": "1" } }, + "node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "dev": true, + "dependencies": { + "fn.name": "1.x.x" + } + }, "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", @@ -16145,12 +17254,62 @@ "node": ">= 0.8.0" } }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ospath": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", "dev": true }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -16207,6 +17366,30 @@ "node": ">=6" } }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -17750,6 +18933,15 @@ "node": ">= 0.8.0" } }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", @@ -17948,6 +19140,18 @@ "node": ">=6" } }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -18082,6 +19286,21 @@ "node": ">=0.10.0" } }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, "node_modules/rc-animate": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-3.1.1.tgz", @@ -18757,6 +19976,21 @@ "react-dom": "*" } }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", @@ -19714,6 +20948,30 @@ "node": ">=4" } }, + "node_modules/registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "dev": true, + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", @@ -19936,6 +21194,15 @@ "node": ">=0.8" } }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -20075,6 +21342,15 @@ "randombytes": "^2.1.0" } }, + "node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -20312,6 +21588,27 @@ "node": ">=10" } }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -20554,6 +21851,21 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -20903,6 +22215,15 @@ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -21198,6 +22519,15 @@ "node": ">=10" } }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -21913,6 +23243,12 @@ "node": "*" } }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", + "dev": true + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -22005,6 +23341,15 @@ "node": ">=4" } }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -22083,6 +23428,15 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "dev": true, + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/trough": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", @@ -22707,6 +24061,52 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/update-notifier/node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -22724,6 +24124,18 @@ "requires-port": "^1.0.0" } }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/use-memo-one": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz", @@ -22969,6 +24381,15 @@ "minimalistic-assert": "^1.0.0" } }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, "node_modules/web-vitals": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-3.5.2.tgz", @@ -23450,11 +24871,68 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" }, + "node_modules/winston": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.11.0.tgz", + "integrity": "sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==", + "dev": true, + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.5.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.0.tgz", + "integrity": "sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==", + "dev": true, + "dependencies": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston/node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -23913,6 +25391,15 @@ } } }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", diff --git a/client/package.json b/client/package.json index 20f03f8a6..77ff5f0c5 100644 --- a/client/package.json +++ b/client/package.json @@ -89,15 +89,21 @@ "scripts": { "analyze": "source-map-explorer 'build/static/js/*.js'", "start": "craco start", + "start:imex": "dotenvx run --env-file=.env.development.imex -- craco start", + "start:rome": "dotenvx run --env-file=.env.development.rome -- craco start", + "start:promanager": "dotenvx run --env-file=.env.development.promanager -- craco start", "build": "REACT_APP_GIT_SHA=`git rev-parse --short HEAD` craco build", - "build:test": "env-cmd -f .env.test npm run build", - "build-deploy:test": "npm run build:test && s3cmd sync build/* s3://imex-online-test && echo '🚀 TESTING Deployed!'", - "buildcra": "REACT_APP_GIT_SHA=`git rev-parse --short HEAD` craco build", + "build:test:imex": "env-cmd -f .env.test.imex npm run build", + "build:test:rome": "env-cmd -f .env.test.rome npm run build", + "build:test:promanager": "env-cmd -f .env.test.promanager npm run build", + "build:production:imex": "env-cmd -f .env.production.imex npm run build", + "build:production:rome": "env-cmd -f .env.production.rome npm run build", + "build:production:promanager": "env-cmd -f .env.production.promanager npm run build", "test": "cypress open", "eject": "react-scripts eject", "madge": "madge --image ./madge-graph.svg --extensions js,jsx,ts,tsx --circular .", "eulaize": "node src/utils/eulaize.js", - "sentry:sourcemaps": "sentry-cli sourcemaps inject --org imex --project imexonline ./build && sentry-cli sourcemaps upload --org imex --project imexonline ./build" + "sentry:sourcemaps:imex": "sentry-cli sourcemaps inject --org imex --project imexonline ./build && sentry-cli sourcemaps upload --org imex --project imexonline ./build" }, "eslintConfig": { "extends": [ @@ -123,6 +129,7 @@ }, "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.21.11", + "@dotenvx/dotenvx": "^0.15.0", "@sentry/webpack-plugin": "^2.14.0", "@testing-library/cypress": "^10.0.1", "cypress": "^13.6.4", diff --git a/client/patches/peerjs+1.3.2.patch b/client/patches/peerjs+1.3.2.patch deleted file mode 100644 index 197ede2f2..000000000 --- a/client/patches/peerjs+1.3.2.patch +++ /dev/null @@ -1,13087 +0,0 @@ -diff --git a/node_modules/peerjs/dist/adapter.js b/node_modules/peerjs/dist/adapter.js -new file mode 100644 -index 0000000..6bfbeb8 ---- /dev/null -+++ b/node_modules/peerjs/dist/adapter.js -@@ -0,0 +1,8 @@ -+"use strict"; -+var __importDefault = (this && this.__importDefault) || function (mod) { -+ return (mod && mod.__esModule) ? mod : { "default": mod }; -+}; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.webRTCAdapter = void 0; -+var webrtc_adapter_1 = __importDefault(require("webrtc-adapter")); -+exports.webRTCAdapter = webrtc_adapter_1.default; -diff --git a/node_modules/peerjs/dist/api.js b/node_modules/peerjs/dist/api.js -new file mode 100644 -index 0000000..8c091c2 ---- /dev/null -+++ b/node_modules/peerjs/dist/api.js -@@ -0,0 +1,142 @@ -+"use strict"; -+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { -+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } -+ return new (P || (P = Promise))(function (resolve, reject) { -+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } -+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } -+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } -+ step((generator = generator.apply(thisArg, _arguments || [])).next()); -+ }); -+}; -+var __generator = (this && this.__generator) || function (thisArg, body) { -+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; -+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; -+ function verb(n) { return function (v) { return step([n, v]); }; } -+ function step(op) { -+ if (f) throw new TypeError("Generator is already executing."); -+ while (_) try { -+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; -+ if (y = 0, t) op = [op[0] & 2, t.value]; -+ switch (op[0]) { -+ case 0: case 1: t = op; break; -+ case 4: _.label++; return { value: op[1], done: false }; -+ case 5: _.label++; y = op[1]; op = [0]; continue; -+ case 7: op = _.ops.pop(); _.trys.pop(); continue; -+ default: -+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } -+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } -+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } -+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } -+ if (t[2]) _.ops.pop(); -+ _.trys.pop(); continue; -+ } -+ op = body.call(thisArg, _); -+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } -+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; -+ } -+}; -+var __importDefault = (this && this.__importDefault) || function (mod) { -+ return (mod && mod.__esModule) ? mod : { "default": mod }; -+}; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.API = void 0; -+var util_1 = require("./util"); -+var logger_1 = __importDefault(require("./logger")); -+var API = /** @class */ (function () { -+ function API(_options) { -+ this._options = _options; -+ } -+ API.prototype._buildUrl = function (method) { -+ var protocol = this._options.secure ? "https://" : "http://"; -+ var url = protocol + -+ this._options.host + -+ ":" + -+ this._options.port + -+ this._options.path + -+ this._options.key + -+ "/" + -+ method; -+ var queryString = "?ts=" + new Date().getTime() + "" + Math.random(); -+ url += queryString; -+ return url; -+ }; -+ /** Get a unique ID from the server via XHR and initialize with it. */ -+ API.prototype.retrieveId = function () { -+ return __awaiter(this, void 0, void 0, function () { -+ var url, response, error_1, pathError; -+ return __generator(this, function (_a) { -+ switch (_a.label) { -+ case 0: -+ url = this._buildUrl("id"); -+ _a.label = 1; -+ case 1: -+ _a.trys.push([1, 3, , 4]); -+ return [4 /*yield*/, fetch(url)]; -+ case 2: -+ response = _a.sent(); -+ if (response.status !== 200) { -+ throw new Error("Error. Status:" + response.status); -+ } -+ return [2 /*return*/, response.text()]; -+ case 3: -+ error_1 = _a.sent(); -+ logger_1.default.error("Error retrieving ID", error_1); -+ pathError = ""; -+ if (this._options.path === "/" && -+ this._options.host !== util_1.util.CLOUD_HOST) { -+ pathError = -+ " If you passed in a `path` to your self-hosted PeerServer, " + -+ "you'll also need to pass in that same path when creating a new " + -+ "Peer."; -+ } -+ throw new Error("Could not get an ID from the server." + pathError); -+ case 4: return [2 /*return*/]; -+ } -+ }); -+ }); -+ }; -+ /** @deprecated */ -+ API.prototype.listAllPeers = function () { -+ return __awaiter(this, void 0, void 0, function () { -+ var url, response, helpfulError, error_2; -+ return __generator(this, function (_a) { -+ switch (_a.label) { -+ case 0: -+ url = this._buildUrl("peers"); -+ _a.label = 1; -+ case 1: -+ _a.trys.push([1, 3, , 4]); -+ return [4 /*yield*/, fetch(url)]; -+ case 2: -+ response = _a.sent(); -+ if (response.status !== 200) { -+ if (response.status === 401) { -+ helpfulError = ""; -+ if (this._options.host === util_1.util.CLOUD_HOST) { -+ helpfulError = -+ "It looks like you're using the cloud server. You can email " + -+ "team@peerjs.com to enable peer listing for your API key."; -+ } -+ else { -+ helpfulError = -+ "You need to enable `allow_discovery` on your self-hosted " + -+ "PeerServer to use this feature."; -+ } -+ throw new Error("It doesn't look like you have permission to list peers IDs. " + -+ helpfulError); -+ } -+ throw new Error("Error. Status:" + response.status); -+ } -+ return [2 /*return*/, response.json()]; -+ case 3: -+ error_2 = _a.sent(); -+ logger_1.default.error("Error retrieving list peers", error_2); -+ throw new Error("Could not get list peers from the server." + error_2); -+ case 4: return [2 /*return*/]; -+ } -+ }); -+ }); -+ }; -+ return API; -+}()); -+exports.API = API; -diff --git a/node_modules/peerjs/dist/baseconnection.js b/node_modules/peerjs/dist/baseconnection.js -new file mode 100644 -index 0000000..0c4e504 ---- /dev/null -+++ b/node_modules/peerjs/dist/baseconnection.js -@@ -0,0 +1,40 @@ -+"use strict"; -+var __extends = (this && this.__extends) || (function () { -+ var extendStatics = function (d, b) { -+ extendStatics = Object.setPrototypeOf || -+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -+ return extendStatics(d, b); -+ }; -+ return function (d, b) { -+ if (typeof b !== "function" && b !== null) -+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -+ extendStatics(d, b); -+ function __() { this.constructor = d; } -+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -+ }; -+})(); -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.BaseConnection = void 0; -+var eventemitter3_1 = require("eventemitter3"); -+var BaseConnection = /** @class */ (function (_super) { -+ __extends(BaseConnection, _super); -+ function BaseConnection(peer, provider, options) { -+ var _this = _super.call(this) || this; -+ _this.peer = peer; -+ _this.provider = provider; -+ _this.options = options; -+ _this._open = false; -+ _this.metadata = options.metadata; -+ return _this; -+ } -+ Object.defineProperty(BaseConnection.prototype, "open", { -+ get: function () { -+ return this._open; -+ }, -+ enumerable: false, -+ configurable: true -+ }); -+ return BaseConnection; -+}(eventemitter3_1.EventEmitter)); -+exports.BaseConnection = BaseConnection; -diff --git a/node_modules/peerjs/dist/dataconnection.js b/node_modules/peerjs/dist/dataconnection.js -new file mode 100644 -index 0000000..64262ac ---- /dev/null -+++ b/node_modules/peerjs/dist/dataconnection.js -@@ -0,0 +1,298 @@ -+"use strict"; -+var __extends = (this && this.__extends) || (function () { -+ var extendStatics = function (d, b) { -+ extendStatics = Object.setPrototypeOf || -+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -+ return extendStatics(d, b); -+ }; -+ return function (d, b) { -+ if (typeof b !== "function" && b !== null) -+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -+ extendStatics(d, b); -+ function __() { this.constructor = d; } -+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -+ }; -+})(); -+var __importDefault = (this && this.__importDefault) || function (mod) { -+ return (mod && mod.__esModule) ? mod : { "default": mod }; -+}; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.DataConnection = void 0; -+var util_1 = require("./util"); -+var logger_1 = __importDefault(require("./logger")); -+var negotiator_1 = require("./negotiator"); -+var enums_1 = require("./enums"); -+var baseconnection_1 = require("./baseconnection"); -+var encodingQueue_1 = require("./encodingQueue"); -+/** -+ * Wraps a DataChannel between two Peers. -+ */ -+// @ts-ignore -+var DataConnection = /** @class */ (function (_super) { -+ __extends(DataConnection, _super); -+ function DataConnection(peerId, provider, options) { -+ var _this = _super.call(this, peerId, provider, options) || this; -+ _this.stringify = JSON.stringify; -+ _this.parse = JSON.parse; -+ _this._buffer = []; -+ _this._bufferSize = 0; -+ _this._buffering = false; -+ _this._chunkedData = {}; -+ _this._encodingQueue = new encodingQueue_1.EncodingQueue(); -+ _this.connectionId = -+ _this.options.connectionId || DataConnection.ID_PREFIX + util_1.util.randomToken(); -+ _this.label = _this.options.label || _this.connectionId; -+ _this.serialization = _this.options.serialization || enums_1.SerializationType.Binary; -+ _this.reliable = !!_this.options.reliable; -+ _this._encodingQueue.on('done', function (ab) { -+ _this._bufferedSend(ab); -+ }); -+ _this._encodingQueue.on('error', function () { -+ logger_1.default.error("DC#" + _this.connectionId + ": Error occured in encoding from blob to arraybuffer, close DC"); -+ _this.close(); -+ }); -+ _this._negotiator = new negotiator_1.Negotiator(_this); -+ _this._negotiator.startConnection(_this.options._payload || { -+ originator: true -+ }); -+ return _this; -+ } -+ Object.defineProperty(DataConnection.prototype, "type", { -+ get: function () { -+ return enums_1.ConnectionType.Data; -+ }, -+ enumerable: false, -+ configurable: true -+ }); -+ Object.defineProperty(DataConnection.prototype, "dataChannel", { -+ get: function () { -+ return this._dc; -+ }, -+ enumerable: false, -+ configurable: true -+ }); -+ Object.defineProperty(DataConnection.prototype, "bufferSize", { -+ get: function () { return this._bufferSize; }, -+ enumerable: false, -+ configurable: true -+ }); -+ /** Called by the Negotiator when the DataChannel is ready. */ -+ DataConnection.prototype.initialize = function (dc) { -+ this._dc = dc; -+ this._configureDataChannel(); -+ }; -+ DataConnection.prototype._configureDataChannel = function () { -+ var _this = this; -+ if (!util_1.util.supports.binaryBlob || util_1.util.supports.reliable) { -+ this.dataChannel.binaryType = "arraybuffer"; -+ } -+ this.dataChannel.onopen = function () { -+ logger_1.default.log("DC#" + _this.connectionId + " dc connection success"); -+ _this._open = true; -+ _this.emit(enums_1.ConnectionEventType.Open); -+ }; -+ this.dataChannel.onmessage = function (e) { -+ logger_1.default.log("DC#" + _this.connectionId + " dc onmessage:", e.data); -+ _this._handleDataMessage(e); -+ }; -+ this.dataChannel.onclose = function () { -+ logger_1.default.log("DC#" + _this.connectionId + " dc closed for:", _this.peer); -+ _this.close(); -+ }; -+ }; -+ // Handles a DataChannel message. -+ DataConnection.prototype._handleDataMessage = function (_a) { -+ var _this = this; -+ var data = _a.data; -+ var datatype = data.constructor; -+ var isBinarySerialization = this.serialization === enums_1.SerializationType.Binary || -+ this.serialization === enums_1.SerializationType.BinaryUTF8; -+ var deserializedData = data; -+ if (isBinarySerialization) { -+ if (datatype === Blob) { -+ // Datatype should never be blob -+ util_1.util.blobToArrayBuffer(data, function (ab) { -+ // @ts-ignore -+ var unpackedData = util_1.util.unpack(ab); -+ _this.emit(enums_1.ConnectionEventType.Data, unpackedData); -+ }); -+ return; -+ } -+ else if (datatype === ArrayBuffer) { -+ deserializedData = util_1.util.unpack(data); -+ } -+ else if (datatype === String) { -+ // String fallback for binary data for browsers that don't support binary yet -+ var ab = util_1.util.binaryStringToArrayBuffer(data); -+ deserializedData = util_1.util.unpack(ab); -+ } -+ } -+ else if (this.serialization === enums_1.SerializationType.JSON) { -+ deserializedData = this.parse(data); -+ } -+ // Check if we've chunked--if so, piece things back together. -+ // We're guaranteed that this isn't 0. -+ if (deserializedData.__peerData) { -+ this._handleChunk(deserializedData); -+ return; -+ } -+ _super.prototype.emit.call(this, enums_1.ConnectionEventType.Data, deserializedData); -+ }; -+ DataConnection.prototype._handleChunk = function (data) { -+ var id = data.__peerData; -+ var chunkInfo = this._chunkedData[id] || { -+ data: [], -+ count: 0, -+ total: data.total -+ }; -+ chunkInfo.data[data.n] = data.data; -+ chunkInfo.count++; -+ this._chunkedData[id] = chunkInfo; -+ if (chunkInfo.total === chunkInfo.count) { -+ // Clean up before making the recursive call to `_handleDataMessage`. -+ delete this._chunkedData[id]; -+ // We've received all the chunks--time to construct the complete data. -+ var data_1 = new Blob(chunkInfo.data); -+ this._handleDataMessage({ data: data_1 }); -+ } -+ }; -+ /** -+ * Exposed functionality for users. -+ */ -+ /** Allows user to close connection. */ -+ DataConnection.prototype.close = function () { -+ this._buffer = []; -+ this._bufferSize = 0; -+ this._chunkedData = {}; -+ if (this._negotiator) { -+ this._negotiator.cleanup(); -+ // @ts-ignore -+ this._negotiator = null; -+ } -+ if (this.provider) { -+ this.provider._removeConnection(this); -+ // @ts-ignore -+ this.provider = null; -+ } -+ if (this.dataChannel) { -+ this.dataChannel.onopen = null; -+ this.dataChannel.onmessage = null; -+ this.dataChannel.onclose = null; -+ // @ts-ignore -+ this._dc = null; -+ } -+ if (this._encodingQueue) { -+ this._encodingQueue.destroy(); -+ this._encodingQueue.removeAllListeners(); -+ // @ts-ignore -+ this._encodingQueue = null; -+ } -+ if (!this.open) { -+ return; -+ } -+ this._open = false; -+ _super.prototype.emit.call(this, enums_1.ConnectionEventType.Close); -+ }; -+ /** Allows user to send data. */ -+ DataConnection.prototype.send = function (data, chunked) { -+ if (!this.open) { -+ _super.prototype.emit.call(this, enums_1.ConnectionEventType.Error, new Error("Connection is not open. You should listen for the `open` event before sending messages.")); -+ return; -+ } -+ if (this.serialization === enums_1.SerializationType.JSON) { -+ this._bufferedSend(this.stringify(data)); -+ } -+ else if (this.serialization === enums_1.SerializationType.Binary || -+ this.serialization === enums_1.SerializationType.BinaryUTF8) { -+ var blob = util_1.util.pack(data); -+ if (!chunked && blob.size > util_1.util.chunkedMTU) { -+ this._sendChunks(blob); -+ return; -+ } -+ if (!util_1.util.supports.binaryBlob) { -+ // We only do this if we really need to (e.g. blobs are not supported), -+ // because this conversion is costly. -+ this._encodingQueue.enque(blob); -+ } -+ else { -+ this._bufferedSend(blob); -+ } -+ } -+ else { -+ this._bufferedSend(data); -+ } -+ }; -+ DataConnection.prototype._bufferedSend = function (msg) { -+ if (this._buffering || !this._trySend(msg)) { -+ this._buffer.push(msg); -+ this._bufferSize = this._buffer.length; -+ } -+ }; -+ // Returns true if the send succeeds. -+ DataConnection.prototype._trySend = function (msg) { -+ var _this = this; -+ if (!this.open) { -+ return false; -+ } -+ if (this.dataChannel.bufferedAmount > DataConnection.MAX_BUFFERED_AMOUNT) { -+ this._buffering = true; -+ setTimeout(function () { -+ _this._buffering = false; -+ _this._tryBuffer(); -+ }, 50); -+ return false; -+ } -+ try { -+ this.dataChannel.send(msg); -+ } -+ catch (e) { -+ logger_1.default.error("DC#:" + this.connectionId + " Error when sending:", e); -+ this._buffering = true; -+ this.close(); -+ return false; -+ } -+ return true; -+ }; -+ // Try to send the first message in the buffer. -+ DataConnection.prototype._tryBuffer = function () { -+ if (!this.open) { -+ return; -+ } -+ if (this._buffer.length === 0) { -+ return; -+ } -+ var msg = this._buffer[0]; -+ if (this._trySend(msg)) { -+ this._buffer.shift(); -+ this._bufferSize = this._buffer.length; -+ this._tryBuffer(); -+ } -+ }; -+ DataConnection.prototype._sendChunks = function (blob) { -+ var blobs = util_1.util.chunk(blob); -+ logger_1.default.log("DC#" + this.connectionId + " Try to send " + blobs.length + " chunks..."); -+ for (var _i = 0, blobs_1 = blobs; _i < blobs_1.length; _i++) { -+ var blob_1 = blobs_1[_i]; -+ this.send(blob_1, true); -+ } -+ }; -+ DataConnection.prototype.handleMessage = function (message) { -+ var payload = message.payload; -+ switch (message.type) { -+ case enums_1.ServerMessageType.Answer: -+ this._negotiator.handleSDP(message.type, payload.sdp); -+ break; -+ case enums_1.ServerMessageType.Candidate: -+ this._negotiator.handleCandidate(payload.candidate); -+ break; -+ default: -+ logger_1.default.warn("Unrecognized message type:", message.type, "from peer:", this.peer); -+ break; -+ } -+ }; -+ DataConnection.ID_PREFIX = "dc_"; -+ DataConnection.MAX_BUFFERED_AMOUNT = 8 * 1024 * 1024; -+ return DataConnection; -+}(baseconnection_1.BaseConnection)); -+exports.DataConnection = DataConnection; -diff --git a/node_modules/peerjs/dist/encodingQueue.js b/node_modules/peerjs/dist/encodingQueue.js -new file mode 100644 -index 0000000..c9ca6b5 ---- /dev/null -+++ b/node_modules/peerjs/dist/encodingQueue.js -@@ -0,0 +1,88 @@ -+"use strict"; -+var __extends = (this && this.__extends) || (function () { -+ var extendStatics = function (d, b) { -+ extendStatics = Object.setPrototypeOf || -+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -+ return extendStatics(d, b); -+ }; -+ return function (d, b) { -+ if (typeof b !== "function" && b !== null) -+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -+ extendStatics(d, b); -+ function __() { this.constructor = d; } -+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -+ }; -+})(); -+var __importDefault = (this && this.__importDefault) || function (mod) { -+ return (mod && mod.__esModule) ? mod : { "default": mod }; -+}; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.EncodingQueue = void 0; -+var eventemitter3_1 = require("eventemitter3"); -+var logger_1 = __importDefault(require("./logger")); -+var EncodingQueue = /** @class */ (function (_super) { -+ __extends(EncodingQueue, _super); -+ function EncodingQueue() { -+ var _this = _super.call(this) || this; -+ _this.fileReader = new FileReader(); -+ _this._queue = []; -+ _this._processing = false; -+ _this.fileReader.onload = function (evt) { -+ _this._processing = false; -+ if (evt.target) { -+ _this.emit('done', evt.target.result); -+ } -+ _this.doNextTask(); -+ }; -+ _this.fileReader.onerror = function (evt) { -+ logger_1.default.error("EncodingQueue error:", evt); -+ _this._processing = false; -+ _this.destroy(); -+ _this.emit('error', evt); -+ }; -+ return _this; -+ } -+ Object.defineProperty(EncodingQueue.prototype, "queue", { -+ get: function () { -+ return this._queue; -+ }, -+ enumerable: false, -+ configurable: true -+ }); -+ Object.defineProperty(EncodingQueue.prototype, "size", { -+ get: function () { -+ return this.queue.length; -+ }, -+ enumerable: false, -+ configurable: true -+ }); -+ Object.defineProperty(EncodingQueue.prototype, "processing", { -+ get: function () { -+ return this._processing; -+ }, -+ enumerable: false, -+ configurable: true -+ }); -+ EncodingQueue.prototype.enque = function (blob) { -+ this.queue.push(blob); -+ if (this.processing) -+ return; -+ this.doNextTask(); -+ }; -+ EncodingQueue.prototype.destroy = function () { -+ this.fileReader.abort(); -+ this._queue = []; -+ }; -+ EncodingQueue.prototype.doNextTask = function () { -+ if (this.size === 0) -+ return; -+ if (this.processing) -+ return; -+ this._processing = true; -+ // @ts-ignore -+ this.fileReader.readAsArrayBuffer(this.queue.shift()); -+ }; -+ return EncodingQueue; -+}(eventemitter3_1.EventEmitter)); -+exports.EncodingQueue = EncodingQueue; -diff --git a/node_modules/peerjs/dist/enums.js b/node_modules/peerjs/dist/enums.js -new file mode 100644 -index 0000000..9e551a4 ---- /dev/null -+++ b/node_modules/peerjs/dist/enums.js -@@ -0,0 +1,67 @@ -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.ServerMessageType = exports.SocketEventType = exports.SerializationType = exports.PeerErrorType = exports.PeerEventType = exports.ConnectionType = exports.ConnectionEventType = void 0; -+var ConnectionEventType; -+(function (ConnectionEventType) { -+ ConnectionEventType["Open"] = "open"; -+ ConnectionEventType["Stream"] = "stream"; -+ ConnectionEventType["Data"] = "data"; -+ ConnectionEventType["Close"] = "close"; -+ ConnectionEventType["Error"] = "error"; -+ ConnectionEventType["IceStateChanged"] = "iceStateChanged"; -+})(ConnectionEventType = exports.ConnectionEventType || (exports.ConnectionEventType = {})); -+var ConnectionType; -+(function (ConnectionType) { -+ ConnectionType["Data"] = "data"; -+ ConnectionType["Media"] = "media"; -+})(ConnectionType = exports.ConnectionType || (exports.ConnectionType = {})); -+var PeerEventType; -+(function (PeerEventType) { -+ PeerEventType["Open"] = "open"; -+ PeerEventType["Close"] = "close"; -+ PeerEventType["Connection"] = "connection"; -+ PeerEventType["Call"] = "call"; -+ PeerEventType["Disconnected"] = "disconnected"; -+ PeerEventType["Error"] = "error"; -+})(PeerEventType = exports.PeerEventType || (exports.PeerEventType = {})); -+var PeerErrorType; -+(function (PeerErrorType) { -+ PeerErrorType["BrowserIncompatible"] = "browser-incompatible"; -+ PeerErrorType["Disconnected"] = "disconnected"; -+ PeerErrorType["InvalidID"] = "invalid-id"; -+ PeerErrorType["InvalidKey"] = "invalid-key"; -+ PeerErrorType["Network"] = "network"; -+ PeerErrorType["PeerUnavailable"] = "peer-unavailable"; -+ PeerErrorType["SslUnavailable"] = "ssl-unavailable"; -+ PeerErrorType["ServerError"] = "server-error"; -+ PeerErrorType["SocketError"] = "socket-error"; -+ PeerErrorType["SocketClosed"] = "socket-closed"; -+ PeerErrorType["UnavailableID"] = "unavailable-id"; -+ PeerErrorType["WebRTC"] = "webrtc"; -+})(PeerErrorType = exports.PeerErrorType || (exports.PeerErrorType = {})); -+var SerializationType; -+(function (SerializationType) { -+ SerializationType["Binary"] = "binary"; -+ SerializationType["BinaryUTF8"] = "binary-utf8"; -+ SerializationType["JSON"] = "json"; -+})(SerializationType = exports.SerializationType || (exports.SerializationType = {})); -+var SocketEventType; -+(function (SocketEventType) { -+ SocketEventType["Message"] = "message"; -+ SocketEventType["Disconnected"] = "disconnected"; -+ SocketEventType["Error"] = "error"; -+ SocketEventType["Close"] = "close"; -+})(SocketEventType = exports.SocketEventType || (exports.SocketEventType = {})); -+var ServerMessageType; -+(function (ServerMessageType) { -+ ServerMessageType["Heartbeat"] = "HEARTBEAT"; -+ ServerMessageType["Candidate"] = "CANDIDATE"; -+ ServerMessageType["Offer"] = "OFFER"; -+ ServerMessageType["Answer"] = "ANSWER"; -+ ServerMessageType["Open"] = "OPEN"; -+ ServerMessageType["Error"] = "ERROR"; -+ ServerMessageType["IdTaken"] = "ID-TAKEN"; -+ ServerMessageType["InvalidKey"] = "INVALID-KEY"; -+ ServerMessageType["Leave"] = "LEAVE"; -+ ServerMessageType["Expire"] = "EXPIRE"; // The offer sent to a peer has expired without response. -+})(ServerMessageType = exports.ServerMessageType || (exports.ServerMessageType = {})); -diff --git a/node_modules/peerjs/dist/exports.js b/node_modules/peerjs/dist/exports.js -new file mode 100644 -index 0000000..d6e2666 ---- /dev/null -+++ b/node_modules/peerjs/dist/exports.js -@@ -0,0 +1,13 @@ -+"use strict"; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.peerjs = void 0; -+var util_1 = require("./util"); -+var peer_1 = require("./peer"); -+exports.peerjs = { -+ Peer: peer_1.Peer, -+ util: util_1.util -+}; -+exports.default = peer_1.Peer; -+window.peerjs = exports.peerjs; -+/** @deprecated Should use peerjs namespace */ -+window.Peer = peer_1.Peer; -diff --git a/node_modules/peerjs/dist/index.js b/node_modules/peerjs/dist/index.js -new file mode 100644 -index 0000000..e7d6ac1 ---- /dev/null -+++ b/node_modules/peerjs/dist/index.js -@@ -0,0 +1,27 @@ -+"use strict"; -+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { -+ if (k2 === undefined) k2 = k; -+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -+}) : (function(o, m, k, k2) { -+ if (k2 === undefined) k2 = k; -+ o[k2] = m[k]; -+})); -+var __exportStar = (this && this.__exportStar) || function(m, exports) { -+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -+}; -+Object.defineProperty(exports, "__esModule", { value: true }); -+__exportStar(require("./adapter"), exports); -+__exportStar(require("./api"), exports); -+__exportStar(require("./baseconnection"), exports); -+__exportStar(require("./dataconnection"), exports); -+__exportStar(require("./encodingQueue"), exports); -+__exportStar(require("./enums"), exports); -+__exportStar(require("./exports"), exports); -+__exportStar(require("./logger"), exports); -+__exportStar(require("./mediaconnection"), exports); -+__exportStar(require("./negotiator"), exports); -+__exportStar(require("./peer"), exports); -+__exportStar(require("./servermessage"), exports); -+__exportStar(require("./socket"), exports); -+__exportStar(require("./supports"), exports); -+__exportStar(require("./util"), exports); -diff --git a/node_modules/peerjs/dist/logger.js b/node_modules/peerjs/dist/logger.js -new file mode 100644 -index 0000000..9a5e883 ---- /dev/null -+++ b/node_modules/peerjs/dist/logger.js -@@ -0,0 +1,87 @@ -+"use strict"; -+var __spreadArray = (this && this.__spreadArray) || function (to, from) { -+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) -+ to[j] = from[i]; -+ return to; -+}; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.LogLevel = void 0; -+var LOG_PREFIX = 'PeerJS: '; -+/* -+Prints log messages depending on the debug level passed in. Defaults to 0. -+0 Prints no logs. -+1 Prints only errors. -+2 Prints errors and warnings. -+3 Prints all logs. -+*/ -+var LogLevel; -+(function (LogLevel) { -+ LogLevel[LogLevel["Disabled"] = 0] = "Disabled"; -+ LogLevel[LogLevel["Errors"] = 1] = "Errors"; -+ LogLevel[LogLevel["Warnings"] = 2] = "Warnings"; -+ LogLevel[LogLevel["All"] = 3] = "All"; -+})(LogLevel = exports.LogLevel || (exports.LogLevel = {})); -+var Logger = /** @class */ (function () { -+ function Logger() { -+ this._logLevel = LogLevel.Disabled; -+ } -+ Object.defineProperty(Logger.prototype, "logLevel", { -+ get: function () { return this._logLevel; }, -+ set: function (logLevel) { this._logLevel = logLevel; }, -+ enumerable: false, -+ configurable: true -+ }); -+ Logger.prototype.log = function () { -+ var args = []; -+ for (var _i = 0; _i < arguments.length; _i++) { -+ args[_i] = arguments[_i]; -+ } -+ if (this._logLevel >= LogLevel.All) { -+ this._print.apply(this, __spreadArray([LogLevel.All], args)); -+ } -+ }; -+ Logger.prototype.warn = function () { -+ var args = []; -+ for (var _i = 0; _i < arguments.length; _i++) { -+ args[_i] = arguments[_i]; -+ } -+ if (this._logLevel >= LogLevel.Warnings) { -+ this._print.apply(this, __spreadArray([LogLevel.Warnings], args)); -+ } -+ }; -+ Logger.prototype.error = function () { -+ var args = []; -+ for (var _i = 0; _i < arguments.length; _i++) { -+ args[_i] = arguments[_i]; -+ } -+ if (this._logLevel >= LogLevel.Errors) { -+ this._print.apply(this, __spreadArray([LogLevel.Errors], args)); -+ } -+ }; -+ Logger.prototype.setLogFunction = function (fn) { -+ this._print = fn; -+ }; -+ Logger.prototype._print = function (logLevel) { -+ var rest = []; -+ for (var _i = 1; _i < arguments.length; _i++) { -+ rest[_i - 1] = arguments[_i]; -+ } -+ var copy = __spreadArray([LOG_PREFIX], rest); -+ for (var i in copy) { -+ if (copy[i] instanceof Error) { -+ copy[i] = "(" + copy[i].name + ") " + copy[i].message; -+ } -+ } -+ if (logLevel >= LogLevel.All) { -+ console.log.apply(console, copy); -+ } -+ else if (logLevel >= LogLevel.Warnings) { -+ console.warn.apply(console, __spreadArray(["WARNING"], copy)); -+ } -+ else if (logLevel >= LogLevel.Errors) { -+ console.error.apply(console, __spreadArray(["ERROR"], copy)); -+ } -+ }; -+ return Logger; -+}()); -+exports.default = new Logger(); -diff --git a/node_modules/peerjs/dist/mediaconnection.js b/node_modules/peerjs/dist/mediaconnection.js -new file mode 100644 -index 0000000..2318160 ---- /dev/null -+++ b/node_modules/peerjs/dist/mediaconnection.js -@@ -0,0 +1,148 @@ -+"use strict"; -+var __extends = (this && this.__extends) || (function () { -+ var extendStatics = function (d, b) { -+ extendStatics = Object.setPrototypeOf || -+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -+ return extendStatics(d, b); -+ }; -+ return function (d, b) { -+ if (typeof b !== "function" && b !== null) -+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -+ extendStatics(d, b); -+ function __() { this.constructor = d; } -+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -+ }; -+})(); -+var __assign = (this && this.__assign) || function () { -+ __assign = Object.assign || function(t) { -+ for (var s, i = 1, n = arguments.length; i < n; i++) { -+ s = arguments[i]; -+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) -+ t[p] = s[p]; -+ } -+ return t; -+ }; -+ return __assign.apply(this, arguments); -+}; -+var __importDefault = (this && this.__importDefault) || function (mod) { -+ return (mod && mod.__esModule) ? mod : { "default": mod }; -+}; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.MediaConnection = void 0; -+var util_1 = require("./util"); -+var logger_1 = __importDefault(require("./logger")); -+var negotiator_1 = require("./negotiator"); -+var enums_1 = require("./enums"); -+var baseconnection_1 = require("./baseconnection"); -+/** -+ * Wraps the streaming interface between two Peers. -+ */ -+var MediaConnection = /** @class */ (function (_super) { -+ __extends(MediaConnection, _super); -+ function MediaConnection(peerId, provider, options) { -+ var _this = _super.call(this, peerId, provider, options) || this; -+ _this._localStream = _this.options._stream; -+ _this.connectionId = -+ _this.options.connectionId || -+ MediaConnection.ID_PREFIX + util_1.util.randomToken(); -+ _this._negotiator = new negotiator_1.Negotiator(_this); -+ if (_this._localStream) { -+ _this._negotiator.startConnection({ -+ _stream: _this._localStream, -+ originator: true -+ }); -+ } -+ return _this; -+ } -+ Object.defineProperty(MediaConnection.prototype, "type", { -+ get: function () { -+ return enums_1.ConnectionType.Media; -+ }, -+ enumerable: false, -+ configurable: true -+ }); -+ Object.defineProperty(MediaConnection.prototype, "localStream", { -+ get: function () { return this._localStream; }, -+ enumerable: false, -+ configurable: true -+ }); -+ Object.defineProperty(MediaConnection.prototype, "remoteStream", { -+ get: function () { return this._remoteStream; }, -+ enumerable: false, -+ configurable: true -+ }); -+ // @ts-ignore -+ MediaConnection.prototype.addStream = function (remoteStream) { -+ logger_1.default.log("Receiving stream", remoteStream); -+ this._remoteStream = remoteStream; -+ _super.prototype.emit.call(this, enums_1.ConnectionEventType.Stream, remoteStream); // Should we call this `open`? -+ }; -+ MediaConnection.prototype.handleMessage = function (message) { -+ var type = message.type; -+ var payload = message.payload; -+ switch (message.type) { -+ case enums_1.ServerMessageType.Answer: -+ // Forward to negotiator -+ this._negotiator.handleSDP(type, payload.sdp); -+ this._open = true; -+ break; -+ case enums_1.ServerMessageType.Candidate: -+ this._negotiator.handleCandidate(payload.candidate); -+ break; -+ default: -+ logger_1.default.warn("Unrecognized message type:" + type + " from peer:" + this.peer); -+ break; -+ } -+ }; -+ MediaConnection.prototype.answer = function (stream, options) { -+ if (options === void 0) { options = {}; } -+ if (this._localStream) { -+ logger_1.default.warn("Local stream already exists on this MediaConnection. Are you answering a call twice?"); -+ return; -+ } -+ this._localStream = stream; -+ if (options && options.sdpTransform) { -+ this.options.sdpTransform = options.sdpTransform; -+ } -+ this._negotiator.startConnection(__assign(__assign({}, this.options._payload), { _stream: stream })); -+ // Retrieve lost messages stored because PeerConnection not set up. -+ var messages = this.provider._getMessages(this.connectionId); -+ for (var _i = 0, messages_1 = messages; _i < messages_1.length; _i++) { -+ var message = messages_1[_i]; -+ this.handleMessage(message); -+ } -+ this._open = true; -+ }; -+ /** -+ * Exposed functionality for users. -+ */ -+ /** Allows user to close connection. */ -+ MediaConnection.prototype.close = function () { -+ if (this._negotiator) { -+ this._negotiator.cleanup(); -+ // @ts-ignore -+ this._negotiator = null; -+ } -+ // @ts-ignore -+ this._localStream = null; -+ // @ts-ignore -+ this._remoteStream = null; -+ if (this.provider) { -+ this.provider._removeConnection(this); -+ // @ts-ignore -+ this.provider = null; -+ } -+ if (this.options && this.options._stream) { -+ this.options._stream = null; -+ } -+ if (!this.open) { -+ return; -+ } -+ this._open = false; -+ _super.prototype.emit.call(this, enums_1.ConnectionEventType.Close); -+ }; -+ MediaConnection.ID_PREFIX = "mc_"; -+ return MediaConnection; -+}(baseconnection_1.BaseConnection)); -+exports.MediaConnection = MediaConnection; -diff --git a/node_modules/peerjs/dist/negotiator.js b/node_modules/peerjs/dist/negotiator.js -new file mode 100644 -index 0000000..afd9687 ---- /dev/null -+++ b/node_modules/peerjs/dist/negotiator.js -@@ -0,0 +1,385 @@ -+"use strict"; -+var __assign = (this && this.__assign) || function () { -+ __assign = Object.assign || function(t) { -+ for (var s, i = 1, n = arguments.length; i < n; i++) { -+ s = arguments[i]; -+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) -+ t[p] = s[p]; -+ } -+ return t; -+ }; -+ return __assign.apply(this, arguments); -+}; -+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { -+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } -+ return new (P || (P = Promise))(function (resolve, reject) { -+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } -+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } -+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } -+ step((generator = generator.apply(thisArg, _arguments || [])).next()); -+ }); -+}; -+var __generator = (this && this.__generator) || function (thisArg, body) { -+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; -+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; -+ function verb(n) { return function (v) { return step([n, v]); }; } -+ function step(op) { -+ if (f) throw new TypeError("Generator is already executing."); -+ while (_) try { -+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; -+ if (y = 0, t) op = [op[0] & 2, t.value]; -+ switch (op[0]) { -+ case 0: case 1: t = op; break; -+ case 4: _.label++; return { value: op[1], done: false }; -+ case 5: _.label++; y = op[1]; op = [0]; continue; -+ case 7: op = _.ops.pop(); _.trys.pop(); continue; -+ default: -+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } -+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } -+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } -+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } -+ if (t[2]) _.ops.pop(); -+ _.trys.pop(); continue; -+ } -+ op = body.call(thisArg, _); -+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } -+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; -+ } -+}; -+var __importDefault = (this && this.__importDefault) || function (mod) { -+ return (mod && mod.__esModule) ? mod : { "default": mod }; -+}; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.Negotiator = void 0; -+var util_1 = require("./util"); -+var logger_1 = __importDefault(require("./logger")); -+var enums_1 = require("./enums"); -+/** -+ * Manages all negotiations between Peers. -+ */ -+var Negotiator = /** @class */ (function () { -+ function Negotiator(connection) { -+ this.connection = connection; -+ } -+ /** Returns a PeerConnection object set up correctly (for data, media). */ -+ Negotiator.prototype.startConnection = function (options) { -+ var peerConnection = this._startPeerConnection(); -+ // Set the connection's PC. -+ this.connection.peerConnection = peerConnection; -+ if (this.connection.type === enums_1.ConnectionType.Media && options._stream) { -+ this._addTracksToConnection(options._stream, peerConnection); -+ } -+ // What do we need to do now? -+ if (options.originator) { -+ if (this.connection.type === enums_1.ConnectionType.Data) { -+ var dataConnection = this.connection; -+ var config = { ordered: !!options.reliable }; -+ var dataChannel = peerConnection.createDataChannel(dataConnection.label, config); -+ dataConnection.initialize(dataChannel); -+ } -+ this._makeOffer(); -+ } -+ else { -+ this.handleSDP("OFFER", options.sdp); -+ } -+ }; -+ /** Start a PC. */ -+ Negotiator.prototype._startPeerConnection = function () { -+ logger_1.default.log("Creating RTCPeerConnection."); -+ var peerConnection = new RTCPeerConnection(this.connection.provider.options.config); -+ this._setupListeners(peerConnection); -+ return peerConnection; -+ }; -+ /** Set up various WebRTC listeners. */ -+ Negotiator.prototype._setupListeners = function (peerConnection) { -+ var _this = this; -+ var peerId = this.connection.peer; -+ var connectionId = this.connection.connectionId; -+ var connectionType = this.connection.type; -+ var provider = this.connection.provider; -+ // ICE CANDIDATES. -+ logger_1.default.log("Listening for ICE candidates."); -+ peerConnection.onicecandidate = function (evt) { -+ if (!evt.candidate || !evt.candidate.candidate) -+ return; -+ logger_1.default.log("Received ICE candidates for " + peerId + ":", evt.candidate); -+ provider.socket.send({ -+ type: enums_1.ServerMessageType.Candidate, -+ payload: { -+ candidate: evt.candidate, -+ type: connectionType, -+ connectionId: connectionId -+ }, -+ dst: peerId -+ }); -+ }; -+ peerConnection.oniceconnectionstatechange = function () { -+ switch (peerConnection.iceConnectionState) { -+ case "failed": -+ logger_1.default.log("iceConnectionState is failed, closing connections to " + -+ peerId); -+ _this.connection.emit(enums_1.ConnectionEventType.Error, new Error("Negotiation of connection to " + peerId + " failed.")); -+ _this.connection.close(); -+ break; -+ case "closed": -+ logger_1.default.log("iceConnectionState is closed, closing connections to " + -+ peerId); -+ _this.connection.emit(enums_1.ConnectionEventType.Error, new Error("Connection to " + peerId + " closed.")); -+ _this.connection.close(); -+ break; -+ case "disconnected": -+ logger_1.default.log("iceConnectionState changed to disconnected on the connection with " + -+ peerId); -+ break; -+ case "completed": -+ peerConnection.onicecandidate = util_1.util.noop; -+ break; -+ } -+ _this.connection.emit(enums_1.ConnectionEventType.IceStateChanged, peerConnection.iceConnectionState); -+ }; -+ // DATACONNECTION. -+ logger_1.default.log("Listening for data channel"); -+ // Fired between offer and answer, so options should already be saved -+ // in the options hash. -+ peerConnection.ondatachannel = function (evt) { -+ logger_1.default.log("Received data channel"); -+ var dataChannel = evt.channel; -+ var connection = (provider.getConnection(peerId, connectionId)); -+ connection.initialize(dataChannel); -+ }; -+ // MEDIACONNECTION. -+ logger_1.default.log("Listening for remote stream"); -+ peerConnection.ontrack = function (evt) { -+ logger_1.default.log("Received remote stream"); -+ var stream = evt.streams[0]; -+ var connection = provider.getConnection(peerId, connectionId); -+ // @ts-ignore -+ if (connection.type === enums_1.ConnectionType.Media) { -+ var mediaConnection = connection; -+ _this._addStreamToMediaConnection(stream, mediaConnection); -+ } -+ }; -+ }; -+ Negotiator.prototype.cleanup = function () { -+ logger_1.default.log("Cleaning up PeerConnection to " + this.connection.peer); -+ var peerConnection = this.connection.peerConnection; -+ if (!peerConnection) { -+ return; -+ } -+ // @ts-ignore -+ this.connection.peerConnection = null; -+ //unsubscribe from all PeerConnection's events -+ peerConnection.onicecandidate = peerConnection.oniceconnectionstatechange = peerConnection.ondatachannel = peerConnection.ontrack = function () { }; -+ var peerConnectionNotClosed = peerConnection.signalingState !== "closed"; -+ var dataChannelNotClosed = false; -+ if (this.connection.type === enums_1.ConnectionType.Data) { -+ var dataConnection = this.connection; -+ var dataChannel = dataConnection.dataChannel; -+ if (dataChannel) { -+ dataChannelNotClosed = !!dataChannel.readyState && dataChannel.readyState !== "closed"; -+ } -+ } -+ if (peerConnectionNotClosed || dataChannelNotClosed) { -+ peerConnection.close(); -+ } -+ }; -+ Negotiator.prototype._makeOffer = function () { -+ return __awaiter(this, void 0, void 0, function () { -+ var peerConnection, provider, offer, payload, dataConnection, err_2, err_1_1; -+ return __generator(this, function (_a) { -+ switch (_a.label) { -+ case 0: -+ peerConnection = this.connection.peerConnection; -+ provider = this.connection.provider; -+ _a.label = 1; -+ case 1: -+ _a.trys.push([1, 7, , 8]); -+ return [4 /*yield*/, peerConnection.createOffer(this.connection.options.constraints)]; -+ case 2: -+ offer = _a.sent(); -+ logger_1.default.log("Created offer."); -+ if (this.connection.options.sdpTransform && typeof this.connection.options.sdpTransform === 'function') { -+ offer.sdp = this.connection.options.sdpTransform(offer.sdp) || offer.sdp; -+ } -+ _a.label = 3; -+ case 3: -+ _a.trys.push([3, 5, , 6]); -+ return [4 /*yield*/, peerConnection.setLocalDescription(offer)]; -+ case 4: -+ _a.sent(); -+ logger_1.default.log("Set localDescription:", offer, "for:" + this.connection.peer); -+ payload = { -+ sdp: offer, -+ type: this.connection.type, -+ connectionId: this.connection.connectionId, -+ metadata: this.connection.metadata, -+ browser: util_1.util.browser -+ }; -+ if (this.connection.type === enums_1.ConnectionType.Data) { -+ dataConnection = this.connection; -+ payload = __assign(__assign({}, payload), { label: dataConnection.label, reliable: dataConnection.reliable, serialization: dataConnection.serialization }); -+ } -+ provider.socket.send({ -+ type: enums_1.ServerMessageType.Offer, -+ payload: payload, -+ dst: this.connection.peer -+ }); -+ return [3 /*break*/, 6]; -+ case 5: -+ err_2 = _a.sent(); -+ // TODO: investigate why _makeOffer is being called from the answer -+ if (err_2 != -+ "OperationError: Failed to set local offer sdp: Called in wrong state: kHaveRemoteOffer") { -+ provider.emitError(enums_1.PeerErrorType.WebRTC, err_2); -+ logger_1.default.log("Failed to setLocalDescription, ", err_2); -+ } -+ return [3 /*break*/, 6]; -+ case 6: return [3 /*break*/, 8]; -+ case 7: -+ err_1_1 = _a.sent(); -+ provider.emitError(enums_1.PeerErrorType.WebRTC, err_1_1); -+ logger_1.default.log("Failed to createOffer, ", err_1_1); -+ return [3 /*break*/, 8]; -+ case 8: return [2 /*return*/]; -+ } -+ }); -+ }); -+ }; -+ Negotiator.prototype._makeAnswer = function () { -+ return __awaiter(this, void 0, void 0, function () { -+ var peerConnection, provider, answer, err_3, err_1_2; -+ return __generator(this, function (_a) { -+ switch (_a.label) { -+ case 0: -+ peerConnection = this.connection.peerConnection; -+ provider = this.connection.provider; -+ _a.label = 1; -+ case 1: -+ _a.trys.push([1, 7, , 8]); -+ return [4 /*yield*/, peerConnection.createAnswer()]; -+ case 2: -+ answer = _a.sent(); -+ logger_1.default.log("Created answer."); -+ if (this.connection.options.sdpTransform && typeof this.connection.options.sdpTransform === 'function') { -+ answer.sdp = this.connection.options.sdpTransform(answer.sdp) || answer.sdp; -+ } -+ _a.label = 3; -+ case 3: -+ _a.trys.push([3, 5, , 6]); -+ return [4 /*yield*/, peerConnection.setLocalDescription(answer)]; -+ case 4: -+ _a.sent(); -+ logger_1.default.log("Set localDescription:", answer, "for:" + this.connection.peer); -+ provider.socket.send({ -+ type: enums_1.ServerMessageType.Answer, -+ payload: { -+ sdp: answer, -+ type: this.connection.type, -+ connectionId: this.connection.connectionId, -+ browser: util_1.util.browser -+ }, -+ dst: this.connection.peer -+ }); -+ return [3 /*break*/, 6]; -+ case 5: -+ err_3 = _a.sent(); -+ provider.emitError(enums_1.PeerErrorType.WebRTC, err_3); -+ logger_1.default.log("Failed to setLocalDescription, ", err_3); -+ return [3 /*break*/, 6]; -+ case 6: return [3 /*break*/, 8]; -+ case 7: -+ err_1_2 = _a.sent(); -+ provider.emitError(enums_1.PeerErrorType.WebRTC, err_1_2); -+ logger_1.default.log("Failed to create answer, ", err_1_2); -+ return [3 /*break*/, 8]; -+ case 8: return [2 /*return*/]; -+ } -+ }); -+ }); -+ }; -+ /** Handle an SDP. */ -+ Negotiator.prototype.handleSDP = function (type, sdp) { -+ return __awaiter(this, void 0, void 0, function () { -+ var peerConnection, provider, self, err_4; -+ return __generator(this, function (_a) { -+ switch (_a.label) { -+ case 0: -+ sdp = new RTCSessionDescription(sdp); -+ peerConnection = this.connection.peerConnection; -+ provider = this.connection.provider; -+ logger_1.default.log("Setting remote description", sdp); -+ self = this; -+ _a.label = 1; -+ case 1: -+ _a.trys.push([1, 5, , 6]); -+ return [4 /*yield*/, peerConnection.setRemoteDescription(sdp)]; -+ case 2: -+ _a.sent(); -+ logger_1.default.log("Set remoteDescription:" + type + " for:" + this.connection.peer); -+ if (!(type === "OFFER")) return [3 /*break*/, 4]; -+ return [4 /*yield*/, self._makeAnswer()]; -+ case 3: -+ _a.sent(); -+ _a.label = 4; -+ case 4: return [3 /*break*/, 6]; -+ case 5: -+ err_4 = _a.sent(); -+ provider.emitError(enums_1.PeerErrorType.WebRTC, err_4); -+ logger_1.default.log("Failed to setRemoteDescription, ", err_4); -+ return [3 /*break*/, 6]; -+ case 6: return [2 /*return*/]; -+ } -+ }); -+ }); -+ }; -+ /** Handle a candidate. */ -+ Negotiator.prototype.handleCandidate = function (ice) { -+ return __awaiter(this, void 0, void 0, function () { -+ var candidate, sdpMLineIndex, sdpMid, peerConnection, provider, err_5; -+ return __generator(this, function (_a) { -+ switch (_a.label) { -+ case 0: -+ logger_1.default.log("handleCandidate:", ice); -+ candidate = ice.candidate; -+ sdpMLineIndex = ice.sdpMLineIndex; -+ sdpMid = ice.sdpMid; -+ peerConnection = this.connection.peerConnection; -+ provider = this.connection.provider; -+ _a.label = 1; -+ case 1: -+ _a.trys.push([1, 3, , 4]); -+ return [4 /*yield*/, peerConnection.addIceCandidate(new RTCIceCandidate({ -+ sdpMid: sdpMid, -+ sdpMLineIndex: sdpMLineIndex, -+ candidate: candidate -+ }))]; -+ case 2: -+ _a.sent(); -+ logger_1.default.log("Added ICE candidate for:" + this.connection.peer); -+ return [3 /*break*/, 4]; -+ case 3: -+ err_5 = _a.sent(); -+ provider.emitError(enums_1.PeerErrorType.WebRTC, err_5); -+ logger_1.default.log("Failed to handleCandidate, ", err_5); -+ return [3 /*break*/, 4]; -+ case 4: return [2 /*return*/]; -+ } -+ }); -+ }); -+ }; -+ Negotiator.prototype._addTracksToConnection = function (stream, peerConnection) { -+ logger_1.default.log("add tracks from stream " + stream.id + " to peer connection"); -+ if (!peerConnection.addTrack) { -+ return logger_1.default.error("Your browser does't support RTCPeerConnection#addTrack. Ignored."); -+ } -+ stream.getTracks().forEach(function (track) { -+ peerConnection.addTrack(track, stream); -+ }); -+ }; -+ Negotiator.prototype._addStreamToMediaConnection = function (stream, mediaConnection) { -+ logger_1.default.log("add stream " + stream.id + " to media connection " + mediaConnection.connectionId); -+ mediaConnection.addStream(stream); -+ }; -+ return Negotiator; -+}()); -+exports.Negotiator = Negotiator; -diff --git a/node_modules/peerjs/dist/peer.js b/node_modules/peerjs/dist/peer.js -new file mode 100644 -index 0000000..8928729 ---- /dev/null -+++ b/node_modules/peerjs/dist/peer.js -@@ -0,0 +1,519 @@ -+"use strict"; -+var __extends = (this && this.__extends) || (function () { -+ var extendStatics = function (d, b) { -+ extendStatics = Object.setPrototypeOf || -+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || -+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; -+ return extendStatics(d, b); -+ }; -+ return function (d, b) { -+ if (typeof b !== "function" && b !== null) -+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); -+ extendStatics(d, b); -+ function __() { this.constructor = d; } -+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -+ }; -+})(); -+var __assign = (this && this.__assign) || function () { -+ __assign = Object.assign || function(t) { -+ for (var s, i = 1, n = arguments.length; i < n; i++) { -+ s = arguments[i]; -+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) -+ t[p] = s[p]; -+ } -+ return t; -+ }; -+ return __assign.apply(this, arguments); -+}; -+var __importDefault = (this && this.__importDefault) || function (mod) { -+ return (mod && mod.__esModule) ? mod : { "default": mod }; -+}; -+Object.defineProperty(exports, "__esModule", { value: true }); -+exports.Peer = void 0; -+var eventemitter3_1 = require("eventemitter3"); -+var util_1 = require("./util"); -+var logger_1 = __importDefault(require("./logger")); -+var socket_1 = require("./socket"); -+var mediaconnection_1 = require("./mediaconnection"); -+var dataconnection_1 = require("./dataconnection"); -+var enums_1 = require("./enums"); -+var api_1 = require("./api"); -+var PeerOptions = /** @class */ (function () { -+ function PeerOptions() { -+ } -+ return PeerOptions; -+}()); -+/** -+ * A peer who can initiate connections with other peers. -+ */ -+var Peer = /** @class */ (function (_super) { -+ __extends(Peer, _super); -+ function Peer(id, options) { -+ var _this = _super.call(this) || this; -+ _this._id = null; -+ _this._lastServerId = null; -+ // States. -+ _this._destroyed = false; // Connections have been killed -+ _this._disconnected = false; // Connection to PeerServer killed but P2P connections still active -+ _this._open = false; // Sockets and such are not yet open. -+ _this._connections = new Map(); // All connections for this peer. -+ _this._lostMessages = new Map(); // src => [list of messages] -+ var userId; -+ // Deal with overloading -+ if (id && id.constructor == Object) { -+ options = id; -+ } -+ else if (id) { -+ userId = id.toString(); -+ } -+ // Configurize options -+ options = __assign({ debug: 0, host: util_1.util.CLOUD_HOST, port: util_1.util.CLOUD_PORT, path: "/", key: Peer.DEFAULT_KEY, token: util_1.util.randomToken(), config: util_1.util.defaultConfig }, options); -+ _this._options = options; -+ // Detect relative URL host. -+ if (_this._options.host === "/") { -+ _this._options.host = window.location.hostname; -+ } -+ // Set path correctly. -+ if (_this._options.path) { -+ if (_this._options.path[0] !== "/") { -+ _this._options.path = "/" + _this._options.path; -+ } -+ if (_this._options.path[_this._options.path.length - 1] !== "/") { -+ _this._options.path += "/"; -+ } -+ } -+ // Set whether we use SSL to same as current host -+ if (_this._options.secure === undefined && _this._options.host !== util_1.util.CLOUD_HOST) { -+ _this._options.secure = util_1.util.isSecure(); -+ } -+ else if (_this._options.host == util_1.util.CLOUD_HOST) { -+ _this._options.secure = true; -+ } -+ // Set a custom log function if present -+ if (_this._options.logFunction) { -+ logger_1.default.setLogFunction(_this._options.logFunction); -+ } -+ logger_1.default.logLevel = _this._options.debug || 0; -+ _this._api = new api_1.API(options); -+ _this._socket = _this._createServerConnection(); -+ // Sanity checks -+ // Ensure WebRTC supported -+ if (!util_1.util.supports.audioVideo && !util_1.util.supports.data) { -+ _this._delayedAbort(enums_1.PeerErrorType.BrowserIncompatible, "The current browser does not support WebRTC"); -+ return _this; -+ } -+ // Ensure alphanumeric id -+ if (!!userId && !util_1.util.validateId(userId)) { -+ _this._delayedAbort(enums_1.PeerErrorType.InvalidID, "ID \"" + userId + "\" is invalid"); -+ return _this; -+ } -+ if (userId) { -+ _this._initialize(userId); -+ } -+ else { -+ _this._api.retrieveId() -+ .then(function (id) { return _this._initialize(id); }) -+ .catch(function (error) { return _this._abort(enums_1.PeerErrorType.ServerError, error); }); -+ } -+ return _this; -+ } -+ Object.defineProperty(Peer.prototype, "id", { -+ get: function () { -+ return this._id; -+ }, -+ enumerable: false, -+ configurable: true -+ }); -+ Object.defineProperty(Peer.prototype, "options", { -+ get: function () { -+ return this._options; -+ }, -+ enumerable: false, -+ configurable: true -+ }); -+ Object.defineProperty(Peer.prototype, "open", { -+ get: function () { -+ return this._open; -+ }, -+ enumerable: false, -+ configurable: true -+ }); -+ Object.defineProperty(Peer.prototype, "socket", { -+ get: function () { -+ return this._socket; -+ }, -+ enumerable: false, -+ configurable: true -+ }); -+ Object.defineProperty(Peer.prototype, "connections", { -+ /** -+ * @deprecated -+ * Return type will change from Object to Map -+ */ -+ get: function () { -+ var plainConnections = Object.create(null); -+ // @ts-ignore -+ for (var _i = 0, _a = this._connections; _i < _a.length; _i++) { -+ var _b = _a[_i], k = _b[0], v = _b[1]; -+ plainConnections[k] = v; -+ } -+ return plainConnections; -+ }, -+ enumerable: false, -+ configurable: true -+ }); -+ Object.defineProperty(Peer.prototype, "destroyed", { -+ get: function () { -+ return this._destroyed; -+ }, -+ enumerable: false, -+ configurable: true -+ }); -+ Object.defineProperty(Peer.prototype, "disconnected", { -+ get: function () { -+ return this._disconnected; -+ }, -+ enumerable: false, -+ configurable: true -+ }); -+ Peer.prototype._createServerConnection = function () { -+ var _this = this; -+ var socket = new socket_1.Socket(this._options.secure, this._options.host, this._options.port, this._options.path, this._options.key, this._options.pingInterval); -+ socket.on(enums_1.SocketEventType.Message, function (data) { -+ _this._handleMessage(data); -+ }); -+ socket.on(enums_1.SocketEventType.Error, function (error) { -+ _this._abort(enums_1.PeerErrorType.SocketError, error); -+ }); -+ socket.on(enums_1.SocketEventType.Disconnected, function () { -+ if (_this.disconnected) { -+ return; -+ } -+ _this.emitError(enums_1.PeerErrorType.Network, "Lost connection to server."); -+ _this.disconnect(); -+ }); -+ socket.on(enums_1.SocketEventType.Close, function () { -+ if (_this.disconnected) { -+ return; -+ } -+ _this._abort(enums_1.PeerErrorType.SocketClosed, "Underlying socket is already closed."); -+ }); -+ return socket; -+ }; -+ /** Initialize a connection with the server. */ -+ Peer.prototype._initialize = function (id) { -+ this._id = id; -+ this.socket.start(id, this._options.token); -+ }; -+ /** Handles messages from the server. */ -+ Peer.prototype._handleMessage = function (message) { -+ var type = message.type; -+ var payload = message.payload; -+ var peerId = message.src; -+ switch (type) { -+ case enums_1.ServerMessageType.Open: // The connection to the server is open. -+ this._lastServerId = this.id; -+ this._open = true; -+ this.emit(enums_1.PeerEventType.Open, this.id); -+ break; -+ case enums_1.ServerMessageType.Error: // Server error. -+ this._abort(enums_1.PeerErrorType.ServerError, payload.msg); -+ break; -+ case enums_1.ServerMessageType.IdTaken: // The selected ID is taken. -+ this._abort(enums_1.PeerErrorType.UnavailableID, "ID \"" + this.id + "\" is taken"); -+ break; -+ case enums_1.ServerMessageType.InvalidKey: // The given API key cannot be found. -+ this._abort(enums_1.PeerErrorType.InvalidKey, "API KEY \"" + this._options.key + "\" is invalid"); -+ break; -+ case enums_1.ServerMessageType.Leave: // Another peer has closed its connection to this peer. -+ logger_1.default.log("Received leave message from " + peerId); -+ this._cleanupPeer(peerId); -+ this._connections.delete(peerId); -+ break; -+ case enums_1.ServerMessageType.Expire: // The offer sent to a peer has expired without response. -+ this.emitError(enums_1.PeerErrorType.PeerUnavailable, "Could not connect to peer " + peerId); -+ break; -+ case enums_1.ServerMessageType.Offer: { -+ // we should consider switching this to CALL/CONNECT, but this is the least breaking option. -+ var connectionId = payload.connectionId; -+ var connection = this.getConnection(peerId, connectionId); -+ if (connection) { -+ connection.close(); -+ logger_1.default.warn("Offer received for existing Connection ID:" + connectionId); -+ } -+ // Create a new connection. -+ if (payload.type === enums_1.ConnectionType.Media) { -+ connection = new mediaconnection_1.MediaConnection(peerId, this, { -+ connectionId: connectionId, -+ _payload: payload, -+ metadata: payload.metadata -+ }); -+ this._addConnection(peerId, connection); -+ this.emit(enums_1.PeerEventType.Call, connection); -+ } -+ else if (payload.type === enums_1.ConnectionType.Data) { -+ connection = new dataconnection_1.DataConnection(peerId, this, { -+ connectionId: connectionId, -+ _payload: payload, -+ metadata: payload.metadata, -+ label: payload.label, -+ serialization: payload.serialization, -+ reliable: payload.reliable -+ }); -+ this._addConnection(peerId, connection); -+ this.emit(enums_1.PeerEventType.Connection, connection); -+ } -+ else { -+ logger_1.default.warn("Received malformed connection type:" + payload.type); -+ return; -+ } -+ // Find messages. -+ var messages = this._getMessages(connectionId); -+ for (var _i = 0, messages_1 = messages; _i < messages_1.length; _i++) { -+ var message_1 = messages_1[_i]; -+ connection.handleMessage(message_1); -+ } -+ break; -+ } -+ default: { -+ if (!payload) { -+ logger_1.default.warn("You received a malformed message from " + peerId + " of type " + type); -+ return; -+ } -+ var connectionId = payload.connectionId; -+ var connection = this.getConnection(peerId, connectionId); -+ if (connection && connection.peerConnection) { -+ // Pass it on. -+ connection.handleMessage(message); -+ } -+ else if (connectionId) { -+ // Store for possible later use -+ this._storeMessage(connectionId, message); -+ } -+ else { -+ logger_1.default.warn("You received an unrecognized message:", message); -+ } -+ break; -+ } -+ } -+ }; -+ /** Stores messages without a set up connection, to be claimed later. */ -+ Peer.prototype._storeMessage = function (connectionId, message) { -+ if (!this._lostMessages.has(connectionId)) { -+ this._lostMessages.set(connectionId, []); -+ } -+ // @ts-ignore -+ this._lostMessages.get(connectionId).push(message); -+ }; -+ /** Retrieve messages from lost message store */ -+ //TODO Change it to private -+ Peer.prototype._getMessages = function (connectionId) { -+ var messages = this._lostMessages.get(connectionId); -+ if (messages) { -+ this._lostMessages.delete(connectionId); -+ return messages; -+ } -+ return []; -+ }; -+ /** -+ * Returns a DataConnection to the specified peer. See documentation for a -+ * complete list of options. -+ */ -+ Peer.prototype.connect = function (peer, options) { -+ if (options === void 0) { options = {}; } -+ if (this.disconnected) { -+ logger_1.default.warn("You cannot connect to a new Peer because you called " + -+ ".disconnect() on this Peer and ended your connection with the " + -+ "server. You can create a new Peer to reconnect, or call reconnect " + -+ "on this peer if you believe its ID to still be available."); -+ this.emitError(enums_1.PeerErrorType.Disconnected, "Cannot connect to new Peer after disconnecting from server."); -+ // @ts-ignore -+ return; -+ } -+ var dataConnection = new dataconnection_1.DataConnection(peer, this, options); -+ this._addConnection(peer, dataConnection); -+ return dataConnection; -+ }; -+ /** -+ * Returns a MediaConnection to the specified peer. See documentation for a -+ * complete list of options. -+ */ -+ Peer.prototype.call = function (peer, stream, options) { -+ if (options === void 0) { options = {}; } -+ if (this.disconnected) { -+ logger_1.default.warn("You cannot connect to a new Peer because you called " + -+ ".disconnect() on this Peer and ended your connection with the " + -+ "server. You can create a new Peer to reconnect."); -+ this.emitError(enums_1.PeerErrorType.Disconnected, "Cannot connect to new Peer after disconnecting from server."); -+ // @ts-ignore -+ return; -+ } -+ if (!stream) { -+ logger_1.default.error("To call a peer, you must provide a stream from your browser's `getUserMedia`."); -+ // @ts-ignore -+ return; -+ } -+ options._stream = stream; -+ var mediaConnection = new mediaconnection_1.MediaConnection(peer, this, options); -+ this._addConnection(peer, mediaConnection); -+ return mediaConnection; -+ }; -+ /** Add a data/media connection to this peer. */ -+ Peer.prototype._addConnection = function (peerId, connection) { -+ logger_1.default.log("add connection " + connection.type + ":" + connection.connectionId + " to peerId:" + peerId); -+ if (!this._connections.has(peerId)) { -+ this._connections.set(peerId, []); -+ } -+ // @ts-ignore -+ this._connections.get(peerId).push(connection); -+ }; -+ //TODO should be private -+ Peer.prototype._removeConnection = function (connection) { -+ var connections = this._connections.get(connection.peer); -+ if (connections) { -+ var index = connections.indexOf(connection); -+ if (index !== -1) { -+ connections.splice(index, 1); -+ } -+ } -+ //remove from lost messages -+ this._lostMessages.delete(connection.connectionId); -+ }; -+ /** Retrieve a data/media connection for this peer. */ -+ Peer.prototype.getConnection = function (peerId, connectionId) { -+ var connections = this._connections.get(peerId); -+ if (!connections) { -+ return null; -+ } -+ for (var _i = 0, connections_1 = connections; _i < connections_1.length; _i++) { -+ var connection = connections_1[_i]; -+ if (connection.connectionId === connectionId) { -+ return connection; -+ } -+ } -+ return null; -+ }; -+ Peer.prototype._delayedAbort = function (type, message) { -+ var _this = this; -+ setTimeout(function () { -+ _this._abort(type, message); -+ }, 0); -+ }; -+ /** -+ * Emits an error message and destroys the Peer. -+ * The Peer is not destroyed if it's in a disconnected state, in which case -+ * it retains its disconnected state and its existing connections. -+ */ -+ Peer.prototype._abort = function (type, message) { -+ logger_1.default.error("Aborting!"); -+ this.emitError(type, message); -+ if (!this._lastServerId) { -+ this.destroy(); -+ } -+ else { -+ this.disconnect(); -+ } -+ }; -+ /** Emits a typed error message. */ -+ Peer.prototype.emitError = function (type, err) { -+ logger_1.default.error("Error:", err); -+ var error; -+ if (typeof err === "string") { -+ error = new Error(err); -+ } -+ else { -+ error = err; -+ } -+ error.type = type; -+ this.emit(enums_1.PeerEventType.Error, error); -+ }; -+ /** -+ * Destroys the Peer: closes all active connections as well as the connection -+ * to the server. -+ * Warning: The peer can no longer create or accept connections after being -+ * destroyed. -+ */ -+ Peer.prototype.destroy = function () { -+ if (this.destroyed) { -+ return; -+ } -+ logger_1.default.log("Destroy peer with ID:" + this.id); -+ this.disconnect(); -+ this._cleanup(); -+ this._destroyed = true; -+ this.emit(enums_1.PeerEventType.Close); -+ }; -+ /** Disconnects every connection on this peer. */ -+ Peer.prototype._cleanup = function () { -+ // @ts-ignore -+ for (var _i = 0, _a = this._connections.keys(); _i < _a.length; _i++) { -+ var peerId = _a[_i]; -+ this._cleanupPeer(peerId); -+ this._connections.delete(peerId); -+ } -+ this.socket.removeAllListeners(); -+ }; -+ /** Closes all connections to this peer. */ -+ Peer.prototype._cleanupPeer = function (peerId) { -+ var connections = this._connections.get(peerId); -+ if (!connections) -+ return; -+ for (var _i = 0, connections_2 = connections; _i < connections_2.length; _i++) { -+ var connection = connections_2[_i]; -+ connection.close(); -+ } -+ }; -+ /** -+ * Disconnects the Peer's connection to the PeerServer. Does not close any -+ * active connections. -+ * Warning: The peer can no longer create or accept connections after being -+ * disconnected. It also cannot reconnect to the server. -+ */ -+ Peer.prototype.disconnect = function () { -+ if (this.disconnected) { -+ return; -+ } -+ var currentId = this.id; -+ logger_1.default.log("Disconnect peer with ID:" + currentId); -+ this._disconnected = true; -+ this._open = false; -+ this.socket.close(); -+ this._lastServerId = currentId; -+ this._id = null; -+ this.emit(enums_1.PeerEventType.Disconnected, currentId); -+ }; -+ /** Attempts to reconnect with the same ID. */ -+ Peer.prototype.reconnect = function () { -+ if (this.disconnected && !this.destroyed) { -+ logger_1.default.log("Attempting reconnection to server with ID " + this._lastServerId); -+ this._disconnected = false; -+ this._initialize(this._lastServerId); -+ } -+ else if (this.destroyed) { -+ throw new Error("This peer cannot reconnect to the server. It has already been destroyed."); -+ } -+ else if (!this.disconnected && !this.open) { -+ // Do nothing. We're still connecting the first time. -+ logger_1.default.error("In a hurry? We're still trying to make the initial connection!"); -+ } -+ else { -+ throw new Error("Peer " + this.id + " cannot reconnect because it is not disconnected from the server!"); -+ } -+ }; -+ /** -+ * Get a list of available peer IDs. If you're running your own server, you'll -+ * want to set allow_discovery: true in the PeerServer options. If you're using -+ * the cloud server, email team@peerjs.com to get the functionality enabled for -+ * your key. -+ */ -+ Peer.prototype.listAllPeers = function (cb) { -+ var _this = this; -+ if (cb === void 0) { cb = function (_) { }; } -+ this._api.listAllPeers() -+ .then(function (peers) { return cb(peers); }) -+ .catch(function (error) { return _this._abort(enums_1.PeerErrorType.ServerError, error); }); -+ }; -+ Peer.DEFAULT_KEY = "peerjs"; -+ return Peer; -+}(eventemitter3_1.EventEmitter)); -+exports.Peer = Peer; -diff --git a/node_modules/peerjs/dist/peerjs.js b/node_modules/peerjs/dist/peerjs.js -deleted file mode 100644 -index b902845..0000000 ---- a/node_modules/peerjs/dist/peerjs.js -+++ /dev/null -@@ -1,10318 +0,0 @@ --// modules are defined as an array --// [ module function, map of requires ] --// --// map of requires is short require name -> numeric require --// --// anything defined in a previous bundle is accessed via the --// orig method which is the require for previous bundles --parcelRequire = (function (modules, cache, entry, globalName) { -- // Save the require from previous bundle to this closure if any -- var previousRequire = typeof parcelRequire === 'function' && parcelRequire; -- var nodeRequire = typeof require === 'function' && require; -- -- function newRequire(name, jumped) { -- if (!cache[name]) { -- if (!modules[name]) { -- // if we cannot find the module within our internal map or -- // cache jump to the current global require ie. the last bundle -- // that was added to the page. -- var currentRequire = typeof parcelRequire === 'function' && parcelRequire; -- if (!jumped && currentRequire) { -- return currentRequire(name, true); -- } -- -- // If there are other bundles on this page the require from the -- // previous one is saved to 'previousRequire'. Repeat this as -- // many times as there are bundles until the module is found or -- // we exhaust the require chain. -- if (previousRequire) { -- return previousRequire(name, true); -- } -- -- // Try the node require function if it exists. -- if (nodeRequire && typeof name === 'string') { -- return nodeRequire(name); -- } -- -- var err = new Error('Cannot find module \'' + name + '\''); -- err.code = 'MODULE_NOT_FOUND'; -- throw err; -- } -- -- localRequire.resolve = resolve; -- localRequire.cache = {}; -- -- var module = cache[name] = new newRequire.Module(name); -- -- modules[name][0].call(module.exports, localRequire, module, module.exports, this); -- } -- -- return cache[name].exports; -- -- function localRequire(x){ -- return newRequire(localRequire.resolve(x)); -- } -- -- function resolve(x){ -- return modules[name][1][x] || x; -- } -- } -- -- function Module(moduleName) { -- this.id = moduleName; -- this.bundle = newRequire; -- this.exports = {}; -- } -- -- newRequire.isParcelRequire = true; -- newRequire.Module = Module; -- newRequire.modules = modules; -- newRequire.cache = cache; -- newRequire.parent = previousRequire; -- newRequire.register = function (id, exports) { -- modules[id] = [function (require, module) { -- module.exports = exports; -- }, {}]; -- }; -- -- var error; -- for (var i = 0; i < entry.length; i++) { -- try { -- newRequire(entry[i]); -- } catch (e) { -- // Save first error but execute all entries -- if (!error) { -- error = e; -- } -- } -- } -- -- if (entry.length) { -- // Expose entry point to Node, AMD or browser globals -- // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js -- var mainExports = newRequire(entry[entry.length - 1]); -- -- // CommonJS -- if (typeof exports === "object" && typeof module !== "undefined") { -- module.exports = mainExports; -- -- // RequireJS -- } else if (typeof define === "function" && define.amd) { -- define(function () { -- return mainExports; -- }); -- -- // + - -