atriusmaps-node-sdk 3.3.478 → 3.3.480

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var name = "web-engine";
6
- var version = "3.3.478";
6
+ var version = "3.3.480";
7
7
  var license = "UNLICENSED";
8
8
  var type = "module";
9
9
  var main = "src/main.js";
@@ -89,7 +89,7 @@ var dependencies = {
89
89
  "cypress-multi-reporters": "^2.0.5",
90
90
  "cypress-real-events": "^1.14.0",
91
91
  "file-loader": "^6.2.0",
92
- flexsearch: "^0.7.43",
92
+ flexsearch: "^0.8.2",
93
93
  "h3-js": "^4.1.0",
94
94
  i18next: "^20.6.1",
95
95
  "i18next-browser-languagedetector": "^6.1.1",
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  var FlexSearch = require('flexsearch');
4
- var simple = require('./flexsearchExports/simple.js');
5
4
 
6
5
  const NON_ASCII_LANGUAGES = ['ko', 'ja', 'zh-Hans', 'zh-Hant'];
7
6
 
@@ -13,8 +12,7 @@ const getFlexSearchInstance = ({ lang, type = 'standard' }) => {
13
12
  s: '',
14
13
  es: '',
15
14
  ies: 'y'
16
- },
17
- encode: simple.encode
15
+ }
18
16
  };
19
17
 
20
18
  // Use the full tokenizer for non-ASCII languages and for standard searching
@@ -22,7 +20,25 @@ const getFlexSearchInstance = ({ lang, type = 'standard' }) => {
22
20
  if (NON_ASCII_LANGUAGES.includes(lang))
23
21
  options.tokenize = 'full';
24
22
 
25
- return new FlexSearch.Index(options)
23
+ const rawIndex = new FlexSearch.Index(options);
24
+
25
+ // Remove apostrophes and hyphens so queries with or without them match.
26
+ // e.g. "McDonald's" <-> "mcdonalds", "fil-a-delphia" <-> "filadelphia".
27
+ const normalizeLight = (str = '') => str.replace(/['’-]/g, '');
28
+
29
+ // Wrap the index to normalize BOTH data and query side the same way.
30
+ return {
31
+ add: (id, content) => rawIndex.add(id, normalizeLight(content)),
32
+ update: (id, content) => rawIndex.update(id, normalizeLight(content)),
33
+ search: (queryParams) => {
34
+ if (typeof queryParams === 'string')
35
+ return rawIndex.search(normalizeLight(queryParams))
36
+ const qp = { ...queryParams };
37
+ if (qp.query)
38
+ qp.query = normalizeLight(qp.query);
39
+ return rawIndex.search(qp)
40
+ }
41
+ }
26
42
  };
27
43
 
28
44
  exports.getFlexSearchInstance = getFlexSearchInstance;
@@ -1 +1 @@
1
- var e="web-engine",s="3.3.478",o="UNLICENSED",r="module",t="src/main.js",l=["demo","deploy","nodesdk","src/extModules/flexapi","services/*","libraries/*"],a={colors:"cat utils/colors1.txt && node utils/processColors.js | pbcopy && cat utils/colors2.txt","cypress:a11y":"APPLITOOLS_IS_DISABLED=true && cypress open --browser chrome --env INPUT_MODALITY='keyboard'","cypress:comp":"APPLITOOLS_IS_DISABLED=true && cypress open --component --browser chrome","cypress:e2e":"APPLITOOLS_IS_DISABLED=true && cypress open --e2e --browser chrome",demo:"cd demo/ && yarn start","e2e:comp":"cypress run --component","e2e:record":"yarn cypress run --env RECORD_MODE=true",e2eSDKTest:"yarn start-server-and-test 'cd ./deploy && yarn buildDev && yarn serveLocal' 8085 'cd ./cypress/e2e/sdk && npx http-server' 8080 'yarn cypress run --spec cypress/e2e/sdk/**'",goProd:"cd deploy && scripts/goProd.sh",goStaging:"deploy/scripts/goStaging.sh",i18nOverrides:"yarn node utils/i18nOverrideCli src/i18n src/i18n-overrides",lint:"eslint .",mod:"demo/startMod.sh",mol:"demo/startMol.sh","mol:build":"demo/startMolBuild.sh",molProd:"cd deploy && yarn buildAndRunMol",prepare:"husky",test:"jest --no-cache --verbose","test-watch":"jest --verbose --watch","test:vitest":"vitest run"},i=["defaults"],n={react:"^18.3.1"},c={"@azure/event-hubs":"^5.12.2","@csstools/normalize.css":"^11.0.1","@dnd-kit/core":"^6.3.1","@dnd-kit/modifiers":"^9.0.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@locus-labs/mod-badge":"^0.1.102","@locus-labs/mod-footer":"^0.0.111","@locus-labs/mod-header":"^0.0.105","@locus-labs/mod-location-marker":"^0.0.104","@locus-labs/mod-map-legend":"^0.0.104","@locus-labs/mod-offscreen-indicator":"^0.0.104","@locus-labs/mod-pin":"^0.0.104","@locus-labs/mod-qr-code-card":"^0.0.104","@locus-labs/mod-qr-code-window":"^0.0.105","@locus-labs/mod-walk-time-matrix":"^0.0.103","@locus-labs/mol-desktop-compass":"^0.1.120","@locus-labs/mol-desktop-icon":"^0.1.131","@locus-labs/mol-desktop-logo":"^0.1.101","@locus-labs/mol-desktop-map-nav-button":"^0.1.130","@locus-labs/mol-desktop-text":"^0.1.141","@locus-labs/mol-desktop-tooltip":"^0.3.102","@locus-labs/mol-desktop-zoom-control":"^0.1.141","@locus-labs/mol-mobile-box":"^0.1.115","@locus-labs/mol-mobile-floating-action-button":"^0.0.117","@locus-labs/mol-mobile-icon":"^0.1.118","@locus-labs/mol-mobile-text":"^0.1.116","@locus-labs/mol-mobile-toast":"^0.1.102","@mapbox/mapbox-gl-draw":"^1.5.0","@mapbox/mapbox-gl-draw-static-mode":"^1.0.1","@microsoft/applicationinsights-web":"^3.3.6","@turf/area":"^7.2.0","@turf/bbox-clip":"^7.2.0","@turf/bbox-polygon":"^7.2.0","@turf/circle":"^7.2.0","@turf/helpers":"^7.2.0","@turf/point-to-line-distance":"^7.2.0","@vitejs/plugin-react":"^4.3.4","axe-core":"^4.10.3",browserslist:"^4.24.4","crypto-browserify":"^3.12.1","cypress-axe":"^1.6.0","cypress-multi-reporters":"^2.0.5","cypress-real-events":"^1.14.0","file-loader":"^6.2.0",flexsearch:"^0.7.43","h3-js":"^4.1.0",i18next:"^20.6.1","i18next-browser-languagedetector":"^6.1.1","jest-transform-css":"6.0.2",jsdom:"^25.0.1",jsonschema:"^1.5.0",luxon:"^3.5.0","maplibre-gl":"^4.7.1","mini-css-extract-plugin":"^2.9.2","mocha-junit-reporter":"^2.2.1",mochawesome:"^7.1.3","node-polyfill-webpack-plugin":"^4.1.0","path-browserify":"^1.0.1","prop-types":"^15.8.1",ramda:"^0.30.1",react:"^18.3.1","react-compound-slider":"^3.4.0","react-dom":"^18.3.1","react-json-editor-ajrm":"^2.5.14","react-qr-svg":"^2.4.0","react-svg":"^16.3.0","react-virtualized-auto-sizer":"^1.0.25","react-window":"^1.8.11","smoothscroll-polyfill":"^0.4.4","styled-components":"^6.1.15","styled-normalize":"^8.1.1","throttle-debounce":"^5.0.2",trackjs:"^3.10.4","ua-parser-js":"^0.7.40",uuid:"11.1.0",zousan:"^3.0.1","zousan-plus":"^4.0.1"},p={"@applitools/eyes-cypress":"^3.51.0","@babel/core":"^7.26.10","@babel/eslint-parser":"^7.26.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-syntax-import-assertions":"^7.26.0","@babel/plugin-transform-modules-commonjs":"^7.26.3","@babel/plugin-transform-runtime":"^7.26.10","@babel/preset-env":"^7.26.9","@babel/preset-react":"^7.26.3","@testing-library/jest-dom":"^6.6.3","@types/react":"^19.0.10","@types/react-dom":"^19.0.4","@typescript-eslint/eslint-plugin":"^8.26.1","@typescript-eslint/parser":"^8.26.1","babel-jest":"^29.7.0","babel-loader":"^10.0.0","babel-plugin-inline-json-import":"^0.3.2","babel-plugin-module-resolver":"^5.0.2","babel-plugin-styled-components":"^2.1.4","chai-colors":"^1.0.1","css-loader":"^7.1.2",cypress:"^14.2.0","cypress-browser-permissions":"^1.1.0","cypress-wait-until":"^3.0.2",eslint:"^8.57.1","eslint-config-standard":"^17.1.0","eslint-import-resolver-typescript":"^3.9.1","eslint-plugin-cypress":"^2.15.2","eslint-plugin-import":"^2.31.0","eslint-plugin-jest":"^28.11.0","eslint-plugin-n":"^17.16.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.2.0","eslint-plugin-react":"^7.37.4","eslint-plugin-standard":"^5.0.0","fetch-mock-jest":"^1.5.1",glob:"^11.0.1",husky:"^9.1.7",jest:"29.7.0","jest-environment-jsdom":"^29.7.0","lint-staged":"^15.5.0","node-fetch":"^2.7.0","null-loader":"^4.0.1",nx:"19.8.14","nx-remotecache-azure":"^19.0.0","os-browserify":"^0.3.0","start-server-and-test":"^2.0.11",typescript:"^5.8.2",vite:"^4.3.9",vitest:"^2.1.9","webpack-merge":"^6.0.1"},d="yarn@4.7.0",m={node:"22.x"},u={},b={name:e,version:s,private:!0,license:o,type:r,main:t,workspaces:l,scripts:a,"lint-staged":{"*.js":["eslint --fix"]},browserslist:i,resolutions:n,dependencies:c,devDependencies:p,packageManager:d,engines:m,nx:u};export{i as browserslist,b as default,c as dependencies,p as devDependencies,m as engines,o as license,t as main,e as name,u as nx,d as packageManager,n as resolutions,a as scripts,r as type,s as version,l as workspaces};
1
+ var e="web-engine",s="3.3.480",o="UNLICENSED",r="module",t="src/main.js",l=["demo","deploy","nodesdk","src/extModules/flexapi","services/*","libraries/*"],a={colors:"cat utils/colors1.txt && node utils/processColors.js | pbcopy && cat utils/colors2.txt","cypress:a11y":"APPLITOOLS_IS_DISABLED=true && cypress open --browser chrome --env INPUT_MODALITY='keyboard'","cypress:comp":"APPLITOOLS_IS_DISABLED=true && cypress open --component --browser chrome","cypress:e2e":"APPLITOOLS_IS_DISABLED=true && cypress open --e2e --browser chrome",demo:"cd demo/ && yarn start","e2e:comp":"cypress run --component","e2e:record":"yarn cypress run --env RECORD_MODE=true",e2eSDKTest:"yarn start-server-and-test 'cd ./deploy && yarn buildDev && yarn serveLocal' 8085 'cd ./cypress/e2e/sdk && npx http-server' 8080 'yarn cypress run --spec cypress/e2e/sdk/**'",goProd:"cd deploy && scripts/goProd.sh",goStaging:"deploy/scripts/goStaging.sh",i18nOverrides:"yarn node utils/i18nOverrideCli src/i18n src/i18n-overrides",lint:"eslint .",mod:"demo/startMod.sh",mol:"demo/startMol.sh","mol:build":"demo/startMolBuild.sh",molProd:"cd deploy && yarn buildAndRunMol",prepare:"husky",test:"jest --no-cache --verbose","test-watch":"jest --verbose --watch","test:vitest":"vitest run"},i=["defaults"],n={react:"^18.3.1"},c={"@azure/event-hubs":"^5.12.2","@csstools/normalize.css":"^11.0.1","@dnd-kit/core":"^6.3.1","@dnd-kit/modifiers":"^9.0.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@locus-labs/mod-badge":"^0.1.102","@locus-labs/mod-footer":"^0.0.111","@locus-labs/mod-header":"^0.0.105","@locus-labs/mod-location-marker":"^0.0.104","@locus-labs/mod-map-legend":"^0.0.104","@locus-labs/mod-offscreen-indicator":"^0.0.104","@locus-labs/mod-pin":"^0.0.104","@locus-labs/mod-qr-code-card":"^0.0.104","@locus-labs/mod-qr-code-window":"^0.0.105","@locus-labs/mod-walk-time-matrix":"^0.0.103","@locus-labs/mol-desktop-compass":"^0.1.120","@locus-labs/mol-desktop-icon":"^0.1.131","@locus-labs/mol-desktop-logo":"^0.1.101","@locus-labs/mol-desktop-map-nav-button":"^0.1.130","@locus-labs/mol-desktop-text":"^0.1.141","@locus-labs/mol-desktop-tooltip":"^0.3.102","@locus-labs/mol-desktop-zoom-control":"^0.1.141","@locus-labs/mol-mobile-box":"^0.1.115","@locus-labs/mol-mobile-floating-action-button":"^0.0.117","@locus-labs/mol-mobile-icon":"^0.1.118","@locus-labs/mol-mobile-text":"^0.1.116","@locus-labs/mol-mobile-toast":"^0.1.102","@mapbox/mapbox-gl-draw":"^1.5.0","@mapbox/mapbox-gl-draw-static-mode":"^1.0.1","@microsoft/applicationinsights-web":"^3.3.6","@turf/area":"^7.2.0","@turf/bbox-clip":"^7.2.0","@turf/bbox-polygon":"^7.2.0","@turf/circle":"^7.2.0","@turf/helpers":"^7.2.0","@turf/point-to-line-distance":"^7.2.0","@vitejs/plugin-react":"^4.3.4","axe-core":"^4.10.3",browserslist:"^4.24.4","crypto-browserify":"^3.12.1","cypress-axe":"^1.6.0","cypress-multi-reporters":"^2.0.5","cypress-real-events":"^1.14.0","file-loader":"^6.2.0",flexsearch:"^0.8.2","h3-js":"^4.1.0",i18next:"^20.6.1","i18next-browser-languagedetector":"^6.1.1","jest-transform-css":"6.0.2",jsdom:"^25.0.1",jsonschema:"^1.5.0",luxon:"^3.5.0","maplibre-gl":"^4.7.1","mini-css-extract-plugin":"^2.9.2","mocha-junit-reporter":"^2.2.1",mochawesome:"^7.1.3","node-polyfill-webpack-plugin":"^4.1.0","path-browserify":"^1.0.1","prop-types":"^15.8.1",ramda:"^0.30.1",react:"^18.3.1","react-compound-slider":"^3.4.0","react-dom":"^18.3.1","react-json-editor-ajrm":"^2.5.14","react-qr-svg":"^2.4.0","react-svg":"^16.3.0","react-virtualized-auto-sizer":"^1.0.25","react-window":"^1.8.11","smoothscroll-polyfill":"^0.4.4","styled-components":"^6.1.15","styled-normalize":"^8.1.1","throttle-debounce":"^5.0.2",trackjs:"^3.10.4","ua-parser-js":"^0.7.40",uuid:"11.1.0",zousan:"^3.0.1","zousan-plus":"^4.0.1"},p={"@applitools/eyes-cypress":"^3.51.0","@babel/core":"^7.26.10","@babel/eslint-parser":"^7.26.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/plugin-syntax-import-assertions":"^7.26.0","@babel/plugin-transform-modules-commonjs":"^7.26.3","@babel/plugin-transform-runtime":"^7.26.10","@babel/preset-env":"^7.26.9","@babel/preset-react":"^7.26.3","@testing-library/jest-dom":"^6.6.3","@types/react":"^19.0.10","@types/react-dom":"^19.0.4","@typescript-eslint/eslint-plugin":"^8.26.1","@typescript-eslint/parser":"^8.26.1","babel-jest":"^29.7.0","babel-loader":"^10.0.0","babel-plugin-inline-json-import":"^0.3.2","babel-plugin-module-resolver":"^5.0.2","babel-plugin-styled-components":"^2.1.4","chai-colors":"^1.0.1","css-loader":"^7.1.2",cypress:"^14.2.0","cypress-browser-permissions":"^1.1.0","cypress-wait-until":"^3.0.2",eslint:"^8.57.1","eslint-config-standard":"^17.1.0","eslint-import-resolver-typescript":"^3.9.1","eslint-plugin-cypress":"^2.15.2","eslint-plugin-import":"^2.31.0","eslint-plugin-jest":"^28.11.0","eslint-plugin-n":"^17.16.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.2.0","eslint-plugin-react":"^7.37.4","eslint-plugin-standard":"^5.0.0","fetch-mock-jest":"^1.5.1",glob:"^11.0.1",husky:"^9.1.7",jest:"29.7.0","jest-environment-jsdom":"^29.7.0","lint-staged":"^15.5.0","node-fetch":"^2.7.0","null-loader":"^4.0.1",nx:"19.8.14","nx-remotecache-azure":"^19.0.0","os-browserify":"^0.3.0","start-server-and-test":"^2.0.11",typescript:"^5.8.2",vite:"^4.3.9",vitest:"^2.1.9","webpack-merge":"^6.0.1"},d="yarn@4.7.0",m={node:"22.x"},u={},b={name:e,version:s,private:!0,license:o,type:r,main:t,workspaces:l,scripts:a,"lint-staged":{"*.js":["eslint --fix"]},browserslist:i,resolutions:n,dependencies:c,devDependencies:p,packageManager:d,engines:m,nx:u};export{i as browserslist,b as default,c as dependencies,p as devDependencies,m as engines,o as license,t as main,e as name,u as nx,d as packageManager,n as resolutions,a as scripts,r as type,s as version,l as workspaces};
@@ -1 +1 @@
1
- import e from"flexsearch";import{encode as r}from"./flexsearchExports/simple.js";const s=["ko","ja","zh-Hans","zh-Hant"],t=({lang:t,type:n="standard"})=>{const o={tokenize:"reverse",rtl:"ar"===t,stemmer:{s:"",es:"",ies:"y"},encode:r};return s.includes(t)&&(o.tokenize="full"),new e.Index(o)};export{t as getFlexSearchInstance};
1
+ import e from"flexsearch";const r=["ko","ja","zh-Hans","zh-Hant"],t=({lang:t,type:n="standard"})=>{const s={tokenize:"reverse",rtl:"ar"===t,stemmer:{s:"",es:"",ies:"y"}};r.includes(t)&&(s.tokenize="full");const a=new e.Index(s),o=(e="")=>e.replace(/['’-]/g,"");return{add:(e,r)=>a.add(e,o(r)),update:(e,r)=>a.update(e,o(r)),search:e=>{if("string"==typeof e)return a.search(o(e));const r={...e};return r.query&&(r.query=o(r.query)),a.search(r)}}};export{t as getFlexSearchInstance};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "atriusmaps-node-sdk",
3
- "version": "3.3.478",
3
+ "version": "3.3.480",
4
4
  "description": "This project provides an API to Atrius Personal Wayfinder maps within a Node environment. See the README.md for more information",
5
5
  "keywords": [
6
6
  "map",
@@ -1,253 +0,0 @@
1
- 'use strict';
2
-
3
- /* eslint-disable camelcase */
4
- /**
5
- * @param {!string} str
6
- * @param {boolean|Array<string|RegExp>=} normalize
7
- * @param {boolean|string|RegExp=} split
8
- * @param {boolean=} _collapse
9
- * @returns {string|Array<string>}
10
- * @this IndexInterface
11
- */
12
-
13
- function pipeline (str, normalize, split, _collapse) {
14
- if (str) {
15
- if (normalize) {
16
- str = replace(str, /** @type {Array<string|RegExp>} */normalize);
17
- }
18
-
19
- if (this.matcher) {
20
- str = replace(str, this.matcher);
21
- }
22
-
23
- if (this.stemmer && str.length > 1) {
24
- str = replace(str, this.stemmer);
25
- }
26
-
27
- if (_collapse && str.length > 1) {
28
- str = collapse(str);
29
- }
30
-
31
- if (split || split === '') {
32
- const words = str.split(/** @type {string|RegExp} */split);
33
-
34
- return this.filter ? filter(words, this.filter) : words
35
- }
36
- }
37
-
38
- return str
39
- }
40
-
41
- // TODO improve normalize + remove non-delimited chars like in "I'm" + split on whitespace+
42
-
43
- const regex_whitespace = /[\p{Z}\p{S}\p{P}\p{C}]+/u;
44
- // https://github.com/nextapps-de/flexsearch/pull/414
45
- // export const regex_whitespace = /[\s\xA0\u2000-\u200B\u2028\u2029\u3000\ufeff!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~]/
46
- const regex_normalize = /[\u0300-\u036f]/g;
47
-
48
- function normalize (str) {
49
- if (str.normalize) {
50
- str = str.normalize('NFD').replace(regex_normalize, '');
51
- }
52
-
53
- return str
54
- }
55
-
56
- /**
57
- * @param {!string} str
58
- * @param {boolean|Array<string|RegExp>=} normalize
59
- * @param {boolean|string|RegExp=} split
60
- * @param {boolean=} _collapse
61
- * @returns {string|Array<string>}
62
- */
63
-
64
- // FlexSearch.prototype.pipeline = function(str, normalize, split, _collapse){
65
- //
66
- // if(str){
67
- //
68
- // if(normalize && str){
69
- //
70
- // str = replace(str, /** @type {Array<string|RegExp>} */ (normalize));
71
- // }
72
- //
73
- // if(str && this.matcher){
74
- //
75
- // str = replace(str, this.matcher);
76
- // }
77
- //
78
- // if(this.stemmer && str.length > 1){
79
- //
80
- // str = replace(str, this.stemmer);
81
- // }
82
- //
83
- // if(_collapse && str.length > 1){
84
- //
85
- // str = collapse(str);
86
- // }
87
- //
88
- // if(str){
89
- //
90
- // if(split || (split === "")){
91
- //
92
- // const words = str.split(/** @type {string|RegExp} */ (split));
93
- //
94
- // return this.filter ? filter(words, this.filter) : words;
95
- // }
96
- // }
97
- // }
98
- //
99
- // return str;
100
- // };
101
-
102
- // export function pipeline(str, normalize, matcher, stemmer, split, _filter, _collapse){
103
- //
104
- // if(str){
105
- //
106
- // if(normalize && str){
107
- //
108
- // str = replace(str, normalize);
109
- // }
110
- //
111
- // if(matcher && str){
112
- //
113
- // str = replace(str, matcher);
114
- // }
115
- //
116
- // if(stemmer && str.length > 1){
117
- //
118
- // str = replace(str, stemmer);
119
- // }
120
- //
121
- // if(_collapse && str.length > 1){
122
- //
123
- // str = collapse(str);
124
- // }
125
- //
126
- // if(str){
127
- //
128
- // if(split !== false){
129
- //
130
- // str = str.split(split);
131
- //
132
- // if(_filter){
133
- //
134
- // str = filter(str, _filter);
135
- // }
136
- // }
137
- // }
138
- // }
139
- //
140
- // return str;
141
- // }
142
-
143
- /**
144
- * @param {!string} str
145
- * @param {Array} regexp
146
- * @returns {string}
147
- */
148
-
149
- function replace (str, regexp) {
150
- for (let i = 0, len = regexp.length; i < len; i += 2) {
151
- str = str.replace(regexp[i], regexp[i + 1]);
152
-
153
- if (!str) {
154
- break
155
- }
156
- }
157
-
158
- return str
159
- }
160
-
161
- /**
162
- * @param {!string} str
163
- * @returns {RegExp}
164
- */
165
-
166
- function regex (str) {
167
- return new RegExp(str, 'g')
168
- }
169
-
170
- /**
171
- * Regex: replace(/(?:(\w)(?:\1)*)/g, "$1")
172
- * @param {!string} string
173
- * @returns {string}
174
- */
175
-
176
- function collapse (string) {
177
- let final = '';
178
- let prev = '';
179
-
180
- for (let i = 0, len = string.length, char; i < len; i++) {
181
- if ((char = string[i]) !== prev) {
182
- final += prev = char;
183
- }
184
- }
185
-
186
- return final
187
- }
188
-
189
- // TODO using fast-swap
190
- function filter (words, map) {
191
- const length = words.length;
192
- const filtered = [];
193
-
194
- for (let i = 0, count = 0; i < length; i++) {
195
- const word = words[i];
196
-
197
- if (word && !map[word]) {
198
- filtered[count++] = word;
199
- }
200
- }
201
-
202
- return filtered
203
- }
204
-
205
- // const chars = {a:1, e:1, i:1, o:1, u:1, y:1};
206
- //
207
- // function collapse_repeating_chars(string){
208
- //
209
- // let collapsed_string = "",
210
- // char_prev = "",
211
- // char_next = "";
212
- //
213
- // for(let i = 0; i < string.length; i++){
214
- //
215
- // const char = string[i];
216
- //
217
- // if(char !== char_prev){
218
- //
219
- // if(i && (char === "h")){
220
- //
221
- // if((chars[char_prev] && chars[char_next]) || (char_prev === " ")){
222
- //
223
- // collapsed_string += char;
224
- // }
225
- // }
226
- // else{
227
- //
228
- // collapsed_string += char;
229
- // }
230
- // }
231
- //
232
- // char_next = (
233
- //
234
- // (i === (string.length - 1)) ?
235
- //
236
- // ""
237
- // :
238
- // string[i + 1]
239
- // );
240
- //
241
- // char_prev = char;
242
- // }
243
- //
244
- // return collapsed_string;
245
- // }
246
-
247
- exports.collapse = collapse;
248
- exports.filter = filter;
249
- exports.normalize = normalize;
250
- exports.pipeline = pipeline;
251
- exports.regex = regex;
252
- exports.regex_whitespace = regex_whitespace;
253
- exports.replace = replace;
@@ -1,37 +0,0 @@
1
- 'use strict';
2
-
3
- var lang = require('./lang.js');
4
-
5
- /* eslint-disable camelcase */
6
- const // regex_whitespace = /\W+/,
7
- // regex_strip = regex("[^a-z0-9 ]"),
8
- regex_a = lang.regex('[àáâãäå]');
9
- const regex_e = lang.regex('[èéêë]');
10
- const regex_i = lang.regex('[ìíîï]');
11
- const regex_o = lang.regex('[òóôõöő]');
12
- const regex_u = lang.regex('[ùúûüű]');
13
- const regex_y = lang.regex('[ýŷÿ]');
14
- const regex_n = lang.regex('ñ');
15
- const regex_c = lang.regex('[çc]');
16
- const regex_s = lang.regex('ß');
17
- const regex_and = lang.regex(' & ');
18
- const pairs = [regex_a, 'a', regex_e, 'e', regex_i, 'i', regex_o, 'o', regex_u, 'u', regex_y, 'y', regex_n, 'n', regex_c, 'k', regex_s, 's', regex_and, ' and '
19
- // regex_whitespace, " "
20
- // regex_strip, ""
21
- ];
22
-
23
- /**
24
- * @param {string|number} str
25
- * @this IndexInterface
26
- */
27
-
28
- function encode (str) {
29
- str = '' + str;
30
-
31
- return lang.pipeline.call(this,
32
- /* string: */lang.normalize(str).toLowerCase(),
33
- /* normalize: */!str.normalize && pairs,
34
- /* split: */lang.regex_whitespace, false)
35
- }
36
-
37
- exports.encode = encode;
@@ -1 +0,0 @@
1
- function t(t,e,n,r){if(t&&(e&&(t=i(t,e)),this.matcher&&(t=i(t,this.matcher)),this.stemmer&&t.length>1&&(t=i(t,this.stemmer)),r&&t.length>1&&(t=o(t)),n||""===n)){const e=t.split(n);return this.filter?u(e,this.filter):e}return t}const e=/[\p{Z}\p{S}\p{P}\p{C}]+/u,n=/[\u0300-\u036f]/g;function r(t){return t.normalize&&(t=t.normalize("NFD").replace(n,"")),t}function i(t,e){for(let n=0,r=e.length;n<r&&(t=t.replace(e[n],e[n+1]));n+=2);return t}function l(t){return new RegExp(t,"g")}function o(t){let e="",n="";for(let r,i=0,l=t.length;i<l;i++)(r=t[i])!==n&&(e+=n=r);return e}function u(t,e){const n=t.length,r=[];for(let i=0,l=0;i<n;i++){const n=t[i];n&&!e[n]&&(r[l++]=n)}return r}export{o as collapse,u as filter,r as normalize,t as pipeline,l as regex,e as regex_whitespace,i as replace};
@@ -1 +0,0 @@
1
- import{pipeline as o,normalize as n,regex as r,regex_whitespace as t}from"./lang.js";const a=[r("[àáâãäå]"),"a",r("[èéêë]"),"e",r("[ìíîï]"),"i",r("[òóôõöő]"),"o",r("[ùúûüű]"),"u",r("[ýŷÿ]"),"y",r("ñ"),"n",r("[çc]"),"k",r("ß"),"s",r(" & ")," and "];function e(r){return r=""+r,o.call(this,n(r).toLowerCase(),!r.normalize&&a,t,!1)}export{e as encode};