Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@ethersproject/properties

Package Overview
Dependencies
Maintainers
1
Versions
51
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ethersproject/properties - npm Package Compare versions

Comparing version 5.6.0 to 6.0.0-beta.1

lib/copy.d.ts

2

lib/_version.d.ts

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

export declare const version = "properties/5.6.0";
export declare const version = "@ethersproject/properties@6.0.0-beta.1";
//# sourceMappingURL=_version.d.ts.map

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = void 0;
exports.version = "properties/5.6.0";
export const version = "@ethersproject/properties@6.0.0-beta.1";
//# sourceMappingURL=_version.js.map

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

export declare function defineReadOnly<T, K extends keyof T>(object: T, name: K, value: T[K]): void;
export declare function getStatic<T>(ctor: any, key: string): T;
export declare type Deferrable<T> = {
[K in keyof T]: T[K] | Promise<T[K]>;
};
export declare function resolveProperties<T>(object: Readonly<Deferrable<T>>): Promise<T>;
export declare function checkProperties(object: any, properties: {
[name: string]: boolean;
}): void;
export declare function shallowCopy<T>(object: T): T;
export declare function deepCopy<T>(object: T): T;
export declare class Description<T = any> {
constructor(info: {
[K in keyof T]: T[K];
});
}
export { EventPayload } from "./events.js";
export { defineProperties, resolveProperties } from "./properties.js";
export { getStore, setStore } from "./storage.js";
export type { EventEmitterable, Listener } from "./events.js";
export type { Frozen, Freezable } from "./freezable.js";
//# sourceMappingURL=index.d.ts.map

@@ -1,171 +0,5 @@

"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Description = exports.deepCopy = exports.shallowCopy = exports.checkProperties = exports.resolveProperties = exports.getStatic = exports.defineReadOnly = void 0;
var logger_1 = require("@ethersproject/logger");
var _version_1 = require("./_version");
var logger = new logger_1.Logger(_version_1.version);
function defineReadOnly(object, name, value) {
Object.defineProperty(object, name, {
enumerable: true,
value: value,
writable: false,
});
}
exports.defineReadOnly = defineReadOnly;
// Crawl up the constructor chain to find a static method
function getStatic(ctor, key) {
for (var i = 0; i < 32; i++) {
if (ctor[key]) {
return ctor[key];
}
if (!ctor.prototype || typeof (ctor.prototype) !== "object") {
break;
}
ctor = Object.getPrototypeOf(ctor.prototype).constructor;
}
return null;
}
exports.getStatic = getStatic;
function resolveProperties(object) {
return __awaiter(this, void 0, void 0, function () {
var promises, results;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
promises = Object.keys(object).map(function (key) {
var value = object[key];
return Promise.resolve(value).then(function (v) { return ({ key: key, value: v }); });
});
return [4 /*yield*/, Promise.all(promises)];
case 1:
results = _a.sent();
return [2 /*return*/, results.reduce(function (accum, result) {
accum[(result.key)] = result.value;
return accum;
}, {})];
}
});
});
}
exports.resolveProperties = resolveProperties;
function checkProperties(object, properties) {
if (!object || typeof (object) !== "object") {
logger.throwArgumentError("invalid object", "object", object);
}
Object.keys(object).forEach(function (key) {
if (!properties[key]) {
logger.throwArgumentError("invalid object key - " + key, "transaction:" + key, object);
}
});
}
exports.checkProperties = checkProperties;
function shallowCopy(object) {
var result = {};
for (var key in object) {
result[key] = object[key];
}
return result;
}
exports.shallowCopy = shallowCopy;
var opaque = { bigint: true, boolean: true, "function": true, number: true, string: true };
function _isFrozen(object) {
// Opaque objects are not mutable, so safe to copy by assignment
if (object === undefined || object === null || opaque[typeof (object)]) {
return true;
}
if (Array.isArray(object) || typeof (object) === "object") {
if (!Object.isFrozen(object)) {
return false;
}
var keys = Object.keys(object);
for (var i = 0; i < keys.length; i++) {
var value = null;
try {
value = object[keys[i]];
}
catch (error) {
// If accessing a value triggers an error, it is a getter
// designed to do so (e.g. Result) and is therefore "frozen"
continue;
}
if (!_isFrozen(value)) {
return false;
}
}
return true;
}
return logger.throwArgumentError("Cannot deepCopy " + typeof (object), "object", object);
}
// Returns a new copy of object, such that no properties may be replaced.
// New properties may be added only to objects.
function _deepCopy(object) {
if (_isFrozen(object)) {
return object;
}
// Arrays are mutable, so we need to create a copy
if (Array.isArray(object)) {
return Object.freeze(object.map(function (item) { return deepCopy(item); }));
}
if (typeof (object) === "object") {
var result = {};
for (var key in object) {
var value = object[key];
if (value === undefined) {
continue;
}
defineReadOnly(result, key, deepCopy(value));
}
return result;
}
return logger.throwArgumentError("Cannot deepCopy " + typeof (object), "object", object);
}
function deepCopy(object) {
return _deepCopy(object);
}
exports.deepCopy = deepCopy;
var Description = /** @class */ (function () {
function Description(info) {
for (var key in info) {
this[key] = deepCopy(info[key]);
}
}
return Description;
}());
exports.Description = Description;
//export { deepCopy, markImmutable, unmarkImmutable } from "./copy.js";
export { EventPayload } from "./events.js";
export { defineProperties, resolveProperties } from "./properties.js";
export { getStore, setStore } from "./storage.js";
//# sourceMappingURL=index.js.map
MIT License
Copyright (c) 2019 Richard Moore
Copyright (c) 2022 Richard Moore

@@ -5,0 +5,0 @@ Permission is hereby granted, free of charge, to any person obtaining a copy

{
"author": "Richard Moore <me@ricmoo.com>",
"dependencies": {
"@ethersproject/logger": "^5.6.0"
"@ethersproject/logger": "^6.0.0-beta.1"
},
"description": "Properties utility functions for ethers.",
"engines": {
"node": ">=12.17.0"
},
"ethereum": "donations.ethers.eth",
"funding": [
{
"type": "individual",
"url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
},
{
"type": "individual",
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
"gitHead": "b8cda5dffdcb688e38d7c6a0aec4c7b8b59c1af5",
"gitHead": "77f691b3bc3a6387a5184ec9b1779faab4bcb30d",
"keywords": [

@@ -25,6 +18,6 @@ "Ethereum",

"main": "./lib/index.js",
"module": "./lib.esm/index.js",
"name": "@ethersproject/properties",
"publishConfig": {
"access": "public"
"access": "public",
"tag": "beta"
},

@@ -37,10 +30,9 @@ "repository": {

"scripts": {
"auto-build": "npm run build -- -w",
"build": "tsc -p ./tsconfig.json",
"test": "echo \"Error: no test specified\" && exit 1"
},
"sideEffects": false,
"tarballHash": "0x3c031460ac0052b77e187d7504f43f208e7a03681562a4fb4884a099df5d5e80",
"tarballHash": "0x8f541c3adc732e2b996875c255294d62904a53c61e76576808b276c43bfa3875",
"type": "module",
"types": "./lib/index.d.ts",
"version": "5.6.0"
"version": "6.0.0-beta.1"
}

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

export const version = "properties/5.6.0";
export const version = "@ethersproject/properties@6.0.0-beta.1";

@@ -1,129 +0,7 @@

"use strict";
//export { deepCopy, markImmutable, unmarkImmutable } from "./copy.js";
export { EventPayload } from "./events.js";
export { defineProperties, resolveProperties} from "./properties.js";
export { getStore, setStore } from "./storage.js";
import { Logger } from "@ethersproject/logger";
import { version } from "./_version";
const logger = new Logger(version);
export function defineReadOnly<T, K extends keyof T>(object: T, name: K, value: T[K]): void {
Object.defineProperty(object, name, {
enumerable: true,
value: value,
writable: false,
});
}
// Crawl up the constructor chain to find a static method
export function getStatic<T>(ctor: any, key: string): T {
for (let i = 0; i < 32; i++) {
if (ctor[key]) { return ctor[key]; }
if (!ctor.prototype || typeof(ctor.prototype) !== "object") { break; }
ctor = Object.getPrototypeOf(ctor.prototype).constructor;
}
return null;
}
export type Deferrable<T> = {
[ K in keyof T ]: T[K] | Promise<T[K]>;
}
type Result = { key: string, value: any};
export async function resolveProperties<T>(object: Readonly<Deferrable<T>>): Promise<T> {
const promises: Array<Promise<Result>> = Object.keys(object).map((key) => {
const value = object[<keyof Deferrable<T>>key];
return Promise.resolve(value).then((v) => ({ key: key, value: v }));
});
const results = await Promise.all(promises);
return results.reduce((accum, result) => {
accum[<keyof T>(result.key)] = result.value;
return accum;
}, <T>{ });
}
export function checkProperties(object: any, properties: { [ name: string ]: boolean }): void {
if (!object || typeof(object) !== "object") {
logger.throwArgumentError("invalid object", "object", object);
}
Object.keys(object).forEach((key) => {
if (!properties[key]) {
logger.throwArgumentError("invalid object key - " + key, "transaction:" + key, object);
}
});
}
export function shallowCopy<T>(object: T): T {
const result: any = {};
for (const key in object) { result[key] = object[key]; }
return result;
}
const opaque: { [key: string]: boolean } = { bigint: true, boolean: true, "function": true, number: true, string: true };
function _isFrozen(object: any): boolean {
// Opaque objects are not mutable, so safe to copy by assignment
if (object === undefined || object === null || opaque[typeof(object)]) { return true; }
if (Array.isArray(object) || typeof(object) === "object") {
if (!Object.isFrozen(object)) { return false; }
const keys = Object.keys(object);
for (let i = 0; i < keys.length; i++) {
let value: any = null;
try {
value = object[keys[i]];
} catch (error) {
// If accessing a value triggers an error, it is a getter
// designed to do so (e.g. Result) and is therefore "frozen"
continue;
}
if (!_isFrozen(value)) { return false; }
}
return true;
}
return logger.throwArgumentError(`Cannot deepCopy ${ typeof(object) }`, "object", object);
}
// Returns a new copy of object, such that no properties may be replaced.
// New properties may be added only to objects.
function _deepCopy(object: any): any {
if (_isFrozen(object)) { return object; }
// Arrays are mutable, so we need to create a copy
if (Array.isArray(object)) {
return Object.freeze(object.map((item) => deepCopy(item)));
}
if (typeof(object) === "object") {
const result: { [ key: string ]: any } = {};
for (const key in object) {
const value = object[key];
if (value === undefined) { continue; }
defineReadOnly(result, key, deepCopy(value));
}
return result;
}
return logger.throwArgumentError(`Cannot deepCopy ${ typeof(object) }`, "object", object);
}
export function deepCopy<T>(object: T): T {
return _deepCopy(object);
}
export class Description<T = any> {
constructor(info: { [ K in keyof T ]: T[K] }) {
for (const key in info) {
(<any>this)[key] = deepCopy(info[key]);
}
}
}
export type { EventEmitterable, Listener } from "./events.js";
export type { Frozen, Freezable } from "./freezable.js";

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