feat: docker compose maybe
This commit is contained in:
		
							
								
								
									
										30
									
								
								node_modules/graphemer/CHANGELOG.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								node_modules/graphemer/CHANGELOG.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
# Changelog
 | 
			
		||||
 | 
			
		||||
All notable changes to this project will be documented in this file.
 | 
			
		||||
 | 
			
		||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
 | 
			
		||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 | 
			
		||||
 | 
			
		||||
## [1.3.0] - 2021-12-13
 | 
			
		||||
 | 
			
		||||
### Added
 | 
			
		||||
 | 
			
		||||
- Updated to include support for Unicode 14
 | 
			
		||||
 | 
			
		||||
## [1.2.0] - 2021-01-29
 | 
			
		||||
 | 
			
		||||
### Updated
 | 
			
		||||
 | 
			
		||||
- Refactored to increase speed
 | 
			
		||||
 | 
			
		||||
## [1.1.0] - 2020-09-14
 | 
			
		||||
 | 
			
		||||
### Added
 | 
			
		||||
 | 
			
		||||
- Updated to include support for Unicode 13
 | 
			
		||||
 | 
			
		||||
## [1.0.0] - 2020-09-13
 | 
			
		||||
 | 
			
		||||
- Forked from work by @JLHwung on original `Grapheme-Splitter` library: https://github.com/JLHwung/grapheme-splitter/tree/next
 | 
			
		||||
- Converted to Typescript
 | 
			
		||||
- Added development and build tooling
 | 
			
		||||
							
								
								
									
										18
									
								
								node_modules/graphemer/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								node_modules/graphemer/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
Copyright 2020 Filament (Anomalous Technologies Limited)
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
							
								
								
									
										132
									
								
								node_modules/graphemer/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										132
									
								
								node_modules/graphemer/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,132 @@
 | 
			
		||||
# Graphemer: Unicode Character Splitter 🪓
 | 
			
		||||
 | 
			
		||||
## Introduction
 | 
			
		||||
 | 
			
		||||
This library continues the work of [Grapheme Splitter](https://github.com/orling/grapheme-splitter) and supports the following unicode versions:
 | 
			
		||||
 | 
			
		||||
- Unicode 15 and below `[v1.4.0]`
 | 
			
		||||
- Unicode 14 and below `[v1.3.0]`
 | 
			
		||||
- Unicode 13 and below `[v1.1.0]`
 | 
			
		||||
- Unicode 11 and below `[v1.0.0]` (Unicode 10 supported by `grapheme-splitter`)
 | 
			
		||||
 | 
			
		||||
In JavaScript there is not always a one-to-one relationship between string characters and what a user would call a separate visual "letter". Some symbols are represented by several characters. This can cause issues when splitting strings and inadvertently cutting a multi-char letter in half, or when you need the actual number of letters in a string.
 | 
			
		||||
 | 
			
		||||
For example, emoji characters like "🌷","🎁","💩","😜" and "👍" are represented by two JavaScript characters each (high surrogate and low surrogate). That is,
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
'🌷'.length == 2;
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The combined emoji are even longer:
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
'🏳️🌈'.length == 6;
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
What's more, some languages often include combining marks - characters that are used to modify the letters before them. Common examples are the German letter ü and the Spanish letter ñ. Sometimes they can be represented alternatively both as a single character and as a letter + combining mark, with both forms equally valid:
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
var two = 'ñ'; // unnormalized two-char n+◌̃, i.e. "\u006E\u0303";
 | 
			
		||||
var one = 'ñ'; // normalized single-char, i.e. "\u00F1"
 | 
			
		||||
 | 
			
		||||
console.log(one != two); // prints 'true'
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Unicode normalization, as performed by the popular punycode.js library or ECMAScript 6's String.normalize, can **sometimes** fix those differences and turn two-char sequences into single characters. But it is **not** enough in all cases. Some languages like Hindi make extensive use of combining marks on their letters, that have no dedicated single-codepoint Unicode sequences, due to the sheer number of possible combinations.
 | 
			
		||||
For example, the Hindi word "अनुच्छेद" is comprised of 5 letters and 3 combining marks:
 | 
			
		||||
 | 
			
		||||
अ + न + ु + च + ् + छ + े + द
 | 
			
		||||
 | 
			
		||||
which is in fact just 5 user-perceived letters:
 | 
			
		||||
 | 
			
		||||
अ + नु + च् + छे + द
 | 
			
		||||
 | 
			
		||||
and which Unicode normalization would not combine properly.
 | 
			
		||||
There are also the unusual letter+combining mark combinations which have no dedicated Unicode codepoint. The string Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍A̴̵̜̰͔ͫ͗͢L̠ͨͧͩ͘G̴̻͈͍͔̹̑͗̎̅͛́Ǫ̵̹̻̝̳͂̌̌͘ obviously has 5 separate letters, but is in fact comprised of 58 JavaScript characters, most of which are combining marks.
 | 
			
		||||
 | 
			
		||||
Enter the `graphemer` library. It can be used to properly split JavaScript strings into what a human user would call separate letters (or "extended grapheme clusters" in Unicode terminology), no matter what their internal representation is. It is an implementation on the [Default Grapheme Cluster Boundary](http://unicode.org/reports/tr29/#Default_Grapheme_Cluster_Table) of [UAX #29](http://www.unicode.org/reports/tr29/).
 | 
			
		||||
 | 
			
		||||
## Installation
 | 
			
		||||
 | 
			
		||||
Install `graphemer` using the NPM command below:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
$ npm i graphemer
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Usage
 | 
			
		||||
 | 
			
		||||
If you're using [Typescript](https://www.typescriptlang.org/) or a compiler like [Babel](https://babeljs.io/) (or something like Create React App) things are pretty simple; just import, initialize and use!
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
import Graphemer from 'graphemer';
 | 
			
		||||
 | 
			
		||||
const splitter = new Graphemer();
 | 
			
		||||
 | 
			
		||||
// split the string to an array of grapheme clusters (one string each)
 | 
			
		||||
const graphemes = splitter.splitGraphemes(string);
 | 
			
		||||
 | 
			
		||||
// iterate the string to an iterable iterator of grapheme clusters (one string each)
 | 
			
		||||
const graphemeIterator = splitter.iterateGraphemes(string);
 | 
			
		||||
 | 
			
		||||
// or do this if you just need their number
 | 
			
		||||
const graphemeCount = splitter.countGraphemes(string);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
If you're using vanilla Node you can use the `require()` method.
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
const Graphemer = require('graphemer').default;
 | 
			
		||||
 | 
			
		||||
const splitter = new Graphemer();
 | 
			
		||||
 | 
			
		||||
const graphemes = splitter.splitGraphemes(string);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Examples
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
import Graphemer from 'graphemer';
 | 
			
		||||
 | 
			
		||||
const splitter = new Graphemer();
 | 
			
		||||
 | 
			
		||||
// plain latin alphabet - nothing spectacular
 | 
			
		||||
splitter.splitGraphemes('abcd'); // returns ["a", "b", "c", "d"]
 | 
			
		||||
 | 
			
		||||
// two-char emojis and six-char combined emoji
 | 
			
		||||
splitter.splitGraphemes('🌷🎁💩😜👍🏳️🌈'); // returns ["🌷","🎁","💩","😜","👍","🏳️🌈"]
 | 
			
		||||
 | 
			
		||||
// diacritics as combining marks, 10 JavaScript chars
 | 
			
		||||
splitter.splitGraphemes('Ĺo͂řȩm̅'); // returns ["Ĺ","o͂","ř","ȩ","m̅"]
 | 
			
		||||
 | 
			
		||||
// individual Korean characters (Jamo), 4 JavaScript chars
 | 
			
		||||
splitter.splitGraphemes('뎌쉐'); // returns ["뎌","쉐"]
 | 
			
		||||
 | 
			
		||||
// Hindi text with combining marks, 8 JavaScript chars
 | 
			
		||||
splitter.splitGraphemes('अनुच्छेद'); // returns ["अ","नु","च्","छे","द"]
 | 
			
		||||
 | 
			
		||||
// demonic multiple combining marks, 75 JavaScript chars
 | 
			
		||||
splitter.splitGraphemes('Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍A̴̵̜̰͔ͫ͗͢L̠ͨͧͩ͘G̴̻͈͍͔̹̑͗̎̅͛́Ǫ̵̹̻̝̳͂̌̌͘!͖̬̰̙̗̿̋ͥͥ̂ͣ̐́́͜͞'); // returns ["Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍","A̴̵̜̰͔ͫ͗͢","L̠ͨͧͩ͘","G̴̻͈͍͔̹̑͗̎̅͛́","Ǫ̵̹̻̝̳͂̌̌͘","!͖̬̰̙̗̿̋ͥͥ̂ͣ̐́́͜͞"]
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## TypeScript
 | 
			
		||||
 | 
			
		||||
Graphemer is built with TypeScript and, of course, includes type declarations.
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
import Graphemer from 'graphemer';
 | 
			
		||||
 | 
			
		||||
const splitter = new Graphemer();
 | 
			
		||||
 | 
			
		||||
const split: string[] = splitter.splitGraphemes('Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍A̴̵̜̰͔ͫ͗͢L̠ͨͧͩ͘G̴̻͈͍͔̹̑͗̎̅͛́Ǫ̵̹̻̝̳͂̌̌͘!͖̬̰̙̗̿̋ͥͥ̂ͣ̐́́͜͞');
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Contributing
 | 
			
		||||
 | 
			
		||||
See [Contribution Guide](./CONTRIBUTING.md).
 | 
			
		||||
 | 
			
		||||
## Acknowledgements
 | 
			
		||||
 | 
			
		||||
This library is a fork of the incredible work done by Orlin Georgiev and Huáng Jùnliàng at https://github.com/orling/grapheme-splitter.
 | 
			
		||||
 | 
			
		||||
The original library was heavily influenced by Devon Govett's excellent [grapheme-breaker](https://github.com/devongovett/grapheme-breaker) CoffeeScript library.
 | 
			
		||||
							
								
								
									
										41
									
								
								node_modules/graphemer/lib/Graphemer.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								node_modules/graphemer/lib/Graphemer.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,41 @@
 | 
			
		||||
import GraphemerIterator from './GraphemerIterator';
 | 
			
		||||
export default class Graphemer {
 | 
			
		||||
    /**
 | 
			
		||||
     * Returns the next grapheme break in the string after the given index
 | 
			
		||||
     * @param string {string}
 | 
			
		||||
     * @param index {number}
 | 
			
		||||
     * @returns {number}
 | 
			
		||||
     */
 | 
			
		||||
    static nextBreak(string: string, index: number): number;
 | 
			
		||||
    /**
 | 
			
		||||
     * Breaks the given string into an array of grapheme clusters
 | 
			
		||||
     * @param str {string}
 | 
			
		||||
     * @returns {string[]}
 | 
			
		||||
     */
 | 
			
		||||
    splitGraphemes(str: string): string[];
 | 
			
		||||
    /**
 | 
			
		||||
     * Returns an iterator of grapheme clusters in the given string
 | 
			
		||||
     * @param str {string}
 | 
			
		||||
     * @returns {GraphemerIterator}
 | 
			
		||||
     */
 | 
			
		||||
    iterateGraphemes(str: string): GraphemerIterator;
 | 
			
		||||
    /**
 | 
			
		||||
     * Returns the number of grapheme clusters in the given string
 | 
			
		||||
     * @param str {string}
 | 
			
		||||
     * @returns {number}
 | 
			
		||||
     */
 | 
			
		||||
    countGraphemes(str: string): number;
 | 
			
		||||
    /**
 | 
			
		||||
     * Given a Unicode code point, determines this symbol's grapheme break property
 | 
			
		||||
     * @param code {number} Unicode code point
 | 
			
		||||
     * @returns {number}
 | 
			
		||||
     */
 | 
			
		||||
    static getGraphemeBreakProperty(code: number): number;
 | 
			
		||||
    /**
 | 
			
		||||
     * Given a Unicode code point, returns if symbol is an extended pictographic or some other break
 | 
			
		||||
     * @param code {number} Unicode code point
 | 
			
		||||
     * @returns {number}
 | 
			
		||||
     */
 | 
			
		||||
    static getEmojiProperty(code: number): number;
 | 
			
		||||
}
 | 
			
		||||
//# sourceMappingURL=Graphemer.d.ts.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/graphemer/lib/Graphemer.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/graphemer/lib/Graphemer.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"file":"Graphemer.d.ts","sourceRoot":"","sources":["../src/Graphemer.ts"],"names":[],"mappings":"AAEA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,SAAS;IAC5B;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IA2CvD;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAcrC;;;;OAIG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB;IAIhD;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAcnC;;;;OAIG;IACH,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAoySrD;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CA47B9C"}
 | 
			
		||||
							
								
								
									
										11959
									
								
								node_modules/graphemer/lib/Graphemer.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										11959
									
								
								node_modules/graphemer/lib/Graphemer.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										32
									
								
								node_modules/graphemer/lib/GraphemerHelper.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								node_modules/graphemer/lib/GraphemerHelper.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
declare class GraphemerHelper {
 | 
			
		||||
    /**
 | 
			
		||||
     * Check if the the character at the position {pos} of the string is surrogate
 | 
			
		||||
     * @param str {string}
 | 
			
		||||
     * @param pos {number}
 | 
			
		||||
     * @returns {boolean}
 | 
			
		||||
     */
 | 
			
		||||
    static isSurrogate(str: string, pos: number): boolean;
 | 
			
		||||
    /**
 | 
			
		||||
     * The String.prototype.codePointAt polyfill
 | 
			
		||||
     * Private function, gets a Unicode code point from a JavaScript UTF-16 string
 | 
			
		||||
     * handling surrogate pairs appropriately
 | 
			
		||||
     * @param str {string}
 | 
			
		||||
     * @param idx {number}
 | 
			
		||||
     * @returns {number}
 | 
			
		||||
     */
 | 
			
		||||
    static codePointAt(str: string, idx: number): number;
 | 
			
		||||
    /**
 | 
			
		||||
     * Private function, returns whether a break is allowed between the two given grapheme breaking classes
 | 
			
		||||
     * Implemented the UAX #29 3.1.1 Grapheme Cluster Boundary Rules on extended grapheme clusters
 | 
			
		||||
     * @param start {number}
 | 
			
		||||
     * @param mid {Array<number>}
 | 
			
		||||
     * @param end {number}
 | 
			
		||||
     * @param startEmoji {number}
 | 
			
		||||
     * @param midEmoji {Array<number>}
 | 
			
		||||
     * @param endEmoji {number}
 | 
			
		||||
     * @returns {number}
 | 
			
		||||
     */
 | 
			
		||||
    static shouldBreak(start: number, mid: number[], end: number, startEmoji: number, midEmoji: number[], endEmoji: number): number;
 | 
			
		||||
}
 | 
			
		||||
export default GraphemerHelper;
 | 
			
		||||
//# sourceMappingURL=GraphemerHelper.d.ts.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/graphemer/lib/GraphemerHelper.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/graphemer/lib/GraphemerHelper.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"file":"GraphemerHelper.d.ts","sourceRoot":"","sources":["../src/GraphemerHelper.ts"],"names":[],"mappings":"AAUA,cAAM,eAAe;IACnB;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IASrD;;;;;;;OAOG;IACH,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAgCpD;;;;;;;;;;OAUG;IACH,MAAM,CAAC,WAAW,CAChB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EAAE,EACb,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAAE,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM;CAyHV;AAED,eAAe,eAAe,CAAC"}
 | 
			
		||||
							
								
								
									
										169
									
								
								node_modules/graphemer/lib/GraphemerHelper.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										169
									
								
								node_modules/graphemer/lib/GraphemerHelper.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,169 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
			
		||||
const boundaries_1 = require("./boundaries");
 | 
			
		||||
// BreakTypes
 | 
			
		||||
// @type {BreakType}
 | 
			
		||||
const NotBreak = 0;
 | 
			
		||||
const BreakStart = 1;
 | 
			
		||||
const Break = 2;
 | 
			
		||||
const BreakLastRegional = 3;
 | 
			
		||||
const BreakPenultimateRegional = 4;
 | 
			
		||||
class GraphemerHelper {
 | 
			
		||||
    /**
 | 
			
		||||
     * Check if the the character at the position {pos} of the string is surrogate
 | 
			
		||||
     * @param str {string}
 | 
			
		||||
     * @param pos {number}
 | 
			
		||||
     * @returns {boolean}
 | 
			
		||||
     */
 | 
			
		||||
    static isSurrogate(str, pos) {
 | 
			
		||||
        return (0xd800 <= str.charCodeAt(pos) &&
 | 
			
		||||
            str.charCodeAt(pos) <= 0xdbff &&
 | 
			
		||||
            0xdc00 <= str.charCodeAt(pos + 1) &&
 | 
			
		||||
            str.charCodeAt(pos + 1) <= 0xdfff);
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * The String.prototype.codePointAt polyfill
 | 
			
		||||
     * Private function, gets a Unicode code point from a JavaScript UTF-16 string
 | 
			
		||||
     * handling surrogate pairs appropriately
 | 
			
		||||
     * @param str {string}
 | 
			
		||||
     * @param idx {number}
 | 
			
		||||
     * @returns {number}
 | 
			
		||||
     */
 | 
			
		||||
    static codePointAt(str, idx) {
 | 
			
		||||
        if (idx === undefined) {
 | 
			
		||||
            idx = 0;
 | 
			
		||||
        }
 | 
			
		||||
        const code = str.charCodeAt(idx);
 | 
			
		||||
        // if a high surrogate
 | 
			
		||||
        if (0xd800 <= code && code <= 0xdbff && idx < str.length - 1) {
 | 
			
		||||
            const hi = code;
 | 
			
		||||
            const low = str.charCodeAt(idx + 1);
 | 
			
		||||
            if (0xdc00 <= low && low <= 0xdfff) {
 | 
			
		||||
                return (hi - 0xd800) * 0x400 + (low - 0xdc00) + 0x10000;
 | 
			
		||||
            }
 | 
			
		||||
            return hi;
 | 
			
		||||
        }
 | 
			
		||||
        // if a low surrogate
 | 
			
		||||
        if (0xdc00 <= code && code <= 0xdfff && idx >= 1) {
 | 
			
		||||
            const hi = str.charCodeAt(idx - 1);
 | 
			
		||||
            const low = code;
 | 
			
		||||
            if (0xd800 <= hi && hi <= 0xdbff) {
 | 
			
		||||
                return (hi - 0xd800) * 0x400 + (low - 0xdc00) + 0x10000;
 | 
			
		||||
            }
 | 
			
		||||
            return low;
 | 
			
		||||
        }
 | 
			
		||||
        // just return the char if an unmatched surrogate half or a
 | 
			
		||||
        // single-char codepoint
 | 
			
		||||
        return code;
 | 
			
		||||
    }
 | 
			
		||||
    //
 | 
			
		||||
    /**
 | 
			
		||||
     * Private function, returns whether a break is allowed between the two given grapheme breaking classes
 | 
			
		||||
     * Implemented the UAX #29 3.1.1 Grapheme Cluster Boundary Rules on extended grapheme clusters
 | 
			
		||||
     * @param start {number}
 | 
			
		||||
     * @param mid {Array<number>}
 | 
			
		||||
     * @param end {number}
 | 
			
		||||
     * @param startEmoji {number}
 | 
			
		||||
     * @param midEmoji {Array<number>}
 | 
			
		||||
     * @param endEmoji {number}
 | 
			
		||||
     * @returns {number}
 | 
			
		||||
     */
 | 
			
		||||
    static shouldBreak(start, mid, end, startEmoji, midEmoji, endEmoji) {
 | 
			
		||||
        const all = [start].concat(mid).concat([end]);
 | 
			
		||||
        const allEmoji = [startEmoji].concat(midEmoji).concat([endEmoji]);
 | 
			
		||||
        const previous = all[all.length - 2];
 | 
			
		||||
        const next = end;
 | 
			
		||||
        const nextEmoji = endEmoji;
 | 
			
		||||
        // Lookahead terminator for:
 | 
			
		||||
        // GB12. ^ (RI RI)* RI ? RI
 | 
			
		||||
        // GB13. [^RI] (RI RI)* RI ? RI
 | 
			
		||||
        const rIIndex = all.lastIndexOf(boundaries_1.CLUSTER_BREAK.REGIONAL_INDICATOR);
 | 
			
		||||
        if (rIIndex > 0 &&
 | 
			
		||||
            all.slice(1, rIIndex).every(function (c) {
 | 
			
		||||
                return c === boundaries_1.CLUSTER_BREAK.REGIONAL_INDICATOR;
 | 
			
		||||
            }) &&
 | 
			
		||||
            [boundaries_1.CLUSTER_BREAK.PREPEND, boundaries_1.CLUSTER_BREAK.REGIONAL_INDICATOR].indexOf(previous) === -1) {
 | 
			
		||||
            if (all.filter(function (c) {
 | 
			
		||||
                return c === boundaries_1.CLUSTER_BREAK.REGIONAL_INDICATOR;
 | 
			
		||||
            }).length %
 | 
			
		||||
                2 ===
 | 
			
		||||
                1) {
 | 
			
		||||
                return BreakLastRegional;
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
                return BreakPenultimateRegional;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        // GB3. CR × LF
 | 
			
		||||
        if (previous === boundaries_1.CLUSTER_BREAK.CR && next === boundaries_1.CLUSTER_BREAK.LF) {
 | 
			
		||||
            return NotBreak;
 | 
			
		||||
        }
 | 
			
		||||
        // GB4. (Control|CR|LF) ÷
 | 
			
		||||
        else if (previous === boundaries_1.CLUSTER_BREAK.CONTROL ||
 | 
			
		||||
            previous === boundaries_1.CLUSTER_BREAK.CR ||
 | 
			
		||||
            previous === boundaries_1.CLUSTER_BREAK.LF) {
 | 
			
		||||
            return BreakStart;
 | 
			
		||||
        }
 | 
			
		||||
        // GB5. ÷ (Control|CR|LF)
 | 
			
		||||
        else if (next === boundaries_1.CLUSTER_BREAK.CONTROL ||
 | 
			
		||||
            next === boundaries_1.CLUSTER_BREAK.CR ||
 | 
			
		||||
            next === boundaries_1.CLUSTER_BREAK.LF) {
 | 
			
		||||
            return BreakStart;
 | 
			
		||||
        }
 | 
			
		||||
        // GB6. L × (L|V|LV|LVT)
 | 
			
		||||
        else if (previous === boundaries_1.CLUSTER_BREAK.L &&
 | 
			
		||||
            (next === boundaries_1.CLUSTER_BREAK.L ||
 | 
			
		||||
                next === boundaries_1.CLUSTER_BREAK.V ||
 | 
			
		||||
                next === boundaries_1.CLUSTER_BREAK.LV ||
 | 
			
		||||
                next === boundaries_1.CLUSTER_BREAK.LVT)) {
 | 
			
		||||
            return NotBreak;
 | 
			
		||||
        }
 | 
			
		||||
        // GB7. (LV|V) × (V|T)
 | 
			
		||||
        else if ((previous === boundaries_1.CLUSTER_BREAK.LV || previous === boundaries_1.CLUSTER_BREAK.V) &&
 | 
			
		||||
            (next === boundaries_1.CLUSTER_BREAK.V || next === boundaries_1.CLUSTER_BREAK.T)) {
 | 
			
		||||
            return NotBreak;
 | 
			
		||||
        }
 | 
			
		||||
        // GB8. (LVT|T) × (T)
 | 
			
		||||
        else if ((previous === boundaries_1.CLUSTER_BREAK.LVT || previous === boundaries_1.CLUSTER_BREAK.T) &&
 | 
			
		||||
            next === boundaries_1.CLUSTER_BREAK.T) {
 | 
			
		||||
            return NotBreak;
 | 
			
		||||
        }
 | 
			
		||||
        // GB9. × (Extend|ZWJ)
 | 
			
		||||
        else if (next === boundaries_1.CLUSTER_BREAK.EXTEND || next === boundaries_1.CLUSTER_BREAK.ZWJ) {
 | 
			
		||||
            return NotBreak;
 | 
			
		||||
        }
 | 
			
		||||
        // GB9a. × SpacingMark
 | 
			
		||||
        else if (next === boundaries_1.CLUSTER_BREAK.SPACINGMARK) {
 | 
			
		||||
            return NotBreak;
 | 
			
		||||
        }
 | 
			
		||||
        // GB9b. Prepend ×
 | 
			
		||||
        else if (previous === boundaries_1.CLUSTER_BREAK.PREPEND) {
 | 
			
		||||
            return NotBreak;
 | 
			
		||||
        }
 | 
			
		||||
        // GB11. \p{Extended_Pictographic} Extend* ZWJ × \p{Extended_Pictographic}
 | 
			
		||||
        const previousNonExtendIndex = allEmoji
 | 
			
		||||
            .slice(0, -1)
 | 
			
		||||
            .lastIndexOf(boundaries_1.EXTENDED_PICTOGRAPHIC);
 | 
			
		||||
        if (previousNonExtendIndex !== -1 &&
 | 
			
		||||
            allEmoji[previousNonExtendIndex] === boundaries_1.EXTENDED_PICTOGRAPHIC &&
 | 
			
		||||
            all.slice(previousNonExtendIndex + 1, -2).every(function (c) {
 | 
			
		||||
                return c === boundaries_1.CLUSTER_BREAK.EXTEND;
 | 
			
		||||
            }) &&
 | 
			
		||||
            previous === boundaries_1.CLUSTER_BREAK.ZWJ &&
 | 
			
		||||
            nextEmoji === boundaries_1.EXTENDED_PICTOGRAPHIC) {
 | 
			
		||||
            return NotBreak;
 | 
			
		||||
        }
 | 
			
		||||
        // GB12. ^ (RI RI)* RI × RI
 | 
			
		||||
        // GB13. [^RI] (RI RI)* RI × RI
 | 
			
		||||
        if (mid.indexOf(boundaries_1.CLUSTER_BREAK.REGIONAL_INDICATOR) !== -1) {
 | 
			
		||||
            return Break;
 | 
			
		||||
        }
 | 
			
		||||
        if (previous === boundaries_1.CLUSTER_BREAK.REGIONAL_INDICATOR &&
 | 
			
		||||
            next === boundaries_1.CLUSTER_BREAK.REGIONAL_INDICATOR) {
 | 
			
		||||
            return NotBreak;
 | 
			
		||||
        }
 | 
			
		||||
        // GB999. Any ? Any
 | 
			
		||||
        return BreakStart;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
exports.default = GraphemerHelper;
 | 
			
		||||
							
								
								
									
										22
									
								
								node_modules/graphemer/lib/GraphemerIterator.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								node_modules/graphemer/lib/GraphemerIterator.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
/**
 | 
			
		||||
 * GraphemerIterator
 | 
			
		||||
 *
 | 
			
		||||
 * Takes a string and a "BreakHandler" method during initialisation
 | 
			
		||||
 * and creates an iterable object that returns individual graphemes.
 | 
			
		||||
 *
 | 
			
		||||
 * @param str {string}
 | 
			
		||||
 * @return GraphemerIterator
 | 
			
		||||
 */
 | 
			
		||||
declare class GraphemerIterator implements Iterator<string> {
 | 
			
		||||
    private _index;
 | 
			
		||||
    private _str;
 | 
			
		||||
    private _nextBreak;
 | 
			
		||||
    constructor(str: string, nextBreak: (str: string, index: number) => number);
 | 
			
		||||
    [Symbol.iterator](): this;
 | 
			
		||||
    next(): {
 | 
			
		||||
        value: string;
 | 
			
		||||
        done: boolean;
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
export default GraphemerIterator;
 | 
			
		||||
//# sourceMappingURL=GraphemerIterator.d.ts.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/graphemer/lib/GraphemerIterator.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/graphemer/lib/GraphemerIterator.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"file":"GraphemerIterator.d.ts","sourceRoot":"","sources":["../src/GraphemerIterator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAM,iBAAkB,YAAW,QAAQ,CAAC,MAAM,CAAC;IACjD,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,UAAU,CAAyC;gBAE/C,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM;IAK1E,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB,IAAI;;;;CAcL;AAED,eAAe,iBAAiB,CAAC"}
 | 
			
		||||
							
								
								
									
										36
									
								
								node_modules/graphemer/lib/GraphemerIterator.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								node_modules/graphemer/lib/GraphemerIterator.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
			
		||||
/**
 | 
			
		||||
 * GraphemerIterator
 | 
			
		||||
 *
 | 
			
		||||
 * Takes a string and a "BreakHandler" method during initialisation
 | 
			
		||||
 * and creates an iterable object that returns individual graphemes.
 | 
			
		||||
 *
 | 
			
		||||
 * @param str {string}
 | 
			
		||||
 * @return GraphemerIterator
 | 
			
		||||
 */
 | 
			
		||||
class GraphemerIterator {
 | 
			
		||||
    constructor(str, nextBreak) {
 | 
			
		||||
        this._index = 0;
 | 
			
		||||
        this._str = str;
 | 
			
		||||
        this._nextBreak = nextBreak;
 | 
			
		||||
    }
 | 
			
		||||
    [Symbol.iterator]() {
 | 
			
		||||
        return this;
 | 
			
		||||
    }
 | 
			
		||||
    next() {
 | 
			
		||||
        let brk;
 | 
			
		||||
        if ((brk = this._nextBreak(this._str, this._index)) < this._str.length) {
 | 
			
		||||
            const value = this._str.slice(this._index, brk);
 | 
			
		||||
            this._index = brk;
 | 
			
		||||
            return { value: value, done: false };
 | 
			
		||||
        }
 | 
			
		||||
        if (this._index < this._str.length) {
 | 
			
		||||
            const value = this._str.slice(this._index);
 | 
			
		||||
            this._index = this._str.length;
 | 
			
		||||
            return { value: value, done: false };
 | 
			
		||||
        }
 | 
			
		||||
        return { value: undefined, done: true };
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
exports.default = GraphemerIterator;
 | 
			
		||||
							
								
								
									
										35
									
								
								node_modules/graphemer/lib/boundaries.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								node_modules/graphemer/lib/boundaries.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
/**
 | 
			
		||||
 * The Grapheme_Cluster_Break property value
 | 
			
		||||
 * @see https://www.unicode.org/reports/tr29/#Default_Grapheme_Cluster_Table
 | 
			
		||||
 */
 | 
			
		||||
export declare enum CLUSTER_BREAK {
 | 
			
		||||
    CR = 0,
 | 
			
		||||
    LF = 1,
 | 
			
		||||
    CONTROL = 2,
 | 
			
		||||
    EXTEND = 3,
 | 
			
		||||
    REGIONAL_INDICATOR = 4,
 | 
			
		||||
    SPACINGMARK = 5,
 | 
			
		||||
    L = 6,
 | 
			
		||||
    V = 7,
 | 
			
		||||
    T = 8,
 | 
			
		||||
    LV = 9,
 | 
			
		||||
    LVT = 10,
 | 
			
		||||
    OTHER = 11,
 | 
			
		||||
    PREPEND = 12,
 | 
			
		||||
    E_BASE = 13,
 | 
			
		||||
    E_MODIFIER = 14,
 | 
			
		||||
    ZWJ = 15,
 | 
			
		||||
    GLUE_AFTER_ZWJ = 16,
 | 
			
		||||
    E_BASE_GAZ = 17
 | 
			
		||||
}
 | 
			
		||||
/**
 | 
			
		||||
 * The Emoji character property is an extension of UCD but shares the same namespace and structure
 | 
			
		||||
 * @see http://www.unicode.org/reports/tr51/tr51-14.html#Emoji_Properties_and_Data_Files
 | 
			
		||||
 *
 | 
			
		||||
 * Here we model Extended_Pictograhpic only to implement UAX #29 GB11
 | 
			
		||||
 * \p{Extended_Pictographic} Extend* ZWJ	×	\p{Extended_Pictographic}
 | 
			
		||||
 *
 | 
			
		||||
 * The Emoji character property should not be mixed with Grapheme_Cluster_Break since they are not exclusive
 | 
			
		||||
 */
 | 
			
		||||
export declare const EXTENDED_PICTOGRAPHIC = 101;
 | 
			
		||||
//# sourceMappingURL=boundaries.d.ts.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/graphemer/lib/boundaries.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/graphemer/lib/boundaries.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"file":"boundaries.d.ts","sourceRoot":"","sources":["../src/boundaries.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oBAAY,aAAa;IACvB,EAAE,IAAI;IACN,EAAE,IAAI;IACN,OAAO,IAAI;IACX,MAAM,IAAI;IACV,kBAAkB,IAAI;IACtB,WAAW,IAAI;IACf,CAAC,IAAI;IACL,CAAC,IAAI;IACL,CAAC,IAAI;IACL,EAAE,IAAI;IACN,GAAG,KAAK;IACR,KAAK,KAAK;IACV,OAAO,KAAK;IACZ,MAAM,KAAK;IACX,UAAU,KAAK;IACf,GAAG,KAAK;IACR,cAAc,KAAK;IACnB,UAAU,KAAK;CAChB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC"}
 | 
			
		||||
							
								
								
									
										38
									
								
								node_modules/graphemer/lib/boundaries.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								node_modules/graphemer/lib/boundaries.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
/**
 | 
			
		||||
 * The Grapheme_Cluster_Break property value
 | 
			
		||||
 * @see https://www.unicode.org/reports/tr29/#Default_Grapheme_Cluster_Table
 | 
			
		||||
 */
 | 
			
		||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
			
		||||
exports.EXTENDED_PICTOGRAPHIC = exports.CLUSTER_BREAK = void 0;
 | 
			
		||||
var CLUSTER_BREAK;
 | 
			
		||||
(function (CLUSTER_BREAK) {
 | 
			
		||||
    CLUSTER_BREAK[CLUSTER_BREAK["CR"] = 0] = "CR";
 | 
			
		||||
    CLUSTER_BREAK[CLUSTER_BREAK["LF"] = 1] = "LF";
 | 
			
		||||
    CLUSTER_BREAK[CLUSTER_BREAK["CONTROL"] = 2] = "CONTROL";
 | 
			
		||||
    CLUSTER_BREAK[CLUSTER_BREAK["EXTEND"] = 3] = "EXTEND";
 | 
			
		||||
    CLUSTER_BREAK[CLUSTER_BREAK["REGIONAL_INDICATOR"] = 4] = "REGIONAL_INDICATOR";
 | 
			
		||||
    CLUSTER_BREAK[CLUSTER_BREAK["SPACINGMARK"] = 5] = "SPACINGMARK";
 | 
			
		||||
    CLUSTER_BREAK[CLUSTER_BREAK["L"] = 6] = "L";
 | 
			
		||||
    CLUSTER_BREAK[CLUSTER_BREAK["V"] = 7] = "V";
 | 
			
		||||
    CLUSTER_BREAK[CLUSTER_BREAK["T"] = 8] = "T";
 | 
			
		||||
    CLUSTER_BREAK[CLUSTER_BREAK["LV"] = 9] = "LV";
 | 
			
		||||
    CLUSTER_BREAK[CLUSTER_BREAK["LVT"] = 10] = "LVT";
 | 
			
		||||
    CLUSTER_BREAK[CLUSTER_BREAK["OTHER"] = 11] = "OTHER";
 | 
			
		||||
    CLUSTER_BREAK[CLUSTER_BREAK["PREPEND"] = 12] = "PREPEND";
 | 
			
		||||
    CLUSTER_BREAK[CLUSTER_BREAK["E_BASE"] = 13] = "E_BASE";
 | 
			
		||||
    CLUSTER_BREAK[CLUSTER_BREAK["E_MODIFIER"] = 14] = "E_MODIFIER";
 | 
			
		||||
    CLUSTER_BREAK[CLUSTER_BREAK["ZWJ"] = 15] = "ZWJ";
 | 
			
		||||
    CLUSTER_BREAK[CLUSTER_BREAK["GLUE_AFTER_ZWJ"] = 16] = "GLUE_AFTER_ZWJ";
 | 
			
		||||
    CLUSTER_BREAK[CLUSTER_BREAK["E_BASE_GAZ"] = 17] = "E_BASE_GAZ";
 | 
			
		||||
})(CLUSTER_BREAK = exports.CLUSTER_BREAK || (exports.CLUSTER_BREAK = {}));
 | 
			
		||||
/**
 | 
			
		||||
 * The Emoji character property is an extension of UCD but shares the same namespace and structure
 | 
			
		||||
 * @see http://www.unicode.org/reports/tr51/tr51-14.html#Emoji_Properties_and_Data_Files
 | 
			
		||||
 *
 | 
			
		||||
 * Here we model Extended_Pictograhpic only to implement UAX #29 GB11
 | 
			
		||||
 * \p{Extended_Pictographic} Extend* ZWJ	×	\p{Extended_Pictographic}
 | 
			
		||||
 *
 | 
			
		||||
 * The Emoji character property should not be mixed with Grapheme_Cluster_Break since they are not exclusive
 | 
			
		||||
 */
 | 
			
		||||
exports.EXTENDED_PICTOGRAPHIC = 101;
 | 
			
		||||
							
								
								
									
										3
									
								
								node_modules/graphemer/lib/index.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								node_modules/graphemer/lib/index.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
import Graphemer from './Graphemer';
 | 
			
		||||
export default Graphemer;
 | 
			
		||||
//# sourceMappingURL=index.d.ts.map
 | 
			
		||||
							
								
								
									
										1
									
								
								node_modules/graphemer/lib/index.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/graphemer/lib/index.d.ts.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,eAAe,SAAS,CAAC"}
 | 
			
		||||
							
								
								
									
										7
									
								
								node_modules/graphemer/lib/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/graphemer/lib/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
var __importDefault = (this && this.__importDefault) || function (mod) {
 | 
			
		||||
    return (mod && mod.__esModule) ? mod : { "default": mod };
 | 
			
		||||
};
 | 
			
		||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
			
		||||
const Graphemer_1 = __importDefault(require("./Graphemer"));
 | 
			
		||||
exports.default = Graphemer_1.default;
 | 
			
		||||
							
								
								
									
										54
									
								
								node_modules/graphemer/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								node_modules/graphemer/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "graphemer",
 | 
			
		||||
  "version": "1.4.0",
 | 
			
		||||
  "description": "A JavaScript library that breaks strings into their individual user-perceived characters (including emojis!)",
 | 
			
		||||
  "homepage": "https://github.com/flmnt/graphemer",
 | 
			
		||||
  "author": "Matt Davies <matt@filament.so> (https://github.com/mattpauldavies)",
 | 
			
		||||
  "contributors": [
 | 
			
		||||
    "Orlin Georgiev (https://github.com/orling)",
 | 
			
		||||
    "Huáng Jùnliàng (https://github.com/JLHwung)"
 | 
			
		||||
  ],
 | 
			
		||||
  "main": "./lib/index.js",
 | 
			
		||||
  "types": "./lib/index.d.ts",
 | 
			
		||||
  "files": [
 | 
			
		||||
    "lib"
 | 
			
		||||
  ],
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "keywords": [
 | 
			
		||||
    "utf-8",
 | 
			
		||||
    "strings",
 | 
			
		||||
    "emoji",
 | 
			
		||||
    "split"
 | 
			
		||||
  ],
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "prepublishOnly": "npm run build",
 | 
			
		||||
    "build": "tsc --project tsconfig.json",
 | 
			
		||||
    "pretest": "npm run build",
 | 
			
		||||
    "test": "ts-node node_modules/tape/bin/tape tests/**.ts",
 | 
			
		||||
    "prettier:check": "prettier --check .",
 | 
			
		||||
    "prettier:fix": "prettier --write ."
 | 
			
		||||
  },
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
    "url": "https://github.com/flmnt/graphemer.git"
 | 
			
		||||
  },
 | 
			
		||||
  "bugs": "https://github.com/flmnt/graphemer/issues",
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@types/tape": "^4.13.0",
 | 
			
		||||
    "husky": "^4.3.0",
 | 
			
		||||
    "lint-staged": "^10.3.0",
 | 
			
		||||
    "prettier": "^2.1.1",
 | 
			
		||||
    "tape": "^4.6.3",
 | 
			
		||||
    "ts-node": "^9.0.0",
 | 
			
		||||
    "typescript": "^4.0.2"
 | 
			
		||||
  },
 | 
			
		||||
  "husky": {
 | 
			
		||||
    "hooks": {
 | 
			
		||||
      "pre-commit": "lint-staged",
 | 
			
		||||
      "pre-push": "npm test"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "lint-staged": {
 | 
			
		||||
    "*.{js,ts,md,json}": "prettier --write"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user