From a58dcdafb172880f9688a53e2b0ab11f8a49cee0 Mon Sep 17 00:00:00 2001 From: Mark Voltov Date: Sun, 14 Apr 2024 18:54:47 +0000 Subject: [PATCH] FreeCAD: Workbench Refactor --- .gitmodules | 2 +- README.md | 2 + asp-review-app/.gitignore | 26 - asp-review-app/server/package-lock.json | 2719 --- asp-review-app/server/package.json | 45 - asp-review-app/server/src/app.ts | 71 - .../server/src/core/di/register_di.ts | 28 - .../src/core/exceptions/HttpException.ts | 10 - .../server/src/core/helper/memorization.ts | 191 - .../server/src/core/interfaces/router.ts | 6 - .../core/middlewares/ValidationMiddleware.ts | 25 - .../src/core/repository/compute_repository.ts | 76 - .../src/core/repository/entity_repository.ts | 87 - .../src/core/repository/zip_repository.ts | 13 - .../server/src/core/routes/routes.ts | 5 - .../assembly_create_controller.ts | 101 - .../assembly_create/assembly_create_route.ts | 46 - .../assembly_create/model/zip_files_model.ts | 23 - .../assembly_previews_controller.ts | 156 - .../assembly_previews_route.ts | 29 - asp-review-app/server/src/server.ts | 14 - asp-review-app/server/tsconfig.json | 28 - asp-review-app/ui/README.md | 46 - asp-review-app/ui/config/env.js | 104 - asp-review-app/ui/config/getHttpsConfig.js | 66 - .../ui/config/jest/babelTransform.js | 29 - asp-review-app/ui/config/jest/cssTransform.js | 14 - .../ui/config/jest/fileTransform.js | 40 - asp-review-app/ui/config/modules.js | 134 - asp-review-app/ui/config/paths.js | 77 - asp-review-app/ui/config/webpack.config.js | 755 - .../persistentCache/createEnvironmentHash.js | 9 - .../ui/config/webpackDevServer.config.js | 127 - asp-review-app/ui/package-lock.json | 17226 ---------------- asp-review-app/ui/package.json | 165 - asp-review-app/ui/public/favicon.ico | Bin 3870 -> 0 bytes asp-review-app/ui/public/index.html | 43 - asp-review-app/ui/public/logo192.png | Bin 5347 -> 0 bytes asp-review-app/ui/public/logo512.png | Bin 9664 -> 0 bytes asp-review-app/ui/public/manifest.json | 25 - asp-review-app/ui/public/robots.txt | 3 - asp-review-app/ui/scripts/build.js | 217 - asp-review-app/ui/scripts/start.js | 154 - asp-review-app/ui/scripts/test.js | 52 - asp-review-app/ui/src/App.css | 44 - asp-review-app/ui/src/core/core.tsx | 10 - .../ui/src/core/repository/http_repository.ts | 35 - .../src/core/repository/theere_repository.ts | 1 - .../all_project/all_project_screen.tsx | 89 - .../Assembly_preview_insert_vector_screen.tsx | 198 - .../assembly_preview_subsequence_screen.tsx | 141 - .../create_project/create_project.tsx | 72 - .../stability_preview/stability_preview.tsx | 57 - .../topology_ajax_preview.tsx | 48 - asp-review-app/ui/src/global.d.ts | 14 - asp-review-app/ui/src/index.css | 13 - asp-review-app/ui/src/index.tsx | 50 - asp-review-app/ui/src/reportWebVitals.ts | 15 - asp-review-app/ui/tsconfig.json | 27 - asp-review-app/ui/yarn.lock | 10607 ---------- cad_generation/model/files_generator.py | 13 - cad_generation/model/geometry_part.py | 86 - cad_generation/model/mesh_part_model.py | 32 - cad_generation/model/sdf_geometry_model.py | 158 - .../model/simple_copy_part_model.py | 30 - cg/__init__.py | 2 - cg/blender/README.md | 3 - cg/blender/__init__.py | 5 - cg/blender/export/README.md | 20 - cg/blender/export/__init__.py | 56 - cg/blender/export/collision.py | 41 - cg/blender/export/dae.py | 62 - cg/blender/export/fbx.py | 69 - cg/blender/export/obj.py | 36 - cg/blender/export/ply.py | 40 - cg/blender/export/stl.py | 39 - cg/blender/import_cad/README.md | 20 - cg/blender/import_cad/__init__.py | 6 - cg/blender/import_cad/build_blender_scene.py | 108 - .../import_cad/import_coordinate_point.py | 67 - cg/blender/import_cad/import_hierarchy.py | 65 - cg/blender/import_cad/import_materials.py | 117 - cg/blender/import_mesh/README.md | 1 - cg/blender/import_mesh/__init__.py | 7 - cg/blender/import_mesh/obj.py | 30 - cg/blender/processing/README.md | 34 - cg/blender/processing/__init__.py | 5 - cg/blender/processing/midpoly_setup.py | 69 - cg/blender/processing/render_assets.py | 74 - cg/blender/processing/restruct_hierarchy.py | 268 - cg/blender/processing/uv_setup.py | 64 - cg/blender/processing/visual_assets.py | 133 - .../scripts/addons/BakeWrangler/LICENSE | 674 - .../scripts/addons/BakeWrangler/__init__.py | 207 - .../scripts/addons/BakeWrangler/baker.py | 3030 --- .../scripts/addons/BakeWrangler/marginer.py | 162 - .../addons/BakeWrangler/nodes/__init__.py | 17 - .../addons/BakeWrangler/nodes/node_mexport.py | 370 - .../addons/BakeWrangler/nodes/node_msgbus.py | 114 - .../addons/BakeWrangler/nodes/node_panel.py | 299 - .../addons/BakeWrangler/nodes/node_tree.py | 5218 ----- .../addons/BakeWrangler/nodes/node_update.py | 329 - .../BakeWrangler/nodes/prev_trees/__init__.py | 0 .../nodes/prev_trees/node_tree_v1.py | 305 - .../nodes/prev_trees/node_tree_v5.py | 66 - .../resources/BakeWrangler_Scene.blend | Bin 167564 -> 0 bytes .../BakeWrangler/status_bar/__init__.py | 8 - .../status_bar/icons/bw_error.png | Bin 4483 -> 0 bytes .../BakeWrangler/status_bar/icons/bw_good.png | Bin 4522 -> 0 bytes .../status_bar/icons/bw_working.png | Bin 4416 -> 0 bytes .../status_bar/status_bar_icon.py | 106 - .../scripts/addons/BakeWrangler/vert/ipc.py | 133 - .../scripts/addons/Robossembler/__init__.py | 249 - .../Robossembler/io_anim_ros2bag/__init__.py | 66 - .../io_anim_ros2bag/ros2bag_parser.py | 163 - .../io_entity_manager/__init__.py | 88 - .../Robossembler/io_scene_json/__init__.py | 189 - .../Robossembler/io_scene_json/model_md5.py | 30 - .../Robossembler/io_scene_json/model_name.py | 18 - .../Robossembler/io_scene_json/model_paths.py | 12 - cg/blender/scripts/startup/cg_environment.py | 42 - cg/blender/texturing/README.md | 23 - cg/blender/texturing/bake_submitter.py | 256 - cg/blender/texturing/composing.py | 245 - cg/blender/texturing/shading.py | 129 - cg/blender/utils/README.md | 67 - cg/blender/utils/blender_render_settings.py | 111 - cg/blender/utils/cleanup_orphan_data.py | 38 - cg/blender/utils/collection_tools.py | 79 - cg/blender/utils/generative_modifiers.py | 159 - .../utils/img/blender_render_settings.blend | Bin 106028 -> 0 bytes .../img/blender_render_settings_default.jpg | Bin 219720 -> 0 bytes .../img/blender_render_settings_large.jpg | Bin 281051 -> 0 bytes .../img/blender_render_settings_medium.jpg | Bin 239250 -> 0 bytes .../img/blender_render_settings_small.jpg | Bin 279130 -> 0 bytes cg/blender/utils/mesh_tools.py | 105 - cg/blender/utils/object_converter.py | 40 - cg/blender/utils/object_relations.py | 33 - cg/blender/utils/object_transforms.py | 71 - cg/blender/utils/sdf_mesh_selector.py | 47 - cg/freecad/Frames/AuxObjCreation.py | 286 - cg/freecad/Frames/ImportExportEntities.py | 105 - cg/freecad/Frames/MetaObj.py | 0 cg/freecad/Frames/README.md | 34 - cg/freecad/Frames/Sheet_addition_test.py | 60 - cg/freecad/Frames/axis.gcode | 9697 --------- cg/freecad/Frames/box.py | 0 cg/freecad/Frames/gcoder.py | 769 - cg/freecad/Frames/materialOperator.py | 84 - cg/freecad/Frames/material_requirements.JSON | 6 - .../Frames/model/connected_part_model.py | 34 - cg/freecad/Frames/model/join_mesh_model.py | 33 - cg/freecad/Frames/modelExport.py | 169 - cg/freecad/Frames/newDatumCmd.py | 259 - cg/freecad/Frames/newLabel.py | 17 - cg/freecad/Frames/normalEstimator | 0 cg/freecad/Frames/testSpread2.py | 77 - .../Frames/usecases/asm4parser_usecase.py | 53 - cg/freecad/README.md | 1 - cg/pipeline/README.md | 21 - cg/pipeline/__init__.py | 2 - cg/pipeline/cg_pipeline.py | 356 - .../Frames => docs}/img/qXX7sBMbsvA.jpg | Bin .../Модуль технологической подготовки.md | 0 .../Frames => freecad_workbench}/BoMList.py | 0 freecad_workbench/Changelog.md | 26 + .../DatumCommand.py | 0 .../Frames => freecad_workbench}/Frames.py | 9 +- .../GazeboExport.py | 0 .../Frames => freecad_workbench}/GraspPose.py | 0 freecad_workbench/GripPoseGenerator.py | 287 + freecad_workbench/ImportExportEntities.py | 51 + .../Frames => freecad_workbench}/Init.py | 0 .../Frames => freecad_workbench}/InitGui.py | 6 +- .../Frames => freecad_workbench}/LICENSE | 0 freecad_workbench/README.md | 9 + .../Frames => freecad_workbench}/Tools.py | 0 .../UI/FeatureFrameCreator.ui | 0 .../UI/FramePlacer.ui | 0 .../UI/InsertTaskCreator.ui | 0 .../UI/PartFrameCreator.ui | 0 .../UI/ScrewTaskCreator.ui | 0 .../UI/icons/BoMList.svg | 0 .../UI/icons/Center.svg | 0 .../UI/icons/PickedPoint.svg | 0 .../UI/icons/PointOnCenterline.svg | 0 .../UI/icons/PointOnEdge.svg | 0 .../UI/icons/PointOnSurface.svg | 0 .../UI/icons/addgrasppose.svg | 0 .../UI/icons/allpartframes.svg | 0 .../UI/icons/allpartgroups.svg | 0 .../UI/icons/assembly4.svg | 0 .../UI/icons/auxDatum.svg | 0 .../UI/icons/featureframecreator.svg | 0 .../UI/icons/frame.svg | 0 .../UI/icons/gazeboexport.svg | 0 .../UI/icons/github_preview.png | Bin .../UI/icons/inserttask.svg | 0 .../UI/icons/partframe.svg | 0 .../UI/icons/parttojson.svg | 0 .../UI/icons/placetask.svg | 0 .../UI/icons/plasetask.svg | 0 freecad_workbench/UI/icons/publish.svg | 175 + .../UI/icons/screwtask.svg | 0 .../UI/icons/taskcreator.svg | 0 {cg/freecad => freecad_workbench}/__init__.py | 0 .../cad_generation}/env.json | 0 .../helper/file_system_repository.py | 0 .../cad_generation}/helper/is_solid.py | 0 .../cad_generation}/main.py | 0 .../cad_generation}/model/files_generator.py | 1 + .../cad_generation}/model/geometry_part.py | 2 +- .../cad_generation}/model/join_mesh_model.py | 2 +- .../cad_generation}/model/mesh_part_model.py | 2 +- .../model/sdf_geometry_model.py | 2 +- .../model/simple_copy_part_model.py | 0 .../robossembler_freecad_export_scenari.py | 4 + .../usecases/assembly_parse_usecase.py | 3 +- .../export_assembly_them_all_usecase.py | 1 + .../usecases/export_usecase.py | 6 +- .../usecases/geometry_usecase.py | 0 .../usecases/get_sdf_geometry_usecase.py | 0 .../cad_stability_check}/.gitignore | 0 .../cad_stability_check}/main.py | 0 .../cad_stability_input}/.gitignore | 0 .../cad_stability_input}/LICENSE | 0 .../cad_stability_input}/README.md | 0 .../cad_stability_input}/gui/__init__.py | 0 .../cad_stability_input}/gui/init_gui.py | 0 .../gui/resources/server_sync.svg | 0 .../gui/resources/stability_zone.svg | 0 .../gui/resources/template_resource.svg | 0 .../cad_stability_input}/gui/version.py | 0 .../cad_stability_input}/main.py | 0 freecad_workbench/chekingEntities.py | 27 + freecad_workbench/freecad_to_json.py | 187 + .../geometric_feasibility_predicate}/env.json | 0 .../geometric_feasibility_predicate}/main.py | 0 .../Frames => freecad_workbench}/helper/fs.py | 0 .../helper/is_solid.py | 0 freecad_workbench/importFreecadUsecase.py | 81 + .../is_object_solid.py | 26 +- .../markupEntities.py | 34 + .../pddl/Printer.FCStd | Bin .../pddl/domain.pddl | 0 .../pddl/freecad2pddl.py | 0 .../pddl}/my_problem.pddl | 0 .../pddl}/printETA.py | 0 .../pddl/problem.pddl | 0 .../poseGenerator.py | 0 .../Robossembler_ABS-Dark-Rough.FCMat | 0 .../Robossembler_ABS-Grey-Rough.FCMat | 0 .../Robossembler_ABS-White-Rough.FCMat | 0 .../Robossembler_Al.FCMat | 0 .../Robossembler_Cu.FCMat | 0 .../Robossembler_Fe.FCMat | 0 .../Robossembler_Steel.FCMat | 0 .../robossembler_freecad_export_scenario.py | 0 .../usecases/asm4parser_usecase.py | 0 .../usecases/assembly_parse_usecase.py | 0 .../export_assembly_them_all_usecase.py | 0 .../usecases/export_usecase.py | 2 +- .../usecases/geometry_usecase.py | 0 .../usecases/get_sdf_geometry_usecase.py | 0 .../utils/README.md | 0 .../utils/__init__.py | 0 .../utils/freecad_exporters.py | 30 +- freecad_workbench/utils/freecad_processor.py | 17 + .../utils/freecad_tools.py | 4 +- geometric_feasibility_predicate/README.MD | 2 - geometric_feasibility_predicate/__init__.py | 0 .../extensions/__init__.py | 0 .../extensions/dict.py | 53 - .../extensions/list.py | 70 - .../helpers/background_console_colors.py | 10 - .../helpers/either.py | 83 - .../helpers/freecadtest.py | 73 - .../mocks/__init__.py | 0 .../mocks/bottle_jack.FCStd | Bin 828879 -> 0 bytes .../mocks/desk_table.FCStd | Bin 343689 -> 0 bytes .../mocks/mock_structure.py | 36 - .../simple_assembly_with_two_cubes.FCStd | Bin 5408 -> 0 bytes .../model/__init__.py | 0 .../models/__init__.py | 0 .../models/adjacency_matrix_model.py | 118 - .../models/all_sequences_model.py | 130 - .../models/cad_adjacency_matrix_model.py | 71 - .../models/env_model.py | 48 - .../models/error_string_model.py | 28 - .../models/freecad_meta_model.py | 4 - .../models/mesh_geometry_coordinate_model.py | 41 - geometric_feasibility_predicate/models/var.py | 51 - .../models/vector_model.py | 18 - .../repository/__init__.py | 0 .../repository/file_system_repository.py | 25 - .../repository/freecad_repository.py | 171 - .../usecases/__init__.py | 0 .../check_object_has_touches_use_case.py | 50 - .../usecases/check_sequence_use_case.py | 11 - .../clear_work_space_document_use_case.py | 16 - .../clusterisation_sequences_use_case.py | 66 - .../usecases/env_reader_use_case.py | 12 - .../usecases/exit_freecad_use_case.py | 6 - .../usecases/get_all_parts_labels_use_case.py | 13 - .../get_collision_at_primitive_use_case.py | 44 - .../usecases/get_first_detail_use_case.py | 8 - ...get_part_primitive_coordinates_use_case.py | 27 - .../usecases/init_parts_parse_use_case.py | 17 - .../intersection_computed_use_case.py | 20 - .../intersection_geometry_use_case.py | 31 - .../is_all_object_solids_check_use_case.py | 14 - .../open_freecad_document_use_case.py | 18 - ..._system_and_get_instance_model_use_case.py | 21 - .../usecases/render_primitive_use_case.py | 15 - .../usecases/render_primitives_scenario.py | 41 - insertion_vector_predicate/README.md | 19 - insertion_vector_predicate/assembly | 1 - pddl/helper/fs.py | 19 - pddl/main.py | 30 - pddl/mocks/domain.txt | 38 - pddl/mocks/problem.txt | 25 - pddl/mocks/step-mock.json | 1 - pddl/requirements.txt | 2 - pddl/src/model/asm4_structure.py | 90 - pddl/src/model/robossembler_assets.py | 399 - .../src/usecases/assembly_to_pddl_use_case.py | 86 - pddl/tools/gcoder.py | 769 - pddl/unit.test.py | 33 - {asp => simulation/asp}/.gitignore | 0 {asp => simulation/asp}/helper/fs.py | 0 .../asp}/helper/xmlformatter.py | 0 {asp => simulation/asp}/main.py | 0 {asp => simulation/asp}/mocks/Cube1.json | 0 {asp => simulation/asp}/mocks/Cube2.json | 0 {asp => simulation/asp}/mocks/sdf/include.sdf | 0 .../asp}/mocks/sdf/include_pose.sdf | 0 .../asp}/mocks/sdf/joint_fixed.sdf | 0 {asp => simulation/asp}/mocks/sdf/link.sdf | 0 .../asp}/mocks/sdf/model.config | 0 {asp => simulation/asp}/mocks/sdf/model.sdf | 0 {asp => simulation/asp}/mocks/sdf/world.sdf | 0 {asp => simulation/asp}/mocks/urdf/asm.urdf | 0 {asp => simulation/asp}/mocks/urdf/joint.urdf | 0 {asp => simulation/asp}/mocks/urdf/link.urdf | 0 {asp => simulation/asp}/mocks/urdf/model.urdf | 0 {asp => simulation/asp}/requirements.txt | 0 {asp => simulation/asp}/src/model/asm.py | 0 {asp => simulation/asp}/src/model/enum.py | 0 .../asp}/src/model/sdf_geometry.py | 0 {asp => simulation/asp}/src/model/sdf_join.py | 0 .../asp}/src/usecases/formatter_usecase.py | 0 .../asp}/src/usecases/generate_world.py | 0 .../usecases/sdf_generate_world_usecase.py | 0 .../src/usecases/sdf_sub_assembly_usecase.py | 0 .../src/usecases/urdf_sub_assembly_usecase.py | 0 .../insertion_vector_predicate}/.gitignore | 0 .../insertion_vector_predicate/README.md | 31 + .../insertion_vector_predicate}/generate.py | 0 .../insertion_vector_predicate}/main.py | 0 .../requirements.txt | 0 .../README.md | 0 .../intersection_geometry_predicate}/main.py | 0 .../requirements.txt | 0 .../object_detection}/README.md | 0 .../object_detection}/obj2Yolov4dataset.py | 0 .../object_detection}/objs2Yolov4dataset.py | 0 .../object_detection}/yolov4_min.cfg | 0 .../object_detection}/yolov4_min.data | 0 .../object_detection}/yolov4_objs2.cfg | 0 .../object_detection}/yolov4_objs2.data | 0 .../object_detection}/yolov4_test.cfg | 0 .../pose_estimation}/.gitkeep | 0 .../pose_estimation}/BOPdataset.md | 0 .../pose_estimation}/objs2BOPdataset.py | 0 .../robossembler_scene_builder}/main.py | 0 .../mocks/light_sdf.xml | 0 .../mocks/model_include_sdf.xml | 0 .../mocks/world.xml | 0 .../model/robossembler_assets.py | 0 .../repository/file_system.py | 0 .../stability_process_predicate}/main.py | 0 .../usecases/stability_check_usecase.py | 0 test_models/test_reductor.FCStd | Bin 41489 -> 47026 bytes {cg/utils => utils}/README.md | 0 {cg/utils => utils}/cmd_proc.py | 0 {cg/utils => utils}/custom_parser.py | 0 386 files changed, 997 insertions(+), 64533 deletions(-) delete mode 100644 asp-review-app/.gitignore delete mode 100644 asp-review-app/server/package-lock.json delete mode 100644 asp-review-app/server/package.json delete mode 100644 asp-review-app/server/src/app.ts delete mode 100644 asp-review-app/server/src/core/di/register_di.ts delete mode 100644 asp-review-app/server/src/core/exceptions/HttpException.ts delete mode 100644 asp-review-app/server/src/core/helper/memorization.ts delete mode 100644 asp-review-app/server/src/core/interfaces/router.ts delete mode 100644 asp-review-app/server/src/core/middlewares/ValidationMiddleware.ts delete mode 100644 asp-review-app/server/src/core/repository/compute_repository.ts delete mode 100644 asp-review-app/server/src/core/repository/entity_repository.ts delete mode 100644 asp-review-app/server/src/core/repository/zip_repository.ts delete mode 100644 asp-review-app/server/src/core/routes/routes.ts delete mode 100644 asp-review-app/server/src/features/assembly_create/assembly_create_controller.ts delete mode 100644 asp-review-app/server/src/features/assembly_create/assembly_create_route.ts delete mode 100644 asp-review-app/server/src/features/assembly_create/model/zip_files_model.ts delete mode 100644 asp-review-app/server/src/features/assembly_previews/assembly_previews_controller.ts delete mode 100644 asp-review-app/server/src/features/assembly_previews/assembly_previews_route.ts delete mode 100644 asp-review-app/server/src/server.ts delete mode 100644 asp-review-app/server/tsconfig.json delete mode 100644 asp-review-app/ui/README.md delete mode 100644 asp-review-app/ui/config/env.js delete mode 100644 asp-review-app/ui/config/getHttpsConfig.js delete mode 100644 asp-review-app/ui/config/jest/babelTransform.js delete mode 100644 asp-review-app/ui/config/jest/cssTransform.js delete mode 100644 asp-review-app/ui/config/jest/fileTransform.js delete mode 100644 asp-review-app/ui/config/modules.js delete mode 100644 asp-review-app/ui/config/paths.js delete mode 100644 asp-review-app/ui/config/webpack.config.js delete mode 100644 asp-review-app/ui/config/webpack/persistentCache/createEnvironmentHash.js delete mode 100644 asp-review-app/ui/config/webpackDevServer.config.js delete mode 100644 asp-review-app/ui/package-lock.json delete mode 100644 asp-review-app/ui/package.json delete mode 100644 asp-review-app/ui/public/favicon.ico delete mode 100644 asp-review-app/ui/public/index.html delete mode 100644 asp-review-app/ui/public/logo192.png delete mode 100644 asp-review-app/ui/public/logo512.png delete mode 100644 asp-review-app/ui/public/manifest.json delete mode 100644 asp-review-app/ui/public/robots.txt delete mode 100644 asp-review-app/ui/scripts/build.js delete mode 100644 asp-review-app/ui/scripts/start.js delete mode 100644 asp-review-app/ui/scripts/test.js delete mode 100644 asp-review-app/ui/src/App.css delete mode 100644 asp-review-app/ui/src/core/core.tsx delete mode 100644 asp-review-app/ui/src/core/repository/http_repository.ts delete mode 100644 asp-review-app/ui/src/core/repository/theere_repository.ts delete mode 100644 asp-review-app/ui/src/features/all_project/all_project_screen.tsx delete mode 100644 asp-review-app/ui/src/features/assembly_preview_insert_vector/Assembly_preview_insert_vector_screen.tsx delete mode 100644 asp-review-app/ui/src/features/assembly_preview_subsequence/assembly_preview_subsequence_screen.tsx delete mode 100644 asp-review-app/ui/src/features/create_project/create_project.tsx delete mode 100644 asp-review-app/ui/src/features/stability_preview/stability_preview.tsx delete mode 100644 asp-review-app/ui/src/features/topology_ajax_preview/topology_ajax_preview.tsx delete mode 100644 asp-review-app/ui/src/global.d.ts delete mode 100644 asp-review-app/ui/src/index.css delete mode 100644 asp-review-app/ui/src/index.tsx delete mode 100644 asp-review-app/ui/src/reportWebVitals.ts delete mode 100644 asp-review-app/ui/tsconfig.json delete mode 100644 asp-review-app/ui/yarn.lock delete mode 100644 cad_generation/model/files_generator.py delete mode 100644 cad_generation/model/geometry_part.py delete mode 100644 cad_generation/model/mesh_part_model.py delete mode 100644 cad_generation/model/sdf_geometry_model.py delete mode 100644 cad_generation/model/simple_copy_part_model.py delete mode 100644 cg/__init__.py delete mode 100644 cg/blender/README.md delete mode 100644 cg/blender/__init__.py delete mode 100644 cg/blender/export/README.md delete mode 100644 cg/blender/export/__init__.py delete mode 100644 cg/blender/export/collision.py delete mode 100644 cg/blender/export/dae.py delete mode 100644 cg/blender/export/fbx.py delete mode 100644 cg/blender/export/obj.py delete mode 100644 cg/blender/export/ply.py delete mode 100644 cg/blender/export/stl.py delete mode 100644 cg/blender/import_cad/README.md delete mode 100644 cg/blender/import_cad/__init__.py delete mode 100644 cg/blender/import_cad/build_blender_scene.py delete mode 100644 cg/blender/import_cad/import_coordinate_point.py delete mode 100644 cg/blender/import_cad/import_hierarchy.py delete mode 100644 cg/blender/import_cad/import_materials.py delete mode 100644 cg/blender/import_mesh/README.md delete mode 100644 cg/blender/import_mesh/__init__.py delete mode 100644 cg/blender/import_mesh/obj.py delete mode 100644 cg/blender/processing/README.md delete mode 100644 cg/blender/processing/__init__.py delete mode 100644 cg/blender/processing/midpoly_setup.py delete mode 100644 cg/blender/processing/render_assets.py delete mode 100644 cg/blender/processing/restruct_hierarchy.py delete mode 100644 cg/blender/processing/uv_setup.py delete mode 100644 cg/blender/processing/visual_assets.py delete mode 100644 cg/blender/scripts/addons/BakeWrangler/LICENSE delete mode 100644 cg/blender/scripts/addons/BakeWrangler/__init__.py delete mode 100644 cg/blender/scripts/addons/BakeWrangler/baker.py delete mode 100644 cg/blender/scripts/addons/BakeWrangler/marginer.py delete mode 100644 cg/blender/scripts/addons/BakeWrangler/nodes/__init__.py delete mode 100644 cg/blender/scripts/addons/BakeWrangler/nodes/node_mexport.py delete mode 100644 cg/blender/scripts/addons/BakeWrangler/nodes/node_msgbus.py delete mode 100644 cg/blender/scripts/addons/BakeWrangler/nodes/node_panel.py delete mode 100644 cg/blender/scripts/addons/BakeWrangler/nodes/node_tree.py delete mode 100644 cg/blender/scripts/addons/BakeWrangler/nodes/node_update.py delete mode 100644 cg/blender/scripts/addons/BakeWrangler/nodes/prev_trees/__init__.py delete mode 100644 cg/blender/scripts/addons/BakeWrangler/nodes/prev_trees/node_tree_v1.py delete mode 100644 cg/blender/scripts/addons/BakeWrangler/nodes/prev_trees/node_tree_v5.py delete mode 100644 cg/blender/scripts/addons/BakeWrangler/resources/BakeWrangler_Scene.blend delete mode 100644 cg/blender/scripts/addons/BakeWrangler/status_bar/__init__.py delete mode 100644 cg/blender/scripts/addons/BakeWrangler/status_bar/icons/bw_error.png delete mode 100644 cg/blender/scripts/addons/BakeWrangler/status_bar/icons/bw_good.png delete mode 100644 cg/blender/scripts/addons/BakeWrangler/status_bar/icons/bw_working.png delete mode 100644 cg/blender/scripts/addons/BakeWrangler/status_bar/status_bar_icon.py delete mode 100644 cg/blender/scripts/addons/BakeWrangler/vert/ipc.py delete mode 100644 cg/blender/scripts/addons/Robossembler/__init__.py delete mode 100644 cg/blender/scripts/addons/Robossembler/io_anim_ros2bag/__init__.py delete mode 100644 cg/blender/scripts/addons/Robossembler/io_anim_ros2bag/ros2bag_parser.py delete mode 100644 cg/blender/scripts/addons/Robossembler/io_entity_manager/__init__.py delete mode 100644 cg/blender/scripts/addons/Robossembler/io_scene_json/__init__.py delete mode 100644 cg/blender/scripts/addons/Robossembler/io_scene_json/model_md5.py delete mode 100644 cg/blender/scripts/addons/Robossembler/io_scene_json/model_name.py delete mode 100644 cg/blender/scripts/addons/Robossembler/io_scene_json/model_paths.py delete mode 100644 cg/blender/scripts/startup/cg_environment.py delete mode 100644 cg/blender/texturing/README.md delete mode 100644 cg/blender/texturing/bake_submitter.py delete mode 100644 cg/blender/texturing/composing.py delete mode 100644 cg/blender/texturing/shading.py delete mode 100644 cg/blender/utils/README.md delete mode 100644 cg/blender/utils/blender_render_settings.py delete mode 100644 cg/blender/utils/cleanup_orphan_data.py delete mode 100644 cg/blender/utils/collection_tools.py delete mode 100644 cg/blender/utils/generative_modifiers.py delete mode 100644 cg/blender/utils/img/blender_render_settings.blend delete mode 100644 cg/blender/utils/img/blender_render_settings_default.jpg delete mode 100644 cg/blender/utils/img/blender_render_settings_large.jpg delete mode 100644 cg/blender/utils/img/blender_render_settings_medium.jpg delete mode 100644 cg/blender/utils/img/blender_render_settings_small.jpg delete mode 100644 cg/blender/utils/mesh_tools.py delete mode 100644 cg/blender/utils/object_converter.py delete mode 100644 cg/blender/utils/object_relations.py delete mode 100644 cg/blender/utils/object_transforms.py delete mode 100644 cg/blender/utils/sdf_mesh_selector.py delete mode 100644 cg/freecad/Frames/AuxObjCreation.py delete mode 100644 cg/freecad/Frames/ImportExportEntities.py delete mode 100644 cg/freecad/Frames/MetaObj.py delete mode 100644 cg/freecad/Frames/README.md delete mode 100644 cg/freecad/Frames/Sheet_addition_test.py delete mode 100644 cg/freecad/Frames/axis.gcode delete mode 100644 cg/freecad/Frames/box.py delete mode 100644 cg/freecad/Frames/gcoder.py delete mode 100644 cg/freecad/Frames/materialOperator.py delete mode 100644 cg/freecad/Frames/material_requirements.JSON delete mode 100644 cg/freecad/Frames/model/connected_part_model.py delete mode 100644 cg/freecad/Frames/model/join_mesh_model.py delete mode 100644 cg/freecad/Frames/modelExport.py delete mode 100644 cg/freecad/Frames/newDatumCmd.py delete mode 100644 cg/freecad/Frames/newLabel.py delete mode 100644 cg/freecad/Frames/normalEstimator delete mode 100644 cg/freecad/Frames/testSpread2.py delete mode 100644 cg/freecad/Frames/usecases/asm4parser_usecase.py delete mode 100644 cg/freecad/README.md delete mode 100644 cg/pipeline/README.md delete mode 100644 cg/pipeline/__init__.py delete mode 100644 cg/pipeline/cg_pipeline.py rename {cg/freecad/Frames => docs}/img/qXX7sBMbsvA.jpg (100%) rename {cg/freecad/Frames => docs}/Модуль технологической подготовки.md (100%) rename {cg/freecad/Frames => freecad_workbench}/BoMList.py (100%) create mode 100644 freecad_workbench/Changelog.md rename {cg/freecad/Frames => freecad_workbench}/DatumCommand.py (100%) rename {cg/freecad/Frames => freecad_workbench}/Frames.py (98%) rename {cg/freecad/Frames => freecad_workbench}/GazeboExport.py (100%) rename {cg/freecad/Frames => freecad_workbench}/GraspPose.py (100%) create mode 100644 freecad_workbench/GripPoseGenerator.py create mode 100644 freecad_workbench/ImportExportEntities.py rename {cg/freecad/Frames => freecad_workbench}/Init.py (100%) rename {cg/freecad/Frames => freecad_workbench}/InitGui.py (95%) rename {cg/freecad/Frames => freecad_workbench}/LICENSE (100%) create mode 100644 freecad_workbench/README.md rename {cg/freecad/Frames => freecad_workbench}/Tools.py (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/FeatureFrameCreator.ui (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/FramePlacer.ui (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/InsertTaskCreator.ui (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/PartFrameCreator.ui (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/ScrewTaskCreator.ui (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/BoMList.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/Center.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/PickedPoint.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/PointOnCenterline.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/PointOnEdge.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/PointOnSurface.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/addgrasppose.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/allpartframes.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/allpartgroups.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/assembly4.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/auxDatum.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/featureframecreator.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/frame.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/gazeboexport.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/github_preview.png (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/inserttask.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/partframe.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/parttojson.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/placetask.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/plasetask.svg (100%) create mode 100644 freecad_workbench/UI/icons/publish.svg rename {cg/freecad/Frames => freecad_workbench}/UI/icons/screwtask.svg (100%) rename {cg/freecad/Frames => freecad_workbench}/UI/icons/taskcreator.svg (100%) rename {cg/freecad => freecad_workbench}/__init__.py (100%) rename {cad_generation => freecad_workbench/cad_generation}/env.json (100%) rename {cad_generation => freecad_workbench/cad_generation}/helper/file_system_repository.py (100%) rename {cad_generation => freecad_workbench/cad_generation}/helper/is_solid.py (100%) rename {cad_generation => freecad_workbench/cad_generation}/main.py (100%) rename {cg/freecad/Frames => freecad_workbench/cad_generation}/model/files_generator.py (81%) rename {cg/freecad/Frames => freecad_workbench/cad_generation}/model/geometry_part.py (97%) rename {cad_generation => freecad_workbench/cad_generation}/model/join_mesh_model.py (93%) rename {cg/freecad/Frames => freecad_workbench/cad_generation}/model/mesh_part_model.py (91%) rename {cg/freecad/Frames => freecad_workbench/cad_generation}/model/sdf_geometry_model.py (98%) rename {cg/freecad/Frames => freecad_workbench/cad_generation}/model/simple_copy_part_model.py (100%) rename {cad_generation => freecad_workbench/cad_generation}/scenarios/robossembler_freecad_export_scenari.py (88%) rename {cg/freecad/Frames => freecad_workbench/cad_generation}/usecases/assembly_parse_usecase.py (93%) rename {cad_generation => freecad_workbench/cad_generation}/usecases/export_assembly_them_all_usecase.py (97%) rename {cad_generation => freecad_workbench/cad_generation}/usecases/export_usecase.py (88%) rename {cad_generation => freecad_workbench/cad_generation}/usecases/geometry_usecase.py (100%) rename {cad_generation => freecad_workbench/cad_generation}/usecases/get_sdf_geometry_usecase.py (100%) rename {cad_stability_check => freecad_workbench/cad_stability_check}/.gitignore (100%) rename {cad_stability_check => freecad_workbench/cad_stability_check}/main.py (100%) rename {cad_stability_input => freecad_workbench/cad_stability_input}/.gitignore (100%) rename {cad_stability_input => freecad_workbench/cad_stability_input}/LICENSE (100%) rename {cad_stability_input => freecad_workbench/cad_stability_input}/README.md (100%) rename {cad_stability_input => freecad_workbench/cad_stability_input}/gui/__init__.py (100%) rename {cad_stability_input => freecad_workbench/cad_stability_input}/gui/init_gui.py (100%) rename {cad_stability_input => freecad_workbench/cad_stability_input}/gui/resources/server_sync.svg (100%) rename {cad_stability_input => freecad_workbench/cad_stability_input}/gui/resources/stability_zone.svg (100%) rename {cad_stability_input => freecad_workbench/cad_stability_input}/gui/resources/template_resource.svg (100%) rename {cad_stability_input => freecad_workbench/cad_stability_input}/gui/version.py (100%) rename {cad_stability_input => freecad_workbench/cad_stability_input}/main.py (100%) create mode 100644 freecad_workbench/chekingEntities.py create mode 100644 freecad_workbench/freecad_to_json.py rename {geometric_feasibility_predicate => freecad_workbench/geometric_feasibility_predicate}/env.json (100%) rename {geometric_feasibility_predicate => freecad_workbench/geometric_feasibility_predicate}/main.py (100%) rename {cg/freecad/Frames => freecad_workbench}/helper/fs.py (100%) rename {cg/freecad/Frames => freecad_workbench}/helper/is_solid.py (100%) create mode 100644 freecad_workbench/importFreecadUsecase.py rename cg/blender/utils/shininess_to_roughness.py => freecad_workbench/is_object_solid.py (62%) rename {cg/freecad/Frames => freecad_workbench}/markupEntities.py (78%) rename {cg/freecad/Frames => freecad_workbench}/pddl/Printer.FCStd (100%) rename {cg/freecad/Frames => freecad_workbench}/pddl/domain.pddl (100%) rename {cg/freecad/Frames => freecad_workbench}/pddl/freecad2pddl.py (100%) rename {cg/freecad/Frames => freecad_workbench/pddl}/my_problem.pddl (100%) rename {cg/freecad/Frames => freecad_workbench/pddl}/printETA.py (100%) rename {cg/freecad/Frames => freecad_workbench}/pddl/problem.pddl (100%) rename {cg/freecad/Frames => freecad_workbench}/poseGenerator.py (100%) rename {cg/freecad/Robossembler_FEM_Materials => freecad_workbench/robossembler_FEM_materials}/Robossembler_ABS-Dark-Rough.FCMat (100%) rename {cg/freecad/Robossembler_FEM_Materials => freecad_workbench/robossembler_FEM_materials}/Robossembler_ABS-Grey-Rough.FCMat (100%) rename {cg/freecad/Robossembler_FEM_Materials => freecad_workbench/robossembler_FEM_materials}/Robossembler_ABS-White-Rough.FCMat (100%) rename {cg/freecad/Robossembler_FEM_Materials => freecad_workbench/robossembler_FEM_materials}/Robossembler_Al.FCMat (100%) rename {cg/freecad/Robossembler_FEM_Materials => freecad_workbench/robossembler_FEM_materials}/Robossembler_Cu.FCMat (100%) rename {cg/freecad/Robossembler_FEM_Materials => freecad_workbench/robossembler_FEM_materials}/Robossembler_Fe.FCMat (100%) rename {cg/freecad/Robossembler_FEM_Materials => freecad_workbench/robossembler_FEM_materials}/Robossembler_Steel.FCMat (100%) rename {cg/freecad/Frames => freecad_workbench}/scenarios/robossembler_freecad_export_scenario.py (100%) rename {cad_generation => freecad_workbench}/usecases/asm4parser_usecase.py (100%) rename {cad_generation => freecad_workbench}/usecases/assembly_parse_usecase.py (100%) rename {cg/freecad/Frames => freecad_workbench}/usecases/export_assembly_them_all_usecase.py (100%) rename {cg/freecad/Frames => freecad_workbench}/usecases/export_usecase.py (97%) rename {cg/freecad/Frames => freecad_workbench}/usecases/geometry_usecase.py (100%) rename {cg/freecad/Frames => freecad_workbench}/usecases/get_sdf_geometry_usecase.py (100%) rename {cg/freecad => freecad_workbench}/utils/README.md (100%) rename {cg/freecad => freecad_workbench}/utils/__init__.py (100%) rename {cg/freecad => freecad_workbench}/utils/freecad_exporters.py (89%) create mode 100644 freecad_workbench/utils/freecad_processor.py rename {cg/freecad => freecad_workbench}/utils/freecad_tools.py (98%) delete mode 100644 geometric_feasibility_predicate/README.MD delete mode 100644 geometric_feasibility_predicate/__init__.py delete mode 100644 geometric_feasibility_predicate/extensions/__init__.py delete mode 100644 geometric_feasibility_predicate/extensions/dict.py delete mode 100644 geometric_feasibility_predicate/extensions/list.py delete mode 100644 geometric_feasibility_predicate/helpers/background_console_colors.py delete mode 100644 geometric_feasibility_predicate/helpers/either.py delete mode 100644 geometric_feasibility_predicate/helpers/freecadtest.py delete mode 100644 geometric_feasibility_predicate/mocks/__init__.py delete mode 100644 geometric_feasibility_predicate/mocks/bottle_jack.FCStd delete mode 100644 geometric_feasibility_predicate/mocks/desk_table.FCStd delete mode 100644 geometric_feasibility_predicate/mocks/mock_structure.py delete mode 100644 geometric_feasibility_predicate/mocks/simple_assembly_with_two_cubes.FCStd delete mode 100644 geometric_feasibility_predicate/model/__init__.py delete mode 100644 geometric_feasibility_predicate/models/__init__.py delete mode 100644 geometric_feasibility_predicate/models/adjacency_matrix_model.py delete mode 100644 geometric_feasibility_predicate/models/all_sequences_model.py delete mode 100644 geometric_feasibility_predicate/models/cad_adjacency_matrix_model.py delete mode 100644 geometric_feasibility_predicate/models/env_model.py delete mode 100644 geometric_feasibility_predicate/models/error_string_model.py delete mode 100644 geometric_feasibility_predicate/models/freecad_meta_model.py delete mode 100644 geometric_feasibility_predicate/models/mesh_geometry_coordinate_model.py delete mode 100644 geometric_feasibility_predicate/models/var.py delete mode 100644 geometric_feasibility_predicate/models/vector_model.py delete mode 100644 geometric_feasibility_predicate/repository/__init__.py delete mode 100644 geometric_feasibility_predicate/repository/file_system_repository.py delete mode 100644 geometric_feasibility_predicate/repository/freecad_repository.py delete mode 100644 geometric_feasibility_predicate/usecases/__init__.py delete mode 100644 geometric_feasibility_predicate/usecases/check_object_has_touches_use_case.py delete mode 100644 geometric_feasibility_predicate/usecases/check_sequence_use_case.py delete mode 100644 geometric_feasibility_predicate/usecases/clear_work_space_document_use_case.py delete mode 100644 geometric_feasibility_predicate/usecases/clusterisation_sequences_use_case.py delete mode 100644 geometric_feasibility_predicate/usecases/env_reader_use_case.py delete mode 100644 geometric_feasibility_predicate/usecases/exit_freecad_use_case.py delete mode 100644 geometric_feasibility_predicate/usecases/get_all_parts_labels_use_case.py delete mode 100644 geometric_feasibility_predicate/usecases/get_collision_at_primitive_use_case.py delete mode 100644 geometric_feasibility_predicate/usecases/get_first_detail_use_case.py delete mode 100644 geometric_feasibility_predicate/usecases/get_part_primitive_coordinates_use_case.py delete mode 100644 geometric_feasibility_predicate/usecases/init_parts_parse_use_case.py delete mode 100644 geometric_feasibility_predicate/usecases/intersection_computed_use_case.py delete mode 100644 geometric_feasibility_predicate/usecases/intersection_geometry_use_case.py delete mode 100644 geometric_feasibility_predicate/usecases/is_all_object_solids_check_use_case.py delete mode 100644 geometric_feasibility_predicate/usecases/open_freecad_document_use_case.py delete mode 100644 geometric_feasibility_predicate/usecases/read_file_system_and_get_instance_model_use_case.py delete mode 100644 geometric_feasibility_predicate/usecases/render_primitive_use_case.py delete mode 100644 geometric_feasibility_predicate/usecases/render_primitives_scenario.py delete mode 100644 insertion_vector_predicate/README.md delete mode 160000 insertion_vector_predicate/assembly delete mode 100644 pddl/helper/fs.py delete mode 100644 pddl/main.py delete mode 100644 pddl/mocks/domain.txt delete mode 100644 pddl/mocks/problem.txt delete mode 100644 pddl/mocks/step-mock.json delete mode 100644 pddl/requirements.txt delete mode 100644 pddl/src/model/asm4_structure.py delete mode 100644 pddl/src/model/robossembler_assets.py delete mode 100644 pddl/src/usecases/assembly_to_pddl_use_case.py delete mode 100644 pddl/tools/gcoder.py delete mode 100644 pddl/unit.test.py rename {asp => simulation/asp}/.gitignore (100%) rename {asp => simulation/asp}/helper/fs.py (100%) rename {asp => simulation/asp}/helper/xmlformatter.py (100%) rename {asp => simulation/asp}/main.py (100%) rename {asp => simulation/asp}/mocks/Cube1.json (100%) rename {asp => simulation/asp}/mocks/Cube2.json (100%) rename {asp => simulation/asp}/mocks/sdf/include.sdf (100%) rename {asp => simulation/asp}/mocks/sdf/include_pose.sdf (100%) rename {asp => simulation/asp}/mocks/sdf/joint_fixed.sdf (100%) rename {asp => simulation/asp}/mocks/sdf/link.sdf (100%) rename {asp => simulation/asp}/mocks/sdf/model.config (100%) rename {asp => simulation/asp}/mocks/sdf/model.sdf (100%) rename {asp => simulation/asp}/mocks/sdf/world.sdf (100%) rename {asp => simulation/asp}/mocks/urdf/asm.urdf (100%) rename {asp => simulation/asp}/mocks/urdf/joint.urdf (100%) rename {asp => simulation/asp}/mocks/urdf/link.urdf (100%) rename {asp => simulation/asp}/mocks/urdf/model.urdf (100%) rename {asp => simulation/asp}/requirements.txt (100%) rename {asp => simulation/asp}/src/model/asm.py (100%) rename {asp => simulation/asp}/src/model/enum.py (100%) rename {asp => simulation/asp}/src/model/sdf_geometry.py (100%) rename {asp => simulation/asp}/src/model/sdf_join.py (100%) rename {asp => simulation/asp}/src/usecases/formatter_usecase.py (100%) rename {asp => simulation/asp}/src/usecases/generate_world.py (100%) rename {asp => simulation/asp}/src/usecases/sdf_generate_world_usecase.py (100%) rename {asp => simulation/asp}/src/usecases/sdf_sub_assembly_usecase.py (100%) rename {asp => simulation/asp}/src/usecases/urdf_sub_assembly_usecase.py (100%) rename {insertion_vector_predicate => simulation/insertion_vector_predicate}/.gitignore (100%) create mode 100644 simulation/insertion_vector_predicate/README.md rename {insertion_vector_predicate => simulation/insertion_vector_predicate}/generate.py (100%) rename {insertion_vector_predicate => simulation/insertion_vector_predicate}/main.py (100%) rename {insertion_vector_predicate => simulation/insertion_vector_predicate}/requirements.txt (100%) rename {intersection_geometry_predicate => simulation/intersection_geometry_predicate}/README.md (100%) rename {intersection_geometry_predicate => simulation/intersection_geometry_predicate}/main.py (100%) rename {intersection_geometry_predicate => simulation/intersection_geometry_predicate}/requirements.txt (100%) rename {ObjectDetection => simulation/object_detection}/README.md (100%) rename {ObjectDetection => simulation/object_detection}/obj2Yolov4dataset.py (100%) rename {ObjectDetection => simulation/object_detection}/objs2Yolov4dataset.py (100%) rename {ObjectDetection => simulation/object_detection}/yolov4_min.cfg (100%) rename {ObjectDetection => simulation/object_detection}/yolov4_min.data (100%) rename {ObjectDetection => simulation/object_detection}/yolov4_objs2.cfg (100%) rename {ObjectDetection => simulation/object_detection}/yolov4_objs2.data (100%) rename {ObjectDetection => simulation/object_detection}/yolov4_test.cfg (100%) rename {PoseEstimation => simulation/pose_estimation}/.gitkeep (100%) rename {PoseEstimation => simulation/pose_estimation}/BOPdataset.md (100%) rename {PoseEstimation => simulation/pose_estimation}/objs2BOPdataset.py (100%) rename {robossembler_scene_builder => simulation/robossembler_scene_builder}/main.py (100%) rename {robossembler_scene_builder => simulation/robossembler_scene_builder}/mocks/light_sdf.xml (100%) rename {robossembler_scene_builder => simulation/robossembler_scene_builder}/mocks/model_include_sdf.xml (100%) rename {robossembler_scene_builder => simulation/robossembler_scene_builder}/mocks/world.xml (100%) rename {robossembler_scene_builder => simulation/robossembler_scene_builder}/model/robossembler_assets.py (100%) rename {robossembler_scene_builder => simulation/robossembler_scene_builder}/repository/file_system.py (100%) rename {stability_process_predicate => simulation/stability_process_predicate}/main.py (100%) rename {stability_process_predicate => simulation/stability_process_predicate}/usecases/stability_check_usecase.py (100%) rename {cg/utils => utils}/README.md (100%) rename {cg/utils => utils}/cmd_proc.py (100%) rename {cg/utils => utils}/custom_parser.py (100%) diff --git a/.gitmodules b/.gitmodules index 8ec0906..ea20c57 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "insertion_vector_predicate/assembly"] +[submodule "simulation/insertion_vector_predicate/assembly"] path = insertion_vector_predicate/assembly url = https://github.com/yunshengtian/Assemble-Them-All diff --git a/README.md b/README.md index cb12262..f8a0bdc 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Фреймворк Робосборщик + + Фреймворк Робосборщик (Robossembler Framework) предназначен для автоматизации разработки управляющих программ для роботов-манипуляторов, их отладки в виртуальных средах и оценки производительности. Фреймворк состоит из следующих функциональных модулей diff --git a/asp-review-app/.gitignore b/asp-review-app/.gitignore deleted file mode 100644 index a2424f7..0000000 --- a/asp-review-app/.gitignore +++ /dev/null @@ -1,26 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* -**/node_modules -server/public/ -**/computed/ \ No newline at end of file diff --git a/asp-review-app/server/package-lock.json b/asp-review-app/server/package-lock.json deleted file mode 100644 index 686b9b1..0000000 --- a/asp-review-app/server/package-lock.json +++ /dev/null @@ -1,2719 +0,0 @@ -{ - "name": "express-typescript", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "express-typescript", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "body-parser": "^1.20.2", - "class-transformer": "^0.5.1", - "class-validator": "^0.14.0", - "compression": "^1.7.4", - "concurrently": "^8.0.1", - "cors": "^2.8.5", - "decompress": "^4.2.1", - "express": "^4.18.2", - "express-cross": "^1.0.0", - "express-fileupload": "^1.4.0", - "first-di": "^1.0.11", - "form-data": "^4.0.0", - "lodash": "^4.17.21", - "morgan": "^1.10.0", - "multer": "^1.4.5-lts.1", - "node-stream-zip": "^1.15.0", - "nodemon": "^2.0.22", - "shelljs": "^0.8.5", - "ts-node": "^10.9.1" - }, - "devDependencies": { - "@types/compression": "^1.7.2", - "@types/cors": "^2.8.13", - "@types/express": "^4.17.17", - "@types/express-fileupload": "^1.4.1", - "@types/mongoose": "^5.11.97", - "@types/node": "^17.0.45", - "typescript": "^4.9.5" - } - }, - "node_modules/@babel/runtime": { - "version": "7.22.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.3.tgz", - "integrity": "sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ==", - "dependencies": { - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/busboy": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@types/busboy/-/busboy-1.5.0.tgz", - "integrity": "sha512-ncOOhwmyFDW76c/Tuvv9MA9VGYUCn8blzyWmzYELcNGDb0WXWLSmFi7hJq25YdRBYJrmMBB5jZZwUjlJe9HCjQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/compression": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@types/compression/-/compression-1.7.2.tgz", - "integrity": "sha512-lwEL4M/uAGWngWFLSG87ZDr2kLrbuR8p7X+QZB1OQlT+qkHsCPDVFnHPyXf4Vyl4yDDorNY+mAhosxkCvppatg==", - "dev": true, - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cors": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", - "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-fileupload": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@types/express-fileupload/-/express-fileupload-1.4.1.tgz", - "integrity": "sha512-sbl865h1Sser6SF+efpw2F/+roGISj+PRIbMcGXbtzgJQCBAeeBmoSo7sPge/mBa22ymCHfFPtHFsag/wUxwfg==", - "dev": true, - "dependencies": { - "@types/busboy": "*", - "@types/express": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.35", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", - "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "node_modules/@types/mongoose": { - "version": "5.11.97", - "resolved": "https://registry.npmjs.org/@types/mongoose/-/mongoose-5.11.97.tgz", - "integrity": "sha512-cqwOVYT3qXyLiGw7ueU2kX9noE8DPGRY6z8eUxudhXY8NZ7DMKYAxyZkLSevGfhCX3dO/AoX5/SO9lAzfjon0Q==", - "deprecated": "Mongoose publishes its own types, so you do not need to install this package.", - "dev": true, - "dependencies": { - "mongoose": "*" - } - }, - "node_modules/@types/node": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "node_modules/@types/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", - "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", - "dev": true, - "dependencies": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/@types/validator": { - "version": "13.7.17", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.17.tgz", - "integrity": "sha512-aqayTNmeWrZcvnG2MG9eGYI6b7S5fl+yKgPs6bAjOTwPS316R5SxBGKvtSExfyoJU7pIeHJfsHI0Ji41RVMkvQ==" - }, - "node_modules/@types/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==", - "dev": true - }, - "node_modules/@types/whatwg-url": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", - "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/webidl-conversions": "*" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/append-field": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/basic-auth/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/bson": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-5.3.0.tgz", - "integrity": "sha512-ukmCZMneMlaC5ebPHXIkP8YJzNl5DC41N5MAIvKDqLggdao342t4McltoJBQfQya/nHBWAcSsYRqlXPoQkTJag==", - "dev": true, - "engines": { - "node": ">=14.20.1" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "engines": { - "node": "*" - } - }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/class-transformer": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", - "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==" - }, - "node_modules/class-validator": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.0.tgz", - "integrity": "sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A==", - "dependencies": { - "@types/validator": "^13.7.10", - "libphonenumber-js": "^1.10.14", - "validator": "^13.7.0" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concurrently": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.1.0.tgz", - "integrity": "sha512-0AB6eOAtaW/r/kX2lCdolaWtT191ICeuJjEJvI9hT3zbPFuZ/iZaJwMRKwbuwADome7OKxk73L7od+fsveZ7tA==", - "dependencies": { - "chalk": "^4.1.2", - "date-fns": "^2.29.3", - "lodash": "^4.17.21", - "rxjs": "^7.8.0", - "shell-quote": "^1.8.0", - "spawn-command": "0.0.2-1", - "supports-color": "^8.1.1", - "tree-kill": "^1.2.2", - "yargs": "^17.7.1" - }, - "bin": { - "conc": "dist/bin/concurrently.js", - "concurrently": "dist/bin/concurrently.js" - }, - "engines": { - "node": "^14.13.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/concurrently/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decompress": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", - "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", - "dependencies": { - "decompress-tar": "^4.0.0", - "decompress-tarbz2": "^4.0.0", - "decompress-targz": "^4.0.0", - "decompress-unzip": "^4.0.1", - "graceful-fs": "^4.1.10", - "make-dir": "^1.0.0", - "pify": "^2.3.0", - "strip-dirs": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tar": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", - "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", - "dependencies": { - "file-type": "^5.2.0", - "is-stream": "^1.1.0", - "tar-stream": "^1.5.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tarbz2": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", - "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", - "dependencies": { - "decompress-tar": "^4.1.0", - "file-type": "^6.1.0", - "is-stream": "^1.1.0", - "seek-bzip": "^1.0.5", - "unbzip2-stream": "^1.0.9" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-tarbz2/node_modules/file-type": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-targz": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", - "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", - "dependencies": { - "decompress-tar": "^4.1.1", - "file-type": "^5.2.0", - "is-stream": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-unzip": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", - "dependencies": { - "file-type": "^3.8.0", - "get-stream": "^2.2.0", - "pify": "^2.3.0", - "yauzl": "^2.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/decompress-unzip/node_modules/file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express-cross": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/express-cross/-/express-cross-1.0.0.tgz", - "integrity": "sha512-qdYbqpuTNqI+f1Pyb84059jWoHB6rZkzM71WI/UVEFoP1qzrgb5t7wvdBD95YJgtEi+zrAi9v95uBlzbkw5Wdw==" - }, - "node_modules/express-fileupload": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/express-fileupload/-/express-fileupload-1.4.0.tgz", - "integrity": "sha512-RjzLCHxkv3umDeZKeFeMg8w7qe0V09w3B7oGZprr/oO2H/ISCgNzuqzn7gV3HRWb37GjRk429CCpSLS2KNTqMQ==", - "dependencies": { - "busboy": "^1.6.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/first-di": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/first-di/-/first-di-1.0.11.tgz", - "integrity": "sha512-GO3R6m+lro6M74PYbwcIQ1CzUZW3gNLPYPlxqmFri2H/dVAiRcNyUDJKMPs6LplBttWp3b+odmuSZHMyW7hM0A==", - "peerDependencies": { - "reflect-metadata": ">=0.1.0" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", - "dependencies": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "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==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-natural-number": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==" - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/kareem": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz", - "integrity": "sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==", - "dev": true, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/libphonenumber-js": { - "version": "1.10.31", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.31.tgz", - "integrity": "sha512-qYTzElLePmz3X/6I0JPX5n87tu7jVIMtR/yRLi5PGVPvMCMSVTCR+079KmdNK005i4dBjFxY/bMYceI9IBp47w==" - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/make-dir/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "engines": { - "node": ">=4" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memory-pager": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "dev": true, - "optional": true - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mongodb": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.5.0.tgz", - "integrity": "sha512-XgrkUgAAdfnZKQfk5AsYL8j7O99WHd4YXPxYxnh8dZxD+ekYWFRA3JktUsBnfg+455Smf75/+asoU/YLwNGoQQ==", - "dev": true, - "dependencies": { - "bson": "^5.3.0", - "mongodb-connection-string-url": "^2.6.0", - "socks": "^2.7.1" - }, - "engines": { - "node": ">=14.20.1" - }, - "optionalDependencies": { - "saslprep": "^1.0.3" - }, - "peerDependencies": { - "@aws-sdk/credential-providers": "^3.201.0", - "mongodb-client-encryption": ">=2.3.0 <3", - "snappy": "^7.2.2" - }, - "peerDependenciesMeta": { - "@aws-sdk/credential-providers": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "snappy": { - "optional": true - } - } - }, - "node_modules/mongodb-connection-string-url": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", - "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", - "dev": true, - "dependencies": { - "@types/whatwg-url": "^8.2.1", - "whatwg-url": "^11.0.0" - } - }, - "node_modules/mongoose": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-7.2.2.tgz", - "integrity": "sha512-JPBMTF+oYfLGVFWbHSZ/H+f1GajNanGLYH6c/P0nE3bNJfwGhX573vieGR0kNlNhj3cZk8WCPrnVsTNeUmFUag==", - "dev": true, - "dependencies": { - "bson": "^5.3.0", - "kareem": "2.5.1", - "mongodb": "5.5.0", - "mpath": "0.9.0", - "mquery": "5.0.0", - "ms": "2.1.3", - "sift": "16.0.1" - }, - "engines": { - "node": ">=14.20.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mongoose" - } - }, - "node_modules/mongoose/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/morgan": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", - "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", - "dependencies": { - "basic-auth": "~2.0.1", - "debug": "2.6.9", - "depd": "~2.0.0", - "on-finished": "~2.3.0", - "on-headers": "~1.0.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/morgan/node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/mpath": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", - "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mquery": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", - "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", - "dev": true, - "dependencies": { - "debug": "4.x" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/mquery/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/mquery/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/multer": { - "version": "1.4.5-lts.1", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", - "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", - "dependencies": { - "append-field": "^1.0.0", - "busboy": "^1.0.0", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-stream-zip": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", - "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", - "engines": { - "node": ">=0.12.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/antelle" - } - }, - "node_modules/nodemon": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", - "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "node_modules/nodemon/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/nodemon/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", - "peer": true - }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dependencies": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/saslprep": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", - "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", - "dev": true, - "optional": true, - "dependencies": { - "sparse-bitfield": "^3.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/seek-bzip": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", - "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", - "dependencies": { - "commander": "^2.8.1" - }, - "bin": { - "seek-bunzip": "bin/seek-bunzip", - "seek-table": "bin/seek-bzip-table" - } - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sift": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz", - "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==", - "dev": true - }, - "node_modules/simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", - "dependencies": { - "semver": "~7.0.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "dev": true, - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/sparse-bitfield": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", - "dev": true, - "optional": true, - "dependencies": { - "memory-pager": "^1.0.2" - } - }, - "node_modules/spawn-command": { - "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==" - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", - "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", - "dependencies": { - "is-natural-number": "^4.0.1" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dependencies": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" - }, - "node_modules/to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dependencies": { - "nopt": "~1.0.10" - }, - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/tslib": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", - "integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" - }, - "node_modules/validator": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.9.0.tgz", - "integrity": "sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "engines": { - "node": ">=6" - } - } - } -} diff --git a/asp-review-app/server/package.json b/asp-review-app/server/package.json deleted file mode 100644 index 9f67de8..0000000 --- a/asp-review-app/server/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "express-typescript", - "version": "1.0.0", - "description": "", - "main": "index.js", - "type": "module", - "scripts": { - "build": "npx tsc", - "start": "npx tsc && node --experimental-specifier-resolution=node dist/server.js", - "dev": "nodemon --exec ts-node --esm --transpileOnly ./src/server.ts" - }, - "keywords": [], - "author": "", - "license": "ISC", - "devDependencies": { - "@types/compression": "^1.7.2", - "@types/cors": "^2.8.13", - "@types/express": "^4.17.17", - "@types/express-fileupload": "^1.4.1", - "@types/mongoose": "^5.11.97", - "@types/node": "^17.0.45", - "typescript": "^4.9.5" - }, - "dependencies": { - "body-parser": "^1.20.2", - "class-transformer": "^0.5.1", - "class-validator": "^0.14.0", - "compression": "^1.7.4", - "concurrently": "^8.0.1", - "cors": "^2.8.5", - "decompress": "^4.2.1", - "express": "^4.18.2", - "express-cross": "^1.0.0", - "express-fileupload": "^1.4.0", - "first-di": "^1.0.11", - "form-data": "^4.0.0", - "lodash": "^4.17.21", - "morgan": "^1.10.0", - "multer": "^1.4.5-lts.1", - "node-stream-zip": "^1.15.0", - "nodemon": "^2.0.22", - "shelljs": "^0.8.5", - "ts-node": "^10.9.1" - } -} diff --git a/asp-review-app/server/src/app.ts b/asp-review-app/server/src/app.ts deleted file mode 100644 index cf8e430..0000000 --- a/asp-review-app/server/src/app.ts +++ /dev/null @@ -1,71 +0,0 @@ -import express from "express"; -import compression from "compression"; -import cors from "cors"; -import { Routes } from "./core/interfaces/router"; - -import bodyParser from "body-parser"; -import fileUpload from "express-fileupload"; -import { DevEnv } from "./core/env/env"; -import path from 'path'; -import { locator } from "./core/di/register_di"; -export const dirname = path.resolve(); - -const corsOptions = { - origin: process.env.CORS_ALLOW_ORIGIN || '*', - methods: ['GET', 'PUT', 'POST', 'DELETE', 'OPTIONS'], - allowedHeaders: ['Content-Type', 'Authorization'] -}; -export class App { - public app: express.Application; - - public port: string | number; - - public env: string; - - constructor(routes: Routes[], port) { - this.app = express(); - this.port = port; - this.env = process.env.NODE_ENV || "development"; - this.initializeMiddleware(); - this.initializeRoutes(routes); - this.loadAppDependencies(); - } - - public listen() { - this.app.listen(this.port, () => { - console.info(`=================================`); - console.info(`======= ENV: ${this.env} =======`); - console.info(`🚀 App listening on the port ${this.port}`); - console.info(`=================================`); - }); - } - - public getServer() { - return this.app; - } - - private initializeMiddleware() { - this.app.use( - cors(corsOptions) - ); - this.app.use(compression()); - this.app.use(express.json()); - this.app.use(express.urlencoded({ extended: true })); - this.app.use(bodyParser.json()); - this.app.use(bodyParser.urlencoded({ extended: true })); - this.app.use(express.static(dirname + '/public/')); - this.app.use(fileUpload({ - createParentPath: true - })); - } - - private initializeRoutes(routes: Routes[]) { - routes.forEach((route) => { - this.app.use("/", route.router); - }); - } - - loadAppDependencies() { - locator(new DevEnv()); - } -} \ No newline at end of file diff --git a/asp-review-app/server/src/core/di/register_di.ts b/asp-review-app/server/src/core/di/register_di.ts deleted file mode 100644 index 77f2abe..0000000 --- a/asp-review-app/server/src/core/di/register_di.ts +++ /dev/null @@ -1,28 +0,0 @@ - -import { override } from "first-di"; -import { Env } from "../env/env"; -import { AssemblyController } from "../../features/assembly_create/assembly_create_controller"; -import { AssemblyPreviewsController } from "../../features/assembly_previews/assembly_previews_controller"; -import { EntityRepository } from "../repository/entity_repository"; -import { ZipRepository } from "../repository/zip_repository"; -import { ComputeRepository } from "../repository/compute_repository"; - - -export const locator = (env: Env) => { - // override(Env, env) - registerController(env) - registerRepository(env) - -}; -const registerRepository = (env:Env) => { - - override(ZipRepository, ZipRepository); - override(EntityRepository, EntityRepository); - override(ComputeRepository,ComputeRepository); - -} -const registerController = (env: Env) => { - override(AssemblyController,AssemblyController) - override(AssemblyPreviewsController, AssemblyPreviewsController) - -} \ No newline at end of file diff --git a/asp-review-app/server/src/core/exceptions/HttpException.ts b/asp-review-app/server/src/core/exceptions/HttpException.ts deleted file mode 100644 index 66380f4..0000000 --- a/asp-review-app/server/src/core/exceptions/HttpException.ts +++ /dev/null @@ -1,10 +0,0 @@ -export class HttpException extends Error { - public status: number; - public message: string; - - constructor(status: number, message: string) { - super(message); - this.status = status; - this.message = message; - } - } \ No newline at end of file diff --git a/asp-review-app/server/src/core/helper/memorization.ts b/asp-review-app/server/src/core/helper/memorization.ts deleted file mode 100644 index b936460..0000000 --- a/asp-review-app/server/src/core/helper/memorization.ts +++ /dev/null @@ -1,191 +0,0 @@ -interface MemoOptions { - serialize?: (...args: Parameters) => S; -} -interface MemoAsyncOptions extends MemoOptions { - external?: { - get: (args: Parameters) => Promise> | undefined | null>; - - set: (args: Parameters, value: Awaited>) => Promise; - - remove: (args: Parameters) => Promise; - - clear: () => Promise; - }; -} - -type Fn = (...params: any[]) => any; - -type AsyncFn = (...params: any[]) => Promise; - -interface MemoFunc { - (...args: Parameters): ReturnType; - - get(...args: Parameters): ReturnType; - - raw(...args: Parameters): ReturnType; - - clear(...args: Parameters | []): void | Promise; -} - -export const enum State { - Empty, - Ok, - Waiting, - Error -} - -export interface Node { - state: State; - value: ReturnType | undefined; - error: unknown; - primitive: Map>; - reference: WeakMap>; - callbacks?: Set<{ res: (value: ReturnType) => void; rej: (error: unknown) => void }>; -} - -function makeNode(): Node { - return { - state: State.Empty, - value: undefined, - error: undefined, - primitive: new Map(), - reference: new WeakMap() - }; -} - -function clearNode(node: Node | undefined) { - if (node) { - node.state = State.Empty; - node.value = undefined; - node.error = undefined; - node.primitive = new Map(); - node.reference = new WeakMap(); - } -} -function isPrimitiveType(value: unknown) { - return (typeof value !== 'object' && typeof value !== 'function') || value === null; -} -function walkBase>( - node: Node, - args: P, - hooks: { makeNode: () => Node | undefined } -): Node | undefined { - let cur = node; - for (const arg of args) { - if (isPrimitiveType(arg)) { - if (cur.primitive.has(arg)) { - cur = cur.primitive.get(arg)!; - } else { - const newNode = hooks.makeNode(); - if (newNode) { - cur.primitive.set(arg, newNode); - cur = newNode; - } else { - return undefined; - } - } - } else { - if (cur.reference.has(arg)) { - cur = cur.reference.get(arg)!; - } else { - const newNode = hooks.makeNode(); - if (newNode) { - cur.reference.set(arg, newNode); - cur = newNode; - } else { - return undefined; - } - } - } - } - return cur; -} - -function walkAndCreate>( - node: Node, - args: P -) { - return walkBase(node, args, { makeNode })!; -} - -function walkOrBreak>(node: Node, args: P) { - return walkBase(node, args, { makeNode: () => undefined }); -} -export function memoAsync( - fn: F, - options: MemoAsyncOptions = {} -): MemoFunc { - const root = makeNode(); - - const memoFunc = async function (...args: Parameters) { - const path = options.serialize ? options.serialize(...args) : args; - const cur = walkAndCreate(root, path); - - if (cur.state === State.Ok) { - return cur.value; - } else if (cur.state === State.Error) { - throw cur.error; - } else if (cur.state === State.Waiting) { - return new Promise((res, rej) => { - if (!cur.callbacks) { - cur.callbacks = new Set(); - } - cur.callbacks!.add({ res, rej }); - }); - } else { - try { - cur.state = State.Waiting; - - const external = options.external ? await options.external.get(args) : undefined; - const value = external !== undefined && external !== null ? external : await fn(...args); - - cur.state = State.Ok; - cur.value = value; - - if (options.external) { - await options.external.set(args, value); - } - - for (const callback of cur.callbacks ?? []) { - callback.res(value); - } - - return value; - } catch (error) { - cur.state = State.Error; - cur.error = error; - - for (const callback of cur.callbacks ?? []) { - callback.rej(error); - } - - throw error; - } - } - } as MemoFunc; - - memoFunc.get = (...args) => { - return memoFunc(...args); - }; - - memoFunc.raw = (...args) => { - return fn(...args) as ReturnType; - }; - - memoFunc.clear = async (...args) => { - if (args.length === 0) { - clearNode(root); - if (options.external) { - await options.external.clear(); - } - } else { - const cur = walkOrBreak(root, args as Parameters); - clearNode(cur); - if (options.external) { - await options.external.remove(args as Parameters); - } - } - }; - - return memoFunc; -} \ No newline at end of file diff --git a/asp-review-app/server/src/core/interfaces/router.ts b/asp-review-app/server/src/core/interfaces/router.ts deleted file mode 100644 index 8453ada..0000000 --- a/asp-review-app/server/src/core/interfaces/router.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Router } from "express"; - -export interface Routes { - path?: string; - router: Router; -} diff --git a/asp-review-app/server/src/core/middlewares/ValidationMiddleware.ts b/asp-review-app/server/src/core/middlewares/ValidationMiddleware.ts deleted file mode 100644 index d1ee527..0000000 --- a/asp-review-app/server/src/core/middlewares/ValidationMiddleware.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { HttpException } from '../exceptions/HttpException'; -import { plainToClass } from 'class-transformer'; -import { validate, ValidationError } from 'class-validator'; -import { RequestHandler } from 'express'; - -const validationMiddleware = ( - type: any, - value = 'body', - skipMissingProperties = false, - whitelist = true, - forbidNonWhitelisted = true, -): RequestHandler => { - return (req, res, next) => { - validate(plainToClass(type, req[value]), { skipMissingProperties, whitelist, forbidNonWhitelisted }).then((errors: ValidationError[]) => { - if (errors.length > 0) { - const message = errors.map((error: ValidationError) => Object.values(error.constraints)).join(', '); - next(new HttpException(400, message)); - } else { - next(); - } - }); - }; -}; - -export default validationMiddleware; \ No newline at end of file diff --git a/asp-review-app/server/src/core/repository/compute_repository.ts b/asp-review-app/server/src/core/repository/compute_repository.ts deleted file mode 100644 index 2b6ac30..0000000 --- a/asp-review-app/server/src/core/repository/compute_repository.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { reflection } from 'first-di'; -import "reflect-metadata"; -import { promises as fs } from 'fs'; -import { async } from 'node-stream-zip'; -import * as cp from 'child_process'; - -import path from 'path'; - -async function exec(cmd: string, opts: (cp.ExecOptions & { trim?: boolean }) = {}): Promise { - return new Promise((c, e) => { - cp.exec(cmd, { env: process.env, ...opts }, (err, stdout) => err ? e(err) : c(opts.trim ? stdout.trim() : stdout)); - }); -} - -@reflection -export class ComputeRepository { - public computedAdjaxedMatrix = async (outPath: string, cadEntity: string, entityId: string) => { - const envPath = '/home/idontsudo/t/framework/asp-review-app/server/computed/geometric_feasibility_predicate/env.json' - const computedScript = '/home/idontsudo/t/framework/asp-review-app/server/computed/geometric_feasibility_predicate/main.py' - const computedComand = 'freecadcmd' - - const env = JSON.parse((await fs.readFile(envPath)).toString()) - env['cadFilePath'] = cadEntity - env['outPath'] = outPath - await fs.writeFile(envPath, JSON.stringify(env)) - // console.log(this._computedPath(computedScript)) - exec(computedComand + ' ' + computedScript, { cwd: this._computedPath(computedScript) }).then((data) => { - console.log(data) - }) - this.cadGeneration(cadEntity, entityId, outPath) - // if (stderr) { - // console.log(stderr) - // } - // console.log(stdout) - }; - public computedWriteStability = async (assemblyFolder: string, buildNumber: string, id: string) => { - const computedScript = '/home/idontsudo/t/framework/cad_stability_input/main.py' - const computedComand = 'freecad' - const envPath = '/home/idontsudo/t/framework/cad_stability_input/env.json' - const env = JSON.parse((await fs.readFile(envPath)).toString()) - env.assemblyFolder = assemblyFolder - env['projectId'] = id - env['buildNumber'] = buildNumber - env['assemblyFolder'] = assemblyFolder - env['resultURL'] = 'http://localhost:3002/assembly/stabilty/create/?id=' + id + '&' + 'buildNumber=' + buildNumber - - await fs.writeFile(envPath, JSON.stringify(env)) - await exec(computedComand + ' ' + computedScript, { cwd: this._computedPath(computedScript) }) - } - - private _computedPath(f: string) { - - const file = path.basename(f); - const absolutPath = path.resolve(f) - return absolutPath.replace(file, '') - } - - public cadGeneration = async (cadEntity, entity: string, outPath: string,) => { - const computedScript = '/home/idontsudo/t/framework/cad_generation/main.py' - const computedComand = 'freecad' - const envPath = '/home/idontsudo/t/framework/cad_generation/env.json' - - const env = JSON.parse((await fs.readFile(envPath)).toString()) - env.doc = cadEntity - env.projectId = entity - env.resultURL = "http://localhost:3002/assembly/save/out" - - await fs.writeFile(envPath, JSON.stringify(env)) - // /stabilty/create - - exec(computedComand + ' ' + computedScript, { cwd: this._computedPath(computedScript) }).then((data) => { - console.log(data) - }) - } - -} diff --git a/asp-review-app/server/src/core/repository/entity_repository.ts b/asp-review-app/server/src/core/repository/entity_repository.ts deleted file mode 100644 index cea7376..0000000 --- a/asp-review-app/server/src/core/repository/entity_repository.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { promises as fs } from 'fs'; -import { dirname } from '../../app'; -import fsSync from "fs"; -import { autowired, reflection } from 'first-di'; -import "reflect-metadata"; -import { ComputeRepository } from './compute_repository'; -import { ZipRepository } from './zip_repository'; - -@reflection -export class EntityRepository { - - @autowired() - private readonly computedRepository: ComputeRepository; - @autowired() - private readonly zipRepository: ZipRepository; - - private path: String = dirname + '/public/' - - - private getFileName(file: String) { - return file.slice(0, file.indexOf('.')) - } - - public async getDir(path) { - return this._fullPath(await fs.readdir(path + ''), duplicatedDelete(this.path, path)) - } - - public isExistDirPath(path: String): boolean { - return fsSync.existsSync(path + '') - } - - public async saveRootEntity(buffer: Buffer, name: string) { - const filePath = this.path + this.getFileName(name) + '/' - - if (this.isExistDirPath(filePath)) { - await fs.rm(filePath, { recursive: true }) - } - await fs.mkdir(filePath); - await fs.writeFile(filePath + name, buffer); - this.computedRepository.computedAdjaxedMatrix(filePath, filePath + name, this.getFileName(name)) - } - - public async getAllRootEntity() { - return await fs.readdir('' + this.path) - } - - public async getEntityStorage(entity: string): Promise | undefined { - return this._fullPath(await fs.readdir(this.path + entity), entity + '/') - } - - private _fullPath(folderPath, helpElement = '') { - return folderPath.map((el) => this.path + helpElement + el) - } - public async readJson(path) { - return JSON.parse((await fs.readFile(path)).toString()) - } - public async saveGeration(data: Buffer, id: String) { - const rootFolderPath = '' + this.path + id + '/' - console.log(rootFolderPath) - this.zipRepository.archive(rootFolderPath, data) - } - public computedStability(id: string, buildNumber: string) { - const assemblyFolder = this.path + id + '/generation/' - this.computedRepository.computedWriteStability(assemblyFolder, buildNumber, id) - } - public async saveStability(zip: Buffer, id:string, buildNumber:string) { - const filePath = await this.zipRepository.archive(this.path as string, zip) - // const buildNumber = data['buildNumber'] - const assemblyFolder = this.path + id + '/generation/stability/' - - if (!this.isExistDirPath(assemblyFolder)) { - await fs.mkdir(assemblyFolder); - } - await this.zipRepository.archive(assemblyFolder as string, zip, buildNumber) - fs.rmdir(filePath + '/', { recursive: true}) - - } -} -function duplicatedDelete(strChild: String, strMain: String) { - let result = '' - for (let i = 0; i < strMain.length; i++) { - if (!(strMain[i] === strChild[i])) { - result += strMain[i] - } - } - return result -} \ No newline at end of file diff --git a/asp-review-app/server/src/core/repository/zip_repository.ts b/asp-review-app/server/src/core/repository/zip_repository.ts deleted file mode 100644 index 25efe1c..0000000 --- a/asp-review-app/server/src/core/repository/zip_repository.ts +++ /dev/null @@ -1,13 +0,0 @@ -import StreamZip from 'node-stream-zip'; -import { promises as fs } from 'fs'; -import decompress from 'decompress' - -export class ZipRepository { - public async archive(outhPath: string, zipFile: Buffer, name='generation') { - const entry = outhPath + 'archive.zip' - await fs.writeFile(entry, zipFile) - await decompress(entry, outhPath + name); - fs.rm(entry) - return outhPath + name - } -} \ No newline at end of file diff --git a/asp-review-app/server/src/core/routes/routes.ts b/asp-review-app/server/src/core/routes/routes.ts deleted file mode 100644 index c74ca67..0000000 --- a/asp-review-app/server/src/core/routes/routes.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { AssemblyRoute } from "../../features/assembly_create/assembly_create_route"; -import { AssemblyPreviewsRoute } from "../../features/assembly_previews/assembly_previews_route"; - - -export const routes = [new AssemblyRoute(), new AssemblyPreviewsRoute()]; \ No newline at end of file diff --git a/asp-review-app/server/src/features/assembly_create/assembly_create_controller.ts b/asp-review-app/server/src/features/assembly_create/assembly_create_controller.ts deleted file mode 100644 index 77e0a8b..0000000 --- a/asp-review-app/server/src/features/assembly_create/assembly_create_controller.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { NextFunction, Request, Response } from "express"; -import { autowired } from "first-di"; -import { async } from "node-stream-zip"; -import { EntityRepository } from "../../core/repository/entity_repository"; -import { IFile } from "./model/zip_files_model"; - -export class AssemblyController { - @autowired() - private readonly entityRepository: EntityRepository; - - public createRootEntity = ( - req: Request, - res: Response, - next: NextFunction - ) => { - const file = req.files; - const cadFile = file["freecad"] as IFile; - - this.entityRepository.saveRootEntity(cadFile.data, cadFile.name); - - res.status(200).json("ok"); - return; - }; - - public getAllAssembly = ( - req: Request, - res: Response, - next: NextFunction - ): void => { }; - - public createAssembly = ( - req: Request, - res: Response, - next: NextFunction - ): void => { - try { - const file = req.files.freecad as IFile; - const buffer = file.data as Buffer; - this.entityRepository.saveRootEntity(file.data, file.name); - res.sendStatus(200); - } catch (error) { - next(error); - } - }; - - - public test = (req: Request, - res: Response, - next: NextFunction) => { - try { - const file = req.files; - - const generation = file["zip"] as IFile; - const id = 'cubes'; - - this.entityRepository.saveGeration(generation.data, id) - res.sendStatus(200); - } catch (error) { - next(error); - } - } - - public stabilityComputed = async ( - req: Request, - res: Response, - next: NextFunction - ) => { - try { - // const file = req.files; - console.log(req.body) - const id = req.body.id; - // console.log(req.query.id) - const buildNumber = req.body.buildNumber; - console.log(buildNumber) - console.log(id) - // const generation = file["zip"] as IFile; - // const id = 'cubes'; - - await this.entityRepository.computedStability(id, buildNumber) - res.sendStatus(200); - } catch (error) { - next(error); - } - } - - public stabilityCreate = ( - req: Request, - res: Response, - next: NextFunction - ) => { - try { - const files = req.files; - const zip = files['zip'] as IFile - const query = req.query as any - this.entityRepository.saveStability(zip.data, query.id, query.buildNumber) - res.sendStatus(200); - } catch (error) { - next(error); - } - } -} diff --git a/asp-review-app/server/src/features/assembly_create/assembly_create_route.ts b/asp-review-app/server/src/features/assembly_create/assembly_create_route.ts deleted file mode 100644 index 43fefe1..0000000 --- a/asp-review-app/server/src/features/assembly_create/assembly_create_route.ts +++ /dev/null @@ -1,46 +0,0 @@ -import express, { Router } from "express"; -import { Routes } from "../../core/interfaces/router"; -import { autowired } from "first-di"; -import { AssemblyController } from "./assembly_create_controller"; -import validationMiddleware from "../../core/middlewares/ValidationMiddleware"; -import { CadFilesModel } from "./model/zip_files_model"; - -export class AssemblyRoute implements Routes { - public path = "/assembly"; - public router = Router(); - - @autowired() - private readonly assemblyController: AssemblyController; - - constructor() { - this.initializeRoutes(); - } - - private initializeRoutes() { - this.router.post( - `${this.path}`, - validationMiddleware(CadFilesModel, "files"), - this.assemblyController.createAssembly - ); - this.router.post( - `${this.path}/save/out`, - // validationMiddleware(CadFilesModel, "files"), - this.assemblyController.test - ); - - this.router.get(`${this.path}`, this.assemblyController.getAllAssembly); - - this.router.post( - `${this.path}/create`, - this.assemblyController.createRootEntity - ); - this.router.post( - `${this.path}/stability/write/computed`, - this.assemblyController.stabilityComputed - ); - this.router.post( - `${this.path}/stabilty/create/`, - this.assemblyController.stabilityCreate - ); - } -} diff --git a/asp-review-app/server/src/features/assembly_create/model/zip_files_model.ts b/asp-review-app/server/src/features/assembly_create/model/zip_files_model.ts deleted file mode 100644 index 99956e0..0000000 --- a/asp-review-app/server/src/features/assembly_create/model/zip_files_model.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { IsArray, IsObject } from "class-validator"; - -export interface IFile { - name: string, - data: Buffer, - size: Number, - encoding: string, - tempFilePath: string, - truncated: Boolean, - mimetype: string, - md5: string, -} - -interface ICadFileModel { - freecad: IFile; -} - -export class CadFilesModel implements ICadFileModel { - @IsObject() - public freecad: IFile; -} - - diff --git a/asp-review-app/server/src/features/assembly_previews/assembly_previews_controller.ts b/asp-review-app/server/src/features/assembly_previews/assembly_previews_controller.ts deleted file mode 100644 index 68429e0..0000000 --- a/asp-review-app/server/src/features/assembly_previews/assembly_previews_controller.ts +++ /dev/null @@ -1,156 +0,0 @@ -import { NextFunction, Request, Response } from "express"; -import { autowired } from "first-di"; -import { EntityRepository } from "../../core/repository/entity_repository"; -import { port } from "../../server"; -import { memoAsync } from "../../core/helper/memorization"; - -export class AssemblyPreviewsController { - @autowired() - private readonly entityRepository: EntityRepository; - - public getAllAssembly = async ( - req: Request, - res: Response, - next: NextFunction - ): Promise => { - try { - res.send(await this.entityRepository.getAllRootEntity()); - } catch (error) { - next(error); - } - }; - - public getAssemblySubsequenceById = async ( - req: Request, - res: Response, - next: NextFunction - ): Promise => { - try { - const entity = await this.entityRepository.getEntityStorage( - req.params.id - ); - - const aspUsage = Number(req.query.count) - 1; - - if (entity === undefined) { - res.status(404).json("entity not found"); - return; - } - - res.json( - await this._assemblyCompute( - aspUsage, - entity, - this.entityRepository, - req.hostname, - req.params.id - ) - ); - } catch (error) { - next(error); - } - }; - - public getAssemblyInsertionSequenceById = async ( - req: Request, - res: Response, - next: NextFunction - ) => { - const entity = await this.entityRepository.getEntityStorage(req.params.id); - - const aspUsage = Number(req.query.count); - - const assemblyFolder = entity.find((el) => { - return el.match("assembly"); - }); - - const asmCountFolder = "0000" + aspUsage; - - const assemblyDirPath = assemblyFolder + "/" + asmCountFolder; - - if (!this.entityRepository.isExistDirPath(assemblyDirPath)) { - return res.status(400).json({ error: "bad request" }); - } - - const assemblyProcessDir = await this.entityRepository.getDir( - assemblyDirPath + "/process/" - ); - - const firstObj = assemblyProcessDir.find((el) => { - return el.match("1.obj"); - }); - - const zeroObj = await assemblyProcessDir.find((el) => { - return el.match("0.obj"); - }); - - const insertions = await this.entityRepository.readJson( - assemblyDirPath + "/" + "insertion_path.json" - ); - - if ( - insertions === undefined || - zeroObj === undefined || - firstObj === undefined - ) { - res.status(400).json({ error: "bad" }); - return; - } - - res.json({ - offset: aspUsage, - count: 4, - parent: `http://${req.hostname}:${port}/${ - req.params.id - }/assembly/${asmCountFolder}/${0}.obj`, - - child: `http://${req.hostname}:${port}/${ - req.params.id - }/assembly/${asmCountFolder}/${1}.obj`, - - insertions: insertions, - }); - return; - }; - private async _assemblyCompute( - id: number, - entityFolder: Array, - repository: EntityRepository, - host: string, - entity: string - ) { - const assemblySequence = entityFolder.find((el) => { - return el.match("step-structure.json"); - }); - - const assembly: Array = await repository.readJson>( - assemblySequence - ); - - if (id == 0) { - return { - assembly: [ - `http://${host}:${port}/${entity}/sdf/meshes/${assembly[id]}.obj`, - ], - offset: 1, - count: assemblySequence.length, - }; - } else { - const assemblyIndexed = assembly - .map((_item, index) => { - if (index <= id) { - return index; - } - }) - .filter((el) => el != undefined); - return { - assembly: assemblyIndexed.map((el) => { - return `http://${host}:${port}/${entity}/sdf/meshes/${assembly[el]}.obj`; - }), - count: assemblyIndexed.length, - offset: assembly.length, - }; - } - } - -} diff --git a/asp-review-app/server/src/features/assembly_previews/assembly_previews_route.ts b/asp-review-app/server/src/features/assembly_previews/assembly_previews_route.ts deleted file mode 100644 index c12658c..0000000 --- a/asp-review-app/server/src/features/assembly_previews/assembly_previews_route.ts +++ /dev/null @@ -1,29 +0,0 @@ -import express, { Router } from 'express'; -import { Routes } from '../../core/interfaces/router'; -import { autowired } from 'first-di'; -// import { AssemblyController } from './assembly_create_controller'; -import path from 'path'; -import { dirname } from '../../app'; -import validationMiddleware from '../../core/middlewares/ValidationMiddleware'; -import { AssemblyPreviewsController } from './assembly_previews_controller'; -// import { CadFilesModel } from './model/zip_files_model'; - -export class AssemblyPreviewsRoute implements Routes { - public path = '/assembly/preview/'; - public router = Router(); - @autowired() - private readonly assemblyPreviewsController: AssemblyPreviewsController; - constructor() { - this.initializeRoutes(); - } - - private initializeRoutes() { - this.router.get(`${this.path}`, this.assemblyPreviewsController.getAllAssembly); - // this.router.get(`${this.path}`) - this.router.get(`${this.path}subsequence/:id`, this.assemblyPreviewsController.getAssemblySubsequenceById) - this.router.get(`${this.path}insertion_sequence/:id`, this.assemblyPreviewsController.getAssemblyInsertionSequenceById) - // this.router.post(`${this.path}`, validationMiddleware(CadFilesModel, 'files'), this.assemblyController.createAssembly) - - // this.router.get(`${this.path}`, this.assemblyController.getAllAssembly) - } -} \ No newline at end of file diff --git a/asp-review-app/server/src/server.ts b/asp-review-app/server/src/server.ts deleted file mode 100644 index bae332e..0000000 --- a/asp-review-app/server/src/server.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { App } from "./app"; -import { routes } from "./core/routes/routes"; -import "reflect-metadata"; - -export const port = 3002 - - -const app = new App(routes,port); - - -function main() { - app.listen(); -} -main(); \ No newline at end of file diff --git a/asp-review-app/server/tsconfig.json b/asp-review-app/server/tsconfig.json deleted file mode 100644 index 75615a4..0000000 --- a/asp-review-app/server/tsconfig.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "compileOnSave": false, - "compilerOptions": { - "target": "es2017", - "lib": ["es2017", "esnext.asynciterable"], - "typeRoots": ["node_modules/@types"], - "allowSyntheticDefaultImports": true, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "forceConsistentCasingInFileNames": true, - "moduleResolution": "node", - "module": "ESNext", - "pretty": true, - "sourceMap": true, - "declaration": true, - "outDir": "./dist", - "allowJs": true, - "noEmit": false, - "esModuleInterop": true, - "resolveJsonModule": true, - }, - "ts-node": { - "esm": true, - "experimentalSpecifierResolution": "node", - }, - "include": ["src/**/*.ts", "src/**/*.json", ".env"], - "exclude": ["node_modules"] -} \ No newline at end of file diff --git a/asp-review-app/ui/README.md b/asp-review-app/ui/README.md deleted file mode 100644 index b58e0af..0000000 --- a/asp-review-app/ui/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# Getting Started with Create React App - -This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). - -## Available Scripts - -In the project directory, you can run: - -### `yarn start` - -Runs the app in the development mode.\ -Open [http://localhost:3000](http://localhost:3000) to view it in the browser. - -The page will reload if you make edits.\ -You will also see any lint errors in the console. - -### `yarn test` - -Launches the test runner in the interactive watch mode.\ -See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. - -### `yarn build` - -Builds the app for production to the `build` folder.\ -It correctly bundles React in production mode and optimizes the build for the best performance. - -The build is minified and the filenames include the hashes.\ -Your app is ready to be deployed! - -See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. - -### `yarn eject` - -**Note: this is a one-way operation. Once you `eject`, you can’t go back!** - -If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. - -Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. - -You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. - -## Learn More - -You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). - -To learn React, check out the [React documentation](https://reactjs.org/). diff --git a/asp-review-app/ui/config/env.js b/asp-review-app/ui/config/env.js deleted file mode 100644 index ffa7e49..0000000 --- a/asp-review-app/ui/config/env.js +++ /dev/null @@ -1,104 +0,0 @@ -'use strict'; - -const fs = require('fs'); -const path = require('path'); -const paths = require('./paths'); - -// Make sure that including paths.js after env.js will read .env variables. -delete require.cache[require.resolve('./paths')]; - -const NODE_ENV = process.env.NODE_ENV; -if (!NODE_ENV) { - throw new Error( - 'The NODE_ENV environment variable is required but was not specified.' - ); -} - -// https://github.com/bkeepers/dotenv#what-other-env-files-can-i-use -const dotenvFiles = [ - `${paths.dotenv}.${NODE_ENV}.local`, - // Don't include `.env.local` for `test` environment - // since normally you expect tests to produce the same - // results for everyone - NODE_ENV !== 'test' && `${paths.dotenv}.local`, - `${paths.dotenv}.${NODE_ENV}`, - paths.dotenv, -].filter(Boolean); - -// Load environment variables from .env* files. Suppress warnings using silent -// if this file is missing. dotenv will never modify any environment variables -// that have already been set. Variable expansion is supported in .env files. -// https://github.com/motdotla/dotenv -// https://github.com/motdotla/dotenv-expand -dotenvFiles.forEach(dotenvFile => { - if (fs.existsSync(dotenvFile)) { - require('dotenv-expand')( - require('dotenv').config({ - path: dotenvFile, - }) - ); - } -}); - -// We support resolving modules according to `NODE_PATH`. -// This lets you use absolute paths in imports inside large monorepos: -// https://github.com/facebook/create-react-app/issues/253. -// It works similar to `NODE_PATH` in Node itself: -// https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders -// Note that unlike in Node, only *relative* paths from `NODE_PATH` are honored. -// Otherwise, we risk importing Node.js core modules into an app instead of webpack shims. -// https://github.com/facebook/create-react-app/issues/1023#issuecomment-265344421 -// We also resolve them to make sure all tools using them work consistently. -const appDirectory = fs.realpathSync(process.cwd()); -process.env.NODE_PATH = (process.env.NODE_PATH || '') - .split(path.delimiter) - .filter(folder => folder && !path.isAbsolute(folder)) - .map(folder => path.resolve(appDirectory, folder)) - .join(path.delimiter); - -// Grab NODE_ENV and REACT_APP_* environment variables and prepare them to be -// injected into the application via DefinePlugin in webpack configuration. -const REACT_APP = /^REACT_APP_/i; - -function getClientEnvironment(publicUrl) { - const raw = Object.keys(process.env) - .filter(key => REACT_APP.test(key)) - .reduce( - (env, key) => { - env[key] = process.env[key]; - return env; - }, - { - // Useful for determining whether we’re running in production mode. - // Most importantly, it switches React into the correct mode. - NODE_ENV: process.env.NODE_ENV || 'development', - // Useful for resolving the correct path to static assets in `public`. - // For example, . - // This should only be used as an escape hatch. Normally you would put - // images into the `src` and `import` them in code to get their paths. - PUBLIC_URL: publicUrl, - // We support configuring the sockjs pathname during development. - // These settings let a developer run multiple simultaneous projects. - // They are used as the connection `hostname`, `pathname` and `port` - // in webpackHotDevClient. They are used as the `sockHost`, `sockPath` - // and `sockPort` options in webpack-dev-server. - WDS_SOCKET_HOST: process.env.WDS_SOCKET_HOST, - WDS_SOCKET_PATH: process.env.WDS_SOCKET_PATH, - WDS_SOCKET_PORT: process.env.WDS_SOCKET_PORT, - // Whether or not react-refresh is enabled. - // It is defined here so it is available in the webpackHotDevClient. - FAST_REFRESH: process.env.FAST_REFRESH !== 'false', - } - ); - // Stringify all values so we can feed into webpack DefinePlugin - const stringified = { - 'process.env': Object.keys(raw).reduce((env, key) => { - env[key] = JSON.stringify(raw[key]); - return env; - }, {}), - }; - - return { raw, stringified }; -} - -module.exports = getClientEnvironment; diff --git a/asp-review-app/ui/config/getHttpsConfig.js b/asp-review-app/ui/config/getHttpsConfig.js deleted file mode 100644 index 013d493..0000000 --- a/asp-review-app/ui/config/getHttpsConfig.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; - -const fs = require('fs'); -const path = require('path'); -const crypto = require('crypto'); -const chalk = require('react-dev-utils/chalk'); -const paths = require('./paths'); - -// Ensure the certificate and key provided are valid and if not -// throw an easy to debug error -function validateKeyAndCerts({ cert, key, keyFile, crtFile }) { - let encrypted; - try { - // publicEncrypt will throw an error with an invalid cert - encrypted = crypto.publicEncrypt(cert, Buffer.from('test')); - } catch (err) { - throw new Error( - `The certificate "${chalk.yellow(crtFile)}" is invalid.\n${err.message}` - ); - } - - try { - // privateDecrypt will throw an error with an invalid key - crypto.privateDecrypt(key, encrypted); - } catch (err) { - throw new Error( - `The certificate key "${chalk.yellow(keyFile)}" is invalid.\n${ - err.message - }` - ); - } -} - -// Read file and throw an error if it doesn't exist -function readEnvFile(file, type) { - if (!fs.existsSync(file)) { - throw new Error( - `You specified ${chalk.cyan( - type - )} in your env, but the file "${chalk.yellow(file)}" can't be found.` - ); - } - return fs.readFileSync(file); -} - -// Get the https config -// Return cert files if provided in env, otherwise just true or false -function getHttpsConfig() { - const { SSL_CRT_FILE, SSL_KEY_FILE, HTTPS } = process.env; - const isHttps = HTTPS === 'true'; - - if (isHttps && SSL_CRT_FILE && SSL_KEY_FILE) { - const crtFile = path.resolve(paths.appPath, SSL_CRT_FILE); - const keyFile = path.resolve(paths.appPath, SSL_KEY_FILE); - const config = { - cert: readEnvFile(crtFile, 'SSL_CRT_FILE'), - key: readEnvFile(keyFile, 'SSL_KEY_FILE'), - }; - - validateKeyAndCerts({ ...config, keyFile, crtFile }); - return config; - } - return isHttps; -} - -module.exports = getHttpsConfig; diff --git a/asp-review-app/ui/config/jest/babelTransform.js b/asp-review-app/ui/config/jest/babelTransform.js deleted file mode 100644 index 5b391e4..0000000 --- a/asp-review-app/ui/config/jest/babelTransform.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -const babelJest = require('babel-jest').default; - -const hasJsxRuntime = (() => { - if (process.env.DISABLE_NEW_JSX_TRANSFORM === 'true') { - return false; - } - - try { - require.resolve('react/jsx-runtime'); - return true; - } catch (e) { - return false; - } -})(); - -module.exports = babelJest.createTransformer({ - presets: [ - [ - require.resolve('babel-preset-react-app'), - { - runtime: hasJsxRuntime ? 'automatic' : 'classic', - }, - ], - ], - babelrc: false, - configFile: false, -}); diff --git a/asp-review-app/ui/config/jest/cssTransform.js b/asp-review-app/ui/config/jest/cssTransform.js deleted file mode 100644 index 8f65114..0000000 --- a/asp-review-app/ui/config/jest/cssTransform.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -// This is a custom Jest transformer turning style imports into empty objects. -// http://facebook.github.io/jest/docs/en/webpack.html - -module.exports = { - process() { - return 'module.exports = {};'; - }, - getCacheKey() { - // The output is always the same. - return 'cssTransform'; - }, -}; diff --git a/asp-review-app/ui/config/jest/fileTransform.js b/asp-review-app/ui/config/jest/fileTransform.js deleted file mode 100644 index aab6761..0000000 --- a/asp-review-app/ui/config/jest/fileTransform.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -const path = require('path'); -const camelcase = require('camelcase'); - -// This is a custom Jest transformer turning file imports into filenames. -// http://facebook.github.io/jest/docs/en/webpack.html - -module.exports = { - process(src, filename) { - const assetFilename = JSON.stringify(path.basename(filename)); - - if (filename.match(/\.svg$/)) { - // Based on how SVGR generates a component name: - // https://github.com/smooth-code/svgr/blob/01b194cf967347d43d4cbe6b434404731b87cf27/packages/core/src/state.js#L6 - const pascalCaseFilename = camelcase(path.parse(filename).name, { - pascalCase: true, - }); - const componentName = `Svg${pascalCaseFilename}`; - return `const React = require('react'); - module.exports = { - __esModule: true, - default: ${assetFilename}, - ReactComponent: React.forwardRef(function ${componentName}(props, ref) { - return { - $$typeof: Symbol.for('react.element'), - type: 'svg', - ref: ref, - key: null, - props: Object.assign({}, props, { - children: ${assetFilename} - }) - }; - }), - };`; - } - - return `module.exports = ${assetFilename};`; - }, -}; diff --git a/asp-review-app/ui/config/modules.js b/asp-review-app/ui/config/modules.js deleted file mode 100644 index d63e41d..0000000 --- a/asp-review-app/ui/config/modules.js +++ /dev/null @@ -1,134 +0,0 @@ -'use strict'; - -const fs = require('fs'); -const path = require('path'); -const paths = require('./paths'); -const chalk = require('react-dev-utils/chalk'); -const resolve = require('resolve'); - -/** - * Get additional module paths based on the baseUrl of a compilerOptions object. - * - * @param {Object} options - */ -function getAdditionalModulePaths(options = {}) { - const baseUrl = options.baseUrl; - - if (!baseUrl) { - return ''; - } - - const baseUrlResolved = path.resolve(paths.appPath, baseUrl); - - // We don't need to do anything if `baseUrl` is set to `node_modules`. This is - // the default behavior. - if (path.relative(paths.appNodeModules, baseUrlResolved) === '') { - return null; - } - - // Allow the user set the `baseUrl` to `appSrc`. - if (path.relative(paths.appSrc, baseUrlResolved) === '') { - return [paths.appSrc]; - } - - // If the path is equal to the root directory we ignore it here. - // We don't want to allow importing from the root directly as source files are - // not transpiled outside of `src`. We do allow importing them with the - // absolute path (e.g. `src/Components/Button.js`) but we set that up with - // an alias. - if (path.relative(paths.appPath, baseUrlResolved) === '') { - return null; - } - - // Otherwise, throw an error. - throw new Error( - chalk.red.bold( - "Your project's `baseUrl` can only be set to `src` or `node_modules`." + - ' Create React App does not support other values at this time.' - ) - ); -} - -/** - * Get webpack aliases based on the baseUrl of a compilerOptions object. - * - * @param {*} options - */ -function getWebpackAliases(options = {}) { - const baseUrl = options.baseUrl; - - if (!baseUrl) { - return {}; - } - - const baseUrlResolved = path.resolve(paths.appPath, baseUrl); - - if (path.relative(paths.appPath, baseUrlResolved) === '') { - return { - src: paths.appSrc, - }; - } -} - -/** - * Get jest aliases based on the baseUrl of a compilerOptions object. - * - * @param {*} options - */ -function getJestAliases(options = {}) { - const baseUrl = options.baseUrl; - - if (!baseUrl) { - return {}; - } - - const baseUrlResolved = path.resolve(paths.appPath, baseUrl); - - if (path.relative(paths.appPath, baseUrlResolved) === '') { - return { - '^src/(.*)$': '/src/$1', - }; - } -} - -function getModules() { - // Check if TypeScript is setup - const hasTsConfig = fs.existsSync(paths.appTsConfig); - const hasJsConfig = fs.existsSync(paths.appJsConfig); - - if (hasTsConfig && hasJsConfig) { - throw new Error( - 'You have both a tsconfig.json and a jsconfig.json. If you are using TypeScript please remove your jsconfig.json file.' - ); - } - - let config; - - // If there's a tsconfig.json we assume it's a - // TypeScript project and set up the config - // based on tsconfig.json - if (hasTsConfig) { - const ts = require(resolve.sync('typescript', { - basedir: paths.appNodeModules, - })); - config = ts.readConfigFile(paths.appTsConfig, ts.sys.readFile).config; - // Otherwise we'll check if there is jsconfig.json - // for non TS projects. - } else if (hasJsConfig) { - config = require(paths.appJsConfig); - } - - config = config || {}; - const options = config.compilerOptions || {}; - - const additionalModulePaths = getAdditionalModulePaths(options); - - return { - additionalModulePaths: additionalModulePaths, - webpackAliases: getWebpackAliases(options), - jestAliases: getJestAliases(options), - hasTsConfig, - }; -} - -module.exports = getModules(); diff --git a/asp-review-app/ui/config/paths.js b/asp-review-app/ui/config/paths.js deleted file mode 100644 index f0a6cd9..0000000 --- a/asp-review-app/ui/config/paths.js +++ /dev/null @@ -1,77 +0,0 @@ -'use strict'; - -const path = require('path'); -const fs = require('fs'); -const getPublicUrlOrPath = require('react-dev-utils/getPublicUrlOrPath'); - -// Make sure any symlinks in the project folder are resolved: -// https://github.com/facebook/create-react-app/issues/637 -const appDirectory = fs.realpathSync(process.cwd()); -const resolveApp = relativePath => path.resolve(appDirectory, relativePath); - -// We use `PUBLIC_URL` environment variable or "homepage" field to infer -// "public path" at which the app is served. -// webpack needs to know it to put the right