@ygracs/xepg-lib-js 0.0.24 → 0.0.25
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 +13 -0
- package/README.md +3 -2
- package/doc/xepgdoc-lib.md +13 -17
- package/index.js +7 -4
- package/lib/xepgdoc-lib.js +12 -105
- package/lib/xml-base.js +133 -0
- package/package.json +8 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
#### *v0.0.25*
|
|
2
|
+
|
|
3
|
+
Pre-release version.
|
|
4
|
+
|
|
5
|
+
> - update `xepgdoc-lib.md`;
|
|
6
|
+
> - update dependency on `@ygracs/bsfoc-lib-js` module to v0.3.0;
|
|
7
|
+
> - update dependency on `@ygracs/dtf-lib-js` module to v0.0.30;
|
|
8
|
+
> - update dependency on `@ygracs/xobj-lib-js` module to v0.2.4;
|
|
9
|
+
> - move some functions from `$lib/xepgdoc-lib.js` into new `$lib/xml-base.js` module;
|
|
10
|
+
> - add function: `readAsAttrValue`;
|
|
11
|
+
> - (`TXEpgHeaderContainer`) remove deprecated property: `Provider`;
|
|
12
|
+
> - (`TXEpgContentProvider`) remove deprecated properties: `Header`, `Provider`.
|
|
13
|
+
|
|
1
14
|
#### *v0.0.24*
|
|
2
15
|
|
|
3
16
|
Pre-release version.
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|***rev.*:**|0.0.
|
|
1
|
+
|***rev.*:**|0.0.11|
|
|
2
2
|
|:---|---:|
|
|
3
|
-
|***date***:|2025-
|
|
3
|
+
|***date***:|2025-08-25|
|
|
4
4
|
|
|
5
5
|
## Introduction
|
|
6
6
|
|
|
@@ -20,6 +20,7 @@ This module contains the following components:
|
|
|
20
20
|
|
|
21
21
|
+ `readAsTagName`;
|
|
22
22
|
+ `readAsAttrName`;
|
|
23
|
+
+ `readAsAttrValue`;
|
|
23
24
|
+ `valueToElementID`;
|
|
24
25
|
|
|
25
26
|
- classes:
|
package/doc/xepgdoc-lib.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|***rev.*:**|0.1.
|
|
1
|
+
|***rev.*:**|0.1.43|
|
|
2
2
|
|:---|---:|
|
|
3
|
-
|***date***:|2025-
|
|
3
|
+
|***date***:|2025-08-25|
|
|
4
4
|
|
|
5
5
|
## Introduction
|
|
6
6
|
|
|
@@ -91,6 +91,17 @@ This function tries to convert a given `value` to the value of type which is sui
|
|
|
91
91
|
|:---|---|---:|:---|
|
|
92
92
|
| `value` | `any` | --- | some value to read |
|
|
93
93
|
|
|
94
|
+
<a name="readAsAttrValue"></a>
|
|
95
|
+
#### **readAsAttrValue(value)** => `string`
|
|
96
|
+
|
|
97
|
+
> since: \[`v0.0.25`]
|
|
98
|
+
|
|
99
|
+
This function tries to convert a given `value` to the value of type which is suitable for an XML-element's attribute. If failed a `null` is returned.
|
|
100
|
+
|
|
101
|
+
| parameter name | value type | default value | description |
|
|
102
|
+
|:---|---|---:|:---|
|
|
103
|
+
| `value` | `any` | --- | some value |
|
|
104
|
+
|
|
94
105
|
<a name="valueToElementID"></a>
|
|
95
106
|
#### **valueToElementID(value)**
|
|
96
107
|
|
|
@@ -670,11 +681,6 @@ The `options` structure is listed below:
|
|
|
670
681
|
|---|---|:---|
|
|
671
682
|
| `number` | no | defines a current TimeZone |
|
|
672
683
|
|
|
673
|
-
<a name="TXEpgHeaderContainer+Provider"></a>
|
|
674
|
-
##### **Provider**
|
|
675
|
-
|
|
676
|
-
> \[!] NOTE: `[since v0.0.22]` deprecated. Use [`provider` property](#TXEpgHeaderContainer+provider) instead.
|
|
677
|
-
|
|
678
684
|
<a name="TXEpgHeaderContainer+provider"></a>
|
|
679
685
|
##### **provider**
|
|
680
686
|
|
|
@@ -822,11 +828,6 @@ The `options` structure is listed below:
|
|
|
822
828
|
|
|
823
829
|
#### class properties
|
|
824
830
|
|
|
825
|
-
<a name="TXEpgContentProvider+Header"></a>
|
|
826
|
-
##### **Header**
|
|
827
|
-
|
|
828
|
-
> \[!] NOTE: `[since v0.0.22]` deprecated. Use [`header` property](#TXEpgContentProvider+header) instead.
|
|
829
|
-
|
|
830
831
|
<a name="TXEpgContentProvider+header"></a>
|
|
831
832
|
##### **header**
|
|
832
833
|
|
|
@@ -836,11 +837,6 @@ The `options` structure is listed below:
|
|
|
836
837
|
|---|---|:---|
|
|
837
838
|
| `TXEpgHeaderContainer` | yes | returns a `TXEpgHeaderContainer` instance |
|
|
838
839
|
|
|
839
|
-
<a name="TXEpgContentProvider+Provider"></a>
|
|
840
|
-
##### **Provider**
|
|
841
|
-
|
|
842
|
-
> \[!] NOTE: `[since v0.0.22]` deprecated. Use [`provider` property](#TXEpgContentProvider+provider) instead.
|
|
843
|
-
|
|
844
840
|
<a name="TXEpgContentProvider+provider"></a>
|
|
845
841
|
##### **provider**
|
|
846
842
|
|
package/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// [v0.1.
|
|
1
|
+
// [v0.1.014-20250825]
|
|
2
2
|
|
|
3
3
|
// === module init block ===
|
|
4
4
|
|
|
@@ -6,6 +6,8 @@ const xepgdoc = require('./lib/xepgdoc-lib.js');
|
|
|
6
6
|
|
|
7
7
|
const xObj = require('@ygracs/xobj-lib-js');
|
|
8
8
|
|
|
9
|
+
const xmlBase = require('./lib/xml-base');
|
|
10
|
+
|
|
9
11
|
// === module inner block ===
|
|
10
12
|
|
|
11
13
|
// === module main block ===
|
|
@@ -20,9 +22,10 @@ module.exports.TXEpgDTSProvider = xepgdoc.TXEpgDTSProvider;
|
|
|
20
22
|
module.exports.TXEpgProviderContainer = xepgdoc.TXEpgProviderContainer;
|
|
21
23
|
module.exports.TXEpgHeaderContainer = xepgdoc.TXEpgHeaderContainer;
|
|
22
24
|
|
|
23
|
-
module.exports.readAsTagName =
|
|
24
|
-
module.exports.readAsAttrName =
|
|
25
|
-
module.exports.
|
|
25
|
+
module.exports.readAsTagName = xmlBase.readAsTagName;
|
|
26
|
+
module.exports.readAsAttrName = xmlBase.readAsAttrName;
|
|
27
|
+
module.exports.readAsAttrValue = xmlBase.readAsAttrValue;
|
|
28
|
+
module.exports.valueToElementID = xmlBase.valueToElementID;
|
|
26
29
|
|
|
27
30
|
// re-export stuff from `@ygracs/xobj-lib-js` module
|
|
28
31
|
module.exports.TXmlContentParseOptions = xObj.TXmlContentParseOptions;
|
package/lib/xepgdoc-lib.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// [v0.2.
|
|
1
|
+
// [v0.2.128-20250825]
|
|
2
2
|
|
|
3
3
|
// === module init block ===
|
|
4
4
|
|
|
@@ -36,6 +36,12 @@ const {
|
|
|
36
36
|
writeXObjAttr,
|
|
37
37
|
} = xObj;
|
|
38
38
|
|
|
39
|
+
const {
|
|
40
|
+
readAsTagName,
|
|
41
|
+
readAsAttrName,
|
|
42
|
+
valueToElementID,
|
|
43
|
+
} = require('./xml-base');
|
|
44
|
+
|
|
39
45
|
// === module inner block ===
|
|
40
46
|
|
|
41
47
|
/*
|
|
@@ -252,73 +258,6 @@ const defParseOptions = new TXmlContentParseOptions();
|
|
|
252
258
|
* (* function definitions *)
|
|
253
259
|
*/
|
|
254
260
|
|
|
255
|
-
/**
|
|
256
|
-
* Tries to convert a given value to a valid tag name of an XML-element.
|
|
257
|
-
* @since v0.0.23
|
|
258
|
-
* @function readAsTagName
|
|
259
|
-
* @param {any} value - some value
|
|
260
|
-
* @returns {string}
|
|
261
|
-
*/
|
|
262
|
-
function readAsTagName(value) {
|
|
263
|
-
let tagName = valueToIDString(value, { ignoreNumbers: true });
|
|
264
|
-
if (tagName === null) return '';
|
|
265
|
-
if (tagName !== '') {
|
|
266
|
-
// // TODO: do extra checks
|
|
267
|
-
const template = /[\s\/\\\"\'<>=]/;
|
|
268
|
-
const trigger = tagName.match(template);
|
|
269
|
-
if (trigger) {
|
|
270
|
-
//console.log(trigger);
|
|
271
|
-
tagName = '';
|
|
272
|
-
};
|
|
273
|
-
};
|
|
274
|
-
return tagName;
|
|
275
|
-
};
|
|
276
|
-
|
|
277
|
-
/**
|
|
278
|
-
* Tries to convert a given value to a valid name of an XML-attribute.
|
|
279
|
-
* @since v0.0.23
|
|
280
|
-
* @function readAsAttrName
|
|
281
|
-
* @param {any} value - some value
|
|
282
|
-
* @returns {string}
|
|
283
|
-
*/
|
|
284
|
-
function readAsAttrName(value) {
|
|
285
|
-
let attrName = valueToIDString(value, { ignoreNumbers: true });
|
|
286
|
-
if (attrName === null) return '';
|
|
287
|
-
if (attrName !== '') {
|
|
288
|
-
// // TODO: do extra checks
|
|
289
|
-
const template = /[\s\/\\\"\'<>=]/;
|
|
290
|
-
const trigger = attrName.match(template);
|
|
291
|
-
if (trigger) {
|
|
292
|
-
//console.log(trigger);
|
|
293
|
-
attrName = '';
|
|
294
|
-
};
|
|
295
|
-
};
|
|
296
|
-
return attrName;
|
|
297
|
-
};
|
|
298
|
-
|
|
299
|
-
/**
|
|
300
|
-
* Tries to convert a given value to a valid identifier suitable as a value
|
|
301
|
-
* for an "ID-attribute" of an XML-element.
|
|
302
|
-
* @since v0.0.23
|
|
303
|
-
* @function valueToElementID
|
|
304
|
-
* @param {any} value - some value
|
|
305
|
-
* @returns {string}
|
|
306
|
-
*/
|
|
307
|
-
function valueToElementID(value) {
|
|
308
|
-
let id = valueToIDString(value);
|
|
309
|
-
if (id === null) return '';
|
|
310
|
-
if (id !== '') {
|
|
311
|
-
// // TODO: do extra checks
|
|
312
|
-
const template = /[\s\/\\\"\'<>=]/;
|
|
313
|
-
const trigger = id.match(template);
|
|
314
|
-
if (trigger) {
|
|
315
|
-
//console.log(trigger);
|
|
316
|
-
id = '';
|
|
317
|
-
};
|
|
318
|
-
};
|
|
319
|
-
return id;
|
|
320
|
-
};
|
|
321
|
-
|
|
322
261
|
/***
|
|
323
262
|
* (* class definitions *)
|
|
324
263
|
*/
|
|
@@ -1495,17 +1434,6 @@ class TXEpgHeaderContainer {
|
|
|
1495
1434
|
return isPlainObject(docProv) ? docProv : null;
|
|
1496
1435
|
}
|
|
1497
1436
|
|
|
1498
|
-
/**
|
|
1499
|
-
* Returns a `TXEpgProviderContainer` instance
|
|
1500
|
-
* @type {?TXEpgProviderContainer}
|
|
1501
|
-
* @readonly
|
|
1502
|
-
* @deprecated
|
|
1503
|
-
* @todo \[since `v0.0.22`] deprecated. Use `TXEpgHeaderContainer.provider`
|
|
1504
|
-
*/
|
|
1505
|
-
get Provider() {
|
|
1506
|
-
return this.provider;
|
|
1507
|
-
}
|
|
1508
|
-
|
|
1509
1437
|
/**
|
|
1510
1438
|
* Returns a `TXEpgProviderContainer` instance
|
|
1511
1439
|
* @since 0.0.22
|
|
@@ -1823,17 +1751,6 @@ class TXEpgContentProvider {
|
|
|
1823
1751
|
return isPlainObject(docBody) ? docBody : null;
|
|
1824
1752
|
}
|
|
1825
1753
|
|
|
1826
|
-
/**
|
|
1827
|
-
* Returns a `TXEpgHeaderContainer` instance
|
|
1828
|
-
* @type {?TXEpgHeaderContainer}
|
|
1829
|
-
* @readonly
|
|
1830
|
-
* @deprecated
|
|
1831
|
-
* @todo \[since `v0.0.22`] deprecated. Use `TXEpgContentProvider.header`
|
|
1832
|
-
*/
|
|
1833
|
-
get Header() {
|
|
1834
|
-
return this.header;
|
|
1835
|
-
}
|
|
1836
|
-
|
|
1837
1754
|
/**
|
|
1838
1755
|
* Returns a `TXEpgHeaderContainer` instance
|
|
1839
1756
|
* @since 0.0.22
|
|
@@ -1849,17 +1766,6 @@ class TXEpgContentProvider {
|
|
|
1849
1766
|
);
|
|
1850
1767
|
}
|
|
1851
1768
|
|
|
1852
|
-
/**
|
|
1853
|
-
* Returns a `TXEpgProviderContainer` instance
|
|
1854
|
-
* @type {?TXEpgProviderContainer}
|
|
1855
|
-
* @readonly
|
|
1856
|
-
* @deprecated
|
|
1857
|
-
* @todo \[since `v0.0.22`] deprecated. Use `TXEpgContentProvider.provider`
|
|
1858
|
-
*/
|
|
1859
|
-
get Provider() {
|
|
1860
|
-
return this.provider;
|
|
1861
|
-
}
|
|
1862
|
-
|
|
1863
1769
|
/**
|
|
1864
1770
|
* Returns a `TXEpgProviderContainer` instance
|
|
1865
1771
|
* @since 0.0.22
|
|
@@ -2156,10 +2062,6 @@ module.exports.XEPG_DEF_PROVIDER_VER = XEPG_DEF_PROVIDER_VER;
|
|
|
2156
2062
|
module.exports.XEPG_DEF_DOCUMENT_TYPE = XEPG_DEF_DOCUMENT_TYPE;
|
|
2157
2063
|
module.exports.XEPG_DEF_DOCUMENT_SCHEMA = XEPG_DEF_DOCUMENT_SCHEMA;
|
|
2158
2064
|
|
|
2159
|
-
module.exports.readAsTagName = readAsTagName;
|
|
2160
|
-
module.exports.readAsAttrName = readAsAttrName;
|
|
2161
|
-
module.exports.valueToElementID = valueToElementID;
|
|
2162
|
-
|
|
2163
2065
|
module.exports.TXEpgDTSProvider = TXEpgDTSProvider;
|
|
2164
2066
|
module.exports.TXEpgScheduleItem = TXEpgScheduleItem;
|
|
2165
2067
|
module.exports.TXEpgSchedulesList = TXEpgSchedulesList;
|
|
@@ -2167,3 +2069,8 @@ module.exports.TXEpgProviderContainer = TXEpgProviderContainer;
|
|
|
2167
2069
|
module.exports.TXEpgChannelContainer = TXEpgChannelContainer;
|
|
2168
2070
|
module.exports.TXEpgHeaderContainer = TXEpgHeaderContainer;
|
|
2169
2071
|
module.exports.TXEpgContentProvider = TXEpgContentProvider;
|
|
2072
|
+
|
|
2073
|
+
// * re-exported *
|
|
2074
|
+
module.exports.readAsTagName = readAsTagName;
|
|
2075
|
+
module.exports.readAsAttrName = readAsAttrName;
|
|
2076
|
+
module.exports.valueToElementID = valueToElementID;
|
package/lib/xml-base.js
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// [v0.1.002-20250825]
|
|
2
|
+
|
|
3
|
+
// === module init block ===
|
|
4
|
+
|
|
5
|
+
const {
|
|
6
|
+
//valueToIndex,
|
|
7
|
+
valueToIDString,
|
|
8
|
+
//readAsString, readAsNumber,
|
|
9
|
+
//isNotEmptyString,
|
|
10
|
+
//isArray, isObject, isPlainObject,
|
|
11
|
+
} = require('@ygracs/bsfoc-lib-js');
|
|
12
|
+
|
|
13
|
+
// === module inner block ===
|
|
14
|
+
|
|
15
|
+
/***
|
|
16
|
+
* (* helper function definitions *)
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
// === module main block ===
|
|
20
|
+
|
|
21
|
+
/***
|
|
22
|
+
* (* constant definitions *)
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/***
|
|
26
|
+
* (* function definitions *)
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Tries to convert a given value to a valid tag name of an XML-element.
|
|
31
|
+
* @since v0.0.23
|
|
32
|
+
* @function readAsTagName
|
|
33
|
+
* @param {any} value - some value
|
|
34
|
+
* @returns {string}
|
|
35
|
+
*/
|
|
36
|
+
function readAsTagName(value) {
|
|
37
|
+
let tagName = valueToIDString(value, { ignoreNumbers: true });
|
|
38
|
+
if (tagName === null) return '';
|
|
39
|
+
if (tagName !== '') {
|
|
40
|
+
// // TODO: do extra checks
|
|
41
|
+
const template = /[\s\/\\\"\'<>=]/;
|
|
42
|
+
const trigger = tagName.match(template);
|
|
43
|
+
if (trigger) {
|
|
44
|
+
//console.log(trigger);
|
|
45
|
+
tagName = '';
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
return tagName;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Tries to convert a given value to a valid name of an XML-attribute.
|
|
53
|
+
* @since v0.0.23
|
|
54
|
+
* @function readAsAttrName
|
|
55
|
+
* @param {any} value - some value
|
|
56
|
+
* @returns {string}
|
|
57
|
+
*/
|
|
58
|
+
function readAsAttrName(value) {
|
|
59
|
+
let attrName = valueToIDString(value, { ignoreNumbers: true });
|
|
60
|
+
if (attrName === null) return '';
|
|
61
|
+
if (attrName !== '') {
|
|
62
|
+
// // TODO: do extra checks
|
|
63
|
+
const template = /[\s\/\\\"\'<>=]/;
|
|
64
|
+
const trigger = attrName.match(template);
|
|
65
|
+
if (trigger) {
|
|
66
|
+
//console.log(trigger);
|
|
67
|
+
attrName = '';
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
return attrName;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Tries to convert a given value to a valid "attribute value".
|
|
75
|
+
* @since v0.0.25
|
|
76
|
+
* @function readAsAttrValue
|
|
77
|
+
* @param {any} value - some value
|
|
78
|
+
* @return {?string}
|
|
79
|
+
*/
|
|
80
|
+
function readAsAttrValue(value) {
|
|
81
|
+
let result = null;
|
|
82
|
+
switch (typeof value) {
|
|
83
|
+
case 'boolean': {
|
|
84
|
+
result = value.toString();
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
case 'number': {
|
|
88
|
+
if (Number.isNaN(value)) break;
|
|
89
|
+
result = value.toString();
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
case 'string': {
|
|
93
|
+
result = value.trim();
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
default: {}
|
|
97
|
+
};
|
|
98
|
+
return result;
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Tries to convert a given value to a valid identifier suitable as a value
|
|
103
|
+
* for an "ID-attribute" of an XML-element.
|
|
104
|
+
* @since v0.0.23
|
|
105
|
+
* @function valueToElementID
|
|
106
|
+
* @param {any} value - some value
|
|
107
|
+
* @returns {string}
|
|
108
|
+
*/
|
|
109
|
+
function valueToElementID(value) {
|
|
110
|
+
let id = valueToIDString(value);
|
|
111
|
+
if (id === null) return '';
|
|
112
|
+
if (id !== '') {
|
|
113
|
+
// // TODO: do extra checks
|
|
114
|
+
const template = /[\s\/\\\"\'<>=]/;
|
|
115
|
+
const trigger = id.match(template);
|
|
116
|
+
if (trigger) {
|
|
117
|
+
//console.log(trigger);
|
|
118
|
+
id = '';
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
return id;
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
/***
|
|
125
|
+
* (* class definitions *)
|
|
126
|
+
*/
|
|
127
|
+
|
|
128
|
+
// === module exports block ===
|
|
129
|
+
|
|
130
|
+
module.exports.readAsTagName = readAsTagName;
|
|
131
|
+
module.exports.readAsAttrName = readAsAttrName;
|
|
132
|
+
module.exports.readAsAttrValue = readAsAttrValue;
|
|
133
|
+
module.exports.valueToElementID = valueToElementID;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ygracs/xepg-lib-js",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.25",
|
|
4
4
|
"description": "A library for handling an EPG-sources based on an XEPG-format",
|
|
5
5
|
"author": "ygracs <cs70th-om@rambler.ru>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"doc/*.md",
|
|
20
20
|
"lib/xepgdoc-lib.js",
|
|
21
21
|
"lib/dts-helper.js",
|
|
22
|
+
"lib/xml-base.js",
|
|
22
23
|
"index.js",
|
|
23
24
|
"CHANGELOG.md"
|
|
24
25
|
],
|
|
@@ -33,15 +34,15 @@
|
|
|
33
34
|
},
|
|
34
35
|
"dependencies": {
|
|
35
36
|
"@cntwg/file-helper": "^0.0.1",
|
|
36
|
-
"@ygracs/bsfoc-lib-js": "^0.
|
|
37
|
-
"@ygracs/dtf-lib-js": "^0.0.
|
|
37
|
+
"@ygracs/bsfoc-lib-js": "^0.3.0",
|
|
38
|
+
"@ygracs/dtf-lib-js": "^0.0.30",
|
|
38
39
|
"@ygracs/xml-js6": "^0.0.5-b",
|
|
39
|
-
"@ygracs/xobj-lib-js": "^0.2.
|
|
40
|
+
"@ygracs/xobj-lib-js": "^0.2.4"
|
|
40
41
|
},
|
|
41
42
|
"devDependencies": {
|
|
42
|
-
"cross-env": "^
|
|
43
|
-
"jest": "^30.0.
|
|
44
|
-
"jsdoc-to-markdown": "^9.1.
|
|
43
|
+
"cross-env": "^10.0.0",
|
|
44
|
+
"jest": "^30.0.5",
|
|
45
|
+
"jsdoc-to-markdown": "^9.1.2",
|
|
45
46
|
"minimist": "^1.2.8"
|
|
46
47
|
}
|
|
47
48
|
}
|