@balena/pinejs 16.1.5 → 16.1.6-build-logger-dict-0abc88cc06bfb3eaa4852c8e2b7534edd816005c-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/.pinejs-cache.json +1 -1
- package/.versionbot/CHANGELOG.yml +13 -1
- package/CHANGELOG.md +5 -0
- package/VERSION +1 -1
- package/out/http-transactions/transactions.js +2 -2
- package/out/http-transactions/transactions.js.map +1 -1
- package/out/migrator/async.js +8 -9
- package/out/migrator/async.js.map +1 -1
- package/out/migrator/sync.js +6 -6
- package/out/migrator/sync.js.map +1 -1
- package/out/sbvr-api/abstract-sql.js +1 -1
- package/out/sbvr-api/abstract-sql.js.map +1 -1
- package/out/sbvr-api/permissions.js +3 -3
- package/out/sbvr-api/permissions.js.map +1 -1
- package/out/sbvr-api/sbvr-utils.d.ts +3 -0
- package/out/sbvr-api/sbvr-utils.js +16 -14
- package/out/sbvr-api/sbvr-utils.js.map +1 -1
- package/out/sbvr-api/uri-parser.js +1 -1
- package/out/sbvr-api/uri-parser.js.map +1 -1
- package/out/webresource-handler/index.js +1 -1
- package/out/webresource-handler/index.js.map +1 -1
- package/package.json +2 -2
- package/src/http-transactions/transactions.js +2 -2
- package/src/migrator/async.ts +10 -11
- package/src/migrator/sync.ts +6 -6
- package/src/sbvr-api/abstract-sql.ts +1 -1
- package/src/sbvr-api/permissions.ts +3 -3
- package/src/sbvr-api/sbvr-utils.ts +20 -13
- package/src/sbvr-api/uri-parser.ts +1 -1
- package/src/webresource-handler/index.ts +1 -1
@@ -1268,7 +1268,7 @@ export const getUserPermissions = async (
|
|
1268
1268
|
try {
|
1269
1269
|
return await $getUserPermissions(userId, tx);
|
1270
1270
|
} catch (err: any) {
|
1271
|
-
sbvrUtils.
|
1271
|
+
sbvrUtils.logger.Auth.error('Error loading user permissions', err);
|
1272
1272
|
throw err;
|
1273
1273
|
}
|
1274
1274
|
};
|
@@ -1396,7 +1396,7 @@ export const getApiKeyPermissions = async (
|
|
1396
1396
|
try {
|
1397
1397
|
return await $getApiKeyPermissions(apiKey, tx);
|
1398
1398
|
} catch (err: any) {
|
1399
|
-
sbvrUtils.
|
1399
|
+
sbvrUtils.logger.Auth.error('Error loading api key permissions', err);
|
1400
1400
|
throw err;
|
1401
1401
|
}
|
1402
1402
|
};
|
@@ -1577,7 +1577,7 @@ export const checkPermissionsMiddleware =
|
|
1577
1577
|
);
|
1578
1578
|
}
|
1579
1579
|
} catch (err: any) {
|
1580
|
-
sbvrUtils.
|
1580
|
+
sbvrUtils.logger.Auth.error('Error checking permissions', err);
|
1581
1581
|
res.status(503).end();
|
1582
1582
|
}
|
1583
1583
|
};
|
@@ -676,18 +676,19 @@ export const executeModels = async (
|
|
676
676
|
api[apiRoot].logger = { ...console };
|
677
677
|
if (model.logging != null) {
|
678
678
|
const defaultSetting = model.logging?.default ?? true;
|
679
|
-
const { logger } = api[apiRoot];
|
679
|
+
const { logger: log } = api[apiRoot];
|
680
680
|
for (const k of Object.keys(model.logging)) {
|
681
681
|
const key = k as keyof Console;
|
682
682
|
if (
|
683
683
|
key !== 'Console' &&
|
684
|
-
typeof
|
684
|
+
typeof log[key] === 'function' &&
|
685
685
|
!(model.logging?.[key] ?? defaultSetting)
|
686
686
|
) {
|
687
|
-
|
687
|
+
log[key] = _.noop;
|
688
688
|
}
|
689
689
|
}
|
690
690
|
}
|
691
|
+
logger[apiRoot] = api[apiRoot].logger;
|
691
692
|
return compiledModel;
|
692
693
|
// Only update the dev models once all models have finished executing.
|
693
694
|
}),
|
@@ -856,7 +857,7 @@ export const runRule = (() => {
|
|
856
857
|
translator.addTypes(sbvrTypes);
|
857
858
|
return async (vocab: string, rule: string) => {
|
858
859
|
const seModel = models[vocab].se;
|
859
|
-
const
|
860
|
+
const log = logger[vocab];
|
860
861
|
let lfModel: LFModel;
|
861
862
|
let slfModel: LFModel;
|
862
863
|
let abstractSqlModel: AbstractSQLCompiler.AbstractSqlModel;
|
@@ -867,7 +868,7 @@ export const runRule = (() => {
|
|
867
868
|
'Process',
|
868
869
|
);
|
869
870
|
} catch (e) {
|
870
|
-
|
871
|
+
log.error('Error parsing rule', rule, e);
|
871
872
|
throw new Error(`Error parsing rule'${rule}': ${e}`);
|
872
873
|
}
|
873
874
|
|
@@ -881,7 +882,7 @@ export const runRule = (() => {
|
|
881
882
|
translator.reset();
|
882
883
|
abstractSqlModel = translator.match(slfModel, 'Process');
|
883
884
|
} catch (e) {
|
884
|
-
|
885
|
+
log.error('Error compiling rule', rule, e);
|
885
886
|
throw new Error(`Error compiling rule '${rule}': ${e}`);
|
886
887
|
}
|
887
888
|
|
@@ -1021,12 +1022,18 @@ export class PinejsClient extends PinejsClientCore {
|
|
1021
1022
|
}
|
1022
1023
|
}
|
1023
1024
|
|
1025
|
+
/**
|
1026
|
+
* @deprecated Use `logger[vocab]` instead of `api[vocab].logger`
|
1027
|
+
*/
|
1024
1028
|
export type LoggingClient = PinejsClient & {
|
1025
1029
|
logger: Console;
|
1026
1030
|
};
|
1027
1031
|
export const api: {
|
1028
1032
|
[vocab: string]: LoggingClient;
|
1029
1033
|
} = {};
|
1034
|
+
export const logger: {
|
1035
|
+
[vocab: string]: Console;
|
1036
|
+
} = {};
|
1030
1037
|
|
1031
1038
|
// We default to guest only permissions if no req object is passed in
|
1032
1039
|
export const runURI = async (
|
@@ -1224,7 +1231,7 @@ export const getModel = (vocabulary: string) => {
|
|
1224
1231
|
|
1225
1232
|
const runODataRequest = (req: Express.Request, vocabulary: string) => {
|
1226
1233
|
if (env.DEBUG) {
|
1227
|
-
|
1234
|
+
logger[vocabulary].log('Parsing', req.method, req.url);
|
1228
1235
|
}
|
1229
1236
|
|
1230
1237
|
// Get the hooks for the current method/vocabulary as we know it,
|
@@ -1535,10 +1542,10 @@ const runRequest = async (
|
|
1535
1542
|
tx: Db.Tx,
|
1536
1543
|
request: uriParser.ODataRequest,
|
1537
1544
|
): Promise<Response> => {
|
1538
|
-
const
|
1545
|
+
const log = logger[request.vocabulary];
|
1539
1546
|
|
1540
1547
|
if (env.DEBUG) {
|
1541
|
-
|
1548
|
+
log.log('Running', req.method, req.url);
|
1542
1549
|
}
|
1543
1550
|
let result: Db.Result | number | undefined;
|
1544
1551
|
|
@@ -1566,7 +1573,7 @@ const runRequest = async (
|
|
1566
1573
|
} catch (err: any) {
|
1567
1574
|
if (err instanceof db.DatabaseError) {
|
1568
1575
|
prettifyConstraintError(err, request);
|
1569
|
-
|
1576
|
+
log.error(err);
|
1570
1577
|
// Override the error message so we don't leak any internal db info
|
1571
1578
|
err.message = 'Database error';
|
1572
1579
|
throw err;
|
@@ -1580,7 +1587,7 @@ const runRequest = async (
|
|
1580
1587
|
err instanceof TypeError ||
|
1581
1588
|
err instanceof URIError
|
1582
1589
|
) {
|
1583
|
-
|
1590
|
+
log.error(err);
|
1584
1591
|
throw new InternalRequestError();
|
1585
1592
|
}
|
1586
1593
|
throw err;
|
@@ -1740,7 +1747,7 @@ const runQuery = async (
|
|
1740
1747
|
);
|
1741
1748
|
|
1742
1749
|
if (env.DEBUG) {
|
1743
|
-
|
1750
|
+
logger[vocabulary].log(query, values);
|
1744
1751
|
}
|
1745
1752
|
|
1746
1753
|
// We only add the returning clause if it's been requested and `affectedIds` hasn't been populated yet
|
@@ -1848,7 +1855,7 @@ const respondPost = async (
|
|
1848
1855
|
id,
|
1849
1856
|
);
|
1850
1857
|
if (env.DEBUG) {
|
1851
|
-
|
1858
|
+
logger[vocab].log('Insert ID: ', request.resourceName, id);
|
1852
1859
|
}
|
1853
1860
|
|
1854
1861
|
let result: AnyObject = { d: [{ id }] };
|
@@ -421,7 +421,7 @@ export const translateUri = <
|
|
421
421
|
request.values = new Proxy(request.values, {
|
422
422
|
set: (obj: ODataRequest['values'], prop: string, value) => {
|
423
423
|
if (!Object.prototype.hasOwnProperty.call(obj, prop)) {
|
424
|
-
sbvrUtils.
|
424
|
+
sbvrUtils.logger[request.vocabulary].warn(
|
425
425
|
`Assigning a new request.values property '${prop}' however it will be ignored`,
|
426
426
|
);
|
427
427
|
}
|