@vpmedia/simplify 1.15.0 → 1.17.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/README.md +1 -1
- package/lefthook.yml +0 -4
- package/package.json +12 -14
- package/src/index.js +2 -1
- package/src/pagelifecycle/util.js +11 -8
- package/src/util/fetchRetry.js +2 -1
- package/src/util/loadJSON.js +10 -0
- package/types/const/http_status.d.ts.map +1 -1
- package/types/index.d.ts +2 -1
- package/types/logging/Logger.d.ts.map +1 -1
- package/types/pagelifecycle/const.d.ts.map +1 -1
- package/types/pagelifecycle/event.d.ts.map +1 -1
- package/types/pagelifecycle/typedef.d.ts.map +1 -1
- package/types/pagelifecycle/util.d.ts.map +1 -1
- package/types/util/fetchRetry.d.ts.map +1 -1
- package/types/util/loadJSON.d.ts +7 -0
- package/types/util/loadJSON.d.ts.map +1 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @vpmedia/simplify
|
|
2
2
|
|
|
3
|
-
[](https://badge.fury.io/js/@vpmedia%2Fsimplify)
|
|
4
4
|
[](https://github.com/vpmedia/simplify/actions/workflows/ci.yml)
|
|
5
5
|
|
|
6
6
|
@vpmedia/simplify TBD
|
package/lefthook.yml
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vpmedia/simplify",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.17.0",
|
|
4
4
|
"description": "@vpmedia/simplify",
|
|
5
5
|
"author": "Andras Csizmadia <andras@vpmedia.hu> (www.vpmedia.hu)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -19,32 +19,30 @@
|
|
|
19
19
|
"types": "./types/index.d.ts",
|
|
20
20
|
"type": "module",
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"@babel/preset-env": "^7.26.
|
|
23
|
-
"@eslint/js": "^9.
|
|
22
|
+
"@babel/preset-env": "^7.26.9",
|
|
23
|
+
"@eslint/js": "^9.21.0",
|
|
24
24
|
"@jest/globals": "^29.7.0",
|
|
25
25
|
"@types/jest": "^29.5.14",
|
|
26
|
-
"eslint": "^9.
|
|
27
|
-
"eslint-plugin-jsdoc": "^50.
|
|
28
|
-
"eslint-plugin-unicorn": "^
|
|
29
|
-
"globals": "^
|
|
26
|
+
"eslint": "^9.22.0",
|
|
27
|
+
"eslint-plugin-jsdoc": "^50.6.3",
|
|
28
|
+
"eslint-plugin-unicorn": "^57.0.0",
|
|
29
|
+
"globals": "^16.0.0",
|
|
30
30
|
"jest": "^29.7.0",
|
|
31
31
|
"jest-environment-jsdom": "^29.7.0",
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"typescript": "^5.6.3"
|
|
32
|
+
"prettier": "^3.5.3",
|
|
33
|
+
"typescript": "^5.8.2"
|
|
35
34
|
},
|
|
36
35
|
"scripts": {
|
|
37
36
|
"test": "NODE_OPTIONS=--experimental-vm-modules jest --passWithNoTests",
|
|
38
37
|
"lint": "eslint \"**/*.{js,jsx}\"",
|
|
39
38
|
"typecheck": "tsc",
|
|
40
|
-
"format": "prettier --write \"./**/*.{js,jsx,mjs,cjs,ts,tsx,json,md,css}\""
|
|
41
|
-
"lefthook:install": "lefthook install",
|
|
42
|
-
"lefthook:uninstall": "lefthook uninstall"
|
|
39
|
+
"format": "prettier --write \"./**/*.{js,jsx,mjs,cjs,ts,tsx,json,md,css}\""
|
|
43
40
|
},
|
|
44
41
|
"browserslist": [
|
|
45
42
|
"> 0.5%",
|
|
46
43
|
"not dead",
|
|
47
|
-
"not op_mini all"
|
|
44
|
+
"not op_mini all",
|
|
45
|
+
"iOS >= 14"
|
|
48
46
|
],
|
|
49
47
|
"dependencies": {
|
|
50
48
|
"eventemitter3": "^5.0.1"
|
package/src/index.js
CHANGED
|
@@ -9,11 +9,12 @@ export { addLeadingZero } from './util/addLeadingZero.js';
|
|
|
9
9
|
export { capitalize } from './util/capitalize.js';
|
|
10
10
|
export { deg2rad } from './util/deg2rad.js';
|
|
11
11
|
export { delayPromise } from './util/delayPromise.js';
|
|
12
|
-
export { FetchError,
|
|
12
|
+
export { FetchError, fetchRetry, HTTP_0_ANY } from './util/fetchRetry.js';
|
|
13
13
|
export { fixFloatPrecision } from './util/fixFloatPrecision.js';
|
|
14
14
|
export { getObjValueByPath } from './util/getObjValueByPath.js';
|
|
15
15
|
export { getRandomInt } from './util/getRandomInt.js';
|
|
16
16
|
export { getURLParam } from './util/getURLParam.js';
|
|
17
|
+
export { loadJSON } from './util/loadJSON.js';
|
|
17
18
|
export { purgeObject } from './util/purgeObject.js';
|
|
18
19
|
export { addFloat, fixFloat, subFloat } from './util/safeFloat.js';
|
|
19
20
|
export { sanitizeURLParam } from './util/sanitizeURLParam.js';
|
|
@@ -109,21 +109,24 @@ export const initPageLifecycle = () => {
|
|
|
109
109
|
return;
|
|
110
110
|
}
|
|
111
111
|
logger.info('initPageLifecycle');
|
|
112
|
-
// DEV: capturing events are mandatory to propagate events to root window
|
|
113
|
-
const options = { capture: true };
|
|
114
112
|
onPageLifecycleStateChange(detectPageLifecycleState());
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
window.addEventListener('
|
|
113
|
+
onDocumentStateChange(document.readyState);
|
|
114
|
+
const options = { capture: true };
|
|
115
|
+
document.addEventListener('visibilitychange', () => onPageLifecycleStateChange(detectPageLifecycleState()), options);
|
|
116
|
+
// window.addEventListener('popstate', () => onPageLifecycleStateChange(detectPageLifecycleState()), options);
|
|
117
|
+
window.addEventListener('pageshow', () => onPageLifecycleStateChange(detectPageLifecycleState()), options);
|
|
118
|
+
window.addEventListener('focus', () => onPageLifecycleStateChange(detectPageLifecycleState()), options);
|
|
119
|
+
window.addEventListener('blur', () => onPageLifecycleStateChange(detectPageLifecycleState()), options);
|
|
120
|
+
document.addEventListener('resume', () => onPageLifecycleStateChange(detectPageLifecycleState()), options);
|
|
121
|
+
document.addEventListener('freeze', () => onPageLifecycleStateChange(PAGE_LIFECYCLE_STATE_FROZEN), options);
|
|
119
122
|
window.addEventListener(
|
|
120
123
|
'pagehide',
|
|
121
124
|
(event) =>
|
|
122
125
|
onPageLifecycleStateChange(event.persisted ? PAGE_LIFECYCLE_STATE_FROZEN : PAGE_LIFECYCLE_STATE_TERMINATED),
|
|
123
126
|
options
|
|
124
127
|
);
|
|
125
|
-
|
|
126
|
-
|
|
128
|
+
document.addEventListener('DOMContentLoaded', () => onDocumentStateChange(DOCUMENT_STATE_DOM_LOADED), options);
|
|
129
|
+
document.addEventListener('readystatechange', () => onDocumentStateChange(document.readyState), options);
|
|
127
130
|
window.addEventListener('load', () => onDocumentStateChange(DOCUMENT_STATE_FULLY_LOADED), options);
|
|
128
131
|
isInitialized = true;
|
|
129
132
|
};
|
package/src/util/fetchRetry.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HTTP_401_UNAUTHORIZED, HTTP_403_FORBIDDEN, HTTP_405_METHOD_NOT_ALLOWED } from '../const/http_status.js';
|
|
1
|
+
import { HTTP_401_UNAUTHORIZED, HTTP_403_FORBIDDEN, HTTP_405_METHOD_NOT_ALLOWED, HTTP_422_UNPROCESSABLE_ENTITY } from '../const/http_status.js';
|
|
2
2
|
import { Logger } from '../logging/Logger.js';
|
|
3
3
|
import { delayPromise } from './delayPromise.js';
|
|
4
4
|
|
|
@@ -38,6 +38,7 @@ export const fetchRetry = async (resource, fetchOptions, retryOptions) => {
|
|
|
38
38
|
HTTP_401_UNAUTHORIZED,
|
|
39
39
|
HTTP_403_FORBIDDEN,
|
|
40
40
|
HTTP_405_METHOD_NOT_ALLOWED,
|
|
41
|
+
HTTP_422_UNPROCESSABLE_ENTITY,
|
|
41
42
|
];
|
|
42
43
|
while (retryOptions.numTries > 0) {
|
|
43
44
|
logger.info('request', { resource, fetchOptions, retryOptions });
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Load JSON file using a fetch GET request.
|
|
3
|
+
* @param {string} url - URL to load.
|
|
4
|
+
* @returns {Promise<string>} The parsed JSON data.
|
|
5
|
+
*/
|
|
6
|
+
export async function loadJSON(url) {
|
|
7
|
+
const response = await fetch(url);
|
|
8
|
+
const json = await response.json();
|
|
9
|
+
return JSON.stringify(json);
|
|
10
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http_status.d.ts","sourceRoot":"","sources":["../../src/const/http_status.js"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"http_status.d.ts","sourceRoot":"","sources":["../../src/const/http_status.js"],"names":[],"mappings":"AAAA,gCAAiC,GAAG,CAAC;AACrC,2CAA4C,GAAG,CAAC;AAChD,kCAAmC,GAAG,CAAC;AACvC,mCAAoC,GAAG,CAAC;AACxC,0BAA2B,GAAG,CAAC;AAC/B,+BAAgC,GAAG,CAAC;AACpC,gCAAiC,GAAG,CAAC;AACrC,qDAAsD,GAAG,CAAC;AAC1D,kCAAmC,GAAG,CAAC;AACvC,qCAAsC,GAAG,CAAC;AAC1C,uCAAwC,GAAG,CAAC;AAC5C,oCAAqC,GAAG,CAAC;AACzC,wCAAyC,GAAG,CAAC;AAC7C,+BAAgC,GAAG,CAAC;AACpC,wCAAyC,GAAG,CAAC;AAC7C,yCAA0C,GAAG,CAAC;AAC9C,6BAA8B,GAAG,CAAC;AAClC,iCAAkC,GAAG,CAAC;AACtC,oCAAqC,GAAG,CAAC;AACzC,iCAAkC,GAAG,CAAC;AACtC,gCAAiC,GAAG,CAAC;AACrC,0CAA2C,GAAG,CAAC;AAC/C,0CAA2C,GAAG,CAAC;AAC/C,mCAAoC,GAAG,CAAC;AACxC,oCAAqC,GAAG,CAAC;AACzC,wCAAyC,GAAG,CAAC;AAC7C,iCAAkC,GAAG,CAAC;AACtC,iCAAkC,GAAG,CAAC;AACtC,0CAA2C,GAAG,CAAC;AAC/C,sCAAuC,GAAG,CAAC;AAC3C,qDAAsD,GAAG,CAAC;AAC1D,uCAAwC,GAAG,CAAC;AAC5C,gCAAiC,GAAG,CAAC;AACrC,4BAA6B,GAAG,CAAC;AACjC,uCAAwC,GAAG,CAAC;AAC5C,2CAA4C,GAAG,CAAC;AAChD,gDAAiD,GAAG,CAAC;AACrD,4CAA6C,GAAG,CAAC;AACjD,8CAA+C,GAAG,CAAC;AACnD,uDAAwD,GAAG,CAAC;AAC5D,0CAA2C,GAAG,CAAC;AAC/C,mCAAoC,GAAG,CAAC;AACxC,2CAA4C,GAAG,CAAC;AAChD,4CAA6C,GAAG,CAAC;AACjD,8BAA+B,GAAG,CAAC;AACnC,yCAA0C,GAAG,CAAC;AAC9C,iCAAkC,GAAG,CAAC;AACtC,wCAAyC,GAAG,CAAC;AAC7C,6CAA8C,GAAG,CAAC;AAClD,yCAA0C,GAAG,CAAC;AAC9C,gDAAiD,GAAG,CAAC;AACrD,uDAAwD,GAAG,CAAC;AAC5D,qDAAsD,GAAG,CAAC;AAC1D,6CAA8C,GAAG,CAAC;AAClD,uCAAwC,GAAG,CAAC;AAC5C,mCAAoC,GAAG,CAAC;AACxC,2CAA4C,GAAG,CAAC;AAChD,uCAAwC,GAAG,CAAC;AAC5C,kDAAmD,GAAG,CAAC;AACvD,+CAAgD,GAAG,CAAC;AACpD,4CAA6C,GAAG,CAAC;AACjD,qCAAsC,GAAG,CAAC;AAC1C,oCAAqC,GAAG,CAAC;AACzC,uDAAwD,GAAG,CAAC"}
|
package/types/index.d.ts
CHANGED
|
@@ -12,11 +12,12 @@ export { fixFloatPrecision } from "./util/fixFloatPrecision.js";
|
|
|
12
12
|
export { getObjValueByPath } from "./util/getObjValueByPath.js";
|
|
13
13
|
export { getRandomInt } from "./util/getRandomInt.js";
|
|
14
14
|
export { getURLParam } from "./util/getURLParam.js";
|
|
15
|
+
export { loadJSON } from "./util/loadJSON.js";
|
|
15
16
|
export { purgeObject } from "./util/purgeObject.js";
|
|
16
17
|
export { sanitizeURLParam } from "./util/sanitizeURLParam.js";
|
|
17
18
|
export { saveAsFile } from "./util/saveAsFile.js";
|
|
18
19
|
export { setObjValueByPath } from "./util/setObjValueByPath.js";
|
|
19
20
|
export { underscoreToCamelCase } from "./util/underscoreToCamelCase.js";
|
|
20
|
-
export { FetchError,
|
|
21
|
+
export { FetchError, fetchRetry, HTTP_0_ANY } from "./util/fetchRetry.js";
|
|
21
22
|
export { addFloat, fixFloat, subFloat } from "./util/safeFloat.js";
|
|
22
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/logging/Logger.js"],"names":[],"mappings":"AAGA,
|
|
1
|
+
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/logging/Logger.js"],"names":[],"mappings":"AAGA,0BAA2B,CAAC,CAAC;AAC7B,yBAA0B,CAAC,CAAC;AAC5B,yBAA0B,CAAC,CAAC;AAC5B,0BAA2B,CAAC,CAAC;AAC7B,2BAA4B,CAAC,CAAC;AAE9B;IACE;;OAEG;IACH,yBAFU,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAED;IAC/B;;OAEG;IACH,6BAFU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAElD;IAEnC;;;OAGG;IACH,kBAFW,MAAM,EAShB;IANC,aAAgB;IAKhB,cAAkG;IAGpG;;;;OAIG;IACH,eAHW,MAAM,cACN,MAAM,QAehB;IAED;;;;OAIG;IACH,cAHW,MAAM,cACN,MAAM,QAehB;IAED;;;;OAIG;IACH,cAHW,MAAM,cACN,MAAM,QAehB;IAED;;;;OAIG;IACH,eAHW,MAAM,cACN,MAAM,QAehB;IAED;;;;OAIG;IACH,mBAHW,MAAM,aACN,KAAK,QAWf;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../src/pagelifecycle/const.js"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../src/pagelifecycle/const.js"],"names":[],"mappings":"AAAA,0CAA2C,QAAQ,CAAC;AACpD,0CAA2C,QAAQ,CAAC;AACpD,2CAA4C,SAAS,CAAC;AACtD,0CAA2C,QAAQ,CAAC;AACpD,8CAA+C,YAAY,CAAC;AAE5D,wCAAyC,WAAW,CAAC;AACrD,0CAA2C,aAAa,CAAC;AACzD,sCAAuC,UAAU,CAAC;AAClD,yCAA0C,aAAa,CAAC;AACxD,qCAAsC,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/pagelifecycle/event.js"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/pagelifecycle/event.js"],"names":[],"mappings":"AAAA,gDAAiD,0BAA0B,CAAC;AAC5E,0CAA2C,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typedef.d.ts","sourceRoot":"","sources":["../../src/pagelifecycle/typedef.js"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"typedef.d.ts","sourceRoot":"","sources":["../../src/pagelifecycle/typedef.js"],"names":[],"mappings":"AAAA,sBAAuB,IAAI,CAAC;iCAGf,QAAgD,GAAG,QAAgD,GAAG,SAAiD,GAAG,QAAgD,GAAG,YAAoD;4BAIjQ,SAA2C,GAAG,aAA+C,GAAG,UAA4C,GAAG,WAA8C,GAAG,aAAgD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/pagelifecycle/util.js"],"names":[],"mappings":"AAsCO,gDAHI,OAAO,cAAc,EAAE,aAAa,GAAG,OAAO,cAAc,EAAE,kBAAkB,YAChF,MAAM,IAAI,QAMpB;AAgEM,
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/pagelifecycle/util.js"],"names":[],"mappings":"AAsCO,gDAHI,OAAO,cAAc,EAAE,aAAa,GAAG,OAAO,cAAc,EAAE,kBAAkB,YAChF,MAAM,IAAI,QAMpB;AAgEM,0CAyBN;AAMM,yCAFM,MAAM,CAIlB;AAMM,oCAFM,OAAO,cAAc,EAAE,aAAa,CAIhD;AAMM,gDAFM,YAAY,CAOxB;AAMM,8CAFM,OAAO,CAInB;6BAjK4B,eAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchRetry.d.ts","sourceRoot":"","sources":["../../src/util/fetchRetry.js"],"names":[],"mappings":"AAMA,
|
|
1
|
+
{"version":3,"file":"fetchRetry.d.ts","sourceRoot":"","sources":["../../src/util/fetchRetry.js"],"names":[],"mappings":"AAMA,yBAA0B,CAAC,CAAC;AAE5B;IACE;;;;;;OAMG;IACH,qBALW,MAAM,YACN,MAAM,GAAG,GAAG,GAAG,OAAO,gBACtB,WAAW,YACX,QAAQ,EAQlB;IAHC,iCAAwB;IACxB,0BAAgC;IAChC,mBAAwB;CAE3B;AASM,qCALI,MAAM,GAAG,GAAG,GAAG,OAAO,iBACtB,WAAW,iBACX;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAAC,GAC5D,OAAO,CAAC,QAAQ,CAAC,CA2C7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadJSON.d.ts","sourceRoot":"","sources":["../../src/util/loadJSON.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,8BAHW,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,CAM3B"}
|