@jscrpt/common 6.2.1 → 7.0.0-beta.20250116125816
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/changelog.md +14 -0
- package/es/extend/src/index.js.map +1 -0
- package/es/extend/src/index.mjs +2 -0
- package/es/extend/src/utils/common.js.map +1 -0
- package/es/extend/src/utils/common.mjs +11 -0
- package/es/lodash/src/index.js.map +1 -0
- package/es/lodash/src/index.mjs +2 -0
- package/es/lodash/src/utils/common.js.map +1 -0
- package/es/lodash/src/utils/common.mjs +10 -0
- package/es/rxjs/src/utils/async.js.map +1 -1
- package/es/src/decorators/bindThis.decorator.js.map +1 -1
- package/es/src/decorators/callOnce.decorator.js.map +1 -1
- package/es/src/decorators/debounceCall.decorator.js.map +1 -1
- package/es/src/decorators/mixin.decorator.js.map +1 -1
- package/es/src/decorators/property.decorator.js.map +1 -1
- package/es/src/decorators/withSync.decorator.js.map +1 -1
- package/es/src/encoder/encoder.js.map +1 -1
- package/es/src/index.js.map +1 -1
- package/es/src/paginator/paginator.js.map +1 -1
- package/es/src/utils/common.js.map +1 -1
- package/es/src/utils/common.mjs +0 -10
- package/es/src/utils/lang.js.map +1 -1
- package/es2015/extend/src/index.js +2 -0
- package/es2015/extend/src/index.js.map +1 -0
- package/es2015/extend/src/utils/common.js +11 -0
- package/es2015/extend/src/utils/common.js.map +1 -0
- package/es2015/lodash/src/index.js +2 -0
- package/es2015/lodash/src/index.js.map +1 -0
- package/es2015/lodash/src/utils/common.js +10 -0
- package/es2015/lodash/src/utils/common.js.map +1 -0
- package/es2015/rxjs/src/utils/async.js.map +1 -1
- package/es2015/src/decorators/bindThis.decorator.js.map +1 -1
- package/es2015/src/decorators/callOnce.decorator.js.map +1 -1
- package/es2015/src/decorators/debounceCall.decorator.js.map +1 -1
- package/es2015/src/decorators/mixin.decorator.js.map +1 -1
- package/es2015/src/decorators/property.decorator.js.map +1 -1
- package/es2015/src/decorators/withSync.decorator.js.map +1 -1
- package/es2015/src/encoder/encoder.js.map +1 -1
- package/es2015/src/index.js.map +1 -1
- package/es2015/src/paginator/paginator.js.map +1 -1
- package/es2015/src/utils/common.js +0 -10
- package/es2015/src/utils/common.js.map +1 -1
- package/es2015/src/utils/lang.js.map +1 -1
- package/es2020/extend/src/index.js +2 -0
- package/es2020/extend/src/index.js.map +1 -0
- package/es2020/extend/src/utils/common.js +11 -0
- package/es2020/extend/src/utils/common.js.map +1 -0
- package/es2020/lodash/src/index.js +2 -0
- package/es2020/lodash/src/index.js.map +1 -0
- package/es2020/lodash/src/utils/common.js +10 -0
- package/es2020/lodash/src/utils/common.js.map +1 -0
- package/es2020/rxjs/src/utils/async.js.map +1 -1
- package/es2020/src/decorators/bindThis.decorator.js.map +1 -1
- package/es2020/src/decorators/callOnce.decorator.js.map +1 -1
- package/es2020/src/decorators/debounceCall.decorator.js.map +1 -1
- package/es2020/src/decorators/mixin.decorator.js.map +1 -1
- package/es2020/src/decorators/property.decorator.js.map +1 -1
- package/es2020/src/decorators/withSync.decorator.js.map +1 -1
- package/es2020/src/encoder/encoder.js.map +1 -1
- package/es2020/src/index.js.map +1 -1
- package/es2020/src/paginator/paginator.js.map +1 -1
- package/es2020/src/utils/common.js +0 -10
- package/es2020/src/utils/common.js.map +1 -1
- package/es2020/src/utils/lang.js.map +1 -1
- package/es2022/extend/src/index.js +2 -0
- package/es2022/extend/src/index.js.map +1 -0
- package/es2022/extend/src/utils/common.js +11 -0
- package/es2022/extend/src/utils/common.js.map +1 -0
- package/es2022/lodash/src/index.js +2 -0
- package/es2022/lodash/src/index.js.map +1 -0
- package/es2022/lodash/src/utils/common.js +10 -0
- package/es2022/lodash/src/utils/common.js.map +1 -0
- package/es2022/rxjs/src/utils/async.js.map +1 -1
- package/es2022/src/decorators/bindThis.decorator.js.map +1 -1
- package/es2022/src/decorators/callOnce.decorator.js.map +1 -1
- package/es2022/src/decorators/debounceCall.decorator.js.map +1 -1
- package/es2022/src/decorators/mixin.decorator.js.map +1 -1
- package/es2022/src/decorators/property.decorator.js.map +1 -1
- package/es2022/src/decorators/withSync.decorator.js.map +1 -1
- package/es2022/src/encoder/encoder.js +7 -5
- package/es2022/src/encoder/encoder.js.map +1 -1
- package/es2022/src/index.js.map +1 -1
- package/es2022/src/paginator/paginator.js +19 -17
- package/es2022/src/paginator/paginator.js.map +1 -1
- package/es2022/src/utils/common.js +0 -10
- package/es2022/src/utils/common.js.map +1 -1
- package/es2022/src/utils/lang.js.map +1 -1
- package/es5/extend/src/index.js +2 -0
- package/es5/extend/src/index.js.map +1 -0
- package/es5/extend/src/utils/common.js +16 -0
- package/es5/extend/src/utils/common.js.map +1 -0
- package/es5/lodash/src/index.js +2 -0
- package/es5/lodash/src/index.js.map +1 -0
- package/es5/lodash/src/utils/common.js +15 -0
- package/es5/lodash/src/utils/common.js.map +1 -0
- package/es5/rxjs/src/utils/async.js.map +1 -1
- package/es5/src/decorators/bindThis.decorator.js.map +1 -1
- package/es5/src/decorators/callOnce.decorator.js.map +1 -1
- package/es5/src/decorators/debounceCall.decorator.js.map +1 -1
- package/es5/src/decorators/mixin.decorator.js.map +1 -1
- package/es5/src/decorators/property.decorator.js.map +1 -1
- package/es5/src/decorators/withSync.decorator.js.map +1 -1
- package/es5/src/encoder/encoder.js.map +1 -1
- package/es5/src/index.js.map +1 -1
- package/es5/src/paginator/paginator.js.map +1 -1
- package/es5/src/utils/common.js +0 -15
- package/es5/src/utils/common.js.map +1 -1
- package/es5/src/utils/lang.js.map +1 -1
- package/extend/package.json +11 -0
- package/extend/src/index.d.ts +2 -0
- package/extend/src/index.d.ts.map +1 -0
- package/extend/src/utils/common.d.ts +73 -0
- package/extend/src/utils/common.d.ts.map +1 -0
- package/lodash/package.json +11 -0
- package/lodash/src/index.d.ts +2 -0
- package/lodash/src/index.d.ts.map +1 -0
- package/lodash/src/utils/common.d.ts +14 -0
- package/lodash/src/utils/common.d.ts.map +1 -0
- package/module/extend/src/index.cjs +5 -0
- package/module/extend/src/index.js.map +1 -0
- package/module/extend/src/utils/common.cjs +15 -0
- package/module/extend/src/utils/common.js.map +1 -0
- package/module/lodash/src/index.cjs +5 -0
- package/module/lodash/src/index.js.map +1 -0
- package/module/lodash/src/utils/common.cjs +13 -0
- package/module/lodash/src/utils/common.js.map +1 -0
- package/module/rxjs/src/utils/async.cjs +1 -2
- package/module/rxjs/src/utils/async.js.map +1 -1
- package/module/rxjs/src/utils/common.cjs +1 -2
- package/module/rxjs/src/utils/common.js.map +1 -1
- package/module/src/decorators/bindThis.decorator.cjs +1 -2
- package/module/src/decorators/bindThis.decorator.js.map +1 -1
- package/module/src/decorators/callOnce.decorator.cjs +1 -2
- package/module/src/decorators/callOnce.decorator.js.map +1 -1
- package/module/src/decorators/debounceCall.decorator.cjs +1 -2
- package/module/src/decorators/debounceCall.decorator.js.map +1 -1
- package/module/src/decorators/mixin.decorator.cjs +1 -2
- package/module/src/decorators/mixin.decorator.js.map +1 -1
- package/module/src/decorators/property.decorator.cjs +1 -2
- package/module/src/decorators/property.decorator.js.map +1 -1
- package/module/src/decorators/withSync.decorator.cjs +1 -2
- package/module/src/decorators/withSync.decorator.js.map +1 -1
- package/module/src/encoder/encoder.js.map +1 -1
- package/module/src/index.js.map +1 -1
- package/module/src/jsDevMode.cjs +1 -2
- package/module/src/jsDevMode.js.map +1 -1
- package/module/src/normalizer/normalizer.cjs +1 -2
- package/module/src/normalizer/normalizer.js.map +1 -1
- package/module/src/paginator/paginator.js.map +1 -1
- package/module/src/utils/common.cjs +29 -42
- package/module/src/utils/common.js.map +1 -1
- package/module/src/utils/lang.cjs +18 -19
- package/module/src/utils/lang.js.map +1 -1
- package/package.json +48 -14
- package/src/utils/common.d.ts +0 -71
- package/src/utils/common.d.ts.map +1 -1
- package/src/utils/nameof.d.ts.map +1 -1
- package/version.bak +1 -1
package/changelog.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Version 7.0.0 (2025-01-16)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- new subpackage `@jscrpt/common/lodash`
|
|
8
|
+
- new optional dependency `lodash-es` package
|
|
9
|
+
- subpackage `@jscrpt/common/lodash`
|
|
10
|
+
- new `deepCopyWithArrayOverride` function, which performs deep copy of object with arrays that are not merged but overrided with latest value
|
|
11
|
+
|
|
12
|
+
### BREAKING CHANGES
|
|
13
|
+
|
|
14
|
+
- utility method `extend` moved into subpackage `@jscrpt/common/extend`
|
|
15
|
+
- `extend` package dependency is now optional
|
|
16
|
+
|
|
3
17
|
## Version 6.2.1 (2024-07-31)
|
|
4
18
|
|
|
5
19
|
### Bug Fixes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../extend/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC","sourcesContent":["export * from './utils/common';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.mjs","sourceRoot":"","sources":["../../../../extend/src/utils/common.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,QAAQ,CAAC;AA0E/B;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,YAAuC,EAAE,GAAG,OAA0B;IAEzF,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;AAC7D,CAAC","sourcesContent":["import extendLib from 'extend';\nimport {Dictionary} from '@jscrpt/common';\n\n/**\n * Extends target object with source\n * @param deep - Indication whether deep copy should be performed\n * @param target - Object that will extended\n * @param source - Object that will be used for extending\n */\nexport function extend<T, U>(deep: boolean, target: T, source: U): T & U;\n/**\n * Extends target object with source objects\n * @param deep - Indication whether deep copy should be performed\n * @param target - Object that will extended\n * @param source1 - Object that will be used for extending\n * @param source2 - Object that will be used for extending\n */\nexport function extend<T, U, V>(deep: boolean, target: T, source1: U, source2: V): T & U & V;\n/**\n * Extends target object with source objects\n * @param deep - Indication whether deep copy should be performed\n * @param target - Object that will extended\n * @param source1 - Object that will be used for extending\n * @param source2 - Object that will be used for extending\n * @param source3 - Object that will be used for extending\n */\nexport function extend<T, U, V, W>(deep: boolean, target: T, source1: U, source2: V, source3: W): T & U & V & W;\n/**\n * Extends target object with source objects\n * @param deep - Indication whether deep copy should be performed\n * @param target - Object that will extended\n * @param source1 - Object that will be used for extending\n * @param source2 - Object that will be used for extending\n * @param source3 - Object that will be used for extending\n * @param source4 - Object that will be used for extending\n */\nexport function extend<T, U, V, W, X>(deep: boolean, target: T, source1: U, source2: V, source3: W, source4: X): T & U & V & W & X;\n/**\n * Extends target object with source\n * @param target - Object that will extended\n * @param source - Object that will be used for extending\n */\nexport function extend<T, U>(target: T, source: U): T & U;\n/**\n * Extends target object with source\n * @param target - Object that will extended\n * @param source1 - Object that will be used for extending\n * @param source2 - Object that will be used for extending\n */\nexport function extend<T, U, V>(target: T, source1: U, source2: V): T & U & V;\n/**\n * Extends target object with source\n * @param target - Object that will extended\n * @param source1 - Object that will be used for extending\n * @param source2 - Object that will be used for extending\n * @param source3 - Object that will be used for extending\n */\nexport function extend<T, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;\n/**\n * Extends target object with source\n * @param target - Object that will extended\n * @param source1 - Object that will be used for extending\n * @param source2 - Object that will be used for extending\n * @param source3 - Object that will be used for extending\n * @param source4 - Object that will be used for extending\n */\nexport function extend<T, U, V, W, X>(target: T, source1: U, source2: V, source3: W, source4: X): T & U & V & W & X;\n/**\n * Extends one object with additional properties from other objects, supports deep extend\n * @param deepOrObject - Object to be extended or indication that deep copy should be performed\n * @param objectN - Objects that will be used for extending, if deep is used first here is target object\n * @returns Object Extended object with properties from other objects\n */\nexport function extend<TResult>(deepOrObject: boolean | Dictionary<any>, ...objectN: Dictionary<any>[]): TResult;\n/**\n * Extends one object with additional properties from other objects, supports deep extend\n * @param deepOrObject - Object to be extended or indication that deep copy should be performed\n * @param objectN - Objects that will be used for extending, if deep is used first here is target object\n * @returns Object Extended object with properties from other objects\n */\nexport function extend(deepOrObject: boolean | Dictionary<any>, ...objectN: Dictionary<any>[]): Dictionary\n{\n return extendLib.apply(null, [deepOrObject, ...objectN]);\n}"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import extendLib from 'extend';
|
|
2
|
+
/**
|
|
3
|
+
* Extends one object with additional properties from other objects, supports deep extend
|
|
4
|
+
* @param deepOrObject - Object to be extended or indication that deep copy should be performed
|
|
5
|
+
* @param objectN - Objects that will be used for extending, if deep is used first here is target object
|
|
6
|
+
* @returns Object Extended object with properties from other objects
|
|
7
|
+
*/
|
|
8
|
+
export function extend(deepOrObject, ...objectN) {
|
|
9
|
+
return extendLib.apply(null, [deepOrObject, ...objectN]);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../lodash/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC","sourcesContent":["export * from './utils/common';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.mjs","sourceRoot":"","sources":["../../../../lodash/src/utils/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,SAAS,EAAC,MAAM,WAAW,CAAC;AAe7C,MAAM,UAAU,yBAAyB,CAAoB,MAAe,EAAE,GAAG,SAAoB;IAEjG,8DAA8D;IAC9D,OAAO,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,QAAa,EAAE,QAAa,EAAE,EAAE;YAExE,IAAI,OAAO,CAAC,QAAQ,CAAC,EACrB,CAAC;gBACG,OAAO,QAAQ,CAAC;YACpB,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;AACR,CAAC","sourcesContent":["import {isArray, mergeWith} from 'lodash-es';\n\n/**\n * Performs deep copy of object with arrays that are not merged but overrided with latest value\n * @param object - Object to be extended\n * @param source - Object used for extension\n */\nexport function deepCopyWithArrayOverride<TObject, TSource>(object: TObject, source: TSource): TObject & TSource\n/**\n * Performs deep copy of object with arrays that are not merged but overrided with latest value\n * @param object - Object to be extended\n * @param source1 - Object used for extension\n * @param source2 - Object used for extension\n */\nexport function deepCopyWithArrayOverride<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2): TObject & TSource1 & TSource2\nexport function deepCopyWithArrayOverride<TResult = unknown>(object: unknown, ...otherArgs: unknown[]): TResult\n{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return mergeWith(object, ...[...otherArgs, (objValue: any, srcValue: any) =>\n {\n if (isArray(objValue))\n {\n return srcValue;\n }\n }]);\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { isArray, mergeWith } from 'lodash-es';
|
|
2
|
+
export function deepCopyWithArrayOverride(object, ...otherArgs) {
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4
|
+
return mergeWith(object, ...[...otherArgs, (objValue, srcValue) => {
|
|
5
|
+
if (isArray(objValue)) {
|
|
6
|
+
return srcValue;
|
|
7
|
+
}
|
|
8
|
+
}]);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.mjs","sourceRoot":"","sources":["../../../../rxjs/src/utils/async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,aAAa,EAAE,UAAU,EAAC,MAAM,MAAM,CAAC;AAG3D;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAU,KAAmC;IAEnF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAEnC,IAAG,KAAK,YAAY,UAAU,EAC9B;
|
|
1
|
+
{"version":3,"file":"async.mjs","sourceRoot":"","sources":["../../../../rxjs/src/utils/async.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,aAAa,EAAE,UAAU,EAAC,MAAM,MAAM,CAAC;AAG3D;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAU,KAAmC;IAEnF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAEnC,IAAG,KAAK,YAAY,UAAU,EAC9B,CAAC;YACG,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QAED,IAAG,KAAK,YAAY,OAAO,EAC3B,CAAC;YACG,KAAK;iBACA,IAAI,CAAC,OAAO,CAAC;iBACb,KAAK,CAAC,KAAK,CAAC,EAAE;gBAEX,iDAAiD;gBACjD,IAAG,KAAK,YAAY,UAAU,EAC9B,CAAC;oBACG,OAAO,CAAC,SAAS,CAAC,CAAC;oBAEnB,OAAO;gBACX,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YAEP,OAAO;QACX,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACP,CAAC","sourcesContent":["import {EmptyError, lastValueFrom, Observable} from 'rxjs';\nimport {PromiseObservableOr} from '../types/async';\n\n/**\n * Resolves `PromiseObservableOr` value, if value is Observable then can be completed without value and undefined is resolved\n * @param value - Value to be solved\n */\nexport function resolvePromiseObservableOr<TResult>(value: PromiseObservableOr<TResult>): Promise<TResult|undefined>\n{\n return new Promise((resolve, reject) =>\n {\n if(value instanceof Observable)\n {\n value = lastValueFrom(value);\n }\n\n if(value instanceof Promise)\n {\n value\n .then(resolve)\n .catch(error =>\n {\n //handles observable that completes without value\n if(error instanceof EmptyError)\n {\n resolve(undefined);\n\n return;\n }\n\n reject(error);\n });\n\n return;\n }\n \n resolve(value);\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindThis.decorator.mjs","sourceRoot":"","sources":["../../../src/decorators/bindThis.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,WAA0B,EAAE,UAA8B;;IAEhG,MAAM,aAAa,GAAS,MAAA,UAAU,CAAC,KAAK,mCAAI,MAAA,UAAU,CAAC,GAAG,0DAAI,CAAC;IAEnE,IAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAC7B;
|
|
1
|
+
{"version":3,"file":"bindThis.decorator.mjs","sourceRoot":"","sources":["../../../src/decorators/bindThis.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,WAA0B,EAAE,UAA8B;;IAEhG,MAAM,aAAa,GAAS,MAAA,UAAU,CAAC,KAAK,mCAAI,MAAA,UAAU,CAAC,GAAG,0DAAI,CAAC;IAEnE,IAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAC7B,CAAC;QACG,MAAM,IAAI,KAAK,CAAC,2CAA2C,WAAW,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;IAC/G,CAAC;IAED,OAAO;QACH,YAAY,EAAE,IAAI;QAClB,GAAG;YAEC,MAAM,KAAK,GAAS,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE7C,MAAM,CAAC,cAAc,CAAC,IAAI,EACJ,WAAW,EACX;gBACI,KAAK,EAAE,KAAK;gBACZ,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI;aACjB,CAAC,CAAC;YAEzB,OAAO,KAAK,CAAC;QACjB,CAAC;KACJ,CAAC;AACN,CAAC","sourcesContent":["import {Func} from '../types/functions';\r\nimport {isFunction} from '../utils/lang';\r\n\r\n/**\r\n * Binds function to this, object instance where is defined, it is importat to place it in correct order with other decorators, usually should be first\r\n */\r\nexport function BindThis(_target: Object, propertyKey: string|symbol, descriptor: PropertyDescriptor): TypedPropertyDescriptor<Func<any, any>>\r\n{\r\n const originalValue: Func = descriptor.value ?? descriptor.get?.();\r\n\r\n if(!isFunction(originalValue))\r\n {\r\n throw new Error(`Unable to apply @BindThis decorator to '${propertyKey.toString()}', it is not a method.`);\r\n }\r\n\r\n return {\r\n configurable: true,\r\n get(this: unknown): Func\r\n {\r\n const bound: Func = originalValue.bind(this);\r\n\r\n Object.defineProperty(this,\r\n propertyKey,\r\n {\r\n value: bound,\r\n configurable: true,\r\n writable: true\r\n });\r\n\r\n return bound;\r\n }\r\n };\r\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callOnce.decorator.mjs","sourceRoot":"","sources":["../../../src/decorators/callOnce.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;AAEpD;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IAEjC,OAAO,UAAS,OAAe,EAAE,WAA0B,EAAE,UAA8B;;QAEvF,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,aAAa,GAAS,MAAA,UAAU,CAAC,KAAK,mCAAI,MAAA,UAAU,CAAC,GAAG,0DAAI,CAAC;QAEnE,IAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAC7B;
|
|
1
|
+
{"version":3,"file":"callOnce.decorator.mjs","sourceRoot":"","sources":["../../../src/decorators/callOnce.decorator.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;AAEpD;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IAEjC,OAAO,UAAS,OAAe,EAAE,WAA0B,EAAE,UAA8B;;QAEvF,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,aAAa,GAAS,MAAA,UAAU,CAAC,KAAK,mCAAI,MAAA,UAAU,CAAC,GAAG,0DAAI,CAAC;QAEnE,IAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAC7B,CAAC;YACG,MAAM,IAAI,KAAK,CAAC,6CAA6C,WAAW,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;QACjH,CAAC;QAED,UAAU,CAAC,KAAK,GAAG,UAA6C,GAAG,IAAe;YAE9E,IAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAC3B,CAAC;gBACG,OAAO;YACX,CAAC;YAED,kCAAkC;YAClC,IAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,EACrB,CAAC;gBACG,OAAO,CAAC,cAAc,CAAC,IAAI,EACJ,OAAO,EACP;oBACI,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI;iBACd,CAAC,CAAC;YAC9B,CAAC;YAED,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAEhC,IAAI,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;gBAE5B,IAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAC3B,CAAC;oBACG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChC,CAAC;gBAED,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YACzB,CAAC,EAAE,IAAI,CAAQ,CAAC;QACpB,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {Func} from '../types/functions';\r\nimport {isFunction, isPresent} from '../utils/lang';\r\n\r\n/**\r\n * Method is called only once for specified time, other calls during this time are blocked and it does nothing and returns null\r\n * @param time - Number of miliseconds which specifies period while are calls to this method blocked after first call\r\n */\r\nexport function CallOnce(time: number): MethodDecorator\r\n{\r\n return function(_target: Object, propertyKey: string|symbol, descriptor: PropertyDescriptor)\r\n {\r\n const timeout = Symbol('ɵTimeout');\r\n const originalValue: Func = descriptor.value ?? descriptor.get?.();\r\n\r\n if(!isFunction(originalValue))\r\n {\r\n throw new Error(`Unable to apply @CallOnce() decorator to '${propertyKey.toString()}', it is not a method.`);\r\n }\r\n\r\n descriptor.value = function(this: {[key: symbol]: number|null}, ...args: unknown[]): void\r\n {\r\n if(isPresent(this[timeout]))\r\n {\r\n return;\r\n }\r\n \r\n //timeout variable does not exists\r\n if(!(timeout in this))\r\n {\r\n Reflect.defineProperty(this,\r\n timeout,\r\n {\r\n writable: true,\r\n value: null,\r\n });\r\n }\r\n\r\n originalValue.apply(this, args);\r\n\r\n this[timeout] = setTimeout(() =>\r\n {\r\n if(isPresent(this[timeout]))\r\n {\r\n clearTimeout(this[timeout]);\r\n }\r\n \r\n this[timeout] = null;\r\n }, time) as any;\r\n };\r\n\r\n return descriptor;\r\n };\r\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debounceCall.decorator.mjs","sourceRoot":"","sources":["../../../src/decorators/debounceCall.decorator.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;AAEpD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IAEtC,OAAO,UAAS,OAAe,EAAE,WAA0B,EAAE,UAA8B;;QAEvF,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,aAAa,GAAc,MAAA,UAAU,CAAC,KAAK,mCAAI,MAAA,UAAU,CAAC,GAAG,0DAAI,CAAC;QAExE,IAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAC7B;
|
|
1
|
+
{"version":3,"file":"debounceCall.decorator.mjs","sourceRoot":"","sources":["../../../src/decorators/debounceCall.decorator.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,eAAe,CAAC;AAEpD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IAEtC,OAAO,UAAS,OAAe,EAAE,WAA0B,EAAE,UAA8B;;QAEvF,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,aAAa,GAAc,MAAA,UAAU,CAAC,KAAK,mCAAI,MAAA,UAAU,CAAC,GAAG,0DAAI,CAAC;QAExE,IAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAC7B,CAAC;YACG,MAAM,IAAI,KAAK,CAAC,iDAAiD,WAAW,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;QACrH,CAAC;QAED,UAAU,CAAC,KAAK,GAAG,UAA+H,GAAG,IAAe;YAEhK,iCAAiC;YACjC,IAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,EAC1C,CAAC;gBACG,IAAI,SAA+C,CAAC;gBACpD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAoB,OAAO,CAAC,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC;gBAE/E,OAAO,CAAC,cAAc,CAAC,IAAI,EACJ,OAAO,EACP;oBACI,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,SAAS;iBACnB,CAAC,CAAC;gBAE1B,OAAO,CAAC,cAAc,CAAC,IAAI,EACJ,MAAM,EACN;oBACI,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,OAAO;iBACjB,CAAC,CAAC;YAC9B,CAAC;YAID,IAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAC3B,CAAC;gBACG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAChC,CAAC;YAED,kCAAkC;YAClC,IAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,EACrB,CAAC;gBACG,OAAO,CAAC,cAAc,CAAC,IAAI,EACJ,OAAO,EACP;oBACI,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI;iBACd,CAAC,CAAC;YAC9B,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,GAAS,EAAE;gBAElC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,aAAa,CAAC,KAAK,CAAiC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBACrF,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,CAAoB,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;gBACtF,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YACzB,CAAC,CAAA,EAAE,KAAK,CAAQ,CAAC;YAEjB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {PromiseOr} from '../types/async';\r\nimport {Action1, Func} from '../types/functions';\r\nimport {isFunction, isPresent} from '../utils/lang';\r\n\r\n/**\r\n * Adds special functionality to method call, that debounce method call for specified time\r\n * @param delay - Number of miliseconds that delays function call\r\n */\r\nexport function DebounceCall(delay: number): MethodDecorator\r\n{\r\n return function(_target: Object, propertyKey: string|symbol, descriptor: PropertyDescriptor)\r\n {\r\n const timeout = Symbol('ɵTimeout');\r\n const resolve = Symbol('ɵResolve');\r\n const result = Symbol('ɵResult');\r\n const originalValue: Func<any> = descriptor.value ?? descriptor.get?.();\r\n\r\n if(!isFunction(originalValue))\r\n {\r\n throw new Error(`Unable to apply @DebounceCall() decorator to '${propertyKey.toString()}', it is not a method.`);\r\n }\r\n\r\n descriptor.value = function<TResult>(this: {[timeout]: number|null, [resolve]: Action1<TResult|undefined>, [result]: Promise<TResult|undefined>}, ...args: unknown[]): Promise<TResult|undefined>\r\n {\r\n //result variable does not exists\r\n if(!(resolve in this) && !(result in this))\r\n {\r\n let resolveFn: Action1<TResult|undefined>|undefined;\r\n const promise = new Promise<TResult|undefined>(resolve => resolveFn = resolve);\r\n\r\n Reflect.defineProperty(this,\r\n resolve,\r\n {\r\n writable: true,\r\n value: resolveFn,\r\n });\r\n\r\n Reflect.defineProperty(this,\r\n result,\r\n {\r\n writable: true,\r\n value: promise,\r\n });\r\n }\r\n\r\n \r\n\r\n if(isPresent(this[timeout]))\r\n {\r\n clearTimeout(this[timeout]);\r\n }\r\n\r\n //timeout variable does not exists\r\n if(!(timeout in this))\r\n {\r\n Reflect.defineProperty(this,\r\n timeout,\r\n {\r\n writable: true,\r\n value: null,\r\n });\r\n }\r\n\r\n this[timeout] = setTimeout(async () =>\r\n {\r\n this[resolve](await originalValue.apply<any, any[], PromiseOr<TResult>>(this, args));\r\n this[result] = new Promise<TResult|undefined>(resolveFn => this[resolve] = resolveFn);\r\n this[timeout] = null;\r\n }, delay) as any;\r\n\r\n return this[result];\r\n };\r\n\r\n return descriptor;\r\n };\r\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mixin.decorator.mjs","sourceRoot":"","sources":["../../../src/decorators/mixin.decorator.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,UAA8B;IAEhD,OAAO,UAAsC,MAAiB;QAE1D,MAAM,oBAAoB,GAAG,MAAM,CAAC,yBAAyB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAEpF,KAAI,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,EAC1F;
|
|
1
|
+
{"version":3,"file":"mixin.decorator.mjs","sourceRoot":"","sources":["../../../src/decorators/mixin.decorator.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,UAA8B;IAEhD,OAAO,UAAsC,MAAiB;QAE1D,MAAM,oBAAoB,GAAG,MAAM,CAAC,yBAAyB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAEpF,KAAI,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,EAC1F,CAAC;YACG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {MixinType} from '../types/mixinType';\n\n/**\n * Uses specified class as class mixin, takes its methods and properties and merge them into target class\n * @param mixinClass - Mixin class to be used as mixin\n */\nexport function Mixin(mixinClass: MixinType<unknown>): ClassDecorator\n{\n return function<TFunction extends Function> (target: TFunction): TFunction\n {\n const methodsAndProperties = Object.getOwnPropertyDescriptors(mixinClass.prototype);\n \n for(const name of Object.keys(methodsAndProperties).filter(name => name !== 'constructor'))\n {\n Object.defineProperty(target.prototype, name, methodsAndProperties[name]);\n }\n \n return target;\n };\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property.decorator.mjs","sourceRoot":"","sources":["../../../src/decorators/property.decorator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAkB,UAAwE,EAAC,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAC;IAEtK,OAAO,UAAU,MAAc,EAAE,WAA0B;QAEvD,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEpD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EACzC;YACI,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,GAAG,EAAE;gBAED,IAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,YAAY,CAAC,EACvD;
|
|
1
|
+
{"version":3,"file":"property.decorator.mjs","sourceRoot":"","sources":["../../../src/decorators/property.decorator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAkB,UAAwE,EAAC,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAC;IAEtK,OAAO,UAAU,MAAc,EAAE,WAA0B;QAEvD,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEpD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EACzC;YACI,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,GAAG,EAAE;gBAED,IAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,YAAY,CAAC,EACvD,CAAC;oBACG,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,EACxC;wBACI,YAAY,EAAE,KAAK;wBACnB,UAAU,EAAE,KAAK;wBACjB,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,OAAO,CAAC,KAAK;qBACvB,CAAC,CAAC;gBACP,CAAC;gBAED,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9B,CAAC;YACD,GAAG,EAAE,UAAuC,KAAY;gBAEpD,IAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,YAAY,CAAC,EACvD,CAAC;oBACG,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,EACxC;wBACI,YAAY,EAAE,KAAK;wBACnB,UAAU,EAAE,KAAK;wBACjB,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,OAAO,CAAC,KAAK;qBACvB,CAAC,CAAC;gBACP,CAAC;gBAED,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;YAC/B,CAAC;SACJ,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC","sourcesContent":["/**\n * Allows to define property on object with specific options and default value\n * @param options - Options that can be set for property\n */\nexport function Property<TType = unknown>(options: Omit<TypedPropertyDescriptor<TType>, 'get'|'set'|'writable'> = {configurable: true, enumerable: true, value: undefined}): PropertyDecorator\n{\n return function (target: Object, propertyKey: string|symbol): void\n {\n const backingField = Symbol(propertyKey.toString());\n\n Object.defineProperty(target, propertyKey,\n {\n configurable: options.configurable,\n enumerable: options.enumerable,\n get: function(this: {[key: symbol]: TType})\n {\n if(!Object.getOwnPropertyDescriptor(this, backingField))\n {\n Object.defineProperty(this, backingField,\n {\n configurable: false,\n enumerable: false,\n writable: true,\n value: options.value,\n });\n }\n\n return this[backingField];\n },\n set: function(this: {[key: symbol]: TType}, value: TType)\n {\n if(!Object.getOwnPropertyDescriptor(this, backingField))\n {\n Object.defineProperty(this, backingField,\n {\n configurable: false,\n enumerable: false,\n writable: true,\n value: options.value,\n });\n }\n\n this[backingField] = value;\n }\n });\n };\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withSync.decorator.mjs","sourceRoot":"","sources":["../../../src/decorators/withSync.decorator.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC;;GAEG;AACH,MAAM,UAAU,QAAQ;IAEpB,OAAO,UAAS,OAAe,EAAE,WAA0B,EAAE,UAA8B;;QAEvF,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,aAAa,GAAc,MAAA,UAAU,CAAC,KAAK,mCAAI,MAAA,UAAU,CAAC,GAAG,0DAAI,CAAC;QAExE,IAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAC7B;
|
|
1
|
+
{"version":3,"file":"withSync.decorator.mjs","sourceRoot":"","sources":["../../../src/decorators/withSync.decorator.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC;;GAEG;AACH,MAAM,UAAU,QAAQ;IAEpB,OAAO,UAAS,OAAe,EAAE,WAA0B,EAAE,UAA8B;;QAEvF,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,aAAa,GAAc,MAAA,UAAU,CAAC,KAAK,mCAAI,MAAA,UAAU,CAAC,GAAG,0DAAI,CAAC;QAExE,IAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAC7B,CAAC;YACG,MAAM,IAAI,KAAK,CAAC,6CAA6C,WAAW,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;QACjH,CAAC;QAED,UAAU,CAAC,KAAK,GAAG,UAA8D,GAAG,IAAe;;gBAE/F,+BAA+B;gBAC/B,IAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,EAClB,CAAC;oBACG,OAAO,CAAC,cAAc,CAAC,IAAI,EACJ,IAAI,EACJ;wBACI,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE;qBAC3B,CAAC,CAAC;gBAC9B,CAAC;gBAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,WAAiC,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC;gBAC3D,MAAM,WAAW,CAAC;gBAElB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAsB,IAAI,EAAE,IAAI,CAAC,CAAC;gBAE1E,WAAW,aAAX,WAAW,uBAAX,WAAW,EAAI,CAAC;gBAEhB,OAAO,MAAM,CAAC;YAClB,CAAC;SAAA,CAAC;QAEF,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;AACN,CAAC","sourcesContent":["import {Func, NoopAction} from '../types/functions';\nimport {isFunction} from '../utils/lang';\n\n/**\n * Adds special functionality to async method call, that allows only to call this method only when previous execution was finished\n */\nexport function WithSync(): MethodDecorator\n{\n return function(_target: Object, propertyKey: string|symbol, descriptor: PropertyDescriptor)\n {\n const sync = Symbol('ɵSync');\n const originalValue: Func<any> = descriptor.value ?? descriptor.get?.();\n\n if(!isFunction(originalValue))\n {\n throw new Error(`Unable to apply @WithSync() decorator to '${propertyKey.toString()}', it is not a method.`);\n }\n\n descriptor.value = async function<TResult>(this: {[key: symbol]: Promise<void>}, ...args: unknown[]): Promise<TResult>\n {\n //sync variable does not exists\n if(!(sync in this))\n {\n Reflect.defineProperty(this,\n sync,\n {\n writable: true,\n value: Promise.resolve(),\n });\n }\n\n const syncPromise = this[sync];\n let syncResolve: NoopAction|undefined;\n this[sync] = new Promise(resolve => syncResolve = resolve);\n await syncPromise;\n\n const result = await originalValue.apply<any, any[], TResult>(this, args);\n\n syncResolve?.();\n\n return result;\n };\n\n return descriptor;\n };\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder.mjs","sourceRoot":"","sources":["../../../src/encoder/encoder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,OAAO,OAAO;IAApB;QAEI,yEAAyE;QACzE,eAAU,GAAW,QAAQ,CAAC,CAAE,sBAAsB;QActD,+DAA+D;QAC/D,SAAI,GAAa,CAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,UAAU,EAAC,OAAO,EAAC,UAAU,EAAC,QAAQ,EAAC,OAAO,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAC,QAAQ,EAAC,OAAO,EAAC,UAAU,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,QAAQ,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,UAAU,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,UAAU,EAAC,QAAQ,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,UAAU,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,UAAU,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,UAAU,EAAC,QAAQ,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,UAAU,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,WAAW,EAAC,MAAM,EAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,UAAU,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,WAAW,EAAC,MAAM,EAAC,OAAO,EAAC,UAAU,EAAC,SAAS,EAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,YAAY,EAAC,SAAS,EAAC,OAAO,EAAC,QAAQ,EAAC,UAAU,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,WAAW,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,MAAM,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,OAAO,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAC,UAAU,EAAC,OAAO,EAAC,QAAQ,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,UAAU,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAC,UAAU,EAAC,SAAS,EAAC,UAAU,EAAC,SAAS,CAAC,CAAC;QAC34E,SAAI,GAAa,CAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,E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","sourcesContent":["/**\r\n * A Javascript object to encode and/or decode html characters using HTML or Numeric entities that handles double or partial encoding\r\n * Author: R Reid\r\n * source: http://www.strictly-software.com/htmlencode\r\n * Licences: GPL, The MIT License (MIT)\r\n * Copyright: (c) 2011 Robert Reid - Strictly-Software.com\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\r\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n *\r\n * Revision:\r\n * 2011-07-14, Jacques-Yves Bleau:\r\n * - fixed conversion error with capitalized accentuated characters\r\n * + converted arr1 and arr2 to object property to remove redundancy\r\n *\r\n * Revision:\r\n * 2011-11-10, Ce-Yi Hio:\r\n * - fixed conversion error with a number of capitalized entity characters\r\n *\r\n * Revision:\r\n * 2011-11-10, Rob Reid:\r\n * - changed array format\r\n *\r\n * Revision:\r\n * 2012-09-23, Alex Oss:\r\n * - replaced string concatonation in numEncode with string builder, push and join for peformance with ammendments by Rob Reid\r\n */\r\n\r\nexport class Encoder\r\n{\r\n // When encoding do we convert characters into html or numerical entities\r\n EncodeType: string = 'entity'; // entity OR numerical\r\n\r\n isEmpty(val: any): boolean\r\n {\r\n if(val)\r\n {\r\n return ((val===null) || val.length==0 || /^\\s+$/.test(val));\r\n }\r\n else\r\n {\r\n return true;\r\n }\r\n }\r\n\r\n // arrays for conversion from HTML Entities to Numerical values\r\n arr1: string[] = [' ','¡','¢','£','¤','¥','¦','§','¨','©','ª','«','¬','­','®','¯','°','±','²','³','´','µ','¶','·','¸','¹','º','»','¼','½','¾','¿','À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý','þ','ÿ','"','&','<','>','Œ','œ','Š','š','Ÿ','ˆ','˜',' ',' ',' ','‌','‍','‎','‏','–','—','‘','’','‚','“','”','„','†','‡','‰','‹','›','€','ƒ','Α','Β','Γ','Δ','Ε','Ζ','Η','Θ','Ι','Κ','Λ','Μ','Ν','Ξ','Ο','Π','Ρ','Σ','Τ','Υ','Φ','Χ','Ψ','Ω','α','β','γ','δ','ε','ζ','η','θ','ι','κ','λ','μ','ν','ξ','ο','π','ρ','ς','σ','τ','υ','φ','χ','ψ','ω','ϑ','ϒ','ϖ','•','…','′','″','‾','⁄','℘','ℑ','ℜ','™','ℵ','←','↑','→','↓','↔','↵','⇐','⇑','⇒','⇓','⇔','∀','∂','∃','∅','∇','∈','∉','∋','∏','∑','−','∗','√','∝','∞','∠','∧','∨','∩','∪','∫','∴','∼','≅','≈','≠','≡','≤','≥','⊂','⊃','⊄','⊆','⊇','⊕','⊗','⊥','⋅','⌈','⌉','⌊','⌋','⟨','⟩','◊','♠','♣','♥','♦'];\r\n arr2: string[] = [' ','¡','¢','£','¤','¥','¦','§','¨','©','ª','«','¬','­','®','¯','°','±','²','³','´','µ','¶','·','¸','¹','º','»','¼','½','¾','¿','À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý','þ','ÿ','"','&','<','>','Œ','œ','Š','š','Ÿ','ˆ','˜',' ',' ',' ','‌','‍','‎','‏','–','—','‘','’','‚','“','”','„','†','‡','‰','‹','›','€','ƒ','Α','Β','Γ','Δ','Ε','Ζ','Η','Θ','Ι','Κ','Λ','Μ','Ν','Ξ','Ο','Π','Ρ','Σ','Τ','Υ','Φ','Χ','Ψ','Ω','α','β','γ','δ','ε','ζ','η','θ','ι','κ','λ','μ','ν','ξ','ο','π','ρ','ς','σ','τ','υ','φ','χ','ψ','ω','ϑ','ϒ','ϖ','•','…','′','″','‾','⁄','℘','ℑ','ℜ','™','ℵ','←','↑','→','↓','↔','↵','⇐','⇑','⇒','⇓','⇔','∀','∂','∃','∅','∇','∈','∉','∋','∏','∑','−','∗','√','∝','∞','∠','∧','∨','∩','∪','∫','∴','∼','≅','≈','≠','≡','≤','≥','⊂','⊃','⊄','⊆','⊇','⊕','⊗','⊥','⋅','⌈','⌉','⌊','⌋','〈','〉','◊','♠','♣','♥','♦'];\r\n\r\n // Convert HTML entities into numerical entities\r\n HTML2Numerical(s:any)\r\n {\r\n return this.swapArrayVals(s, this.arr1, this.arr2);\r\n }\r\n\r\n // Convert Numerical entities into HTML entities\r\n NumericalToHTML(s:any)\r\n {\r\n return this.swapArrayVals(s, this.arr2, this.arr1);\r\n }\r\n\r\n\r\n // Numerically encodes all unicode characters\r\n numEncode(s:any)\r\n {\r\n if(this.isEmpty(s))\r\n { \r\n return '';\r\n }\r\n\r\n const a = [],\r\n l = s.length;\r\n\r\n for (let i=0; i < l; i++)\r\n {\r\n const c = s.charAt(i);\r\n \r\n if (c < ' ' || c > '~')\r\n {\r\n a.push('&#');\r\n a.push(c.charCodeAt()); //numeric value of code point\r\n a.push(';');\r\n }\r\n else\r\n {\r\n a.push(c);\r\n }\r\n }\r\n\r\n return a.join('');\r\n }\r\n\r\n // HTML Decode numerical and HTML entities back to original values\r\n htmlDecode(s:any)\r\n {\r\n let c,m,d = s;\r\n\r\n if(this.isEmpty(d)) \r\n {\r\n return '';\r\n }\r\n\r\n // convert HTML entites back to numerical entites first\r\n d = this.HTML2Numerical(d);\r\n\r\n // look for numerical entities "\r\n const arr = d.match(/&#[0-9]{1,5};/g);\r\n\r\n // if no matches found in string then skip\r\n if(arr!=null)\r\n {\r\n for(let x=0; x < arr.length; x++)\r\n {\r\n m = arr[x];\r\n c = m.substring(2,m.length-1); //get numeric part which is refernce to unicode character\r\n // if its a valid number we can decode\r\n if(c >= -32768 && c <= 65535)\r\n {\r\n // decode every single match within string\r\n d = d.replace(m, String.fromCharCode(c));\r\n }\r\n else\r\n {\r\n d = d.replace(m, ''); //invalid so replace with nada\r\n }\r\n }\r\n }\r\n\r\n return d;\r\n }\r\n\r\n // encode an input string into either numerical or HTML entities\r\n htmlEncode(s:any, dbl:any)\r\n {\r\n if(this.isEmpty(s))\r\n {\r\n return '';\r\n }\r\n\r\n // do we allow double encoding? E.g will & be turned into &amp;\r\n dbl = dbl || false; //default to prevent double encoding\r\n\r\n // if allowing double encoding we do ampersands first\r\n if(dbl)\r\n {\r\n if(this.EncodeType=='numerical')\r\n {\r\n s = s.replace(/&/g, '&');\r\n }\r\n else\r\n {\r\n s = s.replace(/&/g, '&');\r\n }\r\n }\r\n\r\n // convert the xss chars to numerical entities ' ' < >\r\n s = this.XSSEncode(s,false);\r\n\r\n if(this.EncodeType=='numerical' || !dbl)\r\n {\r\n // Now call function that will convert any HTML entities to numerical codes\r\n s = this.HTML2Numerical(s);\r\n }\r\n\r\n // Now encode all chars above 127 e.g unicode\r\n s = this.numEncode(s);\r\n\r\n // now we know anything that needs to be encoded has been converted to numerical entities we\r\n // can encode any ampersands & that are not part of encoded entities\r\n // to handle the fact that I need to do a negative check and handle multiple ampersands &&&\r\n // I am going to use a placeholder\r\n\r\n // if we don't want double encoded entities we ignore the & in existing entities\r\n if(!dbl)\r\n {\r\n s = s.replace(/&#/g,'##AMPHASH##');\r\n\r\n if(this.EncodeType=='numerical')\r\n {\r\n s = s.replace(/&/g, '&');\r\n }\r\n else\r\n {\r\n s = s.replace(/&/g, '&');\r\n }\r\n\r\n s = s.replace(/##AMPHASH##/g,'&#');\r\n }\r\n\r\n // replace any malformed entities\r\n s = s.replace(/&#\\d*([^\\d;]|$)/g, '$1');\r\n\r\n if(!dbl)\r\n {\r\n // safety check to correct any double encoded &\r\n s = this.correctEncoding(s);\r\n }\r\n\r\n // now do we need to convert our numerical encoded string into entities\r\n if(this.EncodeType=='entity')\r\n {\r\n s = this.NumericalToHTML(s);\r\n }\r\n\r\n return s;\r\n }\r\n\r\n // Encodes the basic 4 characters used to malform HTML in XSS hacks\r\n XSSEncode(s:any,en:any)\r\n {\r\n if(!this.isEmpty(s))\r\n {\r\n en = en || true;\r\n // do we convert to numerical or html entity?\r\n if(en)\r\n {\r\n s = s.replace(/'/g,'''); //no HTML equivalent as &apos is not cross browser supported\r\n s = s.replace(/\"/g,'"');\r\n s = s.replace(/</g,'<');\r\n s = s.replace(/>/g,'>');\r\n }\r\n else\r\n {\r\n s = s.replace(/'/g,'''); //no HTML equivalent as &apos is not cross browser supported\r\n s = s.replace(/\"/g,'"');\r\n s = s.replace(/</g,'<');\r\n s = s.replace(/>/g,'>');\r\n }\r\n \r\n return s;\r\n }\r\n else\r\n {\r\n return '';\r\n }\r\n }\r\n\r\n // returns true if a string contains html or numerical encoded entities\r\n hasEncoded(s:any)\r\n {\r\n if(/&#[0-9]{1,5};/g.test(s))\r\n {\r\n return true;\r\n }\r\n else if(/&[A-Z]{2,6};/gi.test(s))\r\n {\r\n return true;\r\n }\r\n else\r\n {\r\n return false;\r\n }\r\n }\r\n\r\n // will remove any unicode characters\r\n stripUnicode(s:any)\r\n {\r\n return s.replace(/[^\\x20-\\x7E]/g,'');\r\n }\r\n\r\n // corrects any double encoded & entities e.g &amp;\r\n correctEncoding(s:any)\r\n {\r\n return s.replace(/(&)(amp;)+/,'$1');\r\n }\r\n\r\n // Function to loop through an array swaping each item with the value from another array e.g swap HTML entities with Numericals\r\n swapArrayVals(s:any,arr1:any,arr2:any)\r\n {\r\n if(this.isEmpty(s))\r\n { \r\n return '';\r\n }\r\n \r\n let re;\r\n \r\n if(arr1 && arr2)\r\n {\r\n //ShowDebug('in swapArrayVals arr1.length = ' + arr1.length + ' arr2.length = ' + arr2.length)\r\n // array lengths must match\r\n if(arr1.length == arr2.length)\r\n {\r\n for(let x=0, i = arr1.length; x < i; x++)\r\n {\r\n re = new RegExp(arr1[x], 'g');\r\n s = s.replace(re,arr2[x]); //swap arr1 item with matching item from arr2\r\n }\r\n }\r\n }\r\n \r\n return s;\r\n }\r\n\r\n inArray( item:any, arr:any ) \r\n {\r\n for ( let i = 0, x = arr.length; i < x; i++ )\r\n {\r\n if ( arr[i] === item )\r\n {\r\n return i;\r\n }\r\n }\r\n \r\n return -1;\r\n }\r\n\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"encoder.mjs","sourceRoot":"","sources":["../../../src/encoder/encoder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,OAAO,OAAO;IAApB;QAEI,yEAAyE;QACzE,eAAU,GAAW,QAAQ,CAAC,CAAE,sBAAsB;QActD,+DAA+D;QAC/D,SAAI,GAAa,CAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,UAAU,EAAC,OAAO,EAAC,UAAU,EAAC,QAAQ,EAAC,OAAO,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAC,QAAQ,EAAC,OAAO,EAAC,UAAU,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,QAAQ,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,UAAU,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,UAAU,EAAC,QAAQ,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,UAAU,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,UAAU,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,UAAU,EAAC,QAAQ,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,UAAU,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,WAAW,EAAC,MAAM,EAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,UAAU,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,WAAW,EAAC,MAAM,EAAC,OAAO,EAAC,UAAU,EAAC,SAAS,EAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,YAAY,EAAC,SAAS,EAAC,OAAO,EAAC,QAAQ,EAAC,UAAU,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,WAAW,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,MAAM,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,UAAU,EAAC,SAAS,EAAC,QAAQ,EAAC,SAAS,EAAC,OAAO,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAC,UAAU,EAAC,OAAO,EAAC,QAAQ,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,UAAU,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAC,UAAU,EAAC,SAAS,EAAC,UAAU,EAAC,SAAS,CAAC,CAAC;QAC34E,SAAI,GAAa,CAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,E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","sourcesContent":["/**\r\n * A Javascript object to encode and/or decode html characters using HTML or Numeric entities that handles double or partial encoding\r\n * Author: R Reid\r\n * source: http://www.strictly-software.com/htmlencode\r\n * Licences: GPL, The MIT License (MIT)\r\n * Copyright: (c) 2011 Robert Reid - Strictly-Software.com\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\r\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n *\r\n * Revision:\r\n * 2011-07-14, Jacques-Yves Bleau:\r\n * - fixed conversion error with capitalized accentuated characters\r\n * + converted arr1 and arr2 to object property to remove redundancy\r\n *\r\n * Revision:\r\n * 2011-11-10, Ce-Yi Hio:\r\n * - fixed conversion error with a number of capitalized entity characters\r\n *\r\n * Revision:\r\n * 2011-11-10, Rob Reid:\r\n * - changed array format\r\n *\r\n * Revision:\r\n * 2012-09-23, Alex Oss:\r\n * - replaced string concatonation in numEncode with string builder, push and join for peformance with ammendments by Rob Reid\r\n */\r\n\r\nexport class Encoder\r\n{\r\n // When encoding do we convert characters into html or numerical entities\r\n EncodeType: string = 'entity'; // entity OR numerical\r\n\r\n isEmpty(val: any): boolean\r\n {\r\n if(val)\r\n {\r\n return ((val===null) || val.length==0 || /^\\s+$/.test(val));\r\n }\r\n else\r\n {\r\n return true;\r\n }\r\n }\r\n\r\n // arrays for conversion from HTML Entities to Numerical values\r\n arr1: string[] = [' ','¡','¢','£','¤','¥','¦','§','¨','©','ª','«','¬','­','®','¯','°','±','²','³','´','µ','¶','·','¸','¹','º','»','¼','½','¾','¿','À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý','þ','ÿ','"','&','<','>','Œ','œ','Š','š','Ÿ','ˆ','˜',' ',' ',' ','‌','‍','‎','‏','–','—','‘','’','‚','“','”','„','†','‡','‰','‹','›','€','ƒ','Α','Β','Γ','Δ','Ε','Ζ','Η','Θ','Ι','Κ','Λ','Μ','Ν','Ξ','Ο','Π','Ρ','Σ','Τ','Υ','Φ','Χ','Ψ','Ω','α','β','γ','δ','ε','ζ','η','θ','ι','κ','λ','μ','ν','ξ','ο','π','ρ','ς','σ','τ','υ','φ','χ','ψ','ω','ϑ','ϒ','ϖ','•','…','′','″','‾','⁄','℘','ℑ','ℜ','™','ℵ','←','↑','→','↓','↔','↵','⇐','⇑','⇒','⇓','⇔','∀','∂','∃','∅','∇','∈','∉','∋','∏','∑','−','∗','√','∝','∞','∠','∧','∨','∩','∪','∫','∴','∼','≅','≈','≠','≡','≤','≥','⊂','⊃','⊄','⊆','⊇','⊕','⊗','⊥','⋅','⌈','⌉','⌊','⌋','⟨','⟩','◊','♠','♣','♥','♦'];\r\n arr2: string[] = [' ','¡','¢','£','¤','¥','¦','§','¨','©','ª','«','¬','­','®','¯','°','±','²','³','´','µ','¶','·','¸','¹','º','»','¼','½','¾','¿','À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý','þ','ÿ','"','&','<','>','Œ','œ','Š','š','Ÿ','ˆ','˜',' ',' ',' ','‌','‍','‎','‏','–','—','‘','’','‚','“','”','„','†','‡','‰','‹','›','€','ƒ','Α','Β','Γ','Δ','Ε','Ζ','Η','Θ','Ι','Κ','Λ','Μ','Ν','Ξ','Ο','Π','Ρ','Σ','Τ','Υ','Φ','Χ','Ψ','Ω','α','β','γ','δ','ε','ζ','η','θ','ι','κ','λ','μ','ν','ξ','ο','π','ρ','ς','σ','τ','υ','φ','χ','ψ','ω','ϑ','ϒ','ϖ','•','…','′','″','‾','⁄','℘','ℑ','ℜ','™','ℵ','←','↑','→','↓','↔','↵','⇐','⇑','⇒','⇓','⇔','∀','∂','∃','∅','∇','∈','∉','∋','∏','∑','−','∗','√','∝','∞','∠','∧','∨','∩','∪','∫','∴','∼','≅','≈','≠','≡','≤','≥','⊂','⊃','⊄','⊆','⊇','⊕','⊗','⊥','⋅','⌈','⌉','⌊','⌋','〈','〉','◊','♠','♣','♥','♦'];\r\n\r\n // Convert HTML entities into numerical entities\r\n HTML2Numerical(s:any)\r\n {\r\n return this.swapArrayVals(s, this.arr1, this.arr2);\r\n }\r\n\r\n // Convert Numerical entities into HTML entities\r\n NumericalToHTML(s:any)\r\n {\r\n return this.swapArrayVals(s, this.arr2, this.arr1);\r\n }\r\n\r\n\r\n // Numerically encodes all unicode characters\r\n numEncode(s:any)\r\n {\r\n if(this.isEmpty(s))\r\n { \r\n return '';\r\n }\r\n\r\n const a = [],\r\n l = s.length;\r\n\r\n for (let i=0; i < l; i++)\r\n {\r\n const c = s.charAt(i);\r\n \r\n if (c < ' ' || c > '~')\r\n {\r\n a.push('&#');\r\n a.push(c.charCodeAt()); //numeric value of code point\r\n a.push(';');\r\n }\r\n else\r\n {\r\n a.push(c);\r\n }\r\n }\r\n\r\n return a.join('');\r\n }\r\n\r\n // HTML Decode numerical and HTML entities back to original values\r\n htmlDecode(s:any)\r\n {\r\n let c,m,d = s;\r\n\r\n if(this.isEmpty(d)) \r\n {\r\n return '';\r\n }\r\n\r\n // convert HTML entites back to numerical entites first\r\n d = this.HTML2Numerical(d);\r\n\r\n // look for numerical entities "\r\n const arr = d.match(/&#[0-9]{1,5};/g);\r\n\r\n // if no matches found in string then skip\r\n if(arr!=null)\r\n {\r\n for(let x=0; x < arr.length; x++)\r\n {\r\n m = arr[x];\r\n c = m.substring(2,m.length-1); //get numeric part which is refernce to unicode character\r\n // if its a valid number we can decode\r\n if(c >= -32768 && c <= 65535)\r\n {\r\n // decode every single match within string\r\n d = d.replace(m, String.fromCharCode(c));\r\n }\r\n else\r\n {\r\n d = d.replace(m, ''); //invalid so replace with nada\r\n }\r\n }\r\n }\r\n\r\n return d;\r\n }\r\n\r\n // encode an input string into either numerical or HTML entities\r\n htmlEncode(s:any, dbl:any)\r\n {\r\n if(this.isEmpty(s))\r\n {\r\n return '';\r\n }\r\n\r\n // do we allow double encoding? E.g will & be turned into &amp;\r\n dbl = dbl || false; //default to prevent double encoding\r\n\r\n // if allowing double encoding we do ampersands first\r\n if(dbl)\r\n {\r\n if(this.EncodeType=='numerical')\r\n {\r\n s = s.replace(/&/g, '&');\r\n }\r\n else\r\n {\r\n s = s.replace(/&/g, '&');\r\n }\r\n }\r\n\r\n // convert the xss chars to numerical entities ' ' < >\r\n s = this.XSSEncode(s,false);\r\n\r\n if(this.EncodeType=='numerical' || !dbl)\r\n {\r\n // Now call function that will convert any HTML entities to numerical codes\r\n s = this.HTML2Numerical(s);\r\n }\r\n\r\n // Now encode all chars above 127 e.g unicode\r\n s = this.numEncode(s);\r\n\r\n // now we know anything that needs to be encoded has been converted to numerical entities we\r\n // can encode any ampersands & that are not part of encoded entities\r\n // to handle the fact that I need to do a negative check and handle multiple ampersands &&&\r\n // I am going to use a placeholder\r\n\r\n // if we don't want double encoded entities we ignore the & in existing entities\r\n if(!dbl)\r\n {\r\n s = s.replace(/&#/g,'##AMPHASH##');\r\n\r\n if(this.EncodeType=='numerical')\r\n {\r\n s = s.replace(/&/g, '&');\r\n }\r\n else\r\n {\r\n s = s.replace(/&/g, '&');\r\n }\r\n\r\n s = s.replace(/##AMPHASH##/g,'&#');\r\n }\r\n\r\n // replace any malformed entities\r\n s = s.replace(/&#\\d*([^\\d;]|$)/g, '$1');\r\n\r\n if(!dbl)\r\n {\r\n // safety check to correct any double encoded &\r\n s = this.correctEncoding(s);\r\n }\r\n\r\n // now do we need to convert our numerical encoded string into entities\r\n if(this.EncodeType=='entity')\r\n {\r\n s = this.NumericalToHTML(s);\r\n }\r\n\r\n return s;\r\n }\r\n\r\n // Encodes the basic 4 characters used to malform HTML in XSS hacks\r\n XSSEncode(s:any,en:any)\r\n {\r\n if(!this.isEmpty(s))\r\n {\r\n en = en || true;\r\n // do we convert to numerical or html entity?\r\n if(en)\r\n {\r\n s = s.replace(/'/g,'''); //no HTML equivalent as &apos is not cross browser supported\r\n s = s.replace(/\"/g,'"');\r\n s = s.replace(/</g,'<');\r\n s = s.replace(/>/g,'>');\r\n }\r\n else\r\n {\r\n s = s.replace(/'/g,'''); //no HTML equivalent as &apos is not cross browser supported\r\n s = s.replace(/\"/g,'"');\r\n s = s.replace(/</g,'<');\r\n s = s.replace(/>/g,'>');\r\n }\r\n \r\n return s;\r\n }\r\n else\r\n {\r\n return '';\r\n }\r\n }\r\n\r\n // returns true if a string contains html or numerical encoded entities\r\n hasEncoded(s:any)\r\n {\r\n if(/&#[0-9]{1,5};/g.test(s))\r\n {\r\n return true;\r\n }\r\n else if(/&[A-Z]{2,6};/gi.test(s))\r\n {\r\n return true;\r\n }\r\n else\r\n {\r\n return false;\r\n }\r\n }\r\n\r\n // will remove any unicode characters\r\n stripUnicode(s:any)\r\n {\r\n return s.replace(/[^\\x20-\\x7E]/g,'');\r\n }\r\n\r\n // corrects any double encoded & entities e.g &amp;\r\n correctEncoding(s:any)\r\n {\r\n return s.replace(/(&)(amp;)+/,'$1');\r\n }\r\n\r\n // Function to loop through an array swaping each item with the value from another array e.g swap HTML entities with Numericals\r\n swapArrayVals(s:any,arr1:any,arr2:any)\r\n {\r\n if(this.isEmpty(s))\r\n { \r\n return '';\r\n }\r\n \r\n let re;\r\n \r\n if(arr1 && arr2)\r\n {\r\n //ShowDebug('in swapArrayVals arr1.length = ' + arr1.length + ' arr2.length = ' + arr2.length)\r\n // array lengths must match\r\n if(arr1.length == arr2.length)\r\n {\r\n for(let x=0, i = arr1.length; x < i; x++)\r\n {\r\n re = new RegExp(arr1[x], 'g');\r\n s = s.replace(re,arr2[x]); //swap arr1 item with matching item from arr2\r\n }\r\n }\r\n }\r\n \r\n return s;\r\n }\r\n\r\n inArray( item:any, arr:any ) \r\n {\r\n for ( let i = 0, x = arr.length; i < x; i++ )\r\n {\r\n if ( arr[i] === item )\r\n {\r\n return i;\r\n }\r\n }\r\n \r\n return -1;\r\n }\r\n\r\n}\r\n"]}
|
package/es/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AACzC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAErC,YAAY,CAAC,MAAM,CAAC,EAAE;IAElB,IAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAC/B;
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AACzC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAErC,YAAY,CAAC,MAAM,CAAC,EAAE;IAElB,IAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAC/B,CAAC;QACG,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;IAChC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC","sourcesContent":["import {globalDefine} from './jsDevMode';\r\nimport {isBlank} from './utils/lang';\r\n\r\nglobalDefine(global =>\r\n{\r\n if(isBlank(global['jsDevMode']))\r\n {\r\n global['jsDevMode'] = false;\r\n }\r\n});\r\n\r\nexport * from './jsDevMode';\r\nexport * from './encoder/encoder';\r\nexport * from './paginator/paginator';\r\nexport * from './normalizer/charMaps';\r\nexport * from './normalizer/normalizer';\r\nexport * from './enums/orderByDirection';\r\nexport * from './types/async';\r\nexport * from './types/combineStrings';\r\nexport * from './types/cssProperties';\r\nexport * from './types/dictionaries';\r\nexport * from './types/enums';\r\nexport * from './types/functions';\r\nexport * from './types/invalidatable';\r\nexport * from './types/mixinType';\r\nexport * from './types/mutable';\r\nexport * from './types/pageable';\r\nexport * from './types/pagedData';\r\nexport * from './types/propertyExpressions';\r\nexport * from './types/recursivePartial';\r\nexport * from './types/valueNamePair';\r\nexport * from './types/writable';\r\nexport * from './utils/common';\r\nexport * from './utils/lang';\r\nexport * from './utils/nameof';\r\nexport * from './decorators/bindThis.decorator';\r\nexport * from './decorators/callOnce.decorator';\r\nexport * from './decorators/debounceCall.decorator';\r\nexport * from './decorators/withSync.decorator';\r\nexport * from './decorators/property.decorator';\r\nexport * from './decorators/mixin.decorator';\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paginator.mjs","sourceRoot":"","sources":["../../../src/paginator/paginator.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * Class for paging evaluation\r\n */\r\nexport class Paginator\r\n{\r\n //######################### private fields ######################### \r\n\r\n /**\r\n * First page set to paginator\r\n */\r\n private _base: number = 1;\r\n\r\n /**\r\n * Number of items per page\r\n */\r\n private _itemsPerPage: number = 10;\r\n\r\n /**\r\n * Index of current page\r\n */\r\n private _page: number = 1;\r\n\r\n /**\r\n * Number of all items to be used for counting paging\r\n */\r\n private _itemCount: number = 0;\r\n\r\n //######################### public methods #########################\r\n\r\n /**\r\n * Sets current page number.\r\n * @param page - Page number\r\n * @returns Paginator Provides a fluent interface\r\n */\r\n public setPage(page: number): Paginator\r\n {\r\n this._page = page;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Returns current page number.\r\n * @returns number Current page number\r\n */\r\n public getPage(): number\r\n {\r\n return this._base + this.getPageIndex();\r\n }\r\n\r\n /// <summary>\r\n /// Returns first page number.\r\n /// </summary>\r\n /// <returns>Number of first page</returns>\r\n public getFirstPage(): number\r\n {\r\n return this._base;\r\n }\r\n\r\n /**\r\n * Returns last page number.\r\n * @returns number Number of last page\r\n */\r\n public getLastPage(): number\r\n {\r\n return this._base + Math.max(0, this.getPageCount() - 1);\r\n }\r\n\r\n /**\r\n * Sets first page (base) number.\r\n * @param baseVal - Index of base page\r\n * @returns Paginator Provides a fluent interface\r\n */\r\n public setBase(baseVal: number): Paginator\r\n {\r\n this._base = baseVal;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Returns first page (base) number.\r\n * @returns number Index of base page\r\n */\r\n public getBase(): number\r\n {\r\n return this._base;\r\n }\r\n\r\n /**\r\n * Gets indication whether is the current page the first one?\r\n * @returns boolean True if current page is first one\r\n */\r\n public isFirst(): boolean\r\n {\r\n return this.getPageIndex() == 0;\r\n }\r\n\r\n /**\r\n * Gets indication whether is the current page the last one?\r\n * @returns boolean True if current page is last one, otherwise false\r\n */\r\n public isLast(): boolean\r\n {\r\n return this.getPageIndex() == (this.getPageCount() - 1);\r\n }\r\n\r\n /**\r\n * Returns the total number of pages.\r\n * @returns number Total number of pages\r\n */\r\n public getPageCount(): number\r\n {\r\n return Math.ceil(this._itemCount / this._itemsPerPage);\r\n }\r\n\r\n /**\r\n * Sets the number of items to display on a single page.\r\n * @param itemsPerPage - Number of items per page\r\n * @returns Paginator Provides a fluent interface\r\n */\r\n public setItemsPerPage(itemsPerPage: number): Paginator\r\n {\r\n this._itemsPerPage = Math.max(1, itemsPerPage);\r\n \r\n return this;\r\n }\r\n\r\n /**\r\n * Returns the number of items to display on a single page.\r\n * @returns number Number of items per one page\r\n */\r\n public getItemsPerPage(): number\r\n {\r\n return this._itemsPerPage;\r\n }\r\n\r\n /**\r\n * Sets the total number of items.\r\n * @param itemCount - Count of items or -1 for infinity\r\n * @returns Paginator Provides a fluent interface\r\n */\r\n public setItemCount(itemCount: number): Paginator\r\n {\r\n this._itemCount = itemCount == -1 ? Number.MAX_VALUE : Math.max(0, itemCount);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Returns the total number of items.\r\n * @returns number Total number of items\r\n */\r\n public getItemCount(): number\r\n {\r\n return this._itemCount;\r\n }\r\n\r\n /**\r\n * Returns the absolute index of the first item on current page.\r\n * @returns number Absolute index of first item\r\n */\r\n public getOffset(): number\r\n {\r\n return this.getPageIndex() * this._itemsPerPage;\r\n }\r\n\r\n /**\r\n * Returns the absolute index of the first item on current page in countdown paging.\r\n * @returns number Countdown offset of first item\r\n */\r\n public getCountdownOffset(): number\r\n {\r\n return Math.max(0, this._itemCount - (this.getPageIndex() + 1) * this._itemsPerPage);\r\n }\r\n\r\n /**\r\n * Returns the number of items on current page.\r\n * @returns number Number of items on page\r\n */\r\n public getLength(): number\r\n {\r\n return Math.min(this._itemsPerPage, this._itemCount - this.getPageIndex() * this._itemsPerPage);\r\n }\r\n\r\n /**\r\n * Gets indexes for items on current page (zero-based indexes)\r\n * @returns number Array of items indexes\r\n */\r\n public getIndexesPerPage(): number[]\r\n {\r\n const result: number[] = [];\r\n\r\n if(isNaN(this.getOffset()))\r\n {\r\n for(let x = 0; x < this.getItemCount(); x++)\r\n {\r\n result.push(x);\r\n }\r\n }\r\n else\r\n {\r\n for(let x = this.getOffset(); x < this.getOffset() + this.getLength(); x++)\r\n {\r\n result.push(x);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Gets list of page numbers with specified dispersion\r\n * @param dispersion - Number identifying dispersion\r\n * @returns number Page numbers according specified dispersion\r\n */\r\n public getPagesWithDispersion(dispersion: number): number[]\r\n {\r\n const currentPage = this.getPage();\r\n const pageCount = this.getPageCount();\r\n const numberOfPages = Math.min(pageCount, Math.max(0, dispersion) * 2 + 1) - 1;\r\n let startingPage = Math.max(this._base, currentPage - dispersion);\r\n\r\n if ((currentPage + dispersion) > pageCount)\r\n {\r\n startingPage = pageCount - numberOfPages;\r\n }\r\n\r\n let x: number;\r\n const endingPage = startingPage + numberOfPages;\r\n\r\n const result: number[] = [];\r\n\r\n for (x = startingPage; x <= endingPage; x++)\r\n {\r\n result.push(x);\r\n }\r\n \r\n return result;\r\n }\r\n\r\n /**\r\n * Gets list of page numbers with specified dispersion, pages are trimmed if current page is near beginning or end\r\n * @param dispersion - Number identifying dispersion\r\n * @returns number Page numbers according specified dispersion\r\n */\r\n public getPagesWithTrimDispersion(dispersion: number): number[]\r\n {\r\n const currentPage = this.getPage();\r\n const lastPage = this.getLastPage();\r\n const startingPage = Math.max(this._base, currentPage - dispersion);\r\n let x: number;\r\n const endingPage = Math.min(lastPage, currentPage + dispersion);\r\n\r\n const result: number[] = [];\r\n \r\n for (x = startingPage; x <= endingPage; x++)\r\n {\r\n result.push(x);\r\n }\r\n \r\n return result;\r\n }\r\n\r\n /**\r\n * Gets list of page numbers generated with uniform distribution\r\n * @param numberOfPages - Number of pages that are going to be uniformly distributed between first and last page (including)\r\n * @returns number Uniformly distributed page numbers\r\n */\r\n public getPagesWithUniformDistribution(numberOfPages: number): number[]\r\n {\r\n numberOfPages = Math.max(1, numberOfPages - 1);\r\n const pageCount = this.getPageCount();\r\n numberOfPages = Math.min(numberOfPages, pageCount - 1);\r\n const step = pageCount / numberOfPages;\r\n let page = this.getFirstPage();\r\n let x;\r\n\r\n const result: number[] = [];\r\n\r\n for (x = 0; x < numberOfPages; x++)\r\n {\r\n result.push(Math.round(page));\r\n\r\n page += step;\r\n }\r\n\r\n result.push(pageCount);\r\n \r\n return result;\r\n }\r\n\r\n //######################### protected methods #########################\r\n\r\n /**\r\n * Returns zero-based page number.\r\n * @returns number Zero-based page number\r\n */\r\n protected getPageIndex(): number\r\n {\r\n return Math.min(Math.max(0, this._page - this._base), Math.max(0, this.getPageCount() - 1));\r\n }\r\n}"]}
|
|
1
|
+
{"version":3,"file":"paginator.mjs","sourceRoot":"","sources":["../../../src/paginator/paginator.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * Class for paging evaluation\r\n */\r\nexport class Paginator\r\n{\r\n //######################### private fields ######################### \r\n\r\n /**\r\n * First page set to paginator\r\n */\r\n private _base: number = 1;\r\n\r\n /**\r\n * Number of items per page\r\n */\r\n private _itemsPerPage: number = 10;\r\n\r\n /**\r\n * Index of current page\r\n */\r\n private _page: number = 1;\r\n\r\n /**\r\n * Number of all items to be used for counting paging\r\n */\r\n private _itemCount: number = 0;\r\n\r\n //######################### public methods #########################\r\n\r\n /**\r\n * Sets current page number.\r\n * @param page - Page number\r\n * @returns Paginator Provides a fluent interface\r\n */\r\n public setPage(page: number): Paginator\r\n {\r\n this._page = page;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Returns current page number.\r\n * @returns number Current page number\r\n */\r\n public getPage(): number\r\n {\r\n return this._base + this.getPageIndex();\r\n }\r\n\r\n /// <summary>\r\n /// Returns first page number.\r\n /// </summary>\r\n /// <returns>Number of first page</returns>\r\n public getFirstPage(): number\r\n {\r\n return this._base;\r\n }\r\n\r\n /**\r\n * Returns last page number.\r\n * @returns number Number of last page\r\n */\r\n public getLastPage(): number\r\n {\r\n return this._base + Math.max(0, this.getPageCount() - 1);\r\n }\r\n\r\n /**\r\n * Sets first page (base) number.\r\n * @param baseVal - Index of base page\r\n * @returns Paginator Provides a fluent interface\r\n */\r\n public setBase(baseVal: number): Paginator\r\n {\r\n this._base = baseVal;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Returns first page (base) number.\r\n * @returns number Index of base page\r\n */\r\n public getBase(): number\r\n {\r\n return this._base;\r\n }\r\n\r\n /**\r\n * Gets indication whether is the current page the first one?\r\n * @returns boolean True if current page is first one\r\n */\r\n public isFirst(): boolean\r\n {\r\n return this.getPageIndex() == 0;\r\n }\r\n\r\n /**\r\n * Gets indication whether is the current page the last one?\r\n * @returns boolean True if current page is last one, otherwise false\r\n */\r\n public isLast(): boolean\r\n {\r\n return this.getPageIndex() == (this.getPageCount() - 1);\r\n }\r\n\r\n /**\r\n * Returns the total number of pages.\r\n * @returns number Total number of pages\r\n */\r\n public getPageCount(): number\r\n {\r\n return Math.ceil(this._itemCount / this._itemsPerPage);\r\n }\r\n\r\n /**\r\n * Sets the number of items to display on a single page.\r\n * @param itemsPerPage - Number of items per page\r\n * @returns Paginator Provides a fluent interface\r\n */\r\n public setItemsPerPage(itemsPerPage: number): Paginator\r\n {\r\n this._itemsPerPage = Math.max(1, itemsPerPage);\r\n \r\n return this;\r\n }\r\n\r\n /**\r\n * Returns the number of items to display on a single page.\r\n * @returns number Number of items per one page\r\n */\r\n public getItemsPerPage(): number\r\n {\r\n return this._itemsPerPage;\r\n }\r\n\r\n /**\r\n * Sets the total number of items.\r\n * @param itemCount - Count of items or -1 for infinity\r\n * @returns Paginator Provides a fluent interface\r\n */\r\n public setItemCount(itemCount: number): Paginator\r\n {\r\n this._itemCount = itemCount == -1 ? Number.MAX_VALUE : Math.max(0, itemCount);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Returns the total number of items.\r\n * @returns number Total number of items\r\n */\r\n public getItemCount(): number\r\n {\r\n return this._itemCount;\r\n }\r\n\r\n /**\r\n * Returns the absolute index of the first item on current page.\r\n * @returns number Absolute index of first item\r\n */\r\n public getOffset(): number\r\n {\r\n return this.getPageIndex() * this._itemsPerPage;\r\n }\r\n\r\n /**\r\n * Returns the absolute index of the first item on current page in countdown paging.\r\n * @returns number Countdown offset of first item\r\n */\r\n public getCountdownOffset(): number\r\n {\r\n return Math.max(0, this._itemCount - (this.getPageIndex() + 1) * this._itemsPerPage);\r\n }\r\n\r\n /**\r\n * Returns the number of items on current page.\r\n * @returns number Number of items on page\r\n */\r\n public getLength(): number\r\n {\r\n return Math.min(this._itemsPerPage, this._itemCount - this.getPageIndex() * this._itemsPerPage);\r\n }\r\n\r\n /**\r\n * Gets indexes for items on current page (zero-based indexes)\r\n * @returns number Array of items indexes\r\n */\r\n public getIndexesPerPage(): number[]\r\n {\r\n const result: number[] = [];\r\n\r\n if(isNaN(this.getOffset()))\r\n {\r\n for(let x = 0; x < this.getItemCount(); x++)\r\n {\r\n result.push(x);\r\n }\r\n }\r\n else\r\n {\r\n for(let x = this.getOffset(); x < this.getOffset() + this.getLength(); x++)\r\n {\r\n result.push(x);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Gets list of page numbers with specified dispersion\r\n * @param dispersion - Number identifying dispersion\r\n * @returns number Page numbers according specified dispersion\r\n */\r\n public getPagesWithDispersion(dispersion: number): number[]\r\n {\r\n const currentPage = this.getPage();\r\n const pageCount = this.getPageCount();\r\n const numberOfPages = Math.min(pageCount, Math.max(0, dispersion) * 2 + 1) - 1;\r\n let startingPage = Math.max(this._base, currentPage - dispersion);\r\n\r\n if ((currentPage + dispersion) > pageCount)\r\n {\r\n startingPage = pageCount - numberOfPages;\r\n }\r\n\r\n let x: number;\r\n const endingPage = startingPage + numberOfPages;\r\n\r\n const result: number[] = [];\r\n\r\n for (x = startingPage; x <= endingPage; x++)\r\n {\r\n result.push(x);\r\n }\r\n \r\n return result;\r\n }\r\n\r\n /**\r\n * Gets list of page numbers with specified dispersion, pages are trimmed if current page is near beginning or end\r\n * @param dispersion - Number identifying dispersion\r\n * @returns number Page numbers according specified dispersion\r\n */\r\n public getPagesWithTrimDispersion(dispersion: number): number[]\r\n {\r\n const currentPage = this.getPage();\r\n const lastPage = this.getLastPage();\r\n const startingPage = Math.max(this._base, currentPage - dispersion);\r\n let x: number;\r\n const endingPage = Math.min(lastPage, currentPage + dispersion);\r\n\r\n const result: number[] = [];\r\n \r\n for (x = startingPage; x <= endingPage; x++)\r\n {\r\n result.push(x);\r\n }\r\n \r\n return result;\r\n }\r\n\r\n /**\r\n * Gets list of page numbers generated with uniform distribution\r\n * @param numberOfPages - Number of pages that are going to be uniformly distributed between first and last page (including)\r\n * @returns number Uniformly distributed page numbers\r\n */\r\n public getPagesWithUniformDistribution(numberOfPages: number): number[]\r\n {\r\n numberOfPages = Math.max(1, numberOfPages - 1);\r\n const pageCount = this.getPageCount();\r\n numberOfPages = Math.min(numberOfPages, pageCount - 1);\r\n const step = pageCount / numberOfPages;\r\n let page = this.getFirstPage();\r\n let x;\r\n\r\n const result: number[] = [];\r\n\r\n for (x = 0; x < numberOfPages; x++)\r\n {\r\n result.push(Math.round(page));\r\n\r\n page += step;\r\n }\r\n\r\n result.push(pageCount);\r\n \r\n return result;\r\n }\r\n\r\n //######################### protected methods #########################\r\n\r\n /**\r\n * Returns zero-based page number.\r\n * @returns number Zero-based page number\r\n */\r\n protected getPageIndex(): number\r\n {\r\n return Math.min(Math.max(0, this._page - this._base), Math.max(0, this.getPageCount() - 1));\r\n }\r\n}"]}
|