@balena/pinejs 15.0.0-true-boolean-911aca4062d3132ad3c34712014739b6849fa13a → 15.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (145) hide show
  1. package/.dockerignore +4 -0
  2. package/.github/workflows/flowzone.yml +21 -0
  3. package/.husky/pre-commit +4 -0
  4. package/.pinejs-cache.json +1 -0
  5. package/.resinci.yml +1 -0
  6. package/.versionbot/CHANGELOG.yml +9678 -2001
  7. package/CHANGELOG.md +2975 -2
  8. package/Dockerfile +14 -0
  9. package/Gruntfile.ts +3 -6
  10. package/README.md +10 -1
  11. package/VERSION +1 -0
  12. package/build/browser.ts +1 -1
  13. package/build/config.ts +0 -1
  14. package/docker-compose.npm-test.yml +11 -0
  15. package/docs/AdvancedUsage.md +77 -63
  16. package/docs/GettingStarted.md +90 -41
  17. package/docs/Migrations.md +102 -1
  18. package/docs/ProjectConfig.md +12 -21
  19. package/docs/Testing.md +7 -0
  20. package/out/bin/abstract-sql-compiler.js +17 -17
  21. package/out/bin/abstract-sql-compiler.js.map +1 -1
  22. package/out/bin/odata-compiler.js +23 -20
  23. package/out/bin/odata-compiler.js.map +1 -1
  24. package/out/bin/sbvr-compiler.js +22 -22
  25. package/out/bin/sbvr-compiler.js.map +1 -1
  26. package/out/bin/utils.d.ts +2 -2
  27. package/out/bin/utils.js +3 -3
  28. package/out/bin/utils.js.map +1 -1
  29. package/out/config-loader/config-loader.d.ts +9 -8
  30. package/out/config-loader/config-loader.js +135 -78
  31. package/out/config-loader/config-loader.js.map +1 -1
  32. package/out/config-loader/env.d.ts +41 -16
  33. package/out/config-loader/env.js +46 -2
  34. package/out/config-loader/env.js.map +1 -1
  35. package/out/data-server/sbvr-server.d.ts +2 -19
  36. package/out/data-server/sbvr-server.js +44 -38
  37. package/out/data-server/sbvr-server.js.map +1 -1
  38. package/out/database-layer/db.d.ts +32 -14
  39. package/out/database-layer/db.js +120 -41
  40. package/out/database-layer/db.js.map +1 -1
  41. package/out/express-emulator/express.js +10 -11
  42. package/out/express-emulator/express.js.map +1 -1
  43. package/out/http-transactions/transactions.d.ts +2 -18
  44. package/out/http-transactions/transactions.js +29 -21
  45. package/out/http-transactions/transactions.js.map +1 -1
  46. package/out/migrator/async.d.ts +7 -0
  47. package/out/migrator/async.js +168 -0
  48. package/out/migrator/async.js.map +1 -0
  49. package/out/migrator/migrations.sbvr +43 -0
  50. package/out/migrator/sync.d.ts +9 -0
  51. package/out/migrator/sync.js +106 -0
  52. package/out/migrator/sync.js.map +1 -0
  53. package/out/migrator/utils.d.ts +78 -0
  54. package/out/migrator/utils.js +283 -0
  55. package/out/migrator/utils.js.map +1 -0
  56. package/out/odata-metadata/odata-metadata-generator.js +10 -13
  57. package/out/odata-metadata/odata-metadata-generator.js.map +1 -1
  58. package/out/passport-pinejs/passport-pinejs.d.ts +1 -1
  59. package/out/passport-pinejs/passport-pinejs.js +8 -7
  60. package/out/passport-pinejs/passport-pinejs.js.map +1 -1
  61. package/out/pinejs-session-store/pinejs-session-store.d.ts +1 -1
  62. package/out/pinejs-session-store/pinejs-session-store.js +20 -6
  63. package/out/pinejs-session-store/pinejs-session-store.js.map +1 -1
  64. package/out/sbvr-api/abstract-sql.d.ts +3 -2
  65. package/out/sbvr-api/abstract-sql.js +9 -9
  66. package/out/sbvr-api/abstract-sql.js.map +1 -1
  67. package/out/sbvr-api/cached-compile.js +1 -1
  68. package/out/sbvr-api/cached-compile.js.map +1 -1
  69. package/out/sbvr-api/common-types.d.ts +6 -5
  70. package/out/sbvr-api/control-flow.d.ts +8 -1
  71. package/out/sbvr-api/control-flow.js +36 -9
  72. package/out/sbvr-api/control-flow.js.map +1 -1
  73. package/out/sbvr-api/errors.d.ts +47 -40
  74. package/out/sbvr-api/errors.js +78 -77
  75. package/out/sbvr-api/errors.js.map +1 -1
  76. package/out/sbvr-api/express-extension.d.ts +4 -0
  77. package/out/sbvr-api/hooks.d.ts +16 -15
  78. package/out/sbvr-api/hooks.js +74 -48
  79. package/out/sbvr-api/hooks.js.map +1 -1
  80. package/out/sbvr-api/odata-response.d.ts +2 -2
  81. package/out/sbvr-api/odata-response.js +28 -30
  82. package/out/sbvr-api/odata-response.js.map +1 -1
  83. package/out/sbvr-api/permissions.d.ts +17 -16
  84. package/out/sbvr-api/permissions.js +369 -304
  85. package/out/sbvr-api/permissions.js.map +1 -1
  86. package/out/sbvr-api/sbvr-utils.d.ts +33 -15
  87. package/out/sbvr-api/sbvr-utils.js +397 -235
  88. package/out/sbvr-api/sbvr-utils.js.map +1 -1
  89. package/out/sbvr-api/translations.d.ts +6 -0
  90. package/out/sbvr-api/translations.js +150 -0
  91. package/out/sbvr-api/translations.js.map +1 -0
  92. package/out/sbvr-api/uri-parser.d.ts +23 -17
  93. package/out/sbvr-api/uri-parser.js +33 -27
  94. package/out/sbvr-api/uri-parser.js.map +1 -1
  95. package/out/sbvr-api/user.sbvr +2 -0
  96. package/out/server-glue/module.d.ts +6 -6
  97. package/out/server-glue/module.js +4 -2
  98. package/out/server-glue/module.js.map +1 -1
  99. package/out/server-glue/server.js +5 -5
  100. package/out/server-glue/server.js.map +1 -1
  101. package/package.json +89 -73
  102. package/pinejs.png +0 -0
  103. package/repo.yml +9 -9
  104. package/src/bin/abstract-sql-compiler.ts +5 -7
  105. package/src/bin/odata-compiler.ts +11 -13
  106. package/src/bin/sbvr-compiler.ts +11 -17
  107. package/src/bin/utils.ts +3 -5
  108. package/src/config-loader/config-loader.ts +167 -53
  109. package/src/config-loader/env.ts +106 -6
  110. package/src/data-server/sbvr-server.js +44 -38
  111. package/src/database-layer/db.ts +205 -64
  112. package/src/express-emulator/express.js +10 -11
  113. package/src/http-transactions/transactions.js +29 -21
  114. package/src/migrator/async.ts +323 -0
  115. package/src/migrator/migrations.sbvr +43 -0
  116. package/src/migrator/sync.ts +152 -0
  117. package/src/migrator/utils.ts +458 -0
  118. package/src/odata-metadata/odata-metadata-generator.ts +12 -15
  119. package/src/passport-pinejs/passport-pinejs.ts +9 -7
  120. package/src/pinejs-session-store/pinejs-session-store.ts +15 -1
  121. package/src/sbvr-api/abstract-sql.ts +17 -14
  122. package/src/sbvr-api/common-types.ts +2 -1
  123. package/src/sbvr-api/control-flow.ts +45 -11
  124. package/src/sbvr-api/errors.ts +82 -77
  125. package/src/sbvr-api/express-extension.ts +6 -1
  126. package/src/sbvr-api/hooks.ts +123 -50
  127. package/src/sbvr-api/odata-response.ts +23 -28
  128. package/src/sbvr-api/permissions.ts +548 -415
  129. package/src/sbvr-api/sbvr-utils.ts +581 -259
  130. package/src/sbvr-api/translations.ts +248 -0
  131. package/src/sbvr-api/uri-parser.ts +63 -49
  132. package/src/sbvr-api/user.sbvr +2 -0
  133. package/src/server-glue/module.ts +16 -10
  134. package/src/server-glue/server.ts +5 -5
  135. package/tsconfig.dev.json +1 -0
  136. package/tsconfig.json +1 -2
  137. package/typings/lf-to-abstract-sql.d.ts +6 -9
  138. package/typings/memoizee.d.ts +1 -1
  139. package/.github/CODEOWNERS +0 -1
  140. package/circle.yml +0 -37
  141. package/docs/todo.txt +0 -22
  142. package/out/migrator/migrator.d.ts +0 -20
  143. package/out/migrator/migrator.js +0 -188
  144. package/out/migrator/migrator.js.map +0 -1
  145. package/src/migrator/migrator.ts +0 -286
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.runHooks = exports.addPureHook = exports.addSideEffectHook = exports.addHook = exports.getHooks = exports.rollbackRequestHooks = void 0;
4
- const Bluebird = require("bluebird");
5
4
  const _ = require("lodash");
6
5
  const control_flow_1 = require("./control-flow");
7
6
  const memoize = require("memoizee");
@@ -32,7 +31,13 @@ class SideEffectHook extends Hook {
32
31
  }
33
32
  registerRollback(fn) {
34
33
  if (this.rolledBack) {
35
- Bluebird.try(fn);
34
+ (async () => {
35
+ try {
36
+ await fn();
37
+ }
38
+ catch {
39
+ }
40
+ })();
36
41
  }
37
42
  else {
38
43
  this.rollbackFns.push(fn);
@@ -43,17 +48,21 @@ class SideEffectHook extends Hook {
43
48
  return;
44
49
  }
45
50
  this.rolledBack = true;
46
- await control_flow_1.settleMapSeries(this.rollbackFns, (fn) => fn());
51
+ await (0, control_flow_1.settleMapSeries)(this.rollbackFns, (fn) => fn());
47
52
  }
48
53
  }
49
- const rollbackRequestHooks = (hooks) => {
50
- if (hooks == null) {
54
+ const rollbackRequestHooks = (hooksList) => {
55
+ if (hooksList == null) {
51
56
  return;
52
57
  }
53
- control_flow_1.settleMapSeries(_(hooks).flatMap().compact().value(), async (hook) => {
54
- if (hook instanceof SideEffectHook) {
55
- await hook.rollback();
56
- }
58
+ const sideEffectHooks = hooksList
59
+ .flatMap(([, v]) => Object.values(v).flat())
60
+ .filter((hook) => hook instanceof SideEffectHook);
61
+ if (sideEffectHooks.length === 0) {
62
+ return;
63
+ }
64
+ (0, control_flow_1.settleMapSeries)(sideEffectHooks, async (hook) => {
65
+ await hook.rollback();
57
66
  });
58
67
  };
59
68
  exports.rollbackRequestHooks = rollbackRequestHooks;
@@ -83,19 +92,24 @@ const getResourceHooks = (vocabHooks, resourceName) => {
83
92
  }
84
93
  return mergeHooks(vocabHooks[resourceName], vocabHooks['all']);
85
94
  };
86
- const getVocabHooks = (methodHooks, vocabulary, resourceName) => {
95
+ const getVocabHooks = (methodHooks, vocabulary, resourceName, includeAllVocab) => {
87
96
  if (methodHooks == null) {
88
97
  return {};
89
98
  }
90
- return mergeHooks(getResourceHooks(methodHooks[vocabulary], resourceName), getResourceHooks(methodHooks['all'], resourceName));
99
+ const vocabHooks = getResourceHooks(methodHooks[vocabulary], resourceName);
100
+ if (!includeAllVocab) {
101
+ return vocabHooks;
102
+ }
103
+ return mergeHooks(vocabHooks, getResourceHooks(methodHooks['all'], resourceName));
91
104
  };
92
- const getMethodHooks = memoize((method, vocabulary, resourceName) => mergeHooks(getVocabHooks(apiHooks[method], vocabulary, resourceName), getVocabHooks(apiHooks['all'], vocabulary, resourceName)), { primitive: true });
93
- const getHooks = (request) => {
105
+ const getMethodHooks = memoize((method, vocabulary, resourceName, includeAllVocab) => mergeHooks(getVocabHooks(apiHooks[method], vocabulary, resourceName, includeAllVocab), getVocabHooks(apiHooks['all'], vocabulary, resourceName, includeAllVocab)), { primitive: true });
106
+ const getHooks = (request, includeAllVocab) => {
94
107
  let { resourceName } = request;
95
108
  if (resourceName != null) {
96
- resourceName = sbvr_utils_1.resolveSynonym(request);
109
+ resourceName = (0, sbvr_utils_1.resolveSynonym)(request)
110
+ .replace(/\$.*$/, '');
97
111
  }
98
- return instantiateHooks(getMethodHooks(request.method, request.vocabulary, resourceName));
112
+ return instantiateHooks(getMethodHooks(request.method, request.vocabulary, resourceName, includeAllVocab));
99
113
  };
100
114
  exports.getHooks = getHooks;
101
115
  exports.getHooks.clear = () => getMethodHooks.clear();
@@ -111,7 +125,6 @@ const apiHooks = {
111
125
  };
112
126
  apiHooks.MERGE = apiHooks.PATCH;
113
127
  const addHook = (method, vocabulary, resourceName, hooks) => {
114
- var _a, _b, _c;
115
128
  const methodHooks = apiHooks[method];
116
129
  if (methodHooks == null) {
117
130
  throw new Error('Unsupported method: ' + method);
@@ -124,14 +137,14 @@ const addHook = (method, vocabulary, resourceName, hooks) => {
124
137
  else {
125
138
  let abstractSqlModel;
126
139
  try {
127
- abstractSqlModel = sbvr_utils_1.getAbstractSqlModel({ vocabulary });
140
+ abstractSqlModel = (0, sbvr_utils_1.getAbstractSqlModel)({ vocabulary });
128
141
  }
129
- catch (_d) {
142
+ catch {
130
143
  throw new Error('Unknown api root: ' + vocabulary);
131
144
  }
132
145
  if (resourceName !== 'all') {
133
146
  const origResourceName = resourceName;
134
- resourceName = sbvr_utils_1.resolveSynonym({ vocabulary, resourceName });
147
+ resourceName = (0, sbvr_utils_1.resolveSynonym)({ vocabulary, resourceName });
135
148
  if (abstractSqlModel.tables[resourceName] == null) {
136
149
  throw new Error('Unknown resource for api root: ' +
137
150
  origResourceName +
@@ -140,9 +153,9 @@ const addHook = (method, vocabulary, resourceName, hooks) => {
140
153
  }
141
154
  }
142
155
  }
143
- (_a = methodHooks[vocabulary]) !== null && _a !== void 0 ? _a : (methodHooks[vocabulary] = {});
156
+ methodHooks[vocabulary] ??= {};
144
157
  const apiRootHooks = methodHooks[vocabulary];
145
- (_b = apiRootHooks[resourceName]) !== null && _b !== void 0 ? _b : (apiRootHooks[resourceName] = {});
158
+ apiRootHooks[resourceName] ??= {};
146
159
  const resourceHooks = apiRootHooks[resourceName];
147
160
  if ('sideEffects' in hooks && 'readOnlyTx' in hooks) {
148
161
  const { sideEffects, readOnlyTx } = hooks;
@@ -164,7 +177,7 @@ const addHook = (method, vocabulary, resourceName, hooks) => {
164
177
  throw new Error('Unknown callback type: ' + hookType);
165
178
  }
166
179
  const hook = hooks[hookType];
167
- (_c = resourceHooks[hookType]) !== null && _c !== void 0 ? _c : (resourceHooks[hookType] = []);
180
+ resourceHooks[hookType] ??= [];
168
181
  if (hook != null) {
169
182
  resourceHooks[hookType].push(hook);
170
183
  }
@@ -173,7 +186,7 @@ const addHook = (method, vocabulary, resourceName, hooks) => {
173
186
  };
174
187
  exports.addHook = addHook;
175
188
  const addSideEffectHook = (method, apiRoot, resourceName, hooks) => {
176
- exports.addHook(method, apiRoot, resourceName, {
189
+ (0, exports.addHook)(method, apiRoot, resourceName, {
177
190
  ...hooks,
178
191
  sideEffects: true,
179
192
  readOnlyTx: false,
@@ -181,51 +194,64 @@ const addSideEffectHook = (method, apiRoot, resourceName, hooks) => {
181
194
  };
182
195
  exports.addSideEffectHook = addSideEffectHook;
183
196
  const addPureHook = (method, apiRoot, resourceName, hooks) => {
184
- exports.addHook(method, apiRoot, resourceName, {
197
+ (0, exports.addHook)(method, apiRoot, resourceName, {
185
198
  ...hooks,
186
199
  sideEffects: false,
187
200
  readOnlyTx: false,
188
201
  });
189
202
  };
190
203
  exports.addPureHook = addPureHook;
191
- const defineApi = (args) => {
192
- const { request, req, tx } = args;
193
- const { vocabulary } = request;
204
+ const defineApi = (modelName, args) => {
205
+ const { req, tx } = args;
194
206
  Object.defineProperty(args, 'api', {
195
- get: _.once(() => sbvr_utils_1.api[vocabulary].clone({
207
+ get: _.once(() => sbvr_utils_1.api[modelName].clone({
196
208
  passthrough: { req, tx },
197
209
  })),
198
210
  });
199
211
  };
212
+ const getReadOnlyArgs = (modelName, args) => {
213
+ if (args.tx == null || args.tx.isReadOnly()) {
214
+ return args;
215
+ }
216
+ let readOnlyArgs;
217
+ readOnlyArgs = { ...args, tx: args.tx.asReadOnly() };
218
+ if (args.request != null) {
219
+ defineApi(modelName, readOnlyArgs);
220
+ }
221
+ return readOnlyArgs;
222
+ };
200
223
  const runHooks = async (hookName, hooksList, args) => {
201
224
  if (hooksList == null) {
202
225
  return;
203
226
  }
204
- const hooks = hooksList[hookName];
205
- if (hooks == null || hooks.length === 0) {
227
+ const hooks = hooksList
228
+ .map(([modelName, $hooks]) => [
229
+ modelName,
230
+ $hooks[hookName],
231
+ ])
232
+ .filter((v) => v[1] != null && v[1].length > 0);
233
+ if (hooks.length === 0) {
206
234
  return;
207
235
  }
208
- let readOnlyArgs;
209
- if (args.tx != null) {
210
- readOnlyArgs = { ...args, tx: args.tx.asReadOnly() };
211
- }
212
- else {
213
- readOnlyArgs = args;
236
+ if (['POSTRUN', 'PRERESPOND', 'POSTRUN-ERROR'].includes(hookName)) {
237
+ hooks.reverse();
214
238
  }
215
- if (args.request != null) {
216
- defineApi(args);
217
- if (args !== readOnlyArgs) {
218
- defineApi(readOnlyArgs);
239
+ for (const [modelName, modelHooks] of hooks) {
240
+ const modelArgs = { ...args };
241
+ let modelReadOnlyArgs;
242
+ if (args.request != null) {
243
+ defineApi(modelName, modelArgs);
219
244
  }
245
+ await Promise.all(modelHooks.map(async (hook) => {
246
+ if (hook.readOnlyTx) {
247
+ modelReadOnlyArgs ??= getReadOnlyArgs(modelName, modelArgs);
248
+ await hook.run(modelReadOnlyArgs);
249
+ }
250
+ else {
251
+ await hook.run(modelArgs);
252
+ }
253
+ }));
220
254
  }
221
- await Promise.all(hooks.map(async (hook) => {
222
- if (hook.readOnlyTx) {
223
- await hook.run(readOnlyArgs);
224
- }
225
- else {
226
- await hook.run(args);
227
- }
228
- }));
229
255
  };
230
256
  exports.runHooks = runHooks;
231
257
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/sbvr-api/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/sbvr-api/hooks.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  declare module '@balena/abstract-sql-compiler' {
2
2
  interface AbstractSqlTable {
3
3
  fetchProcessingFields?: {
4
- [field: string]: NonNullable<typeof sbvrTypes[string]['fetchProcessing']>;
4
+ [field: string]: NonNullable<SbvrType['fetchProcessing']>;
5
5
  };
6
6
  localFields?: {
7
7
  [odataName: string]: true;
@@ -10,7 +10,7 @@ declare module '@balena/abstract-sql-compiler' {
10
10
  }
11
11
  import type { AbstractSqlModel } from '@balena/abstract-sql-compiler';
12
12
  import type { Result, Row } from '../database-layer/db';
13
- import * as sbvrTypes from '@balena/sbvr-types';
13
+ import { SbvrType } from '@balena/sbvr-types';
14
14
  export declare const resourceURI: (vocab: string, resourceName: string, id: string | number) => string | undefined;
15
15
  export declare const process: (vocab: string, abstractSqlModel: AbstractSqlModel, resourceName: string, rows: Result['rows'], { includeMetadata }: {
16
16
  includeMetadata: boolean;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.prepareModel = exports.process = exports.resourceURI = void 0;
4
4
  const odata_to_abstract_sql_1 = require("@balena/odata-to-abstract-sql");
5
- const sbvrTypes = require("@balena/sbvr-types");
5
+ const sbvr_types_1 = require("@balena/sbvr-types");
6
6
  const _ = require("lodash");
7
7
  const sbvr_utils_1 = require("./sbvr-utils");
8
8
  const checkForExpansion = async (vocab, abstractSqlModel, parentResourceName, fieldName, row, opts) => {
@@ -14,30 +14,25 @@ const checkForExpansion = async (vocab, abstractSqlModel, parentResourceName, fi
14
14
  try {
15
15
  field = JSON.parse(field);
16
16
  }
17
- catch (_e) {
17
+ catch {
18
18
  }
19
19
  }
20
+ const mappingResourceName = (0, sbvr_utils_1.resolveNavigationResource)({
21
+ abstractSqlModel,
22
+ vocabulary: vocab,
23
+ resourceName: parentResourceName,
24
+ }, fieldName);
20
25
  if (Array.isArray(field)) {
21
- const mappingResourceName = sbvr_utils_1.resolveNavigationResource({
22
- abstractSqlModel,
23
- vocabulary: vocab,
24
- resourceName: parentResourceName,
25
- }, fieldName);
26
- const expandedField = await exports.process(vocab, abstractSqlModel, mappingResourceName, field, opts);
26
+ const expandedField = await (0, exports.process)(vocab, abstractSqlModel, mappingResourceName, field, opts);
27
27
  row[fieldName] = expandedField;
28
28
  }
29
29
  else {
30
- const mappingResourceName = sbvr_utils_1.resolveNavigationResource({
31
- abstractSqlModel,
32
- vocabulary: vocab,
33
- resourceName: parentResourceName,
34
- }, fieldName);
35
30
  row[fieldName] = {
36
31
  __id: field,
37
32
  };
38
33
  if (opts.includeMetadata) {
39
34
  row[fieldName].__deferred = {
40
- uri: exports.resourceURI(vocab, mappingResourceName, field),
35
+ uri: (0, exports.resourceURI)(vocab, mappingResourceName, field),
41
36
  };
42
37
  }
43
38
  }
@@ -56,8 +51,8 @@ const getLocalFields = (table) => {
56
51
  if (table.localFields == null) {
57
52
  table.localFields = {};
58
53
  for (const { fieldName, dataType } of table.fields) {
59
- if (dataType !== 'ForeignKey') {
60
- const odataName = odata_to_abstract_sql_1.sqlNameToODataName(fieldName);
54
+ if (!['ForeignKey', 'ConceptType'].includes(dataType)) {
55
+ const odataName = (0, odata_to_abstract_sql_1.sqlNameToODataName)(fieldName);
61
56
  table.localFields[odataName] = true;
62
57
  }
63
58
  }
@@ -65,16 +60,19 @@ const getLocalFields = (table) => {
65
60
  return table.localFields;
66
61
  };
67
62
  const getFetchProcessingFields = (table) => {
68
- var _a;
69
- return ((_a = table.fetchProcessingFields) !== null && _a !== void 0 ? _a : (table.fetchProcessingFields = _(table.fields)
70
- .filter(({ dataType }) => sbvrTypes[dataType] != null &&
71
- sbvrTypes[dataType].fetchProcessing != null)
63
+ return (table.fetchProcessingFields ??= _(table.fields)
64
+ .filter(({ dataType }) => sbvr_types_1.default[dataType]
65
+ ?.fetchProcessing != null)
72
66
  .map(({ fieldName, dataType }) => {
73
- const odataName = odata_to_abstract_sql_1.sqlNameToODataName(fieldName);
74
- return [odataName, sbvrTypes[dataType].fetchProcessing];
67
+ const odataName = (0, odata_to_abstract_sql_1.sqlNameToODataName)(fieldName);
68
+ return [
69
+ odataName,
70
+ sbvr_types_1.default[dataType]
71
+ .fetchProcessing,
72
+ ];
75
73
  })
76
74
  .fromPairs()
77
- .value()));
75
+ .value());
78
76
  };
79
77
  const process = async (vocab, abstractSqlModel, resourceName, rows, { includeMetadata }) => {
80
78
  if (rows.length === 0) {
@@ -86,7 +84,7 @@ const process = async (vocab, abstractSqlModel, resourceName, rows, { includeMet
86
84
  return count;
87
85
  }
88
86
  }
89
- const sqlResourceName = sbvr_utils_1.resolveSynonym({
87
+ const sqlResourceName = (0, sbvr_utils_1.resolveSynonym)({
90
88
  abstractSqlModel,
91
89
  vocabulary: vocab,
92
90
  resourceName,
@@ -97,17 +95,17 @@ const process = async (vocab, abstractSqlModel, resourceName, rows, { includeMet
97
95
  const processedFields = fieldNames.filter((fieldName) => fetchProcessingFields.hasOwnProperty(fieldName));
98
96
  const localFields = getLocalFields(table);
99
97
  const expandableFields = fieldNames.filter((fieldName) => !localFields.hasOwnProperty(fieldName));
100
- const odataIdField = odata_to_abstract_sql_1.sqlNameToODataName(table.idField);
101
- rows.forEach((row) => {
102
- processedFields.forEach((fieldName) => {
98
+ const odataIdField = (0, odata_to_abstract_sql_1.sqlNameToODataName)(table.idField);
99
+ for (const row of rows) {
100
+ for (const fieldName of processedFields) {
103
101
  row[fieldName] = fetchProcessingFields[fieldName](row[fieldName]);
104
- });
102
+ }
105
103
  if (includeMetadata) {
106
104
  row.__metadata = {
107
- uri: exports.resourceURI(vocab, resourceName, row[odataIdField]),
105
+ uri: (0, exports.resourceURI)(vocab, resourceName, row[odataIdField]),
108
106
  };
109
107
  }
110
- });
108
+ }
111
109
  if (expandableFields.length > 0) {
112
110
  await Promise.all(rows.map(async (row) => {
113
111
  await Promise.all(expandableFields.map(async (fieldName) => {
@@ -1 +1 @@
1
- {"version":3,"file":"odata-response.js","sourceRoot":"","sources":["../../src/sbvr-api/odata-response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odata-response.js","sourceRoot":"","sources":["../../src/sbvr-api/odata-response.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import './express-extension';
2
2
  import type * as Express from 'express';
3
+ import type { Tx } from '../database-layer/db';
3
4
  import type { ApiKey, User } from '../sbvr-api/sbvr-utils';
4
5
  import * as sbvrUtils from '../sbvr-api/sbvr-utils';
5
6
  import { HookReq } from './hooks';
@@ -20,28 +21,28 @@ interface NestedCheckAnd<T> {
20
21
  }
21
22
  interface NestedCheckArray<T> extends Array<NestedCheck<T>> {
22
23
  }
23
- declare type NestedCheck<T> = NestedCheckOr<T> | NestedCheckAnd<T> | NestedCheckArray<T> | T;
24
- declare type PermissionCheck = NestedCheck<string>;
25
- declare type MappedType<I, O> = O extends NestedCheck<infer T> ? Exclude<Exclude<I, string> | T, boolean> : Exclude<Exclude<I, string> | O, boolean>;
26
- declare type MappedNestedCheck<T extends NestedCheck<I>, I, O> = T extends NestedCheckOr<I> ? NestedCheckOr<MappedType<I, O>> : T extends NestedCheckAnd<I> ? NestedCheckAnd<MappedType<I, O>> : T extends NestedCheckArray<I> ? NestedCheckArray<MappedType<I, O>> : Exclude<I, string> | O;
27
- export declare function nestedCheck<I, O>(check: string, stringCallback: (s: string) => O): O;
28
- export declare function nestedCheck<I, O>(check: boolean, stringCallback: (s: string) => O): boolean;
29
- export declare function nestedCheck<I, O>(check: NestedCheck<I>, stringCallback: (s: string) => O): Exclude<I, string> | O | MappedNestedCheck<typeof check, I, O>;
24
+ type NestedCheck<T> = NestedCheckOr<T> | NestedCheckAnd<T> | NestedCheckArray<T> | T;
25
+ type PermissionCheck = NestedCheck<string>;
26
+ type MappedType<I, O> = O extends NestedCheck<infer T> ? Exclude<Exclude<I, string> | T, boolean> : Exclude<Exclude<I, string> | O, boolean>;
27
+ type MappedNestedCheck<T extends NestedCheck<I>, I, O> = T extends NestedCheckOr<I> ? NestedCheckOr<MappedType<I, O>> : T extends NestedCheckAnd<I> ? NestedCheckAnd<MappedType<I, O>> : T extends NestedCheckArray<I> ? NestedCheckArray<MappedType<I, O>> : Exclude<I, string> | O;
28
+ export declare function nestedCheck<I extends {}, O>(check: string, stringCallback: (s: string) => O): O;
29
+ export declare function nestedCheck<I extends {}, O>(check: boolean, stringCallback: (s: string) => O): boolean;
30
+ export declare function nestedCheck<I extends {}, O>(check: NestedCheck<I>, stringCallback: (s: string) => O): Exclude<I, string> | O | MappedNestedCheck<typeof check, I, O>;
30
31
  export declare const checkPassword: (username: string, password: string) => Promise<{
31
32
  id: number;
32
33
  actor: number;
33
34
  username: string;
34
35
  permissions: string[];
35
36
  }>;
36
- export declare const getUserPermissions: (userId: number) => Promise<string[]>;
37
- export declare const getApiKeyPermissions: (apiKey: string) => Promise<string[]>;
38
- export declare const resolveAuthHeader: (req: Express.Request, expectedScheme?: string) => Promise<PermissionReq['apiKey']>;
39
- export declare const customAuthorizationMiddleware: (expectedScheme?: string) => (req: Express.Request, _res?: Express.Response<any, Record<string, any>> | undefined, next?: Express.NextFunction | undefined) => Promise<void>;
40
- export declare const authorizationMiddleware: (req: Express.Request, _res?: Express.Response<any, Record<string, any>> | undefined, next?: Express.NextFunction | undefined) => Promise<void>;
41
- export declare const resolveApiKey: (req: HookReq | Express.Request, paramName?: string) => Promise<PermissionReq['apiKey']>;
42
- export declare const customApiKeyMiddleware: (paramName?: string) => (req: HookReq | Express.Request, _res?: Express.Response<any, Record<string, any>> | undefined, next?: Express.NextFunction | undefined) => Promise<void>;
43
- export declare const apiKeyMiddleware: (req: HookReq | Express.Request, _res?: Express.Response<any, Record<string, any>> | undefined, next?: Express.NextFunction | undefined) => Promise<void>;
44
- export declare const checkPermissions: (req: PermissionReq, actionList: PermissionCheck, resourceName?: string | undefined, vocabulary?: string | undefined) => Promise<boolean | NestedCheck<string>>;
37
+ export declare const getUserPermissions: (userId: number, tx?: Tx) => Promise<string[]>;
38
+ export declare const getApiKeyPermissions: (apiKey: string, tx?: Tx) => Promise<string[]>;
39
+ export declare const resolveAuthHeader: (req: Express.Request, expectedScheme?: string, tx?: Tx) => Promise<PermissionReq['apiKey']>;
40
+ export declare const customAuthorizationMiddleware: (expectedScheme?: string) => (req: Express.Request, _res?: Express.Response, next?: Express.NextFunction) => Promise<void>;
41
+ export declare const authorizationMiddleware: (req: Express.Request, _res?: Express.Response, next?: Express.NextFunction) => Promise<void>;
42
+ export declare const resolveApiKey: (req: HookReq | Express.Request, paramName?: string, tx?: Tx) => Promise<PermissionReq['apiKey']>;
43
+ export declare const customApiKeyMiddleware: (paramName?: string) => (req: HookReq | Express.Request, _res?: Express.Response, next?: Express.NextFunction) => Promise<void>;
44
+ export declare const apiKeyMiddleware: (req: HookReq | Express.Request, _res?: Express.Response, next?: Express.NextFunction) => Promise<void>;
45
+ export declare const checkPermissions: (req: PermissionReq, actionList: PermissionCheck, resourceName?: string, vocabulary?: string) => Promise<boolean | NestedCheck<string>>;
45
46
  export declare const checkPermissionsMiddleware: (action: PermissionCheck) => Express.RequestHandler;
46
47
  export declare const addPermissions: (req: PermissionReq, request: ODataRequest & {
47
48
  permissionType?: PermissionCheck;