maraj 2.8.0 → 2.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -177,9 +177,13 @@ declare const isObjectLiteral: (valueToTest: any) => boolean;
177
177
  declare const parseStringIndex: (v: string) => number | null;
178
178
  declare const isStringIndex: (v: string) => boolean;
179
179
 
180
- type StrictCallback<T> = (v: T) => [T, 'STRICTNESS RETURN ERROR: wrap the return value with the first parameter of the callback function'];
181
- type StrictCallbackReturn<T> = [T, 'STRICTNESS RETURN ERROR: wrap the return value with the first parameter of the callback function'] & unknown;
182
- /** Parameter allowing to strictly check types for callback functions as arguments. It returns a tuple where the first index is the value you want as return type. */
183
- declare const strictCallback: <T>(v: T) => [T, "STRICTNESS RETURN ERROR: wrap the return value with the first parameter of the callback function"];
180
+ type StrictCallbackError = "CALLBACK STRICTNESS RETURN ERROR: return the value using the first parameter";
181
+ type StrictCallbackValue<T> = [StrictCallbackError, T];
182
+ type StrictCallbackFunction<T> = (v: T) => StrictCallbackValue<T>;
183
+ /** Apply strictness to a callback function */
184
+ type StrictCallback<T extends (...args: any[]) => any> = (r: StrictCallbackFunction<ReturnType<T>>, ...args: Parameters<T>) => [StrictCallbackError, ReturnType<T>];
185
+ type UnsealStrictCallback = <TCallback extends (r: StrictCallbackFunction<any>, ...args: any[]) => any>(callback: TCallback) => (...args: Parameters<TCallback> extends [infer _, ...infer RestParams] ? RestParams : never) => ReturnType<TCallback>['1'];
186
+ /** Extract the callback from */
187
+ declare const unsealStrictCallback: UnsealStrictCallback;
184
188
 
185
- export { type DotPaths, type KeyOf, type LiteralIndex, type ReturnedValueInPath, type StrictCallback, type StrictCallbackReturn, type UpdateObject, type UpdateValue, type ValueInPath, experimental_extendableUpdate, isObjectLiteral, isStringIndex, parseStringIndex, remove, select, set, splitPathAtLastKey, strictCallback, update };
189
+ export { type DotPaths, type KeyOf, type LiteralIndex, type ReturnedValueInPath, type StrictCallback, type UpdateObject, type UpdateValue, type ValueInPath, experimental_extendableUpdate, isObjectLiteral, isStringIndex, parseStringIndex, remove, select, set, splitPathAtLastKey, unsealStrictCallback, update };
package/dist/index.d.ts CHANGED
@@ -177,9 +177,13 @@ declare const isObjectLiteral: (valueToTest: any) => boolean;
177
177
  declare const parseStringIndex: (v: string) => number | null;
178
178
  declare const isStringIndex: (v: string) => boolean;
179
179
 
180
- type StrictCallback<T> = (v: T) => [T, 'STRICTNESS RETURN ERROR: wrap the return value with the first parameter of the callback function'];
181
- type StrictCallbackReturn<T> = [T, 'STRICTNESS RETURN ERROR: wrap the return value with the first parameter of the callback function'] & unknown;
182
- /** Parameter allowing to strictly check types for callback functions as arguments. It returns a tuple where the first index is the value you want as return type. */
183
- declare const strictCallback: <T>(v: T) => [T, "STRICTNESS RETURN ERROR: wrap the return value with the first parameter of the callback function"];
180
+ type StrictCallbackError = "CALLBACK STRICTNESS RETURN ERROR: return the value using the first parameter";
181
+ type StrictCallbackValue<T> = [StrictCallbackError, T];
182
+ type StrictCallbackFunction<T> = (v: T) => StrictCallbackValue<T>;
183
+ /** Apply strictness to a callback function */
184
+ type StrictCallback<T extends (...args: any[]) => any> = (r: StrictCallbackFunction<ReturnType<T>>, ...args: Parameters<T>) => [StrictCallbackError, ReturnType<T>];
185
+ type UnsealStrictCallback = <TCallback extends (r: StrictCallbackFunction<any>, ...args: any[]) => any>(callback: TCallback) => (...args: Parameters<TCallback> extends [infer _, ...infer RestParams] ? RestParams : never) => ReturnType<TCallback>['1'];
186
+ /** Extract the callback from */
187
+ declare const unsealStrictCallback: UnsealStrictCallback;
184
188
 
185
- export { type DotPaths, type KeyOf, type LiteralIndex, type ReturnedValueInPath, type StrictCallback, type StrictCallbackReturn, type UpdateObject, type UpdateValue, type ValueInPath, experimental_extendableUpdate, isObjectLiteral, isStringIndex, parseStringIndex, remove, select, set, splitPathAtLastKey, strictCallback, update };
189
+ export { type DotPaths, type KeyOf, type LiteralIndex, type ReturnedValueInPath, type StrictCallback, type UpdateObject, type UpdateValue, type ValueInPath, experimental_extendableUpdate, isObjectLiteral, isStringIndex, parseStringIndex, remove, select, set, splitPathAtLastKey, unsealStrictCallback, update };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var x=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var D=(t,e)=>{for(var r in e)x(t,r,{get:e[r],enumerable:!0})},N=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of V(e))!v.call(t,o)&&o!==r&&x(t,o,{get:()=>e[o],enumerable:!(n=L(e,o))||n.enumerable});return t};var $=t=>N(x({},"__esModule",{value:!0}),t);var B={};D(B,{experimental_extendableUpdate:()=>A,isObjectLiteral:()=>l,isStringIndex:()=>d,parseStringIndex:()=>S,remove:()=>I,select:()=>w,set:()=>K,splitPathAtLastKey:()=>j,strictCallback:()=>k,update:()=>R});module.exports=$(B);var I=(t,e)=>{if(!Array.isArray(t)&&t?.constructor!==Object)throw'Wrong type provided in "remove" function';let r=Array.isArray(e)?e:[e];if(Array.isArray(t)){let o=Symbol(),i=[...t];return r.forEach(s=>{i[s]=o}),i.filter(s=>s!==o)}let n={...t};return r.forEach(o=>delete n[o]),n};var w=(t,e)=>{if(typeof e!="string")throw new Error("path is not a string");if(!e)return t;let r=e.split("."),n=t;for(;r.length;){let o=r.join(".");if(n?.hasOwnProperty(o))return n[o];if(!n?.hasOwnProperty(r[0]))return;n=n[r[0]],r.shift()}return n};var j=t=>{if(typeof t!="string")throw new Error(`Wrong dotPath type: ${t}`);let e=t.lastIndexOf(".")+1,r=e?t.slice(0,e-1):"",n=t.slice(e);return[r,n]};var K=t=>()=>t;var l=t=>!!t&&Object.getPrototypeOf(t)===Object.prototype;var S=t=>{let e=parseInt(t);return e.toString()===t?e:null},d=t=>parseInt(t).toString()===t;var U=t=>JSON.stringify(t),T=t=>Array.isArray(t),E=(t,e,r={})=>{if(!l(t)&&!T(t))throw new Error(`"${U(t)}" is not an literalObject/array`);if(!l(e))throw new Error('wrong "updateObject" type provided');let n=Array.isArray(t)?[...t]:{...t},o={};for(let[i,f]of Object.entries(e)){if(i==="")continue;let s=i.split("."),y=o,p=n;for(;s.length>1;){let b=s.join(".");if(Object.hasOwn(p,b)){s=[b];break}let a=s[0],h=p[a],O=l(h),m=T(h);if(!O&&!m&&!(h===void 0)){if(r.onPathsIntersectedByPrimitiveValues==="error")throw new Error(`Property "${a}" in "${i}" is a primitive`);if(r.onPathsIntersectedByPrimitiveValues==="skip")continue}if(!y[a]){if(!O&&!m){let g=T(p)&&d(a),C=d(s[1]),P=g?r.onNewIndexes:r.onNewProps;if(P==="error")throw new Error(`${a} doesn't exist in "${i}"`);if(P==="skip")continue;p[a]=C?[]:{}}else p[a]=m?[...h]:{...h};y[a]={}}p=p[a],y=y[a],s.shift()}let c=s[0],u=p;if(!Object.hasOwn(u,c)){let a=T(u)&&d(c)?r.onNewIndexes:r.onNewProps;if(a==="error")throw new Error(`Property/Index "${c}" doesnt exist in the path "${i}". Its value is: "${U(u)}"`);if(a==="skip")continue}u[c]=typeof f=="function"?f(u[c]):f,delete y[c]}return n},R=(t,e,r)=>E(t,e,r),A=(t,e)=>E(t,e);var k=t=>[t,"STRICTNESS RETURN ERROR: wrap the return value with the first parameter of the callback function"];0&&(module.exports={experimental_extendableUpdate,isObjectLiteral,isStringIndex,parseStringIndex,remove,select,set,splitPathAtLastKey,strictCallback,update});
1
+ "use strict";var x=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var D=(t,e)=>{for(var r in e)x(t,r,{get:e[r],enumerable:!0})},N=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of R(e))!v.call(t,a)&&a!==r&&x(t,a,{get:()=>e[a],enumerable:!(n=V(e,a))||n.enumerable});return t};var $=t=>N(x({},"__esModule",{value:!0}),t);var B={};D(B,{experimental_extendableUpdate:()=>A,isObjectLiteral:()=>c,isStringIndex:()=>y,parseStringIndex:()=>K,remove:()=>I,select:()=>j,set:()=>S,splitPathAtLastKey:()=>w,unsealStrictCallback:()=>g,update:()=>U});module.exports=$(B);var I=(t,e)=>{if(!Array.isArray(t)&&t?.constructor!==Object)throw'Wrong type provided in "remove" function';let r=Array.isArray(e)?e:[e];if(Array.isArray(t)){let a=Symbol(),i=[...t];return r.forEach(s=>{i[s]=a}),i.filter(s=>s!==a)}let n={...t};return r.forEach(a=>delete n[a]),n};var j=(t,e)=>{if(typeof e!="string")throw new Error("path is not a string");if(!e)return t;let r=e.split("."),n=t;for(;r.length;){let a=r.join(".");if(n?.hasOwnProperty(a))return n[a];if(!n?.hasOwnProperty(r[0]))return;n=n[r[0]],r.shift()}return n};var w=t=>{if(typeof t!="string")throw new Error(`Wrong dotPath type: ${t}`);let e=t.lastIndexOf(".")+1,r=e?t.slice(0,e-1):"",n=t.slice(e);return[r,n]};var S=t=>()=>t;var c=t=>!!t&&Object.getPrototypeOf(t)===Object.prototype;var K=t=>{let e=parseInt(t);return e.toString()===t?e:null},y=t=>parseInt(t).toString()===t;var k=t=>JSON.stringify(t),f=t=>Array.isArray(t),C=(t,e,r={})=>{if(!c(t)&&!f(t))throw new Error(`"${k(t)}" is not an literalObject/array`);if(!c(e))throw new Error('wrong "updateObject" type provided');let n=Array.isArray(t)?[...t]:{...t},a={};for(let[i,T]of Object.entries(e)){if(i==="")continue;let s=i.split("."),d=a,p=n;for(;s.length>1;){let h=s.join(".");if(Object.hasOwn(p,h)){s=[h];break}let o=s[0],b=p[o],O=c(b),m=f(b);if(!O&&!m&&!(b===void 0)){if(r.onPathsIntersectedByPrimitiveValues==="error")throw new Error(`Property "${o}" in "${i}" is a primitive`);if(r.onPathsIntersectedByPrimitiveValues==="skip")continue}if(!d[o]){if(!O&&!m){let E=f(p)&&y(o),L=y(s[1]),P=E?r.onNewIndexes:r.onNewProps;if(P==="error")throw new Error(`${o} doesn't exist in "${i}"`);if(P==="skip")continue;p[o]=L?[]:{}}else p[o]=m?[...b]:{...b};d[o]={}}p=p[o],d=d[o],s.shift()}let l=s[0],u=p;if(!Object.hasOwn(u,l)){let o=f(u)&&y(l)?r.onNewIndexes:r.onNewProps;if(o==="error")throw new Error(`Property/Index "${l}" doesnt exist in the path "${i}". Its value is: "${k(u)}"`);if(o==="skip")continue}u[l]=typeof T=="function"?T(u[l]):T,delete d[l]}return n},U=(t,e,r)=>C(t,e,r),A=(t,e)=>C(t,e);var g=t=>(...e)=>t(r=>r,...e);0&&(module.exports={experimental_extendableUpdate,isObjectLiteral,isStringIndex,parseStringIndex,remove,select,set,splitPathAtLastKey,unsealStrictCallback,update});
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var K=(t,e)=>{if(!Array.isArray(t)&&t?.constructor!==Object)throw'Wrong type provided in "remove" function';let r=Array.isArray(e)?e:[e];if(Array.isArray(t)){let s=Symbol(),i=[...t];return r.forEach(a=>{i[a]=s}),i.filter(a=>a!==s)}let n={...t};return r.forEach(s=>delete n[s]),n};var S=(t,e)=>{if(typeof e!="string")throw new Error("path is not a string");if(!e)return t;let r=e.split("."),n=t;for(;r.length;){let s=r.join(".");if(n?.hasOwnProperty(s))return n[s];if(!n?.hasOwnProperty(r[0]))return;n=n[r[0]],r.shift()}return n};var U=t=>{if(typeof t!="string")throw new Error(`Wrong dotPath type: ${t}`);let e=t.lastIndexOf(".")+1,r=e?t.slice(0,e-1):"",n=t.slice(e);return[r,n]};var E=t=>()=>t;var u=t=>!!t&&Object.getPrototypeOf(t)===Object.prototype;var R=t=>{let e=parseInt(t);return e.toString()===t?e:null},h=t=>parseInt(t).toString()===t;var P=t=>JSON.stringify(t),T=t=>Array.isArray(t),I=(t,e,r={})=>{if(!u(t)&&!T(t))throw new Error(`"${P(t)}" is not an literalObject/array`);if(!u(e))throw new Error('wrong "updateObject" type provided');let n=Array.isArray(t)?[...t]:{...t},s={};for(let[i,f]of Object.entries(e)){if(i==="")continue;let a=i.split("."),l=s,p=n;for(;a.length>1;){let b=a.join(".");if(Object.hasOwn(p,b)){a=[b];break}let o=a[0],y=p[o],x=u(y),m=T(y);if(!x&&!m&&!(y===void 0)){if(r.onPathsIntersectedByPrimitiveValues==="error")throw new Error(`Property "${o}" in "${i}" is a primitive`);if(r.onPathsIntersectedByPrimitiveValues==="skip")continue}if(!l[o]){if(!x&&!m){let w=T(p)&&h(o),j=h(a[1]),O=w?r.onNewIndexes:r.onNewProps;if(O==="error")throw new Error(`${o} doesn't exist in "${i}"`);if(O==="skip")continue;p[o]=j?[]:{}}else p[o]=m?[...y]:{...y};l[o]={}}p=p[o],l=l[o],a.shift()}let c=a[0],d=p;if(!Object.hasOwn(d,c)){let o=T(d)&&h(c)?r.onNewIndexes:r.onNewProps;if(o==="error")throw new Error(`Property/Index "${c}" doesnt exist in the path "${i}". Its value is: "${P(d)}"`);if(o==="skip")continue}d[c]=typeof f=="function"?f(d[c]):f,delete l[c]}return n},A=(t,e,r)=>I(t,e,r),k=(t,e)=>I(t,e);var g=t=>[t,"STRICTNESS RETURN ERROR: wrap the return value with the first parameter of the callback function"];export{k as experimental_extendableUpdate,u as isObjectLiteral,h as isStringIndex,R as parseStringIndex,K as remove,S as select,E as set,U as splitPathAtLastKey,g as strictCallback,A as update};
1
+ var S=(t,e)=>{if(!Array.isArray(t)&&t?.constructor!==Object)throw'Wrong type provided in "remove" function';let r=Array.isArray(e)?e:[e];if(Array.isArray(t)){let s=Symbol(),i=[...t];return r.forEach(o=>{i[o]=s}),i.filter(o=>o!==s)}let n={...t};return r.forEach(s=>delete n[s]),n};var K=(t,e)=>{if(typeof e!="string")throw new Error("path is not a string");if(!e)return t;let r=e.split("."),n=t;for(;r.length;){let s=r.join(".");if(n?.hasOwnProperty(s))return n[s];if(!n?.hasOwnProperty(r[0]))return;n=n[r[0]],r.shift()}return n};var k=t=>{if(typeof t!="string")throw new Error(`Wrong dotPath type: ${t}`);let e=t.lastIndexOf(".")+1,r=e?t.slice(0,e-1):"",n=t.slice(e);return[r,n]};var C=t=>()=>t;var u=t=>!!t&&Object.getPrototypeOf(t)===Object.prototype;var U=t=>{let e=parseInt(t);return e.toString()===t?e:null},b=t=>parseInt(t).toString()===t;var P=t=>JSON.stringify(t),f=t=>Array.isArray(t),I=(t,e,r={})=>{if(!u(t)&&!f(t))throw new Error(`"${P(t)}" is not an literalObject/array`);if(!u(e))throw new Error('wrong "updateObject" type provided');let n=Array.isArray(t)?[...t]:{...t},s={};for(let[i,T]of Object.entries(e)){if(i==="")continue;let o=i.split("."),c=s,p=n;for(;o.length>1;){let h=o.join(".");if(Object.hasOwn(p,h)){o=[h];break}let a=o[0],d=p[a],x=u(d),m=f(d);if(!x&&!m&&!(d===void 0)){if(r.onPathsIntersectedByPrimitiveValues==="error")throw new Error(`Property "${a}" in "${i}" is a primitive`);if(r.onPathsIntersectedByPrimitiveValues==="skip")continue}if(!c[a]){if(!x&&!m){let j=f(p)&&b(a),w=b(o[1]),O=j?r.onNewIndexes:r.onNewProps;if(O==="error")throw new Error(`${a} doesn't exist in "${i}"`);if(O==="skip")continue;p[a]=w?[]:{}}else p[a]=m?[...d]:{...d};c[a]={}}p=p[a],c=c[a],o.shift()}let l=o[0],y=p;if(!Object.hasOwn(y,l)){let a=f(y)&&b(l)?r.onNewIndexes:r.onNewProps;if(a==="error")throw new Error(`Property/Index "${l}" doesnt exist in the path "${i}". Its value is: "${P(y)}"`);if(a==="skip")continue}y[l]=typeof T=="function"?T(y[l]):T,delete c[l]}return n},A=(t,e,r)=>I(t,e,r),g=(t,e)=>I(t,e);var E=t=>(...e)=>t(r=>r,...e);export{g as experimental_extendableUpdate,u as isObjectLiteral,b as isStringIndex,U as parseStringIndex,S as remove,K as select,C as set,k as splitPathAtLastKey,E as unsealStrictCallback,A as update};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maraj",
3
- "version": "2.8.0",
3
+ "version": "2.8.1",
4
4
  "description": "A lightweight 600 bytes gzipped alternative for immutable updates while dealing with objects and arrays",
5
5
  "keywords": [
6
6
  "shallow",