@harmoniclabs/plutus-data
Advanced tools
Comparing version 1.0.0 to 1.1.0
@@ -10,1 +10,8 @@ import { DataB } from "./DataB.js"; | ||
export declare function cloneData<D extends Data>(data: D): D; | ||
/** | ||
* all data instances (from any version) will have a `toJson` method | ||
* this function will get back the data of this version if needed | ||
**/ | ||
export declare function dataFromJson(json: { | ||
[x: string]: any; | ||
}): Data; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.cloneData = exports.eqData = exports.isData = void 0; | ||
exports.dataFromJson = exports.cloneData = exports.eqData = exports.isData = void 0; | ||
var DataB_1 = require("./DataB.js"); | ||
@@ -9,2 +9,3 @@ var DataConstr_1 = require("./DataConstr.js"); | ||
var DataMap_1 = require("./DataMap.js"); | ||
var DataPair_1 = require("./DataPair.js"); | ||
function isSomething(something) { | ||
@@ -59,3 +60,3 @@ return something !== null && something !== undefined; | ||
if (aProto === DataB_1.DataB.prototype) { | ||
return (a.bytes.asString === b.bytes.asString); | ||
return (a.bytes.toString() === b.bytes.toString()); | ||
} | ||
@@ -71,1 +72,30 @@ return false; | ||
exports.cloneData = cloneData; | ||
/** | ||
* all data instances (from any version) will have a `toJson` method | ||
* this function will get back the data of this version if needed | ||
**/ | ||
function dataFromJson(json) { | ||
if (typeof json !== "object") | ||
throw new TypeError("unexpected input"); | ||
var keys = Object.keys(json); | ||
if (keys.length <= 0) | ||
throw new TypeError("unexpected input"); | ||
var k = keys[0]; | ||
if (k === "int") | ||
return new DataI_1.DataI(json[k]); | ||
if (k === "bytes") | ||
return new DataB_1.DataB(json[k]); | ||
if (k === "list") | ||
return new DataList_1.DataList(json[k].map(dataFromJson)); | ||
if (k === "map") { | ||
var jsonMap = json[k]; | ||
return new DataMap_1.DataMap(jsonMap.map(function (_a) { | ||
var k = _a.k, v = _a.v; | ||
return new DataPair_1.DataPair(dataFromJson(k), dataFromJson(v)); | ||
})); | ||
} | ||
if (keys.includes("constr")) | ||
return new DataConstr_1.DataConstr(json.constr, json.fields.map(dataFromJson)); | ||
throw new Error("unknown json format"); | ||
} | ||
exports.dataFromJson = dataFromJson; |
import { ByteString } from "@harmoniclabs/bytestring"; | ||
export declare class DataB { | ||
private _bytes; | ||
get bytes(): ByteString; | ||
readonly bytes: ByteString; | ||
constructor(B: ByteString | Uint8Array | string); | ||
@@ -10,2 +9,3 @@ clone(): DataB; | ||
}; | ||
toString(): string; | ||
} |
"use strict"; | ||
var __assign = (this && this.__assign) || function () { | ||
__assign = Object.assign || function(t) { | ||
for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
s = arguments[i]; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
t[p] = s[p]; | ||
} | ||
return t; | ||
}; | ||
return __assign.apply(this, arguments); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.DataB = void 0; | ||
var bytestring_1 = require("@harmoniclabs/bytestring"); | ||
var roDescr_1 = require("./utils/roDescr.js"); | ||
var DataB = /** @class */ (function () { | ||
@@ -9,21 +21,19 @@ function DataB(B) { | ||
B = new bytestring_1.ByteString(B); | ||
this._bytes = B.clone(); | ||
var _bytes = B.clone(); | ||
Object.defineProperties(this, { | ||
bytes: __assign({ value: _bytes }, roDescr_1.roDescr) | ||
}); | ||
} | ||
Object.defineProperty(DataB.prototype, "bytes", { | ||
get: function () { | ||
return Object.freeze(this._bytes); | ||
}, | ||
enumerable: false, | ||
configurable: true | ||
}); | ||
; | ||
DataB.prototype.clone = function () { | ||
// the constructor clones the bytes | ||
return new DataB(this._bytes); | ||
return new DataB(this.bytes); | ||
}; | ||
DataB.prototype.toJson = function () { | ||
return { bytes: this._bytes.toString() }; | ||
return { bytes: this.bytes.toString() }; | ||
}; | ||
DataB.prototype.toString = function () { | ||
return "B #".concat(this.bytes.toString()); | ||
}; | ||
return DataB; | ||
}()); | ||
exports.DataB = DataB; |
import { CanBeUInteger } from "@harmoniclabs/biguint"; | ||
import { Data } from "./Data.js"; | ||
export declare class DataConstr { | ||
private _constr; | ||
get constr(): bigint; | ||
private _fields; | ||
get fields(): Data[]; | ||
readonly constr: bigint; | ||
readonly fields: Data[]; | ||
constructor(constr: CanBeUInteger, fields: Data[]); | ||
clone(): DataConstr; | ||
toJson(): any; | ||
toString(): string; | ||
} | ||
@@ -12,0 +11,0 @@ /** |
"use strict"; | ||
var __assign = (this && this.__assign) || function () { | ||
__assign = Object.assign || function(t) { | ||
for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
s = arguments[i]; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
t[p] = s[p]; | ||
} | ||
return t; | ||
}; | ||
return __assign.apply(this, arguments); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -7,32 +18,23 @@ exports.cborTagToConstrNumber = exports.constrNumberToCborTag = exports.DataConstr = void 0; | ||
var assert_1 = require("./utils/assert.js"); | ||
var roDescr_1 = require("./utils/roDescr.js"); | ||
var DataConstr = /** @class */ (function () { | ||
function DataConstr(constr, fields) { | ||
(0, assert_1.assert)(fields.every(Data_1.isData), "invalid fields passed to constructor"); | ||
this._constr = (0, biguint_1.forceBigUInt)(constr); | ||
this._fields = fields.map(function (dataElem) { return dataElem.clone(); }); | ||
(0, assert_1.assert)(Array.isArray(fields) && fields.every(Data_1.isData), "invalid fields passed to constructor"); | ||
Object.defineProperties(this, { | ||
constr: __assign({ value: (0, biguint_1.forceBigUInt)(constr) }, roDescr_1.roDescr), | ||
fields: __assign({ value: fields }, roDescr_1.roDescr) | ||
}); | ||
} | ||
Object.defineProperty(DataConstr.prototype, "constr", { | ||
get: function () { return this._constr; }, | ||
enumerable: false, | ||
configurable: true | ||
}); | ||
; | ||
Object.defineProperty(DataConstr.prototype, "fields", { | ||
get: function () { return this._fields.map(function (dataElem) { return Object.freeze(dataElem); }); }, | ||
enumerable: false, | ||
configurable: true | ||
}); | ||
; | ||
DataConstr.prototype.clone = function () { | ||
return new DataConstr(this._constr, this._fields | ||
//.map( dataElem => dataElem.clone() ) as Data[] | ||
// the constructor clones the fields | ||
); | ||
return new DataConstr(this.constr, this.fields.map(function (dataElem) { return dataElem.clone(); })); | ||
}; | ||
DataConstr.prototype.toJson = function () { | ||
return { | ||
constr: Number(this._constr), | ||
fields: this._fields.map(function (f) { return f.toJson(); }) | ||
constr: Number(this.constr), | ||
fields: this.fields.map(function (f) { return f.toJson(); }) | ||
}; | ||
}; | ||
DataConstr.prototype.toString = function () { | ||
return "Constr ".concat(this.constr.toString(), " [").concat(this.fields.map(function (data) { return data.toString(); }).join(","), "]"); | ||
}; | ||
return DataConstr; | ||
@@ -39,0 +41,0 @@ }()); |
export declare class DataI { | ||
private _int; | ||
get int(): bigint; | ||
readonly int: bigint; | ||
constructor(I?: number | bigint); | ||
@@ -9,2 +8,3 @@ clone(): DataI; | ||
}; | ||
toString(): string; | ||
} |
"use strict"; | ||
var __assign = (this && this.__assign) || function () { | ||
__assign = Object.assign || function(t) { | ||
for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
s = arguments[i]; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
t[p] = s[p]; | ||
} | ||
return t; | ||
}; | ||
return __assign.apply(this, arguments); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.DataI = void 0; | ||
var roDescr_1 = require("./utils/roDescr.js"); | ||
var DataI = /** @class */ (function () { | ||
function DataI(I) { | ||
if (I === void 0) { I = 0; } | ||
this._int = BigInt(I); | ||
I = BigInt(I); | ||
Object.defineProperties(this, { | ||
int: __assign({ value: I }, roDescr_1.roDescr) | ||
}); | ||
} | ||
Object.defineProperty(DataI.prototype, "int", { | ||
get: function () { return Object.freeze(this._int); }, | ||
enumerable: false, | ||
configurable: true | ||
}); | ||
DataI.prototype.clone = function () { | ||
return new DataI(this._int | ||
// .clone() | ||
// the constructor clones the fields | ||
); | ||
return new DataI(this.int); | ||
}; | ||
DataI.prototype.toJson = function () { | ||
return { int: this._int.toString() }; | ||
return { int: this.int.toString() }; | ||
}; | ||
DataI.prototype.toString = function () { | ||
return "I ".concat(this.int.toString()); | ||
}; | ||
return DataI; | ||
}()); | ||
exports.DataI = DataI; |
import { Data } from "./Data.js"; | ||
export declare class DataList { | ||
private _list; | ||
get list(): Data[]; | ||
readonly list: Data[]; | ||
constructor(list: Data[]); | ||
@@ -10,2 +9,3 @@ clone(): DataList; | ||
}; | ||
toString(): string; | ||
} |
"use strict"; | ||
var __assign = (this && this.__assign) || function () { | ||
__assign = Object.assign || function(t) { | ||
for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
s = arguments[i]; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
t[p] = s[p]; | ||
} | ||
return t; | ||
}; | ||
return __assign.apply(this, arguments); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -6,26 +17,24 @@ exports.DataList = void 0; | ||
var assert_1 = require("./utils/assert.js"); | ||
var roDescr_1 = require("./utils/roDescr.js"); | ||
var DataList = /** @class */ (function () { | ||
function DataList(list) { | ||
(0, assert_1.assert)(list.every(Data_1.isData), "invalid list passed to constructor"); | ||
this._list = list.map(function (dataElem) { return dataElem.clone(); }); | ||
(0, assert_1.assert)(Array.isArray(list) && | ||
list.every(Data_1.isData), "invalid list passed to constructor"); | ||
Object.defineProperties(this, { | ||
list: __assign({ value: list }, roDescr_1.roDescr) | ||
}); | ||
} | ||
Object.defineProperty(DataList.prototype, "list", { | ||
get: function () { return this._list.map(function (dataElem) { return Object.freeze(dataElem); }); }, | ||
enumerable: false, | ||
configurable: true | ||
}); | ||
; | ||
DataList.prototype.clone = function () { | ||
return new DataList(this._list | ||
//.map( dataElem => dataElem.clone() ) | ||
// the constructor clones the list | ||
); | ||
return new DataList(this.list.map(function (dataElem) { return dataElem.clone(); })); | ||
}; | ||
DataList.prototype.toJson = function () { | ||
return { | ||
list: this._list.map(function (elem) { return elem.toJson(); }) | ||
list: this.list.map(function (elem) { return elem.toJson(); }) | ||
}; | ||
}; | ||
DataList.prototype.toString = function () { | ||
return "List [".concat(this.list.map(function (data) { return data.toString(); }).join(","), "]"); | ||
}; | ||
return DataList; | ||
}()); | ||
exports.DataList = DataList; |
import { Data } from "./Data.js"; | ||
import { DataPair } from "./DataPair.js"; | ||
export declare class DataMap<DataKey extends Data, DataValue extends Data> { | ||
private _map; | ||
get map(): DataPair<DataKey, DataValue>[]; | ||
readonly map: DataPair<DataKey, DataValue>[]; | ||
constructor(map: DataPair<DataKey, DataValue>[]); | ||
@@ -14,2 +13,3 @@ clone(): DataMap<DataKey, DataValue>; | ||
}; | ||
toString(): string; | ||
} |
"use strict"; | ||
var __assign = (this && this.__assign) || function () { | ||
__assign = Object.assign || function(t) { | ||
for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
s = arguments[i]; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
t[p] = s[p]; | ||
} | ||
return t; | ||
}; | ||
return __assign.apply(this, arguments); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -7,25 +18,20 @@ exports.DataMap = void 0; | ||
var assert_1 = require("./utils/assert.js"); | ||
var roDescr_1 = require("./utils/roDescr.js"); | ||
var DataMap = /** @class */ (function () { | ||
function DataMap(map) { | ||
(0, assert_1.assert)(map.every(function (entry) { | ||
return Object.getPrototypeOf(entry) === DataPair_1.DataPair.prototype && | ||
(0, Data_1.isData)(entry.fst) && (0, Data_1.isData)(entry.snd); | ||
}), "invalid map passed to 'DataPair' constructor"); | ||
this._map = map.map(function (pair) { return pair.clone(); }); | ||
(0, assert_1.assert)(Array.isArray(map) && | ||
map.every(function (entry) { | ||
return entry instanceof DataPair_1.DataPair && | ||
(0, Data_1.isData)(entry.fst) && (0, Data_1.isData)(entry.snd); | ||
}), "invalid map passed to 'DataPair' constructor"); | ||
Object.defineProperties(this, { | ||
map: __assign({ value: map }, roDescr_1.roDescr) | ||
}); | ||
} | ||
Object.defineProperty(DataMap.prototype, "map", { | ||
get: function () { return this._map.map(function (pair) { return Object.freeze(pair); }); }, | ||
enumerable: false, | ||
configurable: true | ||
}); | ||
; | ||
DataMap.prototype.clone = function () { | ||
return new DataMap(this._map | ||
//.map( pair => pair.clone() ) | ||
// the constructor clones the map | ||
); | ||
return new DataMap(this.map.map(function (pair) { return pair.clone(); })); | ||
}; | ||
DataMap.prototype.toJson = function () { | ||
return { | ||
map: this._map.map(function (_a) { | ||
map: this.map.map(function (_a) { | ||
var fst = _a.fst, snd = _a.snd; | ||
@@ -39,4 +45,7 @@ return ({ | ||
}; | ||
DataMap.prototype.toString = function () { | ||
return "Map [".concat(this.map.map(function (dataPair) { return dataPair.toString(); }).join(","), "]"); | ||
}; | ||
return DataMap; | ||
}()); | ||
exports.DataMap = DataMap; |
import { Data } from "./Data.js"; | ||
export declare class DataPair<DataFst extends Data, DataSnd extends Data> { | ||
private _fst; | ||
get fst(): DataFst; | ||
set fst(v: DataFst); | ||
private _snd; | ||
get snd(): DataSnd; | ||
set snd(v: DataSnd); | ||
readonly fst: DataFst; | ||
readonly snd: DataSnd; | ||
constructor(fst: DataFst, snd: DataSnd); | ||
clone(): DataPair<DataFst, DataSnd>; | ||
toString(): string; | ||
} |
"use strict"; | ||
var __assign = (this && this.__assign) || function () { | ||
__assign = Object.assign || function(t) { | ||
for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
s = arguments[i]; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
t[p] = s[p]; | ||
} | ||
return t; | ||
}; | ||
return __assign.apply(this, arguments); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -6,36 +17,19 @@ exports.DataPair = void 0; | ||
var assert_1 = require("./utils/assert.js"); | ||
var roDescr_1 = require("./utils/roDescr.js"); | ||
var DataPair = /** @class */ (function () { | ||
function DataPair(fst, snd) { | ||
(0, assert_1.assert)((0, Data_1.isData)(fst) && (0, Data_1.isData)(snd), "invalid Data passed to 'DataPair' constructor; fst: ".concat(fst, "; snd: ").concat(snd)); | ||
this._fst = fst.clone(); | ||
this._snd = snd.clone(); | ||
Object.defineProperties(this, { | ||
fst: __assign({ value: fst }, roDescr_1.roDescr), | ||
snd: __assign({ value: snd }, roDescr_1.roDescr), | ||
}); | ||
} | ||
Object.defineProperty(DataPair.prototype, "fst", { | ||
get: function () { return Object.freeze(this._fst); }, | ||
set: function (v) { | ||
(0, assert_1.assert)((0, Data_1.isData)(v), "invalid Data passed setting 'fst' in 'DataPair'; value: ".concat(v)); | ||
this._fst = v; | ||
}, | ||
enumerable: false, | ||
configurable: true | ||
}); | ||
; | ||
; | ||
Object.defineProperty(DataPair.prototype, "snd", { | ||
get: function () { return Object.freeze(this._snd); }, | ||
set: function (v) { | ||
(0, assert_1.assert)((0, Data_1.isData)(v), "invalid Data passed setting 'snd' in 'DataPair'; value: ".concat(v)); | ||
this._snd = v; | ||
}, | ||
enumerable: false, | ||
configurable: true | ||
}); | ||
; | ||
; | ||
DataPair.prototype.clone = function () { | ||
// the constructor clones both fst and snd | ||
return new DataPair(this.fst, this.snd); | ||
}; | ||
DataPair.prototype.toString = function () { | ||
return "(".concat(this.fst.toString(), ",").concat(this.snd.toString(), ")"); | ||
}; | ||
return DataPair; | ||
}()); | ||
exports.DataPair = DataPair; |
@@ -9,4 +9,5 @@ export * from "./Data.js"; | ||
export * from "./fromCbor.js"; | ||
export * from "./fromString.js"; | ||
export * from "./toCbor.js"; | ||
export * from "./hashData.js"; | ||
export * from "./toData/interface.js"; |
@@ -25,4 +25,5 @@ "use strict"; | ||
__exportStar(require("./fromCbor.js"), exports); | ||
__exportStar(require("./fromString.js"), exports); | ||
__exportStar(require("./toCbor.js"), exports); | ||
__exportStar(require("./hashData.js"), exports); | ||
__exportStar(require("./toData/interface.js"), exports); |
import { Data } from "../Data.js"; | ||
export interface ToData { | ||
toData: (version?: "v1" | "v2") => Data; | ||
toData: (version?: "v1" | "v2" | "v3") => Data; | ||
} |
{ | ||
"name": "@harmoniclabs/plutus-data", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"description": "", | ||
@@ -20,3 +20,4 @@ "main": "./dist/index.js", | ||
"ci": "npm run test && npm run build", | ||
"start": "npm-run-all --parallel build:watch run:watch" | ||
"start": "npm-run-all --parallel build:watch run:watch", | ||
"docs": "npx typedoc src" | ||
}, | ||
@@ -38,7 +39,7 @@ "publishConfig": { | ||
"@harmoniclabs/biguint": "^1.0.0", | ||
"@harmoniclabs/crypto": "^0.1.0" | ||
"@harmoniclabs/crypto": "^0.2.0" | ||
}, | ||
"peerDependencies": { | ||
"@harmoniclabs/cbor": "^1.1.0", | ||
"@harmoniclabs/bytestring": "^1.0.0" | ||
"@harmoniclabs/bytestring": "^1.0.0", | ||
"@harmoniclabs/cbor": "^1.2.0" | ||
}, | ||
@@ -51,4 +52,6 @@ "devDependencies": { | ||
"tsc-alias": "^1.7.1", | ||
"typedoc": "^0.25.10", | ||
"typedoc-plugin-markdown": "^4.0.0-next.53", | ||
"typescript": "^4.6.3" | ||
} | ||
} |
@@ -14,4 +14,10 @@ # @harmoniclabs/plutus-data | ||
## exportedf functions | ||
## install | ||
```bash | ||
npm install @harmoniclabs/plutus-data | ||
``` | ||
## exported functions | ||
```ts | ||
@@ -18,0 +24,0 @@ function hashData(data: Data): Uint8Array; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
35493
34
911
28
8
+ Added@harmoniclabs/crypto@0.2.4(transitive)
- Removed@harmoniclabs/crypto@0.1.0(transitive)
Updated@harmoniclabs/crypto@^0.2.0