@balena/pinejs 17.1.6-build-fix-sbvr-server-typings-a6832639037e7c8553c377798bb25652806c3031-1 → 17.1.6-build-migraates-sbvr-server-to-ts-ed2267c4b4cbe448b6062263b90a97492176663c-2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  - commits:
2
- - subject: Fix sbvr server typings
3
- hash: a6832639037e7c8553c377798bb25652806c3031
2
+ - subject: Migrate sbvr-server to typescript
3
+ hash: ed2267c4b4cbe448b6062263b90a97492176663c
4
4
  body: ""
5
5
  footer:
6
6
  Change-type: patch
@@ -9,7 +9,7 @@
9
9
  nested: []
10
10
  version: 17.1.6
11
11
  title: ""
12
- date: 2024-06-25T22:14:18.206Z
12
+ date: 2024-06-25T22:13:54.270Z
13
13
  - commits:
14
14
  - subject: Rollback sbvr-types back to v7
15
15
  hash: b61ee61f7b7318b0dd4269646d0272be820e806b
package/CHANGELOG.md CHANGED
@@ -7,7 +7,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
7
7
  # v17.1.6
8
8
  ## (2024-06-25)
9
9
 
10
- * Fix sbvr server typings [Otavio Jacobi]
10
+ * Migrate sbvr-server to typescript [Otavio Jacobi]
11
11
 
12
12
  # v17.1.5
13
13
  ## (2024-06-24)
@@ -1,2 +1,3 @@
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 const config: import("../config-loader/config-loader").Config;
1
+ import type { Config, SetupFunction } from '../config-loader/config-loader';
2
+ export declare const setup: SetupFunction;
3
+ export declare const config: Config;
@@ -1,5 +1,30 @@
1
- import * as permissions from '../sbvr-api/permissions';
2
-
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.config = exports.setup = void 0;
27
+ const permissions = __importStar(require("../sbvr-api/permissions"));
3
28
  const uiModel = `\
4
29
  Vocabulary: ui
5
30
 
@@ -16,400 +41,337 @@ Fact type: textarea has name
16
41
  Necessity: Each name is of exactly 1 textarea
17
42
  Fact type: textarea has text
18
43
  Necessity: Each textarea has exactly 1 text`;
19
-
20
- // Middleware
21
44
  const isServerOnAir = (() => {
22
- /** @type { ((thenableOrResult?: import('../sbvr-api/common-types').Resolvable<boolean>) => void) | undefined } */
23
- let resolve;
24
- let promise = new Promise(($resolve) => {
25
- resolve = $resolve;
26
- });
27
- return (/** @type {boolean} */ value) => {
28
- if (value != null) {
29
- if (resolve != null) {
30
- resolve(value);
31
- resolve = undefined;
32
- } else {
33
- promise = Promise.resolve(value);
34
- }
35
- }
36
- return promise;
37
- };
45
+ let resolve;
46
+ let promise = new Promise(($resolve) => {
47
+ resolve = $resolve;
48
+ });
49
+ return (value) => {
50
+ if (value != null) {
51
+ if (resolve != null) {
52
+ resolve(value);
53
+ resolve = undefined;
54
+ }
55
+ else {
56
+ promise = Promise.resolve(value);
57
+ }
58
+ }
59
+ return promise;
60
+ };
38
61
  })();
39
-
40
- /** @type { import('express').Handler } */
41
62
  const serverIsOnAir = async (_req, _res, next) => {
42
- const onAir = await isServerOnAir();
43
- if (onAir) {
44
- next();
45
- } else {
46
- next('route');
47
- }
63
+ const onAir = await isServerOnAir();
64
+ if (onAir) {
65
+ next();
66
+ }
67
+ else {
68
+ next('route');
69
+ }
48
70
  };
49
-
50
- /** @type {import('../config-loader/config-loader').Config} */
51
- export const config = {
52
- models: [
53
- {
54
- modelName: 'ui',
55
- modelText: uiModel,
56
- apiRoot: 'ui',
57
- customServerCode: { setup },
58
- migrations: {
59
- '11.0.0-modified-at': `\
71
+ const setup = async (app, sbvrUtils, db) => {
72
+ const uiApi = sbvrUtils.api.ui;
73
+ const devApi = sbvrUtils.api.dev;
74
+ const setupModels = async (tx) => {
75
+ try {
76
+ const uiApiTx = uiApi.clone({
77
+ passthrough: {
78
+ tx,
79
+ req: permissions.root,
80
+ },
81
+ });
82
+ await uiApiTx
83
+ .get({
84
+ resource: 'textarea',
85
+ id: {
86
+ name: 'model_area',
87
+ },
88
+ options: {
89
+ $select: 'id',
90
+ },
91
+ })
92
+ .then(async (result) => {
93
+ if (result == null) {
94
+ return await uiApiTx.post({
95
+ resource: 'textarea',
96
+ body: {
97
+ name: 'model_area',
98
+ text: ' ',
99
+ },
100
+ });
101
+ }
102
+ });
103
+ await devApi
104
+ .get({
105
+ resource: 'model',
106
+ passthrough: {
107
+ tx,
108
+ req: permissions.rootRead,
109
+ },
110
+ options: {
111
+ $select: ['is_of__vocabulary', 'model_value'],
112
+ $filter: {
113
+ model_type: 'se',
114
+ is_of__vocabulary: 'data',
115
+ },
116
+ },
117
+ })
118
+ .then(async (result) => {
119
+ if (result.length === 0) {
120
+ throw new Error('No SE data model found');
121
+ }
122
+ const instance = result[0];
123
+ const modelValue = instance.model_value;
124
+ await sbvrUtils.executeModel(tx, {
125
+ apiRoot: instance.is_of__vocabulary,
126
+ modelText: modelValue.value,
127
+ });
128
+ });
129
+ await isServerOnAir(true);
130
+ }
131
+ catch {
132
+ await isServerOnAir(false);
133
+ }
134
+ };
135
+ app.get('/onAir', async (_req, res) => {
136
+ const onAir = await isServerOnAir();
137
+ res.json(onAir);
138
+ });
139
+ app.post('/update', permissions.checkPermissionsMiddleware('all'), serverIsOnAir, (_req, res) => {
140
+ res.status(404).end();
141
+ });
142
+ app.post('/execute', permissions.checkPermissionsMiddleware('all'), async (_req, res) => {
143
+ try {
144
+ await uiApi
145
+ .get({
146
+ resource: 'textarea',
147
+ passthrough: { req: permissions.rootRead },
148
+ id: {
149
+ name: 'model_area',
150
+ },
151
+ options: {
152
+ $select: 'text',
153
+ },
154
+ })
155
+ .then(async (result) => {
156
+ if (result == null) {
157
+ throw new Error('Could not find the model to execute');
158
+ }
159
+ const modelText = result.text;
160
+ await db.transaction(async (tx) => {
161
+ await sbvrUtils.executeModel(tx, {
162
+ apiRoot: 'data',
163
+ modelText,
164
+ });
165
+ await uiApi.patch({
166
+ resource: 'textarea',
167
+ passthrough: {
168
+ tx,
169
+ req: permissions.root,
170
+ },
171
+ id: {
172
+ name: 'model_area',
173
+ },
174
+ body: {
175
+ is_disabled: true,
176
+ },
177
+ });
178
+ });
179
+ });
180
+ await isServerOnAir(true);
181
+ res.status(200).end();
182
+ }
183
+ catch (err) {
184
+ await isServerOnAir(false);
185
+ res.status(404).json(err);
186
+ }
187
+ });
188
+ app.post('/validate', permissions.checkPermissionsMiddleware('read'), async (req, res) => {
189
+ try {
190
+ const results = await sbvrUtils.runRule('data', req.body.rule);
191
+ res.json(results);
192
+ }
193
+ catch (err) {
194
+ console.log('Error validating', err);
195
+ res.status(404).end();
196
+ }
197
+ });
198
+ app.delete('/cleardb', permissions.checkPermissionsMiddleware('delete'), async (_req, res) => {
199
+ try {
200
+ await db.transaction(async (tx) => {
201
+ const result = await tx.tableList();
202
+ await Promise.all(result.rows.map((table) => tx.dropTable(table.name)));
203
+ await sbvrUtils.executeStandardModels(tx);
204
+ console.warn('DEL /cleardb is very destructive and should really be followed by a full restart/reload.');
205
+ await sbvrUtils.executeModels(tx, exports.config.models);
206
+ await setupModels(tx);
207
+ });
208
+ res.status(200).end();
209
+ }
210
+ catch (err) {
211
+ console.error('Error clearing db', err);
212
+ res.status(503).end();
213
+ }
214
+ });
215
+ app.put('/importdb', permissions.checkPermissionsMiddleware({
216
+ and: ['create', 'update', 'delete'],
217
+ }), async (req, res) => {
218
+ try {
219
+ const queries = req.body.split(';');
220
+ await db.transaction(async (tx) => {
221
+ for (let query of queries) {
222
+ query = query.trim();
223
+ if (query.length > 0) {
224
+ try {
225
+ await tx.executeSql(query);
226
+ }
227
+ catch (err) {
228
+ throw [query, err];
229
+ }
230
+ }
231
+ }
232
+ });
233
+ res.status(200).end();
234
+ }
235
+ catch (err) {
236
+ console.error('Error importing db', err);
237
+ res.status(404).end();
238
+ }
239
+ });
240
+ app.get('/exportdb', permissions.checkPermissionsMiddleware('read'), async (_req, res) => {
241
+ try {
242
+ let exported = '';
243
+ await db.transaction(async (tx) => {
244
+ const tables = await tx.tableList("name NOT LIKE '%_buk'");
245
+ await Promise.all(tables.rows.map(async (table) => {
246
+ const tableName = table.name;
247
+ exported += 'DROP TABLE IF EXISTS "' + tableName + '";\n';
248
+ exported += table.sql + ';\n';
249
+ const result = await tx.executeSql('SELECT * FROM "' + tableName + '";');
250
+ let insQuery = '';
251
+ for (const currRow of result.rows) {
252
+ let notFirst = false;
253
+ insQuery += 'INSERT INTO "' + tableName + '" (';
254
+ let valQuery = '';
255
+ for (const propName of Object.keys(currRow)) {
256
+ if (notFirst) {
257
+ insQuery += ',';
258
+ valQuery += ',';
259
+ }
260
+ else {
261
+ notFirst = true;
262
+ }
263
+ insQuery += '"' + propName + '"';
264
+ valQuery += "'" + currRow[propName] + "'";
265
+ }
266
+ insQuery += ') values (' + valQuery + ');\n';
267
+ }
268
+ exported += insQuery;
269
+ }));
270
+ });
271
+ res.json(exported);
272
+ }
273
+ catch (err) {
274
+ console.error('Error exporting db', err);
275
+ res.status(503).end();
276
+ }
277
+ });
278
+ app.post('/backupdb', permissions.checkPermissionsMiddleware('all'), serverIsOnAir, async (_req, res) => {
279
+ try {
280
+ await db.transaction(async (tx) => {
281
+ const result = await tx.tableList("name NOT LIKE '%_buk'");
282
+ await Promise.all(result.rows.map(async (currRow) => {
283
+ const tableName = currRow.name;
284
+ await tx.dropTable(tableName + '_buk', true);
285
+ await tx.executeSql('ALTER TABLE "' +
286
+ tableName +
287
+ '" RENAME TO "' +
288
+ tableName +
289
+ '_buk";');
290
+ }));
291
+ });
292
+ res.status(200).end();
293
+ }
294
+ catch (err) {
295
+ console.error('Error backing up db', err);
296
+ res.status(404).end();
297
+ }
298
+ });
299
+ app.post('/restoredb', permissions.checkPermissionsMiddleware('all'), serverIsOnAir, async (_req, res) => {
300
+ try {
301
+ await db.transaction(async (tx) => {
302
+ const result = await tx.tableList("name LIKE '%_buk'");
303
+ await Promise.all(result.rows.map(async (currRow) => {
304
+ const tableName = currRow.name;
305
+ await tx.dropTable(tableName.slice(0, -4), true);
306
+ await tx.executeSql('ALTER TABLE "' +
307
+ tableName +
308
+ '" RENAME TO "' +
309
+ tableName.slice(0, -4) +
310
+ '";');
311
+ }));
312
+ });
313
+ res.status(200).end();
314
+ }
315
+ catch (err) {
316
+ console.error('Error restoring db', err);
317
+ res.status(404).end();
318
+ }
319
+ });
320
+ app.all('/data/*', serverIsOnAir, sbvrUtils.handleODataRequest);
321
+ app.get('/Auth/*', serverIsOnAir, sbvrUtils.handleODataRequest);
322
+ app.merge('/ui/*', sbvrUtils.handleODataRequest);
323
+ app.patch('/ui/*', sbvrUtils.handleODataRequest);
324
+ app.delete('/', serverIsOnAir, async (_req, res) => {
325
+ await Promise.all([
326
+ uiApi.patch({
327
+ resource: 'textarea',
328
+ passthrough: { req: permissions.root },
329
+ id: {
330
+ name: 'model_area',
331
+ },
332
+ body: {
333
+ text: '',
334
+ is_disabled: false,
335
+ },
336
+ }),
337
+ sbvrUtils.deleteModel('data'),
338
+ ]);
339
+ await isServerOnAir(false);
340
+ res.status(200).end();
341
+ });
342
+ await db.transaction(setupModels);
343
+ };
344
+ exports.setup = setup;
345
+ exports.config = {
346
+ models: [
347
+ {
348
+ modelName: 'ui',
349
+ modelText: uiModel,
350
+ apiRoot: 'ui',
351
+ customServerCode: { setup: exports.setup },
352
+ migrations: {
353
+ '11.0.0-modified-at': `\
60
354
  ALTER TABLE "textarea"
61
355
  ADD COLUMN IF NOT EXISTS "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\
62
356
  `,
63
- '15.0.0-data-types': async (tx, sbvrUtils) => {
64
- switch (sbvrUtils.db.engine) {
65
- case 'mysql':
66
- await tx.executeSql(`\
357
+ '15.0.0-data-types': async (tx, sbvrUtils) => {
358
+ switch (sbvrUtils.db.engine) {
359
+ case 'mysql':
360
+ await tx.executeSql(`\
67
361
  ALTER TABLE "textarea"
68
362
  MODIFY "is disabled" BOOLEAN NOT NULL;`);
69
- break;
70
- case 'postgres':
71
- await tx.executeSql(`\
363
+ break;
364
+ case 'postgres':
365
+ await tx.executeSql(`\
72
366
  ALTER TABLE "textarea"
73
367
  ALTER COLUMN "is disabled" DROP DEFAULT,
74
368
  ALTER COLUMN "is disabled" SET DATA TYPE BOOLEAN USING "is disabled"::BOOLEAN,
75
369
  ALTER COLUMN "is disabled" SET DEFAULT FALSE;`);
76
- break;
77
- // No need to migrate for websql
78
- }
79
- },
80
- },
81
- },
82
- ],
370
+ break;
371
+ }
372
+ },
373
+ },
374
+ },
375
+ ],
83
376
  };
84
-
85
- /** @type { import('../config-loader/config-loader').SetupFunction } */
86
- export async function setup(app, sbvrUtils, db) {
87
- const uiApi = sbvrUtils.api.ui;
88
- const devApi = sbvrUtils.api.dev;
89
- const setupModels = async (
90
- /** @type { import('../database-layer/db').Tx } */ tx,
91
- ) => {
92
- try {
93
- const uiApiTx = uiApi.clone({
94
- passthrough: {
95
- tx,
96
- req: permissions.root,
97
- },
98
- });
99
- await uiApiTx
100
- .get({
101
- resource: 'textarea',
102
- id: {
103
- name: 'model_area',
104
- },
105
- options: {
106
- $select: 'id',
107
- },
108
- })
109
- .then(async (/** @type { { [key: string]: any } } */ result) => {
110
- if (result == null) {
111
- // Add a model_area entry if it doesn't already exist.
112
- return await uiApiTx.post({
113
- resource: 'textarea',
114
- body: {
115
- name: 'model_area',
116
- text: ' ',
117
- },
118
- });
119
- }
120
- });
121
- await devApi
122
- .get({
123
- resource: 'model',
124
- passthrough: {
125
- tx,
126
- req: permissions.rootRead,
127
- },
128
- options: {
129
- $select: ['is_of__vocabulary', 'model_value'],
130
- $filter: {
131
- model_type: 'se',
132
- is_of__vocabulary: 'data',
133
- },
134
- },
135
- })
136
- .then(async (result) => {
137
- if (result.length === 0) {
138
- throw new Error('No SE data model found');
139
- }
140
- const instance = result[0];
141
- // prettier-ignore
142
- const modelValue = /** @type { {[key: string]: string} } */ (instance.model_value);
143
- await sbvrUtils.executeModel(tx, {
144
- apiRoot: instance.is_of__vocabulary,
145
- modelText: modelValue.value,
146
- });
147
- });
148
- await isServerOnAir(true);
149
- } catch {
150
- await isServerOnAir(false);
151
- }
152
- };
153
-
154
- app.get('/onAir', async (_req, res) => {
155
- const onAir = await isServerOnAir();
156
- res.json(onAir);
157
- });
158
-
159
- app.post(
160
- '/update',
161
- permissions.checkPermissionsMiddleware('all'),
162
- serverIsOnAir,
163
- (_req, res) => {
164
- res.status(404).end();
165
- },
166
- );
167
-
168
- app.post(
169
- '/execute',
170
- permissions.checkPermissionsMiddleware('all'),
171
- async (_req, res) => {
172
- try {
173
- await uiApi
174
- .get({
175
- resource: 'textarea',
176
- passthrough: { req: permissions.rootRead },
177
- id: {
178
- name: 'model_area',
179
- },
180
- options: {
181
- $select: 'text',
182
- },
183
- })
184
- .then(async (/** @type { { [key: string]: any } } */ result) => {
185
- if (result == null) {
186
- throw new Error('Could not find the model to execute');
187
- }
188
- const modelText = result.text;
189
- await db.transaction(async (tx) => {
190
- await sbvrUtils.executeModel(tx, {
191
- apiRoot: 'data',
192
- modelText,
193
- });
194
- await uiApi.patch({
195
- resource: 'textarea',
196
- passthrough: {
197
- tx,
198
- req: permissions.root,
199
- },
200
- id: {
201
- name: 'model_area',
202
- },
203
- body: {
204
- is_disabled: true,
205
- },
206
- });
207
- });
208
- });
209
- await isServerOnAir(true);
210
- res.status(200).end();
211
- } catch (err) {
212
- await isServerOnAir(false);
213
- res.status(404).json(err);
214
- }
215
- },
216
- );
217
- app.post(
218
- '/validate',
219
- permissions.checkPermissionsMiddleware('read'),
220
- async (req, res) => {
221
- try {
222
- const results = await sbvrUtils.runRule('data', req.body.rule);
223
- res.json(results);
224
- } catch (err) {
225
- console.log('Error validating', err);
226
- res.status(404).end();
227
- }
228
- },
229
- );
230
- app.delete(
231
- '/cleardb',
232
- permissions.checkPermissionsMiddleware('delete'),
233
- async (_req, res) => {
234
- try {
235
- await db.transaction(async (tx) => {
236
- const result = await tx.tableList();
237
-
238
- await Promise.all(
239
- result.rows.map((table) => tx.dropTable(table.name)),
240
- );
241
- await sbvrUtils.executeStandardModels(tx);
242
- // TODO: HACK: This is usually done by config-loader and should be done there
243
- // In general cleardb is very destructive and should really go through a full "reboot" procedure to set everything up again.
244
- console.warn(
245
- 'DEL /cleardb is very destructive and should really be followed by a full restart/reload.',
246
- );
247
- await sbvrUtils.executeModels(tx, exports.config.models);
248
- await setupModels(tx);
249
- });
250
- res.status(200).end();
251
- } catch (/** @type any */ err) {
252
- console.error('Error clearing db', err);
253
- res.status(503).end();
254
- }
255
- },
256
- );
257
- app.put(
258
- '/importdb',
259
- permissions.checkPermissionsMiddleware({
260
- and: ['create', 'update', 'delete'],
261
- }),
262
- async (req, res) => {
263
- try {
264
- const queries = req.body.split(';');
265
- await db.transaction(async (tx) => {
266
- for (let query of queries) {
267
- query = query.trim();
268
- if (query.length > 0) {
269
- try {
270
- await tx.executeSql(query);
271
- } catch (err) {
272
- // TODO: Consider changing this to a custom Error
273
- // eslint-disable-next-line no-throw-literal
274
- throw [query, err];
275
- }
276
- }
277
- }
278
- });
279
- res.status(200).end();
280
- } catch (/** @type any */ err) {
281
- console.error('Error importing db', err);
282
- res.status(404).end();
283
- }
284
- },
285
- );
286
- app.get(
287
- '/exportdb',
288
- permissions.checkPermissionsMiddleware('read'),
289
- async (_req, res) => {
290
- try {
291
- let exported = '';
292
- await db.transaction(async (tx) => {
293
- const tables = await tx.tableList("name NOT LIKE '%_buk'");
294
- await Promise.all(
295
- tables.rows.map(async (table) => {
296
- const tableName = table.name;
297
- exported += 'DROP TABLE IF EXISTS "' + tableName + '";\n';
298
- exported += table.sql + ';\n';
299
- const result = await tx.executeSql(
300
- 'SELECT * FROM "' + tableName + '";',
301
- );
302
- let insQuery = '';
303
- for (const currRow of result.rows) {
304
- let notFirst = false;
305
- insQuery += 'INSERT INTO "' + tableName + '" (';
306
- let valQuery = '';
307
- for (const propName of Object.keys(currRow)) {
308
- if (notFirst) {
309
- insQuery += ',';
310
- valQuery += ',';
311
- } else {
312
- notFirst = true;
313
- }
314
- insQuery += '"' + propName + '"';
315
- valQuery += "'" + currRow[propName] + "'";
316
- }
317
- insQuery += ') values (' + valQuery + ');\n';
318
- }
319
- exported += insQuery;
320
- }),
321
- );
322
- });
323
- res.json(exported);
324
- } catch (/** @type any */ err) {
325
- console.error('Error exporting db', err);
326
- res.status(503).end();
327
- }
328
- },
329
- );
330
- app.post(
331
- '/backupdb',
332
- permissions.checkPermissionsMiddleware('all'),
333
- serverIsOnAir,
334
- async (_req, res) => {
335
- try {
336
- await db.transaction(async (tx) => {
337
- const result = await tx.tableList("name NOT LIKE '%_buk'");
338
- await Promise.all(
339
- result.rows.map(async (currRow) => {
340
- const tableName = currRow.name;
341
- await tx.dropTable(tableName + '_buk', true);
342
-
343
- await tx.executeSql(
344
- 'ALTER TABLE "' +
345
- tableName +
346
- '" RENAME TO "' +
347
- tableName +
348
- '_buk";',
349
- );
350
- }),
351
- );
352
- });
353
- res.status(200).end();
354
- } catch (/** @type any */ err) {
355
- console.error('Error backing up db', err);
356
- res.status(404).end();
357
- }
358
- },
359
- );
360
- app.post(
361
- '/restoredb',
362
- permissions.checkPermissionsMiddleware('all'),
363
- serverIsOnAir,
364
- async (_req, res) => {
365
- try {
366
- await db.transaction(async (tx) => {
367
- const result = await tx.tableList("name LIKE '%_buk'");
368
- await Promise.all(
369
- result.rows.map(async (currRow) => {
370
- const tableName = currRow.name;
371
- await tx.dropTable(tableName.slice(0, -4), true);
372
- await tx.executeSql(
373
- 'ALTER TABLE "' +
374
- tableName +
375
- '" RENAME TO "' +
376
- tableName.slice(0, -4) +
377
- '";',
378
- );
379
- }),
380
- );
381
- });
382
- res.status(200).end();
383
- } catch (/** @type any */ err) {
384
- console.error('Error restoring db', err);
385
- res.status(404).end();
386
- }
387
- },
388
- );
389
-
390
- app.all('/data/*', serverIsOnAir, sbvrUtils.handleODataRequest);
391
- app.get('/Auth/*', serverIsOnAir, sbvrUtils.handleODataRequest);
392
- app.merge('/ui/*', sbvrUtils.handleODataRequest);
393
- app.patch('/ui/*', sbvrUtils.handleODataRequest);
394
-
395
- app.delete('/', serverIsOnAir, async (_req, res) => {
396
- await Promise.all([
397
- uiApi.patch({
398
- resource: 'textarea',
399
- passthrough: { req: permissions.root },
400
- id: {
401
- name: 'model_area',
402
- },
403
- body: {
404
- text: '',
405
- is_disabled: false,
406
- },
407
- }),
408
- sbvrUtils.deleteModel('data'),
409
- ]);
410
- await isServerOnAir(false);
411
- res.status(200).end();
412
- });
413
-
414
- await db.transaction(setupModels);
415
- }
377
+ //# sourceMappingURL=sbvr-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sbvr-server.js","sourceRoot":"","sources":["../../src/data-server/sbvr-server.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sbvr-server.js","sourceRoot":"","sources":["../../src/data-server/sbvr-server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@balena/pinejs",
3
- "version": "17.1.6-build-fix-sbvr-server-typings-a6832639037e7c8553c377798bb25652806c3031-1",
3
+ "version": "17.1.6-build-migraates-sbvr-server-to-ts-ed2267c4b4cbe448b6062263b90a97492176663c-2",
4
4
  "main": "out/server-glue/module",
5
5
  "type": "commonjs",
6
6
  "repository": "git@github.com:balena-io/pinejs.git",
@@ -146,6 +146,6 @@
146
146
  "recursive": true
147
147
  },
148
148
  "versionist": {
149
- "publishedAt": "2024-06-25T22:14:18.935Z"
149
+ "publishedAt": "2024-06-25T22:13:55.001Z"
150
150
  }
151
151
  }
@@ -1,4 +1,8 @@
1
1
  import * as permissions from '../sbvr-api/permissions';
2
+ import type { Resolvable } from '../sbvr-api/common-types';
3
+ import type { Handler } from 'express';
4
+ import type { Config, SetupFunction } from '../config-loader/config-loader';
5
+ import type { Tx } from '../database-layer/db';
2
6
 
3
7
  const uiModel = `\
4
8
  Vocabulary: ui
@@ -19,12 +23,11 @@ Fact type: textarea has text
19
23
 
20
24
  // Middleware
21
25
  const isServerOnAir = (() => {
22
- /** @type { ((thenableOrResult?: import('../sbvr-api/common-types').Resolvable<boolean>) => void) | undefined } */
23
- let resolve;
24
- let promise = new Promise(($resolve) => {
26
+ let resolve: ((thenableOrResult?: Resolvable<boolean>) => void) | undefined;
27
+ let promise = new Promise<boolean>(($resolve) => {
25
28
  resolve = $resolve;
26
29
  });
27
- return (/** @type {boolean} */ value) => {
30
+ return (value?: boolean) => {
28
31
  if (value != null) {
29
32
  if (resolve != null) {
30
33
  resolve(value);
@@ -37,8 +40,7 @@ const isServerOnAir = (() => {
37
40
  };
38
41
  })();
39
42
 
40
- /** @type { import('express').Handler } */
41
- const serverIsOnAir = async (_req, _res, next) => {
43
+ const serverIsOnAir: Handler = async (_req, _res, next) => {
42
44
  const onAir = await isServerOnAir();
43
45
  if (onAir) {
44
46
  next();
@@ -47,48 +49,10 @@ const serverIsOnAir = async (_req, _res, next) => {
47
49
  }
48
50
  };
49
51
 
50
- /** @type {import('../config-loader/config-loader').Config} */
51
- export const config = {
52
- models: [
53
- {
54
- modelName: 'ui',
55
- modelText: uiModel,
56
- apiRoot: 'ui',
57
- customServerCode: { setup },
58
- migrations: {
59
- '11.0.0-modified-at': `\
60
- ALTER TABLE "textarea"
61
- ADD COLUMN IF NOT EXISTS "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\
62
- `,
63
- '15.0.0-data-types': async (tx, sbvrUtils) => {
64
- switch (sbvrUtils.db.engine) {
65
- case 'mysql':
66
- await tx.executeSql(`\
67
- ALTER TABLE "textarea"
68
- MODIFY "is disabled" BOOLEAN NOT NULL;`);
69
- break;
70
- case 'postgres':
71
- await tx.executeSql(`\
72
- ALTER TABLE "textarea"
73
- ALTER COLUMN "is disabled" DROP DEFAULT,
74
- ALTER COLUMN "is disabled" SET DATA TYPE BOOLEAN USING "is disabled"::BOOLEAN,
75
- ALTER COLUMN "is disabled" SET DEFAULT FALSE;`);
76
- break;
77
- // No need to migrate for websql
78
- }
79
- },
80
- },
81
- },
82
- ],
83
- };
84
-
85
- /** @type { import('../config-loader/config-loader').SetupFunction } */
86
- export async function setup(app, sbvrUtils, db) {
52
+ export const setup: SetupFunction = async (app, sbvrUtils, db) => {
87
53
  const uiApi = sbvrUtils.api.ui;
88
54
  const devApi = sbvrUtils.api.dev;
89
- const setupModels = async (
90
- /** @type { import('../database-layer/db').Tx } */ tx,
91
- ) => {
55
+ const setupModels = async (tx: Tx) => {
92
56
  try {
93
57
  const uiApiTx = uiApi.clone({
94
58
  passthrough: {
@@ -138,8 +102,7 @@ export async function setup(app, sbvrUtils, db) {
138
102
  throw new Error('No SE data model found');
139
103
  }
140
104
  const instance = result[0];
141
- // prettier-ignore
142
- const modelValue = /** @type { {[key: string]: string} } */ (instance.model_value);
105
+ const modelValue = instance.model_value as { [key: string]: string };
143
106
  await sbvrUtils.executeModel(tx, {
144
107
  apiRoot: instance.is_of__vocabulary,
145
108
  modelText: modelValue.value,
@@ -412,4 +375,38 @@ export async function setup(app, sbvrUtils, db) {
412
375
  });
413
376
 
414
377
  await db.transaction(setupModels);
415
- }
378
+ };
379
+
380
+ export const config: Config = {
381
+ models: [
382
+ {
383
+ modelName: 'ui',
384
+ modelText: uiModel,
385
+ apiRoot: 'ui',
386
+ customServerCode: { setup },
387
+ migrations: {
388
+ '11.0.0-modified-at': `\
389
+ ALTER TABLE "textarea"
390
+ ADD COLUMN IF NOT EXISTS "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\
391
+ `,
392
+ '15.0.0-data-types': async (tx, sbvrUtils) => {
393
+ switch (sbvrUtils.db.engine) {
394
+ case 'mysql':
395
+ await tx.executeSql(`\
396
+ ALTER TABLE "textarea"
397
+ MODIFY "is disabled" BOOLEAN NOT NULL;`);
398
+ break;
399
+ case 'postgres':
400
+ await tx.executeSql(`\
401
+ ALTER TABLE "textarea"
402
+ ALTER COLUMN "is disabled" DROP DEFAULT,
403
+ ALTER COLUMN "is disabled" SET DATA TYPE BOOLEAN USING "is disabled"::BOOLEAN,
404
+ ALTER COLUMN "is disabled" SET DEFAULT FALSE;`);
405
+ break;
406
+ // No need to migrate for websql
407
+ }
408
+ },
409
+ },
410
+ },
411
+ ],
412
+ };