Socket
Socket
Sign inDemoInstall

sprotty

Package Overview
Dependencies
Maintainers
4
Versions
237
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sprotty - npm Package Compare versions

Comparing version 0.15.0-next.25ffc24.11 to 0.15.0-next.28dc7b8.23

1

lib/base/commands/command.d.ts

@@ -16,2 +16,3 @@ /********************************************************************************

********************************************************************************/
import 'reflect-metadata';
import { Action } from "sprotty-protocol/lib/actions";

@@ -18,0 +19,0 @@ import { ILogger } from "../../utils/logging";

@@ -25,2 +25,3 @@ "use strict";

exports.ResetCommand = exports.SystemCommand = exports.PopupCommand = exports.HiddenCommand = exports.MergeableCommand = exports.Command = void 0;
require("reflect-metadata");
const inversify_1 = require("inversify");

@@ -27,0 +28,0 @@ /**

@@ -21,2 +21,4 @@ /********************************************************************************

import { CustomFeatures } from '../model/smodel-factory';
import { Point } from 'sprotty-protocol';
import { ILogger } from '../../utils/logging';
/**

@@ -73,2 +75,3 @@ * Arguments for `IView` rendering.

export declare class ViewRegistry extends InstanceRegistry<IView> {
protected logger: ILogger;
constructor(registrations: ViewRegistration[]);

@@ -102,4 +105,6 @@ protected registerDefaults(): void;

export declare class MissingView implements IView {
private static positionMap;
render(model: Readonly<SModelElementImpl>, context: RenderingContext): VNode;
getPostion(type: string): Point;
}
//# sourceMappingURL=view.d.ts.map

28

lib/base/views/view.js

@@ -29,2 +29,3 @@ "use strict";

};
var MissingView_1;
Object.defineProperty(exports, "__esModule", { value: true });

@@ -69,2 +70,3 @@ exports.MissingView = exports.EmptyView = exports.configureView = exports.configureModelElement = exports.ViewRegistry = exports.findArgValue = void 0;

missing(key) {
this.logger.warn(this, `no registered view for type '${key}', please configure a view in the ContainerModule`);
return new MissingView();

@@ -74,2 +76,6 @@ }

exports.ViewRegistry = ViewRegistry;
__decorate([
(0, inversify_1.inject)(types_1.TYPES.ILogger),
__metadata("design:type", Object)
], ViewRegistry.prototype, "logger", void 0);
exports.ViewRegistry = ViewRegistry = __decorate([

@@ -122,15 +128,25 @@ (0, inversify_1.injectable)(),

*/
let MissingView = class MissingView {
let MissingView = MissingView_1 = class MissingView {
render(model, context) {
const position = model.position || sprotty_protocol_1.Point.ORIGIN;
const position = model.position || this.getPostion(model.type);
return (0, jsx_1.svg)("text", { "class-sprotty-missing": true, x: position.x, y: position.y },
"?",
model.id,
"?");
"missing \"",
model.type,
"\" view");
}
getPostion(type) {
let position = MissingView_1.positionMap.get(type);
if (!position) {
position = sprotty_protocol_1.Point.ORIGIN;
MissingView_1.positionMap.forEach(value => position = value.y >= position.y ? { x: 0, y: value.y + 20 } : position);
MissingView_1.positionMap.set(type, position);
}
return position;
}
};
exports.MissingView = MissingView;
exports.MissingView = MissingView = __decorate([
MissingView.positionMap = new Map();
exports.MissingView = MissingView = MissingView_1 = __decorate([
(0, inversify_1.injectable)()
], MissingView);
//# sourceMappingURL=view.js.map

@@ -35,6 +35,6 @@ "use strict";

const maxWidth = options.paddingFactor * (options.resizeContainer
? childrenSize.width
? Math.max(childrenSize.width, options.minWidth)
: Math.max(0, this.getFixedContainerBounds(container, options, layouter).width) - options.paddingLeft - options.paddingRight);
const maxHeight = options.paddingFactor * (options.resizeContainer
? childrenSize.height
? Math.max(childrenSize.height, options.minHeight)
: Math.max(0, this.getFixedContainerBounds(container, options, layouter).height) - options.paddingTop - options.paddingBottom);

@@ -41,0 +41,0 @@ if (maxWidth > 0 && maxHeight > 0) {

@@ -18,3 +18,2 @@ /********************************************************************************

import { SChildElementImpl, SModelElementImpl, SParentElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
import { DOMHelper } from '../../base/views/dom-helper';

@@ -31,4 +30,6 @@ import { ViewerOptions } from '../../base/views/viewer-options';

* used in the _internal model_, while the other is used in the _external model_.
*
* Feature extension interface for {@link boundsFeature}.
*/
export interface BoundsAware extends SModelExtension {
export interface BoundsAware {
bounds: Bounds;

@@ -45,3 +46,6 @@ }

};
export interface LayoutableChild extends SModelExtension, BoundsAware {
/**
* Feature extension interface for {@link layoutableChildFeature}.
*/
export interface LayoutableChild extends BoundsAware {
layoutOptions?: ModelLayoutOptions;

@@ -52,4 +56,6 @@ }

* labels, or pre-rendered SVG figures.
*
* Feature extension interface for {@link alignFeature}.
*/
export interface Alignable extends SModelExtension {
export interface Alignable {
alignment: Point;

@@ -56,0 +62,0 @@ }

@@ -16,7 +16,9 @@ /********************************************************************************

********************************************************************************/
import { SModelExtension } from '../../base/model/smodel-extension';
import { SModelElementImpl } from '../../base/model/smodel';
import { SShapeElementImpl } from '../bounds/model';
export declare const decorationFeature: unique symbol;
export interface Decoration extends SModelExtension {
/**
* Feature extension interface for {@link decorationFeature}.
*/
export interface Decoration {
}

@@ -23,0 +25,0 @@ export declare function isDecoration<T extends SModelElementImpl>(e: T): e is T & Decoration;

@@ -16,7 +16,9 @@ /********************************************************************************

********************************************************************************/
import { SModelExtension } from '../../base/model/smodel-extension';
import { SModelElementImpl, SChildElementImpl } from '../../base/model/smodel';
import { BoundsAware } from '../bounds/model';
export declare const edgeLayoutFeature: unique symbol;
export interface EdgeLayoutable extends SModelExtension {
/**
* Feature extension interface for {@link edgeLayoutFeature}.
*/
export interface EdgeLayoutable {
edgePlacement: EdgePlacement;

@@ -23,0 +25,0 @@ }

@@ -18,5 +18,7 @@ /********************************************************************************

import { SModelElementImpl } from "../../base/model/smodel";
import { SModelExtension } from "../../base/model/smodel-extension";
export declare const creatingOnDragFeature: unique symbol;
export interface CreatingOnDrag extends SModelExtension {
/**
* Feature extension interface for {@link creatingOnDragFeature}.
*/
export interface CreatingOnDrag {
createAction(id: string): Action;

@@ -23,0 +25,0 @@ }

@@ -19,5 +19,7 @@ /********************************************************************************

import { SModelElementImpl, SParentElementImpl, SChildElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
export declare const deletableFeature: unique symbol;
export interface Deletable extends SModelExtension {
/**
* Feature extension interface for {@link deletableFeature}.
*/
export interface Deletable {
}

@@ -24,0 +26,0 @@ export declare function isDeletable<T extends SModelElementImpl>(element: T): element is T & Deletable & SChildElementImpl;

@@ -18,3 +18,2 @@ /********************************************************************************

import { SModelElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
import { SRoutableElementImpl } from '../routing/model';

@@ -24,3 +23,6 @@ export declare const editFeature: unique symbol;

export declare const editLabelFeature: unique symbol;
export interface EditableLabel extends SModelExtension {
/**
* Feature extension interface for {@link editLabelFeature}.
*/
export interface EditableLabel {
text: string;

@@ -33,3 +35,6 @@ readonly isMultiLine?: boolean;

export declare const withEditLabelFeature: unique symbol;
export interface WithEditableLabel extends SModelExtension {
/**
* Feature extension interface for {@link withEditLabelFeature}.
*/
export interface WithEditableLabel {
readonly editableLabel?: EditableLabel & SModelElementImpl;

@@ -36,0 +41,0 @@ }

@@ -17,8 +17,9 @@ /********************************************************************************

import { SModelElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
export declare const expandFeature: unique symbol;
/**
* Model elements that implement this interface can be expanded/collapsed
*
* Feature extension interface for {@link expandFeature}.
*/
export interface Expandable extends SModelExtension {
export interface Expandable {
expanded: boolean;

@@ -25,0 +26,0 @@ }

@@ -17,5 +17,7 @@ /********************************************************************************

import { SModelElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
export declare const fadeFeature: unique symbol;
export interface Fadeable extends SModelExtension {
/**
* Feature extension interface for {@link fadeFeature}.
*/
export interface Fadeable {
opacity: number;

@@ -22,0 +24,0 @@ }

@@ -17,5 +17,7 @@ /********************************************************************************

import { SModelElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
export declare const hoverFeedbackFeature: unique symbol;
export interface Hoverable extends SModelExtension {
/**
* Feature extension interface for {@link hoverFeedbackFeature}.
*/
export interface Hoverable {
hoverFeedback: boolean;

@@ -22,0 +24,0 @@ }

@@ -18,3 +18,2 @@ /********************************************************************************

import { SModelElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
export declare const moveFeature: unique symbol;

@@ -24,4 +23,6 @@ /**

* property.
*
* Feature extension interface for {@link moveFeature}.
*/
export interface Locateable extends SModelExtension {
export interface Locateable {
position: Point;

@@ -28,0 +29,0 @@ }

@@ -17,5 +17,7 @@ /********************************************************************************

import { SModelElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
export declare const nameFeature: unique symbol;
export interface Nameable extends SModelExtension {
/**
* Feature extension interface for {@link nameableFeature}.
*/
export interface Nameable {
name: string;

@@ -22,0 +24,0 @@ }

@@ -19,3 +19,2 @@ /********************************************************************************

import { SChildElementImpl, SModelRootImpl, SParentElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
/**

@@ -26,3 +25,3 @@ * Model elements implementing this interface can be displayed on a projection bar.

*/
export interface Projectable extends SModelExtension {
export interface Projectable {
projectionCssClasses: string[];

@@ -29,0 +28,0 @@ projectedBounds?: Bounds;

@@ -18,3 +18,2 @@ /********************************************************************************

import { SChildElementImpl, SModelElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
import { FluentIterable } from '../../utils/iterable';

@@ -36,3 +35,6 @@ import { SShapeElementImpl } from '../bounds/model';

export declare const connectableFeature: unique symbol;
export interface Connectable extends SModelExtension {
/**
* Feature extension interface for {@link connectableFeature}.
*/
export interface Connectable {
canConnect(routable: SRoutableElementImpl, role: 'source' | 'target'): boolean;

@@ -39,0 +41,0 @@ }

@@ -17,5 +17,7 @@ /********************************************************************************

import { SModelElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
export declare const selectFeature: unique symbol;
export interface Selectable extends SModelExtension {
/**
* Feature extension interface for {@link selectFeature}.
*/
export interface Selectable {
selected: boolean;

@@ -22,0 +24,0 @@ }

@@ -49,2 +49,3 @@ /********************************************************************************

hasDragged: boolean;
isMouseDown: boolean;
mouseDown(target: SModelElementImpl, event: MouseEvent): (Action | Promise<Action>)[];

@@ -51,0 +52,0 @@ protected collectElementsToDeselect(target: SModelElementImpl, selectableTarget: (SModelElementImpl & Selectable) | undefined): SModelElementImpl[];

@@ -145,2 +145,3 @@ "use strict";

this.hasDragged = false;
this.isMouseDown = false;
}

@@ -151,2 +152,3 @@ mouseDown(target, event) {

}
this.isMouseDown = true;
const buttonHandled = this.handleButton(target, event);

@@ -166,17 +168,12 @@ if (buttonHandled) {

}
if (selectableTarget !== undefined) {
if (!selectableTarget.selected) {
this.wasSelected = false;
return this.handleSelectTarget(selectableTarget, deselectedElements, event);
}
else if ((0, browser_1.isCtrlOrCmd)(event)) {
this.wasSelected = false;
return this.handleDeselectTarget(selectableTarget, event);
}
else {
this.wasSelected = true;
}
if (!selectableTarget.selected) {
this.wasSelected = false;
return this.handleSelectTarget(selectableTarget, deselectedElements, event);
}
else if ((0, browser_1.isCtrlOrCmd)(event)) {
this.wasSelected = false;
return this.handleDeselectTarget(selectableTarget, event);
}
else {
return this.handleDeselectAll(deselectedElements, event);
this.wasSelected = true;
}

@@ -231,3 +228,3 @@ }

mouseMove(target, event) {
this.hasDragged = true;
this.hasDragged = this.isMouseDown;
return [];

@@ -244,4 +241,4 @@ }

}
else if (target instanceof smodel_1.SModelRootImpl && !(0, scroll_1.findViewportScrollbar)(event)) {
// Mouse up on root but not over ViewPort's scroll bars > deselect all
else if ((target instanceof smodel_1.SModelRootImpl && !(0, scroll_1.findViewportScrollbar)(event)) || !(target instanceof smodel_1.SModelRootImpl)) {
// Mouse up on everything that's not root or root but not over ViewPort's scroll bars > deselect all
return this.handleDeselectAll(this.collectElementsToDeselect(target, undefined), event);

@@ -251,2 +248,3 @@ }

}
this.isMouseDown = false;
this.hasDragged = false;

@@ -253,0 +251,0 @@ return [];

@@ -29,3 +29,2 @@ /********************************************************************************

export * from './base/features/set-model';
export * from './base/model/smodel-extension';
export * from './base/model/smodel-factory';

@@ -32,0 +31,0 @@ export * from './base/model/smodel-utils';

@@ -50,3 +50,2 @@ "use strict";

__exportStar(require("./base/features/set-model"), exports);
__exportStar(require("./base/model/smodel-extension"), exports);
__exportStar(require("./base/model/smodel-factory"), exports);

@@ -53,0 +52,0 @@ __exportStar(require("./base/model/smodel-utils"), exports);

{
"name": "sprotty",
"version": "0.15.0-next.25ffc24.11+25ffc24",
"version": "0.15.0-next.28dc7b8.23+28dc7b8",
"description": "A next-gen framework for graphical views",

@@ -14,40 +14,10 @@ "license": "(EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0)",

],
"homepage": "https://github.com/eclipse/sprotty",
"bugs": "https://github.com/eclipse/sprotty/issues",
"homepage": "https://github.com/eclipse-sprotty/sprotty",
"bugs": "https://github.com/eclipse-sprotty/sprotty/issues",
"author": {
"name": "Eclipse Sprotty"
},
"contributors": [
{
"name": "Marc Dumais",
"email": "marc.dumais@ericsson.com",
"url": "https://www.ericsson.com/"
},
{
"name": "Takashi Katou"
},
{
"name": "Jan Köhnlein",
"email": "jan.koehnlein@typefox.io",
"url": "https://www.typefox.io"
},
{
"name": "Philip Langer",
"email": "planger@eclipsesource.com",
"url": "https://www.eclipsesource.com"
},
{
"name": "Tobias Ortmayr",
"email": "tortmayr@eclipsesource.com",
"url": "https://www.eclipsesource.com"
},
{
"name": "Miro Spönemann",
"email": "miro.spoenemann@typefox.io",
"url": "https://www.typefox.io"
}
],
"repository": {
"type": "git",
"url": "https://github.com/eclipse/sprotty",
"url": "https://github.com/eclipse-sprotty/sprotty",
"directory": "packages/sprotty"

@@ -62,23 +32,15 @@ },

"snabbdom": "^3.5.1",
"sprotty-protocol": "0.15.0-next.25ffc24.11+25ffc24",
"sprotty-protocol": "0.15.0-next.28dc7b8.23+28dc7b8",
"tinyqueue": "^2.0.3"
},
"devDependencies": {
"@types/chai": "^4.3.6",
"@types/file-saver": "^2.0.5",
"@types/jsdom": "^21.1.3",
"@types/mocha": "^10.0.2",
"chai": "^4.3.10",
"jsdom": "^22.1.0",
"mocha": "^10.2.0",
"snabbdom-to-html": "^7.1.0",
"ts-mocha": "^10.0.0"
"happy-dom": "^12.10.3",
"snabbdom-to-html": "^7.1.0"
},
"scripts": {
"prepare": "yarn run clean && yarn run build",
"clean": "rimraf lib artifacts",
"build": "tsc -p ./tsconfig.json && yarn run lint",
"watch": "tsc -w -p ./tsconfig.json",
"lint": "eslint -c ../../configs/.eslintrc.js \"src/**/!(*.spec.ts*|test-helper.ts)\"",
"test": "ts-mocha \"./src/**/*.spec.?(ts|tsx)\""
"clean": "shx rm -fr lib artifacts *.tsbuildinfo",
"build": "tsc",
"watch": "tsc --watch",
"test": "vitest run --config ../../vite.config.ts"
},

@@ -92,7 +54,3 @@ "files": [

"types": "lib/index",
"eslintIgnore": [
"src/**/*.spec.?(ts|tsx)",
"src/utils/test-helper.ts"
],
"gitHead": "25ffc249802253321da5084994280ed44229804d"
"gitHead": "28dc7b89cd6a7f450847b2a1a09b8409016950af"
}

@@ -24,5 +24,5 @@ # Sprotty

For further information please consult the [Wiki](https://github.com/eclipse/sprotty/wiki).
For further information please consult the [documentation on the website](https://sprotty.org/docs/).
The version history is documented in the [CHANGELOG](https://github.com/eclipse/sprotty/blob/master/packages/sprotty/CHANGELOG.md).
The version history is documented in the [CHANGELOG](https://github.com/eclipse-sprotty/sprotty/blob/master/packages/sprotty/CHANGELOG.md).

@@ -29,0 +29,0 @@ ## References

@@ -18,4 +18,3 @@ /********************************************************************************

import 'reflect-metadata';
import 'mocha';
import { expect } from "chai";
import { expect, describe, it } from 'vitest';;
import { Container, injectable, interfaces } from "inversify";

@@ -22,0 +21,0 @@ import { Action, RedoAction, RejectAction, RequestModelAction, SetModelAction, UndoAction } from 'sprotty-protocol/lib/actions';

@@ -17,4 +17,3 @@ /********************************************************************************

import "mocha";
import { expect } from "chai";
import { expect, describe, it } from 'vitest';
import { easeInOut } from "./easing";

@@ -21,0 +20,0 @@

@@ -18,4 +18,3 @@ /********************************************************************************

import "reflect-metadata";
import "mocha";
import { expect } from "chai";
import { expect, describe, it } from 'vitest';
import { Container, injectable, inject } from "inversify";

@@ -22,0 +21,0 @@ import { TYPES } from "../types";

@@ -18,4 +18,3 @@ /********************************************************************************

import "reflect-metadata";
import "mocha";
import { expect } from "chai";
import { expect, describe, it } from 'vitest';
import { Container, injectable } from "inversify";

@@ -22,0 +21,0 @@ import { TYPES } from "../types";

@@ -17,2 +17,3 @@ /********************************************************************************

import 'reflect-metadata';
import { injectable } from "inversify";

@@ -19,0 +20,0 @@ import { Action } from "sprotty-protocol/lib/actions";

@@ -18,4 +18,3 @@ /********************************************************************************

import "reflect-metadata";
import "mocha";
import { expect } from "chai";
import { expect, describe, it } from 'vitest';
import { CommandExecutionContext } from '../commands/command';

@@ -22,0 +21,0 @@ import { InitializeCanvasBoundsAction, InitializeCanvasBoundsCommand } from './initialize-canvas';

@@ -18,4 +18,3 @@ /********************************************************************************

import 'reflect-metadata';
import 'mocha';
import { expect } from 'chai';
import { expect, describe, it } from 'vitest';
import { Container } from 'inversify';

@@ -34,3 +33,3 @@ import { TYPES } from '../types';

for (const p in expected) {
if (expected.hasOwnProperty(p)) {
if (Object.prototype.hasOwnProperty.call(expected, p)) {
const expectedProp = (expected as any)[p];

@@ -40,3 +39,3 @@ const actualProp = (actual as any)[p];

for (const i in expectedProp) {
if (expectedProp.hasOwnProperty(i)) {
if (Object.prototype.hasOwnProperty.call(expectedProp, i)) {
compare(expectedProp[i], actualProp[i]);

@@ -43,0 +42,0 @@ }

@@ -18,4 +18,3 @@ /********************************************************************************

import 'reflect-metadata';
import 'mocha';
import { expect } from "chai";
import { expect, describe, it } from 'vitest';
import { Container } from 'inversify';

@@ -22,0 +21,0 @@ import { TYPES } from '../types';

@@ -17,4 +17,3 @@ /********************************************************************************

import "mocha";
import { expect } from "chai";
import { expect, describe, it } from 'vitest';
import { SChildElementImpl, ModelIndexImpl, SModelRootImpl } from './smodel';

@@ -21,0 +20,0 @@

@@ -18,4 +18,3 @@ /********************************************************************************

import 'reflect-metadata';
import 'mocha';
import { expect } from "chai";
import { expect, describe, it } from 'vitest';
import { Container } from 'inversify';

@@ -50,3 +49,3 @@ import { TYPES } from '../types';

const vnode = missingView.render(emptyRoot, context);
expect(toHTML(vnode)).to.be.equal('<text class="sprotty-missing" x="0" y="0">?EMPTY?</text>');
expect(toHTML(vnode)).to.be.equal('<text class="sprotty-missing" x="0" y="0">missing &quot;NONE&quot; view</text>');
const model = new SNodeImpl();

@@ -62,3 +61,3 @@ model.bounds = {

const vnode1 = missingView.render(model, context);
expect(toHTML(vnode1)).to.be.equal('<text class="sprotty-missing" x="42" y="41">?foo?</text>');
expect(toHTML(vnode1)).to.be.equal('<text class="sprotty-missing" x="42" y="41">missing &quot;type&quot; view</text>');
});

@@ -65,0 +64,0 @@ });

@@ -35,7 +35,7 @@ /********************************************************************************

options.resizeContainer
? childrenSize.width
? Math.max(childrenSize.width, options.minWidth)
: Math.max(0, this.getFixedContainerBounds(container, options, layouter).width) - options.paddingLeft - options.paddingRight);
const maxHeight = options.paddingFactor * (
options.resizeContainer
? childrenSize.height
? Math.max(childrenSize.height, options.minHeight)
: Math.max(0, this.getFixedContainerBounds(container, options, layouter).height) - options.paddingTop - options.paddingBottom);

@@ -42,0 +42,0 @@ if (maxWidth > 0 && maxHeight > 0) {

@@ -17,6 +17,6 @@ /********************************************************************************

import { expect } from 'chai';
import { Container } from 'inversify';
import 'mocha';
import 'reflect-metadata';
import { expect, describe, it } from 'vitest';
import { AnimationFrameSyncer } from '../../base/animations/animation-frame-syncer';

@@ -23,0 +23,0 @@ import { CommandExecutionContext } from '../../base/commands/command';

@@ -17,4 +17,5 @@ /********************************************************************************

import 'mocha';
import { expect } from "chai";
import 'reflect-metadata';
import { expect, describe, it } from 'vitest';
import { SModelElementImpl, SParentElementImpl } from '../../base/model/smodel';

@@ -21,0 +22,0 @@ import { createFeatureSet } from '../../base/model/smodel-factory';

@@ -55,3 +55,3 @@ /********************************************************************************

layout(element2boundsData: Map<SModelElementImpl​​ , BoundsData>) {
layout(element2boundsData: Map<SModelElementImpl, BoundsData>) {
new StatefulLayouter(element2boundsData, this.layoutRegistry, this.logger).layout();

@@ -65,3 +65,3 @@ }

constructor(private readonly element2boundsData: Map<SModelElementImpl​​ , BoundsData>,
constructor(private readonly element2boundsData: Map<SModelElementImpl, BoundsData>,
private readonly layoutRegistry: LayoutRegistry,

@@ -68,0 +68,0 @@ public readonly log: ILogger) {

@@ -17,4 +17,3 @@ /********************************************************************************

import 'mocha';
import { expect } from "chai";
import { expect, describe, it } from 'vitest';
import { SModelRootImpl } from '../../base/model/smodel';

@@ -21,0 +20,0 @@ import { SShapeElementImpl, getAbsoluteBounds } from './model';

@@ -19,3 +19,2 @@ /********************************************************************************

import { SChildElementImpl, SModelElementImpl, SModelRootImpl, SParentElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
import { findParentByFeature } from '../../base/model/smodel-utils';

@@ -36,4 +35,6 @@ import { DOMHelper } from '../../base/views/dom-helper';

* used in the _internal model_, while the other is used in the _external model_.
*
* Feature extension interface for {@link boundsFeature}.
*/
export interface BoundsAware extends SModelExtension {
export interface BoundsAware {
bounds: Bounds

@@ -51,3 +52,6 @@ }

export interface LayoutableChild extends SModelExtension, BoundsAware {
/**
* Feature extension interface for {@link layoutableChildFeature}.
*/
export interface LayoutableChild extends BoundsAware {
layoutOptions?: ModelLayoutOptions

@@ -59,4 +63,6 @@ }

* labels, or pre-rendered SVG figures.
*
* Feature extension interface for {@link alignFeature}.
*/
export interface Alignable extends SModelExtension {
export interface Alignable {
alignment: Point

@@ -63,0 +69,0 @@ }

@@ -17,4 +17,5 @@ /********************************************************************************

import 'mocha';
import { expect } from "chai";
import 'reflect-metadata';
import { expect, describe, it } from 'vitest';
import { SModelElementImpl, SParentElementImpl } from '../../base/model/smodel';

@@ -21,0 +22,0 @@ import { createFeatureSet } from '../../base/model/smodel-factory';

@@ -17,4 +17,4 @@ /********************************************************************************

import 'mocha';
import { expect } from "chai";
import 'reflect-metadata';
import { expect, describe, it } from 'vitest';
import { SModelElementImpl, SParentElementImpl } from '../../base/model/smodel';

@@ -21,0 +21,0 @@ import { createFeatureSet } from '../../base/model/smodel-factory';

@@ -17,4 +17,5 @@ /********************************************************************************

import 'mocha';
import { expect } from "chai";
import 'reflect-metadata';
import { expect, describe, it } from 'vitest';
import { IViewArgs, RenderingContext } from '../../base/views/view';

@@ -21,0 +22,0 @@ import { ViewportRootElementImpl } from '../viewport/viewport-root';

@@ -16,6 +16,6 @@ /********************************************************************************

********************************************************************************/
import "mocha";
import { expect } from "chai";
import 'reflect-metadata';
import { expect, describe, it } from 'vitest';
import { ContextMenuProviderRegistry } from "./menu-providers";

@@ -22,0 +22,0 @@ import { SModelRootImpl } from "../../base/model/smodel";

@@ -17,3 +17,2 @@ /********************************************************************************

import { SModelExtension } from '../../base/model/smodel-extension';
import { SModelElementImpl } from '../../base/model/smodel';

@@ -25,3 +24,6 @@ import { SShapeElementImpl, boundsFeature } from '../bounds/model';

export interface Decoration extends SModelExtension {
/**
* Feature extension interface for {@link decorationFeature}.
*/
export interface Decoration {
}

@@ -28,0 +30,0 @@

@@ -17,5 +17,4 @@ /********************************************************************************

import { expect } from "chai";
import "mocha";
import "reflect-metadata";
import { expect, describe, it } from 'vitest';
import { EdgeRouting } from "../routing/routing";

@@ -22,0 +21,0 @@ import { IntersectionFinder } from "./intersection-finder";

@@ -17,3 +17,2 @@ /********************************************************************************

import { SModelExtension } from '../../base/model/smodel-extension';
import { SModelElementImpl, SChildElementImpl } from '../../base/model/smodel';

@@ -25,3 +24,6 @@ import { BoundsAware, isBoundsAware } from '../bounds/model';

export interface EdgeLayoutable extends SModelExtension {
/**
* Feature extension interface for {@link edgeLayoutFeature}.
*/
export interface EdgeLayoutable {
edgePlacement: EdgePlacement

@@ -38,3 +40,3 @@ }

function checkEdgeLayoutable(element: SChildElementImpl): element is SChildElementImpl & EdgeLayoutable{
function checkEdgeLayoutable(element: SChildElementImpl): element is SChildElementImpl & EdgeLayoutable {
return 'edgePlacement' in element;

@@ -41,0 +43,0 @@ }

@@ -19,7 +19,9 @@ /********************************************************************************

import { SModelElementImpl } from "../../base/model/smodel";
import { SModelExtension } from "../../base/model/smodel-extension";
export const creatingOnDragFeature = Symbol('creatingOnDragFeature');
export interface CreatingOnDrag extends SModelExtension {
/**
* Feature extension interface for {@link creatingOnDragFeature}.
*/
export interface CreatingOnDrag {
createAction(id: string): Action;

@@ -26,0 +28,0 @@ }

@@ -21,3 +21,2 @@ /********************************************************************************

import { SModelElementImpl, SParentElementImpl, SChildElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
import { TYPES } from '../../base/types';

@@ -27,3 +26,6 @@

export interface Deletable extends SModelExtension {
/**
* Feature extension interface for {@link deletableFeature}.
*/
export interface Deletable {
}

@@ -30,0 +32,0 @@

@@ -19,3 +19,2 @@ /********************************************************************************

import { SModelElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
import { SRoutableElementImpl } from '../routing/model';

@@ -29,5 +28,9 @@

export const editLabelFeature = Symbol('editLabelFeature');
export interface EditableLabel extends SModelExtension {
/**
* Feature extension interface for {@link editLabelFeature}.
*/
export interface EditableLabel {
text: string;

@@ -45,3 +48,6 @@ readonly isMultiLine?: boolean;

export interface WithEditableLabel extends SModelExtension {
/**
* Feature extension interface for {@link withEditLabelFeature}.
*/
export interface WithEditableLabel {
readonly editableLabel?: EditableLabel & SModelElementImpl;

@@ -48,0 +54,0 @@ }

@@ -18,3 +18,2 @@ /********************************************************************************

import { SModelElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';

@@ -25,4 +24,6 @@ export const expandFeature = Symbol('expandFeature');

* Model elements that implement this interface can be expanded/collapsed
*
* Feature extension interface for {@link expandFeature}.
*/
export interface Expandable extends SModelExtension {
export interface Expandable {
expanded: boolean

@@ -29,0 +30,0 @@ }

@@ -18,4 +18,3 @@ /********************************************************************************

import 'reflect-metadata';
import 'mocha';
import { expect } from 'chai';
import { expect, describe, it } from 'vitest';
import { Container } from 'inversify';

@@ -22,0 +21,0 @@ import { TYPES } from '../../base/types';

@@ -18,7 +18,9 @@ /********************************************************************************

import { SModelElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
export const fadeFeature = Symbol('fadeFeature');
export interface Fadeable extends SModelExtension {
/**
* Feature extension interface for {@link fadeFeature}.
*/
export interface Fadeable {
opacity: number

@@ -25,0 +27,0 @@ }

@@ -18,4 +18,3 @@ /********************************************************************************

import "reflect-metadata";
import "mocha";
import { expect } from "chai";
import { expect, describe, it } from 'vitest';
import { Container } from "inversify";

@@ -62,3 +61,3 @@ import { Action, HoverFeedbackAction } from 'sprotty-protocol/lib/actions';

protected override getElementFromEventPosition(event: MouseEvent) {
protected override getElementFromEventPosition(_event: MouseEvent) {
// the original implementation uses document which isn't available in unit testing

@@ -65,0 +64,0 @@ return null;

@@ -18,7 +18,9 @@ /********************************************************************************

import { SModelElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
export const hoverFeedbackFeature = Symbol('hoverFeedbackFeature');
export interface Hoverable extends SModelExtension {
/**
* Feature extension interface for {@link hoverFeedbackFeature}.
*/
export interface Hoverable {
hoverFeedback: boolean

@@ -25,0 +27,0 @@ }

@@ -19,3 +19,2 @@ /********************************************************************************

import { SModelElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';

@@ -27,4 +26,6 @@ export const moveFeature = Symbol('moveFeature');

* property.
*
* Feature extension interface for {@link moveFeature}.
*/
export interface Locateable extends SModelExtension {
export interface Locateable {
position: Point

@@ -31,0 +32,0 @@ }

@@ -18,4 +18,3 @@ /********************************************************************************

import 'reflect-metadata';
import 'mocha';
import { expect } from 'chai';
import { expect, describe, it } from 'vitest';
import { Container } from 'inversify';

@@ -22,0 +21,0 @@ import { TYPES } from '../../base/types';

@@ -18,7 +18,9 @@ /********************************************************************************

import { SModelElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
export const nameFeature = Symbol('nameableFeature');
export interface Nameable extends SModelExtension {
/**
* Feature extension interface for {@link nameableFeature}.
*/
export interface Nameable {
name: string

@@ -31,3 +33,3 @@ }

export function name(element: SModelElementImpl): string|undefined {
export function name(element: SModelElementImpl): string | undefined {
if (isNameable(element)) {

@@ -34,0 +36,0 @@ return element.name;

@@ -21,3 +21,2 @@ /********************************************************************************

import { SChildElementImpl, SModelRootImpl, SParentElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
import { transformToRootBounds } from '../../base/model/smodel-utils';

@@ -31,3 +30,3 @@ import { isBoundsAware } from '../bounds/model';

*/
export interface Projectable extends SModelExtension {
export interface Projectable {
projectionCssClasses: string[],

@@ -34,0 +33,0 @@ projectedBounds?: Bounds,

@@ -17,4 +17,5 @@ /********************************************************************************

import 'mocha';
import { expect } from 'chai';
import 'reflect-metadata';
import { expect, describe, it } from 'vitest';
import { SModelRootImpl } from '../../base/model/smodel';

@@ -21,0 +22,0 @@ import { SShapeElementImpl } from '../bounds/model';

@@ -19,3 +19,2 @@ /********************************************************************************

import { SChildElementImpl, SModelElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
import { FluentIterable } from '../../utils/iterable';

@@ -58,3 +57,6 @@ import { SShapeElementImpl } from '../bounds/model';

export interface Connectable extends SModelExtension {
/**
* Feature extension interface for {@link connectableFeature}.
*/
export interface Connectable {
canConnect(routable: SRoutableElementImpl, role: 'source' | 'target'): boolean;

@@ -79,3 +81,3 @@ }

export function getRouteBounds(route: Point[]): Bounds {
const bounds = { x: NaN, y: NaN, width: 0, height: 0};
const bounds = { x: NaN, y: NaN, width: 0, height: 0 };
for (const point of route) {

@@ -110,5 +112,5 @@ if (isNaN(bounds.x)) {

get anchorKind(): string | undefined{
return undefined;
}
get anchorKind(): string | undefined {
return undefined;
}

@@ -115,0 +117,0 @@ strokeWidth: number = 0;

@@ -17,4 +17,5 @@ /********************************************************************************

import 'mocha';
import { expect } from "chai";
import 'reflect-metadata';
import { expect, describe, it } from 'vitest';
import { IViewArgs, RenderingContext } from '../../base/views/view';

@@ -21,0 +22,0 @@ import { SShapeElementImpl } from '../bounds/model';

@@ -18,7 +18,9 @@ /********************************************************************************

import { SModelElementImpl } from '../../base/model/smodel';
import { SModelExtension } from '../../base/model/smodel-extension';
export const selectFeature = Symbol('selectFeature');
export interface Selectable extends SModelExtension {
/**
* Feature extension interface for {@link selectFeature}.
*/
export interface Selectable {
selected: boolean

@@ -25,0 +27,0 @@ }

@@ -18,4 +18,3 @@ /********************************************************************************

import 'reflect-metadata';
import 'mocha';
import { expect } from 'chai';
import { expect, describe, it } from 'vitest';
import { Container } from 'inversify';

@@ -22,0 +21,0 @@ import { TYPES } from '../../base/types';

@@ -135,2 +135,3 @@ /********************************************************************************

hasDragged = false;
isMouseDown = false;

@@ -141,2 +142,3 @@ override mouseDown(target: SModelElementImpl, event: MouseEvent): (Action | Promise<Action>)[] {

}
this.isMouseDown = true;
const buttonHandled = this.handleButton(target, event);

@@ -156,14 +158,10 @@ if (buttonHandled) {

}
if (selectableTarget !== undefined) {
if (!selectableTarget.selected) {
this.wasSelected = false;
return this.handleSelectTarget(selectableTarget, deselectedElements, event);
} else if (isCtrlOrCmd(event)) {
this.wasSelected = false;
return this.handleDeselectTarget(selectableTarget, event);
} else {
this.wasSelected = true;
}
if (!selectableTarget.selected) {
this.wasSelected = false;
return this.handleSelectTarget(selectableTarget, deselectedElements, event);
} else if (isCtrlOrCmd(event)) {
this.wasSelected = false;
return this.handleDeselectTarget(selectableTarget, event);
} else {
return this.handleDeselectAll(deselectedElements, event);
this.wasSelected = true;
}

@@ -223,3 +221,3 @@ }

override mouseMove(target: SModelElementImpl, event: MouseEvent): Action[] {
this.hasDragged = true;
this.hasDragged = this.isMouseDown;
return [];

@@ -234,6 +232,6 @@ }

if (this.wasSelected) {
return [SelectAction.create({selectedElementsIDs:[selectableTarget.id],deselectedElementsIDs:[]})];
return [SelectAction.create({ selectedElementsIDs: [selectableTarget.id], deselectedElementsIDs: [] })];
}
} else if (target instanceof SModelRootImpl && !findViewportScrollbar(event)) {
// Mouse up on root but not over ViewPort's scroll bars > deselect all
} else if ((target instanceof SModelRootImpl && !findViewportScrollbar(event)) || !(target instanceof SModelRootImpl)) {
// Mouse up on everything that's not root or root but not over ViewPort's scroll bars > deselect all
return this.handleDeselectAll(this.collectElementsToDeselect(target, undefined), event);

@@ -243,2 +241,3 @@ }

}
this.isMouseDown = false;
this.hasDragged = false;

@@ -245,0 +244,0 @@ return [];

@@ -18,4 +18,3 @@ /********************************************************************************

import "reflect-metadata";
import "mocha";
import { expect } from "chai";
import { expect, describe, it } from 'vitest';
import { SModelRootSchema } from "../../base/model/smodel";

@@ -22,0 +21,0 @@ import { ModelMatcher } from "./model-matching";

@@ -18,4 +18,3 @@ /********************************************************************************

import 'reflect-metadata';
import 'mocha';
import { expect } from 'chai';
import { expect, describe, it } from 'vitest';
import { Container } from 'inversify';

@@ -44,3 +43,3 @@ import { TYPES } from '../../base/types';

for (const p in expected) {
if (expected.hasOwnProperty(p)) {
if (Object.prototype.hasOwnProperty.call(expected, p)) {
const expectedProp = (expected as any)[p];

@@ -50,3 +49,3 @@ const actualProp = (actual as any)[p];

for (const i in expectedProp) {
if (expectedProp.hasOwnProperty(i)) {
if (Object.prototype.hasOwnProperty.call(expectedProp, i)) {
compare(expectedProp[i], actualProp[i]);

@@ -53,0 +52,0 @@ }

@@ -18,4 +18,3 @@ /********************************************************************************

import 'reflect-metadata';
import 'mocha';
import { expect } from 'chai';
import { expect, describe, it } from 'vitest';
import { Container } from 'inversify';

@@ -22,0 +21,0 @@ import { TYPES } from '../../base/types';

@@ -18,4 +18,3 @@ /********************************************************************************

import 'reflect-metadata';
import 'mocha';
import { expect } from 'chai';
import { expect, describe, it } from 'vitest';
import { Container } from 'inversify';

@@ -22,0 +21,0 @@ import { TYPES } from '../../base/types';

@@ -17,4 +17,5 @@ /********************************************************************************

import "mocha";
import { expect } from "chai";
import 'reflect-metadata';
import { expect, describe, it } from 'vitest';
import { SRoutingHandleImpl } from '../features/routing/model';

@@ -21,0 +22,0 @@ import { RectangularNode, RectangularPort } from '../lib/model';

@@ -36,3 +36,2 @@ /********************************************************************************

export * from './base/model/smodel-extension';
export * from './base/model/smodel-factory';

@@ -39,0 +38,0 @@ export * from './base/model/smodel-utils';

@@ -19,20 +19,17 @@ /********************************************************************************

import 'mocha';
import { expect } from 'chai';
import { h } from 'snabbdom';
import { beforeAll, describe, expect, it } from 'vitest';
import { VNode, h } from 'snabbdom';
import virtualize from './virtualize';
import setup from '../utils/test-helper';
/**
* @vitest-environment happy-dom
*/
describe("virtualize (happy path)", () => {
before(() => {
setup();
});
it("should convert a single node with no children", () => {
expect(virtualize("<div />")).to.deep.equal(h("div"));
expect(virtualizeHelper("<div />")).to.deep.equal(h("DIV"));
});
it("should convert a node with text node", () => {
expect(virtualize("<div> Test. </div>")).to.deep.equal(
h("div", [" Test. "])
expect(virtualizeHelper("<div> Test. </div>")).to.deep.equal(
h("DIV", [" Test. "])
);

@@ -42,6 +39,6 @@ });

it("should convert nodes with children", () => {
expect(virtualize("<div><span>a</span><span>b</span></div>")).to.deep.equal(
h("div", [
h("span", ["a"]),
h("span", ["b"])
expect(virtualizeHelper("<div><span>a</span><span>b</span></div>")).to.deep.equal(
h("DIV", [
h("SPAN", ["a"]),
h("SPAN", ["b"])
])

@@ -53,9 +50,9 @@ );

expect(
virtualize(
virtualizeHelper(
"<book><title>The Three-Body Problem</title><author>Liu Cixin</author></book>"
)
).to.deep.equal(
h("book", [
h("title", ["The Three-Body Problem"]),
h("author", ["Liu Cixin"]),
h("BOOK", [
h("TITLE", ["The Three-Body Problem"]),
h("AUTHOR", ["Liu Cixin"]),
])

@@ -68,4 +65,4 @@ );

'<div class="sprotty1 sprotty2" style="display: none !important; background-color: blue; font-weight: bold" data-test="test" />';
expect(virtualize(element)).to.deep.equal(
h("div", {
expect(virtualizeHelper(element)).to.deep.equal(
h("DIV", {
class: {

@@ -88,4 +85,4 @@ sprotty1: true,

it("should ignore empty attributes", () => {
expect(virtualize("<span style='' />")).to.deep.equal(h("span"));
expect(virtualize("<span class='' />")).to.deep.equal(h("span"));
expect(virtualizeHelper("<span style='' />")).to.deep.equal(h("SPAN"));
expect(virtualizeHelper("<span class='' />")).to.deep.equal(h("SPAN"));
});

@@ -95,6 +92,6 @@

const input = "<textarea placeholder=' Test1, \n\n Test2 '></textarea>";
expect(virtualize(input)).to.deep.equal(
h("textarea", {
expect(virtualizeHelper(input)).to.deep.equal(
h("TEXTAREA", {
attrs: {
placeholder: " Test1, Test2 ",
placeholder: " Test1, \n\n Test2 ",
},

@@ -108,4 +105,4 @@ })

"<textarea placeholder='&amp; Test1, &gt; Test2 '></textarea>";
expect(virtualize(input)).to.deep.equal(
h("textarea", {
expect(virtualizeHelper(input)).to.deep.equal(
h("TEXTAREA", {
attrs: {

@@ -120,14 +117,13 @@ placeholder: "& Test1, > Test2 ",

expect(
virtualize(
virtualizeHelper(
"<div> <!-- comment A --> <span>Test1</span> <!-- Comment B --> Test2</div>"
)
).to.deep.equal(h("div", [" ", " ", h("span", ["Test1"]), " ", " Test2"]));
).to.deep.equal(h("DIV", [" ", " ", h("SPAN", ["Test1"]), " ", " Test2"]));
});
});
/**
* @vitest-environment happy-dom
*/
describe("virtualize (bad path)", () => {
before(() => {
setup();
});
it("should return null when given null or empty string", () => {

@@ -139,12 +135,17 @@ expect(virtualize()).to.be.null;

it("should return parser error when given a single text node", () => {
const actual = virtualize("Text content!");
expect(actual?.sel).to.equal("parsererror");
const actual = virtualizeHelper("Text content!") as VNode;
expect(actual?.sel).to.equal(undefined);
});
});
it("should return parser error when gives multiple top-level nodes", () => {
const actual = virtualize(
"<div><h1>Something</h1></div><span>Something more</span>"
);
expect(actual?.sel).to.equal("parsererror");
});
});
function virtualizeHelper(html?: string) {
const dom = virtualize(html);
if (!dom) {
return null;
}
const element = (dom.children![1] as VNode).children![0];
return element;
}

@@ -18,5 +18,5 @@ /********************************************************************************

import "reflect-metadata";
import "mocha";
import { expect } from "chai";
import { expect, describe, it } from 'vitest';
import { Container, injectable } from "inversify";
// eslint-disable-next-line max-len
import { Action, ComputedBoundsAction, isResponseAction, RequestAction, RequestBoundsAction, ResponseAction, SetModelAction, UpdateModelAction } from 'sprotty-protocol/lib/actions';

@@ -23,0 +23,0 @@ import { Deferred } from 'sprotty-protocol/lib/utils/async';

@@ -17,4 +17,3 @@ /********************************************************************************

import "mocha";
import { expect } from "chai";
import { expect, describe, it } from 'vitest';
import { almostEquals } from 'sprotty-protocol/lib/utils/geometry';

@@ -21,0 +20,0 @@ import { PointToPointLine } from "./geometry";

@@ -17,4 +17,3 @@ /********************************************************************************

import "mocha";
import { expect } from "chai";
import { expect, describe, it } from 'vitest';
import { FluentIterable, FluentIterableImpl, DONE_RESULT } from './iterable';

@@ -21,0 +20,0 @@

@@ -17,4 +17,4 @@ /********************************************************************************

import 'mocha';
import { expect } from "chai";
import 'reflect-metadata';
import { expect, describe, it } from 'vitest';
import { InstanceRegistry, ProviderRegistry } from "./registry";

@@ -21,0 +21,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc