init
This commit is contained in:
		
							
								
								
									
										21
									
								
								node_modules/@volar/source-map/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								node_modules/@volar/source-map/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
MIT License
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2021-present Johnson Chu
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
							
								
								
									
										28
									
								
								node_modules/@volar/source-map/index.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								node_modules/@volar/source-map/index.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
import { Segment, StackNode } from 'muggle-string';
 | 
			
		||||
export * from 'muggle-string';
 | 
			
		||||
export interface Mapping<T = any> {
 | 
			
		||||
    source?: string;
 | 
			
		||||
    sourceRange: [number, number];
 | 
			
		||||
    generatedRange: [number, number];
 | 
			
		||||
    data: T;
 | 
			
		||||
}
 | 
			
		||||
export interface Stack {
 | 
			
		||||
    source: string;
 | 
			
		||||
    range: [number, number];
 | 
			
		||||
}
 | 
			
		||||
export declare class SourceMap<Data = any> {
 | 
			
		||||
    readonly mappings: Mapping<Data>[];
 | 
			
		||||
    private _memo;
 | 
			
		||||
    private get memo();
 | 
			
		||||
    constructor(mappings: Mapping<Data>[]);
 | 
			
		||||
    toSourceOffset(start: number, baseOnRight?: boolean): readonly [number, Mapping<Data>] | undefined;
 | 
			
		||||
    toGeneratedOffset(start: number, baseOnRight?: boolean): readonly [number, Mapping<Data>] | undefined;
 | 
			
		||||
    toSourceOffsets(start: number, baseOnRight?: boolean): Generator<readonly [number, Mapping<Data>], void, unknown>;
 | 
			
		||||
    toGeneratedOffsets(start: number, baseOnRight?: boolean): Generator<readonly [number, Mapping<Data>], void, unknown>;
 | 
			
		||||
    matching(startOffset: number, from: 'sourceRange' | 'generatedRange', to: 'sourceRange' | 'generatedRange', baseOnRight: boolean): Generator<readonly [number, Mapping<Data>], void, unknown>;
 | 
			
		||||
    matchOffset(start: number, mappedFromRange: [number, number], mappedToRange: [number, number], baseOnRight: boolean): number | undefined;
 | 
			
		||||
    private binarySearchMemo;
 | 
			
		||||
}
 | 
			
		||||
export declare function buildMappings<T>(chunks: Segment<T>[]): Mapping<T>[];
 | 
			
		||||
export declare function buildStacks<T>(chunks: Segment<T>[], stacks: StackNode[]): Stack[];
 | 
			
		||||
//# sourceMappingURL=index.d.ts.map
 | 
			
		||||
							
								
								
									
										182
									
								
								node_modules/@volar/source-map/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										182
									
								
								node_modules/@volar/source-map/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,182 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
 | 
			
		||||
    if (k2 === undefined) k2 = k;
 | 
			
		||||
    var desc = Object.getOwnPropertyDescriptor(m, k);
 | 
			
		||||
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
 | 
			
		||||
      desc = { enumerable: true, get: function() { return m[k]; } };
 | 
			
		||||
    }
 | 
			
		||||
    Object.defineProperty(o, k2, desc);
 | 
			
		||||
}) : (function(o, m, k, k2) {
 | 
			
		||||
    if (k2 === undefined) k2 = k;
 | 
			
		||||
    o[k2] = m[k];
 | 
			
		||||
}));
 | 
			
		||||
var __exportStar = (this && this.__exportStar) || function(m, exports) {
 | 
			
		||||
    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
 | 
			
		||||
};
 | 
			
		||||
Object.defineProperty(exports, "__esModule", { value: true });
 | 
			
		||||
exports.buildStacks = exports.buildMappings = exports.SourceMap = void 0;
 | 
			
		||||
__exportStar(require("muggle-string"), exports);
 | 
			
		||||
class SourceMap {
 | 
			
		||||
    get memo() {
 | 
			
		||||
        if (!this._memo) {
 | 
			
		||||
            const self = this;
 | 
			
		||||
            this._memo = {
 | 
			
		||||
                sourceRange: createMemo('sourceRange'),
 | 
			
		||||
                generatedRange: createMemo('generatedRange'),
 | 
			
		||||
            };
 | 
			
		||||
            function createMemo(key) {
 | 
			
		||||
                const offsets = new Set();
 | 
			
		||||
                for (const mapping of self.mappings) {
 | 
			
		||||
                    offsets.add(mapping[key][0]);
 | 
			
		||||
                    offsets.add(mapping[key][1]);
 | 
			
		||||
                }
 | 
			
		||||
                const arr = [...offsets].sort((a, b) => a - b).map(offset => ({ offset, mappings: new Set() }));
 | 
			
		||||
                for (const mapping of self.mappings) {
 | 
			
		||||
                    const startIndex = binarySearch(mapping[key][0]);
 | 
			
		||||
                    const endIndex = binarySearch(mapping[key][1]);
 | 
			
		||||
                    for (let i = startIndex; i <= endIndex; i++) {
 | 
			
		||||
                        arr[i].mappings.add(mapping);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                return arr;
 | 
			
		||||
                function binarySearch(start) {
 | 
			
		||||
                    let low = 0;
 | 
			
		||||
                    let high = arr.length - 1;
 | 
			
		||||
                    while (low <= high) {
 | 
			
		||||
                        const mid = Math.floor((low + high) / 2);
 | 
			
		||||
                        const midValue = arr[mid];
 | 
			
		||||
                        if (midValue.offset < start) {
 | 
			
		||||
                            low = mid + 1;
 | 
			
		||||
                        }
 | 
			
		||||
                        else if (midValue.offset > start) {
 | 
			
		||||
                            high = mid - 1;
 | 
			
		||||
                        }
 | 
			
		||||
                        else {
 | 
			
		||||
                            return mid;
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return this._memo;
 | 
			
		||||
    }
 | 
			
		||||
    constructor(mappings) {
 | 
			
		||||
        this.mappings = mappings;
 | 
			
		||||
    }
 | 
			
		||||
    toSourceOffset(start, baseOnRight = false) {
 | 
			
		||||
        for (const mapped of this.matching(start, 'generatedRange', 'sourceRange', baseOnRight)) {
 | 
			
		||||
            return mapped;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    toGeneratedOffset(start, baseOnRight = false) {
 | 
			
		||||
        for (const mapped of this.matching(start, 'sourceRange', 'generatedRange', baseOnRight)) {
 | 
			
		||||
            return mapped;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    toSourceOffsets(start, baseOnRight = false) {
 | 
			
		||||
        return this.matching(start, 'generatedRange', 'sourceRange', baseOnRight);
 | 
			
		||||
    }
 | 
			
		||||
    toGeneratedOffsets(start, baseOnRight = false) {
 | 
			
		||||
        return this.matching(start, 'sourceRange', 'generatedRange', baseOnRight);
 | 
			
		||||
    }
 | 
			
		||||
    *matching(startOffset, from, to, baseOnRight) {
 | 
			
		||||
        const memo = this.memo[from];
 | 
			
		||||
        if (memo.length === 0)
 | 
			
		||||
            return;
 | 
			
		||||
        const { low: start, high: end, } = this.binarySearchMemo(memo, startOffset);
 | 
			
		||||
        const skip = new Set();
 | 
			
		||||
        for (let i = start; i <= end; i++) {
 | 
			
		||||
            for (const mapping of memo[i].mappings) {
 | 
			
		||||
                if (skip.has(mapping)) {
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
                skip.add(mapping);
 | 
			
		||||
                const mapped = this.matchOffset(startOffset, mapping[from], mapping[to], baseOnRight);
 | 
			
		||||
                if (mapped !== undefined) {
 | 
			
		||||
                    yield [mapped, mapping];
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    matchOffset(start, mappedFromRange, mappedToRange, baseOnRight) {
 | 
			
		||||
        if (start >= mappedFromRange[0] && start <= mappedFromRange[1]) {
 | 
			
		||||
            let offset = mappedToRange[0] + start - mappedFromRange[0];
 | 
			
		||||
            if (baseOnRight) {
 | 
			
		||||
                offset += (mappedToRange[1] - mappedToRange[0]) - (mappedFromRange[1] - mappedFromRange[0]);
 | 
			
		||||
            }
 | 
			
		||||
            if (offset >= mappedToRange[0] && offset <= mappedToRange[1]) {
 | 
			
		||||
                return offset;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    binarySearchMemo(array, start) {
 | 
			
		||||
        let low = 0;
 | 
			
		||||
        let high = array.length - 1;
 | 
			
		||||
        while (low <= high) {
 | 
			
		||||
            const mid = Math.floor((low + high) / 2);
 | 
			
		||||
            const midValue = array[mid];
 | 
			
		||||
            if (midValue.offset < start) {
 | 
			
		||||
                low = mid + 1;
 | 
			
		||||
            }
 | 
			
		||||
            else if (midValue.offset > start) {
 | 
			
		||||
                high = mid - 1;
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
                low = mid;
 | 
			
		||||
                high = mid;
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return {
 | 
			
		||||
            low: Math.max(Math.min(low, high, array.length - 1), 0),
 | 
			
		||||
            high: Math.min(Math.max(low, high, 0), array.length - 1),
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
exports.SourceMap = SourceMap;
 | 
			
		||||
function buildMappings(chunks) {
 | 
			
		||||
    let length = 0;
 | 
			
		||||
    const mappings = [];
 | 
			
		||||
    for (const segment of chunks) {
 | 
			
		||||
        if (typeof segment === 'string') {
 | 
			
		||||
            length += segment.length;
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            mappings.push({
 | 
			
		||||
                generatedRange: [length, length + segment[0].length],
 | 
			
		||||
                source: segment[1],
 | 
			
		||||
                sourceRange: typeof segment[2] === 'number' ? [segment[2], segment[2] + segment[0].length] : segment[2],
 | 
			
		||||
                // @ts-ignore
 | 
			
		||||
                data: segment[3],
 | 
			
		||||
            });
 | 
			
		||||
            length += segment[0].length;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return mappings;
 | 
			
		||||
}
 | 
			
		||||
exports.buildMappings = buildMappings;
 | 
			
		||||
function buildStacks(chunks, stacks) {
 | 
			
		||||
    let offset = 0;
 | 
			
		||||
    let index = 0;
 | 
			
		||||
    const result = [];
 | 
			
		||||
    for (const stack of stacks) {
 | 
			
		||||
        const start = offset;
 | 
			
		||||
        for (let i = 0; i < stack.length; i++) {
 | 
			
		||||
            const segment = chunks[index + i];
 | 
			
		||||
            if (typeof segment === 'string') {
 | 
			
		||||
                offset += segment.length;
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
                offset += segment[0].length;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        index += stack.length;
 | 
			
		||||
        result.push({
 | 
			
		||||
            range: [start, offset],
 | 
			
		||||
            source: stack.stack,
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
    return result;
 | 
			
		||||
}
 | 
			
		||||
exports.buildStacks = buildStacks;
 | 
			
		||||
//# sourceMappingURL=index.js.map
 | 
			
		||||
							
								
								
									
										18
									
								
								node_modules/@volar/source-map/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								node_modules/@volar/source-map/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
{
 | 
			
		||||
	"name": "@volar/source-map",
 | 
			
		||||
	"version": "1.11.1",
 | 
			
		||||
	"license": "MIT",
 | 
			
		||||
	"files": [
 | 
			
		||||
		"**/*.js",
 | 
			
		||||
		"**/*.d.ts"
 | 
			
		||||
	],
 | 
			
		||||
	"repository": {
 | 
			
		||||
		"type": "git",
 | 
			
		||||
		"url": "https://github.com/volarjs/volar.js.git",
 | 
			
		||||
		"directory": "packages/source-map"
 | 
			
		||||
	},
 | 
			
		||||
	"dependencies": {
 | 
			
		||||
		"muggle-string": "^0.3.1"
 | 
			
		||||
	},
 | 
			
		||||
	"gitHead": "188f49ee79bd2ea8e8fc32b80003c85f79868f9d"
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user