@tasenor/common-node 1.9.125 → 1.9.126

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.
@@ -1,13 +1,30 @@
1
1
  import { BackendPlugin } from './BackendPlugin';
2
+ import { ALL } from '@tasenor/common';
3
+ /**
4
+ * Plugin data source names and query parameters.
5
+ */
6
+ export interface DataPluginSources {
7
+ common: string[];
8
+ backend: string[];
9
+ }
2
10
  /**
3
11
  * A plugin providing mainly some kind of possibly frequently updated data source services.
4
- * Data will be publicly available from API.
12
+ * Data will be publicly available from API `/knowledge` end-point.
5
13
  */
6
14
  export declare class DataPlugin extends BackendPlugin {
7
- protected sources: string[];
8
- constructor(...sources: string[]);
15
+ protected sources: DataPluginSources;
16
+ protected jsonCache: Record<string, Record<string, unknown>>;
17
+ constructor(sources: DataPluginSources);
18
+ /**
19
+ * Provide the public knowledge this plugin is providing and which is given in default API.
20
+ */
21
+ getCommonKnowledge(): Promise<Record<string, unknown>>;
22
+ /**
23
+ * Load and cache named JSON file for this plugin.
24
+ */
25
+ loadCached<T>(name: string): Record<string, T>;
9
26
  /**
10
- * Provide the public knowledge this plugin is providing.
27
+ * Data service used internally in the backend. If return value is `undefined`, query was not understood.
11
28
  */
12
- getKnowledge(): Promise<Record<string, unknown>>;
29
+ queryBackend<T>(dataSet: string, query: typeof ALL | string): Promise<undefined | T>;
13
30
  }
@@ -2,25 +2,45 @@ import fs from 'fs';
2
2
  import { BackendPlugin } from './BackendPlugin';
3
3
  /**
4
4
  * A plugin providing mainly some kind of possibly frequently updated data source services.
5
- * Data will be publicly available from API.
5
+ * Data will be publicly available from API `/knowledge` end-point.
6
6
  */
7
7
  export class DataPlugin extends BackendPlugin {
8
8
  sources;
9
- constructor(...sources) {
9
+ jsonCache;
10
+ constructor(sources) {
10
11
  super();
11
12
  this.sources = sources;
13
+ this.jsonCache = {};
12
14
  }
13
15
  /**
14
- * Provide the public knowledge this plugin is providing.
16
+ * Provide the public knowledge this plugin is providing and which is given in default API.
15
17
  */
16
- async getKnowledge() {
18
+ async getCommonKnowledge() {
17
19
  const result = {};
18
- for (const source of this.sources) {
20
+ for (const source of this.sources.common) {
19
21
  const filePath = this.filePath(`${source}.json`);
20
22
  const data = JSON.parse(fs.readFileSync(filePath).toString('utf-8'));
21
23
  Object.assign(result, { [source]: data });
22
24
  }
23
25
  return result;
24
26
  }
27
+ /**
28
+ * Load and cache named JSON file for this plugin.
29
+ */
30
+ loadCached(name) {
31
+ if (this.jsonCache[name]) {
32
+ return this.jsonCache[name];
33
+ }
34
+ const filePath = this.filePath(name);
35
+ this.jsonCache[name] = JSON.parse(fs.readFileSync(filePath).toString('utf-8'));
36
+ return this.jsonCache[name];
37
+ }
38
+ /**
39
+ * Data service used internally in the backend. If return value is `undefined`, query was not understood.
40
+ */
41
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
42
+ async queryBackend(dataSet, query) {
43
+ return undefined;
44
+ }
25
45
  }
26
46
  //# sourceMappingURL=DataPlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataPlugin.js","sourceRoot":"","sources":["../../../src/plugins/DataPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C;;;GAGG;AACH,MAAM,OAAO,UAAW,SAAQ,aAAa;IAEjC,OAAO,CAAU;IAE3B,YAAY,GAAG,OAAiB;QAC9B,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,MAAM,GAAG,EAAE,CAAA;QACjB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,CAAA;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;YACpE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;SAC1C;QACD,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"DataPlugin.js","sourceRoot":"","sources":["../../../src/plugins/DataPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAa/C;;;GAGG;AACH,MAAM,OAAO,UAAW,SAAQ,aAAa;IAEjC,OAAO,CAAmB;IAC1B,SAAS,CAAyC;IAE5D,YAAY,OAA0B;QACpC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,MAAM,MAAM,GAAG,EAAE,CAAA;QACjB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,CAAA;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;YACpE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;SAC1C;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;OAEG;IACH,UAAU,CAAI,IAAY;QACxB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACxB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAsB,CAAA;SACjD;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;QAC9E,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAsB,CAAA;IAClD,CAAC;IAED;;OAEG;IACH,6DAA6D;IAC7D,KAAK,CAAC,YAAY,CAAI,OAAe,EAAE,KAA0B;QAC/D,OAAO,SAAS,CAAA;IAClB,CAAC;CACF"}
@@ -110,7 +110,7 @@ export declare class ReportPlugin extends BackendPlugin {
110
110
  * @param options
111
111
  * @param columns
112
112
  */
113
- preProcess(id: ReportID, entries: ReportData[], options: ReportQueryParams, settings: ReportMeta, columns: ReportColumnDefinition[]): ReportLine[];
113
+ preProcess(id: ReportID, entries: ReportData[], options: ReportQueryParams, settings: ReportMeta, columns: ReportColumnDefinition[]): Promise<ReportLine[]>;
114
114
  /**
115
115
  * Do post processing for report data before sending it.
116
116
  * @param id Report type.
@@ -120,7 +120,7 @@ export declare class ReportPlugin extends BackendPlugin {
120
120
  * @param columns Column definitions.
121
121
  * @returns
122
122
  */
123
- postProcess(id: ReportID, data: ReportLine[], options: ReportQueryParams, settings: ReportMeta, columns: ReportColumnDefinition[]): ReportLine[];
123
+ postProcess(id: ReportID, data: ReportLine[], options: ReportQueryParams, settings: ReportMeta, columns: ReportColumnDefinition[]): Promise<ReportLine[]>;
124
124
  /**
125
125
  * A helper to combine final report from pre-processed material for reports using TSV text description file.
126
126
  * @param accountNumbers A set of all account numbers found.
@@ -176,7 +176,7 @@ export class ReportPlugin extends BackendPlugin {
176
176
  options.periods = recentPeriods; // Save periods for further reference.
177
177
  }
178
178
  // Build a query basics.
179
- let sqlQuery = db.select('document.period_id AS periodId', 'document.number AS documentId', 'document.date', 'account.name', 'account.type', 'account.number', db.raw(`CAST(ROUND(${negateSql} * entry.amount * 100) AS BIGINT) AS amount`), 'entry.description', 'entry.data')
179
+ let sqlQuery = db.select('document.period_id AS periodId', 'document.number AS documentId', 'document.date', 'account.name', 'account.type', 'account.number', db.raw(`CAST(ROUND(${negateSql} * entry.amount * 100) AS BIGINT) AS amount`), 'account.data as accountData', 'entry.description', 'entry.data')
180
180
  .from('entry')
181
181
  .leftJoin('account', 'account.id', 'entry.account_id')
182
182
  .leftJoin('document', 'document.id', 'entry.document_id')
@@ -249,8 +249,8 @@ export class ReportPlugin extends BackendPlugin {
249
249
  entries = this.doFiltering(id, entries, options, settings);
250
250
  // We have now relevant entries collected. Use plugin features next.
251
251
  const columns = await this.getColumns(id, entries, options, settings);
252
- let data = this.preProcess(id, entries, options, settings, columns);
253
- data = this.postProcess(id, data, options, settings, columns);
252
+ let data = await this.preProcess(id, entries, options, settings, columns);
253
+ data = await this.postProcess(id, data, options, settings, columns);
254
254
  const report = {
255
255
  format: id,
256
256
  columns,
@@ -293,7 +293,7 @@ export class ReportPlugin extends BackendPlugin {
293
293
  * @param options
294
294
  * @param columns
295
295
  */
296
- preProcess(id, entries, options, settings, columns) {
296
+ async preProcess(id, entries, options, settings, columns) {
297
297
  throw new Error(`Report plugin ${this.constructor.name} does not implement preProcess().`);
298
298
  }
299
299
  /**
@@ -305,7 +305,7 @@ export class ReportPlugin extends BackendPlugin {
305
305
  * @param columns Column definitions.
306
306
  * @returns
307
307
  */
308
- postProcess(id, data, options, settings, columns) {
308
+ async postProcess(id, data, options, settings, columns) {
309
309
  return data;
310
310
  }
311
311
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ReportPlugin.js","sourceRoot":"","sources":["../../../src/plugins/ReportPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReportPlugin.js","sourceRoot":"","sources":["../../../src/plugins/ReportPlugin.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ export type ServicePluginRequestOptions = {
5
5
  rateLimitDelay?: number;
6
6
  };
7
7
  /**
8
- * An API end point provider.
8
+ * An API end point information provider.
9
9
  */
10
10
  export declare class ServicePlugin extends BackendPlugin {
11
11
  private services;
@@ -61,7 +61,7 @@ export declare class ServicePlugin extends BackendPlugin {
61
61
  */
62
62
  cacheHeadersKey(service: any, header: any): {};
63
63
  /**
64
- * Pick meaningful keys unique from the query parameters for using as a key, whe storing result to teh cache.
64
+ * Pick meaningful keys unique from the query parameters for using as a key, whe storing result to the cache.
65
65
  * @param service
66
66
  * @param params
67
67
  * By default, all parameters are used as cache key.
@@ -3,7 +3,7 @@ import axios from 'axios';
3
3
  import { log, note, error, waitPromise } from '@tasenor/common';
4
4
  import { BackendPlugin } from './BackendPlugin';
5
5
  /**
6
- * An API end point provider.
6
+ * An API end point information provider.
7
7
  */
8
8
  export class ServicePlugin extends BackendPlugin {
9
9
  services;
@@ -124,7 +124,7 @@ export class ServicePlugin extends BackendPlugin {
124
124
  return {};
125
125
  }
126
126
  /**
127
- * Pick meaningful keys unique from the query parameters for using as a key, whe storing result to teh cache.
127
+ * Pick meaningful keys unique from the query parameters for using as a key, whe storing result to the cache.
128
128
  * @param service
129
129
  * @param params
130
130
  * By default, all parameters are used as cache key.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tasenor/common-node",
3
- "version": "1.9.125",
3
+ "version": "1.9.126",
4
4
  "description": "Common Node-parts of Tasenor project",
5
5
  "main": "src/index.ts",
6
6
  "types": "src/index.ts",
@@ -36,7 +36,7 @@
36
36
  "sqlite3": "^5.1.6",
37
37
  "tar": "^6.1.15",
38
38
  "ts-opaque": "^3.0.1",
39
- "@tasenor/common": "1.9.125"
39
+ "@tasenor/common": "1.9.126"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@jest/globals": "^29.6.1",
@@ -46,7 +46,7 @@
46
46
  "ts-jest": "^29.1.1",
47
47
  "typescript": "^5.1.6",
48
48
  "eslint-config-tasenor": "0.0.0",
49
- "@tasenor/config": "1.9.125"
49
+ "@tasenor/config": "1.9.126"
50
50
  },
51
51
  "scripts": {
52
52
  "ci": "pnpm run lint && pnpm run test",
@@ -1,29 +1,62 @@
1
1
  import fs from 'fs'
2
2
  import { BackendPlugin } from './BackendPlugin'
3
+ import { ALL } from '@tasenor/common'
4
+
5
+ /**
6
+ * Plugin data source names and query parameters.
7
+ */
8
+ export interface DataPluginSources {
9
+ // List of fixed JSON files (without .json) that are directly added to public common knowledge via API.
10
+ common: string[]
11
+ // List of data sets provided for backend internal use only.
12
+ backend: string[]
13
+ }
3
14
 
4
15
  /**
5
16
  * A plugin providing mainly some kind of possibly frequently updated data source services.
6
- * Data will be publicly available from API.
17
+ * Data will be publicly available from API `/knowledge` end-point.
7
18
  */
8
19
  export class DataPlugin extends BackendPlugin {
9
20
 
10
- protected sources: string[]
21
+ protected sources: DataPluginSources
22
+ protected jsonCache: Record<string, Record<string, unknown>>
11
23
 
12
- constructor(...sources: string[]) {
24
+ constructor(sources: DataPluginSources) {
13
25
  super()
14
26
  this.sources = sources
27
+ this.jsonCache = {}
15
28
  }
16
29
 
17
30
  /**
18
- * Provide the public knowledge this plugin is providing.
31
+ * Provide the public knowledge this plugin is providing and which is given in default API.
19
32
  */
20
- async getKnowledge(): Promise<Record<string, unknown>> {
33
+ async getCommonKnowledge(): Promise<Record<string, unknown>> {
21
34
  const result = {}
22
- for (const source of this.sources) {
35
+ for (const source of this.sources.common) {
23
36
  const filePath = this.filePath(`${source}.json`)
24
37
  const data = JSON.parse(fs.readFileSync(filePath).toString('utf-8'))
25
38
  Object.assign(result, { [source]: data })
26
39
  }
27
40
  return result
28
41
  }
42
+
43
+ /**
44
+ * Load and cache named JSON file for this plugin.
45
+ */
46
+ loadCached<T>(name: string): Record<string, T> {
47
+ if (this.jsonCache[name]) {
48
+ return this.jsonCache[name] as Record<string, T>
49
+ }
50
+ const filePath = this.filePath(name)
51
+ this.jsonCache[name] = JSON.parse(fs.readFileSync(filePath).toString('utf-8'))
52
+ return this.jsonCache[name] as Record<string, T>
53
+ }
54
+
55
+ /**
56
+ * Data service used internally in the backend. If return value is `undefined`, query was not understood.
57
+ */
58
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
59
+ async queryBackend<T>(dataSet: string, query: typeof ALL | string): Promise<undefined | T> {
60
+ return undefined
61
+ }
29
62
  }
@@ -203,6 +203,7 @@ export class ReportPlugin extends BackendPlugin {
203
203
  'account.type',
204
204
  'account.number',
205
205
  db.raw(`CAST(ROUND(${negateSql} * entry.amount * 100) AS BIGINT) AS amount`),
206
+ 'account.data as accountData',
206
207
  'entry.description',
207
208
  'entry.data'
208
209
  )
@@ -290,8 +291,8 @@ export class ReportPlugin extends BackendPlugin {
290
291
 
291
292
  // We have now relevant entries collected. Use plugin features next.
292
293
  const columns: ReportColumnDefinition[] = await this.getColumns(id, entries, options as ReportOptions, settings)
293
- let data = this.preProcess(id, entries, options, settings, columns) as ReportLine[]
294
- data = this.postProcess(id, data, options, settings, columns)
294
+ let data = await this.preProcess(id, entries, options, settings, columns) as ReportLine[]
295
+ data = await this.postProcess(id, data, options, settings, columns)
295
296
  const report = {
296
297
  format: id,
297
298
  columns,
@@ -338,7 +339,7 @@ export class ReportPlugin extends BackendPlugin {
338
339
  * @param options
339
340
  * @param columns
340
341
  */
341
- preProcess(id: ReportID, entries: ReportData[], options: ReportQueryParams, settings: ReportMeta, columns: ReportColumnDefinition[]): ReportLine[] {
342
+ async preProcess(id: ReportID, entries: ReportData[], options: ReportQueryParams, settings: ReportMeta, columns: ReportColumnDefinition[]): Promise<ReportLine[]> {
342
343
  throw new Error(`Report plugin ${this.constructor.name} does not implement preProcess().`)
343
344
  }
344
345
 
@@ -351,7 +352,7 @@ export class ReportPlugin extends BackendPlugin {
351
352
  * @param columns Column definitions.
352
353
  * @returns
353
354
  */
354
- postProcess(id: ReportID, data: ReportLine[], options: ReportQueryParams, settings: ReportMeta, columns: ReportColumnDefinition[]): ReportLine[] {
355
+ async postProcess(id: ReportID, data: ReportLine[], options: ReportQueryParams, settings: ReportMeta, columns: ReportColumnDefinition[]): Promise<ReportLine[]> {
355
356
  return data
356
357
  }
357
358
 
@@ -9,7 +9,7 @@ export type ServicePluginRequestOptions = {
9
9
  }
10
10
 
11
11
  /**
12
- * An API end point provider.
12
+ * An API end point information provider.
13
13
  */
14
14
  export class ServicePlugin extends BackendPlugin {
15
15
 
@@ -140,7 +140,7 @@ export class ServicePlugin extends BackendPlugin {
140
140
  }
141
141
 
142
142
  /**
143
- * Pick meaningful keys unique from the query parameters for using as a key, whe storing result to teh cache.
143
+ * Pick meaningful keys unique from the query parameters for using as a key, whe storing result to the cache.
144
144
  * @param service
145
145
  * @param params
146
146
  * By default, all parameters are used as cache key.