@balena/pinejs 15.0.0-true-boolean-7896b116c446d891d7a0d5e4085c02a13bc9c725 → 15.0.1-build-migrations-clarify-marking-sbvr-optional-d6d0ded8eccc6eadb2492f4697918cf0afd00215-1

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 -2002
  7. package/CHANGELOG.md +2976 -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,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.setup = void 0;
4
+ const utils_1 = require("../migrator/utils");
4
5
  const fs = require("fs");
5
6
  const _ = require("lodash");
6
7
  const path = require("path");
@@ -34,96 +35,118 @@ const getOrCreatePermission = async (authApiTx, permissionName) => {
34
35
  }
35
36
  };
36
37
  const setup = (app) => {
37
- const loadConfig = (data) => sbvrUtils.db.transaction(async (tx) => {
38
- const authApiTx = sbvrUtils.api.Auth.clone({
39
- passthrough: {
40
- tx,
41
- req: permissions.root,
42
- },
43
- });
44
- const { users } = data;
45
- if (users != null) {
46
- const permissionsCache = {};
47
- users.forEach((user) => {
48
- if (user.permissions == null) {
49
- return;
50
- }
51
- user.permissions.forEach((permissionName) => {
52
- if (permissionsCache[permissionName] != null) {
53
- return;
54
- }
55
- permissionsCache[permissionName] = getOrCreatePermission(authApiTx, permissionName);
56
- });
38
+ const loadConfig = async (data) => {
39
+ await sbvrUtils.db.transaction(async (tx) => {
40
+ const authApiTx = sbvrUtils.api.Auth.clone({
41
+ passthrough: {
42
+ tx,
43
+ req: permissions.root,
44
+ },
57
45
  });
58
- await Promise.all(users.map(async (user) => {
59
- try {
60
- const userID = await getOrCreate(authApiTx, 'user', {
61
- username: user.username,
62
- }, {
63
- password: user.password,
64
- });
65
- if (user.permissions != null) {
66
- await Promise.all(user.permissions.map(async (permissionName) => {
67
- const permissionID = await permissionsCache[permissionName];
68
- await getOrCreate(authApiTx, 'user__has__permission', {
69
- user: userID,
70
- permission: permissionID,
71
- });
72
- }));
46
+ const { users } = data;
47
+ if (users != null) {
48
+ const permissionsCache = {};
49
+ for (const user of users) {
50
+ if (user.permissions == null) {
51
+ continue;
52
+ }
53
+ for (const permissionName of user.permissions) {
54
+ permissionsCache[permissionName] ??= getOrCreatePermission(authApiTx, permissionName);
73
55
  }
74
56
  }
75
- catch (e) {
76
- e.message = `Could not create or find user "${user.username}": ${e.message}`;
77
- throw e;
78
- }
79
- }));
80
- }
81
- await Promise.all(data.models.map(async (model) => {
82
- if ((model.abstractSql != null || model.modelText != null) &&
83
- model.apiRoot != null) {
57
+ await Promise.all(users.map(async (user) => {
58
+ try {
59
+ const userID = await getOrCreate(authApiTx, 'user', {
60
+ username: user.username,
61
+ }, {
62
+ password: user.password,
63
+ });
64
+ if (user.permissions != null) {
65
+ await Promise.all(user.permissions.map(async (permissionName) => {
66
+ const permissionID = await permissionsCache[permissionName];
67
+ await getOrCreate(authApiTx, 'user__has__permission', {
68
+ user: userID,
69
+ permission: permissionID,
70
+ });
71
+ }));
72
+ }
73
+ }
74
+ catch (e) {
75
+ e.message = `Could not create or find user "${user.username}": ${e.message}`;
76
+ throw e;
77
+ }
78
+ }));
79
+ }
80
+ const modelPromises = _(data.models)
81
+ .filter((model) => (model.abstractSql != null || model.modelText != null) &&
82
+ model.apiRoot != null)
83
+ .keyBy((model) => model.apiRoot)
84
+ .mapValues(async (model) => {
84
85
  try {
86
+ const { translateTo, translations } = model;
87
+ if (translateTo != null) {
88
+ await null;
89
+ if (modelPromises[translateTo] == null) {
90
+ throw new Error(`Cannot translate to non-existent version '${translateTo}'`);
91
+ }
92
+ await modelPromises[translateTo];
93
+ }
94
+ else if (translations != null) {
95
+ throw new Error('Cannot have translations without a translateTo target');
96
+ }
85
97
  await sbvrUtils.executeModel(tx, model);
86
98
  const apiRoute = `/${model.apiRoot}/*`;
87
- app.options(apiRoute, (_req, res) => res.sendStatus(200));
88
- app.all(apiRoute, sbvrUtils.handleODataRequest);
99
+ app
100
+ .route(apiRoute)
101
+ .options((_req, res) => res.status(200).end())
102
+ .get(sbvrUtils.handleODataRequest)
103
+ .put(sbvrUtils.handleODataRequest)
104
+ .post(sbvrUtils.handleODataRequest)
105
+ .patch(sbvrUtils.handleODataRequest)
106
+ .merge(sbvrUtils.handleODataRequest)
107
+ .delete(sbvrUtils.handleODataRequest);
89
108
  console.info('Successfully executed ' + model.modelName + ' model.');
90
109
  }
91
110
  catch (err) {
92
- const message = `Failed to execute ${model.modelName} model from ${model.modelFile}`;
111
+ const message = `Failed to execute '${model.modelName}' model from '${model.modelFile}'`;
93
112
  if (_.isError(err)) {
94
- err.message = message;
113
+ err.message = `${message} due to: ${err.message}`;
95
114
  throw err;
96
115
  }
97
116
  throw new Error(message);
98
117
  }
99
- }
100
- if (model.customServerCode != null) {
101
- let customCode;
102
- if (typeof model.customServerCode === 'string') {
103
- try {
104
- customCode = nodeRequire(model.customServerCode).setup;
118
+ })
119
+ .value();
120
+ await Promise.all(Object.values(modelPromises));
121
+ await Promise.all(data.models.map(async (model) => {
122
+ if (model.customServerCode != null) {
123
+ let customCode;
124
+ if (typeof model.customServerCode === 'string') {
125
+ try {
126
+ customCode = nodeRequire(model.customServerCode).setup;
127
+ }
128
+ catch (e) {
129
+ e.message = `Error loading custom server code: '${e.message}'`;
130
+ throw e;
131
+ }
105
132
  }
106
- catch (e) {
107
- e.message = `Error loading custom server code: '${e.message}'`;
108
- throw e;
133
+ else if (typeof model.customServerCode === 'object') {
134
+ customCode = model.customServerCode.setup;
109
135
  }
136
+ else {
137
+ throw new Error(`Invalid type for customServerCode '${typeof model.customServerCode}'`);
138
+ }
139
+ if (typeof customCode !== 'function') {
140
+ return;
141
+ }
142
+ await customCode(app, sbvrUtils, sbvrUtils.db);
110
143
  }
111
- else if (_.isObject(model.customServerCode)) {
112
- customCode = model.customServerCode.setup;
113
- }
114
- else {
115
- throw new Error(`Invalid type for customServerCode '${typeof model.customServerCode}'`);
116
- }
117
- if (typeof customCode !== 'function') {
118
- return;
119
- }
120
- await customCode(app, sbvrUtils, sbvrUtils.db);
121
- }
122
- }));
123
- });
144
+ }));
145
+ });
146
+ };
124
147
  const loadConfigFile = async (configPath) => {
125
148
  console.info('Loading config:', configPath);
126
- return await Promise.resolve().then(() => require(configPath));
149
+ return await Promise.resolve(`${configPath}`).then(s => require(s));
127
150
  };
128
151
  const loadApplicationConfig = async (config) => {
129
152
  try {
@@ -138,7 +161,7 @@ const setup = (app) => {
138
161
  root = path.dirname(config);
139
162
  configObj = await loadConfigFile(config);
140
163
  }
141
- else if (_.isObject(config)) {
164
+ else if (typeof config === 'object') {
142
165
  root = process.cwd();
143
166
  configObj = config;
144
167
  }
@@ -152,29 +175,63 @@ const setup = (app) => {
152
175
  return path.join(root, s);
153
176
  };
154
177
  await Promise.all(configObj.models.map(async (model) => {
155
- var _a;
156
178
  if (model.modelFile != null) {
157
179
  model.modelText = await fs.promises.readFile(resolvePath(model.modelFile), 'utf8');
158
180
  }
159
181
  if (typeof model.customServerCode === 'string') {
160
182
  model.customServerCode = resolvePath(model.customServerCode);
161
183
  }
162
- (_a = model.migrations) !== null && _a !== void 0 ? _a : (model.migrations = {});
184
+ model.migrations ??= {};
163
185
  const { migrations } = model;
164
186
  if (model.migrationsPath) {
165
187
  const migrationsPath = resolvePath(model.migrationsPath);
166
188
  const fileNames = await fs.promises.readdir(migrationsPath);
167
189
  await Promise.all(fileNames.map(async (filename) => {
168
190
  const filePath = path.join(migrationsPath, filename);
191
+ const fileNameParts = filename.split('.', 3);
192
+ const fileExtension = path.extname(filename);
169
193
  const [migrationKey] = filename.split('-', 1);
170
- switch (path.extname(filename)) {
194
+ let migrationCategory = utils_1.defaultMigrationCategory;
195
+ if (fileNameParts.length === 3) {
196
+ if (fileNameParts[1] in utils_1.MigrationCategories) {
197
+ migrationCategory = fileNameParts[1];
198
+ }
199
+ else {
200
+ console.error(`Unrecognized migration file category ${fileNameParts[1]}, skipping: ${path.extname(filename)}`);
201
+ return;
202
+ }
203
+ }
204
+ const assignMigrationWithCategory = (newMigrationKey, newMigration) => {
205
+ const catMigrations = migrations[migrationCategory] || {};
206
+ if (typeof newMigration === 'object' &&
207
+ migrationCategory === utils_1.MigrationCategories.async) {
208
+ newMigration.type = utils_1.MigrationCategories.async;
209
+ }
210
+ if (typeof catMigrations === 'object') {
211
+ migrations[migrationCategory] = {
212
+ [newMigrationKey]: newMigration,
213
+ ...catMigrations,
214
+ };
215
+ }
216
+ };
217
+ switch (fileExtension) {
171
218
  case '.coffee':
172
219
  case '.ts':
173
220
  case '.js':
174
- migrations[migrationKey] = nodeRequire(filePath);
221
+ const loadeMigration = nodeRequire(filePath);
222
+ const migration = loadeMigration.default ?? loadeMigration;
223
+ if (!(0, utils_1.isAsyncMigration)(migration) &&
224
+ !(0, utils_1.isSyncMigration)(migration)) {
225
+ throw new Error(`loaded migraton file at ${filePath} is neither a synchron nor a asyncron migration definition`);
226
+ }
227
+ assignMigrationWithCategory(migrationKey, migration);
175
228
  break;
176
229
  case '.sql':
177
- migrations[migrationKey] = await fs.promises.readFile(filePath, 'utf8');
230
+ if (migrationCategory === utils_1.MigrationCategories.async) {
231
+ console.error(`Plain async migration sql statement not supported, needs to be an object, skipping: ${path.extname(filename)}`);
232
+ break;
233
+ }
234
+ assignMigrationWithCategory(migrationKey, await fs.promises.readFile(filePath, 'utf8'));
178
235
  break;
179
236
  default:
180
237
  console.error(`Unrecognised migration file extension, skipping: ${path.extname(filename)}`);
@@ -189,7 +246,7 @@ const setup = (app) => {
189
246
  await loadConfig(configObj);
190
247
  }
191
248
  catch (err) {
192
- console.error('Error loading application config', err, err.stack);
249
+ console.error('Error loading application config', err);
193
250
  process.exit(1);
194
251
  }
195
252
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config-loader/config-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config-loader/config-loader.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,32 @@
1
- export declare const DEBUG: string | undefined;
1
+ export declare const DEBUG: boolean;
2
+ type CacheFnOpts<T extends (...args: any[]) => any> = {
3
+ primitive?: true;
4
+ promise?: true;
5
+ normalizer?: memoizeWeak.MemoizeWeakOptions<T>['normalizer'];
6
+ weak: true;
7
+ } | {
8
+ primitive?: true;
9
+ promise?: true;
10
+ normalizer?: memoize.Options<T>['normalizer'];
11
+ weak?: undefined;
12
+ };
13
+ export type CacheFn = <T extends (...args: any[]) => any>(fn: T, opts?: CacheFnOpts<T>) => T;
14
+ export type CacheOpts = {
15
+ max?: number;
16
+ } | CacheFn | false;
2
17
  export declare const cache: {
3
- permissionsLookup: {
4
- max: number;
5
- };
6
- parsePermissions: {
7
- max: number;
8
- };
9
- parseOData: {
10
- max: number;
11
- };
12
- odataToAbstractSql: {
13
- max: number;
14
- };
15
- abstractSqlCompiler: {
16
- max: number;
17
- };
18
+ permissionsLookup: CacheOpts;
19
+ parsePermissions: CacheOpts;
20
+ parseOData: CacheOpts;
21
+ odataToAbstractSql: CacheOpts;
22
+ abstractSqlCompiler: CacheOpts;
23
+ userPermissions: CacheOpts;
24
+ apiKeyPermissions: CacheOpts;
25
+ apiKeyActorId: CacheOpts;
18
26
  };
27
+ import * as memoize from 'memoizee';
28
+ import memoizeWeak = require('memoizee/weak');
29
+ export declare const createCache: <T extends (...args: any[]) => any>(cacheName: keyof typeof cache, fn: T, opts: CacheFnOpts<T>) => T;
19
30
  export declare const db: {
20
31
  poolSize: number;
21
32
  idleTimeoutMillis: number | undefined;
@@ -25,8 +36,22 @@ export declare const db: {
25
36
  keepAlive: boolean | undefined;
26
37
  rollbackTimeout: number;
27
38
  timeoutMS: number;
39
+ maxUses: number;
40
+ maxLifetimeSeconds: number;
41
+ checkReadOnlyQueries: boolean;
42
+ };
43
+ export declare const PINEJS_ADVISORY_LOCK: {
44
+ namespaceKey: string;
45
+ namespaceId: number;
28
46
  };
47
+ export declare const booleanToEnabledString: (input: boolean) => "enabled" | "disabled";
29
48
  export declare const migrator: {
30
49
  lockTimeout: number;
31
50
  lockFailDelay: number;
51
+ asyncMigrationDefaultDelayMS: number;
52
+ asyncMigrationDefaultBackoffDelayMS: number;
53
+ asyncMigrationDefaultErrorThreshold: number;
54
+ asyncMigrationDefaultBatchSize: number;
55
+ asyncMigrationIsEnabled: boolean;
32
56
  };
57
+ export {};
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.migrator = exports.db = exports.cache = exports.DEBUG = void 0;
4
- exports.DEBUG = process.env.DEBUG;
3
+ exports.migrator = exports.booleanToEnabledString = exports.PINEJS_ADVISORY_LOCK = exports.db = exports.createCache = exports.cache = exports.DEBUG = void 0;
4
+ const { PINEJS_DEBUG } = process.env;
5
+ if (![undefined, '', '0', '1'].includes(PINEJS_DEBUG)) {
6
+ throw new Error(`Invalid value for PINEJS_DEBUG '${PINEJS_DEBUG}'`);
7
+ }
8
+ exports.DEBUG = PINEJS_DEBUG === '1';
5
9
  exports.cache = {
6
10
  permissionsLookup: {
7
11
  max: 5000,
@@ -18,7 +22,33 @@ exports.cache = {
18
22
  abstractSqlCompiler: {
19
23
  max: 10000,
20
24
  },
25
+ userPermissions: false,
26
+ apiKeyPermissions: false,
27
+ apiKeyActorId: false,
28
+ };
29
+ const env_parsing_1 = require("@balena/env-parsing");
30
+ const memoize = require("memoizee");
31
+ const memoizeWeak = require("memoizee/weak");
32
+ const createCache = (cacheName, fn, opts) => {
33
+ const cacheOpts = exports.cache[cacheName];
34
+ if (cacheOpts === false) {
35
+ return fn;
36
+ }
37
+ if (typeof cacheOpts === 'function') {
38
+ return cacheOpts(fn, opts);
39
+ }
40
+ if (opts?.weak === true) {
41
+ return memoizeWeak(fn, {
42
+ ...cacheOpts,
43
+ ...opts,
44
+ });
45
+ }
46
+ return memoize(fn, {
47
+ ...cacheOpts,
48
+ ...opts,
49
+ });
21
50
  };
51
+ exports.createCache = createCache;
22
52
  let timeoutMS;
23
53
  if (process.env.TRANSACTION_TIMEOUT_MS) {
24
54
  timeoutMS = parseInt(process.env.TRANSACTION_TIMEOUT_MS, 10);
@@ -38,9 +68,23 @@ exports.db = {
38
68
  keepAlive: true,
39
69
  rollbackTimeout: 30000,
40
70
  timeoutMS,
71
+ maxUses: Infinity,
72
+ maxLifetimeSeconds: 0,
73
+ checkReadOnlyQueries: exports.DEBUG,
74
+ };
75
+ exports.PINEJS_ADVISORY_LOCK = {
76
+ namespaceKey: 'pinejs_advisory_lock_namespace',
77
+ namespaceId: -1,
41
78
  };
79
+ const booleanToEnabledString = (input) => input ? 'enabled' : 'disabled';
80
+ exports.booleanToEnabledString = booleanToEnabledString;
42
81
  exports.migrator = {
43
82
  lockTimeout: 5 * 60 * 1000,
44
83
  lockFailDelay: 20 * 1000,
84
+ asyncMigrationDefaultDelayMS: 1000,
85
+ asyncMigrationDefaultBackoffDelayMS: 60000,
86
+ asyncMigrationDefaultErrorThreshold: 10,
87
+ asyncMigrationDefaultBatchSize: 1000,
88
+ asyncMigrationIsEnabled: (0, env_parsing_1.boolVar)('PINEJS_ASYNC_MIGRATION_ENABLED', true),
45
89
  };
46
90
  //# sourceMappingURL=env.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config-loader/env.ts"],"names":[],"mappings":";;;AAAe,aAAK,GAAK,OAAO,CAAC,GAAG,OAAC;AAExB,QAAA,KAAK,GAAG;IACpB,iBAAiB,EAAE;QAClB,GAAG,EAAE,IAAI;KACT;IACD,gBAAgB,EAAE;QACjB,GAAG,EAAE,MAAM;KACX;IACD,UAAU,EAAE;QACX,GAAG,EAAE,MAAM;KACX;IACD,kBAAkB,EAAE;QACnB,GAAG,EAAE,KAAK;KACV;IACD,mBAAmB,EAAE;QACpB,GAAG,EAAE,KAAK;KACV;CACD,CAAC;AAEF,IAAI,SAAiB,CAAC;AACtB,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE;IACvC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAC7D,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE;QAC9C,MAAM,IAAI,KAAK,CACd,6CAA6C,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,CACjF,CAAC;KACF;CACD;KAAM;IACN,SAAS,GAAG,KAAK,CAAC;CAClB;AAEY,QAAA,EAAE,GAAG;IACjB,QAAQ,EAAE,EAAE;IACZ,iBAAiB,EAAE,KAA2B;IAC9C,gBAAgB,EAAE,SAA+B;IACjD,YAAY,EAAE,SAA+B;IAC7C,uBAAuB,EAAE,KAA2B;IACpD,SAAS,EAAE,IAA2B;IACtC,eAAe,EAAE,KAAK;IACtB,SAAS;CACT,CAAC;AAEW,QAAA,QAAQ,GAAG;IACvB,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAE1B,aAAa,EAAE,EAAE,GAAG,IAAI;CACxB,CAAC"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config-loader/env.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,2 @@
1
- export function setup(app: import("express").Application, sbvrUtils: typeof import("../sbvr-api/sbvr-utils"), db: import("../database-layer/db").Database): import("../sbvr-api/common-types").Resolvable<void>;
2
- export namespace config {
3
- const models: {
4
- modelName: string;
5
- modelText: string;
6
- apiRoot: string;
7
- customServerCode: {
8
- setup: typeof setup;
9
- };
10
- migrations: {
11
- '11.0.0-modified-at': string;
12
- '15.0.0-true-boolean': {
13
- mysql: string;
14
- postgres: string;
15
- websql: string;
16
- };
17
- };
18
- }[];
19
- }
1
+ export function setup(app: import("express").Application, sbvrUtilsInstance: typeof import("../sbvr-api/sbvr-utils"), db: import("../database-layer/db").Database): import("../sbvr-api/common-types").Resolvable<void>;
2
+ export let config: import('../config-loader/config-loader').Config;