diff options
Diffstat (limited to 'node_modules/lines-and-columns')
| -rw-r--r-- | node_modules/lines-and-columns/LICENSE | 21 | ||||
| -rw-r--r-- | node_modules/lines-and-columns/README.md | 33 | ||||
| -rw-r--r-- | node_modules/lines-and-columns/build/index.d.ts | 13 | ||||
| -rw-r--r-- | node_modules/lines-and-columns/build/index.js | 62 | ||||
| -rw-r--r-- | node_modules/lines-and-columns/package.json | 49 | 
5 files changed, 178 insertions, 0 deletions
diff --git a/node_modules/lines-and-columns/LICENSE b/node_modules/lines-and-columns/LICENSE new file mode 100644 index 0000000..12978ec --- /dev/null +++ b/node_modules/lines-and-columns/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 Brian Donovan + +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. diff --git a/node_modules/lines-and-columns/README.md b/node_modules/lines-and-columns/README.md new file mode 100644 index 0000000..fa90223 --- /dev/null +++ b/node_modules/lines-and-columns/README.md @@ -0,0 +1,33 @@ +# lines-and-columns + +Maps lines and columns to character offsets and back. This is useful for parsers +and other text processors that deal in character ranges but process text with +meaningful lines and columns. + +## Install + +``` +$ npm install [--save] lines-and-columns +``` + +## Usage + +```js +import { LinesAndColumns } from 'lines-and-columns' + +const lines = new LinesAndColumns( +  `table { +  border: 0 +}` +) + +lines.locationForIndex(9) +// { line: 1, column: 1 } + +lines.indexForLocation({ line: 1, column: 2 }) +// 10 +``` + +## License + +MIT diff --git a/node_modules/lines-and-columns/build/index.d.ts b/node_modules/lines-and-columns/build/index.d.ts new file mode 100644 index 0000000..459bc1f --- /dev/null +++ b/node_modules/lines-and-columns/build/index.d.ts @@ -0,0 +1,13 @@ +export declare type SourceLocation = { +    line: number; +    column: number; +}; +export declare class LinesAndColumns { +    private string; +    private offsets; +    constructor(string: string); +    locationForIndex(index: number): SourceLocation | null; +    indexForLocation(location: SourceLocation): number | null; +    private lengthOfLine; +} +export default LinesAndColumns; diff --git a/node_modules/lines-and-columns/build/index.js b/node_modules/lines-and-columns/build/index.js new file mode 100644 index 0000000..5117cad --- /dev/null +++ b/node_modules/lines-and-columns/build/index.js @@ -0,0 +1,62 @@ +"use strict"; +exports.__esModule = true; +exports.LinesAndColumns = void 0; +var LF = '\n'; +var CR = '\r'; +var LinesAndColumns = /** @class */ (function () { +    function LinesAndColumns(string) { +        this.string = string; +        var offsets = [0]; +        for (var offset = 0; offset < string.length;) { +            switch (string[offset]) { +                case LF: +                    offset += LF.length; +                    offsets.push(offset); +                    break; +                case CR: +                    offset += CR.length; +                    if (string[offset] === LF) { +                        offset += LF.length; +                    } +                    offsets.push(offset); +                    break; +                default: +                    offset++; +                    break; +            } +        } +        this.offsets = offsets; +    } +    LinesAndColumns.prototype.locationForIndex = function (index) { +        if (index < 0 || index > this.string.length) { +            return null; +        } +        var line = 0; +        var offsets = this.offsets; +        while (offsets[line + 1] <= index) { +            line++; +        } +        var column = index - offsets[line]; +        return { line: line, column: column }; +    }; +    LinesAndColumns.prototype.indexForLocation = function (location) { +        var line = location.line, column = location.column; +        if (line < 0 || line >= this.offsets.length) { +            return null; +        } +        if (column < 0 || column > this.lengthOfLine(line)) { +            return null; +        } +        return this.offsets[line] + column; +    }; +    LinesAndColumns.prototype.lengthOfLine = function (line) { +        var offset = this.offsets[line]; +        var nextOffset = line === this.offsets.length - 1 +            ? this.string.length +            : this.offsets[line + 1]; +        return nextOffset - offset; +    }; +    return LinesAndColumns; +}()); +exports.LinesAndColumns = LinesAndColumns; +exports["default"] = LinesAndColumns; diff --git a/node_modules/lines-and-columns/package.json b/node_modules/lines-and-columns/package.json new file mode 100644 index 0000000..a12eb6b --- /dev/null +++ b/node_modules/lines-and-columns/package.json @@ -0,0 +1,49 @@ +{ +  "name": "lines-and-columns", +  "version": "1.2.4", +  "description": "Maps lines and columns to character offsets and back.", +  "keywords": [ +    "lines", +    "columns", +    "parser" +  ], +  "homepage": "https://github.com/eventualbuddha/lines-and-columns#readme", +  "bugs": { +    "url": "https://github.com/eventualbuddha/lines-and-columns/issues" +  }, +  "repository": { +    "type": "git", +    "url": "https://github.com/eventualbuddha/lines-and-columns.git" +  }, +  "license": "MIT", +  "author": "Brian Donovan <brian@donovans.cc>", +  "main": "./build/index.js", +  "types": "./build/index.d.ts", +  "files": [ +    "build" +  ], +  "scripts": { +    "build:watch": "tsc --build tsconfig.build.json --watch", +    "lint": "eslint .", +    "lint:fix": "eslint . --fix", +    "test": "is-ci test:coverage test:watch", +    "test:coverage": "jest --coverage", +    "test:watch": "jest --watch" +  }, +  "devDependencies": { +    "@types/jest": "^27.0.3", +    "@types/node": "^16.11.9", +    "@typescript-eslint/eslint-plugin": "^5.4.0", +    "@typescript-eslint/parser": "^5.4.0", +    "esbuild": "^0.13.15", +    "esbuild-runner": "^2.2.1", +    "eslint": "^8.2.0", +    "eslint-config-prettier": "^8.3.0", +    "eslint-plugin-prettier": "^4.0.0", +    "is-ci-cli": "^2.2.0", +    "jest": "^27.3.1", +    "prettier": "^2.4.1", +    "semantic-release": "^18.0.0", +    "typescript": "^4.5.2" +  } +}  | 
