@carbonorm/carbonnode 6.1.0 → 6.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +509 -292
- package/dist/index.cjs.js +209 -37
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +208 -38
- package/dist/index.esm.js.map +1 -1
- package/dist/orm/utils/sqlUtils.d.ts +1 -0
- package/dist/types/ormInterfaces.d.ts +1 -0
- package/dist/utils/sqlAllowList.d.ts +5 -3
- package/package.json +1 -1
- package/src/__tests__/fixtures/c6.fixture.ts +33 -0
- package/src/__tests__/sakila-db/C6.js +1 -1
- package/src/__tests__/sakila-db/C6.mysqldump.json +1 -1
- package/src/__tests__/sakila-db/C6.mysqldump.sql +1 -1
- package/src/__tests__/sakila-db/C6.ts +1 -1
- package/src/__tests__/sakila-db/sqlResponses/C6.actor.post.json +6 -6
- package/src/__tests__/sakila-db/sqlResponses/C6.actor.post.latest.json +3 -3
- package/src/__tests__/sakila-db/sqlResponses/C6.actor.put.json +1 -1
- package/src/__tests__/sakila-db/sqlResponses/C6.actor.put.lookup.json +3 -3
- package/src/__tests__/sakila-db/sqlResponses/C6.address.post.json +10 -10
- package/src/__tests__/sakila-db/sqlResponses/C6.address.post.latest.json +5 -5
- package/src/__tests__/sakila-db/sqlResponses/C6.address.put.json +1 -1
- package/src/__tests__/sakila-db/sqlResponses/C6.address.put.lookup.json +5 -5
- package/src/__tests__/sakila-db/sqlResponses/C6.category.post.json +4 -4
- package/src/__tests__/sakila-db/sqlResponses/C6.category.post.latest.json +2 -2
- package/src/__tests__/sakila-db/sqlResponses/C6.category.put.json +1 -1
- package/src/__tests__/sakila-db/sqlResponses/C6.category.put.lookup.json +2 -2
- package/src/__tests__/sakila-db/sqlResponses/C6.city.post.json +4 -4
- package/src/__tests__/sakila-db/sqlResponses/C6.city.post.latest.json +2 -2
- package/src/__tests__/sakila-db/sqlResponses/C6.city.put.json +1 -1
- package/src/__tests__/sakila-db/sqlResponses/C6.city.put.lookup.json +2 -2
- package/src/__tests__/sakila-db/sqlResponses/C6.country.post.json +4 -4
- package/src/__tests__/sakila-db/sqlResponses/C6.country.post.latest.json +2 -2
- package/src/__tests__/sakila-db/sqlResponses/C6.country.put.json +1 -1
- package/src/__tests__/sakila-db/sqlResponses/C6.country.put.lookup.json +2 -2
- package/src/__tests__/sakila-db/sqlResponses/C6.customer.post.json +10 -10
- package/src/__tests__/sakila-db/sqlResponses/C6.customer.post.latest.json +5 -5
- package/src/__tests__/sakila-db/sqlResponses/C6.customer.put.json +1 -1
- package/src/__tests__/sakila-db/sqlResponses/C6.customer.put.lookup.json +5 -5
- package/src/__tests__/sakila-db/sqlResponses/C6.film.post.json +4 -4
- package/src/__tests__/sakila-db/sqlResponses/C6.film.post.latest.json +2 -2
- package/src/__tests__/sakila-db/sqlResponses/C6.film.put.json +1 -1
- package/src/__tests__/sakila-db/sqlResponses/C6.film.put.lookup.json +2 -2
- package/src/__tests__/sakila-db/sqlResponses/C6.inventory.post.json +2 -2
- package/src/__tests__/sakila-db/sqlResponses/C6.inventory.post.latest.json +1 -1
- package/src/__tests__/sakila-db/sqlResponses/C6.inventory.put.json +1 -1
- package/src/__tests__/sakila-db/sqlResponses/C6.inventory.put.lookup.json +1 -1
- package/src/__tests__/sakila-db/sqlResponses/C6.language.post.json +4 -4
- package/src/__tests__/sakila-db/sqlResponses/C6.language.post.latest.json +2 -2
- package/src/__tests__/sakila-db/sqlResponses/C6.language.put.json +1 -1
- package/src/__tests__/sakila-db/sqlResponses/C6.language.put.lookup.json +2 -2
- package/src/__tests__/sakila-db/sqlResponses/C6.payment.post.json +4 -4
- package/src/__tests__/sakila-db/sqlResponses/C6.payment.post.latest.json +2 -2
- package/src/__tests__/sakila-db/sqlResponses/C6.payment.put.lookup.json +2 -2
- package/src/__tests__/sakila-db/sqlResponses/C6.rental.join.json +10 -10
- package/src/__tests__/sakila-db/sqlResponses/C6.rental.post.json +6 -6
- package/src/__tests__/sakila-db/sqlResponses/C6.rental.post.latest.json +3 -3
- package/src/__tests__/sakila-db/sqlResponses/C6.rental.put.json +1 -1
- package/src/__tests__/sakila-db/sqlResponses/C6.rental.put.lookup.json +3 -3
- package/src/__tests__/sqlAllowList.test.ts +56 -1
- package/src/__tests__/sqlBuilders.test.ts +38 -1
- package/src/executors/SqlExecutor.ts +4 -3
- package/src/orm/builders/ConditionBuilder.ts +3 -10
- package/src/orm/utils/sqlUtils.ts +172 -4
- package/src/types/ormInterfaces.ts +1 -0
- package/src/utils/sqlAllowList.ts +44 -11
|
@@ -2009,7 +2009,7 @@ export type RestTableInterfaces = iActor
|
|
|
2009
2009
|
|
|
2010
2010
|
export const C6 : iC6Object<RestTableInterfaces> = {
|
|
2011
2011
|
...C6Constants,
|
|
2012
|
-
C6VERSION: '6.1.
|
|
2012
|
+
C6VERSION: '6.1.1',
|
|
2013
2013
|
IMPORT: async (tableName: string) : Promise<iDynamicApiImport> => {
|
|
2014
2014
|
|
|
2015
2015
|
tableName = tableName.toLowerCase();
|
|
@@ -3,18 +3,18 @@
|
|
|
3
3
|
"insertId": 201,
|
|
4
4
|
"rest": [
|
|
5
5
|
{
|
|
6
|
-
"first_name": "
|
|
7
|
-
"last_name": "
|
|
8
|
-
"last_update": "2026-02-
|
|
6
|
+
"first_name": "first_name_1771278608363",
|
|
7
|
+
"last_name": "last_name_1771278608363",
|
|
8
|
+
"last_update": "2026-02-16 21:50:08",
|
|
9
9
|
"actor_id": 201
|
|
10
10
|
}
|
|
11
11
|
],
|
|
12
12
|
"sql": {
|
|
13
13
|
"sql": "INSERT INTO `actor` (\n `first_name`, `last_name`, `last_update`\n ) VALUES\n (?, ?, ?)",
|
|
14
14
|
"values": [
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"2026-02-
|
|
15
|
+
"first_name_1771278608363",
|
|
16
|
+
"last_name_1771278608363",
|
|
17
|
+
"2026-02-16 21:50:08"
|
|
18
18
|
]
|
|
19
19
|
}
|
|
20
20
|
}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"rest": [
|
|
3
3
|
{
|
|
4
4
|
"actor_id": 201,
|
|
5
|
-
"first_name": "
|
|
6
|
-
"last_name": "
|
|
7
|
-
"last_update": "2026-02-
|
|
5
|
+
"first_name": "first_name_1771278608363",
|
|
6
|
+
"last_name": "last_name_1771278608363",
|
|
7
|
+
"last_update": "2026-02-16T21:50:08.000Z"
|
|
8
8
|
}
|
|
9
9
|
],
|
|
10
10
|
"sql": {
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"rest": [
|
|
3
3
|
{
|
|
4
4
|
"actor_id": 201,
|
|
5
|
-
"first_name": "
|
|
6
|
-
"last_name": "
|
|
7
|
-
"last_update": "2026-02-
|
|
5
|
+
"first_name": "first_name_updated_1771278608409",
|
|
6
|
+
"last_name": "last_name_1771278608363",
|
|
7
|
+
"last_update": "2026-02-16T21:50:08.000Z"
|
|
8
8
|
}
|
|
9
9
|
],
|
|
10
10
|
"sql": {
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
"insertId": 606,
|
|
4
4
|
"rest": [
|
|
5
5
|
{
|
|
6
|
-
"address": "
|
|
7
|
-
"address2": "
|
|
8
|
-
"district": "
|
|
6
|
+
"address": "address_1771278608435",
|
|
7
|
+
"address2": "address2_1771278608435",
|
|
8
|
+
"district": "district_17712786084",
|
|
9
9
|
"city_id": 1,
|
|
10
10
|
"postal_code": "postal_cod",
|
|
11
|
-
"phone": "
|
|
11
|
+
"phone": "phone_1771278608442",
|
|
12
12
|
"location": [
|
|
13
13
|
"ST_GeomFromText",
|
|
14
14
|
[
|
|
@@ -16,21 +16,21 @@
|
|
|
16
16
|
"POINT(0 0)"
|
|
17
17
|
]
|
|
18
18
|
],
|
|
19
|
-
"last_update": "2026-02-
|
|
19
|
+
"last_update": "2026-02-16 21:50:08",
|
|
20
20
|
"address_id": 606
|
|
21
21
|
}
|
|
22
22
|
],
|
|
23
23
|
"sql": {
|
|
24
24
|
"sql": "INSERT INTO `address` (\n `address`, `address2`, `district`, `city_id`, `postal_code`, `phone`, `location`, `last_update`\n ) VALUES\n (?, ?, ?, ?, ?, ?, ST_GEOMFROMTEXT(?), ?)",
|
|
25
25
|
"values": [
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
26
|
+
"address_1771278608435",
|
|
27
|
+
"address2_1771278608435",
|
|
28
|
+
"district_17712786084",
|
|
29
29
|
1,
|
|
30
30
|
"postal_cod",
|
|
31
|
-
"
|
|
31
|
+
"phone_1771278608442",
|
|
32
32
|
"POINT(0 0)",
|
|
33
|
-
"2026-02-
|
|
33
|
+
"2026-02-16 21:50:08"
|
|
34
34
|
]
|
|
35
35
|
}
|
|
36
36
|
}
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
"rest": [
|
|
3
3
|
{
|
|
4
4
|
"address_id": 606,
|
|
5
|
-
"address": "
|
|
6
|
-
"address2": "
|
|
7
|
-
"district": "
|
|
5
|
+
"address": "address_1771278608435",
|
|
6
|
+
"address2": "address2_1771278608435",
|
|
7
|
+
"district": "district_17712786084",
|
|
8
8
|
"city_id": 1,
|
|
9
9
|
"postal_code": "postal_cod",
|
|
10
|
-
"phone": "
|
|
10
|
+
"phone": "phone_1771278608442",
|
|
11
11
|
"location": {
|
|
12
12
|
"x": 0,
|
|
13
13
|
"y": 0
|
|
14
14
|
},
|
|
15
|
-
"last_update": "2026-02-
|
|
15
|
+
"last_update": "2026-02-16T21:50:08.000Z"
|
|
16
16
|
}
|
|
17
17
|
],
|
|
18
18
|
"sql": {
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
"rest": [
|
|
3
3
|
{
|
|
4
4
|
"address_id": 606,
|
|
5
|
-
"address": "
|
|
6
|
-
"address2": "
|
|
7
|
-
"district": "
|
|
5
|
+
"address": "address_updated_1771278608453",
|
|
6
|
+
"address2": "address2_1771278608435",
|
|
7
|
+
"district": "district_17712786084",
|
|
8
8
|
"city_id": 1,
|
|
9
9
|
"postal_code": "postal_cod",
|
|
10
|
-
"phone": "
|
|
10
|
+
"phone": "phone_1771278608442",
|
|
11
11
|
"location": {
|
|
12
12
|
"x": 0,
|
|
13
13
|
"y": 0
|
|
14
14
|
},
|
|
15
|
-
"last_update": "2026-02-
|
|
15
|
+
"last_update": "2026-02-16T21:50:08.000Z"
|
|
16
16
|
}
|
|
17
17
|
],
|
|
18
18
|
"sql": {
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
"insertId": 17,
|
|
4
4
|
"rest": [
|
|
5
5
|
{
|
|
6
|
-
"name": "
|
|
7
|
-
"last_update": "2026-02-
|
|
6
|
+
"name": "name_1771278608470",
|
|
7
|
+
"last_update": "2026-02-16 21:50:08",
|
|
8
8
|
"category_id": 17
|
|
9
9
|
}
|
|
10
10
|
],
|
|
11
11
|
"sql": {
|
|
12
12
|
"sql": "INSERT INTO `category` (\n `name`, `last_update`\n ) VALUES\n (?, ?)",
|
|
13
13
|
"values": [
|
|
14
|
-
"
|
|
15
|
-
"2026-02-
|
|
14
|
+
"name_1771278608470",
|
|
15
|
+
"2026-02-16 21:50:08"
|
|
16
16
|
]
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -3,18 +3,18 @@
|
|
|
3
3
|
"insertId": 601,
|
|
4
4
|
"rest": [
|
|
5
5
|
{
|
|
6
|
-
"city": "
|
|
6
|
+
"city": "city_1771278608490",
|
|
7
7
|
"country_id": 1,
|
|
8
|
-
"last_update": "2026-02-
|
|
8
|
+
"last_update": "2026-02-16 21:50:08",
|
|
9
9
|
"city_id": 601
|
|
10
10
|
}
|
|
11
11
|
],
|
|
12
12
|
"sql": {
|
|
13
13
|
"sql": "INSERT INTO `city` (\n `city`, `country_id`, `last_update`\n ) VALUES\n (?, ?, ?)",
|
|
14
14
|
"values": [
|
|
15
|
-
"
|
|
15
|
+
"city_1771278608490",
|
|
16
16
|
1,
|
|
17
|
-
"2026-02-
|
|
17
|
+
"2026-02-16 21:50:08"
|
|
18
18
|
]
|
|
19
19
|
}
|
|
20
20
|
}
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
"insertId": 110,
|
|
4
4
|
"rest": [
|
|
5
5
|
{
|
|
6
|
-
"country": "
|
|
7
|
-
"last_update": "2026-02-
|
|
6
|
+
"country": "country_1771278608529",
|
|
7
|
+
"last_update": "2026-02-16 21:50:08",
|
|
8
8
|
"country_id": 110
|
|
9
9
|
}
|
|
10
10
|
],
|
|
11
11
|
"sql": {
|
|
12
12
|
"sql": "INSERT INTO `country` (\n `country`, `last_update`\n ) VALUES\n (?, ?)",
|
|
13
13
|
"values": [
|
|
14
|
-
"
|
|
15
|
-
"2026-02-
|
|
14
|
+
"country_1771278608529",
|
|
15
|
+
"2026-02-16 21:50:08"
|
|
16
16
|
]
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
"rest": [
|
|
5
5
|
{
|
|
6
6
|
"store_id": 1,
|
|
7
|
-
"first_name": "
|
|
8
|
-
"last_name": "
|
|
9
|
-
"email": "
|
|
7
|
+
"first_name": "first_name_1771278608562",
|
|
8
|
+
"last_name": "last_name_1771278608563",
|
|
9
|
+
"email": "email_1771278608563",
|
|
10
10
|
"address_id": 1,
|
|
11
11
|
"active": 2,
|
|
12
|
-
"create_date": "2026-02-
|
|
13
|
-
"last_update": "2026-02-
|
|
12
|
+
"create_date": "2026-02-16 21:50:08",
|
|
13
|
+
"last_update": "2026-02-16 21:50:08",
|
|
14
14
|
"customer_id": 600
|
|
15
15
|
}
|
|
16
16
|
],
|
|
@@ -18,13 +18,13 @@
|
|
|
18
18
|
"sql": "INSERT INTO `customer` (\n `store_id`, `first_name`, `last_name`, `email`, `address_id`, `active`, `create_date`, `last_update`\n ) VALUES\n (?, ?, ?, ?, ?, ?, ?, ?)",
|
|
19
19
|
"values": [
|
|
20
20
|
1,
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
21
|
+
"first_name_1771278608562",
|
|
22
|
+
"last_name_1771278608563",
|
|
23
|
+
"email_1771278608563",
|
|
24
24
|
1,
|
|
25
25
|
2,
|
|
26
|
-
"2026-02-
|
|
27
|
-
"2026-02-
|
|
26
|
+
"2026-02-16 21:50:08",
|
|
27
|
+
"2026-02-16 21:50:08"
|
|
28
28
|
]
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
{
|
|
4
4
|
"customer_id": 600,
|
|
5
5
|
"store_id": 1,
|
|
6
|
-
"first_name": "
|
|
7
|
-
"last_name": "
|
|
8
|
-
"email": "
|
|
6
|
+
"first_name": "first_name_1771278608562",
|
|
7
|
+
"last_name": "last_name_1771278608563",
|
|
8
|
+
"email": "email_1771278608563",
|
|
9
9
|
"address_id": 1,
|
|
10
10
|
"active": 2,
|
|
11
|
-
"create_date": "2026-02-
|
|
12
|
-
"last_update": "2026-02-
|
|
11
|
+
"create_date": "2026-02-16T21:50:08.000Z",
|
|
12
|
+
"last_update": "2026-02-16T21:50:08.000Z"
|
|
13
13
|
}
|
|
14
14
|
],
|
|
15
15
|
"sql": {
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
{
|
|
4
4
|
"customer_id": 600,
|
|
5
5
|
"store_id": 1,
|
|
6
|
-
"first_name": "
|
|
7
|
-
"last_name": "
|
|
8
|
-
"email": "
|
|
6
|
+
"first_name": "first_name_updated_1771278608570",
|
|
7
|
+
"last_name": "last_name_1771278608563",
|
|
8
|
+
"email": "email_1771278608563",
|
|
9
9
|
"address_id": 1,
|
|
10
10
|
"active": 2,
|
|
11
|
-
"create_date": "2026-02-
|
|
12
|
-
"last_update": "2026-02-
|
|
11
|
+
"create_date": "2026-02-16T21:50:08.000Z",
|
|
12
|
+
"last_update": "2026-02-16T21:50:08.000Z"
|
|
13
13
|
}
|
|
14
14
|
],
|
|
15
15
|
"sql": {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"insertId": 1001,
|
|
4
4
|
"rest": [
|
|
5
5
|
{
|
|
6
|
-
"title": "
|
|
6
|
+
"title": "title_1771278608590",
|
|
7
7
|
"release_year": 2026,
|
|
8
8
|
"language_id": 2,
|
|
9
9
|
"original_language_id": 1,
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
"replacement_cost": 1,
|
|
14
14
|
"rating": "PG",
|
|
15
15
|
"special_features": "Deleted Scenes,Behind the Scenes",
|
|
16
|
-
"last_update": "2026-02-
|
|
16
|
+
"last_update": "2026-02-16 21:50:08",
|
|
17
17
|
"film_id": 1001
|
|
18
18
|
}
|
|
19
19
|
],
|
|
20
20
|
"sql": {
|
|
21
21
|
"sql": "INSERT INTO `film` (\n `title`, `release_year`, `language_id`, `original_language_id`, `rental_duration`, `rental_rate`, `length`, `replacement_cost`, `rating`, `special_features`, `last_update`\n ) VALUES\n (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
|
22
22
|
"values": [
|
|
23
|
-
"
|
|
23
|
+
"title_1771278608590",
|
|
24
24
|
2026,
|
|
25
25
|
2,
|
|
26
26
|
1,
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
1,
|
|
31
31
|
"PG",
|
|
32
32
|
"Deleted Scenes,Behind the Scenes",
|
|
33
|
-
"2026-02-
|
|
33
|
+
"2026-02-16 21:50:08"
|
|
34
34
|
]
|
|
35
35
|
}
|
|
36
36
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"rest": [
|
|
3
3
|
{
|
|
4
4
|
"film_id": 1001,
|
|
5
|
-
"title": "
|
|
5
|
+
"title": "title_1771278608590",
|
|
6
6
|
"description": null,
|
|
7
7
|
"release_year": 2026,
|
|
8
8
|
"language_id": 2,
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"replacement_cost": "1.00",
|
|
14
14
|
"rating": "PG",
|
|
15
15
|
"special_features": "Deleted Scenes,Behind the Scenes",
|
|
16
|
-
"last_update": "2026-02-
|
|
16
|
+
"last_update": "2026-02-16T21:50:08.000Z"
|
|
17
17
|
}
|
|
18
18
|
],
|
|
19
19
|
"sql": {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"rest": [
|
|
3
3
|
{
|
|
4
4
|
"film_id": 1001,
|
|
5
|
-
"title": "
|
|
5
|
+
"title": "title_updated_1771278608599",
|
|
6
6
|
"description": null,
|
|
7
7
|
"release_year": 2026,
|
|
8
8
|
"language_id": 2,
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"replacement_cost": "1.00",
|
|
14
14
|
"rating": "PG",
|
|
15
15
|
"special_features": "Deleted Scenes,Behind the Scenes",
|
|
16
|
-
"last_update": "2026-02-
|
|
16
|
+
"last_update": "2026-02-16T21:50:08.000Z"
|
|
17
17
|
}
|
|
18
18
|
],
|
|
19
19
|
"sql": {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
{
|
|
6
6
|
"film_id": 6,
|
|
7
7
|
"store_id": 1,
|
|
8
|
-
"last_update": "2026-02-
|
|
8
|
+
"last_update": "2026-02-16 21:50:08",
|
|
9
9
|
"inventory_id": 4582
|
|
10
10
|
}
|
|
11
11
|
],
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"values": [
|
|
15
15
|
6,
|
|
16
16
|
1,
|
|
17
|
-
"2026-02-
|
|
17
|
+
"2026-02-16 21:50:08"
|
|
18
18
|
]
|
|
19
19
|
}
|
|
20
20
|
}
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
"insertId": 7,
|
|
4
4
|
"rest": [
|
|
5
5
|
{
|
|
6
|
-
"name": "
|
|
7
|
-
"last_update": "2026-02-
|
|
6
|
+
"name": "name_1771278608632",
|
|
7
|
+
"last_update": "2026-02-16 21:50:08",
|
|
8
8
|
"language_id": 7
|
|
9
9
|
}
|
|
10
10
|
],
|
|
11
11
|
"sql": {
|
|
12
12
|
"sql": "INSERT INTO `language` (\n `name`, `last_update`\n ) VALUES\n (?, ?)",
|
|
13
13
|
"values": [
|
|
14
|
-
"
|
|
15
|
-
"2026-02-
|
|
14
|
+
"name_1771278608632",
|
|
15
|
+
"2026-02-16 21:50:08"
|
|
16
16
|
]
|
|
17
17
|
}
|
|
18
18
|
}
|