@balena/pinejs 15.0.0-build-15-x-4681209f5dd8d896491fb5ed64aea47df511c14d-1 → 15.0.0-build-15-x-bf3a44dfe299de8966cf9bc201fa13fdf9d4a747-1
Sign up to get free protection for your applications and to get access to all the features.
- package/.pinejs-cache.json +1 -1
- package/.versionbot/CHANGELOG.yml +1479 -103
- package/CHANGELOG.md +523 -2
- package/Dockerfile +1 -1
- package/out/bin/odata-compiler.js +4 -1
- package/out/bin/odata-compiler.js.map +1 -1
- package/out/config-loader/config-loader.d.ts +5 -2
- package/out/config-loader/config-loader.js +46 -18
- package/out/config-loader/config-loader.js.map +1 -1
- package/out/database-layer/db.d.ts +1 -0
- package/out/database-layer/db.js +3 -0
- package/out/database-layer/db.js.map +1 -1
- package/out/migrator/async.js +14 -8
- package/out/migrator/async.js.map +1 -1
- package/out/migrator/utils.d.ts +3 -4
- package/out/migrator/utils.js +11 -1
- package/out/migrator/utils.js.map +1 -1
- package/out/passport-pinejs/passport-pinejs.d.ts +1 -1
- package/out/passport-pinejs/passport-pinejs.js +3 -3
- package/out/passport-pinejs/passport-pinejs.js.map +1 -1
- package/out/pinejs-session-store/pinejs-session-store.d.ts +1 -1
- package/out/sbvr-api/abstract-sql.js +2 -1
- package/out/sbvr-api/abstract-sql.js.map +1 -1
- package/out/sbvr-api/hooks.d.ts +3 -3
- package/out/sbvr-api/hooks.js +44 -29
- package/out/sbvr-api/hooks.js.map +1 -1
- package/out/sbvr-api/permissions.js +6 -4
- package/out/sbvr-api/permissions.js.map +1 -1
- package/out/sbvr-api/sbvr-utils.d.ts +11 -5
- package/out/sbvr-api/sbvr-utils.js +151 -61
- package/out/sbvr-api/sbvr-utils.js.map +1 -1
- package/out/sbvr-api/translations.d.ts +6 -0
- package/out/sbvr-api/translations.js +150 -0
- package/out/sbvr-api/translations.js.map +1 -0
- package/out/sbvr-api/uri-parser.d.ts +5 -2
- package/out/sbvr-api/uri-parser.js +2 -0
- package/out/sbvr-api/uri-parser.js.map +1 -1
- package/package.json +19 -17
- package/src/bin/odata-compiler.ts +4 -2
- package/src/config-loader/config-loader.ts +84 -29
- package/src/database-layer/db.ts +3 -0
- package/src/migrator/async.ts +22 -12
- package/src/migrator/utils.ts +16 -5
- package/src/passport-pinejs/passport-pinejs.ts +4 -4
- package/src/sbvr-api/abstract-sql.ts +4 -2
- package/src/sbvr-api/hooks.ts +80 -33
- package/src/sbvr-api/permissions.ts +15 -7
- package/src/sbvr-api/sbvr-utils.ts +258 -84
- package/src/sbvr-api/translations.ts +248 -0
- package/src/sbvr-api/uri-parser.ts +9 -2
- package/tsconfig.dev.json +1 -0
@@ -33,6 +33,7 @@ var abstract_sql_2 = require("./abstract-sql");
|
|
33
33
|
Object.defineProperty(exports, "resolveOdataBind", { enumerable: true, get: function () { return abstract_sql_2.resolveOdataBind; } });
|
34
34
|
const odataResponse = require("./odata-response");
|
35
35
|
const module_1 = require("../server-glue/module");
|
36
|
+
const translations_1 = require("./translations");
|
36
37
|
const LF2AbstractSQLTranslator = LF2AbstractSQL.createTranslator(sbvrTypes);
|
37
38
|
const LF2AbstractSQLTranslatorVersion = `${package_json_2.version}+${package_json_3.version}`;
|
38
39
|
const models = {};
|
@@ -85,7 +86,7 @@ const prettifyConstraintError = (err, request) => {
|
|
85
86
|
break;
|
86
87
|
case 'postgres':
|
87
88
|
const resourceName = (0, exports.resolveSynonym)(request);
|
88
|
-
const abstractSqlModel = (
|
89
|
+
const abstractSqlModel = getFinalAbstractSqlModel(request);
|
89
90
|
matches = new RegExp('"' + abstractSqlModel.tables[resourceName].name + '_(.*?)_key"').exec(err.message);
|
90
91
|
break;
|
91
92
|
}
|
@@ -108,7 +109,7 @@ const prettifyConstraintError = (err, request) => {
|
|
108
109
|
break;
|
109
110
|
case 'postgres':
|
110
111
|
const resourceName = (0, exports.resolveSynonym)(request);
|
111
|
-
const abstractSqlModel = (
|
112
|
+
const abstractSqlModel = getFinalAbstractSqlModel(request);
|
112
113
|
const tableName = abstractSqlModel.tables[resourceName].name;
|
113
114
|
matches = new RegExp('"' +
|
114
115
|
tableName +
|
@@ -129,7 +130,7 @@ const prettifyConstraintError = (err, request) => {
|
|
129
130
|
}
|
130
131
|
if (err instanceof exports.db.CheckConstraintError) {
|
131
132
|
const resourceName = (0, exports.resolveSynonym)(request);
|
132
|
-
const abstractSqlModel = (
|
133
|
+
const abstractSqlModel = getFinalAbstractSqlModel(request);
|
133
134
|
const table = abstractSqlModel.tables[resourceName];
|
134
135
|
if (table.checks) {
|
135
136
|
switch (exports.db.engine) {
|
@@ -166,14 +167,41 @@ const isModelNew = async (tx, modelName) => {
|
|
166
167
|
return !cachedIsModelNew.has(modelName);
|
167
168
|
};
|
168
169
|
exports.isModelNew = isModelNew;
|
170
|
+
const bindsForAffectedIds = (bindings, request) => {
|
171
|
+
if (request?.affectedIds == null) {
|
172
|
+
return {};
|
173
|
+
}
|
174
|
+
const tableName = (0, exports.getAbstractSqlModel)(request).tables[(0, exports.resolveSynonym)(request)].name;
|
175
|
+
const isDelete = request.method === 'DELETE';
|
176
|
+
const odataBinds = {};
|
177
|
+
for (const bind of bindings) {
|
178
|
+
if (bind.length !== 2 ||
|
179
|
+
bind[0] !== 'Bind' ||
|
180
|
+
typeof bind[1] !== 'string') {
|
181
|
+
continue;
|
182
|
+
}
|
183
|
+
const bindName = bind[1];
|
184
|
+
if (!isDelete && bindName === tableName) {
|
185
|
+
odataBinds[bindName] = ['Text', `{${request.affectedIds}}`];
|
186
|
+
}
|
187
|
+
else {
|
188
|
+
odataBinds[bindName] = ['Text', '{}'];
|
189
|
+
}
|
190
|
+
}
|
191
|
+
return odataBinds;
|
192
|
+
};
|
169
193
|
const validateModel = async (tx, modelName, request) => {
|
170
|
-
|
194
|
+
const { sql } = models[modelName];
|
195
|
+
if (!sql) {
|
196
|
+
throw new Error(`Tried to validate a virtual model: '${modelName}'`);
|
197
|
+
}
|
198
|
+
await Promise.all(sql.rules.map(async (rule) => {
|
171
199
|
if (!(0, abstract_sql_1.isRuleAffected)(rule, request)) {
|
172
200
|
return;
|
173
201
|
}
|
174
202
|
const values = await (0, abstract_sql_1.getAndCheckBindValues)({
|
175
203
|
vocabulary: modelName,
|
176
|
-
odataBinds:
|
204
|
+
odataBinds: bindsForAffectedIds(rule.bindings, request),
|
177
205
|
values: {},
|
178
206
|
engine: exports.db.engine,
|
179
207
|
}, rule.bindings);
|
@@ -191,8 +219,8 @@ const generateAbstractSqlModel = (lfModel) => (0, cached_compile_1.cachedCompile
|
|
191
219
|
exports.generateAbstractSqlModel = generateAbstractSqlModel;
|
192
220
|
const generateSqlModel = (abstractSql, targetDatabaseEngine) => (0, cached_compile_1.cachedCompile)('sqlModel', package_json_1.version + '+' + targetDatabaseEngine, abstractSql, () => AbstractSQLCompiler[targetDatabaseEngine].compileSchema(abstractSql));
|
193
221
|
exports.generateSqlModel = generateSqlModel;
|
194
|
-
|
195
|
-
const { apiRoot: vocab, modelText: se } = model;
|
222
|
+
function generateModels(model, targetDatabaseEngine) {
|
223
|
+
const { apiRoot: vocab, modelText: se, translateTo, translations } = model;
|
196
224
|
let { abstractSql: maybeAbstractSql } = model;
|
197
225
|
let lf;
|
198
226
|
if (se) {
|
@@ -214,15 +242,33 @@ const generateModels = (model, targetDatabaseEngine) => {
|
|
214
242
|
const abstractSql = maybeAbstractSql;
|
215
243
|
const odataMetadata = (0, cached_compile_1.cachedCompile)('metadata', odata_metadata_generator_1.generateODataMetadata.version, { vocab, abstractSqlModel: abstractSql }, () => (0, odata_metadata_generator_1.generateODataMetadata)(vocab, abstractSql));
|
216
244
|
let sql;
|
217
|
-
|
218
|
-
|
245
|
+
let resourceRenames;
|
246
|
+
if (translateTo != null) {
|
247
|
+
resourceRenames = (0, translations_1.translateAbstractSqlModel)(abstractSql, models[translateTo].abstractSql, model.apiRoot, translateTo, translations);
|
219
248
|
}
|
220
|
-
|
221
|
-
|
222
|
-
|
249
|
+
else {
|
250
|
+
for (const [key, table] of Object.entries(abstractSql.tables)) {
|
251
|
+
abstractSql.tables[`${key}$${model.apiRoot}`] = { ...table };
|
252
|
+
}
|
253
|
+
try {
|
254
|
+
sql = (0, exports.generateSqlModel)(abstractSql, targetDatabaseEngine);
|
255
|
+
}
|
256
|
+
catch (e) {
|
257
|
+
console.error(`Error compiling model '${vocab}':`, e);
|
258
|
+
throw new Error(`Error compiling model '${vocab}': ` + e);
|
259
|
+
}
|
223
260
|
}
|
224
|
-
return {
|
225
|
-
|
261
|
+
return {
|
262
|
+
vocab,
|
263
|
+
translateTo,
|
264
|
+
resourceRenames,
|
265
|
+
se,
|
266
|
+
lf,
|
267
|
+
abstractSql,
|
268
|
+
sql,
|
269
|
+
odataMetadata,
|
270
|
+
};
|
271
|
+
}
|
226
272
|
exports.generateModels = generateModels;
|
227
273
|
const executeModel = (tx, model) => (0, exports.executeModels)(tx, [model]);
|
228
274
|
exports.executeModel = executeModel;
|
@@ -231,21 +277,32 @@ const executeModels = async (tx, execModels) => {
|
|
231
277
|
const compiledModels = await Promise.all(execModels.map(async (model) => {
|
232
278
|
const { apiRoot } = model;
|
233
279
|
await syncMigrator.run(tx, model);
|
234
|
-
const compiledModel =
|
235
|
-
|
236
|
-
const
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
280
|
+
const compiledModel = generateModels(model, exports.db.engine);
|
281
|
+
if (compiledModel.sql) {
|
282
|
+
for (const createStatement of compiledModel.sql.createSchema) {
|
283
|
+
const promise = tx.executeSql(createStatement);
|
284
|
+
if (exports.db.engine === 'websql') {
|
285
|
+
promise.catch((err) => {
|
286
|
+
console.warn("Ignoring errors in the create table statements for websql as it doesn't support CREATE IF NOT EXISTS", err);
|
287
|
+
});
|
288
|
+
}
|
289
|
+
await promise;
|
241
290
|
}
|
242
|
-
await promise;
|
243
291
|
}
|
244
292
|
await syncMigrator.postRun(tx, model);
|
245
293
|
odataResponse.prepareModel(compiledModel.abstractSql);
|
246
294
|
deepFreeze(compiledModel.abstractSql);
|
247
|
-
|
248
|
-
|
295
|
+
const versions = [apiRoot];
|
296
|
+
if (compiledModel.translateTo != null) {
|
297
|
+
versions.push(...models[compiledModel.translateTo].versions);
|
298
|
+
}
|
299
|
+
models[apiRoot] = {
|
300
|
+
...compiledModel,
|
301
|
+
versions,
|
302
|
+
};
|
303
|
+
if (compiledModel.sql) {
|
304
|
+
await (0, exports.validateModel)(tx, apiRoot);
|
305
|
+
}
|
249
306
|
exports.api[apiRoot] = new PinejsClient('/' + apiRoot + '/');
|
250
307
|
exports.api[apiRoot].logger = { ...console };
|
251
308
|
if (model.logging != null) {
|
@@ -332,23 +389,26 @@ const cleanupModel = (vocab) => {
|
|
332
389
|
delete exports.api[vocab];
|
333
390
|
};
|
334
391
|
const deleteModel = async (vocabulary) => {
|
335
|
-
|
336
|
-
|
337
|
-
await
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
$filter: {
|
346
|
-
is_of__vocabulary: vocabulary,
|
392
|
+
const { sql } = models[vocabulary];
|
393
|
+
if (sql) {
|
394
|
+
await exports.db.transaction(async (tx) => {
|
395
|
+
const dropStatements = sql.dropSchema.map((dropStatement) => tx.executeSql(dropStatement));
|
396
|
+
await Promise.all(dropStatements.concat([
|
397
|
+
exports.api.dev.delete({
|
398
|
+
resource: 'model',
|
399
|
+
passthrough: {
|
400
|
+
tx,
|
401
|
+
req: permissions.root,
|
347
402
|
},
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
403
|
+
options: {
|
404
|
+
$filter: {
|
405
|
+
is_of__vocabulary: vocabulary,
|
406
|
+
},
|
407
|
+
},
|
408
|
+
}),
|
409
|
+
]));
|
410
|
+
});
|
411
|
+
}
|
352
412
|
await cleanupModel(vocabulary);
|
353
413
|
};
|
354
414
|
exports.deleteModel = deleteModel;
|
@@ -554,7 +614,11 @@ const getAbstractSqlModel = (request) => {
|
|
554
614
|
return (request.abstractSqlModel ??= models[request.vocabulary].abstractSql);
|
555
615
|
};
|
556
616
|
exports.getAbstractSqlModel = getAbstractSqlModel;
|
557
|
-
const
|
617
|
+
const getFinalAbstractSqlModel = (request) => {
|
618
|
+
const finalModel = _.last(request.translateVersions);
|
619
|
+
return (request.finalAbstractSqlModel ??= models[finalModel].abstractSql);
|
620
|
+
};
|
621
|
+
const getIdField = (request) => getFinalAbstractSqlModel(request).tables[(0, exports.resolveSynonym)(request)].idField;
|
558
622
|
const getAffectedIds = async (args) => {
|
559
623
|
const { request } = args;
|
560
624
|
if (request.affectedIds) {
|
@@ -578,6 +642,7 @@ const $getAffectedIds = async ({ req, request, tx, }) => {
|
|
578
642
|
url: `/${request.vocabulary}${request.url}`,
|
579
643
|
});
|
580
644
|
parsedRequest.engine = request.engine;
|
645
|
+
parsedRequest.translateVersions = request.translateVersions;
|
581
646
|
let affectedRequest = parsedRequest;
|
582
647
|
const abstractSqlModel = (0, exports.getAbstractSqlModel)(affectedRequest);
|
583
648
|
const resourceName = (0, exports.resolveSynonym)(affectedRequest);
|
@@ -608,10 +673,14 @@ const runODataRequest = (req, vocabulary) => {
|
|
608
673
|
if (module_1.env.DEBUG) {
|
609
674
|
exports.api[vocabulary].logger.log('Parsing', req.method, req.url);
|
610
675
|
}
|
611
|
-
const
|
612
|
-
|
613
|
-
|
614
|
-
|
676
|
+
const { versions } = models[vocabulary];
|
677
|
+
const reqHooks = versions.map((version) => [
|
678
|
+
version,
|
679
|
+
(0, hooks_1.getHooks)({
|
680
|
+
method: req.method,
|
681
|
+
vocabulary: version,
|
682
|
+
}, version === versions[0]),
|
683
|
+
]);
|
615
684
|
const transactions = [];
|
616
685
|
const tryCancelRequest = () => {
|
617
686
|
transactions.forEach(async (tx) => {
|
@@ -647,14 +716,33 @@ const runODataRequest = (req, vocabulary) => {
|
|
647
716
|
}
|
648
717
|
const prepareRequest = async (parsedRequest) => {
|
649
718
|
parsedRequest.engine = exports.db.engine;
|
719
|
+
parsedRequest.translateVersions = [...versions];
|
650
720
|
const $request = parsedRequest;
|
651
|
-
$request.hooks = (0, hooks_1.getHooks)($request);
|
652
721
|
try {
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
722
|
+
$request.hooks = [];
|
723
|
+
for (const version of versions) {
|
724
|
+
const hooks = [
|
725
|
+
version,
|
726
|
+
(0, hooks_1.getHooks)({
|
727
|
+
resourceName: $request.resourceName,
|
728
|
+
vocabulary: version,
|
729
|
+
method: $request.method,
|
730
|
+
}, version === versions[0]),
|
731
|
+
];
|
732
|
+
$request.hooks.push(hooks);
|
733
|
+
await (0, hooks_1.runHooks)('POSTPARSE', [hooks], {
|
734
|
+
req,
|
735
|
+
request: $request,
|
736
|
+
tx: req.tx,
|
737
|
+
});
|
738
|
+
const { resourceRenames } = models[version];
|
739
|
+
if (resourceRenames) {
|
740
|
+
const resourceName = (0, exports.resolveSynonym)($request);
|
741
|
+
if (resourceRenames[resourceName]) {
|
742
|
+
$request.resourceName = (0, odata_to_abstract_sql_1.sqlNameToODataName)(resourceRenames[resourceName]);
|
743
|
+
}
|
744
|
+
}
|
745
|
+
}
|
658
746
|
const translatedRequest = await uriParser.translateUri($request);
|
659
747
|
return await (0, abstract_sql_1.compileRequest)(translatedRequest);
|
660
748
|
}
|
@@ -882,7 +970,8 @@ const runChangeSet = (req, tx) => async (changeSetResults, request) => {
|
|
882
970
|
};
|
883
971
|
const updateBinds = (changeSetResults, request) => {
|
884
972
|
if (request._defer) {
|
885
|
-
|
973
|
+
for (let i = 0; i < request.odataBinds.length; i++) {
|
974
|
+
const [tag, id] = request.odataBinds[i];
|
886
975
|
if (tag === 'ContentReference') {
|
887
976
|
const ref = changeSetResults.get(id);
|
888
977
|
if (ref?.body == null ||
|
@@ -890,10 +979,9 @@ const updateBinds = (changeSetResults, request) => {
|
|
890
979
|
ref.body.id === undefined) {
|
891
980
|
throw new errors_1.BadRequestError('Reference to a non existing resource in Changeset');
|
892
981
|
}
|
893
|
-
|
982
|
+
request.odataBinds[i] = uriParser.parseId(ref.body.id);
|
894
983
|
}
|
895
|
-
|
896
|
-
});
|
984
|
+
}
|
897
985
|
}
|
898
986
|
return request;
|
899
987
|
};
|
@@ -923,7 +1011,9 @@ const checkReadOnlyRequests = (request) => {
|
|
923
1011
|
if (hooks == null) {
|
924
1012
|
return true;
|
925
1013
|
}
|
926
|
-
return
|
1014
|
+
return hooks.every(([, versionedHooks]) => Object.values(versionedHooks).every((hookTypeHooks) => {
|
1015
|
+
return (hookTypeHooks == null || hookTypeHooks.every((hook) => hook.readOnlyTx));
|
1016
|
+
}));
|
927
1017
|
};
|
928
1018
|
const runTransaction = async (req, request, callback) => {
|
929
1019
|
if (req.tx != null) {
|
@@ -977,7 +1067,7 @@ const respondGet = async (req, request, result, tx) => {
|
|
977
1067
|
const metadata = format != null && typeof format === 'object'
|
978
1068
|
? format.metadata
|
979
1069
|
: undefined;
|
980
|
-
const d = await odataResponse.process(vocab, (0, exports.getAbstractSqlModel)(request), request.
|
1070
|
+
const d = await odataResponse.process(vocab, (0, exports.getAbstractSqlModel)(request), request.originalResourceName, result.rows, { includeMetadata: metadata === 'full' });
|
981
1071
|
const response = {
|
982
1072
|
statusCode: 200,
|
983
1073
|
body: { d },
|
@@ -1013,12 +1103,12 @@ const runPost = async (_req, request, tx) => {
|
|
1013
1103
|
if (rowsAffected === 0) {
|
1014
1104
|
throw new errors_1.PermissionError();
|
1015
1105
|
}
|
1016
|
-
await (0, exports.validateModel)(tx, request.
|
1106
|
+
await (0, exports.validateModel)(tx, _.last(request.translateVersions), request);
|
1017
1107
|
return insertId;
|
1018
1108
|
};
|
1019
1109
|
const respondPost = async (req, request, id, tx) => {
|
1020
1110
|
const vocab = request.vocabulary;
|
1021
|
-
const location = odataResponse.resourceURI(vocab, request.
|
1111
|
+
const location = odataResponse.resourceURI(vocab, request.originalResourceName, id);
|
1022
1112
|
if (module_1.env.DEBUG) {
|
1023
1113
|
exports.api[vocab].logger.log('Insert ID: ', request.resourceName, id);
|
1024
1114
|
}
|
@@ -1061,7 +1151,7 @@ const runPut = async (_req, request, tx) => {
|
|
1061
1151
|
({ rowsAffected } = await runQuery(tx, request, undefined, idField));
|
1062
1152
|
}
|
1063
1153
|
if (rowsAffected > 0) {
|
1064
|
-
await (0, exports.validateModel)(tx, request.
|
1154
|
+
await (0, exports.validateModel)(tx, _.last(request.translateVersions), request);
|
1065
1155
|
}
|
1066
1156
|
return undefined;
|
1067
1157
|
};
|
@@ -1083,7 +1173,7 @@ const respondOptions = respondPut;
|
|
1083
1173
|
const runDelete = async (_req, request, tx) => {
|
1084
1174
|
const { rowsAffected } = await runQuery(tx, request, undefined, getIdField(request));
|
1085
1175
|
if (rowsAffected > 0) {
|
1086
|
-
await (0, exports.validateModel)(tx, request.
|
1176
|
+
await (0, exports.validateModel)(tx, _.last(request.translateVersions), request);
|
1087
1177
|
}
|
1088
1178
|
return undefined;
|
1089
1179
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sbvr-utils.js","sourceRoot":"","sources":["../../src/sbvr-api/sbvr-utils.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"sbvr-utils.js","sourceRoot":"","sources":["../../src/sbvr-api/sbvr-utils.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import { AbstractSqlModel, ReferencedFieldNode, Definition, SelectQueryNode, NumberTypeNodes, BooleanTypeNodes, UnknownTypeNodes, NullNode } from '@balena/abstract-sql-compiler';
|
2
|
+
import { Dictionary } from './common-types';
|
3
|
+
export type AliasValidNodeType = ReferencedFieldNode | SelectQueryNode | NumberTypeNodes | BooleanTypeNodes | UnknownTypeNodes | NullNode;
|
4
|
+
export declare const translateAbstractSqlModel: (fromAbstractSqlModel: AbstractSqlModel, toAbstractSqlModel: AbstractSqlModel, fromVersion: string, toVersion: string, translationDefinitions?: Dictionary<(Definition & {
|
5
|
+
$toResource?: string;
|
6
|
+
}) | Dictionary<string | AliasValidNodeType>>) => Dictionary<string>;
|