id: 1 unit: function startDataListeners() file: stripe/public/javascript/app.js start line: 92 end line: 177 size: 73 LOC McCabe index: 13 number of parameters: 0 id: 2 unit: Demo.prototype.displayAllUsers = function() file: fcm-notifications/public/main.js start line: 80 end line: 136 size: 46 LOC McCabe index: 4 number of parameters: 0 id: 3 unit: function rtdb_and_local_fs_presence() file: presence-firestore/public/index.js start line: 66 end line: 114 size: 31 LOC McCabe index: 2 number of parameters: 0 id: 4 unit: async function createFirebaseAccount() file: spotify-auth/functions/index.js start line: 119 end line: 157 size: 30 LOC McCabe index: 2 number of parameters: 5 id: 5 unit: Demo.prototype.onAuthStateChanged = function() file: fcm-notifications/public/main.js start line: 43 end line: 77 size: 30 LOC McCabe index: 5 number of parameters: 1 id: 6 unit: async function createFirebaseAccount() file: linkedin-auth/functions/index.js start line: 125 end line: 163 size: 30 LOC McCabe index: 2 number of parameters: 5 id: 7 unit: Demo.prototype.handleFileSelect = function() file: exif-images/public/main.js start line: 50 end line: 85 size: 29 LOC McCabe index: 3 number of parameters: 1 id: 8 unit: Demo.prototype.onAuthStateChanged = function() file: email-confirmation/public/main.js start line: 40 end line: 67 size: 28 LOC McCabe index: 5 number of parameters: 1 id: 9 unit: function imageMagickOutputToObject() file: exif-images/functions/index.js start line: 68 end line: 93 size: 26 LOC McCabe index: 3 number of parameters: 1 id: 10 unit: function postToSlack() file: testlab-to-slack/functions/index.js start line: 5 end line: 30 size: 26 LOC McCabe index: 1 number of parameters: 2 id: 11 unit: function reportError() file: stripe/functions/index.js start line: 173 end line: 207 size: 26 LOC McCabe index: 2 number of parameters: 2 id: 12 unit: async function createFirebaseAccount() file: instagram-auth/functions/index.js start line: 128 end line: 162 size: 26 LOC McCabe index: 2 number of parameters: 4 id: 13 unit: Demo.prototype.listMessages = function() file: authenticated-json-api/public/main.js start line: 79 end line: 109 size: 25 LOC McCabe index: 4 number of parameters: 1 id: 14 unit: async function getFirebaseUser() file: fulltext-search-firestore/functions/index.js start line: 51 end line: 78 size: 25 LOC McCabe index: 6 number of parameters: 3 id: 15 unit: function getSlackmoji() file: testlab-to-slack/functions/index.js start line: 32 end line: 55 size: 24 LOC McCabe index: 10 number of parameters: 1 id: 16 unit: function authenticate() file: username-password-auth/functions/index.js start line: 103 end line: 128 size: 24 LOC McCabe index: 5 number of parameters: 2 id: 17 unit: Demo.prototype.authenticatedRequest = function() file: authenticated-json-api/public/main.js start line: 124 end line: 148 size: 21 LOC McCabe index: 3 number of parameters: 3 id: 18 unit: function searchAlgoliaAuthenticated() file: fulltext-search-firestore/public/index.js start line: 47 end line: 76 size: 21 LOC McCabe index: 1 number of parameters: 1 id: 19 unit: async function searchTypesenseAuthenticated() file: fulltext-search-firestore/public/index.js start line: 135 end line: 163 size: 21 LOC McCabe index: 1 number of parameters: 1 id: 20 unit: async function sendCouponViaFCM() file: coupon-on-purchase/functions/index.js start line: 50 end line: 76 size: 21 LOC McCabe index: 3 number of parameters: 2 id: 21 unit: async function sendHighValueCouponViaFCM() file: coupon-on-purchase/functions/index.js start line: 84 end line: 110 size: 21 LOC McCabe index: 3 number of parameters: 2 id: 22 unit: function deleteInactiveUser() file: delete-unused-accounts-cron/functions/index.js start line: 41 end line: 63 size: 21 LOC McCabe index: 2 number of parameters: 1 id: 23 unit: function search() file: fulltext-search-firestore/public/index.js start line: 78 end line: 97 size: 20 LOC McCabe index: 4 number of parameters: 1 id: 24 unit: function rtdb_presence() file: presence-firestore/public/index.js start line: 17 end line: 64 size: 20 LOC McCabe index: 2 number of parameters: 0 id: 25 unit: function Demo() file: fcm-notifications/public/main.js start line: 19 end line: 40 size: 19 LOC McCabe index: 1 number of parameters: 0 id: 26 unit: function fs_listen_online() file: presence-firestore/public/index.js start line: 125 end line: 149 size: 19 LOC McCabe index: 3 number of parameters: 0 id: 27 unit: async function searchTypesenseUnauthenticated() file: fulltext-search-firestore/public/index.js start line: 110 end line: 133 size: 18 LOC McCabe index: 1 number of parameters: 1 id: 28 unit: function Demo() file: username-password-auth/public/main.js start line: 26 end line: 46 size: 18 LOC McCabe index: 1 number of parameters: 0 id: 29 unit: Guestbook.prototype.saveMessage = function() file: text-moderation/public/main.js start line: 56 end line: 73 size: 18 LOC McCabe index: 4 number of parameters: 1 id: 30 unit: async function blurImage() file: moderate-images/functions/index.js start line: 76 end line: 103 size: 18 LOC McCabe index: 1 number of parameters: 3 id: 31 unit: amount: formatAmountForStripe() file: stripe/public/javascript/app.js start line: 251 end line: 276 size: 18 LOC McCabe index: 2 number of parameters: 2 id: 32 unit: function getTemplate() file: remote-config-diff/functions/index.js start line: 38 end line: 55 size: 18 LOC McCabe index: 1 number of parameters: 2 id: 33 unit: function Demo() file: spotify-auth/public/main.js start line: 19 end line: 38 size: 17 LOC McCabe index: 1 number of parameters: 0 id: 34 unit: req.onload = function() file: username-password-auth/public/main.js start line: 66 end line: 82 size: 17 LOC McCabe index: 5 number of parameters: 0 id: 35 unit: function Demo() file: email-confirmation/public/main.js start line: 19 end line: 38 size: 17 LOC McCabe index: 1 number of parameters: 0 id: 36 unit: function Demo() file: linkedin-auth/public/main.js start line: 19 end line: 38 size: 17 LOC McCabe index: 1 number of parameters: 0 id: 37 unit: function Guestbook() file: text-moderation/public/main.js start line: 19 end line: 50 size: 16 LOC McCabe index: 1 number of parameters: 0 id: 38 unit: Guestbook.prototype.displayMessage = function() file: text-moderation/public/main.js start line: 92 end line: 110 size: 16 LOC McCabe index: 3 number of parameters: 4 id: 39 unit: function appendPromise() file: google-sheet-sync/functions/index.js start line: 94 end line: 109 size: 16 LOC McCabe index: 2 number of parameters: 1 id: 40 unit: function Demo() file: quickstarts/email-users/public/main.js start line: 19 end line: 37 size: 16 LOC McCabe index: 1 number of parameters: 0 id: 41 unit: Demo.prototype.saveToken = function() file: fcm-notifications/public/main.js start line: 185 end line: 200 size: 16 LOC McCabe index: 4 number of parameters: 0 id: 42 unit: function Demo() file: authorized-https-endpoint/public/main.js start line: 19 end line: 37 size: 16 LOC McCabe index: 1 number of parameters: 0 id: 43 unit: function Demo() file: instagram-auth/public/main.js start line: 19 end line: 37 size: 16 LOC McCabe index: 1 number of parameters: 0 id: 44 unit: function getIdTokenFromRequest() file: template-handlebars/functions/firebaseUser.js start line: 40 end line: 57 size: 16 LOC McCabe index: 5 number of parameters: 2 id: 45 unit: $() file: authenticated-json-api/public/main.js start line: 20 end line: 35 size: 15 LOC McCabe index: 1 number of parameters: 1 id: 46 unit: function zeroDecimalCurrency() file: stripe/public/javascript/app.js start line: 291 end line: 305 size: 15 LOC McCabe index: 3 number of parameters: 2 id: 47 unit: Demo.prototype.onAuthStateChanged = function() file: authenticated-json-api/public/main.js start line: 46 end line: 60 size: 13 LOC McCabe index: 2 number of parameters: 1 id: 48 unit: Demo.prototype.onAuthStateChanged = function() file: spotify-auth/public/main.js start line: 41 end line: 53 size: 13 LOC McCabe index: 2 number of parameters: 1 id: 49 unit: Demo.prototype.onAuthStateChanged = function() file: authorized-https-endpoint/public/main.js start line: 40 end line: 52 size: 13 LOC McCabe index: 2 number of parameters: 1 id: 50 unit: function instagramOAuth2Client() file: instagram-auth/functions/index.js start line: 37 end line: 51 size: 13 LOC McCabe index: 1 number of parameters: 0 id: 51 unit: Demo.prototype.onAuthStateChanged = function() file: linkedin-auth/public/main.js start line: 41 end line: 53 size: 13 LOC McCabe index: 2 number of parameters: 1 id: 52 unit: Demo.prototype.createMessage = function() file: authenticated-json-api/public/main.js start line: 62 end line: 77 size: 12 LOC McCabe index: 2 number of parameters: 0 id: 53 unit: Demo.prototype.signIn = function() file: username-password-auth/public/main.js start line: 62 end line: 93 size: 12 LOC McCabe index: 1 number of parameters: 0 id: 54 unit: Demo.prototype.onAuthStateChanged = function() file: quickstarts/email-users/public/main.js start line: 40 end line: 51 size: 12 LOC McCabe index: 2 number of parameters: 1 id: 55 unit: Demo.prototype.deleteAccount = function() file: fcm-notifications/public/main.js start line: 150 end line: 161 size: 12 LOC McCabe index: 2 number of parameters: 0 id: 56 unit: Demo.prototype.onAuthStateChanged = function() file: instagram-auth/public/main.js start line: 40 end line: 51 size: 12 LOC McCabe index: 2 number of parameters: 1 id: 57 unit: async function sendSurveyEmail() file: survey-app-update/functions/index.js start line: 57 end line: 69 size: 12 LOC McCabe index: 2 number of parameters: 2 id: 58 unit: Demo.prototype.messageDetails = function() file: authenticated-json-api/public/main.js start line: 111 end line: 122 size: 11 LOC McCabe index: 1 number of parameters: 1 id: 59 unit: function searchAlgoliaUnauthenticated() file: fulltext-search-firestore/public/index.js start line: 27 end line: 45 size: 11 LOC McCabe index: 1 number of parameters: 1 id: 60 unit: async function createTypesenseCollections() file: fulltext-search-firestore/functions/typesense.js start line: 39 end line: 55 size: 11 LOC McCabe index: 1 number of parameters: 0 id: 61 unit: Demo.prototype.onAuthStateChanged = function() file: username-password-auth/public/main.js start line: 49 end line: 59 size: 11 LOC McCabe index: 2 number of parameters: 1 id: 62 unit: function moderateMessage() file: text-moderation/functions/index.js start line: 49 end line: 63 size: 11 LOC McCabe index: 3 number of parameters: 1 id: 63 unit: request.onreadystatechange = function() file: quickstarts/big-ben/public/script.js start line: 24 end line: 36 size: 11 LOC McCabe index: 3 number of parameters: 0 id: 64 unit: async function sendWelcomeEmail() file: quickstarts/email-users/functions/index.js start line: 71 end line: 83 size: 11 LOC McCabe index: 2 number of parameters: 2 id: 65 unit: async function sendGoodbyeEmail() file: quickstarts/email-users/functions/index.js start line: 86 end line: 98 size: 11 LOC McCabe index: 2 number of parameters: 2 id: 66 unit: Demo.prototype.deleteAccount = function() file: spotify-auth/public/main.js start line: 67 end line: 76 size: 10 LOC McCabe index: 2 number of parameters: 0 id: 67 unit: Demo.prototype.deleteAccount = function() file: username-password-auth/public/main.js start line: 101 end line: 110 size: 10 LOC McCabe index: 2 number of parameters: 0 id: 68 unit: Demo.prototype.deleteAccount = function() file: quickstarts/email-users/public/main.js start line: 64 end line: 73 size: 10 LOC McCabe index: 2 number of parameters: 0 id: 69 unit: Demo.prototype.deleteAccount = function() file: instagram-auth/public/main.js start line: 65 end line: 74 size: 10 LOC McCabe index: 2 number of parameters: 0 id: 70 unit: async function getInactiveUsers() file: delete-unused-accounts-cron/functions/index.js start line: 68 end line: 83 size: 10 LOC McCabe index: 3 number of parameters: 2 id: 71 unit: Demo.prototype.deleteAccount = function() file: linkedin-auth/public/main.js start line: 67 end line: 76 size: 10 LOC McCabe index: 2 number of parameters: 0 id: 72 unit: Demo.prototype.onAuthStateChanged = function() file: exif-images/public/main.js start line: 36 end line: 45 size: 9 LOC McCabe index: 2 number of parameters: 1 id: 73 unit: async function getAuthorizedClient() file: google-sheet-sync/functions/index.js start line: 112 end line: 120 size: 9 LOC McCabe index: 2 number of parameters: 0 id: 74 unit: Demo.prototype.onMessage = function() file: fcm-notifications/public/main.js start line: 166 end line: 182 size: 9 LOC McCabe index: 3 number of parameters: 1 id: 75 unit: Demo.prototype.requestPermission = function() file: fcm-notifications/public/main.js start line: 203 end line: 211 size: 9 LOC McCabe index: 1 number of parameters: 0 id: 76 unit: function formatAmount() file: stripe/public/javascript/app.js start line: 272 end line: 280 size: 9 LOC McCabe index: 2 number of parameters: 2 id: 77 unit: Demo.prototype.startFunctionsRequest = function() file: authorized-https-endpoint/public/main.js start line: 67 end line: 81 size: 9 LOC McCabe index: 1 number of parameters: 0 id: 78 unit: Demo.prototype.startFunctionsCookieRequest = function() file: authorized-https-endpoint/public/main.js start line: 84 end line: 101 size: 9 LOC McCabe index: 1 number of parameters: 0 id: 79 unit: async function addDecodedIdTokenToRequest() file: template-handlebars/functions/firebaseUser.js start line: 62 end line: 70 size: 9 LOC McCabe index: 2 number of parameters: 2 id: 80 unit: function postToSlack() file: github-to-slack/functions/index.js start line: 61 end line: 70 size: 9 LOC McCabe index: 2 number of parameters: 3 id: 81 unit: function Demo() file: exif-images/public/main.js start line: 19 end line: 31 size: 8 LOC McCabe index: 1 number of parameters: 0 id: 82 unit: async function validateFirebaseIdToken() file: template-handlebars/functions/firebaseUser.js start line: 27 end line: 35 size: 8 LOC McCabe index: 2 number of parameters: 3 id: 83 unit: function searchElastic() file: fulltext-search-firestore/public/index.js start line: 99 end line: 108 size: 7 LOC McCabe index: 1 number of parameters: 1 id: 84 unit: Guestbook.prototype.toggleButton = function() file: text-moderation/public/main.js start line: 114 end line: 120 size: 7 LOC McCabe index: 3 number of parameters: 0 id: 85 unit: async function getDeviceTokens() file: coupon-on-purchase/functions/index.js start line: 117 end line: 123 size: 7 LOC McCabe index: 2 number of parameters: 1 id: 86 unit: function refresh() file: quickstarts/big-ben/public/script.js start line: 17 end line: 41 size: 7 LOC McCabe index: 1 number of parameters: 1 id: 87 unit: Demo.prototype.signIn = function() file: email-confirmation/public/main.js start line: 70 end line: 76 size: 6 LOC McCabe index: 1 number of parameters: 0 id: 88 unit: Demo.prototype.subscribe = function() file: email-confirmation/public/main.js start line: 84 end line: 89 size: 6 LOC McCabe index: 1 number of parameters: 0 id: 89 unit: function linkedInClient() file: linkedin-auth/functions/index.js start line: 36 end line: 43 size: 6 LOC McCabe index: 1 number of parameters: 0 id: 90 unit: function promisifyCommand() file: ffmpeg-convert-audio/functions/index.js start line: 29 end line: 33 size: 5 LOC McCabe index: 1 number of parameters: 1 id: 91 unit: Guestbook.resetMaterialTextfield = function() file: text-moderation/public/main.js start line: 76 end line: 80 size: 5 LOC McCabe index: 1 number of parameters: 1 id: 92 unit: function secondsLeftBeforeEndOfHour() file: quickstarts/big-ben/functions/index.js start line: 68 end line: 72 size: 5 LOC McCabe index: 1 number of parameters: 1 id: 93 unit: function formatAmountForStripe() file: stripe/public/javascript/app.js start line: 283 end line: 287 size: 5 LOC McCabe index: 2 number of parameters: 2 id: 94 unit: function userFacingMessage() file: stripe/functions/index.js start line: 214 end line: 218 size: 5 LOC McCabe index: 2 number of parameters: 1 id: 95 unit: function fs_listen() file: presence-firestore/public/index.js start line: 116 end line: 123 size: 5 LOC McCabe index: 1 number of parameters: 0 id: 96 unit: var callDisplayMessage = function() file: text-moderation/public/main.js start line: 39 end line: 42 size: 4 LOC McCabe index: 1 number of parameters: 1 id: 97 unit: Demo.prototype.signIn = function() file: fcm-notifications/public/main.js start line: 139 end line: 142 size: 4 LOC McCabe index: 1 number of parameters: 0 id: 98 unit: Demo.prototype.signOut = function() file: authorized-https-endpoint/public/main.js start line: 60 end line: 64 size: 4 LOC McCabe index: 1 number of parameters: 0 id: 99 unit: Demo.prototype.signIn = function() file: authenticated-json-api/public/main.js start line: 38 end line: 40 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 100 unit: Demo.prototype.signOut = function() file: authenticated-json-api/public/main.js start line: 42 end line: 44 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 101 unit: Demo.prototype.signIn = function() file: spotify-auth/public/main.js start line: 56 end line: 59 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 102 unit: Demo.prototype.signOut = function() file: spotify-auth/public/main.js start line: 62 end line: 64 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 103 unit: Demo.makeKeyFirebaseCompatible = function() file: exif-images/public/main.js start line: 91 end line: 93 size: 3 LOC McCabe index: 1 number of parameters: 1 id: 104 unit: search() file: fulltext-search-firestore/public/index.js start line: 177 end line: 179 size: 3 LOC McCabe index: 1 number of parameters: 1 id: 105 unit: function getFirebaseProjectId() file: username-password-auth/public/main.js start line: 21 end line: 23 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 106 unit: req.onerror = function() file: username-password-auth/public/main.js start line: 83 end line: 85 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 107 unit: Demo.prototype.signOut = function() file: username-password-auth/public/main.js start line: 96 end line: 98 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 108 unit: function containsSwearwords() file: text-moderation/functions/index.js start line: 66 end line: 68 size: 3 LOC McCabe index: 1 number of parameters: 1 id: 109 unit: function moderateSwearwords() file: text-moderation/functions/index.js start line: 71 end line: 73 size: 3 LOC McCabe index: 1 number of parameters: 1 id: 110 unit: function isShouting() file: text-moderation/functions/index.js start line: 77 end line: 79 size: 3 LOC McCabe index: 1 number of parameters: 1 id: 111 unit: Demo.prototype.signIn = function() file: quickstarts/email-users/public/main.js start line: 54 end line: 56 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 112 unit: Demo.prototype.signOut = function() file: quickstarts/email-users/public/main.js start line: 59 end line: 61 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 113 unit: Demo.prototype.signOut = function() file: fcm-notifications/public/main.js start line: 145 end line: 147 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 114 unit: Demo.prototype.signOut = function() file: email-confirmation/public/main.js start line: 79 end line: 81 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 115 unit: Demo.prototype.unsubscribe = function() file: email-confirmation/public/main.js start line: 92 end line: 94 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 116 unit: signInSuccessWithAuthResult: function() file: stripe/public/javascript/app.js start line: 26 end line: 31 size: 3 LOC McCabe index: 1 number of parameters: 2 id: 117 unit: Demo.prototype.signIn = function() file: authorized-https-endpoint/public/main.js start line: 55 end line: 57 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 118 unit: req.onload = function() file: authorized-https-endpoint/public/main.js start line: 71 end line: 73 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 119 unit: req.onerror = function() file: authorized-https-endpoint/public/main.js start line: 74 end line: 76 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 120 unit: req.onload = function() file: authorized-https-endpoint/public/main.js start line: 92 end line: 94 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 121 unit: req.onerror = function() file: authorized-https-endpoint/public/main.js start line: 95 end line: 97 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 122 unit: Demo.prototype.signIn = function() file: instagram-auth/public/main.js start line: 54 end line: 57 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 123 unit: Demo.prototype.signOut = function() file: instagram-auth/public/main.js start line: 60 end line: 62 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 124 unit: Demo.prototype.signIn = function() file: linkedin-auth/public/main.js start line: 56 end line: 59 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 125 unit: Demo.prototype.signOut = function() file: linkedin-auth/public/main.js start line: 62 end line: 64 size: 3 LOC McCabe index: 1 number of parameters: 0 id: 126 unit: function Demo() file: authenticated-json-api/public/main.js start line: 19 end line: 36 size: 2 LOC McCabe index: 1 number of parameters: 0 id: 127 unit: await mkdirp() file: generate-thumbnail/functions/index.js start line: 71 end line: 73 size: 2 LOC McCabe index: 1 number of parameters: 1