├── flutter-signal-app ├── .gitignore ├── .gradle │ └── 5.2.1 │ │ ├── fileChanges │ │ └── last-build.bin │ │ ├── fileHashes │ │ └── fileHashes.lock │ │ └── gc.properties ├── .metadata ├── README.md ├── android │ ├── .gitignore │ ├── app │ │ ├── build.gradle │ │ └── src │ │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── kotlin │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── signal │ │ │ │ │ └── MainActivity.kt │ │ │ └── res │ │ │ │ ├── drawable │ │ │ │ └── launch_background.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ └── values │ │ │ │ └── styles.xml │ │ │ └── profile │ │ │ └── AndroidManifest.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ └── gradle-wrapper.properties │ └── settings.gradle ├── assets │ ├── fonts │ │ ├── Ubuntu-Bold.ttf │ │ ├── Ubuntu-BoldItalic.ttf │ │ ├── Ubuntu-Italic.ttf │ │ ├── Ubuntu-Light.ttf │ │ ├── Ubuntu-LightItalic.ttf │ │ ├── Ubuntu-Medium.ttf │ │ ├── Ubuntu-MediumItalic.ttf │ │ └── Ubuntu-Regular.ttf │ └── images │ │ └── search.png ├── build.gradle ├── images │ ├── Login.png │ ├── Register.png │ ├── bgmain.png │ ├── search.png │ └── welcome.png ├── ios │ ├── .gitignore │ ├── Flutter │ │ ├── AppFrameworkInfo.plist │ │ ├── Debug.xcconfig │ │ └── Release.xcconfig │ ├── Runner.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ └── WorkspaceSettings.xcsettings │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── Runner.xcscheme │ ├── Runner.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ └── Runner │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ ├── Icon-App-20x20@1x.png │ │ │ ├── Icon-App-20x20@2x.png │ │ │ ├── Icon-App-20x20@3x.png │ │ │ ├── Icon-App-29x29@1x.png │ │ │ ├── Icon-App-29x29@2x.png │ │ │ ├── Icon-App-29x29@3x.png │ │ │ ├── Icon-App-40x40@1x.png │ │ │ ├── Icon-App-40x40@2x.png │ │ │ ├── Icon-App-40x40@3x.png │ │ │ ├── Icon-App-60x60@2x.png │ │ │ ├── Icon-App-60x60@3x.png │ │ │ ├── Icon-App-76x76@1x.png │ │ │ ├── Icon-App-76x76@2x.png │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ └── LaunchImage.imageset │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.png │ │ │ ├── LaunchImage@2x.png │ │ │ ├── LaunchImage@3x.png │ │ │ └── README.md │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── Runner-Bridging-Header.h ├── lib │ ├── main.dart │ ├── models │ │ └── Models.dart │ ├── screens │ │ ├── auth │ │ │ ├── Login.dart │ │ │ ├── Onboarding.dart │ │ │ └── Register.dart │ │ ├── home │ │ │ └── UsersList.dart │ │ └── inbox │ │ │ └── Inbox.dart │ └── store │ │ ├── actions │ │ ├── authActions.dart │ │ ├── chatActions.dart │ │ └── types.dart │ │ └── reducer.dart ├── local.properties ├── pubspec.lock ├── pubspec.yaml └── test │ └── widget_test.dart └── node__signal ├── config.env ├── config └── default.json ├── helpers └── misc.js ├── middleware ├── auth.js └── socket.js ├── package-lock.json ├── package.json ├── routes ├── login.js └── register.js ├── schema ├── Chats.js ├── Messages.js └── User.js └── server.js /flutter-signal-app/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # The .vscode folder contains launch configuration and tasks you configure in 19 | # VS Code which you may wish to be included in version control, so this line 20 | # is commented out by default. 21 | #.vscode/ 22 | 23 | # Flutter/Dart/Pub related 24 | **/doc/api/ 25 | **/ios/Flutter/.last_build_id 26 | .dart_tool/ 27 | .flutter-plugins 28 | .flutter-plugins-dependencies 29 | .packages 30 | .pub-cache/ 31 | .pub/ 32 | /build/ 33 | 34 | # Web related 35 | lib/generated_plugin_registrant.dart 36 | 37 | # Symbolication related 38 | app.*.symbols 39 | 40 | # Obfuscation related 41 | app.*.map.json 42 | -------------------------------------------------------------------------------- /flutter-signal-app/.gradle/5.2.1/fileChanges/last-build.bin: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /flutter-signal-app/.gradle/5.2.1/fileHashes/fileHashes.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/.gradle/5.2.1/fileHashes/fileHashes.lock -------------------------------------------------------------------------------- /flutter-signal-app/.gradle/5.2.1/gc.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/.gradle/5.2.1/gc.properties -------------------------------------------------------------------------------- /flutter-signal-app/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: f30b7f4db93ee747cd727df747941a28ead25ff5 8 | channel: stable 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /flutter-signal-app/README.md: -------------------------------------------------------------------------------- 1 | # signal 2 | 3 | A new Flutter project. 4 | 5 | ## Getting Started 6 | 7 | This project is a starting point for a Flutter application. 8 | 9 | A few resources to get you started if this is your first Flutter project: 10 | 11 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) 12 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) 13 | 14 | For help getting started with Flutter, view our 15 | [online documentation](https://flutter.dev/docs), which offers tutorials, 16 | samples, guidance on mobile development, and a full API reference. 17 | -------------------------------------------------------------------------------- /flutter-signal-app/android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app 11 | key.properties 12 | -------------------------------------------------------------------------------- /flutter-signal-app/android/app/build.gradle: -------------------------------------------------------------------------------- 1 | def localProperties = new Properties() 2 | def localPropertiesFile = rootProject.file('local.properties') 3 | if (localPropertiesFile.exists()) { 4 | localPropertiesFile.withReader('UTF-8') { reader -> 5 | localProperties.load(reader) 6 | } 7 | } 8 | 9 | def flutterRoot = localProperties.getProperty('flutter.sdk') 10 | if (flutterRoot == null) { 11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") 12 | } 13 | 14 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode') 15 | if (flutterVersionCode == null) { 16 | flutterVersionCode = '1' 17 | } 18 | 19 | def flutterVersionName = localProperties.getProperty('flutter.versionName') 20 | if (flutterVersionName == null) { 21 | flutterVersionName = '1.0' 22 | } 23 | 24 | apply plugin: 'com.android.application' 25 | apply plugin: 'kotlin-android' 26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" 27 | 28 | android { 29 | compileSdkVersion 29 30 | 31 | sourceSets { 32 | main.java.srcDirs += 'src/main/kotlin' 33 | } 34 | 35 | lintOptions { 36 | disable 'InvalidPackage' 37 | } 38 | 39 | defaultConfig { 40 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). 41 | applicationId "com.example.signal" 42 | minSdkVersion 16 43 | targetSdkVersion 29 44 | versionCode flutterVersionCode.toInteger() 45 | versionName flutterVersionName 46 | } 47 | 48 | buildTypes { 49 | release { 50 | // TODO: Add your own signing config for the release build. 51 | // Signing with the debug keys for now, so `flutter run --release` works. 52 | signingConfig signingConfigs.debug 53 | } 54 | } 55 | } 56 | 57 | flutter { 58 | source '../..' 59 | } 60 | 61 | dependencies { 62 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" 63 | } 64 | -------------------------------------------------------------------------------- /flutter-signal-app/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /flutter-signal-app/android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 9 | 14 | 21 | 25 | 29 | 34 | 38 | 39 | 40 | 41 | 42 | 43 | 45 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /flutter-signal-app/android/app/src/main/kotlin/com/example/signal/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.signal 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() { 6 | } 7 | -------------------------------------------------------------------------------- /flutter-signal-app/android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /flutter-signal-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /flutter-signal-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /flutter-signal-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flutter-signal-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flutter-signal-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flutter-signal-app/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /flutter-signal-app/android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /flutter-signal-app/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.3.50' 3 | repositories { 4 | google() 5 | jcenter() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:3.5.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | jcenter() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | } 25 | subprojects { 26 | project.evaluationDependsOn(':app') 27 | } 28 | 29 | task clean(type: Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /flutter-signal-app/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | android.enableR8=true 5 | -------------------------------------------------------------------------------- /flutter-signal-app/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip 7 | -------------------------------------------------------------------------------- /flutter-signal-app/android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties") 4 | def properties = new Properties() 5 | 6 | assert localPropertiesFile.exists() 7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } 8 | 9 | def flutterSdkPath = properties.getProperty("flutter.sdk") 10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" 12 | -------------------------------------------------------------------------------- /flutter-signal-app/assets/fonts/Ubuntu-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/assets/fonts/Ubuntu-Bold.ttf -------------------------------------------------------------------------------- /flutter-signal-app/assets/fonts/Ubuntu-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/assets/fonts/Ubuntu-BoldItalic.ttf -------------------------------------------------------------------------------- /flutter-signal-app/assets/fonts/Ubuntu-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/assets/fonts/Ubuntu-Italic.ttf -------------------------------------------------------------------------------- /flutter-signal-app/assets/fonts/Ubuntu-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/assets/fonts/Ubuntu-Light.ttf -------------------------------------------------------------------------------- /flutter-signal-app/assets/fonts/Ubuntu-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/assets/fonts/Ubuntu-LightItalic.ttf -------------------------------------------------------------------------------- /flutter-signal-app/assets/fonts/Ubuntu-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/assets/fonts/Ubuntu-Medium.ttf -------------------------------------------------------------------------------- /flutter-signal-app/assets/fonts/Ubuntu-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/assets/fonts/Ubuntu-MediumItalic.ttf -------------------------------------------------------------------------------- /flutter-signal-app/assets/fonts/Ubuntu-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/assets/fonts/Ubuntu-Regular.ttf -------------------------------------------------------------------------------- /flutter-signal-app/assets/images/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/assets/images/search.png -------------------------------------------------------------------------------- /flutter-signal-app/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | -------------------------------------------------------------------------------- /flutter-signal-app/images/Login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/images/Login.png -------------------------------------------------------------------------------- /flutter-signal-app/images/Register.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/images/Register.png -------------------------------------------------------------------------------- /flutter-signal-app/images/bgmain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/images/bgmain.png -------------------------------------------------------------------------------- /flutter-signal-app/images/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/images/search.png -------------------------------------------------------------------------------- /flutter-signal-app/images/welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/images/welcome.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/.gitignore: -------------------------------------------------------------------------------- 1 | *.mode1v3 2 | *.mode2v3 3 | *.moved-aside 4 | *.pbxuser 5 | *.perspectivev3 6 | **/*sync/ 7 | .sconsign.dblite 8 | .tags* 9 | **/.vagrant/ 10 | **/DerivedData/ 11 | Icon? 12 | **/Pods/ 13 | **/.symlinks/ 14 | profile 15 | xcuserdata 16 | **/.generated/ 17 | Flutter/App.framework 18 | Flutter/Flutter.framework 19 | Flutter/Flutter.podspec 20 | Flutter/Generated.xcconfig 21 | Flutter/app.flx 22 | Flutter/app.zip 23 | Flutter/flutter_assets/ 24 | Flutter/flutter_export_environment.sh 25 | ServiceDefinitions.json 26 | Runner/GeneratedPluginRegistrant.* 27 | 28 | # Exceptions to above rules. 29 | !default.mode1v3 30 | !default.mode2v3 31 | !default.pbxuser 32 | !default.perspectivev3 33 | -------------------------------------------------------------------------------- /flutter-signal-app/ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 9.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /flutter-signal-app/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /flutter-signal-app/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 11 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 12 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 13 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 14 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 15 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; 16 | /* End PBXBuildFile section */ 17 | 18 | /* Begin PBXCopyFilesBuildPhase section */ 19 | 9705A1C41CF9048500538489 /* Embed Frameworks */ = { 20 | isa = PBXCopyFilesBuildPhase; 21 | buildActionMask = 2147483647; 22 | dstPath = ""; 23 | dstSubfolderSpec = 10; 24 | files = ( 25 | ); 26 | name = "Embed Frameworks"; 27 | runOnlyForDeploymentPostprocessing = 0; 28 | }; 29 | /* End PBXCopyFilesBuildPhase section */ 30 | 31 | /* Begin PBXFileReference section */ 32 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 33 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 34 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 35 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 36 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 37 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 38 | 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 39 | 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 40 | 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 41 | 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 42 | 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 43 | 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 44 | 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 45 | /* End PBXFileReference section */ 46 | 47 | /* Begin PBXFrameworksBuildPhase section */ 48 | 97C146EB1CF9000F007C117D /* Frameworks */ = { 49 | isa = PBXFrameworksBuildPhase; 50 | buildActionMask = 2147483647; 51 | files = ( 52 | ); 53 | runOnlyForDeploymentPostprocessing = 0; 54 | }; 55 | /* End PBXFrameworksBuildPhase section */ 56 | 57 | /* Begin PBXGroup section */ 58 | 9740EEB11CF90186004384FC /* Flutter */ = { 59 | isa = PBXGroup; 60 | children = ( 61 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 62 | 9740EEB21CF90195004384FC /* Debug.xcconfig */, 63 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, 64 | 9740EEB31CF90195004384FC /* Generated.xcconfig */, 65 | ); 66 | name = Flutter; 67 | sourceTree = ""; 68 | }; 69 | 97C146E51CF9000F007C117D = { 70 | isa = PBXGroup; 71 | children = ( 72 | 9740EEB11CF90186004384FC /* Flutter */, 73 | 97C146F01CF9000F007C117D /* Runner */, 74 | 97C146EF1CF9000F007C117D /* Products */, 75 | ); 76 | sourceTree = ""; 77 | }; 78 | 97C146EF1CF9000F007C117D /* Products */ = { 79 | isa = PBXGroup; 80 | children = ( 81 | 97C146EE1CF9000F007C117D /* Runner.app */, 82 | ); 83 | name = Products; 84 | sourceTree = ""; 85 | }; 86 | 97C146F01CF9000F007C117D /* Runner */ = { 87 | isa = PBXGroup; 88 | children = ( 89 | 97C146FA1CF9000F007C117D /* Main.storyboard */, 90 | 97C146FD1CF9000F007C117D /* Assets.xcassets */, 91 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, 92 | 97C147021CF9000F007C117D /* Info.plist */, 93 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 94 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, 95 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, 96 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, 97 | ); 98 | path = Runner; 99 | sourceTree = ""; 100 | }; 101 | /* End PBXGroup section */ 102 | 103 | /* Begin PBXNativeTarget section */ 104 | 97C146ED1CF9000F007C117D /* Runner */ = { 105 | isa = PBXNativeTarget; 106 | buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; 107 | buildPhases = ( 108 | 9740EEB61CF901F6004384FC /* Run Script */, 109 | 97C146EA1CF9000F007C117D /* Sources */, 110 | 97C146EB1CF9000F007C117D /* Frameworks */, 111 | 97C146EC1CF9000F007C117D /* Resources */, 112 | 9705A1C41CF9048500538489 /* Embed Frameworks */, 113 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */, 114 | ); 115 | buildRules = ( 116 | ); 117 | dependencies = ( 118 | ); 119 | name = Runner; 120 | productName = Runner; 121 | productReference = 97C146EE1CF9000F007C117D /* Runner.app */; 122 | productType = "com.apple.product-type.application"; 123 | }; 124 | /* End PBXNativeTarget section */ 125 | 126 | /* Begin PBXProject section */ 127 | 97C146E61CF9000F007C117D /* Project object */ = { 128 | isa = PBXProject; 129 | attributes = { 130 | LastUpgradeCheck = 1020; 131 | ORGANIZATIONNAME = ""; 132 | TargetAttributes = { 133 | 97C146ED1CF9000F007C117D = { 134 | CreatedOnToolsVersion = 7.3.1; 135 | LastSwiftMigration = 1100; 136 | }; 137 | }; 138 | }; 139 | buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; 140 | compatibilityVersion = "Xcode 9.3"; 141 | developmentRegion = en; 142 | hasScannedForEncodings = 0; 143 | knownRegions = ( 144 | en, 145 | Base, 146 | ); 147 | mainGroup = 97C146E51CF9000F007C117D; 148 | productRefGroup = 97C146EF1CF9000F007C117D /* Products */; 149 | projectDirPath = ""; 150 | projectRoot = ""; 151 | targets = ( 152 | 97C146ED1CF9000F007C117D /* Runner */, 153 | ); 154 | }; 155 | /* End PBXProject section */ 156 | 157 | /* Begin PBXResourcesBuildPhase section */ 158 | 97C146EC1CF9000F007C117D /* Resources */ = { 159 | isa = PBXResourcesBuildPhase; 160 | buildActionMask = 2147483647; 161 | files = ( 162 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, 163 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 164 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 165 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, 166 | ); 167 | runOnlyForDeploymentPostprocessing = 0; 168 | }; 169 | /* End PBXResourcesBuildPhase section */ 170 | 171 | /* Begin PBXShellScriptBuildPhase section */ 172 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { 173 | isa = PBXShellScriptBuildPhase; 174 | buildActionMask = 2147483647; 175 | files = ( 176 | ); 177 | inputPaths = ( 178 | ); 179 | name = "Thin Binary"; 180 | outputPaths = ( 181 | ); 182 | runOnlyForDeploymentPostprocessing = 0; 183 | shellPath = /bin/sh; 184 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; 185 | }; 186 | 9740EEB61CF901F6004384FC /* Run Script */ = { 187 | isa = PBXShellScriptBuildPhase; 188 | buildActionMask = 2147483647; 189 | files = ( 190 | ); 191 | inputPaths = ( 192 | ); 193 | name = "Run Script"; 194 | outputPaths = ( 195 | ); 196 | runOnlyForDeploymentPostprocessing = 0; 197 | shellPath = /bin/sh; 198 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; 199 | }; 200 | /* End PBXShellScriptBuildPhase section */ 201 | 202 | /* Begin PBXSourcesBuildPhase section */ 203 | 97C146EA1CF9000F007C117D /* Sources */ = { 204 | isa = PBXSourcesBuildPhase; 205 | buildActionMask = 2147483647; 206 | files = ( 207 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, 208 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, 209 | ); 210 | runOnlyForDeploymentPostprocessing = 0; 211 | }; 212 | /* End PBXSourcesBuildPhase section */ 213 | 214 | /* Begin PBXVariantGroup section */ 215 | 97C146FA1CF9000F007C117D /* Main.storyboard */ = { 216 | isa = PBXVariantGroup; 217 | children = ( 218 | 97C146FB1CF9000F007C117D /* Base */, 219 | ); 220 | name = Main.storyboard; 221 | sourceTree = ""; 222 | }; 223 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { 224 | isa = PBXVariantGroup; 225 | children = ( 226 | 97C147001CF9000F007C117D /* Base */, 227 | ); 228 | name = LaunchScreen.storyboard; 229 | sourceTree = ""; 230 | }; 231 | /* End PBXVariantGroup section */ 232 | 233 | /* Begin XCBuildConfiguration section */ 234 | 249021D3217E4FDB00AE95B9 /* Profile */ = { 235 | isa = XCBuildConfiguration; 236 | buildSettings = { 237 | ALWAYS_SEARCH_USER_PATHS = NO; 238 | CLANG_ANALYZER_NONNULL = YES; 239 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 240 | CLANG_CXX_LIBRARY = "libc++"; 241 | CLANG_ENABLE_MODULES = YES; 242 | CLANG_ENABLE_OBJC_ARC = YES; 243 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 244 | CLANG_WARN_BOOL_CONVERSION = YES; 245 | CLANG_WARN_COMMA = YES; 246 | CLANG_WARN_CONSTANT_CONVERSION = YES; 247 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 248 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 249 | CLANG_WARN_EMPTY_BODY = YES; 250 | CLANG_WARN_ENUM_CONVERSION = YES; 251 | CLANG_WARN_INFINITE_RECURSION = YES; 252 | CLANG_WARN_INT_CONVERSION = YES; 253 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 254 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 255 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 256 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 257 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 258 | CLANG_WARN_STRICT_PROTOTYPES = YES; 259 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 260 | CLANG_WARN_UNREACHABLE_CODE = YES; 261 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 262 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 263 | COPY_PHASE_STRIP = NO; 264 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 265 | ENABLE_NS_ASSERTIONS = NO; 266 | ENABLE_STRICT_OBJC_MSGSEND = YES; 267 | GCC_C_LANGUAGE_STANDARD = gnu99; 268 | GCC_NO_COMMON_BLOCKS = YES; 269 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 270 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 271 | GCC_WARN_UNDECLARED_SELECTOR = YES; 272 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 273 | GCC_WARN_UNUSED_FUNCTION = YES; 274 | GCC_WARN_UNUSED_VARIABLE = YES; 275 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 276 | MTL_ENABLE_DEBUG_INFO = NO; 277 | SDKROOT = iphoneos; 278 | SUPPORTED_PLATFORMS = iphoneos; 279 | TARGETED_DEVICE_FAMILY = "1,2"; 280 | VALIDATE_PRODUCT = YES; 281 | }; 282 | name = Profile; 283 | }; 284 | 249021D4217E4FDB00AE95B9 /* Profile */ = { 285 | isa = XCBuildConfiguration; 286 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 287 | buildSettings = { 288 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 289 | CLANG_ENABLE_MODULES = YES; 290 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; 291 | ENABLE_BITCODE = NO; 292 | FRAMEWORK_SEARCH_PATHS = ( 293 | "$(inherited)", 294 | "$(PROJECT_DIR)/Flutter", 295 | ); 296 | INFOPLIST_FILE = Runner/Info.plist; 297 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 298 | LIBRARY_SEARCH_PATHS = ( 299 | "$(inherited)", 300 | "$(PROJECT_DIR)/Flutter", 301 | ); 302 | PRODUCT_BUNDLE_IDENTIFIER = com.example.signal; 303 | PRODUCT_NAME = "$(TARGET_NAME)"; 304 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 305 | SWIFT_VERSION = 5.0; 306 | VERSIONING_SYSTEM = "apple-generic"; 307 | }; 308 | name = Profile; 309 | }; 310 | 97C147031CF9000F007C117D /* Debug */ = { 311 | isa = XCBuildConfiguration; 312 | buildSettings = { 313 | ALWAYS_SEARCH_USER_PATHS = NO; 314 | CLANG_ANALYZER_NONNULL = YES; 315 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 316 | CLANG_CXX_LIBRARY = "libc++"; 317 | CLANG_ENABLE_MODULES = YES; 318 | CLANG_ENABLE_OBJC_ARC = YES; 319 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 320 | CLANG_WARN_BOOL_CONVERSION = YES; 321 | CLANG_WARN_COMMA = YES; 322 | CLANG_WARN_CONSTANT_CONVERSION = YES; 323 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 324 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 325 | CLANG_WARN_EMPTY_BODY = YES; 326 | CLANG_WARN_ENUM_CONVERSION = YES; 327 | CLANG_WARN_INFINITE_RECURSION = YES; 328 | CLANG_WARN_INT_CONVERSION = YES; 329 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 330 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 331 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 332 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 333 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 334 | CLANG_WARN_STRICT_PROTOTYPES = YES; 335 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 336 | CLANG_WARN_UNREACHABLE_CODE = YES; 337 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 338 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 339 | COPY_PHASE_STRIP = NO; 340 | DEBUG_INFORMATION_FORMAT = dwarf; 341 | ENABLE_STRICT_OBJC_MSGSEND = YES; 342 | ENABLE_TESTABILITY = YES; 343 | GCC_C_LANGUAGE_STANDARD = gnu99; 344 | GCC_DYNAMIC_NO_PIC = NO; 345 | GCC_NO_COMMON_BLOCKS = YES; 346 | GCC_OPTIMIZATION_LEVEL = 0; 347 | GCC_PREPROCESSOR_DEFINITIONS = ( 348 | "DEBUG=1", 349 | "$(inherited)", 350 | ); 351 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 352 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 353 | GCC_WARN_UNDECLARED_SELECTOR = YES; 354 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 355 | GCC_WARN_UNUSED_FUNCTION = YES; 356 | GCC_WARN_UNUSED_VARIABLE = YES; 357 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 358 | MTL_ENABLE_DEBUG_INFO = YES; 359 | ONLY_ACTIVE_ARCH = YES; 360 | SDKROOT = iphoneos; 361 | TARGETED_DEVICE_FAMILY = "1,2"; 362 | }; 363 | name = Debug; 364 | }; 365 | 97C147041CF9000F007C117D /* Release */ = { 366 | isa = XCBuildConfiguration; 367 | buildSettings = { 368 | ALWAYS_SEARCH_USER_PATHS = NO; 369 | CLANG_ANALYZER_NONNULL = YES; 370 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 371 | CLANG_CXX_LIBRARY = "libc++"; 372 | CLANG_ENABLE_MODULES = YES; 373 | CLANG_ENABLE_OBJC_ARC = YES; 374 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 375 | CLANG_WARN_BOOL_CONVERSION = YES; 376 | CLANG_WARN_COMMA = YES; 377 | CLANG_WARN_CONSTANT_CONVERSION = YES; 378 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 379 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 380 | CLANG_WARN_EMPTY_BODY = YES; 381 | CLANG_WARN_ENUM_CONVERSION = YES; 382 | CLANG_WARN_INFINITE_RECURSION = YES; 383 | CLANG_WARN_INT_CONVERSION = YES; 384 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 385 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 386 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 387 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 388 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 389 | CLANG_WARN_STRICT_PROTOTYPES = YES; 390 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 391 | CLANG_WARN_UNREACHABLE_CODE = YES; 392 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 393 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 394 | COPY_PHASE_STRIP = NO; 395 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 396 | ENABLE_NS_ASSERTIONS = NO; 397 | ENABLE_STRICT_OBJC_MSGSEND = YES; 398 | GCC_C_LANGUAGE_STANDARD = gnu99; 399 | GCC_NO_COMMON_BLOCKS = YES; 400 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 401 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 402 | GCC_WARN_UNDECLARED_SELECTOR = YES; 403 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 404 | GCC_WARN_UNUSED_FUNCTION = YES; 405 | GCC_WARN_UNUSED_VARIABLE = YES; 406 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 407 | MTL_ENABLE_DEBUG_INFO = NO; 408 | SDKROOT = iphoneos; 409 | SUPPORTED_PLATFORMS = iphoneos; 410 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 411 | TARGETED_DEVICE_FAMILY = "1,2"; 412 | VALIDATE_PRODUCT = YES; 413 | }; 414 | name = Release; 415 | }; 416 | 97C147061CF9000F007C117D /* Debug */ = { 417 | isa = XCBuildConfiguration; 418 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; 419 | buildSettings = { 420 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 421 | CLANG_ENABLE_MODULES = YES; 422 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; 423 | ENABLE_BITCODE = NO; 424 | FRAMEWORK_SEARCH_PATHS = ( 425 | "$(inherited)", 426 | "$(PROJECT_DIR)/Flutter", 427 | ); 428 | INFOPLIST_FILE = Runner/Info.plist; 429 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 430 | LIBRARY_SEARCH_PATHS = ( 431 | "$(inherited)", 432 | "$(PROJECT_DIR)/Flutter", 433 | ); 434 | PRODUCT_BUNDLE_IDENTIFIER = com.example.signal; 435 | PRODUCT_NAME = "$(TARGET_NAME)"; 436 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 437 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 438 | SWIFT_VERSION = 5.0; 439 | VERSIONING_SYSTEM = "apple-generic"; 440 | }; 441 | name = Debug; 442 | }; 443 | 97C147071CF9000F007C117D /* Release */ = { 444 | isa = XCBuildConfiguration; 445 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 446 | buildSettings = { 447 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 448 | CLANG_ENABLE_MODULES = YES; 449 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; 450 | ENABLE_BITCODE = NO; 451 | FRAMEWORK_SEARCH_PATHS = ( 452 | "$(inherited)", 453 | "$(PROJECT_DIR)/Flutter", 454 | ); 455 | INFOPLIST_FILE = Runner/Info.plist; 456 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 457 | LIBRARY_SEARCH_PATHS = ( 458 | "$(inherited)", 459 | "$(PROJECT_DIR)/Flutter", 460 | ); 461 | PRODUCT_BUNDLE_IDENTIFIER = com.example.signal; 462 | PRODUCT_NAME = "$(TARGET_NAME)"; 463 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 464 | SWIFT_VERSION = 5.0; 465 | VERSIONING_SYSTEM = "apple-generic"; 466 | }; 467 | name = Release; 468 | }; 469 | /* End XCBuildConfiguration section */ 470 | 471 | /* Begin XCConfigurationList section */ 472 | 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { 473 | isa = XCConfigurationList; 474 | buildConfigurations = ( 475 | 97C147031CF9000F007C117D /* Debug */, 476 | 97C147041CF9000F007C117D /* Release */, 477 | 249021D3217E4FDB00AE95B9 /* Profile */, 478 | ); 479 | defaultConfigurationIsVisible = 0; 480 | defaultConfigurationName = Release; 481 | }; 482 | 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { 483 | isa = XCConfigurationList; 484 | buildConfigurations = ( 485 | 97C147061CF9000F007C117D /* Debug */, 486 | 97C147071CF9000F007C117D /* Release */, 487 | 249021D4217E4FDB00AE95B9 /* Profile */, 488 | ); 489 | defaultConfigurationIsVisible = 0; 490 | defaultConfigurationName = Release; 491 | }; 492 | /* End XCConfigurationList section */ 493 | }; 494 | rootObject = 97C146E61CF9000F007C117D /* Project object */; 495 | } 496 | -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "Icon-App-20x20@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "Icon-App-20x20@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "Icon-App-29x29@1x.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "Icon-App-29x29@2x.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "29x29", 29 | "idiom" : "iphone", 30 | "filename" : "Icon-App-29x29@3x.png", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "Icon-App-40x40@2x.png", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "40x40", 41 | "idiom" : "iphone", 42 | "filename" : "Icon-App-40x40@3x.png", 43 | "scale" : "3x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "Icon-App-60x60@2x.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "60x60", 53 | "idiom" : "iphone", 54 | "filename" : "Icon-App-60x60@3x.png", 55 | "scale" : "3x" 56 | }, 57 | { 58 | "size" : "20x20", 59 | "idiom" : "ipad", 60 | "filename" : "Icon-App-20x20@1x.png", 61 | "scale" : "1x" 62 | }, 63 | { 64 | "size" : "20x20", 65 | "idiom" : "ipad", 66 | "filename" : "Icon-App-20x20@2x.png", 67 | "scale" : "2x" 68 | }, 69 | { 70 | "size" : "29x29", 71 | "idiom" : "ipad", 72 | "filename" : "Icon-App-29x29@1x.png", 73 | "scale" : "1x" 74 | }, 75 | { 76 | "size" : "29x29", 77 | "idiom" : "ipad", 78 | "filename" : "Icon-App-29x29@2x.png", 79 | "scale" : "2x" 80 | }, 81 | { 82 | "size" : "40x40", 83 | "idiom" : "ipad", 84 | "filename" : "Icon-App-40x40@1x.png", 85 | "scale" : "1x" 86 | }, 87 | { 88 | "size" : "40x40", 89 | "idiom" : "ipad", 90 | "filename" : "Icon-App-40x40@2x.png", 91 | "scale" : "2x" 92 | }, 93 | { 94 | "size" : "76x76", 95 | "idiom" : "ipad", 96 | "filename" : "Icon-App-76x76@1x.png", 97 | "scale" : "1x" 98 | }, 99 | { 100 | "size" : "76x76", 101 | "idiom" : "ipad", 102 | "filename" : "Icon-App-76x76@2x.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "83.5x83.5", 107 | "idiom" : "ipad", 108 | "filename" : "Icon-App-83.5x83.5@2x.png", 109 | "scale" : "2x" 110 | }, 111 | { 112 | "size" : "1024x1024", 113 | "idiom" : "ios-marketing", 114 | "filename" : "Icon-App-1024x1024@1x.png", 115 | "scale" : "1x" 116 | } 117 | ], 118 | "info" : { 119 | "version" : 1, 120 | "author" : "xcode" 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | signal 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | $(FLUTTER_BUILD_NAME) 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(FLUTTER_BUILD_NUMBER) 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UISupportedInterfaceOrientations 30 | 31 | UIInterfaceOrientationPortrait 32 | UIInterfaceOrientationLandscapeLeft 33 | UIInterfaceOrientationLandscapeRight 34 | 35 | UISupportedInterfaceOrientations~ipad 36 | 37 | UIInterfaceOrientationPortrait 38 | UIInterfaceOrientationPortraitUpsideDown 39 | UIInterfaceOrientationLandscapeLeft 40 | UIInterfaceOrientationLandscapeRight 41 | 42 | UIViewControllerBasedStatusBarAppearance 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /flutter-signal-app/ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /flutter-signal-app/lib/main.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:redux/redux.dart'; 3 | import 'package:redux_thunk/redux_thunk.dart'; 4 | import 'package:signal/screens/auth/Login.dart'; 5 | import 'package:signal/screens/auth/Onboarding.dart'; 6 | import 'package:signal/store/reducer.dart'; 7 | import 'package:flutter_redux/flutter_redux.dart'; 8 | 9 | // Initial state/store values 10 | 11 | 12 | Future main() async { 13 | runApp(MyApp(store: store)); 14 | } 15 | 16 | class MyApp extends StatelessWidget { 17 | final Store store; 18 | 19 | MyApp({this.store}); 20 | 21 | @override 22 | Widget build(BuildContext context) { 23 | return new StoreProvider( 24 | store: store, 25 | child: MaterialApp( 26 | title: 'Flutter Signal App', 27 | theme: ThemeData( 28 | primarySwatch: Colors.blue, 29 | visualDensity: VisualDensity.adaptivePlatformDensity, 30 | ), 31 | initialRoute: "onboarding", 32 | routes: { 33 | "onboarding": (BuildContext context) => Onboarding(), 34 | "login": (BuildContext context) => Login(), 35 | }, 36 | home: SafeArea( 37 | child: Scaffold(), 38 | ))); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /flutter-signal-app/lib/models/Models.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/cupertino.dart'; 2 | 3 | // User 4 | 5 | 6 | // User Data 7 | 8 | // Dynamic Data for users 9 | 10 | 11 | // Chat Models 12 | 13 | // Message Model 14 | -------------------------------------------------------------------------------- /flutter-signal-app/lib/screens/auth/Login.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/cupertino.dart'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:flutter_redux/flutter_redux.dart'; 4 | import 'package:localstorage/localstorage.dart'; 5 | import 'package:signal/screens/auth/Register.dart'; 6 | import 'package:signal/store/actions/authActions.dart'; 7 | import 'package:signal/store/reducer.dart'; 8 | 9 | import '../../main.dart'; 10 | -------------------------------------------------------------------------------- /flutter-signal-app/lib/screens/auth/Onboarding.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/cupertino.dart'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:localstorage/localstorage.dart'; 4 | import 'package:signal/screens/auth/Register.dart'; 5 | import 'package:signal/store/actions/authActions.dart'; 6 | 7 | import '../../main.dart'; 8 | -------------------------------------------------------------------------------- /flutter-signal-app/lib/screens/auth/Register.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/cupertino.dart'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:flutter_redux/flutter_redux.dart'; 4 | import 'package:localstorage/localstorage.dart'; 5 | import 'package:signal/main.dart'; 6 | import 'package:signal/screens/auth/Login.dart'; 7 | import 'package:signal/store/actions/authActions.dart'; 8 | import 'package:signal/store/reducer.dart'; 9 | -------------------------------------------------------------------------------- /flutter-signal-app/lib/screens/home/UsersList.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_icons/flutter_icons.dart'; 2 | import 'package:flutter_redux/flutter_redux.dart'; 3 | import 'package:flutter/cupertino.dart'; 4 | import 'package:flutter/material.dart'; 5 | import 'package:signal/main.dart'; 6 | import 'package:signal/models/Models.dart'; 7 | import 'package:signal/screens/inbox/Inbox.dart'; 8 | import 'package:signal/store/actions/types.dart'; 9 | import 'package:signal/store/reducer.dart'; 10 | import 'package:socket_io_client/socket_io_client.dart'; 11 | -------------------------------------------------------------------------------- /flutter-signal-app/lib/screens/inbox/Inbox.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/cupertino.dart'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:flutter_icons/flutter_icons.dart'; 4 | import 'package:flutter_redux/flutter_redux.dart'; 5 | import 'package:signal/main.dart'; 6 | import 'package:signal/models/Models.dart'; 7 | import 'package:signal/store/actions/chatActions.dart'; 8 | import 'package:signal/store/actions/types.dart'; 9 | import 'package:signal/store/reducer.dart'; 10 | import 'package:socket_io_client/socket_io_client.dart'; 11 | -------------------------------------------------------------------------------- /flutter-signal-app/lib/store/actions/authActions.dart: -------------------------------------------------------------------------------- 1 | import 'dart:math'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:http/http.dart'; 4 | import "package:redux/redux.dart"; 5 | import 'package:shared_preferences/shared_preferences.dart'; 6 | import 'package:signal/models/Models.dart'; 7 | import 'package:signal/screens/auth/Login.dart'; 8 | import 'package:signal/screens/home/UsersList.dart'; 9 | import 'package:signal/store/actions/types.dart'; 10 | import 'package:signal/store/reducer.dart'; 11 | import 'dart:convert'; 12 | -------------------------------------------------------------------------------- /flutter-signal-app/lib/store/actions/chatActions.dart: -------------------------------------------------------------------------------- 1 | import 'dart:convert'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:intl/intl.dart'; 4 | import 'package:redux/redux.dart'; 5 | import 'package:shared_preferences/shared_preferences.dart'; 6 | import 'package:signal/main.dart'; 7 | import 'package:signal/store/actions/types.dart'; 8 | import 'package:signal/store/reducer.dart'; 9 | import 'package:uuid/uuid.dart'; 10 | 11 | import 'package:socket_io_client/socket_io_client.dart'; 12 | -------------------------------------------------------------------------------- /flutter-signal-app/lib/store/actions/types.dart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thellecodes/FullStack__flutter__chat/b5072df8719cd4154ae4381974290b9fa1c9f1ef/flutter-signal-app/lib/store/actions/types.dart -------------------------------------------------------------------------------- /flutter-signal-app/lib/store/reducer.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:redux/redux.dart'; 3 | import 'package:signal/main.dart'; 4 | import 'package:signal/models/Models.dart'; 5 | import 'actions/types.dart'; 6 | -------------------------------------------------------------------------------- /flutter-signal-app/local.properties: -------------------------------------------------------------------------------- 1 | ## This file must *NOT* be checked into Version Control Systems, 2 | # as it contains information specific to your local configuration. 3 | # 4 | # Location of the SDK. This is only used by Gradle. 5 | # For customization when using a Version Control System, please read the 6 | # header note. 7 | #Sat Jun 05 01:13:32 PDT 2021 8 | sdk.dir=C\:\\Users\\sam\\AppData\\Local\\Android\\Sdk 9 | -------------------------------------------------------------------------------- /flutter-signal-app/pubspec.lock: -------------------------------------------------------------------------------- 1 | # Generated by pub 2 | # See https://dart.dev/tools/pub/glossary#lockfile 3 | packages: 4 | ansicolor: 5 | dependency: transitive 6 | description: 7 | name: ansicolor 8 | url: "https://pub.dartlang.org" 9 | source: hosted 10 | version: "1.1.1" 11 | args: 12 | dependency: transitive 13 | description: 14 | name: args 15 | url: "https://pub.dartlang.org" 16 | source: hosted 17 | version: "2.1.0" 18 | async: 19 | dependency: transitive 20 | description: 21 | name: async 22 | url: "https://pub.dartlang.org" 23 | source: hosted 24 | version: "2.5.0" 25 | axios: 26 | dependency: "direct main" 27 | description: 28 | name: axios 29 | url: "https://pub.dartlang.org" 30 | source: hosted 31 | version: "1.0.1+1" 32 | boolean_selector: 33 | dependency: transitive 34 | description: 35 | name: boolean_selector 36 | url: "https://pub.dartlang.org" 37 | source: hosted 38 | version: "2.1.0" 39 | characters: 40 | dependency: transitive 41 | description: 42 | name: characters 43 | url: "https://pub.dartlang.org" 44 | source: hosted 45 | version: "1.1.0" 46 | charcode: 47 | dependency: transitive 48 | description: 49 | name: charcode 50 | url: "https://pub.dartlang.org" 51 | source: hosted 52 | version: "1.2.0" 53 | clock: 54 | dependency: transitive 55 | description: 56 | name: clock 57 | url: "https://pub.dartlang.org" 58 | source: hosted 59 | version: "1.1.0" 60 | collection: 61 | dependency: transitive 62 | description: 63 | name: collection 64 | url: "https://pub.dartlang.org" 65 | source: hosted 66 | version: "1.15.0" 67 | convert: 68 | dependency: "direct main" 69 | description: 70 | name: convert 71 | url: "https://pub.dartlang.org" 72 | source: hosted 73 | version: "2.1.1" 74 | crypto: 75 | dependency: transitive 76 | description: 77 | name: crypto 78 | url: "https://pub.dartlang.org" 79 | source: hosted 80 | version: "3.0.1" 81 | cupertino_icons: 82 | dependency: "direct main" 83 | description: 84 | name: cupertino_icons 85 | url: "https://pub.dartlang.org" 86 | source: hosted 87 | version: "1.0.0" 88 | fake_async: 89 | dependency: transitive 90 | description: 91 | name: fake_async 92 | url: "https://pub.dartlang.org" 93 | source: hosted 94 | version: "1.2.0" 95 | ffi: 96 | dependency: transitive 97 | description: 98 | name: ffi 99 | url: "https://pub.dartlang.org" 100 | source: hosted 101 | version: "1.0.0" 102 | file: 103 | dependency: transitive 104 | description: 105 | name: file 106 | url: "https://pub.dartlang.org" 107 | source: hosted 108 | version: "6.1.1" 109 | flutter: 110 | dependency: "direct main" 111 | description: flutter 112 | source: sdk 113 | version: "0.0.0" 114 | flutter_icons: 115 | dependency: "direct main" 116 | description: 117 | name: flutter_icons 118 | url: "https://pub.dartlang.org" 119 | source: hosted 120 | version: "1.1.0" 121 | flutter_redux: 122 | dependency: "direct main" 123 | description: 124 | name: flutter_redux 125 | url: "https://pub.dartlang.org" 126 | source: hosted 127 | version: "0.8.2" 128 | flutter_test: 129 | dependency: "direct dev" 130 | description: flutter 131 | source: sdk 132 | version: "0.0.0" 133 | flutter_web_plugins: 134 | dependency: transitive 135 | description: flutter 136 | source: sdk 137 | version: "0.0.0" 138 | fluttertoast: 139 | dependency: "direct main" 140 | description: 141 | name: fluttertoast 142 | url: "https://pub.dartlang.org" 143 | source: hosted 144 | version: "3.1.3" 145 | http: 146 | dependency: "direct main" 147 | description: 148 | name: http 149 | url: "https://pub.dartlang.org" 150 | source: hosted 151 | version: "0.12.2" 152 | http_parser: 153 | dependency: transitive 154 | description: 155 | name: http_parser 156 | url: "https://pub.dartlang.org" 157 | source: hosted 158 | version: "3.1.4" 159 | http_server: 160 | dependency: transitive 161 | description: 162 | name: http_server 163 | url: "https://pub.dartlang.org" 164 | source: hosted 165 | version: "0.9.8+3" 166 | intl: 167 | dependency: "direct main" 168 | description: 169 | name: intl 170 | url: "https://pub.dartlang.org" 171 | source: hosted 172 | version: "0.16.1" 173 | js: 174 | dependency: transitive 175 | description: 176 | name: js 177 | url: "https://pub.dartlang.org" 178 | source: hosted 179 | version: "0.6.3" 180 | keyboard_avoider: 181 | dependency: "direct main" 182 | description: 183 | name: keyboard_avoider 184 | url: "https://pub.dartlang.org" 185 | source: hosted 186 | version: "0.1.2" 187 | localstorage: 188 | dependency: "direct main" 189 | description: 190 | name: localstorage 191 | url: "https://pub.dartlang.org" 192 | source: hosted 193 | version: "4.0.0+1" 194 | logging: 195 | dependency: transitive 196 | description: 197 | name: logging 198 | url: "https://pub.dartlang.org" 199 | source: hosted 200 | version: "1.0.1" 201 | matcher: 202 | dependency: transitive 203 | description: 204 | name: matcher 205 | url: "https://pub.dartlang.org" 206 | source: hosted 207 | version: "0.12.10" 208 | meta: 209 | dependency: transitive 210 | description: 211 | name: meta 212 | url: "https://pub.dartlang.org" 213 | source: hosted 214 | version: "1.3.0" 215 | mime: 216 | dependency: transitive 217 | description: 218 | name: mime 219 | url: "https://pub.dartlang.org" 220 | source: hosted 221 | version: "0.9.7" 222 | path: 223 | dependency: transitive 224 | description: 225 | name: path 226 | url: "https://pub.dartlang.org" 227 | source: hosted 228 | version: "1.8.0" 229 | path_provider: 230 | dependency: transitive 231 | description: 232 | name: path_provider 233 | url: "https://pub.dartlang.org" 234 | source: hosted 235 | version: "2.0.1" 236 | path_provider_linux: 237 | dependency: transitive 238 | description: 239 | name: path_provider_linux 240 | url: "https://pub.dartlang.org" 241 | source: hosted 242 | version: "2.0.0" 243 | path_provider_macos: 244 | dependency: transitive 245 | description: 246 | name: path_provider_macos 247 | url: "https://pub.dartlang.org" 248 | source: hosted 249 | version: "2.0.0" 250 | path_provider_platform_interface: 251 | dependency: transitive 252 | description: 253 | name: path_provider_platform_interface 254 | url: "https://pub.dartlang.org" 255 | source: hosted 256 | version: "2.0.1" 257 | path_provider_windows: 258 | dependency: transitive 259 | description: 260 | name: path_provider_windows 261 | url: "https://pub.dartlang.org" 262 | source: hosted 263 | version: "2.0.1" 264 | pedantic: 265 | dependency: transitive 266 | description: 267 | name: pedantic 268 | url: "https://pub.dartlang.org" 269 | source: hosted 270 | version: "1.9.2" 271 | platform: 272 | dependency: transitive 273 | description: 274 | name: platform 275 | url: "https://pub.dartlang.org" 276 | source: hosted 277 | version: "3.0.0" 278 | plugin_platform_interface: 279 | dependency: transitive 280 | description: 281 | name: plugin_platform_interface 282 | url: "https://pub.dartlang.org" 283 | source: hosted 284 | version: "2.0.0" 285 | process: 286 | dependency: transitive 287 | description: 288 | name: process 289 | url: "https://pub.dartlang.org" 290 | source: hosted 291 | version: "4.2.1" 292 | redux: 293 | dependency: "direct main" 294 | description: 295 | name: redux 296 | url: "https://pub.dartlang.org" 297 | source: hosted 298 | version: "5.0.0" 299 | redux_thunk: 300 | dependency: "direct main" 301 | description: 302 | name: redux_thunk 303 | url: "https://pub.dartlang.org" 304 | source: hosted 305 | version: "0.4.0" 306 | shared_preferences: 307 | dependency: "direct main" 308 | description: 309 | name: shared_preferences 310 | url: "https://pub.dartlang.org" 311 | source: hosted 312 | version: "2.0.5" 313 | shared_preferences_linux: 314 | dependency: transitive 315 | description: 316 | name: shared_preferences_linux 317 | url: "https://pub.dartlang.org" 318 | source: hosted 319 | version: "2.0.0" 320 | shared_preferences_macos: 321 | dependency: transitive 322 | description: 323 | name: shared_preferences_macos 324 | url: "https://pub.dartlang.org" 325 | source: hosted 326 | version: "2.0.0" 327 | shared_preferences_platform_interface: 328 | dependency: transitive 329 | description: 330 | name: shared_preferences_platform_interface 331 | url: "https://pub.dartlang.org" 332 | source: hosted 333 | version: "2.0.0" 334 | shared_preferences_web: 335 | dependency: transitive 336 | description: 337 | name: shared_preferences_web 338 | url: "https://pub.dartlang.org" 339 | source: hosted 340 | version: "2.0.0" 341 | shared_preferences_windows: 342 | dependency: transitive 343 | description: 344 | name: shared_preferences_windows 345 | url: "https://pub.dartlang.org" 346 | source: hosted 347 | version: "2.0.0" 348 | sky_engine: 349 | dependency: transitive 350 | description: flutter 351 | source: sdk 352 | version: "0.0.99" 353 | socket_io_client: 354 | dependency: "direct main" 355 | description: 356 | name: socket_io_client 357 | url: "https://pub.dartlang.org" 358 | source: hosted 359 | version: "1.0.1" 360 | socket_io_common: 361 | dependency: transitive 362 | description: 363 | name: socket_io_common 364 | url: "https://pub.dartlang.org" 365 | source: hosted 366 | version: "1.0.0" 367 | source_span: 368 | dependency: transitive 369 | description: 370 | name: source_span 371 | url: "https://pub.dartlang.org" 372 | source: hosted 373 | version: "1.8.0" 374 | stack_trace: 375 | dependency: transitive 376 | description: 377 | name: stack_trace 378 | url: "https://pub.dartlang.org" 379 | source: hosted 380 | version: "1.10.0" 381 | stream_channel: 382 | dependency: transitive 383 | description: 384 | name: stream_channel 385 | url: "https://pub.dartlang.org" 386 | source: hosted 387 | version: "2.1.0" 388 | string_scanner: 389 | dependency: transitive 390 | description: 391 | name: string_scanner 392 | url: "https://pub.dartlang.org" 393 | source: hosted 394 | version: "1.1.0" 395 | term_glyph: 396 | dependency: transitive 397 | description: 398 | name: term_glyph 399 | url: "https://pub.dartlang.org" 400 | source: hosted 401 | version: "1.2.0" 402 | test_api: 403 | dependency: transitive 404 | description: 405 | name: test_api 406 | url: "https://pub.dartlang.org" 407 | source: hosted 408 | version: "0.2.19" 409 | typed_data: 410 | dependency: transitive 411 | description: 412 | name: typed_data 413 | url: "https://pub.dartlang.org" 414 | source: hosted 415 | version: "1.3.0" 416 | uuid: 417 | dependency: "direct main" 418 | description: 419 | name: uuid 420 | url: "https://pub.dartlang.org" 421 | source: hosted 422 | version: "3.0.4" 423 | vector_math: 424 | dependency: transitive 425 | description: 426 | name: vector_math 427 | url: "https://pub.dartlang.org" 428 | source: hosted 429 | version: "2.1.0" 430 | win32: 431 | dependency: transitive 432 | description: 433 | name: win32 434 | url: "https://pub.dartlang.org" 435 | source: hosted 436 | version: "2.0.5" 437 | xdg_directories: 438 | dependency: transitive 439 | description: 440 | name: xdg_directories 441 | url: "https://pub.dartlang.org" 442 | source: hosted 443 | version: "0.2.0" 444 | sdks: 445 | dart: ">=2.12.0 <3.0.0" 446 | flutter: ">=1.20.0" 447 | -------------------------------------------------------------------------------- /flutter-signal-app/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: signal 2 | description: A new Flutter project. 3 | publish_to: "none" 4 | version: 1.0.0+1 5 | 6 | environment: 7 | sdk: ">=2.7.0 <3.0.0" 8 | 9 | dependencies: 10 | flutter: 11 | sdk: flutter 12 | 13 | cupertino_icons: ^1.0.0 14 | flutter_icons: ^1.1.0 15 | convert: ^2.1.1 16 | keyboard_avoider: ^0.1.2 17 | redux_thunk: ^0.4.0 18 | http: ^0.12.0+1 19 | redux: ^5.0.0 20 | flutter_redux: ^0.8.2 21 | axios: ^1.0.1+1 22 | fluttertoast: ^3.1.0 23 | localstorage: ^4.0.0+1 24 | shared_preferences: ^2.0.5 25 | socket_io_client: ^1.0.1 26 | intl: ^0.16.1 27 | uuid: ^3.0.4 28 | 29 | dev_dependencies: 30 | flutter_test: 31 | sdk: flutter 32 | 33 | flutter: 34 | uses-material-design: true 35 | assets: 36 | - images/ 37 | -------------------------------------------------------------------------------- /flutter-signal-app/test/widget_test.dart: -------------------------------------------------------------------------------- 1 | // This is a basic Flutter widget test. 2 | // 3 | // To perform an interaction with a widget in your test, use the WidgetTester 4 | // utility that Flutter provides. For example, you can send tap and scroll 5 | // gestures. You can also use WidgetTester to find child widgets in the widget 6 | // tree, read text, and verify that the values of widget properties are correct. 7 | 8 | import 'package:flutter/material.dart'; 9 | import 'package:flutter_test/flutter_test.dart'; 10 | 11 | import 'package:signal/main.dart'; 12 | 13 | void main() { 14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async { 15 | // Build our app and trigger a frame. 16 | await tester.pumpWidget(MyApp()); 17 | 18 | // Verify that our counter starts at 0. 19 | expect(find.text('0'), findsOneWidget); 20 | expect(find.text('1'), findsNothing); 21 | 22 | // Tap the '+' icon and trigger a frame. 23 | await tester.tap(find.byIcon(Icons.add)); 24 | await tester.pump(); 25 | 26 | // Verify that our counter has incremented. 27 | expect(find.text('0'), findsNothing); 28 | expect(find.text('1'), findsOneWidget); 29 | }); 30 | } 31 | -------------------------------------------------------------------------------- /node__signal/config.env: -------------------------------------------------------------------------------- 1 | PORT=5000 2 | NODE_ENV=development 3 | -------------------------------------------------------------------------------- /node__signal/config/default.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "mongoURI": "", 4 | "flutter__secret": "flutter__secret" 5 | } 6 | -------------------------------------------------------------------------------- /node__signal/helpers/misc.js: -------------------------------------------------------------------------------- 1 | const Chats = require("../schema/Chats"); 2 | const { v4: uuidV4 } = require("uuid"); 3 | 4 | const addUser = ({ receiverEmail, senderEmail }, socket) => { 5 | }; 6 | 7 | module.exports = { addUser }; 8 | -------------------------------------------------------------------------------- /node__signal/middleware/auth.js: -------------------------------------------------------------------------------- 1 | const config = require("config"); 2 | const jwt = require("jsonwebtoken"); 3 | 4 | function auth(req, res, next) { 5 | 6 | } 7 | 8 | module.exports = auth; 9 | -------------------------------------------------------------------------------- /node__signal/middleware/socket.js: -------------------------------------------------------------------------------- 1 | const { addUser } = require("../helpers/misc"); 2 | const Messages = require("../schema/Messages"); 3 | 4 | module.exports = (app, io, db) => { 5 | io.on("connection", function (socket) { 6 | 7 | }) 8 | } 9 | -------------------------------------------------------------------------------- /node__signal/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "node__signal", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@sindresorhus/is": { 8 | "version": "0.14.0", 9 | "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", 10 | "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", 11 | "dev": true 12 | }, 13 | "@szmarczak/http-timer": { 14 | "version": "1.1.2", 15 | "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", 16 | "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", 17 | "dev": true, 18 | "requires": { 19 | "defer-to-connect": "^1.0.1" 20 | } 21 | }, 22 | "@types/bson": { 23 | "version": "4.0.3", 24 | "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.3.tgz", 25 | "integrity": "sha512-mVRvYnTOZJz3ccpxhr3wgxVmSeiYinW+zlzQz3SXWaJmD1DuL05Jeq7nKw3SnbKmbleW5qrLG5vdyWe/A9sXhw==", 26 | "requires": { 27 | "@types/node": "*" 28 | } 29 | }, 30 | "@types/mongodb": { 31 | "version": "3.6.12", 32 | "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.12.tgz", 33 | "integrity": "sha512-49aEzQD5VdHPxyd5dRyQdqEveAg9LanwrH8RQipnMuulwzKmODXIZRp0umtxi1eBUfEusRkoy8AVOMr+kVuFog==", 34 | "requires": { 35 | "@types/bson": "*", 36 | "@types/node": "*" 37 | } 38 | }, 39 | "@types/node": { 40 | "version": "15.3.0", 41 | "resolved": "https://registry.npmjs.org/@types/node/-/node-15.3.0.tgz", 42 | "integrity": "sha512-8/bnjSZD86ZfpBsDlCIkNXIvm+h6wi9g7IqL+kmFkQ+Wvu3JrasgLElfiPgoo8V8vVfnEi0QVS12gbl94h9YsQ==" 43 | }, 44 | "abbrev": { 45 | "version": "1.1.1", 46 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 47 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", 48 | "dev": true 49 | }, 50 | "accepts": { 51 | "version": "1.3.7", 52 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 53 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 54 | "requires": { 55 | "mime-types": "~2.1.24", 56 | "negotiator": "0.6.2" 57 | } 58 | }, 59 | "after": { 60 | "version": "0.8.2", 61 | "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", 62 | "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" 63 | }, 64 | "ansi-align": { 65 | "version": "3.0.0", 66 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", 67 | "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", 68 | "dev": true, 69 | "requires": { 70 | "string-width": "^3.0.0" 71 | }, 72 | "dependencies": { 73 | "string-width": { 74 | "version": "3.1.0", 75 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 76 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 77 | "dev": true, 78 | "requires": { 79 | "emoji-regex": "^7.0.1", 80 | "is-fullwidth-code-point": "^2.0.0", 81 | "strip-ansi": "^5.1.0" 82 | } 83 | } 84 | } 85 | }, 86 | "ansi-regex": { 87 | "version": "4.1.0", 88 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 89 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 90 | "dev": true 91 | }, 92 | "ansi-styles": { 93 | "version": "4.3.0", 94 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 95 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 96 | "dev": true, 97 | "requires": { 98 | "color-convert": "^2.0.1" 99 | } 100 | }, 101 | "anymatch": { 102 | "version": "3.1.2", 103 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 104 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 105 | "dev": true, 106 | "requires": { 107 | "normalize-path": "^3.0.0", 108 | "picomatch": "^2.0.4" 109 | } 110 | }, 111 | "array-flatten": { 112 | "version": "1.1.1", 113 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 114 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 115 | }, 116 | "arraybuffer.slice": { 117 | "version": "0.0.7", 118 | "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", 119 | "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" 120 | }, 121 | "async-limiter": { 122 | "version": "1.0.1", 123 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", 124 | "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" 125 | }, 126 | "backo2": { 127 | "version": "1.0.2", 128 | "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", 129 | "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" 130 | }, 131 | "balanced-match": { 132 | "version": "1.0.2", 133 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 134 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 135 | "dev": true 136 | }, 137 | "base64-arraybuffer": { 138 | "version": "0.1.4", 139 | "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", 140 | "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=" 141 | }, 142 | "base64id": { 143 | "version": "2.0.0", 144 | "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", 145 | "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" 146 | }, 147 | "basic-auth": { 148 | "version": "2.0.1", 149 | "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", 150 | "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", 151 | "dev": true, 152 | "requires": { 153 | "safe-buffer": "5.1.2" 154 | } 155 | }, 156 | "bcryptjs": { 157 | "version": "2.4.3", 158 | "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", 159 | "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" 160 | }, 161 | "better-assert": { 162 | "version": "1.0.2", 163 | "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", 164 | "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", 165 | "requires": { 166 | "callsite": "1.0.0" 167 | } 168 | }, 169 | "binary-extensions": { 170 | "version": "2.2.0", 171 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 172 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 173 | "dev": true 174 | }, 175 | "bl": { 176 | "version": "2.2.1", 177 | "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", 178 | "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", 179 | "requires": { 180 | "readable-stream": "^2.3.5", 181 | "safe-buffer": "^5.1.1" 182 | } 183 | }, 184 | "blob": { 185 | "version": "0.0.5", 186 | "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", 187 | "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" 188 | }, 189 | "bluebird": { 190 | "version": "3.5.1", 191 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", 192 | "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" 193 | }, 194 | "body-parser": { 195 | "version": "1.19.0", 196 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 197 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", 198 | "requires": { 199 | "bytes": "3.1.0", 200 | "content-type": "~1.0.4", 201 | "debug": "2.6.9", 202 | "depd": "~1.1.2", 203 | "http-errors": "1.7.2", 204 | "iconv-lite": "0.4.24", 205 | "on-finished": "~2.3.0", 206 | "qs": "6.7.0", 207 | "raw-body": "2.4.0", 208 | "type-is": "~1.6.17" 209 | } 210 | }, 211 | "boxen": { 212 | "version": "4.2.0", 213 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", 214 | "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", 215 | "dev": true, 216 | "requires": { 217 | "ansi-align": "^3.0.0", 218 | "camelcase": "^5.3.1", 219 | "chalk": "^3.0.0", 220 | "cli-boxes": "^2.2.0", 221 | "string-width": "^4.1.0", 222 | "term-size": "^2.1.0", 223 | "type-fest": "^0.8.1", 224 | "widest-line": "^3.1.0" 225 | } 226 | }, 227 | "brace-expansion": { 228 | "version": "1.1.11", 229 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 230 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 231 | "dev": true, 232 | "requires": { 233 | "balanced-match": "^1.0.0", 234 | "concat-map": "0.0.1" 235 | } 236 | }, 237 | "braces": { 238 | "version": "3.0.2", 239 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 240 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 241 | "dev": true, 242 | "requires": { 243 | "fill-range": "^7.0.1" 244 | } 245 | }, 246 | "bson": { 247 | "version": "1.1.6", 248 | "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", 249 | "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==" 250 | }, 251 | "buffer-equal-constant-time": { 252 | "version": "1.0.1", 253 | "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", 254 | "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" 255 | }, 256 | "bytes": { 257 | "version": "3.1.0", 258 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 259 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" 260 | }, 261 | "cacheable-request": { 262 | "version": "6.1.0", 263 | "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", 264 | "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", 265 | "dev": true, 266 | "requires": { 267 | "clone-response": "^1.0.2", 268 | "get-stream": "^5.1.0", 269 | "http-cache-semantics": "^4.0.0", 270 | "keyv": "^3.0.0", 271 | "lowercase-keys": "^2.0.0", 272 | "normalize-url": "^4.1.0", 273 | "responselike": "^1.0.2" 274 | }, 275 | "dependencies": { 276 | "get-stream": { 277 | "version": "5.2.0", 278 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", 279 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", 280 | "dev": true, 281 | "requires": { 282 | "pump": "^3.0.0" 283 | } 284 | }, 285 | "lowercase-keys": { 286 | "version": "2.0.0", 287 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", 288 | "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", 289 | "dev": true 290 | } 291 | } 292 | }, 293 | "callsite": { 294 | "version": "1.0.0", 295 | "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", 296 | "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" 297 | }, 298 | "camelcase": { 299 | "version": "5.3.1", 300 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 301 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", 302 | "dev": true 303 | }, 304 | "chalk": { 305 | "version": "3.0.0", 306 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", 307 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", 308 | "dev": true, 309 | "requires": { 310 | "ansi-styles": "^4.1.0", 311 | "supports-color": "^7.1.0" 312 | }, 313 | "dependencies": { 314 | "has-flag": { 315 | "version": "4.0.0", 316 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 317 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 318 | "dev": true 319 | }, 320 | "supports-color": { 321 | "version": "7.2.0", 322 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 323 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 324 | "dev": true, 325 | "requires": { 326 | "has-flag": "^4.0.0" 327 | } 328 | } 329 | } 330 | }, 331 | "chokidar": { 332 | "version": "3.5.1", 333 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", 334 | "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", 335 | "dev": true, 336 | "requires": { 337 | "anymatch": "~3.1.1", 338 | "braces": "~3.0.2", 339 | "fsevents": "~2.3.1", 340 | "glob-parent": "~5.1.0", 341 | "is-binary-path": "~2.1.0", 342 | "is-glob": "~4.0.1", 343 | "normalize-path": "~3.0.0", 344 | "readdirp": "~3.5.0" 345 | } 346 | }, 347 | "ci-info": { 348 | "version": "2.0.0", 349 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", 350 | "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", 351 | "dev": true 352 | }, 353 | "cli-boxes": { 354 | "version": "2.2.1", 355 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", 356 | "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", 357 | "dev": true 358 | }, 359 | "clone-response": { 360 | "version": "1.0.2", 361 | "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", 362 | "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", 363 | "dev": true, 364 | "requires": { 365 | "mimic-response": "^1.0.0" 366 | } 367 | }, 368 | "color-convert": { 369 | "version": "2.0.1", 370 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 371 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 372 | "dev": true, 373 | "requires": { 374 | "color-name": "~1.1.4" 375 | } 376 | }, 377 | "color-name": { 378 | "version": "1.1.4", 379 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 380 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 381 | "dev": true 382 | }, 383 | "component-bind": { 384 | "version": "1.0.0", 385 | "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", 386 | "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" 387 | }, 388 | "component-emitter": { 389 | "version": "1.2.1", 390 | "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", 391 | "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" 392 | }, 393 | "component-inherit": { 394 | "version": "0.0.3", 395 | "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", 396 | "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" 397 | }, 398 | "concat-map": { 399 | "version": "0.0.1", 400 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 401 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 402 | "dev": true 403 | }, 404 | "config": { 405 | "version": "3.3.6", 406 | "resolved": "https://registry.npmjs.org/config/-/config-3.3.6.tgz", 407 | "integrity": "sha512-Hj5916C5HFawjYJat1epbyY2PlAgLpBtDUlr0MxGLgo3p5+7kylyvnRY18PqJHgnNWXcdd0eWDemT7eYWuFgwg==", 408 | "requires": { 409 | "json5": "^2.1.1" 410 | } 411 | }, 412 | "configstore": { 413 | "version": "5.0.1", 414 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", 415 | "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", 416 | "dev": true, 417 | "requires": { 418 | "dot-prop": "^5.2.0", 419 | "graceful-fs": "^4.1.2", 420 | "make-dir": "^3.0.0", 421 | "unique-string": "^2.0.0", 422 | "write-file-atomic": "^3.0.0", 423 | "xdg-basedir": "^4.0.0" 424 | } 425 | }, 426 | "content-disposition": { 427 | "version": "0.5.3", 428 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 429 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 430 | "requires": { 431 | "safe-buffer": "5.1.2" 432 | } 433 | }, 434 | "content-type": { 435 | "version": "1.0.4", 436 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 437 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 438 | }, 439 | "cookie": { 440 | "version": "0.4.0", 441 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 442 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" 443 | }, 444 | "cookie-signature": { 445 | "version": "1.0.6", 446 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 447 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 448 | }, 449 | "core-util-is": { 450 | "version": "1.0.2", 451 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 452 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 453 | }, 454 | "cors": { 455 | "version": "2.8.5", 456 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", 457 | "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", 458 | "requires": { 459 | "object-assign": "^4", 460 | "vary": "^1" 461 | } 462 | }, 463 | "crypto-random-string": { 464 | "version": "2.0.0", 465 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", 466 | "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", 467 | "dev": true 468 | }, 469 | "debug": { 470 | "version": "2.6.9", 471 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 472 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 473 | "requires": { 474 | "ms": "2.0.0" 475 | } 476 | }, 477 | "decompress-response": { 478 | "version": "3.3.0", 479 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", 480 | "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", 481 | "dev": true, 482 | "requires": { 483 | "mimic-response": "^1.0.0" 484 | } 485 | }, 486 | "deep-extend": { 487 | "version": "0.6.0", 488 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 489 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", 490 | "dev": true 491 | }, 492 | "defer-to-connect": { 493 | "version": "1.1.3", 494 | "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", 495 | "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", 496 | "dev": true 497 | }, 498 | "denque": { 499 | "version": "1.5.0", 500 | "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz", 501 | "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==" 502 | }, 503 | "depd": { 504 | "version": "1.1.2", 505 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 506 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 507 | }, 508 | "destroy": { 509 | "version": "1.0.4", 510 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 511 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 512 | }, 513 | "dot-prop": { 514 | "version": "5.3.0", 515 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", 516 | "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", 517 | "dev": true, 518 | "requires": { 519 | "is-obj": "^2.0.0" 520 | } 521 | }, 522 | "dotenv": { 523 | "version": "9.0.2", 524 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", 525 | "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==" 526 | }, 527 | "duplexer3": { 528 | "version": "0.1.4", 529 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", 530 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", 531 | "dev": true 532 | }, 533 | "ecdsa-sig-formatter": { 534 | "version": "1.0.11", 535 | "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", 536 | "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", 537 | "requires": { 538 | "safe-buffer": "^5.0.1" 539 | } 540 | }, 541 | "ee-first": { 542 | "version": "1.1.1", 543 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 544 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 545 | }, 546 | "emoji-regex": { 547 | "version": "7.0.3", 548 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 549 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 550 | "dev": true 551 | }, 552 | "encodeurl": { 553 | "version": "1.0.2", 554 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 555 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 556 | }, 557 | "end-of-stream": { 558 | "version": "1.4.4", 559 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 560 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 561 | "dev": true, 562 | "requires": { 563 | "once": "^1.4.0" 564 | } 565 | }, 566 | "engine.io": { 567 | "version": "3.4.2", 568 | "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", 569 | "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", 570 | "requires": { 571 | "accepts": "~1.3.4", 572 | "base64id": "2.0.0", 573 | "cookie": "0.3.1", 574 | "debug": "~4.1.0", 575 | "engine.io-parser": "~2.2.0", 576 | "ws": "^7.1.2" 577 | }, 578 | "dependencies": { 579 | "cookie": { 580 | "version": "0.3.1", 581 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", 582 | "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" 583 | }, 584 | "debug": { 585 | "version": "4.1.1", 586 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 587 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 588 | "requires": { 589 | "ms": "^2.1.1" 590 | } 591 | }, 592 | "ms": { 593 | "version": "2.1.3", 594 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 595 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 596 | } 597 | } 598 | }, 599 | "engine.io-client": { 600 | "version": "3.4.4", 601 | "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.4.tgz", 602 | "integrity": "sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==", 603 | "requires": { 604 | "component-emitter": "~1.3.0", 605 | "component-inherit": "0.0.3", 606 | "debug": "~3.1.0", 607 | "engine.io-parser": "~2.2.0", 608 | "has-cors": "1.1.0", 609 | "indexof": "0.0.1", 610 | "parseqs": "0.0.6", 611 | "parseuri": "0.0.6", 612 | "ws": "~6.1.0", 613 | "xmlhttprequest-ssl": "~1.5.4", 614 | "yeast": "0.1.2" 615 | }, 616 | "dependencies": { 617 | "component-emitter": { 618 | "version": "1.3.0", 619 | "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", 620 | "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" 621 | }, 622 | "debug": { 623 | "version": "3.1.0", 624 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 625 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 626 | "requires": { 627 | "ms": "2.0.0" 628 | } 629 | }, 630 | "parseqs": { 631 | "version": "0.0.6", 632 | "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", 633 | "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==" 634 | }, 635 | "parseuri": { 636 | "version": "0.0.6", 637 | "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", 638 | "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==" 639 | }, 640 | "ws": { 641 | "version": "6.1.4", 642 | "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", 643 | "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", 644 | "requires": { 645 | "async-limiter": "~1.0.0" 646 | } 647 | } 648 | } 649 | }, 650 | "engine.io-parser": { 651 | "version": "2.2.1", 652 | "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", 653 | "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", 654 | "requires": { 655 | "after": "0.8.2", 656 | "arraybuffer.slice": "~0.0.7", 657 | "base64-arraybuffer": "0.1.4", 658 | "blob": "0.0.5", 659 | "has-binary2": "~1.0.2" 660 | } 661 | }, 662 | "escape-goat": { 663 | "version": "2.1.1", 664 | "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", 665 | "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", 666 | "dev": true 667 | }, 668 | "escape-html": { 669 | "version": "1.0.3", 670 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 671 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 672 | }, 673 | "etag": { 674 | "version": "1.8.1", 675 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 676 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 677 | }, 678 | "express": { 679 | "version": "4.17.1", 680 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 681 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", 682 | "requires": { 683 | "accepts": "~1.3.7", 684 | "array-flatten": "1.1.1", 685 | "body-parser": "1.19.0", 686 | "content-disposition": "0.5.3", 687 | "content-type": "~1.0.4", 688 | "cookie": "0.4.0", 689 | "cookie-signature": "1.0.6", 690 | "debug": "2.6.9", 691 | "depd": "~1.1.2", 692 | "encodeurl": "~1.0.2", 693 | "escape-html": "~1.0.3", 694 | "etag": "~1.8.1", 695 | "finalhandler": "~1.1.2", 696 | "fresh": "0.5.2", 697 | "merge-descriptors": "1.0.1", 698 | "methods": "~1.1.2", 699 | "on-finished": "~2.3.0", 700 | "parseurl": "~1.3.3", 701 | "path-to-regexp": "0.1.7", 702 | "proxy-addr": "~2.0.5", 703 | "qs": "6.7.0", 704 | "range-parser": "~1.2.1", 705 | "safe-buffer": "5.1.2", 706 | "send": "0.17.1", 707 | "serve-static": "1.14.1", 708 | "setprototypeof": "1.1.1", 709 | "statuses": "~1.5.0", 710 | "type-is": "~1.6.18", 711 | "utils-merge": "1.0.1", 712 | "vary": "~1.1.2" 713 | } 714 | }, 715 | "fill-range": { 716 | "version": "7.0.1", 717 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 718 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 719 | "dev": true, 720 | "requires": { 721 | "to-regex-range": "^5.0.1" 722 | } 723 | }, 724 | "finalhandler": { 725 | "version": "1.1.2", 726 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 727 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 728 | "requires": { 729 | "debug": "2.6.9", 730 | "encodeurl": "~1.0.2", 731 | "escape-html": "~1.0.3", 732 | "on-finished": "~2.3.0", 733 | "parseurl": "~1.3.3", 734 | "statuses": "~1.5.0", 735 | "unpipe": "~1.0.0" 736 | } 737 | }, 738 | "forwarded": { 739 | "version": "0.1.2", 740 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", 741 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" 742 | }, 743 | "fresh": { 744 | "version": "0.5.2", 745 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 746 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 747 | }, 748 | "fsevents": { 749 | "version": "2.3.2", 750 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 751 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 752 | "dev": true, 753 | "optional": true 754 | }, 755 | "get-stream": { 756 | "version": "4.1.0", 757 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 758 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", 759 | "dev": true, 760 | "requires": { 761 | "pump": "^3.0.0" 762 | } 763 | }, 764 | "glob-parent": { 765 | "version": "5.1.2", 766 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 767 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 768 | "dev": true, 769 | "requires": { 770 | "is-glob": "^4.0.1" 771 | } 772 | }, 773 | "global-dirs": { 774 | "version": "2.1.0", 775 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", 776 | "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", 777 | "dev": true, 778 | "requires": { 779 | "ini": "1.3.7" 780 | } 781 | }, 782 | "got": { 783 | "version": "9.6.0", 784 | "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", 785 | "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", 786 | "dev": true, 787 | "requires": { 788 | "@sindresorhus/is": "^0.14.0", 789 | "@szmarczak/http-timer": "^1.1.2", 790 | "cacheable-request": "^6.0.0", 791 | "decompress-response": "^3.3.0", 792 | "duplexer3": "^0.1.4", 793 | "get-stream": "^4.1.0", 794 | "lowercase-keys": "^1.0.1", 795 | "mimic-response": "^1.0.1", 796 | "p-cancelable": "^1.0.0", 797 | "to-readable-stream": "^1.0.0", 798 | "url-parse-lax": "^3.0.0" 799 | } 800 | }, 801 | "graceful-fs": { 802 | "version": "4.2.6", 803 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", 804 | "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", 805 | "dev": true 806 | }, 807 | "has-binary2": { 808 | "version": "1.0.3", 809 | "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", 810 | "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", 811 | "requires": { 812 | "isarray": "2.0.1" 813 | }, 814 | "dependencies": { 815 | "isarray": { 816 | "version": "2.0.1", 817 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", 818 | "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" 819 | } 820 | } 821 | }, 822 | "has-cors": { 823 | "version": "1.1.0", 824 | "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", 825 | "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" 826 | }, 827 | "has-flag": { 828 | "version": "3.0.0", 829 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 830 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 831 | "dev": true 832 | }, 833 | "has-yarn": { 834 | "version": "2.1.0", 835 | "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", 836 | "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", 837 | "dev": true 838 | }, 839 | "http-cache-semantics": { 840 | "version": "4.1.0", 841 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", 842 | "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", 843 | "dev": true 844 | }, 845 | "http-errors": { 846 | "version": "1.7.2", 847 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", 848 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", 849 | "requires": { 850 | "depd": "~1.1.2", 851 | "inherits": "2.0.3", 852 | "setprototypeof": "1.1.1", 853 | "statuses": ">= 1.5.0 < 2", 854 | "toidentifier": "1.0.0" 855 | } 856 | }, 857 | "iconv-lite": { 858 | "version": "0.4.24", 859 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 860 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 861 | "requires": { 862 | "safer-buffer": ">= 2.1.2 < 3" 863 | } 864 | }, 865 | "ignore-by-default": { 866 | "version": "1.0.1", 867 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", 868 | "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", 869 | "dev": true 870 | }, 871 | "import-lazy": { 872 | "version": "2.1.0", 873 | "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", 874 | "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", 875 | "dev": true 876 | }, 877 | "imurmurhash": { 878 | "version": "0.1.4", 879 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 880 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 881 | "dev": true 882 | }, 883 | "indexof": { 884 | "version": "0.0.1", 885 | "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", 886 | "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" 887 | }, 888 | "inherits": { 889 | "version": "2.0.3", 890 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 891 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 892 | }, 893 | "ini": { 894 | "version": "1.3.7", 895 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", 896 | "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", 897 | "dev": true 898 | }, 899 | "ipaddr.js": { 900 | "version": "1.9.1", 901 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 902 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 903 | }, 904 | "is-binary-path": { 905 | "version": "2.1.0", 906 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 907 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 908 | "dev": true, 909 | "requires": { 910 | "binary-extensions": "^2.0.0" 911 | } 912 | }, 913 | "is-ci": { 914 | "version": "2.0.0", 915 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", 916 | "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", 917 | "dev": true, 918 | "requires": { 919 | "ci-info": "^2.0.0" 920 | } 921 | }, 922 | "is-extglob": { 923 | "version": "2.1.1", 924 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 925 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 926 | "dev": true 927 | }, 928 | "is-fullwidth-code-point": { 929 | "version": "2.0.0", 930 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 931 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 932 | "dev": true 933 | }, 934 | "is-glob": { 935 | "version": "4.0.1", 936 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 937 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 938 | "dev": true, 939 | "requires": { 940 | "is-extglob": "^2.1.1" 941 | } 942 | }, 943 | "is-installed-globally": { 944 | "version": "0.3.2", 945 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", 946 | "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", 947 | "dev": true, 948 | "requires": { 949 | "global-dirs": "^2.0.1", 950 | "is-path-inside": "^3.0.1" 951 | } 952 | }, 953 | "is-npm": { 954 | "version": "4.0.0", 955 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", 956 | "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", 957 | "dev": true 958 | }, 959 | "is-number": { 960 | "version": "7.0.0", 961 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 962 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 963 | "dev": true 964 | }, 965 | "is-obj": { 966 | "version": "2.0.0", 967 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", 968 | "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", 969 | "dev": true 970 | }, 971 | "is-path-inside": { 972 | "version": "3.0.3", 973 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", 974 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", 975 | "dev": true 976 | }, 977 | "is-typedarray": { 978 | "version": "1.0.0", 979 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 980 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 981 | "dev": true 982 | }, 983 | "is-yarn-global": { 984 | "version": "0.3.0", 985 | "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", 986 | "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", 987 | "dev": true 988 | }, 989 | "isarray": { 990 | "version": "1.0.0", 991 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 992 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 993 | }, 994 | "json-buffer": { 995 | "version": "3.0.0", 996 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", 997 | "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", 998 | "dev": true 999 | }, 1000 | "json5": { 1001 | "version": "2.2.0", 1002 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", 1003 | "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", 1004 | "requires": { 1005 | "minimist": "^1.2.5" 1006 | } 1007 | }, 1008 | "jsonwebtoken": { 1009 | "version": "8.5.1", 1010 | "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", 1011 | "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", 1012 | "requires": { 1013 | "jws": "^3.2.2", 1014 | "lodash.includes": "^4.3.0", 1015 | "lodash.isboolean": "^3.0.3", 1016 | "lodash.isinteger": "^4.0.4", 1017 | "lodash.isnumber": "^3.0.3", 1018 | "lodash.isplainobject": "^4.0.6", 1019 | "lodash.isstring": "^4.0.1", 1020 | "lodash.once": "^4.0.0", 1021 | "ms": "^2.1.1", 1022 | "semver": "^5.6.0" 1023 | }, 1024 | "dependencies": { 1025 | "ms": { 1026 | "version": "2.1.3", 1027 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1028 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 1029 | } 1030 | } 1031 | }, 1032 | "jwa": { 1033 | "version": "1.4.1", 1034 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", 1035 | "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", 1036 | "requires": { 1037 | "buffer-equal-constant-time": "1.0.1", 1038 | "ecdsa-sig-formatter": "1.0.11", 1039 | "safe-buffer": "^5.0.1" 1040 | } 1041 | }, 1042 | "jws": { 1043 | "version": "3.2.2", 1044 | "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", 1045 | "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", 1046 | "requires": { 1047 | "jwa": "^1.4.1", 1048 | "safe-buffer": "^5.0.1" 1049 | } 1050 | }, 1051 | "kareem": { 1052 | "version": "2.3.2", 1053 | "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz", 1054 | "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" 1055 | }, 1056 | "keyv": { 1057 | "version": "3.1.0", 1058 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", 1059 | "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", 1060 | "dev": true, 1061 | "requires": { 1062 | "json-buffer": "3.0.0" 1063 | } 1064 | }, 1065 | "latest-version": { 1066 | "version": "5.1.0", 1067 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", 1068 | "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", 1069 | "dev": true, 1070 | "requires": { 1071 | "package-json": "^6.3.0" 1072 | } 1073 | }, 1074 | "lodash.includes": { 1075 | "version": "4.3.0", 1076 | "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", 1077 | "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" 1078 | }, 1079 | "lodash.isboolean": { 1080 | "version": "3.0.3", 1081 | "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", 1082 | "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" 1083 | }, 1084 | "lodash.isinteger": { 1085 | "version": "4.0.4", 1086 | "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", 1087 | "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" 1088 | }, 1089 | "lodash.isnumber": { 1090 | "version": "3.0.3", 1091 | "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", 1092 | "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" 1093 | }, 1094 | "lodash.isplainobject": { 1095 | "version": "4.0.6", 1096 | "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", 1097 | "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" 1098 | }, 1099 | "lodash.isstring": { 1100 | "version": "4.0.1", 1101 | "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", 1102 | "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" 1103 | }, 1104 | "lodash.once": { 1105 | "version": "4.1.1", 1106 | "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", 1107 | "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" 1108 | }, 1109 | "lowercase-keys": { 1110 | "version": "1.0.1", 1111 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", 1112 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", 1113 | "dev": true 1114 | }, 1115 | "make-dir": { 1116 | "version": "3.1.0", 1117 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", 1118 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", 1119 | "dev": true, 1120 | "requires": { 1121 | "semver": "^6.0.0" 1122 | }, 1123 | "dependencies": { 1124 | "semver": { 1125 | "version": "6.3.0", 1126 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 1127 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 1128 | "dev": true 1129 | } 1130 | } 1131 | }, 1132 | "media-typer": { 1133 | "version": "0.3.0", 1134 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 1135 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 1136 | }, 1137 | "memory-pager": { 1138 | "version": "1.5.0", 1139 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", 1140 | "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", 1141 | "optional": true 1142 | }, 1143 | "merge-descriptors": { 1144 | "version": "1.0.1", 1145 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 1146 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 1147 | }, 1148 | "methods": { 1149 | "version": "1.1.2", 1150 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 1151 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 1152 | }, 1153 | "mime": { 1154 | "version": "1.6.0", 1155 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 1156 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 1157 | }, 1158 | "mime-db": { 1159 | "version": "1.47.0", 1160 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", 1161 | "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==" 1162 | }, 1163 | "mime-types": { 1164 | "version": "2.1.30", 1165 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", 1166 | "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", 1167 | "requires": { 1168 | "mime-db": "1.47.0" 1169 | } 1170 | }, 1171 | "mimic-response": { 1172 | "version": "1.0.1", 1173 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", 1174 | "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", 1175 | "dev": true 1176 | }, 1177 | "minimatch": { 1178 | "version": "3.0.4", 1179 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1180 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1181 | "dev": true, 1182 | "requires": { 1183 | "brace-expansion": "^1.1.7" 1184 | } 1185 | }, 1186 | "minimist": { 1187 | "version": "1.2.5", 1188 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 1189 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" 1190 | }, 1191 | "mongodb": { 1192 | "version": "3.6.6", 1193 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.6.tgz", 1194 | "integrity": "sha512-WlirMiuV1UPbej5JeCMqE93JRfZ/ZzqE7nJTwP85XzjAF4rRSeq2bGCb1cjfoHLOF06+HxADaPGqT0g3SbVT1w==", 1195 | "requires": { 1196 | "bl": "^2.2.1", 1197 | "bson": "^1.1.4", 1198 | "denque": "^1.4.1", 1199 | "optional-require": "^1.0.2", 1200 | "safe-buffer": "^5.1.2", 1201 | "saslprep": "^1.0.0" 1202 | } 1203 | }, 1204 | "mongoose": { 1205 | "version": "5.12.9", 1206 | "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.12.9.tgz", 1207 | "integrity": "sha512-ZSDjW15DmUbHQcZ2PqoXsJeYnpYipISi6QJH/XHR9dcSg3IRNCa86apcTptBux03/YBPiSZlKNYUNDx7iuMWoA==", 1208 | "requires": { 1209 | "@types/mongodb": "^3.5.27", 1210 | "bson": "^1.1.4", 1211 | "kareem": "2.3.2", 1212 | "mongodb": "3.6.6", 1213 | "mongoose-legacy-pluralize": "1.0.2", 1214 | "mpath": "0.8.3", 1215 | "mquery": "3.2.5", 1216 | "ms": "2.1.2", 1217 | "regexp-clone": "1.0.0", 1218 | "safe-buffer": "5.2.1", 1219 | "sift": "13.5.2", 1220 | "sliced": "1.0.1" 1221 | }, 1222 | "dependencies": { 1223 | "ms": { 1224 | "version": "2.1.2", 1225 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1226 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 1227 | }, 1228 | "safe-buffer": { 1229 | "version": "5.2.1", 1230 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1231 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 1232 | } 1233 | } 1234 | }, 1235 | "mongoose-legacy-pluralize": { 1236 | "version": "1.0.2", 1237 | "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", 1238 | "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" 1239 | }, 1240 | "morgan": { 1241 | "version": "1.10.0", 1242 | "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", 1243 | "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", 1244 | "dev": true, 1245 | "requires": { 1246 | "basic-auth": "~2.0.1", 1247 | "debug": "2.6.9", 1248 | "depd": "~2.0.0", 1249 | "on-finished": "~2.3.0", 1250 | "on-headers": "~1.0.2" 1251 | }, 1252 | "dependencies": { 1253 | "depd": { 1254 | "version": "2.0.0", 1255 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", 1256 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", 1257 | "dev": true 1258 | } 1259 | } 1260 | }, 1261 | "mpath": { 1262 | "version": "0.8.3", 1263 | "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz", 1264 | "integrity": "sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA==" 1265 | }, 1266 | "mquery": { 1267 | "version": "3.2.5", 1268 | "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.5.tgz", 1269 | "integrity": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==", 1270 | "requires": { 1271 | "bluebird": "3.5.1", 1272 | "debug": "3.1.0", 1273 | "regexp-clone": "^1.0.0", 1274 | "safe-buffer": "5.1.2", 1275 | "sliced": "1.0.1" 1276 | }, 1277 | "dependencies": { 1278 | "debug": { 1279 | "version": "3.1.0", 1280 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 1281 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 1282 | "requires": { 1283 | "ms": "2.0.0" 1284 | } 1285 | } 1286 | } 1287 | }, 1288 | "ms": { 1289 | "version": "2.0.0", 1290 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1291 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 1292 | }, 1293 | "negotiator": { 1294 | "version": "0.6.2", 1295 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 1296 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" 1297 | }, 1298 | "nodemon": { 1299 | "version": "2.0.7", 1300 | "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz", 1301 | "integrity": "sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==", 1302 | "dev": true, 1303 | "requires": { 1304 | "chokidar": "^3.2.2", 1305 | "debug": "^3.2.6", 1306 | "ignore-by-default": "^1.0.1", 1307 | "minimatch": "^3.0.4", 1308 | "pstree.remy": "^1.1.7", 1309 | "semver": "^5.7.1", 1310 | "supports-color": "^5.5.0", 1311 | "touch": "^3.1.0", 1312 | "undefsafe": "^2.0.3", 1313 | "update-notifier": "^4.1.0" 1314 | }, 1315 | "dependencies": { 1316 | "debug": { 1317 | "version": "3.2.7", 1318 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 1319 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 1320 | "dev": true, 1321 | "requires": { 1322 | "ms": "^2.1.1" 1323 | } 1324 | }, 1325 | "ms": { 1326 | "version": "2.1.3", 1327 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1328 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 1329 | "dev": true 1330 | } 1331 | } 1332 | }, 1333 | "nopt": { 1334 | "version": "1.0.10", 1335 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", 1336 | "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", 1337 | "dev": true, 1338 | "requires": { 1339 | "abbrev": "1" 1340 | } 1341 | }, 1342 | "normalize-path": { 1343 | "version": "3.0.0", 1344 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1345 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1346 | "dev": true 1347 | }, 1348 | "normalize-url": { 1349 | "version": "4.5.0", 1350 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", 1351 | "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", 1352 | "dev": true 1353 | }, 1354 | "object-assign": { 1355 | "version": "4.1.1", 1356 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1357 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 1358 | }, 1359 | "object-component": { 1360 | "version": "0.0.3", 1361 | "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", 1362 | "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" 1363 | }, 1364 | "on-finished": { 1365 | "version": "2.3.0", 1366 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 1367 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 1368 | "requires": { 1369 | "ee-first": "1.1.1" 1370 | } 1371 | }, 1372 | "on-headers": { 1373 | "version": "1.0.2", 1374 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", 1375 | "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", 1376 | "dev": true 1377 | }, 1378 | "once": { 1379 | "version": "1.4.0", 1380 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1381 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1382 | "dev": true, 1383 | "requires": { 1384 | "wrappy": "1" 1385 | } 1386 | }, 1387 | "optional-require": { 1388 | "version": "1.0.3", 1389 | "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.0.3.tgz", 1390 | "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==" 1391 | }, 1392 | "p-cancelable": { 1393 | "version": "1.1.0", 1394 | "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", 1395 | "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", 1396 | "dev": true 1397 | }, 1398 | "package-json": { 1399 | "version": "6.5.0", 1400 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", 1401 | "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", 1402 | "dev": true, 1403 | "requires": { 1404 | "got": "^9.6.0", 1405 | "registry-auth-token": "^4.0.0", 1406 | "registry-url": "^5.0.0", 1407 | "semver": "^6.2.0" 1408 | }, 1409 | "dependencies": { 1410 | "semver": { 1411 | "version": "6.3.0", 1412 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 1413 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 1414 | "dev": true 1415 | } 1416 | } 1417 | }, 1418 | "parseqs": { 1419 | "version": "0.0.5", 1420 | "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", 1421 | "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", 1422 | "requires": { 1423 | "better-assert": "~1.0.0" 1424 | } 1425 | }, 1426 | "parseuri": { 1427 | "version": "0.0.5", 1428 | "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", 1429 | "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", 1430 | "requires": { 1431 | "better-assert": "~1.0.0" 1432 | } 1433 | }, 1434 | "parseurl": { 1435 | "version": "1.3.3", 1436 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 1437 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 1438 | }, 1439 | "path-to-regexp": { 1440 | "version": "0.1.7", 1441 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 1442 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 1443 | }, 1444 | "picomatch": { 1445 | "version": "2.2.3", 1446 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", 1447 | "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", 1448 | "dev": true 1449 | }, 1450 | "prepend-http": { 1451 | "version": "2.0.0", 1452 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", 1453 | "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", 1454 | "dev": true 1455 | }, 1456 | "process-nextick-args": { 1457 | "version": "2.0.1", 1458 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 1459 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 1460 | }, 1461 | "proxy-addr": { 1462 | "version": "2.0.6", 1463 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", 1464 | "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", 1465 | "requires": { 1466 | "forwarded": "~0.1.2", 1467 | "ipaddr.js": "1.9.1" 1468 | } 1469 | }, 1470 | "pstree.remy": { 1471 | "version": "1.1.8", 1472 | "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", 1473 | "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", 1474 | "dev": true 1475 | }, 1476 | "pump": { 1477 | "version": "3.0.0", 1478 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 1479 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 1480 | "dev": true, 1481 | "requires": { 1482 | "end-of-stream": "^1.1.0", 1483 | "once": "^1.3.1" 1484 | } 1485 | }, 1486 | "pupa": { 1487 | "version": "2.1.1", 1488 | "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", 1489 | "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", 1490 | "dev": true, 1491 | "requires": { 1492 | "escape-goat": "^2.0.0" 1493 | } 1494 | }, 1495 | "qs": { 1496 | "version": "6.7.0", 1497 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 1498 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" 1499 | }, 1500 | "range-parser": { 1501 | "version": "1.2.1", 1502 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 1503 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 1504 | }, 1505 | "raw-body": { 1506 | "version": "2.4.0", 1507 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 1508 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", 1509 | "requires": { 1510 | "bytes": "3.1.0", 1511 | "http-errors": "1.7.2", 1512 | "iconv-lite": "0.4.24", 1513 | "unpipe": "1.0.0" 1514 | } 1515 | }, 1516 | "rc": { 1517 | "version": "1.2.8", 1518 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", 1519 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", 1520 | "dev": true, 1521 | "requires": { 1522 | "deep-extend": "^0.6.0", 1523 | "ini": "~1.3.0", 1524 | "minimist": "^1.2.0", 1525 | "strip-json-comments": "~2.0.1" 1526 | } 1527 | }, 1528 | "readable-stream": { 1529 | "version": "2.3.7", 1530 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 1531 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 1532 | "requires": { 1533 | "core-util-is": "~1.0.0", 1534 | "inherits": "~2.0.3", 1535 | "isarray": "~1.0.0", 1536 | "process-nextick-args": "~2.0.0", 1537 | "safe-buffer": "~5.1.1", 1538 | "string_decoder": "~1.1.1", 1539 | "util-deprecate": "~1.0.1" 1540 | } 1541 | }, 1542 | "readdirp": { 1543 | "version": "3.5.0", 1544 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", 1545 | "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", 1546 | "dev": true, 1547 | "requires": { 1548 | "picomatch": "^2.2.1" 1549 | } 1550 | }, 1551 | "regexp-clone": { 1552 | "version": "1.0.0", 1553 | "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", 1554 | "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" 1555 | }, 1556 | "registry-auth-token": { 1557 | "version": "4.2.1", 1558 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", 1559 | "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", 1560 | "dev": true, 1561 | "requires": { 1562 | "rc": "^1.2.8" 1563 | } 1564 | }, 1565 | "registry-url": { 1566 | "version": "5.1.0", 1567 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", 1568 | "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", 1569 | "dev": true, 1570 | "requires": { 1571 | "rc": "^1.2.8" 1572 | } 1573 | }, 1574 | "responselike": { 1575 | "version": "1.0.2", 1576 | "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", 1577 | "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", 1578 | "dev": true, 1579 | "requires": { 1580 | "lowercase-keys": "^1.0.0" 1581 | } 1582 | }, 1583 | "safe-buffer": { 1584 | "version": "5.1.2", 1585 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1586 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1587 | }, 1588 | "safer-buffer": { 1589 | "version": "2.1.2", 1590 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1591 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1592 | }, 1593 | "saslprep": { 1594 | "version": "1.0.3", 1595 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", 1596 | "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", 1597 | "optional": true, 1598 | "requires": { 1599 | "sparse-bitfield": "^3.0.3" 1600 | } 1601 | }, 1602 | "semver": { 1603 | "version": "5.7.1", 1604 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 1605 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 1606 | }, 1607 | "semver-diff": { 1608 | "version": "3.1.1", 1609 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", 1610 | "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", 1611 | "dev": true, 1612 | "requires": { 1613 | "semver": "^6.3.0" 1614 | }, 1615 | "dependencies": { 1616 | "semver": { 1617 | "version": "6.3.0", 1618 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 1619 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 1620 | "dev": true 1621 | } 1622 | } 1623 | }, 1624 | "send": { 1625 | "version": "0.17.1", 1626 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", 1627 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", 1628 | "requires": { 1629 | "debug": "2.6.9", 1630 | "depd": "~1.1.2", 1631 | "destroy": "~1.0.4", 1632 | "encodeurl": "~1.0.2", 1633 | "escape-html": "~1.0.3", 1634 | "etag": "~1.8.1", 1635 | "fresh": "0.5.2", 1636 | "http-errors": "~1.7.2", 1637 | "mime": "1.6.0", 1638 | "ms": "2.1.1", 1639 | "on-finished": "~2.3.0", 1640 | "range-parser": "~1.2.1", 1641 | "statuses": "~1.5.0" 1642 | }, 1643 | "dependencies": { 1644 | "ms": { 1645 | "version": "2.1.1", 1646 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 1647 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 1648 | } 1649 | } 1650 | }, 1651 | "serve-static": { 1652 | "version": "1.14.1", 1653 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 1654 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", 1655 | "requires": { 1656 | "encodeurl": "~1.0.2", 1657 | "escape-html": "~1.0.3", 1658 | "parseurl": "~1.3.3", 1659 | "send": "0.17.1" 1660 | } 1661 | }, 1662 | "setprototypeof": { 1663 | "version": "1.1.1", 1664 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 1665 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 1666 | }, 1667 | "sift": { 1668 | "version": "13.5.2", 1669 | "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz", 1670 | "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" 1671 | }, 1672 | "signal-exit": { 1673 | "version": "3.0.3", 1674 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 1675 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", 1676 | "dev": true 1677 | }, 1678 | "sliced": { 1679 | "version": "1.0.1", 1680 | "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", 1681 | "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" 1682 | }, 1683 | "socket.io": { 1684 | "version": "2.3.0", 1685 | "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", 1686 | "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", 1687 | "requires": { 1688 | "debug": "~4.1.0", 1689 | "engine.io": "~3.4.0", 1690 | "has-binary2": "~1.0.2", 1691 | "socket.io-adapter": "~1.1.0", 1692 | "socket.io-client": "2.3.0", 1693 | "socket.io-parser": "~3.4.0" 1694 | }, 1695 | "dependencies": { 1696 | "debug": { 1697 | "version": "4.1.1", 1698 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 1699 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 1700 | "requires": { 1701 | "ms": "^2.1.1" 1702 | } 1703 | }, 1704 | "ms": { 1705 | "version": "2.1.3", 1706 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1707 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 1708 | } 1709 | } 1710 | }, 1711 | "socket.io-adapter": { 1712 | "version": "1.1.2", 1713 | "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", 1714 | "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==" 1715 | }, 1716 | "socket.io-client": { 1717 | "version": "2.3.0", 1718 | "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", 1719 | "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", 1720 | "requires": { 1721 | "backo2": "1.0.2", 1722 | "base64-arraybuffer": "0.1.5", 1723 | "component-bind": "1.0.0", 1724 | "component-emitter": "1.2.1", 1725 | "debug": "~4.1.0", 1726 | "engine.io-client": "~3.4.0", 1727 | "has-binary2": "~1.0.2", 1728 | "has-cors": "1.1.0", 1729 | "indexof": "0.0.1", 1730 | "object-component": "0.0.3", 1731 | "parseqs": "0.0.5", 1732 | "parseuri": "0.0.5", 1733 | "socket.io-parser": "~3.3.0", 1734 | "to-array": "0.1.4" 1735 | }, 1736 | "dependencies": { 1737 | "base64-arraybuffer": { 1738 | "version": "0.1.5", 1739 | "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", 1740 | "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" 1741 | }, 1742 | "debug": { 1743 | "version": "4.1.1", 1744 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 1745 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 1746 | "requires": { 1747 | "ms": "^2.1.1" 1748 | } 1749 | }, 1750 | "isarray": { 1751 | "version": "2.0.1", 1752 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", 1753 | "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" 1754 | }, 1755 | "ms": { 1756 | "version": "2.1.3", 1757 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1758 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 1759 | }, 1760 | "socket.io-parser": { 1761 | "version": "3.3.2", 1762 | "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz", 1763 | "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==", 1764 | "requires": { 1765 | "component-emitter": "~1.3.0", 1766 | "debug": "~3.1.0", 1767 | "isarray": "2.0.1" 1768 | }, 1769 | "dependencies": { 1770 | "component-emitter": { 1771 | "version": "1.3.0", 1772 | "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", 1773 | "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" 1774 | }, 1775 | "debug": { 1776 | "version": "3.1.0", 1777 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 1778 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 1779 | "requires": { 1780 | "ms": "2.0.0" 1781 | } 1782 | }, 1783 | "ms": { 1784 | "version": "2.0.0", 1785 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1786 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 1787 | } 1788 | } 1789 | } 1790 | } 1791 | }, 1792 | "socket.io-parser": { 1793 | "version": "3.4.1", 1794 | "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", 1795 | "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", 1796 | "requires": { 1797 | "component-emitter": "1.2.1", 1798 | "debug": "~4.1.0", 1799 | "isarray": "2.0.1" 1800 | }, 1801 | "dependencies": { 1802 | "debug": { 1803 | "version": "4.1.1", 1804 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 1805 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 1806 | "requires": { 1807 | "ms": "^2.1.1" 1808 | } 1809 | }, 1810 | "isarray": { 1811 | "version": "2.0.1", 1812 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", 1813 | "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" 1814 | }, 1815 | "ms": { 1816 | "version": "2.1.3", 1817 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1818 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 1819 | } 1820 | } 1821 | }, 1822 | "sparse-bitfield": { 1823 | "version": "3.0.3", 1824 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", 1825 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", 1826 | "optional": true, 1827 | "requires": { 1828 | "memory-pager": "^1.0.2" 1829 | } 1830 | }, 1831 | "statuses": { 1832 | "version": "1.5.0", 1833 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 1834 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 1835 | }, 1836 | "string-width": { 1837 | "version": "4.2.2", 1838 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", 1839 | "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", 1840 | "dev": true, 1841 | "requires": { 1842 | "emoji-regex": "^8.0.0", 1843 | "is-fullwidth-code-point": "^3.0.0", 1844 | "strip-ansi": "^6.0.0" 1845 | }, 1846 | "dependencies": { 1847 | "ansi-regex": { 1848 | "version": "5.0.0", 1849 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 1850 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", 1851 | "dev": true 1852 | }, 1853 | "emoji-regex": { 1854 | "version": "8.0.0", 1855 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 1856 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 1857 | "dev": true 1858 | }, 1859 | "is-fullwidth-code-point": { 1860 | "version": "3.0.0", 1861 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1862 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 1863 | "dev": true 1864 | }, 1865 | "strip-ansi": { 1866 | "version": "6.0.0", 1867 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 1868 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 1869 | "dev": true, 1870 | "requires": { 1871 | "ansi-regex": "^5.0.0" 1872 | } 1873 | } 1874 | } 1875 | }, 1876 | "string_decoder": { 1877 | "version": "1.1.1", 1878 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1879 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1880 | "requires": { 1881 | "safe-buffer": "~5.1.0" 1882 | } 1883 | }, 1884 | "strip-ansi": { 1885 | "version": "5.2.0", 1886 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 1887 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 1888 | "dev": true, 1889 | "requires": { 1890 | "ansi-regex": "^4.1.0" 1891 | } 1892 | }, 1893 | "strip-json-comments": { 1894 | "version": "2.0.1", 1895 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 1896 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 1897 | "dev": true 1898 | }, 1899 | "supports-color": { 1900 | "version": "5.5.0", 1901 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1902 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1903 | "dev": true, 1904 | "requires": { 1905 | "has-flag": "^3.0.0" 1906 | } 1907 | }, 1908 | "term-size": { 1909 | "version": "2.2.1", 1910 | "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", 1911 | "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", 1912 | "dev": true 1913 | }, 1914 | "to-array": { 1915 | "version": "0.1.4", 1916 | "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", 1917 | "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" 1918 | }, 1919 | "to-readable-stream": { 1920 | "version": "1.0.0", 1921 | "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", 1922 | "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", 1923 | "dev": true 1924 | }, 1925 | "to-regex-range": { 1926 | "version": "5.0.1", 1927 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1928 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1929 | "dev": true, 1930 | "requires": { 1931 | "is-number": "^7.0.0" 1932 | } 1933 | }, 1934 | "toidentifier": { 1935 | "version": "1.0.0", 1936 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 1937 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" 1938 | }, 1939 | "touch": { 1940 | "version": "3.1.0", 1941 | "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", 1942 | "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", 1943 | "dev": true, 1944 | "requires": { 1945 | "nopt": "~1.0.10" 1946 | } 1947 | }, 1948 | "type-fest": { 1949 | "version": "0.8.1", 1950 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", 1951 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", 1952 | "dev": true 1953 | }, 1954 | "type-is": { 1955 | "version": "1.6.18", 1956 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 1957 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 1958 | "requires": { 1959 | "media-typer": "0.3.0", 1960 | "mime-types": "~2.1.24" 1961 | } 1962 | }, 1963 | "typedarray-to-buffer": { 1964 | "version": "3.1.5", 1965 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", 1966 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", 1967 | "dev": true, 1968 | "requires": { 1969 | "is-typedarray": "^1.0.0" 1970 | } 1971 | }, 1972 | "undefsafe": { 1973 | "version": "2.0.3", 1974 | "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", 1975 | "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", 1976 | "dev": true, 1977 | "requires": { 1978 | "debug": "^2.2.0" 1979 | } 1980 | }, 1981 | "unique-string": { 1982 | "version": "2.0.0", 1983 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", 1984 | "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", 1985 | "dev": true, 1986 | "requires": { 1987 | "crypto-random-string": "^2.0.0" 1988 | } 1989 | }, 1990 | "unpipe": { 1991 | "version": "1.0.0", 1992 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 1993 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 1994 | }, 1995 | "update-notifier": { 1996 | "version": "4.1.3", 1997 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", 1998 | "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", 1999 | "dev": true, 2000 | "requires": { 2001 | "boxen": "^4.2.0", 2002 | "chalk": "^3.0.0", 2003 | "configstore": "^5.0.1", 2004 | "has-yarn": "^2.1.0", 2005 | "import-lazy": "^2.1.0", 2006 | "is-ci": "^2.0.0", 2007 | "is-installed-globally": "^0.3.1", 2008 | "is-npm": "^4.0.0", 2009 | "is-yarn-global": "^0.3.0", 2010 | "latest-version": "^5.0.0", 2011 | "pupa": "^2.0.1", 2012 | "semver-diff": "^3.1.1", 2013 | "xdg-basedir": "^4.0.0" 2014 | } 2015 | }, 2016 | "url-parse-lax": { 2017 | "version": "3.0.0", 2018 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", 2019 | "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", 2020 | "dev": true, 2021 | "requires": { 2022 | "prepend-http": "^2.0.0" 2023 | } 2024 | }, 2025 | "util-deprecate": { 2026 | "version": "1.0.2", 2027 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2028 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 2029 | }, 2030 | "utils-merge": { 2031 | "version": "1.0.1", 2032 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 2033 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 2034 | }, 2035 | "uuid": { 2036 | "version": "8.3.2", 2037 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", 2038 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" 2039 | }, 2040 | "vary": { 2041 | "version": "1.1.2", 2042 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 2043 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 2044 | }, 2045 | "widest-line": { 2046 | "version": "3.1.0", 2047 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", 2048 | "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", 2049 | "dev": true, 2050 | "requires": { 2051 | "string-width": "^4.0.0" 2052 | } 2053 | }, 2054 | "wrappy": { 2055 | "version": "1.0.2", 2056 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2057 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2058 | "dev": true 2059 | }, 2060 | "write-file-atomic": { 2061 | "version": "3.0.3", 2062 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", 2063 | "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", 2064 | "dev": true, 2065 | "requires": { 2066 | "imurmurhash": "^0.1.4", 2067 | "is-typedarray": "^1.0.0", 2068 | "signal-exit": "^3.0.2", 2069 | "typedarray-to-buffer": "^3.1.5" 2070 | } 2071 | }, 2072 | "ws": { 2073 | "version": "7.4.5", 2074 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", 2075 | "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==" 2076 | }, 2077 | "xdg-basedir": { 2078 | "version": "4.0.0", 2079 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", 2080 | "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", 2081 | "dev": true 2082 | }, 2083 | "xmlhttprequest-ssl": { 2084 | "version": "1.5.5", 2085 | "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", 2086 | "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" 2087 | }, 2088 | "yeast": { 2089 | "version": "0.1.2", 2090 | "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", 2091 | "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" 2092 | } 2093 | } 2094 | } 2095 | -------------------------------------------------------------------------------- /node__signal/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "node__signal", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "server": "nodemon server" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "bcryptjs": "^2.4.3", 15 | "config": "^3.3.6", 16 | "cors": "^2.8.5", 17 | "dotenv": "^9.0.2", 18 | "express": "^4.17.1", 19 | "jsonwebtoken": "^8.5.1", 20 | "mongodb": "^3.6.6", 21 | "mongoose": "^5.12.9", 22 | "socket.io": "^2.3.0", 23 | "uuid": "^8.3.2" 24 | }, 25 | "devDependencies": { 26 | "morgan": "^1.10.0", 27 | "nodemon": "^2.0.7" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /node__signal/routes/login.js: -------------------------------------------------------------------------------- 1 | const express = require("express"); 2 | const User = require("../schema/User"); 3 | const bcryptjs = require("bcryptjs"); 4 | const router = express.Router(); 5 | const jwt = require("jsonwebtoken"); 6 | const config = require("config"); 7 | const auth = require("../middleware/auth"); 8 | 9 | router.post("/", (req, res) => { 10 | }); 11 | 12 | // Load a user 13 | router.get("/user", auth, (req, res) => { 14 | }); 15 | 16 | module.exports = router; 17 | -------------------------------------------------------------------------------- /node__signal/routes/register.js: -------------------------------------------------------------------------------- 1 | const express = require("express"); 2 | const User = require("../schema/User"); 3 | const bcryptjs = require("bcryptjs"); 4 | const router = express.Router(); 5 | const jwt = require("jsonwebtoken"); 6 | const config = require("config"); 7 | 8 | //* Post Request *// 9 | router.post("/", (req, res) => { 10 | }); 11 | 12 | module.exports = router; 13 | -------------------------------------------------------------------------------- /node__signal/schema/Chats.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | const Schema = mongoose.Schema; 3 | 4 | const ChatsSchema = new Schema({ 5 | 6 | }); 7 | 8 | module.exports = Chats = mongoose.model("chats", ChatsSchema); 9 | -------------------------------------------------------------------------------- /node__signal/schema/Messages.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | const Schema = mongoose.Schema; 3 | 4 | const MessagesSchema = new Schema({ 5 | 6 | }); 7 | 8 | module.exports = Messages = mongoose.model("messages", MessagesSchema); 9 | -------------------------------------------------------------------------------- /node__signal/schema/User.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | const Schema = mongoose.Schema; 3 | 4 | const UserSchema = new Schema({ 5 | 6 | }); 7 | 8 | module.exports = User = mongoose.model("user", UserSchema); 9 | -------------------------------------------------------------------------------- /node__signal/server.js: -------------------------------------------------------------------------------- 1 | const express = require("express"); 2 | const mongoose = require("mongoose"); 3 | const config = require("config"); 4 | const morgan = require("morgan"); 5 | const dotenv = require("dotenv"); 6 | const http = require("http"); 7 | const socketio = require("socket.io"); 8 | 9 | const app = express(); 10 | 11 | const server = http.createServer(app); 12 | const io = socketio(server).sockets; 13 | 14 | // * BorderParser Middleware 15 | app.use(express.json()); 16 | 17 | // * Load Env 18 | dotenv.config({ path: "./config.env" }); 19 | 20 | // * Connect DB 21 | const db = config.get("mongoURI"); 22 | mongoose 23 | .connect(db, { 24 | useNewUrlParser: true, 25 | useCreateIndex: true, 26 | useUnifiedTopology: true, 27 | useFindAndModify: false, 28 | }) 29 | .then(() => console.log("Mongodb is connected...")) 30 | .catch((err) => console.log(err)); 31 | 32 | //* Log route actions 33 | if (process.env.NODE_ENV === "development") { 34 | app.use(morgan("dev")); 35 | } 36 | 37 | //* Use Routes 38 | // * Auth Routes *// 39 | 40 | /** Chatroom routes */ 41 | 42 | const port = process.env.PORT || 5000; 43 | 44 | server.listen(port, () => console.log(`Server started on port ${port}`)); 45 | 46 | --------------------------------------------------------------------------------