@merkur/plugin-css-scrambler 0.29.0 → 0.30.0
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/lib/index.es5.js +1 -1
- package/lib/index.es9.cjs +4 -29
- package/lib/index.es9.mjs +4 -24
- package/package.json +2 -2
- package/jest.config.js +0 -3
package/lib/index.es5.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function e(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function r(r){for(var n=1;n<arguments.length;n++){var o=null!=arguments[n]?arguments[n]:{};n%2?e(Object(o),!0).forEach((function(e){t(r,e,o[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):e(Object(o)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}))}return r}function t(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function n(e,r,t,n,o,s,u){try{var a=e[s](u),i=a.value}catch(e){return void t(e)}a.done?r(i):Promise.resolve(i).then(n,o)}function o(e){return function(){var r=this,t=arguments;return new Promise((function(o,s){var u=e.apply(r,t);function a(e){n(u,o,s,a,i,"next",e)}function i(e){n(u,o,s,a,i,"throw",e)}a(void 0)}))}}function s(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==t)return;var n,o,s=[],u=!0,a=!1;try{for(t=t.call(e);!(u=(n=t.next()).done)&&(s.push(n.value),!r||s.length!==r);u=!0);}catch(e){a=!0,o=e}finally{try{u||null==t.return||t.return()}finally{if(a)throw o}}return s}(e,r)||function(e,r){if(!e)return;if("string"==typeof e)return u(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return u(e,r)}(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}require("regenerator-runtime/runtime.js"),require("core-js/modules/es.object.define-property.js"),require("core-js/modules/es.regexp.exec.js"),require("core-js/modules/es.string.split.js"),require("core-js/modules/es.array.join.js"),require("core-js/modules/es.array.iterator.js"),require("core-js/modules/es.map.js"),require("core-js/modules/es.object.to-string.js"),require("core-js/modules/es.string.iterator.js"),require("core-js/modules/web.dom-collections.iterator.js"),require("core-js/modules/es.array.map.js"),require("core-js/modules/es.array.slice.js"),require("core-js/modules/es.array.concat.js"),require("core-js/modules/es.symbol.js"),require("core-js/modules/es.symbol.description.js"),require("core-js/modules/es.symbol.iterator.js"),require("core-js/modules/es.array.is-array.js"),require("core-js/modules/es.function.name.js"),require("core-js/modules/es.array.from.js"),require("core-js/modules/es.promise.js"),require("core-js/modules/es.object.keys.js"),require("core-js/modules/es.array.filter.js"),require("core-js/modules/es.object.get-own-property-descriptor.js"),require("core-js/modules/es.array.for-each.js"),require("core-js/modules/web.dom-collections.for-each.js"),require("core-js/modules/es.object.get-own-property-descriptors.js"),require("core-js/modules/es.object.define-properties.js"),Object.defineProperty(exports,"__esModule",{value:!0});var i=require("@merkur/core");function c(e){return e&&"object"===a(e)&&"default"in e?e:{default:e}}var l=c(require("classnames")),f="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-".split(""),m=(f.join("")+"0123456789").split("");function p(e){if(e<f.length)return f[e];e+=m.length-f.length;for(var r="";e>=f.length;)r=m[e%m.length]+r,e=Math.floor(e/m.length);return r=e?f[e-1]+r:"_"+r}function j(e){var r,t,n,o=e&&new Map,u=e&&new Map;if(e){var a=s(e,3);r=a[0],t=a[1],n=a[2];for(var i=0;i<t.length;i++)o.set(t[i],p(i));for(var c=0;c<n.length;c++)u.set(n[c],p(c))}return function(t){for(var n=arguments.length,s=new Array(n>1?n-1:0),a=1;a<n;a++)s[a-1]=arguments[a];var i=l.default.apply(l,s);if(!e)return{className:i};var c=i.split(/\s+/).map((function(e){var t=e.split("-"),n=t[0],s=t.slice(1).join("-");return o.has(n)&&u.has(s)?"".concat(o.get(n),"_").concat(u.get(s),"_").concat(r):e})).join(" ");return{className:c,"data-class":i}}}function y(e,r){return d.apply(this,arguments)}function d(){return d=o(regeneratorRuntime.mark((function e(t,n){var o,s,u,a,i=arguments;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(o=i.length,s=new Array(o>2?o-2:0),u=2;u<o;u++)s[u-2]=i[u];return e.next=3,n.apply(void 0,s);case 3:return a=e.sent,e.abrupt("return",r({classnameHashtable:t.classnameHashtable},a));case 5:case"end":return e.stop()}}),e)}))),d.apply(this,arguments)}exports.cssScramblePlugin=function(){return{setup:function(e,r){return o(regeneratorRuntime.mark((function t(){var n;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=r.classnameHashtable,e.$in.classNameScrambler=j(n),e.cn=function(){var r;return(r=e.$in).classNameScrambler.apply(r,arguments).className},t.abrupt("return",e);case 4:case"end":return t.stop()}}),t)})))()},create:function(e){return o(regeneratorRuntime.mark((function r(){return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return i.hookMethod(e,"info",y),r.abrupt("return",e);case 2:case"end":return r.stop()}}),r)})))()}}},exports.numberToCssClass=p;
|
|
1
|
+
"use strict";function e(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function r(r){for(var n=1;n<arguments.length;n++){var o=null!=arguments[n]?arguments[n]:{};n%2?e(Object(o),!0).forEach((function(e){t(r,e,o[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):e(Object(o)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}))}return r}function t(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function n(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */n=function(){return e};var e={},r=Object.prototype,t=r.hasOwnProperty,o=Object.defineProperty||function(e,r,t){e[r]=t.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function l(e,r,t){return Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[r]}try{l({},"")}catch(e){l=function(e,r,t){return e[r]=t}}function f(e,r,t,n){var i=r&&r.prototype instanceof y?r:y,a=Object.create(i.prototype),s=new S(n||[]);return o(a,"_invoke",{value:q(e,t,s)}),a}function h(e,r,t){try{return{type:"normal",arg:e.call(r,t)}}catch(e){return{type:"throw",arg:e}}}e.wrap=f;var p={};function y(){}function d(){}function m(){}var v={};l(v,a,(function(){return this}));var j=Object.getPrototypeOf,g=j&&j(j(P([])));g&&g!==r&&t.call(g,a)&&(v=g);var b=m.prototype=y.prototype=Object.create(v);function w(e){["next","throw","return"].forEach((function(r){l(e,r,(function(e){return this._invoke(r,e)}))}))}function x(e,r){function n(o,i,a,s){var c=h(e[o],e,i);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==u(f)&&t.call(f,"__await")?r.resolve(f.__await).then((function(e){n("next",e,a,s)}),(function(e){n("throw",e,a,s)})):r.resolve(f).then((function(e){l.value=e,a(l)}),(function(e){return n("throw",e,a,s)}))}s(c.arg)}var i;o(this,"_invoke",{value:function(e,t){function o(){return new r((function(r,o){n(e,t,r,o)}))}return i=i?i.then(o,o):o()}})}function q(e,r,t){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return _()}for(t.method=o,t.arg=i;;){var a=t.delegate;if(a){var s=O(a,t);if(s){if(s===p)continue;return s}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===n)throw n="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n="executing";var u=h(e,r,t);if("normal"===u.type){if(n=t.done?"completed":"suspendedYield",u.arg===p)continue;return{value:u.arg,done:t.done}}"throw"===u.type&&(n="completed",t.method="throw",t.arg=u.arg)}}}function O(e,r){var t=e.iterator[r.method];if(void 0===t){if(r.delegate=null,"throw"===r.method){if(e.iterator.return&&(r.method="return",r.arg=void 0,O(e,r),"throw"===r.method))return p;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var n=h(t,e.iterator,r.arg);if("throw"===n.type)return r.method="throw",r.arg=n.arg,r.delegate=null,p;var o=n.arg;return o?o.done?(r[e.resultName]=o.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=void 0),r.delegate=null,p):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,p)}function L(e){var r={tryLoc:e[0]};1 in e&&(r.catchLoc=e[1]),2 in e&&(r.finallyLoc=e[2],r.afterLoc=e[3]),this.tryEntries.push(r)}function E(e){var r=e.completion||{};r.type="normal",delete r.arg,e.completion=r}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function P(e){if(e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function r(){for(;++n<e.length;)if(t.call(e,n))return r.value=e[n],r.done=!1,r;return r.value=void 0,r.done=!0,r};return o.next=o}}return{next:_}}function _(){return{value:void 0,done:!0}}return d.prototype=m,o(b,"constructor",{value:m,configurable:!0}),o(m,"constructor",{value:d,configurable:!0}),d.displayName=l(m,c,"GeneratorFunction"),e.isGeneratorFunction=function(e){var r="function"==typeof e&&e.constructor;return!!r&&(r===d||"GeneratorFunction"===(r.displayName||r.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,l(e,c,"GeneratorFunction")),e.prototype=Object.create(b),e},e.awrap=function(e){return{__await:e}},w(x.prototype),l(x.prototype,s,(function(){return this})),e.AsyncIterator=x,e.async=function(r,t,n,o,i){void 0===i&&(i=Promise);var a=new x(f(r,t,n,o),i);return e.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},w(b),l(b,c,"Generator"),l(b,a,(function(){return this})),l(b,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var r=Object(e),t=[];for(var n in r)t.push(n);return t.reverse(),function e(){for(;t.length;){var n=t.pop();if(n in r)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=P,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var r in this)"t"===r.charAt(0)&&t.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function n(t,n){return a.type="throw",a.arg=e,r.next=t,n&&(r.method="next",r.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var s=t.call(i,"catchLoc"),u=t.call(i,"finallyLoc");if(s&&u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,r){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&t.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=r&&r<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=r,i?(this.method="next",this.next=i.finallyLoc,p):this.complete(a)},complete:function(e,r){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&r&&(this.next=r),p},finish:function(e){for(var r=this.tryEntries.length-1;r>=0;--r){var t=this.tryEntries[r];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),E(t),p}},catch:function(e){for(var r=this.tryEntries.length-1;r>=0;--r){var t=this.tryEntries[r];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var o=n.arg;E(t)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,t){return this.delegate={iterator:P(e),resultName:r,nextLoc:t},"next"===this.method&&(this.arg=void 0),p}},e}function o(e,r,t,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void t(e)}s.done?r(u):Promise.resolve(u).then(n,o)}function i(e){return function(){var r=this,t=arguments;return new Promise((function(n,i){var a=e.apply(r,t);function s(e){o(a,n,i,s,u,"next",e)}function u(e){o(a,n,i,s,u,"throw",e)}s(void 0)}))}}function a(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==t)return;var n,o,i=[],a=!0,s=!1;try{for(t=t.call(e);!(a=(n=t.next()).done)&&(i.push(n.value),!r||i.length!==r);a=!0);}catch(e){s=!0,o=e}finally{try{a||null==t.return||t.return()}finally{if(s)throw o}}return i}(e,r)||function(e,r){if(!e)return;if("string"==typeof e)return s(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return s(e,r)}(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}require("core-js/modules/es.object.define-property.js"),require("core-js/modules/es.array.join.js"),require("core-js/modules/es.array.iterator.js"),require("core-js/modules/es.map.js"),require("core-js/modules/es.object.to-string.js"),require("core-js/modules/es.string.iterator.js"),require("core-js/modules/web.dom-collections.iterator.js"),require("core-js/modules/es.array.map.js"),require("core-js/modules/es.regexp.exec.js"),require("core-js/modules/es.string.split.js"),require("core-js/modules/es.array.slice.js"),require("core-js/modules/es.array.concat.js"),require("core-js/modules/es.symbol.js"),require("core-js/modules/es.symbol.description.js"),require("core-js/modules/es.symbol.iterator.js"),require("core-js/modules/es.array.is-array.js"),require("core-js/modules/es.function.name.js"),require("core-js/modules/es.array.from.js"),require("core-js/modules/es.promise.js"),require("core-js/modules/es.symbol.async-iterator.js"),require("core-js/modules/es.symbol.to-string-tag.js"),require("core-js/modules/es.json.to-string-tag.js"),require("core-js/modules/es.math.to-string-tag.js"),require("core-js/modules/es.object.create.js"),require("core-js/modules/es.object.get-prototype-of.js"),require("core-js/modules/es.array.for-each.js"),require("core-js/modules/web.dom-collections.for-each.js"),require("core-js/modules/es.object.set-prototype-of.js"),require("core-js/modules/es.array.reverse.js"),require("core-js/modules/es.object.keys.js"),require("core-js/modules/es.array.filter.js"),require("core-js/modules/es.object.get-own-property-descriptor.js"),require("core-js/modules/es.object.get-own-property-descriptors.js"),require("core-js/modules/es.object.define-properties.js"),Object.defineProperty(exports,"__esModule",{value:!0});var c=require("@merkur/core");function l(e){return e&&"object"===u(e)&&"default"in e?e:{default:e}}var f=l(require("classnames")),h="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-".split(""),p=(h.join("")+"0123456789").split("");function y(e){if(e<h.length)return h[e];e+=p.length-h.length;for(var r="";e>=h.length;)r=p[e%p.length]+r,e=Math.floor(e/p.length);return r=e?h[e-1]+r:"_"+r}function d(e){var r,t,n,o=e&&new Map,i=e&&new Map;if(e){var s=a(e,3);r=s[0],t=s[1],n=s[2];for(var u=0;u<t.length;u++)o.set(t[u],y(u));for(var c=0;c<n.length;c++)i.set(n[c],y(c))}return function(t){for(var n=arguments.length,a=new Array(n>1?n-1:0),s=1;s<n;s++)a[s-1]=arguments[s];var u=f.default.apply(f,a);if(!e)return{className:u};var c=u.split(/\s+/).map((function(e){var t=e.split("-"),n=t[0],a=t.slice(1).join("-");return o.has(n)&&i.has(a)?"".concat(o.get(n),"_").concat(i.get(a),"_").concat(r):e})).join(" ");return{className:c,"data-class":u}}}function m(e,r){return v.apply(this,arguments)}function v(){return v=i(n().mark((function e(t,o){var i,a,s,u,c=arguments;return n().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(i=c.length,a=new Array(i>2?i-2:0),s=2;s<i;s++)a[s-2]=c[s];return e.next=3,o.apply(void 0,a);case 3:return u=e.sent,e.abrupt("return",r({classnameHashtable:t.classnameHashtable},u));case 5:case"end":return e.stop()}}),e)}))),v.apply(this,arguments)}exports.cssScramblePlugin=function(){return{setup:function(e,r){return i(n().mark((function t(){var o;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=r.classnameHashtable,e.$in.classNameScrambler=d(o),e.cn=function(){var r;return(r=e.$in).classNameScrambler.apply(r,arguments).className},t.abrupt("return",e);case 4:case"end":return t.stop()}}),t)})))()},create:function(e){return i(n().mark((function r(){return n().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return c.hookMethod(e,"info",m),r.abrupt("return",e);case 2:case"end":return r.stop()}}),r)})))()}}},exports.numberToCssClass=y;
|
package/lib/index.es9.cjs
CHANGED
|
@@ -3,86 +3,68 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
6
|
var core = require('@merkur/core');
|
|
8
|
-
|
|
9
7
|
var classnames = require('classnames');
|
|
10
|
-
|
|
11
8
|
function _interopDefaultLegacy(e) {
|
|
12
9
|
return e && typeof e === 'object' && 'default' in e ? e : {
|
|
13
10
|
'default': e
|
|
14
11
|
};
|
|
15
12
|
}
|
|
16
|
-
|
|
17
13
|
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
18
|
-
|
|
19
14
|
const CLASSNAME_CHARS = ('abcdefghijklmnopqrstuvwxyz' + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + '-').split('');
|
|
20
15
|
const EXTENDED_CLASSNAME_CHARS = (CLASSNAME_CHARS.join('') + '0123456789').split('');
|
|
21
|
-
|
|
22
16
|
function numberToCssClass(number) {
|
|
23
17
|
if (number < CLASSNAME_CHARS.length) {
|
|
24
18
|
return CLASSNAME_CHARS[number];
|
|
25
|
-
}
|
|
26
|
-
// base64 encoding
|
|
27
|
-
|
|
19
|
+
}
|
|
28
20
|
|
|
21
|
+
// we have to "shift" the number to adjust for the gap between base53 and
|
|
22
|
+
// base64 encoding
|
|
29
23
|
number += EXTENDED_CLASSNAME_CHARS.length - CLASSNAME_CHARS.length;
|
|
30
24
|
let className = '';
|
|
31
|
-
|
|
32
25
|
while (number >= CLASSNAME_CHARS.length) {
|
|
33
26
|
className = EXTENDED_CLASSNAME_CHARS[number % EXTENDED_CLASSNAME_CHARS.length] + className;
|
|
34
27
|
number = Math.floor(number / EXTENDED_CLASSNAME_CHARS.length);
|
|
35
28
|
}
|
|
36
|
-
|
|
37
29
|
if (number) {
|
|
38
30
|
className = CLASSNAME_CHARS[number - 1] + className;
|
|
39
31
|
} else {
|
|
40
32
|
className = '_' + className;
|
|
41
33
|
}
|
|
42
|
-
|
|
43
34
|
return className;
|
|
44
35
|
}
|
|
36
|
+
|
|
45
37
|
/**
|
|
46
38
|
* @param {Array<Array<string>, Array<string>>=} hashingTable
|
|
47
39
|
* @return {function(...?(string|Object<string, boolean>))}
|
|
48
40
|
*/
|
|
49
|
-
|
|
50
|
-
|
|
51
41
|
function scramblerFactory(hashingTable) {
|
|
52
42
|
let uniqueHash, prefixes, mainParts;
|
|
53
43
|
const prefixTable = hashingTable && new Map();
|
|
54
44
|
const mainPartTable = hashingTable && new Map();
|
|
55
|
-
|
|
56
45
|
if (hashingTable) {
|
|
57
46
|
[uniqueHash, prefixes, mainParts] = hashingTable;
|
|
58
|
-
|
|
59
47
|
for (let i = 0; i < prefixes.length; i++) {
|
|
60
48
|
prefixTable.set(prefixes[i], numberToCssClass(i));
|
|
61
49
|
}
|
|
62
|
-
|
|
63
50
|
for (let i = 0; i < mainParts.length; i++) {
|
|
64
51
|
mainPartTable.set(mainParts[i], numberToCssClass(i));
|
|
65
52
|
}
|
|
66
53
|
}
|
|
67
|
-
|
|
68
54
|
return (widget, ...args) => {
|
|
69
55
|
const classNamesSource = classnames__default["default"](...args);
|
|
70
|
-
|
|
71
56
|
if (!hashingTable) {
|
|
72
57
|
return {
|
|
73
58
|
className: classNamesSource
|
|
74
59
|
};
|
|
75
60
|
}
|
|
76
|
-
|
|
77
61
|
const processedClasses = classNamesSource.split(/\s+/).map(className => {
|
|
78
62
|
const parts = className.split('-');
|
|
79
63
|
const prefix = parts[0];
|
|
80
64
|
const mainPart = parts.slice(1).join('-');
|
|
81
|
-
|
|
82
65
|
if (!prefixTable.has(prefix) || !mainPartTable.has(mainPart)) {
|
|
83
66
|
return className;
|
|
84
67
|
}
|
|
85
|
-
|
|
86
68
|
return `${prefixTable.get(prefix)}_${mainPartTable.get(mainPart)}_${uniqueHash}`;
|
|
87
69
|
}).join(' ');
|
|
88
70
|
return {
|
|
@@ -91,7 +73,6 @@ function scramblerFactory(hashingTable) {
|
|
|
91
73
|
};
|
|
92
74
|
};
|
|
93
75
|
}
|
|
94
|
-
|
|
95
76
|
function cssScramblePlugin() {
|
|
96
77
|
return {
|
|
97
78
|
async setup(widget, widgetDefinition) {
|
|
@@ -99,20 +80,15 @@ function cssScramblePlugin() {
|
|
|
99
80
|
classnameHashtable
|
|
100
81
|
} = widgetDefinition;
|
|
101
82
|
widget.$in.classNameScrambler = scramblerFactory(classnameHashtable);
|
|
102
|
-
|
|
103
83
|
widget.cn = (...args) => widget.$in.classNameScrambler(...args).className;
|
|
104
|
-
|
|
105
84
|
return widget;
|
|
106
85
|
},
|
|
107
|
-
|
|
108
86
|
async create(widget) {
|
|
109
87
|
core.hookMethod(widget, 'info', infoHook);
|
|
110
88
|
return widget;
|
|
111
89
|
}
|
|
112
|
-
|
|
113
90
|
};
|
|
114
91
|
}
|
|
115
|
-
|
|
116
92
|
async function infoHook(widget, originalInfo, ...rest) {
|
|
117
93
|
const result = await originalInfo(...rest);
|
|
118
94
|
return {
|
|
@@ -120,6 +96,5 @@ async function infoHook(widget, originalInfo, ...rest) {
|
|
|
120
96
|
...result
|
|
121
97
|
};
|
|
122
98
|
}
|
|
123
|
-
|
|
124
99
|
exports.cssScramblePlugin = cssScramblePlugin;
|
|
125
100
|
exports.numberToCssClass = numberToCssClass;
|
package/lib/index.es9.mjs
CHANGED
|
@@ -2,71 +2,58 @@ import { hookMethod } from '@merkur/core';
|
|
|
2
2
|
import classnames from 'classnames';
|
|
3
3
|
const CLASSNAME_CHARS = ('abcdefghijklmnopqrstuvwxyz' + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + '-').split('');
|
|
4
4
|
const EXTENDED_CLASSNAME_CHARS = (CLASSNAME_CHARS.join('') + '0123456789').split('');
|
|
5
|
-
|
|
6
5
|
function numberToCssClass(number) {
|
|
7
6
|
if (number < CLASSNAME_CHARS.length) {
|
|
8
7
|
return CLASSNAME_CHARS[number];
|
|
9
|
-
}
|
|
10
|
-
// base64 encoding
|
|
11
|
-
|
|
8
|
+
}
|
|
12
9
|
|
|
10
|
+
// we have to "shift" the number to adjust for the gap between base53 and
|
|
11
|
+
// base64 encoding
|
|
13
12
|
number += EXTENDED_CLASSNAME_CHARS.length - CLASSNAME_CHARS.length;
|
|
14
13
|
let className = '';
|
|
15
|
-
|
|
16
14
|
while (number >= CLASSNAME_CHARS.length) {
|
|
17
15
|
className = EXTENDED_CLASSNAME_CHARS[number % EXTENDED_CLASSNAME_CHARS.length] + className;
|
|
18
16
|
number = Math.floor(number / EXTENDED_CLASSNAME_CHARS.length);
|
|
19
17
|
}
|
|
20
|
-
|
|
21
18
|
if (number) {
|
|
22
19
|
className = CLASSNAME_CHARS[number - 1] + className;
|
|
23
20
|
} else {
|
|
24
21
|
className = '_' + className;
|
|
25
22
|
}
|
|
26
|
-
|
|
27
23
|
return className;
|
|
28
24
|
}
|
|
25
|
+
|
|
29
26
|
/**
|
|
30
27
|
* @param {Array<Array<string>, Array<string>>=} hashingTable
|
|
31
28
|
* @return {function(...?(string|Object<string, boolean>))}
|
|
32
29
|
*/
|
|
33
|
-
|
|
34
|
-
|
|
35
30
|
function scramblerFactory(hashingTable) {
|
|
36
31
|
let uniqueHash, prefixes, mainParts;
|
|
37
32
|
const prefixTable = hashingTable && new Map();
|
|
38
33
|
const mainPartTable = hashingTable && new Map();
|
|
39
|
-
|
|
40
34
|
if (hashingTable) {
|
|
41
35
|
[uniqueHash, prefixes, mainParts] = hashingTable;
|
|
42
|
-
|
|
43
36
|
for (let i = 0; i < prefixes.length; i++) {
|
|
44
37
|
prefixTable.set(prefixes[i], numberToCssClass(i));
|
|
45
38
|
}
|
|
46
|
-
|
|
47
39
|
for (let i = 0; i < mainParts.length; i++) {
|
|
48
40
|
mainPartTable.set(mainParts[i], numberToCssClass(i));
|
|
49
41
|
}
|
|
50
42
|
}
|
|
51
|
-
|
|
52
43
|
return (widget, ...args) => {
|
|
53
44
|
const classNamesSource = classnames(...args);
|
|
54
|
-
|
|
55
45
|
if (!hashingTable) {
|
|
56
46
|
return {
|
|
57
47
|
className: classNamesSource
|
|
58
48
|
};
|
|
59
49
|
}
|
|
60
|
-
|
|
61
50
|
const processedClasses = classNamesSource.split(/\s+/).map(className => {
|
|
62
51
|
const parts = className.split('-');
|
|
63
52
|
const prefix = parts[0];
|
|
64
53
|
const mainPart = parts.slice(1).join('-');
|
|
65
|
-
|
|
66
54
|
if (!prefixTable.has(prefix) || !mainPartTable.has(mainPart)) {
|
|
67
55
|
return className;
|
|
68
56
|
}
|
|
69
|
-
|
|
70
57
|
return `${prefixTable.get(prefix)}_${mainPartTable.get(mainPart)}_${uniqueHash}`;
|
|
71
58
|
}).join(' ');
|
|
72
59
|
return {
|
|
@@ -75,7 +62,6 @@ function scramblerFactory(hashingTable) {
|
|
|
75
62
|
};
|
|
76
63
|
};
|
|
77
64
|
}
|
|
78
|
-
|
|
79
65
|
function cssScramblePlugin() {
|
|
80
66
|
return {
|
|
81
67
|
async setup(widget, widgetDefinition) {
|
|
@@ -83,20 +69,15 @@ function cssScramblePlugin() {
|
|
|
83
69
|
classnameHashtable
|
|
84
70
|
} = widgetDefinition;
|
|
85
71
|
widget.$in.classNameScrambler = scramblerFactory(classnameHashtable);
|
|
86
|
-
|
|
87
72
|
widget.cn = (...args) => widget.$in.classNameScrambler(...args).className;
|
|
88
|
-
|
|
89
73
|
return widget;
|
|
90
74
|
},
|
|
91
|
-
|
|
92
75
|
async create(widget) {
|
|
93
76
|
hookMethod(widget, 'info', infoHook);
|
|
94
77
|
return widget;
|
|
95
78
|
}
|
|
96
|
-
|
|
97
79
|
};
|
|
98
80
|
}
|
|
99
|
-
|
|
100
81
|
async function infoHook(widget, originalInfo, ...rest) {
|
|
101
82
|
const result = await originalInfo(...rest);
|
|
102
83
|
return {
|
|
@@ -104,5 +85,4 @@ async function infoHook(widget, originalInfo, ...rest) {
|
|
|
104
85
|
...result
|
|
105
86
|
};
|
|
106
87
|
}
|
|
107
|
-
|
|
108
88
|
export { cssScramblePlugin, numberToCssClass };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@merkur/plugin-css-scrambler",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.0",
|
|
4
4
|
"description": "Merkur plugin for scrambling CSS classes.",
|
|
5
5
|
"main": "lib/index",
|
|
6
6
|
"module": "lib/index",
|
|
@@ -66,5 +66,5 @@
|
|
|
66
66
|
"classnames": "^2.3.1",
|
|
67
67
|
"postcss-selector-parser": "^6.0.10"
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "13a0ac12f77f381b1d829cffe9b21d453c26ca7a"
|
|
70
70
|
}
|
package/jest.config.js
DELETED