@carbonorm/carbonnode 5.0.1 → 6.0.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/dist/api/convertForRequestBody.d.ts +1 -1
- package/dist/api/restOrm.d.ts +6 -6
- package/dist/api/restRequest.d.ts +2 -2
- package/dist/{api/executors → executors}/HttpExecutor.d.ts +2 -2
- package/dist/{api/handlers → handlers}/ExpressHandler.d.ts +3 -3
- package/dist/index.cjs.js +229 -160
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +30 -29
- package/dist/index.esm.js +225 -161
- package/dist/index.esm.js.map +1 -1
- package/dist/{api/types → types}/ormGenerics.d.ts +1 -1
- package/dist/{api/types → types}/ormInterfaces.d.ts +7 -6
- package/dist/{api/utils → utils}/apiHelpers.d.ts +2 -2
- package/dist/{api/utils → utils}/cacheManager.d.ts +2 -2
- package/dist/utils/sqlAllowList.d.ts +5 -0
- package/dist/utils/toastRuntime.d.ts +5 -0
- package/dist/variables/toastOptions.d.ts +10 -1
- package/package.json +2 -7
- package/scripts/assets/handlebars/C6.test.ts.handlebars +4 -8
- package/src/__tests__/binaryHex.e2e.test.ts +1 -1
- package/src/__tests__/cacheManager.test.ts +2 -3
- package/src/__tests__/expressServer.e2e.test.ts +1 -1
- package/src/__tests__/fixtures/c6.fixture.ts +1 -1
- package/src/__tests__/fixtures/createTestServer.ts +2 -2
- package/src/__tests__/fixtures/pu.fixture.ts +1 -2
- package/src/__tests__/httpExecutorSingular.e2e.test.ts +1 -1
- package/src/__tests__/normalizeSingularRequest.test.ts +3 -3
- 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.test.ts +4 -8
- package/src/__tests__/sakila-db/C6.ts +1 -1
- package/src/__tests__/sakila-db/sqlResponses/C6.actor.post.json +3 -3
- 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 +5 -5
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +5 -5
- 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 +2 -2
- 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 +1 -1
- 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 +2 -2
- 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 +2 -2
- 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.post.json +3 -3
- 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 +67 -74
- package/src/__tests__/sqlBuilders.complex.test.ts +3 -3
- package/src/__tests__/sqlBuilders.expressions.test.ts +2 -2
- package/src/__tests__/sqlBuilders.test.ts +5 -5
- package/src/__tests__/toastRuntime.test.ts +22 -0
- package/src/api/convertForRequestBody.ts +2 -2
- package/src/api/restOrm.ts +2 -2
- package/src/api/restRequest.ts +4 -5
- package/src/{api/executors → executors}/HttpExecutor.ts +21 -13
- package/src/{api/executors → executors}/SqlExecutor.ts +2 -2
- package/src/{api/handlers → handlers}/ExpressHandler.ts +5 -5
- package/src/index.ts +30 -29
- package/src/{api/orm → orm}/builders/AggregateBuilder.ts +1 -1
- package/src/{api/orm → orm}/builders/ConditionBuilder.ts +1 -1
- package/src/{api/orm → orm}/builders/JoinBuilder.ts +1 -1
- package/src/{api/orm → orm}/builders/PaginationBuilder.ts +1 -1
- package/src/{api/orm → orm}/queries/PostQueryBuilder.ts +1 -1
- package/src/{api/orm → orm}/queries/UpdateQueryBuilder.ts +1 -1
- package/src/{api/orm → orm}/queryHelpers.ts +1 -2
- package/src/{api/types → types}/ormGenerics.ts +1 -1
- package/src/{api/types → types}/ormInterfaces.ts +8 -6
- package/src/{api/utils → utils}/apiHelpers.ts +8 -8
- package/src/{api/utils → utils}/cacheManager.ts +2 -2
- package/src/{api/utils → utils}/normalizeSingularRequest.ts +1 -1
- package/src/utils/sqlAllowList.ts +120 -0
- package/src/{api/utils → utils}/testHelpers.ts +1 -1
- package/src/{api/utils → utils}/toastNotifier.ts +3 -3
- package/src/utils/toastRuntime.ts +22 -0
- package/src/variables/toastOptions.ts +10 -3
- package/dist/api/utils/sqlAllowList.d.ts +0 -2
- package/src/api/utils/sqlAllowList.ts +0 -54
- /package/dist/{api → constants}/C6Constants.d.ts +0 -0
- /package/dist/{api/executors → executors}/Executor.d.ts +0 -0
- /package/dist/{api/executors → executors}/SqlExecutor.d.ts +0 -0
- /package/dist/{api/orm → orm}/builders/AggregateBuilder.d.ts +0 -0
- /package/dist/{api/orm → orm}/builders/ConditionBuilder.d.ts +0 -0
- /package/dist/{api/orm → orm}/builders/JoinBuilder.d.ts +0 -0
- /package/dist/{api/orm → orm}/builders/PaginationBuilder.d.ts +0 -0
- /package/dist/{api/orm → orm}/queries/DeleteQueryBuilder.d.ts +0 -0
- /package/dist/{api/orm → orm}/queries/PostQueryBuilder.d.ts +0 -0
- /package/dist/{api/orm → orm}/queries/SelectQueryBuilder.d.ts +0 -0
- /package/dist/{api/orm → orm}/queries/UpdateQueryBuilder.d.ts +0 -0
- /package/dist/{api/orm → orm}/queryHelpers.d.ts +0 -0
- /package/dist/{api/orm → orm}/utils/sqlUtils.d.ts +0 -0
- /package/dist/{api/types → types}/dynamicFetching.d.ts +0 -0
- /package/dist/{api/types → types}/modifyTypes.d.ts +0 -0
- /package/dist/{api/types → types}/mysqlTypes.d.ts +0 -0
- /package/dist/{api/utils → utils}/determineRuntimeJsType.d.ts +0 -0
- /package/dist/{api/utils → utils}/logger.d.ts +0 -0
- /package/dist/{api/utils → utils}/normalizeSingularRequest.d.ts +0 -0
- /package/dist/{api/utils → utils}/sortAndSerializeQueryObject.d.ts +0 -0
- /package/dist/{api/utils → utils}/testHelpers.d.ts +0 -0
- /package/dist/{api/utils → utils}/toastNotifier.d.ts +0 -0
- /package/src/{api → constants}/C6Constants.ts +0 -0
- /package/src/{api/executors → executors}/Executor.ts +0 -0
- /package/src/{api/orm → orm}/queries/DeleteQueryBuilder.ts +0 -0
- /package/src/{api/orm → orm}/queries/SelectQueryBuilder.ts +0 -0
- /package/src/{api/orm → orm}/utils/sqlUtils.ts +0 -0
- /package/src/{api/types → types}/dynamicFetching.ts +0 -0
- /package/src/{api/types → types}/modifyTypes.ts +0 -0
- /package/src/{api/types → types}/mysqlTypes.ts +0 -0
- /package/src/{api/utils → utils}/determineRuntimeJsType.ts +0 -0
- /package/src/{api/utils → utils}/logger.ts +0 -0
- /package/src/{api/utils → utils}/sortAndSerializeQueryObject.ts +0 -0
|
@@ -4,7 +4,8 @@ import { fileURLToPath } from 'node:url';
|
|
|
4
4
|
import { mkdir, writeFile } from 'node:fs/promises';
|
|
5
5
|
import {
|
|
6
6
|
checkAllRequestsComplete,
|
|
7
|
-
|
|
7
|
+
collectSqlAllowListEntries,
|
|
8
|
+
compileSqlAllowList,
|
|
8
9
|
type DetermineResponseDataType,
|
|
9
10
|
type OrmGenerics,
|
|
10
11
|
} from '@carbonorm/carbonnode';
|
|
@@ -63,10 +64,7 @@ async function recordSqlResponse<G extends OrmGenerics = OrmGenerics>(
|
|
|
63
64
|
if (!response) return;
|
|
64
65
|
const payload = unwrapResponse(response);
|
|
65
66
|
if (!payload) return;
|
|
66
|
-
|
|
67
|
-
if (typeof sqlValue === 'string') {
|
|
68
|
-
sqlAllowListEntries.add(normalizeSql(sqlValue));
|
|
69
|
-
}
|
|
67
|
+
collectSqlAllowListEntries(payload, sqlAllowListEntries);
|
|
70
68
|
|
|
71
69
|
await mkdir(sqlResponsesDir, { recursive: true });
|
|
72
70
|
const filePath = path.join(sqlResponsesDir, `C6.${label}.json`);
|
|
@@ -74,9 +72,7 @@ async function recordSqlResponse<G extends OrmGenerics = OrmGenerics>(
|
|
|
74
72
|
}
|
|
75
73
|
|
|
76
74
|
async function finalizeSqlAllowList() {
|
|
77
|
-
await
|
|
78
|
-
const compiled = Array.from(sqlAllowListEntries).sort();
|
|
79
|
-
await writeFile(sqlAllowListPath, JSON.stringify(compiled, null, 2));
|
|
75
|
+
await compileSqlAllowList(sqlAllowListPath, sqlAllowListEntries);
|
|
80
76
|
}
|
|
81
77
|
|
|
82
78
|
async function executeAndRecord<G extends OrmGenerics = OrmGenerics>(
|
|
@@ -2009,7 +2009,7 @@ export type RestTableInterfaces = iActor
|
|
|
2009
2009
|
|
|
2010
2010
|
export const C6 : iC6Object<RestTableInterfaces> = {
|
|
2011
2011
|
...C6Constants,
|
|
2012
|
-
C6VERSION: '
|
|
2012
|
+
C6VERSION: '6.0.0',
|
|
2013
2013
|
IMPORT: async (tableName: string) : Promise<iDynamicApiImport> => {
|
|
2014
2014
|
|
|
2015
2015
|
tableName = tableName.toLowerCase();
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
"sql": {
|
|
5
5
|
"sql": "INSERT INTO `actor` (\n `first_name`, `last_name`, `last_update`\n ) VALUES (\n ?, ?, ?\n )",
|
|
6
6
|
"values": [
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"2026-01-24
|
|
7
|
+
"first_name_1769233756399",
|
|
8
|
+
"last_name_1769233756399",
|
|
9
|
+
"2026-01-24 05:49:16"
|
|
10
10
|
]
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"rest": [
|
|
3
3
|
{
|
|
4
4
|
"actor_id": 201,
|
|
5
|
-
"first_name": "
|
|
6
|
-
"last_name": "
|
|
7
|
-
"last_update": "2026-01-
|
|
5
|
+
"first_name": "first_name_1769233756399",
|
|
6
|
+
"last_name": "last_name_1769233756399",
|
|
7
|
+
"last_update": "2026-01-24T05:49:16.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-01-
|
|
5
|
+
"first_name": "first_name_updated_1769233757153",
|
|
6
|
+
"last_name": "last_name_1769233756399",
|
|
7
|
+
"last_update": "2026-01-24T05:49:17.000Z"
|
|
8
8
|
}
|
|
9
9
|
],
|
|
10
10
|
"sql": {
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
"sql": {
|
|
5
5
|
"sql": "INSERT INTO `address` (\n `address`, `address2`, `district`, `city_id`, `postal_code`, `phone`, `location`, `last_update`\n ) VALUES (\n ?, ?, ?, ?, ?, ?, ST_GeomFromText('POINT(0 0)'), ?\n )",
|
|
6
6
|
"values": [
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
7
|
+
"address_1769233757335",
|
|
8
|
+
"address2_1769233757335",
|
|
9
|
+
"district_17692337573",
|
|
10
10
|
1,
|
|
11
11
|
"postal_cod",
|
|
12
|
-
"
|
|
13
|
-
"2026-01-24
|
|
12
|
+
"phone_1769233757346",
|
|
13
|
+
"2026-01-24 05:49:17"
|
|
14
14
|
]
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
"rest": [
|
|
3
3
|
{
|
|
4
4
|
"address_id": 606,
|
|
5
|
-
"address": "
|
|
6
|
-
"address2": "
|
|
7
|
-
"district": "
|
|
5
|
+
"address": "address_1769233757335",
|
|
6
|
+
"address2": "address2_1769233757335",
|
|
7
|
+
"district": "district_17692337573",
|
|
8
8
|
"city_id": 1,
|
|
9
9
|
"postal_code": "postal_cod",
|
|
10
|
-
"phone": "
|
|
10
|
+
"phone": "phone_1769233757346",
|
|
11
11
|
"location": {
|
|
12
12
|
"x": 0,
|
|
13
13
|
"y": 0
|
|
14
14
|
},
|
|
15
|
-
"last_update": "2026-01-
|
|
15
|
+
"last_update": "2026-01-24T05:49:17.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_1769233757353",
|
|
6
|
+
"address2": "address2_1769233757335",
|
|
7
|
+
"district": "district_17692337573",
|
|
8
8
|
"city_id": 1,
|
|
9
9
|
"postal_code": "postal_cod",
|
|
10
|
-
"phone": "
|
|
10
|
+
"phone": "phone_1769233757346",
|
|
11
11
|
"location": {
|
|
12
12
|
"x": 0,
|
|
13
13
|
"y": 0
|
|
14
14
|
},
|
|
15
|
-
"last_update": "2026-01-
|
|
15
|
+
"last_update": "2026-01-24T05:49:17.000Z"
|
|
16
16
|
}
|
|
17
17
|
],
|
|
18
18
|
"sql": {
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
"sql": "INSERT INTO `customer` (\n `store_id`, `first_name`, `last_name`, `email`, `address_id`, `active`, `create_date`, `last_update`\n ) VALUES (\n ?, ?, ?, ?, ?, ?, ?, ?\n )",
|
|
6
6
|
"values": [
|
|
7
7
|
1,
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
8
|
+
"first_name_1769233757483",
|
|
9
|
+
"last_name_1769233757483",
|
|
10
|
+
"email_1769233757483",
|
|
11
11
|
1,
|
|
12
12
|
2,
|
|
13
|
-
"2026-01-24
|
|
14
|
-
"2026-01-24
|
|
13
|
+
"2026-01-24 05:49:17",
|
|
14
|
+
"2026-01-24 05:49:17"
|
|
15
15
|
]
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -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_1769233757483",
|
|
7
|
+
"last_name": "last_name_1769233757483",
|
|
8
|
+
"email": "email_1769233757483",
|
|
9
9
|
"address_id": 1,
|
|
10
10
|
"active": 2,
|
|
11
|
-
"create_date": "2026-01-
|
|
12
|
-
"last_update": "2026-01-
|
|
11
|
+
"create_date": "2026-01-24T05:49:17.000Z",
|
|
12
|
+
"last_update": "2026-01-24T05:49:17.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_1769233757495",
|
|
7
|
+
"last_name": "last_name_1769233757483",
|
|
8
|
+
"email": "email_1769233757483",
|
|
9
9
|
"address_id": 1,
|
|
10
10
|
"active": 2,
|
|
11
|
-
"create_date": "2026-01-
|
|
12
|
-
"last_update": "2026-01-
|
|
11
|
+
"create_date": "2026-01-24T05:49:17.000Z",
|
|
12
|
+
"last_update": "2026-01-24T05:49:17.000Z"
|
|
13
13
|
}
|
|
14
14
|
],
|
|
15
15
|
"sql": {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sql": {
|
|
5
5
|
"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 ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?\n )",
|
|
6
6
|
"values": [
|
|
7
|
-
"
|
|
7
|
+
"title_1769233757534",
|
|
8
8
|
2026,
|
|
9
9
|
2,
|
|
10
10
|
1,
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
1,
|
|
15
15
|
"PG",
|
|
16
16
|
"Deleted Scenes,Behind the Scenes",
|
|
17
|
-
"2026-01-24
|
|
17
|
+
"2026-01-24 05:49:17"
|
|
18
18
|
]
|
|
19
19
|
}
|
|
20
20
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"rest": [
|
|
3
3
|
{
|
|
4
4
|
"film_id": 1001,
|
|
5
|
-
"title": "
|
|
5
|
+
"title": "title_1769233757534",
|
|
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-01-
|
|
16
|
+
"last_update": "2026-01-24T05:49:17.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_1769233757565",
|
|
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-01-
|
|
16
|
+
"last_update": "2026-01-24T05:49:17.000Z"
|
|
17
17
|
}
|
|
18
18
|
],
|
|
19
19
|
"sql": {
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
"sql": {
|
|
5
5
|
"sql": "INSERT INTO `rental` (\n `rental_date`, `inventory_id`, `customer_id`, `return_date`, `staff_id`, `last_update`\n ) VALUES (\n ?, ?, ?, ?, ?, ?\n )",
|
|
6
6
|
"values": [
|
|
7
|
-
"2026-01-24
|
|
7
|
+
"2026-01-24 05:49:17",
|
|
8
8
|
1,
|
|
9
9
|
1,
|
|
10
|
-
"2026-01-24
|
|
10
|
+
"2026-01-24 05:49:17",
|
|
11
11
|
1,
|
|
12
|
-
"2026-01-24
|
|
12
|
+
"2026-01-24 05:49:17"
|
|
13
13
|
]
|
|
14
14
|
}
|
|
15
15
|
}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"rest": [
|
|
3
3
|
{
|
|
4
4
|
"rental_id": 16050,
|
|
5
|
-
"rental_date": "2026-01-
|
|
5
|
+
"rental_date": "2026-01-24T05:49:17.000Z",
|
|
6
6
|
"inventory_id": 1,
|
|
7
7
|
"customer_id": 1,
|
|
8
|
-
"return_date": "2026-01-
|
|
8
|
+
"return_date": "2026-01-24T05:49:17.000Z",
|
|
9
9
|
"staff_id": 1,
|
|
10
|
-
"last_update": "2026-01-
|
|
10
|
+
"last_update": "2026-01-24T05:49:17.000Z"
|
|
11
11
|
}
|
|
12
12
|
],
|
|
13
13
|
"sql": {
|