You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

normi

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

normi - npm Package Compare versions

Comparing version
0.2.0
to
0.3.0
+4
-1
dist/normi.cjs.development.js

@@ -28,2 +28,5 @@ 'use strict';

this.getId = function (data) {
console.log("getId");
console.log(JSON.stringify(data, null, 2));
if (typeof _this.params.id === 'function') {

@@ -33,3 +36,3 @@ return _this.params.id(data);

return _this.params.id.map(function (k) {
if (data[k] && util.isPrimitive(data[k])) {
if (data && data[k] && util.isPrimitive(data[k])) {
return data[k];

@@ -36,0 +39,0 @@ }

+1
-1

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

{"version":3,"file":"normi.cjs.development.js","sources":["../src/util.ts","../src/store.ts"],"sourcesContent":["export namespace util {\n export const randomId = () =>\n Math.random()\n .toString(36)\n .substring(2, 15) +\n Math.random()\n .toString(36)\n .substring(2, 15);\n\n export const isPrimitive = (val: any) => val !== Object(val);\n}\n","import { action, observable } from 'mobx';\nimport { util } from './util';\n\ntype NormiParams = {\n id: ((arg: any) => string) | string[];\n};\n\nexport class Normi {\n params: NormiParams;\n constructor(params: Partial<NormiParams> = {}) {\n this.params = {\n id: params.id || ['id'],\n };\n }\n\n getId = (data: any) => {\n if (typeof this.params.id === 'function') {\n return this.params.id(data);\n } else if (Array.isArray(this.params.id)) {\n return this.params.id\n .map(k => {\n if (data[k] && util.isPrimitive(data[k])) {\n return data[k];\n }\n return util.randomId();\n })\n .join('_');\n } else {\n return util.randomId();\n }\n };\n\n get = (id: string) => {\n return this.nodes[id] || null;\n };\n\n @observable nodes: { [k: string]: { value: any } } = {};\n\n @action merge = <T extends any>(rawData: T): { value: T } => {\n // let id;\n const data: any = rawData;\n const id = this.getId(data);\n\n const node = this.nodes[id] || {};\n\n if (Array.isArray(data)) {\n node.value = data.map((el: any) => {\n return this.merge(el).value;\n });\n } else if (typeof data === 'object') {\n if (!node.value) node.value = {};\n for (let key in data) {\n node.value[key] = this.merge(data[key]).value;\n }\n } else if (util.isPrimitive(data)) {\n return { value: data };\n } else {\n node.value = data;\n }\n\n this.nodes[id] = node;\n return this.nodes[id];\n };\n}\n"],"names":["util","Math","random","toString","substring","val","Object","Normi","params","data","id","Array","isArray","map","k","isPrimitive","randomId","join","nodes","rawData","getId","node","value","el","merge","key","__decorate","observable","action"],"mappings":"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"}
{"version":3,"file":"normi.cjs.development.js","sources":["../src/util.ts","../src/store.ts"],"sourcesContent":["export namespace util {\n export const randomId = () =>\n Math.random()\n .toString(36)\n .substring(2, 15) +\n Math.random()\n .toString(36)\n .substring(2, 15);\n\n export const isPrimitive = (val: any) => val !== Object(val);\n}\n","import { action, observable } from 'mobx';\nimport { util } from './util';\n\ntype NormiParams = {\n id: ((arg: any) => string) | string[];\n};\n\nexport class Normi {\n params: NormiParams;\n constructor(params: Partial<NormiParams> = {}) {\n this.params = {\n id: params.id || ['id'],\n };\n }\n\n getId = (data: any) => {\n console.log(`getId`);\n console.log(JSON.stringify(data, null, 2));\n if (typeof this.params.id === 'function') {\n return this.params.id(data);\n } else if (Array.isArray(this.params.id)) {\n return this.params.id\n .map(k => {\n if (data && data[k] && util.isPrimitive(data[k])) {\n return data[k];\n }\n return util.randomId();\n })\n .join('_');\n } else {\n return util.randomId();\n }\n };\n\n get = (id: string) => {\n return this.nodes[id] || null;\n };\n\n @observable nodes: { [k: string]: { value: any } } = {};\n\n @action merge = <T extends any>(rawData: T): { value: T } => {\n // let id;\n const data: any = rawData;\n const id = this.getId(data);\n\n const node = this.nodes[id] || {};\n\n if (Array.isArray(data)) {\n node.value = data.map((el: any) => {\n return this.merge(el).value;\n });\n } else if (typeof data === 'object') {\n if (!node.value) node.value = {};\n for (let key in data) {\n node.value[key] = this.merge(data[key]).value;\n }\n } else if (util.isPrimitive(data)) {\n return { value: data };\n } else {\n node.value = data;\n }\n\n this.nodes[id] = node;\n return this.nodes[id];\n };\n}\n"],"names":["util","Math","random","toString","substring","val","Object","Normi","params","data","console","log","JSON","stringify","id","Array","isArray","map","k","isPrimitive","randomId","join","nodes","rawData","getId","node","value","el","merge","key","__decorate","observable","action"],"mappings":"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"}

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

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("tslib"),i=require("mobx");!function(e){e.randomId=function(){return Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15)},e.isPrimitive=function(e){return e!==Object(e)}}(e||(e={}));var t=function(r){var i=this;void 0===r&&(r={}),this.getId=function(r){return"function"==typeof i.params.id?i.params.id(r):Array.isArray(i.params.id)?i.params.id.map((function(i){return r[i]&&e.isPrimitive(r[i])?r[i]:e.randomId()})).join("_"):e.randomId()},this.get=function(e){return i.nodes[e]||null},this.nodes={},this.merge=function(r){var t=r,n=i.getId(t),o=i.nodes[n]||{};if(Array.isArray(t))o.value=t.map((function(e){return i.merge(e).value}));else if("object"==typeof t)for(var a in o.value||(o.value={}),t)o.value[a]=i.merge(t[a]).value;else{if(e.isPrimitive(t))return{value:t};o.value=t}return i.nodes[n]=o,i.nodes[n]},this.params={id:r.id||["id"]}};r.__decorate([i.observable],t.prototype,"nodes",void 0),r.__decorate([i.action],t.prototype,"merge",void 0),exports.Normi=t;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("tslib"),i=require("mobx");!function(e){e.randomId=function(){return Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15)},e.isPrimitive=function(e){return e!==Object(e)}}(e||(e={}));var t=function(r){var i=this;void 0===r&&(r={}),this.getId=function(r){return console.log("getId"),console.log(JSON.stringify(r,null,2)),"function"==typeof i.params.id?i.params.id(r):Array.isArray(i.params.id)?i.params.id.map((function(i){return r&&r[i]&&e.isPrimitive(r[i])?r[i]:e.randomId()})).join("_"):e.randomId()},this.get=function(e){return i.nodes[e]||null},this.nodes={},this.merge=function(r){var t=r,n=i.getId(t),o=i.nodes[n]||{};if(Array.isArray(t))o.value=t.map((function(e){return i.merge(e).value}));else if("object"==typeof t)for(var a in o.value||(o.value={}),t)o.value[a]=i.merge(t[a]).value;else{if(e.isPrimitive(t))return{value:t};o.value=t}return i.nodes[n]=o,i.nodes[n]},this.params={id:r.id||["id"]}};r.__decorate([i.observable],t.prototype,"nodes",void 0),r.__decorate([i.action],t.prototype,"merge",void 0),exports.Normi=t;
//# sourceMappingURL=normi.cjs.production.min.js.map

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

{"version":3,"file":"normi.cjs.production.min.js","sources":["../src/util.ts","../src/store.ts"],"sourcesContent":["export namespace util {\n export const randomId = () =>\n Math.random()\n .toString(36)\n .substring(2, 15) +\n Math.random()\n .toString(36)\n .substring(2, 15);\n\n export const isPrimitive = (val: any) => val !== Object(val);\n}\n","import { action, observable } from 'mobx';\nimport { util } from './util';\n\ntype NormiParams = {\n id: ((arg: any) => string) | string[];\n};\n\nexport class Normi {\n params: NormiParams;\n constructor(params: Partial<NormiParams> = {}) {\n this.params = {\n id: params.id || ['id'],\n };\n }\n\n getId = (data: any) => {\n if (typeof this.params.id === 'function') {\n return this.params.id(data);\n } else if (Array.isArray(this.params.id)) {\n return this.params.id\n .map(k => {\n if (data[k] && util.isPrimitive(data[k])) {\n return data[k];\n }\n return util.randomId();\n })\n .join('_');\n } else {\n return util.randomId();\n }\n };\n\n get = (id: string) => {\n return this.nodes[id] || null;\n };\n\n @observable nodes: { [k: string]: { value: any } } = {};\n\n @action merge = <T extends any>(rawData: T): { value: T } => {\n // let id;\n const data: any = rawData;\n const id = this.getId(data);\n\n const node = this.nodes[id] || {};\n\n if (Array.isArray(data)) {\n node.value = data.map((el: any) => {\n return this.merge(el).value;\n });\n } else if (typeof data === 'object') {\n if (!node.value) node.value = {};\n for (let key in data) {\n node.value[key] = this.merge(data[key]).value;\n }\n } else if (util.isPrimitive(data)) {\n return { value: data };\n } else {\n node.value = data;\n }\n\n this.nodes[id] = node;\n return this.nodes[id];\n };\n}\n"],"names":["util","Math","random","toString","substring","val","Object","Normi","params","data","_this","id","Array","isArray","map","k","isPrimitive","randomId","join","nodes","rawData","getId","node","value","el","merge","key","__decorate","observable","action"],"mappings":"wEAAiBA,wCAAjB,SAAiBA,GACFA,WAAW,kBACtBC,KAAKC,SACFC,SAAS,IACTC,UAAU,EAAG,IAChBH,KAAKC,SACFC,SAAS,IACTC,UAAU,EAAG,KAELJ,cAAc,SAACK,UAAaA,IAAQC,OAAOD,IAT1D,CAAiBL,IAAAA,WCOJO,EAEX,SAAYC,uBAAAA,IAAAA,EAA+B,eAMnC,SAACC,SACuB,mBAAnBC,EAAKF,OAAOG,GACdD,EAAKF,OAAOG,GAAGF,GACbG,MAAMC,QAAQH,EAAKF,OAAOG,IAC5BD,EAAKF,OAAOG,GAChBG,KAAI,SAAAC,UACCN,EAAKM,IAAMf,EAAKgB,YAAYP,EAAKM,IAC5BN,EAAKM,GAEPf,EAAKiB,cAEbC,KAAK,KAEDlB,EAAKiB,qBAIV,SAACN,UACED,EAAKS,MAAMR,IAAO,iBAG0B,cAErC,SAAgBS,OAExBX,EAAYW,EACZT,EAAKD,EAAKW,MAAMZ,GAEhBa,EAAOZ,EAAKS,MAAMR,IAAO,MAE3BC,MAAMC,QAAQJ,GAChBa,EAAKC,MAAQd,EAAKK,KAAI,SAACU,UACdd,EAAKe,MAAMD,GAAID,cAEnB,GAAoB,iBAATd,MAEX,IAAIiB,KADJJ,EAAKC,QAAOD,EAAKC,MAAQ,IACdd,EACda,EAAKC,MAAMG,GAAOhB,EAAKe,MAAMhB,EAAKiB,IAAMH,UAErC,CAAA,GAAIvB,EAAKgB,YAAYP,SACnB,CAAEc,MAAOd,GAEhBa,EAAKC,MAAQd,SAGfC,EAAKS,MAAMR,GAAMW,EACVZ,EAAKS,MAAMR,SAnDbH,OAAS,CACZG,GAAIH,EAAOG,IAAM,CAAC,QAyBVgB,cAAXC,0CAEOD,cAAPE"}
{"version":3,"file":"normi.cjs.production.min.js","sources":["../src/util.ts","../src/store.ts"],"sourcesContent":["export namespace util {\n export const randomId = () =>\n Math.random()\n .toString(36)\n .substring(2, 15) +\n Math.random()\n .toString(36)\n .substring(2, 15);\n\n export const isPrimitive = (val: any) => val !== Object(val);\n}\n","import { action, observable } from 'mobx';\nimport { util } from './util';\n\ntype NormiParams = {\n id: ((arg: any) => string) | string[];\n};\n\nexport class Normi {\n params: NormiParams;\n constructor(params: Partial<NormiParams> = {}) {\n this.params = {\n id: params.id || ['id'],\n };\n }\n\n getId = (data: any) => {\n console.log(`getId`);\n console.log(JSON.stringify(data, null, 2));\n if (typeof this.params.id === 'function') {\n return this.params.id(data);\n } else if (Array.isArray(this.params.id)) {\n return this.params.id\n .map(k => {\n if (data && data[k] && util.isPrimitive(data[k])) {\n return data[k];\n }\n return util.randomId();\n })\n .join('_');\n } else {\n return util.randomId();\n }\n };\n\n get = (id: string) => {\n return this.nodes[id] || null;\n };\n\n @observable nodes: { [k: string]: { value: any } } = {};\n\n @action merge = <T extends any>(rawData: T): { value: T } => {\n // let id;\n const data: any = rawData;\n const id = this.getId(data);\n\n const node = this.nodes[id] || {};\n\n if (Array.isArray(data)) {\n node.value = data.map((el: any) => {\n return this.merge(el).value;\n });\n } else if (typeof data === 'object') {\n if (!node.value) node.value = {};\n for (let key in data) {\n node.value[key] = this.merge(data[key]).value;\n }\n } else if (util.isPrimitive(data)) {\n return { value: data };\n } else {\n node.value = data;\n }\n\n this.nodes[id] = node;\n return this.nodes[id];\n };\n}\n"],"names":["util","Math","random","toString","substring","val","Object","Normi","params","data","console","log","JSON","stringify","_this","id","Array","isArray","map","k","isPrimitive","randomId","join","nodes","rawData","getId","node","value","el","merge","key","__decorate","observable","action"],"mappings":"wEAAiBA,wCAAjB,SAAiBA,GACFA,WAAW,kBACtBC,KAAKC,SACFC,SAAS,IACTC,UAAU,EAAG,IAChBH,KAAKC,SACFC,SAAS,IACTC,UAAU,EAAG,KAELJ,cAAc,SAACK,UAAaA,IAAQC,OAAOD,IAT1D,CAAiBL,IAAAA,WCOJO,EAEX,SAAYC,uBAAAA,IAAAA,EAA+B,eAMnC,SAACC,UACPC,QAAQC,aACRD,QAAQC,IAAIC,KAAKC,UAAUJ,EAAM,KAAM,IACT,mBAAnBK,EAAKN,OAAOO,GACdD,EAAKN,OAAOO,GAAGN,GACbO,MAAMC,QAAQH,EAAKN,OAAOO,IAC5BD,EAAKN,OAAOO,GAChBG,KAAI,SAAAC,UACCV,GAAQA,EAAKU,IAAMnB,EAAKoB,YAAYX,EAAKU,IACpCV,EAAKU,GAEPnB,EAAKqB,cAEbC,KAAK,KAEDtB,EAAKqB,qBAIV,SAACN,UACED,EAAKS,MAAMR,IAAO,iBAG0B,cAErC,SAAgBS,OAExBf,EAAYe,EACZT,EAAKD,EAAKW,MAAMhB,GAEhBiB,EAAOZ,EAAKS,MAAMR,IAAO,MAE3BC,MAAMC,QAAQR,GAChBiB,EAAKC,MAAQlB,EAAKS,KAAI,SAACU,UACdd,EAAKe,MAAMD,GAAID,cAEnB,GAAoB,iBAATlB,MAEX,IAAIqB,KADJJ,EAAKC,QAAOD,EAAKC,MAAQ,IACdlB,EACdiB,EAAKC,MAAMG,GAAOhB,EAAKe,MAAMpB,EAAKqB,IAAMH,UAErC,CAAA,GAAI3B,EAAKoB,YAAYX,SACnB,CAAEkB,MAAOlB,GAEhBiB,EAAKC,MAAQlB,SAGfK,EAAKS,MAAMR,GAAMW,EACVZ,EAAKS,MAAMR,SArDbP,OAAS,CACZO,GAAIP,EAAOO,IAAM,CAAC,QA2BVgB,cAAXC,0CAEOD,cAAPE"}

@@ -24,2 +24,5 @@ import { __decorate } from 'tslib';

this.getId = function (data) {
console.log("getId");
console.log(JSON.stringify(data, null, 2));
if (typeof _this.params.id === 'function') {

@@ -29,3 +32,3 @@ return _this.params.id(data);

return _this.params.id.map(function (k) {
if (data[k] && util.isPrimitive(data[k])) {
if (data && data[k] && util.isPrimitive(data[k])) {
return data[k];

@@ -32,0 +35,0 @@ }

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

{"version":3,"file":"normi.esm.js","sources":["../src/util.ts","../src/store.ts"],"sourcesContent":["export namespace util {\n export const randomId = () =>\n Math.random()\n .toString(36)\n .substring(2, 15) +\n Math.random()\n .toString(36)\n .substring(2, 15);\n\n export const isPrimitive = (val: any) => val !== Object(val);\n}\n","import { action, observable } from 'mobx';\nimport { util } from './util';\n\ntype NormiParams = {\n id: ((arg: any) => string) | string[];\n};\n\nexport class Normi {\n params: NormiParams;\n constructor(params: Partial<NormiParams> = {}) {\n this.params = {\n id: params.id || ['id'],\n };\n }\n\n getId = (data: any) => {\n if (typeof this.params.id === 'function') {\n return this.params.id(data);\n } else if (Array.isArray(this.params.id)) {\n return this.params.id\n .map(k => {\n if (data[k] && util.isPrimitive(data[k])) {\n return data[k];\n }\n return util.randomId();\n })\n .join('_');\n } else {\n return util.randomId();\n }\n };\n\n get = (id: string) => {\n return this.nodes[id] || null;\n };\n\n @observable nodes: { [k: string]: { value: any } } = {};\n\n @action merge = <T extends any>(rawData: T): { value: T } => {\n // let id;\n const data: any = rawData;\n const id = this.getId(data);\n\n const node = this.nodes[id] || {};\n\n if (Array.isArray(data)) {\n node.value = data.map((el: any) => {\n return this.merge(el).value;\n });\n } else if (typeof data === 'object') {\n if (!node.value) node.value = {};\n for (let key in data) {\n node.value[key] = this.merge(data[key]).value;\n }\n } else if (util.isPrimitive(data)) {\n return { value: data };\n } else {\n node.value = data;\n }\n\n this.nodes[id] = node;\n return this.nodes[id];\n };\n}\n"],"names":["util","Math","random","toString","substring","val","Object","Normi","params","data","id","Array","isArray","map","k","isPrimitive","randomId","join","nodes","rawData","getId","node","value","el","merge","key","__decorate","observable","action"],"mappings":"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"}
{"version":3,"file":"normi.esm.js","sources":["../src/util.ts","../src/store.ts"],"sourcesContent":["export namespace util {\n export const randomId = () =>\n Math.random()\n .toString(36)\n .substring(2, 15) +\n Math.random()\n .toString(36)\n .substring(2, 15);\n\n export const isPrimitive = (val: any) => val !== Object(val);\n}\n","import { action, observable } from 'mobx';\nimport { util } from './util';\n\ntype NormiParams = {\n id: ((arg: any) => string) | string[];\n};\n\nexport class Normi {\n params: NormiParams;\n constructor(params: Partial<NormiParams> = {}) {\n this.params = {\n id: params.id || ['id'],\n };\n }\n\n getId = (data: any) => {\n console.log(`getId`);\n console.log(JSON.stringify(data, null, 2));\n if (typeof this.params.id === 'function') {\n return this.params.id(data);\n } else if (Array.isArray(this.params.id)) {\n return this.params.id\n .map(k => {\n if (data && data[k] && util.isPrimitive(data[k])) {\n return data[k];\n }\n return util.randomId();\n })\n .join('_');\n } else {\n return util.randomId();\n }\n };\n\n get = (id: string) => {\n return this.nodes[id] || null;\n };\n\n @observable nodes: { [k: string]: { value: any } } = {};\n\n @action merge = <T extends any>(rawData: T): { value: T } => {\n // let id;\n const data: any = rawData;\n const id = this.getId(data);\n\n const node = this.nodes[id] || {};\n\n if (Array.isArray(data)) {\n node.value = data.map((el: any) => {\n return this.merge(el).value;\n });\n } else if (typeof data === 'object') {\n if (!node.value) node.value = {};\n for (let key in data) {\n node.value[key] = this.merge(data[key]).value;\n }\n } else if (util.isPrimitive(data)) {\n return { value: data };\n } else {\n node.value = data;\n }\n\n this.nodes[id] = node;\n return this.nodes[id];\n };\n}\n"],"names":["util","Math","random","toString","substring","val","Object","Normi","params","data","console","log","JSON","stringify","id","Array","isArray","map","k","isPrimitive","randomId","join","nodes","rawData","getId","node","value","el","merge","key","__decorate","observable","action"],"mappings":";;;IAAiBA;;AAAjB,WAAiBA;AACFA,EAAAA,aAAA,GAAW;AAAA,WACtBC,IAAI,CAACC,MAAL,GACGC,QADH,CACY,EADZ,EAEGC,SAFH,CAEa,CAFb,EAEgB,EAFhB,IAGAH,IAAI,CAACC,MAAL,GACGC,QADH,CACY,EADZ,EAEGC,SAFH,CAEa,CAFb,EAEgB,EAFhB,CAJsB;AAAA,GAAX;;AAQAJ,EAAAA,gBAAA,GAAc,UAACK,GAAD;AAAA,WAAcA,GAAG,KAAKC,MAAM,CAACD,GAAD,CAA5B;AAAA,GAAd;AACd,CAVD,EAAiBL,IAAI,KAAJA,IAAI,KAAA,CAArB;;ICOaO,KAAb,GAEE,eAAYC,MAAZ;;;MAAYA;AAAAA,IAAAA,SAA+B;;;AAM3C,YAAA,GAAQ,UAACC,IAAD;AACNC,IAAAA,OAAO,CAACC,GAAR;AACAD,IAAAA,OAAO,CAACC,GAAR,CAAYC,IAAI,CAACC,SAAL,CAAeJ,IAAf,EAAqB,IAArB,EAA2B,CAA3B,CAAZ;;AACA,QAAI,OAAO,KAAI,CAACD,MAAL,CAAYM,EAAnB,KAA0B,UAA9B,EAA0C;AACxC,aAAO,KAAI,CAACN,MAAL,CAAYM,EAAZ,CAAeL,IAAf,CAAP;AACD,KAFD,MAEO,IAAIM,KAAK,CAACC,OAAN,CAAc,KAAI,CAACR,MAAL,CAAYM,EAA1B,CAAJ,EAAmC;AACxC,aAAO,KAAI,CAACN,MAAL,CAAYM,EAAZ,CACJG,GADI,CACA,UAAAC,CAAC;AACJ,YAAIT,IAAI,IAAIA,IAAI,CAACS,CAAD,CAAZ,IAAmBlB,IAAI,CAACmB,WAAL,CAAiBV,IAAI,CAACS,CAAD,CAArB,CAAvB,EAAkD;AAChD,iBAAOT,IAAI,CAACS,CAAD,CAAX;AACD;;AACD,eAAOlB,IAAI,CAACoB,QAAL,EAAP;AACD,OANI,EAOJC,IAPI,CAOC,GAPD,CAAP;AAQD,KATM,MASA;AACL,aAAOrB,IAAI,CAACoB,QAAL,EAAP;AACD;AACF,GAjBD;;AAmBA,UAAA,GAAM,UAACN,EAAD;AACJ,WAAO,KAAI,CAACQ,KAAL,CAAWR,EAAX,KAAkB,IAAzB;AACD,GAFD;;AAIY,YAAA,GAAyC,EAAzC;;AAEJ,YAAA,GAAQ,UAAgBS,OAAhB;AACd;AACA,QAAMd,IAAI,GAAQc,OAAlB;;AACA,QAAMT,EAAE,GAAG,KAAI,CAACU,KAAL,CAAWf,IAAX,CAAX;;AAEA,QAAMgB,IAAI,GAAG,KAAI,CAACH,KAAL,CAAWR,EAAX,KAAkB,EAA/B;;AAEA,QAAIC,KAAK,CAACC,OAAN,CAAcP,IAAd,CAAJ,EAAyB;AACvBgB,MAAAA,IAAI,CAACC,KAAL,GAAajB,IAAI,CAACQ,GAAL,CAAS,UAACU,EAAD;AACpB,eAAO,KAAI,CAACC,KAAL,CAAWD,EAAX,EAAeD,KAAtB;AACD,OAFY,CAAb;AAGD,KAJD,MAIO,IAAI,OAAOjB,IAAP,KAAgB,QAApB,EAA8B;AACnC,UAAI,CAACgB,IAAI,CAACC,KAAV,EAAiBD,IAAI,CAACC,KAAL,GAAa,EAAb;;AACjB,WAAK,IAAIG,GAAT,IAAgBpB,IAAhB,EAAsB;AACpBgB,QAAAA,IAAI,CAACC,KAAL,CAAWG,GAAX,IAAkB,KAAI,CAACD,KAAL,CAAWnB,IAAI,CAACoB,GAAD,CAAf,EAAsBH,KAAxC;AACD;AACF,KALM,MAKA,IAAI1B,IAAI,CAACmB,WAAL,CAAiBV,IAAjB,CAAJ,EAA4B;AACjC,aAAO;AAAEiB,QAAAA,KAAK,EAAEjB;AAAT,OAAP;AACD,KAFM,MAEA;AACLgB,MAAAA,IAAI,CAACC,KAAL,GAAajB,IAAb;AACD;;AAED,IAAA,KAAI,CAACa,KAAL,CAAWR,EAAX,IAAiBW,IAAjB;AACA,WAAO,KAAI,CAACH,KAAL,CAAWR,EAAX,CAAP;AACD,GAxBO;;AA9BN,OAAKN,MAAL,GAAc;AACZM,IAAAA,EAAE,EAAEN,MAAM,CAACM,EAAP,IAAa,CAAC,IAAD;AADL,GAAd;AAGD,CANH;;AA+BcgB,YAAXC,8CAAW;;AAEJD,YAAPE,0CAAO;;;;"}
{
"version": "0.2.0",
"version": "0.3.0",
"license": "MIT",

@@ -35,3 +35,4 @@ "name": "normi",

"prepublishOnly": "tsdx build",
"play": "nodemon -e ts -w src -x 'tsc --project dev.tsconfig.json && node dist/index.js'"
"play": "nodemon -e ts -w src -x ts-node --project dev.tsconfig.json src/playground.ts",
"buildplay": "nodemon -e ts -w src -x 'tsc --project dev.tsconfig.json && node dist/index.js'"
},

@@ -38,0 +39,0 @@ "peerDependencies": {