Socket
Socket
Sign inDemoInstall

remult

Package Overview
Dependencies
Maintainers
2
Versions
588
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

remult - npm Package Compare versions

Comparing version 0.26.11-next.0 to 0.26.11-next.1

esm/server/remult-api-server.js

1

esm/internals.js

@@ -7,1 +7,2 @@ import { remultStatic } from './src/remult-static.js';

export const actionInfo = remultStatic.actionInfo;
export { flags } from './src/remult3/remult3.js';

4

esm/postgres/postgres-data-provider.js

@@ -166,7 +166,7 @@ import { remult as defaultRemult } from '../src/remult-proxy.js';

c.dataProvider = sql;
let JobsInQueueEntity = (await import('../server/expressBridge.js'))
let JobsInQueueEntity = (await import('../server/remult-api-server.js'))
.JobsInQueueEntity;
let e = c.repo(JobsInQueueEntity);
await sql.ensureSchema([e.metadata]);
return new (await import('../server/expressBridge.js')).EntityQueueStorage(c.repo(JobsInQueueEntity));
return new (await import('../server/remult-api-server.js')).EntityQueueStorage(c.repo(JobsInQueueEntity));
}

@@ -173,0 +173,0 @@ export class PostgresSchemaWrapper {

@@ -1,2 +0,2 @@

import { createRemultServerCore } from './server/expressBridge.js';
import { createRemultServerCore } from './server/remult-api-server.js';
export function remultFresh(options, response) {

@@ -3,0 +3,0 @@ const server = createRemultServerCore(options, {

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

export { createRemultServerCore, } from './expressBridge.js';
export { createRemultServerCore, } from './remult-api-server.js';
export { JsonEntityFileStorage, JsonFileDataProvider, } from './JsonEntityFileStorage.js';
export { SseSubscriptionServer } from '../SseSubscriptionServer.js';
export { DataProviderLiveQueryStorage } from '../live-query/data-provider-live-query-storage.js';

@@ -1,2 +0,2 @@

import { createRemultServerCore } from './expressBridge.js';
import { createRemultServerCore } from './remult-api-server.js';
import { initAsyncHooks } from './initAsyncHooks.js';

@@ -3,0 +3,0 @@ export { SseSubscriptionServer } from '../SseSubscriptionServer.js';

import { RestDataProviderHttpProviderUsingFetch } from './data-providers/rest-data-provider.js';
import { flags } from './remult3/remult3.js';
export function buildRestDataProvider(provider) {

@@ -54,7 +55,7 @@ if (!provider)

err.status == 500) &&
i++ < 50) {
i++ < flags.error500RetryCount) {
await new Promise((res, req) => {
setTimeout(() => {
res({});
}, 250);
}, 500);
});

@@ -61,0 +62,0 @@ continue;

@@ -137,3 +137,3 @@ import { CompoundIdField } from '../CompoundIdField.js';

}
throw new Error("couldn't find id to update: " + id);
throw new Error(`ArrayEntityDataProvider: Couldn't find row with id "${id}" in entity "${this.entity.key}" to update`);
}

@@ -149,3 +149,3 @@ async delete(id) {

}
throw new Error("couldn't find id to delete: " + id);
throw new Error(`ArrayEntityDataProvider: Couldn't find row with id "${id}" in entity "${this.entity.key}" to delete`);
}

@@ -152,0 +152,0 @@ async insert(data) {

@@ -103,3 +103,3 @@ import { FilterConsumerBridgeToSqlRequest, dbNamesOf, isDbReadonly, } from '../filter/filter-consumer-bridge-to-sql-request.js';

}
static async filterToRaw(repo, condition, sqlCommand, dbNames, wrapIdentifier = (x) => x) {
static async filterToRaw(repo, condition, sqlCommand, dbNames, wrapIdentifier) {
if (!sqlCommand) {

@@ -106,0 +106,0 @@ sqlCommand = new myDummySQLCommand();

@@ -70,3 +70,3 @@ import { buildRestDataProvider } from '../buildRestDataProvider.js';

}
closeIfNoListeners() {
_actuallyClose() {
if (this.client)

@@ -80,2 +80,8 @@ if (this.queries.size === 0 && this.channels.size === 0) {

}
keepAliveMs = 1000;
closeIfNoListeners() {
setTimeout(() => {
this._actuallyClose();
}, this.keepAliveMs);
}
subscribe(repo, options, listener) {

@@ -167,3 +173,4 @@ let alive = true;

for (const q of this.queries.values()) {
ids.push(q.queryChannel);
if (q.gotAnyResult)
ids.push(q.queryChannel);
}

@@ -170,0 +177,0 @@ if (ids.length > 0) {

import { buildRestDataProvider } from '../buildRestDataProvider.js';
import { remult } from '../remult-proxy.js';
import { remultStatic } from '../remult-static.js';
import { flags } from '../remult3/remult3.js';
import { streamUrl } from './SubscriptionChannel.js';

@@ -37,2 +38,3 @@ export class SseSubscriptionClient {

createConnection();
let retryCount = 0;
function createConnection() {

@@ -51,5 +53,7 @@ if (source)

source.close();
setTimeout(() => {
createConnection();
}, 500);
if (retryCount++ < flags.error500RetryCount) {
setTimeout(() => {
createConnection();
}, 500);
}
};

@@ -56,0 +60,0 @@ source.addEventListener('connectionId', async (e) => {

@@ -13,2 +13,3 @@ import { v4 as uuid } from 'uuid';

}
gotAnyResult = false;
queryChannel;

@@ -18,2 +19,3 @@ subscribeCode;

async setAllItems(result) {
this.gotAnyResult = true;
const items = await getRepositoryInternals(this.repo)._fromJsonArray(result, this.query.options);

@@ -20,0 +22,0 @@ this.forListeners((listener) => {

@@ -1,14 +0,10 @@

export {};
export const flags = {
error500RetryCount: 4,
};
//y2 - soft-delete-discussion https://discord.com/channels/975754286384418847/1230386433093533698/1230386433093533698
//y1 - In the esm version of our tutorial - the imports are automatically .ts and not .js in react and not in vue
/*y1 - The retry on server error is too wide (error 500, basically any server error) 50 retries is annoying
- vite doesn't say proxy error, so we can't listen to that to know that we are in dev
- Our SSE has it's own separate retry every 500 ms that is also problematic
- when using concurrently - on any server error - the terminal is flooded by the error messages
//y1 - consider id to also support keyof (id:['company','index']) - had problem with | (keyof Partial<entityType>)[] & `entity`
//y2 - readonly key: keyof MembersOnly<entityType> & string
//y1 - live query with count #436
//y1 - live query errort that appears in tests but I can't understand why - `open connection error `
//y1 TODO - In the esm version of our tutorial - the imports are automatically .ts and not .js in react and not in vue
//y1 TODO - consider id to also support keyof (id:['company','index']) - had problem with | (keyof Partial<entityType>)[] & `entity`
//y1 TODO - readonly key: keyof MembersOnly<entityType> & string
//y1 - talk about insert / update / delete with relations

@@ -33,4 +29,4 @@ /*

//p1 - return error on connection error
//p1 - reconsider key typing to be keyof & string
//p1 - article on displayValue including it's definition for entities that is used in relations
//p1 - article auth.js with express - played with it, requires type="module" and a few more configurations - https://github.com/noam-honig/express-auth
//p2 -fix remult admin not to load the html into memory until used

@@ -40,3 +36,2 @@ //y2 - currently for string fields we default for 255 in knex (which is their default) why not just use text (varchar max) - and only use exact length when one is provided?

//p2 - admin url1 - pocketbase use /_ for the admin //{allowed?:Allowed,url?:string} also checkout the admin* as it should probably be something else and didn't work in hono
//p1 - article auth.js with express - played with it, requires type="module" and a few more configurations - https://github.com/noam-honig/express-auth
//y2 - fix validators cache

@@ -91,3 +86,2 @@ //y2 - should we validate relations

//p1 - adjust angular tutorial starter kit for latest angular (as is in tutorial)
//p2 - when subscribe is forbidden - the query still runs after the renew process
//p2 - 'update tasks set where id = $1

@@ -94,0 +88,0 @@ //p2 - type metadata.key - to keyof entity - based on cwis input

@@ -15,1 +15,2 @@ export { getRelationInfo, getRelationFieldInfo, RelationFieldInfo, RelationInfo, RelationFields, } from './src/remult3/relationInfoMember.js';

export { ClassType } from './classType.js';
export { flags } from './src/remult3/remult3.js';
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.actionInfo = exports.__updateEntityBasedOnWhere = exports.getEntitySettings = exports.getControllerRef = exports.controllerRefImpl = exports.decorateColumnSettings = exports.getRelationFieldInfo = exports.getRelationInfo = void 0;
exports.flags = exports.actionInfo = exports.__updateEntityBasedOnWhere = exports.getEntitySettings = exports.getControllerRef = exports.controllerRefImpl = exports.decorateColumnSettings = exports.getRelationFieldInfo = exports.getRelationInfo = void 0;
var remult_static_js_1 = require("./src/remult-static.js");

@@ -17,1 +17,3 @@ var relationInfoMember_js_1 = require("./src/remult3/relationInfoMember.js");

exports.actionInfo = remult_static_js_1.remultStatic.actionInfo;
var remult3_js_1 = require("./src/remult3/remult3.js");
Object.defineProperty(exports, "flags", { enumerable: true, get: function () { return remult3_js_1.flags; } });
{
"name": "remult",
"version": "0.26.11-next.0",
"version": "0.26.11-next.1",
"description": "A CRUD framework for full-stack TypeScript",

@@ -5,0 +5,0 @@ "homepage": "https://remult.dev",

@@ -48,3 +48,3 @@ import type { ClientBase, PoolConfig, QueryResult } from 'pg';

}): Promise<SqlDatabase>;
export declare function preparePostgresQueueStorage(sql: SqlDatabase): Promise<import("../server/expressBridge.js").EntityQueueStorage>;
export declare function preparePostgresQueueStorage(sql: SqlDatabase): Promise<import("../server/remult-api-server.js").EntityQueueStorage>;
export declare class PostgresSchemaWrapper implements PostgresPool {

@@ -51,0 +51,0 @@ private pool;

@@ -251,3 +251,3 @@ "use strict";

c.dataProvider = sql;
return [4 /*yield*/, Promise.resolve().then(function () { return tslib_1.__importStar(require('../server/expressBridge.js')); })];
return [4 /*yield*/, Promise.resolve().then(function () { return tslib_1.__importStar(require('../server/remult-api-server.js')); })];
case 1:

@@ -260,3 +260,3 @@ JobsInQueueEntity = (_a.sent())

_a.sent();
return [4 /*yield*/, Promise.resolve().then(function () { return tslib_1.__importStar(require('../server/expressBridge.js')); })];
return [4 /*yield*/, Promise.resolve().then(function () { return tslib_1.__importStar(require('../server/remult-api-server.js')); })];
case 3: return [2 /*return*/, new (_a.sent()).EntityQueueStorage(c.repo(JobsInQueueEntity))];

@@ -263,0 +263,0 @@ }

import * as express from 'express';
import type { RemultServer, RemultServerCore, RemultServerOptions } from './server/expressBridge.js';
import type { RemultServer, RemultServerCore, RemultServerOptions } from './server/remult-api-server.js';
export declare function remultExpress(options?: RemultServerOptions<express.Request> & {

@@ -4,0 +4,0 @@ bodyParser?: boolean;

import type { FastifyPluginCallback, FastifyRequest } from 'fastify';
import type { RemultServerCore, RemultServerOptions, RemultServer } from './server/expressBridge.js';
import type { RemultServerCore, RemultServerOptions, RemultServer } from './server/remult-api-server.js';
export declare function remultFastify(options: RemultServerOptions<FastifyRequest>): RemultFastifyServer;

@@ -4,0 +4,0 @@ export type RemultFastifyServer = FastifyPluginCallback & RemultServerCore<FastifyRequest> & {

@@ -1,2 +0,2 @@

import type { RemultServerCore, RemultServerOptions } from './server/expressBridge.js';
import type { RemultServerCore, RemultServerOptions } from './server/remult-api-server.js';
export declare function remultFresh(options: RemultServerOptions<FreshRequest>, response: FreshResponse): RemultFresh;

@@ -3,0 +3,0 @@ export interface RemultFresh extends RemultServerCore<FreshRequest> {

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

var tslib_1 = require("tslib");
var expressBridge_js_1 = require("./server/expressBridge.js");
var remult_api_server_js_1 = require("./server/remult-api-server.js");
function remultFresh(options, response) {
var _this = this;
var server = (0, expressBridge_js_1.createRemultServerCore)(options, {
var server = (0, remult_api_server_js_1.createRemultServerCore)(options, {
buildGenericRequestInfo: function (r) { return r; },

@@ -11,0 +11,0 @@ getRequestBody: function (req) { return req.json(); },

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

export { queuedJobInfo, QueueStorage, GenericRequestInfo, GenericRequestHandler, GenericResponse, GenericRouter, createRemultServerCore, RemultServerOptions, SpecificRoute, RemultServer, } from './expressBridge.js';
export { queuedJobInfo, QueueStorage, GenericRequestInfo, GenericRequestHandler, GenericResponse, GenericRouter, createRemultServerCore, RemultServerOptions, SpecificRoute, RemultServer, } from './remult-api-server.js';
export { JsonEntityFileStorage, JsonFileDataProvider, } from './JsonEntityFileStorage.js';
export { SseSubscriptionServer } from '../SseSubscriptionServer.js';
export { DataProviderLiveQueryStorage } from '../live-query/data-provider-live-query-storage.js';
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DataProviderLiveQueryStorage = exports.SseSubscriptionServer = exports.JsonFileDataProvider = exports.JsonEntityFileStorage = exports.createRemultServerCore = void 0;
var expressBridge_js_1 = require("./expressBridge.js");
Object.defineProperty(exports, "createRemultServerCore", { enumerable: true, get: function () { return expressBridge_js_1.createRemultServerCore; } });
var remult_api_server_js_1 = require("./remult-api-server.js");
Object.defineProperty(exports, "createRemultServerCore", { enumerable: true, get: function () { return remult_api_server_js_1.createRemultServerCore; } });
var JsonEntityFileStorage_js_1 = require("./JsonEntityFileStorage.js");

@@ -7,0 +7,0 @@ Object.defineProperty(exports, "JsonEntityFileStorage", { enumerable: true, get: function () { return JsonEntityFileStorage_js_1.JsonEntityFileStorage; } });

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

import type { RemultServer, RemultServerOptions, ServerCoreOptions } from './expressBridge.js';
import type { RemultServer, RemultServerOptions, ServerCoreOptions } from './remult-api-server.js';
export { SseSubscriptionServer } from '../SseSubscriptionServer.js';
export { DataProviderLiveQueryStorage } from '../live-query/data-provider-live-query-storage.js';
export { JsonEntityFileStorage, JsonFileDataProvider, } from './JsonEntityFileStorage.js';
export { GenericRequestHandler, GenericRequestInfo, GenericResponse, GenericRouter, InitRequestOptions, QueueStorage, RemultServer, RemultServerCore, RemultServerOptions, SpecificRoute, queuedJobInfo, } from './expressBridge.js';
export { GenericRequestHandler, GenericRequestInfo, GenericResponse, GenericRouter, InitRequestOptions, QueueStorage, RemultServer, RemultServerCore, RemultServerOptions, SpecificRoute, queuedJobInfo, } from './remult-api-server.js';
export declare function createRemultServer<RequestType>(options: RemultServerOptions<RequestType>, serverCoreOptions?: ServerCoreOptions<RequestType>): RemultServer<RequestType>;

@@ -5,3 +5,3 @@ "use strict";

var tslib_1 = require("tslib");
var expressBridge_js_1 = require("./expressBridge.js");
var remult_api_server_js_1 = require("./remult-api-server.js");
var initAsyncHooks_js_1 = require("./initAsyncHooks.js");

@@ -18,3 +18,3 @@ var SseSubscriptionServer_js_1 = require("../SseSubscriptionServer.js");

(0, initAsyncHooks_js_1.initAsyncHooks)();
return (0, expressBridge_js_1.createRemultServerCore)(options, serverCoreOptions || {
return (0, remult_api_server_js_1.createRemultServerCore)(options, serverCoreOptions || {
buildGenericRequestInfo: function (req) { return req; },

@@ -21,0 +21,0 @@ getRequestBody: function (req) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {

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

var rest_data_provider_js_1 = require("./data-providers/rest-data-provider.js");
var remult3_js_1 = require("./remult3/remult3.js");
function buildRestDataProvider(provider) {

@@ -89,7 +90,7 @@ if (!provider)

err_1.status == 500) &&
i++ < 50)) return [3 /*break*/, 6];
i++ < remult3_js_1.flags.error500RetryCount)) return [3 /*break*/, 6];
return [4 /*yield*/, new Promise(function (res, req) {
setTimeout(function () {
res({});
}, 250);
}, 500);
})];

@@ -96,0 +97,0 @@ case 5:

@@ -232,3 +232,3 @@ "use strict";

}
throw new Error("couldn't find id to update: " + id);
throw new Error("ArrayEntityDataProvider: Couldn't find row with id \"".concat(id, "\" in entity \"").concat(this.entity.key, "\" to update"));
}

@@ -253,3 +253,3 @@ });

}
throw new Error("couldn't find id to delete: " + id);
throw new Error("ArrayEntityDataProvider: Couldn't find row with id \"".concat(id, "\" in entity \"").concat(this.entity.key, "\" to delete"));
}

@@ -256,0 +256,0 @@ });

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

SqlDatabase.filterToRaw = function (repo, condition, sqlCommand, dbNames, wrapIdentifier) {
if (wrapIdentifier === void 0) { wrapIdentifier = function (x) { return x; }; }
return tslib_1.__awaiter(this, void 0, void 0, function () {

@@ -173,0 +172,0 @@ var r, b, _a, _b, _c;

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

this.channels = new Map();
this.keepAliveMs = 1000;
}

@@ -91,3 +92,3 @@ LiveQueryClient.prototype.wrapMessageHandling = function (handleMessage) {

};
LiveQueryClient.prototype.closeIfNoListeners = function () {
LiveQueryClient.prototype._actuallyClose = function () {
if (this.client)

@@ -101,2 +102,8 @@ if (this.queries.size === 0 && this.channels.size === 0) {

};
LiveQueryClient.prototype.closeIfNoListeners = function () {
var _this = this;
setTimeout(function () {
_this._actuallyClose();
}, this.keepAliveMs);
};
LiveQueryClient.prototype.subscribe = function (repo, options, listener) {

@@ -195,3 +202,4 @@ var _this = this;

q = _b.value;
ids.push(q.queryChannel);
if (q.gotAnyResult)
ids.push(q.queryChannel);
}

@@ -198,0 +206,0 @@ }

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

var remult_static_js_1 = require("../remult-static.js");
var remult3_js_1 = require("../remult3/remult3.js");
var SubscriptionChannel_js_1 = require("./SubscriptionChannel.js");

@@ -58,2 +59,3 @@ var SseSubscriptionClient = /** @class */ (function () {

createConnection();
var retryCount = 0;
function createConnection() {

@@ -73,5 +75,7 @@ var _this = this;

source.close();
setTimeout(function () {
createConnection();
}, 500);
if (retryCount++ < remult3_js_1.flags.error500RetryCount) {
setTimeout(function () {
createConnection();
}, 500);
}
};

@@ -78,0 +82,0 @@ source.addEventListener('connectionId', function (e) { return tslib_1.__awaiter(_this, void 0, void 0, function () {

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

this.query = query;
this.gotAnyResult = false;
this.unsubscribe = function () { };

@@ -32,3 +33,5 @@ this.defaultQueryState = [];

switch (_a.label) {
case 0: return [4 /*yield*/, (0, repository_internals_js_1.getRepositoryInternals)(this.repo)._fromJsonArray(result, this.query.options)];
case 0:
this.gotAnyResult = true;
return [4 /*yield*/, (0, repository_internals_js_1.getRepositoryInternals)(this.repo)._fromJsonArray(result, this.query.options)];
case 1:

@@ -35,0 +38,0 @@ items = _a.sent();

@@ -679,1 +679,4 @@ import type { ErrorInfo, FieldOptions } from '../../index.js';

export type ClassFieldDecorator<entityType, valueType> = (target: any, context: string | ClassFieldDecoratorContextStub<entityType, valueType | undefined>, c?: any) => void;
export declare const flags: {
error500RetryCount: number;
};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.flags = void 0;
exports.flags = {
error500RetryCount: 4,
};
//y2 - soft-delete-discussion https://discord.com/channels/975754286384418847/1230386433093533698/1230386433093533698
//y1 - In the esm version of our tutorial - the imports are automatically .ts and not .js in react and not in vue
/*y1 - The retry on server error is too wide (error 500, basically any server error) 50 retries is annoying
- vite doesn't say proxy error, so we can't listen to that to know that we are in dev
- Our SSE has it's own separate retry every 500 ms that is also problematic
- when using concurrently - on any server error - the terminal is flooded by the error messages
//y1 - consider id to also support keyof (id:['company','index']) - had problem with | (keyof Partial<entityType>)[] & `entity`
//y2 - readonly key: keyof MembersOnly<entityType> & string
//y1 - live query with count #436
//y1 - live query errort that appears in tests but I can't understand why - `open connection error `
//y1 TODO - In the esm version of our tutorial - the imports are automatically .ts and not .js in react and not in vue
//y1 TODO - consider id to also support keyof (id:['company','index']) - had problem with | (keyof Partial<entityType>)[] & `entity`
//y1 TODO - readonly key: keyof MembersOnly<entityType> & string
//y1 - talk about insert / update / delete with relations

@@ -34,4 +32,4 @@ /*

//p1 - return error on connection error
//p1 - reconsider key typing to be keyof & string
//p1 - article on displayValue including it's definition for entities that is used in relations
//p1 - article auth.js with express - played with it, requires type="module" and a few more configurations - https://github.com/noam-honig/express-auth
//p2 -fix remult admin not to load the html into memory until used

@@ -41,3 +39,2 @@ //y2 - currently for string fields we default for 255 in knex (which is their default) why not just use text (varchar max) - and only use exact length when one is provided?

//p2 - admin url1 - pocketbase use /_ for the admin //{allowed?:Allowed,url?:string} also checkout the admin* as it should probably be something else and didn't work in hono
//p1 - article auth.js with express - played with it, requires type="module" and a few more configurations - https://github.com/noam-honig/express-auth
//y2 - fix validators cache

@@ -92,3 +89,2 @@ //y2 - should we validate relations

//p1 - adjust angular tutorial starter kit for latest angular (as is in tutorial)
//p2 - when subscribe is forbidden - the query still runs after the renew process
//p2 - 'update tasks set where id = $1

@@ -95,0 +91,0 @@ //p2 - type metadata.key - to keyof entity - based on cwis input

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

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