New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

derby

Package Overview
Dependencies
Maintainers
6
Versions
213
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

derby - npm Package Compare versions

Comparing version 4.0.0-beta.6 to 4.0.0-beta.7

16

dist/App.d.ts

@@ -7,3 +7,3 @@ /// <reference types="node" />

import { type Derby } from './Derby';
import { PageForClient, type PageBase } from './Page';
import { PageForClient, type Page } from './Page';
import { PageParams } from './routes';

@@ -14,4 +14,4 @@ import { type Views } from './templates/templates';

}
export declare function createAppPage(derby: any): typeof PageBase;
interface AppOptions {
export declare function createAppPage(derby: any): typeof Page;
export interface AppOptions {
appMetadata?: Record<string, string>;

@@ -41,3 +41,3 @@ scriptHash?: string;

appMetadata: Record<string, string>;
Page: typeof PageBase;
Page: typeof Page;
proto: any;

@@ -47,4 +47,4 @@ views: Views;

model: Model;
page: PageBase;
protected _pendingComponentMap: Record<string, ComponentConstructor>;
page: Page;
protected _pendingComponentMap: Record<string, ComponentConstructor | SingletonComponentConstructor>;
protected _waitForAttach: boolean;

@@ -54,5 +54,5 @@ protected _cancelAttach: boolean;

serverUse: typeof util.serverUse;
constructor(derby: any, name: any, filename: any, options?: AppOptions);
constructor(derby: any, name?: string, filename?: string, options?: AppOptions);
abstract _init(options?: AppOptions): any;
loadViews(_viewFilename: any, _viewName: any): void;
loadViews(_viewFilename: any, _viewName?: any): void;
loadStyles(_filename: any, _options: any): void;

@@ -59,0 +59,0 @@ component(constructor: ComponentConstructor | SingletonComponentConstructor): this;

@@ -65,8 +65,10 @@ var __extends = (this && this.__extends) || (function () {

function AppBase(derby, name, filename, options) {
if (options === void 0) { options = {}; }
var _this = this;
var _a;
var _a, _b;
_this = _super.call(this) || this;
_this.use = racer_1.util.use;
_this.serverUse = racer_1.util.serverUse;
if (options == null) {
options = {};
}
_this.derby = derby;

@@ -76,3 +78,3 @@ _this.name = name;

_this.scriptHash = (_a = options.scriptHash) !== null && _a !== void 0 ? _a : '';
_this.appMetadata = options.appMetadata || {};
_this.appMetadata = (_b = options.appMetadata) !== null && _b !== void 0 ? _b : {};
_this.Page = createAppPage(derby);

@@ -79,0 +81,0 @@ _this.proto = _this.Page.prototype;

import { AppBase } from './App';
import { type DerbyBase } from './Derby';
import { type StyleCompilerOptions } from './files';
import { PageForServer } from './PageForServer';

@@ -6,3 +8,3 @@ interface Agent {

}
type CompilerFunciton = (file: string, filename?: string, options?: unknown) => unknown;
type CompilerFunciton = (file: string, filename?: string, options?: unknown) => string;
export declare class AppForServer extends AppBase {

@@ -24,3 +26,3 @@ agents: Record<string, Agent>;

router: any;
constructor(derby: any, name: string, filename: string, options: any);
constructor(derby: DerbyBase, name: string, filename: string, options: any);
_init(options: any): void;

@@ -37,4 +39,4 @@ private _initBundle;

deserialize(): void;
loadViews(filename: any, namespace: any): this;
loadStyles(filename: any, options: any): this;
loadViews(filename: string, namespace?: string): this;
loadStyles(filename: string, options?: StyleCompilerOptions): this;
private _loadStyles;

@@ -41,0 +43,0 @@ private _watchViews;

@@ -26,6 +26,6 @@ /*

var racer = require("racer");
var util = racer.util;
var App_1 = require("./App");
var parsing = require("./parsing");
var derbyTemplates = require("./templates");
var util = racer.util;
// Avoid Browserifying these dependencies

@@ -32,0 +32,0 @@ var chokidar, files, fs, path;

@@ -1,4 +0,4 @@

import { type ChildModel, type ModelData } from 'racer';
import { type ChildModel } from 'racer';
import { Controller } from './Controller';
import { PageBase } from './Page';
import { Page } from './Page';
import derbyTemplates = require('./templates');

@@ -13,19 +13,14 @@ import { Context } from './templates/contexts';

export interface ComponentConstructor {
new (context: Context, data: ModelData): Component;
new (context: Context, data: Record<string, unknown>): Component;
DataConstructor?: DataConstructor;
singleton?: true | undefined;
singleton?: undefined;
view?: ComponentViewDefinition;
}
export interface SingletonComponentConstructor {
new (): Component;
new (): object;
singleton: true;
view?: {
is: string;
dependencies?: ComponentConstructor[];
source?: string;
file?: string;
};
view?: ComponentViewDefinition;
}
export interface ComponentViewDefinition {
dependencies?: ComponentConstructor[];
dependencies?: Array<ComponentConstructor | SingletonComponentConstructor>;
file?: string;

@@ -38,7 +33,7 @@ is?: string;

}
export declare abstract class Component extends Controller {
export declare abstract class Component<T extends object = object> extends Controller<T> {
context: Context;
id: string;
isDestroyed: boolean;
page: PageBase;
page: Page;
parent: Controller;

@@ -49,3 +44,3 @@ singleton?: true;

static DataConstructor?: DataConstructor;
constructor(context: Context, data: ComponentModelData);
constructor(context: Context, data: Record<string, unknown>);
init(_model: ChildModel): void;

@@ -79,8 +74,9 @@ destroy(): void;

}
export declare function createFactory(constructor: ComponentConstructor): SingletonComponentFactory | ComponentFactory;
export declare function createFactory(constructor: ComponentConstructor | SingletonComponentConstructor): SingletonComponentFactory | ComponentFactory;
export declare class ComponentModelData {
id: string;
$controller: any;
$controller: Controller;
$element: any;
$event: any;
[key: string]: unknown;
}

@@ -87,0 +83,0 @@ export declare class ComponentFactory {

@@ -417,3 +417,3 @@ /*

// static property on the constructor is preferred
return (constructor.singleton || constructor.prototype.singleton) ?
return (constructor.singleton === true) ?
new SingletonComponentFactory(constructor) :

@@ -433,4 +433,2 @@ new ComponentFactory(constructor);

function ComponentModelData() {
this.id = null;
this.$controller = null;
}

@@ -437,0 +435,0 @@ return ComponentModelData;

/// <reference types="node" />
import { EventEmitter } from 'events';
import { type Model } from 'racer';
import { DefualtType, type ChildModel } from 'racer';
import { type AppBase } from './App';
import { Dom } from './Dom';
import { PageBase } from './Page';
export declare class Controller extends EventEmitter {
import { Page } from './Page';
export declare class Controller<T = DefualtType> extends EventEmitter {
dom: Dom;
app: AppBase;
page: PageBase;
model: Model;
page: Page;
model: ChildModel<T>;
markerNode: Node;
constructor(app: AppBase, page: PageBase, model: Model);
constructor(app: AppBase, page: Page, model: ChildModel<T>);
emitCancellable(...args: unknown[]): boolean;
emitDelayable(...args: unknown[]): boolean;
}
import { Racer, type Model } from 'racer';
import { App, type AppBase } from './App';
import { App, type AppBase, type AppOptions } from './App';
import { Component } from './components';

@@ -8,3 +8,3 @@ import { PageForClient } from './Page';

Model: typeof Model;
abstract createApp(name: string, filename: string, options: any): AppBase;
abstract createApp(name?: string, filename?: string, options?: AppOptions): AppBase;
}

@@ -15,3 +15,3 @@ export declare class Derby extends DerbyBase {

Model: typeof Model;
createApp(name: string, filename: string, options: any): App;
createApp(name?: string, filename?: string, options?: AppOptions): App;
}

@@ -1,6 +0,1 @@

/*
* Derby.js
* Meant to be the entry point for the framework.
*
*/
var __extends = (this && this.__extends) || (function () {

@@ -23,2 +18,7 @@ var extendStatics = function (d, b) {

exports.Derby = exports.DerbyBase = void 0;
/*
* Derby.js
* Meant to be the entry point for the framework.
*
*/
var racer_1 = require("racer");

@@ -25,0 +25,0 @@ var App_1 = require("./App");

@@ -1,5 +0,9 @@

export declare function loadViewsSync(app: any, sourceFilename: any, namespace: any): {
import { type AppForServer } from './AppForServer';
export declare function loadViewsSync(app: AppForServer, sourceFilename: string, namespace: string): {
views: any[];
files: any[];
};
export declare function loadStylesSync(app: any, sourceFilename: any, options: any): any;
export interface StyleCompilerOptions extends Record<string, unknown> {
compress?: boolean;
}
export declare function loadStylesSync(app: AppForServer, sourceFilename: string, options?: StyleCompilerOptions): string;
import { util } from 'racer';
import { type AppOptions } from './App';
import { Derby, type DerbyBase } from './Derby';
export { type App } from './App';
export { type Page, type PageBase, PageForClient } from './Page';
export { type App, type AppBase } from './App';
export { type AppForServer } from './AppForServer';
export { Dom } from './Dom';
export { Page, PageForClient } from './Page';
export { PageForServer } from './PageForServer';
export { Component, type ComponentConstructor, type ComponentViewDefinition } from './components';
export { type PageParams } from './routes';
export { Component, ComponentModelData, type ComponentConstructor, type ComponentViewDefinition, } from './components';
export { type Context } from './templates/contexts';
export { type PageParams, type QueryParams } from './routes';
declare const instance: DerbyBase;
export declare function createApp(name?: string, file?: string, options?: AppOptions): import("./App").AppBase;
export { Derby, instance, util, };
Object.defineProperty(exports, "__esModule", { value: true });
exports.util = exports.instance = exports.Derby = exports.Component = exports.PageForServer = exports.PageForClient = void 0;
exports.util = exports.instance = exports.Derby = exports.createApp = exports.ComponentModelData = exports.Component = exports.PageForServer = exports.PageForClient = exports.Page = exports.Dom = void 0;
var racer_1 = require("racer");

@@ -7,3 +7,6 @@ Object.defineProperty(exports, "util", { enumerable: true, get: function () { return racer_1.util; } });

Object.defineProperty(exports, "Derby", { enumerable: true, get: function () { return Derby_1.Derby; } });
var Dom_1 = require("./Dom");
Object.defineProperty(exports, "Dom", { enumerable: true, get: function () { return Dom_1.Dom; } });
var Page_1 = require("./Page");
Object.defineProperty(exports, "Page", { enumerable: true, get: function () { return Page_1.Page; } });
Object.defineProperty(exports, "PageForClient", { enumerable: true, get: function () { return Page_1.PageForClient; } });

@@ -14,2 +17,3 @@ var PageForServer_1 = require("./PageForServer");

Object.defineProperty(exports, "Component", { enumerable: true, get: function () { return components_1.Component; } });
Object.defineProperty(exports, "ComponentModelData", { enumerable: true, get: function () { return components_1.ComponentModelData; } });
var DerbyClass = racer_1.util.isServer

@@ -20,1 +24,5 @@ ? racer_1.util.serverRequire(module, './DerbyForServer').DerbyForServer

exports.instance = instance;
function createApp(name, file, options) {
return instance.createApp(name, file, options);
}
exports.createApp = createApp;

@@ -1,3 +0,3 @@

import { type Model } from 'racer';
import { type AppBase, type App } from './App';
import { type Model, ChangeEvent, MoveEvent, RemoveEvent, InsertEvent, LoadEvent, UnloadEvent } from 'racer';
import { type AppBase } from './App';
import components = require('./components');

@@ -9,3 +9,17 @@ import { Controller } from './Controller';

import { Expression } from './templates/expressions';
export declare abstract class PageBase extends Controller {
interface ModelOnImmediateEventMap {
changeImmediate: ChangeEvent;
insertImmediate: InsertEvent;
loadImmediate: LoadEvent;
moveImmediate: MoveEvent;
removeImmediate: RemoveEvent;
unloadImmediate: UnloadEvent;
}
declare module 'racer' {
interface Model<T> {
on<TEvent extends keyof ModelOnImmediateEventMap>(eventType: TEvent, listener: (captures: string[], event: ModelOnImmediateEventMap[TEvent]) => void): any;
removeListener(eventType: keyof ModelOnImmediateEventMap, listener: () => void): void;
}
}
export declare abstract class Page extends Controller {
params: Readonly<PageParams>;

@@ -18,3 +32,3 @@ context: Context;

_removeModelListeners: () => void;
page: PageBase;
page: Page;
constructor(app: AppBase, model: Model);

@@ -31,6 +45,4 @@ $bodyClass(ns: string): string;

}
export interface Page extends PageBase {
}
export declare class PageForClient extends PageBase {
constructor(app: App, model: Model);
export declare class PageForClient extends Page {
constructor(app: AppBase, model: Model);
$preventDefault(e: Event): void;

@@ -42,3 +54,2 @@ $stopPropagation(e: Event): void;

private _addModelListeners;
private _addModelListenersLegacy;
private _addContextListeners;

@@ -61,1 +72,2 @@ }

}
export {};

@@ -17,3 +17,3 @@ var __extends = (this && this.__extends) || (function () {

Object.defineProperty(exports, "__esModule", { value: true });
exports.BindingWrapper = exports.PageForClient = exports.PageBase = void 0;
exports.BindingWrapper = exports.PageForClient = exports.Page = void 0;
var racer_1 = require("racer");

@@ -27,5 +27,5 @@ var components = require("./components");

var contexts = derbyTemplates.contexts, DependencyOptions = derbyTemplates.DependencyOptions, expressions = derbyTemplates.expressions, templates = derbyTemplates.templates;
var PageBase = /** @class */ (function (_super) {
__extends(PageBase, _super);
function PageBase(app, model) {
var Page = /** @class */ (function (_super) {
__extends(Page, _super);
function Page(app, model) {
var _this = _super.call(this, app, null, model) || this;

@@ -43,3 +43,3 @@ _this._removeModelListeners = function () { };

}
PageBase.prototype.$bodyClass = function (ns) {
Page.prototype.$bodyClass = function (ns) {
if (!ns)

@@ -55,3 +55,3 @@ return;

};
PageBase.prototype.get = function (viewName, ns, unescaped) {
Page.prototype.get = function (viewName, ns, unescaped) {
this._setRenderPrefix(ns);

@@ -61,3 +61,3 @@ var view = this.getView(viewName, ns);

};
PageBase.prototype.getFragment = function (viewName, ns) {
Page.prototype.getFragment = function (viewName, ns) {
this._setRenderPrefix(ns);

@@ -67,6 +67,6 @@ var view = this.getView(viewName, ns);

};
PageBase.prototype.getView = function (viewName, ns) {
Page.prototype.getView = function (viewName, ns) {
return this.app.views.find(viewName, ns);
};
PageBase.prototype.destroy = function () {
Page.prototype.destroy = function () {
this.emit('destroy');

@@ -88,4 +88,4 @@ this._removeModelListeners();

};
PageBase.prototype.render = function (_ns, _status) { };
PageBase.prototype._createContext = function () {
Page.prototype.render = function (_ns, _status) { };
Page.prototype._createContext = function () {
var contextMeta = new contexts.ContextMeta();

@@ -98,7 +98,7 @@ contextMeta.views = this.app && this.app.views;

};
PageBase.prototype._setRenderPrefix = function (ns) {
Page.prototype._setRenderPrefix = function (ns) {
var prefix = (ns) ? ns + ':' : '';
this.model.set('$render.prefix', prefix);
};
PageBase.prototype._setRenderParams = function (ns) {
Page.prototype._setRenderParams = function (ns) {
this.model.set('$render.ns', ns);

@@ -109,5 +109,5 @@ this.model.set('$render.params', this.params);

};
return PageBase;
return Page;
}(Controller_1.Controller));
exports.PageBase = PageBase;
exports.Page = Page;
var PageForClient = /** @class */ (function (_super) {

@@ -166,7 +166,2 @@ __extends(PageForClient, _super);

// path being listened on, directly or indirectly.
// TODO: Remove this when upgrading Racer to the next major version. Feature
// detect which type of event listener to register by emitting a test event
if (useLegacyListeners(model)) {
return this._addModelListenersLegacy(eventModel);
}
// `util.castSegments(segments)` is needed to cast string segments into

@@ -210,49 +205,2 @@ // numbers, since EventModel#child does typeof checks against segments. This

};
PageForClient.prototype._addModelListenersLegacy = function (eventModel) {
var model = this.model;
if (!model)
return;
// `util.castSegments(segments)` is needed to cast string segments into
// numbers, since EventModel#child does typeof checks against segments. This
// could be done once in Racer's Model#emit, instead of in every listener.
var changeListener = model.on('changeImmediate', function onChange(segments, eventArgs) {
// eventArgs[0] is the new value, which Derby bindings don't use directly.
// The pass parameter is passed in for special handling of updates
// resulting from stringInsert or stringRemove
var previous = eventArgs[0], pass = eventArgs[1];
segments = racer_1.util.castSegments(segments.slice());
eventModel.set(segments, previous, pass);
});
var loadListener = model.on('loadImmediate', function onLoad(segments) {
segments = racer_1.util.castSegments(segments.slice());
eventModel.set(segments);
});
var unloadListener = model.on('unloadImmediate', function onUnload(segments) {
segments = racer_1.util.castSegments(segments.slice());
eventModel.set(segments);
});
var insertListener = model.on('insertImmediate', function onInsert(segments, eventArgs) {
var index = eventArgs[0], values = eventArgs[1];
segments = racer_1.util.castSegments(segments.slice());
eventModel.insert(segments, index, values.length);
});
var removeListener = model.on('removeImmediate', function onRemove(segments, eventArgs) {
var index = eventArgs[0], values = eventArgs[1];
segments = racer_1.util.castSegments(segments.slice());
eventModel.remove(segments, index, values.length);
});
var moveListener = model.on('moveImmediate', function onMove(segments, eventArgs) {
var from = eventArgs[0], to = eventArgs[1], howMany = eventArgs[2];
segments = racer_1.util.castSegments(segments.slice());
eventModel.move(segments, from, to, howMany);
});
this._removeModelListeners = function () {
model.removeListener('changeImmediate', changeListener);
model.removeListener('loadImmediate', loadListener);
model.removeListener('unloadImmediate', unloadListener);
model.removeListener('insertImmediate', insertListener);
model.removeListener('removeImmediate', removeListener);
model.removeListener('moveImmediate', moveListener);
};
};
PageForClient.prototype._addContextListeners = function (eventModel) {

@@ -305,15 +253,4 @@ this.context.meta.addBinding = addBinding;

return PageForClient;
}(PageBase));
}(Page));
exports.PageForClient = PageForClient;
function useLegacyListeners(model) {
var useLegacy = true;
// model.once is broken in older racer, so manually remove event
var listener = model.on('changeImmediate', function (_segments, event) {
model.removeListener('changeImmediate', listener);
// Older Racer emits an array of eventArgs, whereas newer racer emits an event object
useLegacy = Array.isArray(event);
});
model.set('$derby.testEvent', true);
return useLegacy;
}
function addDependencies(eventModel, expression, binding) {

@@ -320,0 +257,0 @@ var bindingWrapper = new BindingWrapper(eventModel, expression, binding);

import type { Request, Response } from 'express';
import { type Model } from 'racer';
import { type AppForServer } from './AppForServer';
import { PageBase } from './Page';
import { Page } from './Page';
declare module 'racer' {

@@ -10,3 +10,3 @@ interface Model {

}
export declare class PageForServer extends PageBase {
export declare class PageForServer extends Page {
req: Request;

@@ -13,0 +13,0 @@ res: Response;

@@ -74,3 +74,3 @@ var __extends = (this && this.__extends) || (function () {

return PageForServer;
}(Page_1.PageBase));
}(Page_1.Page));
exports.PageForServer = PageForServer;

@@ -77,0 +77,0 @@ function stringifyBundle(bundle) {

@@ -1,4 +0,4 @@

import { type Model } from 'racer';
import { RootModel } from 'racer';
import { type AppBase } from './App';
import { type PageBase } from './Page';
import { type Page } from './Page';
export declare function routes(app: AppBase): any;

@@ -31,6 +31,6 @@ export interface PageParams extends ReadonlyArray<unknown> {

export interface RouteHandler {
(page: PageBase, model: Model, params: PageParams, next: (err?: Error) => void): void;
(page: Page, model: RootModel, params: PageParams, next: (err?: Error) => void): void;
}
export interface TransitionalRouteHandler {
(page: PageBase, model: Model, params: PageParams, next: (err?: Error) => void, done: () => void): void;
(page: Page, model: RootModel, params: PageParams, next: (err?: Error) => void, done: () => void): void;
}

@@ -51,5 +51,5 @@ declare module './App' {

declare module './Page' {
interface PageBase {
interface Page {
redirect(url: string, status?: number): void;
}
}

@@ -194,3 +194,3 @@ import { type Context } from './contexts';

serialize(): any;
get(context: Context): import("racer").ChildModel<{}>;
get(context: Context): import("racer").ChildModel<unknown>;
resolve(context: Context): SegmentOrContext[];

@@ -197,0 +197,0 @@ dependencies(context: Context, options: any): Dependency[];

{
"name": "derby",
"description": "MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers.",
"version": "4.0.0-beta.6",
"version": "4.0.0-beta.7",
"homepage": "http://derbyjs.com/",

@@ -58,2 +58,3 @@ "repository": {

"@types/qs": "^6.9.11",
"@types/resolve": "^1.20.6",
"@types/sharedb": "^3.3.10",

@@ -73,3 +74,3 @@ "@typescript-eslint/eslint-plugin": "^6.2.1",

"prettier": "^3.0.1",
"racer": "^v2.0.0-beta.8",
"racer": "^v2.0.0-beta.11",
"ts-node": "^10.9.2",

@@ -76,0 +77,0 @@ "typescript": "~5.1.3"

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