done purchases remove, ocr scan, read image
This commit is contained in:
		
							
								
								
									
										21
									
								
								express-server/node_modules/string-similarity/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								express-server/node_modules/string-similarity/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
MIT License
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2018 Akash Kurdekar
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
in the Software without restriction, including without limitation the rights
 | 
			
		||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
			
		||||
copies of the Software, and to permit persons to whom the Software is
 | 
			
		||||
furnished to do so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be included in all
 | 
			
		||||
copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
			
		||||
SOFTWARE.
 | 
			
		||||
							
								
								
									
										124
									
								
								express-server/node_modules/string-similarity/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								express-server/node_modules/string-similarity/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,124 @@
 | 
			
		||||
string-similarity
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
Finds degree of similarity between two strings, based on [Dice's Coefficient](http://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient), which is mostly better than [Levenshtein distance](http://en.wikipedia.org/wiki/Levenshtein_distance).
 | 
			
		||||
 | 
			
		||||
## Table of Contents
 | 
			
		||||
 | 
			
		||||
* [Usage](#usage)
 | 
			
		||||
* [API](#api)
 | 
			
		||||
    * [compareTwoStrings(string1, string2)](#comparetwostringsstring1-string2)
 | 
			
		||||
        * [Arguments](#arguments)
 | 
			
		||||
        * [Returns](#returns)
 | 
			
		||||
        * [Examples](#examples)
 | 
			
		||||
    * [findBestMatch(mainString, targetStrings)](#findbestmatchmainstring-targetstrings)
 | 
			
		||||
        * [Arguments](#arguments-1)
 | 
			
		||||
        * [Returns](#returns-1)
 | 
			
		||||
        * [Examples](#examples-1)
 | 
			
		||||
* [Release Notes](#release-notes)
 | 
			
		||||
    * [2.0.0](#200)
 | 
			
		||||
    * [3.0.0](#300)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Usage
 | 
			
		||||
Install using:
 | 
			
		||||
 | 
			
		||||
```shell
 | 
			
		||||
npm install string-similarity --save
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
In your code:
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
var stringSimilarity = require('string-similarity');
 | 
			
		||||
 | 
			
		||||
var similarity = stringSimilarity.compareTwoStrings('healed', 'sealed'); 
 | 
			
		||||
 | 
			
		||||
var matches = stringSimilarity.findBestMatch('healed', ['edward', 'sealed', 'theatre']);
 | 
			
		||||
```
 | 
			
		||||
## API
 | 
			
		||||
 | 
			
		||||
Requiring the module gives an object with two methods:
 | 
			
		||||
 | 
			
		||||
### compareTwoStrings(string1, string2)
 | 
			
		||||
 | 
			
		||||
Returns a fraction between 0 and 1, which indicates the degree of similarity between the two strings. 0 indicates completely different strings, 1 indicates identical strings. The comparison is case-sensitive.
 | 
			
		||||
 | 
			
		||||
##### Arguments
 | 
			
		||||
  
 | 
			
		||||
1. string1 (string): The first string
 | 
			
		||||
2. string2 (string): The second string
 | 
			
		||||
  
 | 
			
		||||
Order does not make a difference.
 | 
			
		||||
  
 | 
			
		||||
##### Returns
 | 
			
		||||
  
 | 
			
		||||
(number): A fraction from 0 to 1, both inclusive. Higher number indicates more similarity.
 | 
			
		||||
 | 
			
		||||
##### Examples
 | 
			
		||||
  
 | 
			
		||||
```javascript
 | 
			
		||||
stringSimilarity.compareTwoStrings('healed', 'sealed');
 | 
			
		||||
// → 0.8
 | 
			
		||||
 | 
			
		||||
stringSimilarity.compareTwoStrings('Olive-green table for sale, in extremely good condition.', 
 | 
			
		||||
  'For sale: table in very good  condition, olive green in colour.');
 | 
			
		||||
// → 0.6060606060606061
 | 
			
		||||
 | 
			
		||||
stringSimilarity.compareTwoStrings('Olive-green table for sale, in extremely good condition.', 
 | 
			
		||||
  'For sale: green Subaru Impreza, 210,000 miles');
 | 
			
		||||
// → 0.2558139534883721
 | 
			
		||||
 | 
			
		||||
stringSimilarity.compareTwoStrings('Olive-green table for sale, in extremely good condition.', 
 | 
			
		||||
  'Wanted: mountain bike with at least 21 gears.');
 | 
			
		||||
// → 0.1411764705882353
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### findBestMatch(mainString, targetStrings)
 | 
			
		||||
 | 
			
		||||
Compares `mainString` against each string in `targetStrings`.
 | 
			
		||||
 | 
			
		||||
##### Arguments
 | 
			
		||||
 | 
			
		||||
1. mainString (string): The string to match each target string against.
 | 
			
		||||
2. targetStrings (Array): Each string in this array will be matched against the main string.
 | 
			
		||||
 | 
			
		||||
##### Returns
 | 
			
		||||
(Object): An object with a `ratings` property, which gives a similarity rating for each target string, a `bestMatch` property, which specifies which target string was most similar to the main string, and a `bestMatchIndex` property, which specifies the index of the bestMatch in the targetStrings array.
 | 
			
		||||
 | 
			
		||||
##### Examples
 | 
			
		||||
```javascript
 | 
			
		||||
stringSimilarity.findBestMatch('Olive-green table for sale, in extremely good condition.', [
 | 
			
		||||
  'For sale: green Subaru Impreza, 210,000 miles', 
 | 
			
		||||
  'For sale: table in very good condition, olive green in colour.', 
 | 
			
		||||
  'Wanted: mountain bike with at least 21 gears.'
 | 
			
		||||
]);
 | 
			
		||||
// → 
 | 
			
		||||
{ ratings:
 | 
			
		||||
   [ { target: 'For sale: green Subaru Impreza, 210,000 miles',
 | 
			
		||||
       rating: 0.2558139534883721 },
 | 
			
		||||
     { target: 'For sale: table in very good condition, olive green in colour.',
 | 
			
		||||
       rating: 0.6060606060606061 },
 | 
			
		||||
     { target: 'Wanted: mountain bike with at least 21 gears.',
 | 
			
		||||
       rating: 0.1411764705882353 } ],
 | 
			
		||||
  bestMatch:
 | 
			
		||||
   { target: 'For sale: table in very good condition, olive green in colour.',
 | 
			
		||||
     rating: 0.6060606060606061 },
 | 
			
		||||
  bestMatchIndex: 1 
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Release Notes
 | 
			
		||||
 | 
			
		||||
### 2.0.0
 | 
			
		||||
* Removed production dependencies
 | 
			
		||||
* Updated to ES6 (this breaks backward-compatibility for pre-ES6 apps)
 | 
			
		||||
 | 
			
		||||
### 3.0.0
 | 
			
		||||
* Performance improvement for `compareTwoStrings(..)`: now O(n) instead of O(n^2)
 | 
			
		||||
* The algorithm has been tweaked slightly to disregard spaces and word boundaries. This will change the rating values slightly but not enough to make a significant difference
 | 
			
		||||
* Adding a `bestMatchIndex` to the results for `findBestMatch(..)` to point to the best match in the supplied `targetStrings` array
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
[](https://snyk.io/test/github/aceakash/string-similarity)
 | 
			
		||||
							
								
								
									
										84
									
								
								express-server/node_modules/string-similarity/compare-strings.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								express-server/node_modules/string-similarity/compare-strings.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,84 @@
 | 
			
		||||
module.exports = {
 | 
			
		||||
	compareTwoStrings,
 | 
			
		||||
	findBestMatch
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
function compareTwoStrings(first, second) {
 | 
			
		||||
	first = first.replace(/\s+/g, '')
 | 
			
		||||
	second = second.replace(/\s+/g, '')
 | 
			
		||||
 | 
			
		||||
	if (!first.length && !second.length) return 1;                   // if both are empty strings
 | 
			
		||||
	if (!first.length || !second.length) return 0;                   // if only one is empty string
 | 
			
		||||
	if (first === second) return 1;       							 // identical
 | 
			
		||||
	if (first.length === 1 && second.length === 1) return 0;         // both are 1-letter strings
 | 
			
		||||
	if (first.length < 2 || second.length < 2) return 0;			 // if either is a 1-letter string
 | 
			
		||||
 | 
			
		||||
	let firstBigrams = new Map();
 | 
			
		||||
	for (let i = 0; i < first.length - 1; i++) {
 | 
			
		||||
		const bigram = first.substr(i, 2);
 | 
			
		||||
		const count = firstBigrams.has(bigram)
 | 
			
		||||
			? firstBigrams.get(bigram) + 1
 | 
			
		||||
			: 1;
 | 
			
		||||
 | 
			
		||||
		firstBigrams.set(bigram, count);
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	let intersectionSize = 0;
 | 
			
		||||
	for (let i = 0; i < second.length - 1; i++) {
 | 
			
		||||
		const bigram = second.substr(i, 2);
 | 
			
		||||
		const count = firstBigrams.has(bigram)
 | 
			
		||||
			? firstBigrams.get(bigram)
 | 
			
		||||
			: 0;
 | 
			
		||||
 | 
			
		||||
		if (count > 0) {
 | 
			
		||||
			firstBigrams.set(bigram, count - 1);
 | 
			
		||||
			intersectionSize++;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return (2.0 * intersectionSize) / (first.length + second.length - 2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function findBestMatch(mainString, targetStrings) {
 | 
			
		||||
	if (!areArgsValid(mainString, targetStrings)) throw new Error('Bad arguments: First argument should be a string, second should be an array of strings');
 | 
			
		||||
	
 | 
			
		||||
	const ratings = [];
 | 
			
		||||
	let bestMatchIndex = 0;
 | 
			
		||||
 | 
			
		||||
	for (let i = 0; i < targetStrings.length; i++) {
 | 
			
		||||
		const currentTargetString = targetStrings[i];
 | 
			
		||||
		const currentRating = compareTwoStrings(mainString, currentTargetString)
 | 
			
		||||
		ratings.push({target: currentTargetString, rating: currentRating})
 | 
			
		||||
		if (currentRating > ratings[bestMatchIndex].rating) {
 | 
			
		||||
			bestMatchIndex = i
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
	const bestMatch = ratings[bestMatchIndex]
 | 
			
		||||
	
 | 
			
		||||
	return { ratings, bestMatch, bestMatchIndex };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function flattenDeep(arr) {
 | 
			
		||||
	return Array.isArray(arr) ? arr.reduce((a, b) => a.concat(flattenDeep(b)), []) : [arr];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function areArgsValid(mainString, targetStrings) {
 | 
			
		||||
	if (typeof mainString !== 'string') return false;
 | 
			
		||||
	if (!Array.isArray(targetStrings)) return false;
 | 
			
		||||
	if (!targetStrings.length) return false;
 | 
			
		||||
	if (targetStrings.find(s => typeof s !== 'string')) return false;
 | 
			
		||||
	return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function letterPairs(str) {
 | 
			
		||||
	const pairs = [];
 | 
			
		||||
	for (let i = 0, max = str.length - 1; i < max; i++) pairs[i] = str.substring(i, i + 2);
 | 
			
		||||
	return pairs;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function wordLetterPairs(str) {
 | 
			
		||||
	const pairs = str.toUpperCase().split(' ').map(letterPairs);
 | 
			
		||||
	return flattenDeep(pairs);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										68
									
								
								express-server/node_modules/string-similarity/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								express-server/node_modules/string-similarity/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,68 @@
 | 
			
		||||
{
 | 
			
		||||
  "_from": "string-similarity@^3.0.0",
 | 
			
		||||
  "_id": "string-similarity@3.0.0",
 | 
			
		||||
  "_inBundle": false,
 | 
			
		||||
  "_integrity": "sha512-7kS7LyTp56OqOI2BDWQNVnLX/rCxIQn+/5M0op1WV6P8Xx6TZNdajpuqQdiJ7Xx+p1C5CsWMvdiBp9ApMhxzEQ==",
 | 
			
		||||
  "_location": "/string-similarity",
 | 
			
		||||
  "_phantomChildren": {},
 | 
			
		||||
  "_requested": {
 | 
			
		||||
    "type": "range",
 | 
			
		||||
    "registry": true,
 | 
			
		||||
    "raw": "string-similarity@^3.0.0",
 | 
			
		||||
    "name": "string-similarity",
 | 
			
		||||
    "escapedName": "string-similarity",
 | 
			
		||||
    "rawSpec": "^3.0.0",
 | 
			
		||||
    "saveSpec": null,
 | 
			
		||||
    "fetchSpec": "^3.0.0"
 | 
			
		||||
  },
 | 
			
		||||
  "_requiredBy": [
 | 
			
		||||
    "#USER",
 | 
			
		||||
    "/"
 | 
			
		||||
  ],
 | 
			
		||||
  "_resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-3.0.0.tgz",
 | 
			
		||||
  "_shasum": "07b0bc69fae200ad88ceef4983878d03793847c7",
 | 
			
		||||
  "_spec": "string-similarity@^3.0.0",
 | 
			
		||||
  "_where": "D:\\5CHITM\\Diplomarbeit\\repos\\SmartShopper\\express-server",
 | 
			
		||||
  "author": {
 | 
			
		||||
    "name": "Akash Kurdekar",
 | 
			
		||||
    "email": "npm@kurdekar.com",
 | 
			
		||||
    "url": "http://untilfalse.com/"
 | 
			
		||||
  },
 | 
			
		||||
  "bugs": {
 | 
			
		||||
    "url": "https://github.com/aceakash/string-similarity/issues"
 | 
			
		||||
  },
 | 
			
		||||
  "bundleDependencies": false,
 | 
			
		||||
  "deprecated": false,
 | 
			
		||||
  "description": "Finds degree of similarity between strings, based on Dice's Coefficient, which is mostly better than Levenshtein distance.",
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "jasmine": "^3.3.0"
 | 
			
		||||
  },
 | 
			
		||||
  "files": [
 | 
			
		||||
    "compare-strings.js"
 | 
			
		||||
  ],
 | 
			
		||||
  "homepage": "https://github.com/aceakash/string-similarity#readme",
 | 
			
		||||
  "keywords": [
 | 
			
		||||
    "strings",
 | 
			
		||||
    "similar",
 | 
			
		||||
    "difference",
 | 
			
		||||
    "similarity",
 | 
			
		||||
    "compare",
 | 
			
		||||
    "comparison",
 | 
			
		||||
    "degree",
 | 
			
		||||
    "match",
 | 
			
		||||
    "matching",
 | 
			
		||||
    "dice",
 | 
			
		||||
    "levenshtein"
 | 
			
		||||
  ],
 | 
			
		||||
  "license": "ISC",
 | 
			
		||||
  "main": "compare-strings.js",
 | 
			
		||||
  "name": "string-similarity",
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
    "url": "git://github.com/aceakash/string-similarity.git"
 | 
			
		||||
  },
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "test": "jasmine"
 | 
			
		||||
  },
 | 
			
		||||
  "version": "3.0.0"
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user