@balena/pinejs 17.1.0-build-joshbwlng-tasks-e8a81b1d884e0039e67661a25a5cb81d46966640-1 → 17.1.0-build-model-based-typings-86a981c89f828217571c93fa010174529a5345f9-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.pinejs-cache.json +1 -1
- package/.versionbot/CHANGELOG.yml +220 -7
- package/CHANGELOG.md +65 -2
- package/out/config-loader/env.d.ts +0 -4
- package/out/config-loader/env.js +1 -5
- package/out/config-loader/env.js.map +1 -1
- package/out/data-server/sbvr-server.js +3 -2
- package/out/data-server/sbvr-server.js.map +1 -1
- package/out/database-layer/db.d.ts +0 -3
- package/out/database-layer/db.js +0 -17
- package/out/database-layer/db.js.map +1 -1
- package/out/migrator/migrations.d.ts +113 -0
- package/out/migrator/migrations.js +3 -0
- package/out/migrator/migrations.js.map +1 -0
- package/out/migrator/sync.d.ts +17 -0
- package/out/migrator/sync.js +39 -40
- package/out/migrator/sync.js.map +1 -1
- package/out/sbvr-api/dev.d.ts +41 -0
- package/out/sbvr-api/dev.js +3 -0
- package/out/sbvr-api/dev.js.map +1 -0
- package/out/sbvr-api/hooks.d.ts +26 -26
- package/out/sbvr-api/hooks.js.map +1 -1
- package/out/sbvr-api/permissions.d.ts +26 -2
- package/out/sbvr-api/permissions.js +39 -40
- package/out/sbvr-api/permissions.js.map +1 -1
- package/out/sbvr-api/sbvr-utils.d.ts +46 -6
- package/out/sbvr-api/sbvr-utils.js +44 -44
- package/out/sbvr-api/sbvr-utils.js.map +1 -1
- package/out/sbvr-api/user.d.ts +467 -0
- package/out/sbvr-api/user.js +3 -0
- package/out/sbvr-api/user.js.map +1 -0
- package/out/server-glue/module.d.ts +0 -1
- package/out/server-glue/module.js +1 -4
- package/out/server-glue/module.js.map +1 -1
- package/package.json +18 -19
- package/src/config-loader/env.ts +1 -6
- package/src/data-server/sbvr-server.js +3 -2
- package/src/database-layer/db.ts +0 -25
- package/src/migrator/migrations.ts +120 -0
- package/src/migrator/sync.ts +46 -41
- package/src/sbvr-api/dev.ts +44 -0
- package/src/sbvr-api/hooks.ts +21 -18
- package/src/sbvr-api/permissions.ts +50 -44
- package/src/sbvr-api/sbvr-utils.ts +90 -53
- package/src/sbvr-api/user.ts +421 -0
- package/src/server-glue/module.ts +0 -3
- package/out/tasks/common.d.ts +0 -4
- package/out/tasks/common.js +0 -13
- package/out/tasks/common.js.map +0 -1
- package/out/tasks/index.d.ts +0 -8
- package/out/tasks/index.js +0 -142
- package/out/tasks/index.js.map +0 -1
- package/out/tasks/tasks.sbvr +0 -60
- package/out/tasks/types.d.ts +0 -38
- package/out/tasks/types.js +0 -10
- package/out/tasks/types.js.map +0 -1
- package/out/tasks/worker.d.ts +0 -16
- package/out/tasks/worker.js +0 -228
- package/out/tasks/worker.js.map +0 -1
- package/src/tasks/common.ts +0 -14
- package/src/tasks/index.ts +0 -158
- package/src/tasks/tasks.sbvr +0 -60
- package/src/tasks/types.ts +0 -58
- package/src/tasks/worker.ts +0 -281
@@ -0,0 +1,467 @@
|
|
1
|
+
import type { Types } from '@balena/abstract-sql-to-typescript';
|
2
|
+
export interface Permission {
|
3
|
+
Read: {
|
4
|
+
created_at: Types['Date Time']['Read'];
|
5
|
+
modified_at: Types['Date Time']['Read'];
|
6
|
+
id: Types['Serial']['Read'];
|
7
|
+
name: Types['Text']['Read'];
|
8
|
+
is_of__role?: Array<RoleHasPermission['Read']>;
|
9
|
+
is_of__user?: Array<UserHasPermission['Read']>;
|
10
|
+
is_of__api_key?: Array<ApiKeyHasPermission['Read']>;
|
11
|
+
user__has__permission?: Array<UserHasPermission['Read']>;
|
12
|
+
user_permission?: Array<UserHasPermission['Read']>;
|
13
|
+
};
|
14
|
+
Write: {
|
15
|
+
created_at: Types['Date Time']['Write'];
|
16
|
+
modified_at: Types['Date Time']['Write'];
|
17
|
+
id: Types['Serial']['Write'];
|
18
|
+
name: Types['Text']['Write'];
|
19
|
+
};
|
20
|
+
}
|
21
|
+
export interface Role {
|
22
|
+
Read: {
|
23
|
+
created_at: Types['Date Time']['Read'];
|
24
|
+
modified_at: Types['Date Time']['Read'];
|
25
|
+
id: Types['Serial']['Read'];
|
26
|
+
name: Types['Text']['Read'];
|
27
|
+
role__has__permission?: Array<RoleHasPermission['Read']>;
|
28
|
+
user__has__role?: Array<UserHasRole['Read']>;
|
29
|
+
user_role?: Array<UserHasRole['Read']>;
|
30
|
+
is_of__user?: Array<UserHasRole['Read']>;
|
31
|
+
is_of__api_key?: Array<ApiKeyHasRole['Read']>;
|
32
|
+
};
|
33
|
+
Write: {
|
34
|
+
created_at: Types['Date Time']['Write'];
|
35
|
+
modified_at: Types['Date Time']['Write'];
|
36
|
+
id: Types['Serial']['Write'];
|
37
|
+
name: Types['Text']['Write'];
|
38
|
+
};
|
39
|
+
}
|
40
|
+
export interface RoleHasPermission {
|
41
|
+
Read: {
|
42
|
+
created_at: Types['Date Time']['Read'];
|
43
|
+
modified_at: Types['Date Time']['Read'];
|
44
|
+
role: {
|
45
|
+
__id: Role['Read']['id'];
|
46
|
+
} | [Role['Read']];
|
47
|
+
permission: {
|
48
|
+
__id: Permission['Read']['id'];
|
49
|
+
} | [Permission['Read']];
|
50
|
+
id: Types['Serial']['Read'];
|
51
|
+
is_of__role: {
|
52
|
+
__id: Role['Read']['id'];
|
53
|
+
} | [Role['Read']];
|
54
|
+
};
|
55
|
+
Write: {
|
56
|
+
created_at: Types['Date Time']['Write'];
|
57
|
+
modified_at: Types['Date Time']['Write'];
|
58
|
+
role: Role['Write']['id'];
|
59
|
+
permission: Permission['Write']['id'];
|
60
|
+
id: Types['Serial']['Write'];
|
61
|
+
};
|
62
|
+
}
|
63
|
+
export interface Actor {
|
64
|
+
Read: {
|
65
|
+
created_at: Types['Date Time']['Read'];
|
66
|
+
modified_at: Types['Date Time']['Read'];
|
67
|
+
id: Types['Serial']['Read'];
|
68
|
+
is_of__user?: Array<User['Read']>;
|
69
|
+
api_key?: Array<ApiKey['Read']>;
|
70
|
+
};
|
71
|
+
Write: {
|
72
|
+
created_at: Types['Date Time']['Write'];
|
73
|
+
modified_at: Types['Date Time']['Write'];
|
74
|
+
id: Types['Serial']['Write'];
|
75
|
+
};
|
76
|
+
}
|
77
|
+
export interface User {
|
78
|
+
Read: {
|
79
|
+
created_at: Types['Date Time']['Read'];
|
80
|
+
modified_at: Types['Date Time']['Read'];
|
81
|
+
id: Types['Serial']['Read'];
|
82
|
+
actor: {
|
83
|
+
__id: Actor['Read']['id'];
|
84
|
+
} | [Actor['Read']];
|
85
|
+
username: Types['Short Text']['Read'];
|
86
|
+
password: Types['Hashed']['Read'];
|
87
|
+
user__has__role?: Array<UserHasRole['Read']>;
|
88
|
+
user_role?: Array<UserHasRole['Read']>;
|
89
|
+
user__has__permission?: Array<UserHasPermission['Read']>;
|
90
|
+
user_permission?: Array<UserHasPermission['Read']>;
|
91
|
+
};
|
92
|
+
Write: {
|
93
|
+
created_at: Types['Date Time']['Write'];
|
94
|
+
modified_at: Types['Date Time']['Write'];
|
95
|
+
id: Types['Serial']['Write'];
|
96
|
+
actor: Actor['Write']['id'];
|
97
|
+
username: Types['Short Text']['Write'];
|
98
|
+
password: Types['Hashed']['Write'];
|
99
|
+
};
|
100
|
+
}
|
101
|
+
export interface UserHasRole {
|
102
|
+
Read: {
|
103
|
+
created_at: Types['Date Time']['Read'];
|
104
|
+
modified_at: Types['Date Time']['Read'];
|
105
|
+
user: {
|
106
|
+
__id: User['Read']['id'];
|
107
|
+
} | [User['Read']];
|
108
|
+
role: {
|
109
|
+
__id: Role['Read']['id'];
|
110
|
+
} | [Role['Read']];
|
111
|
+
id: Types['Serial']['Read'];
|
112
|
+
expiry_date: Types['Date Time']['Read'] | null;
|
113
|
+
is_of__user: {
|
114
|
+
__id: User['Read']['id'];
|
115
|
+
} | [User['Read']];
|
116
|
+
};
|
117
|
+
Write: {
|
118
|
+
created_at: Types['Date Time']['Write'];
|
119
|
+
modified_at: Types['Date Time']['Write'];
|
120
|
+
user: User['Write']['id'];
|
121
|
+
role: Role['Write']['id'];
|
122
|
+
id: Types['Serial']['Write'];
|
123
|
+
expiry_date: Types['Date Time']['Write'] | null;
|
124
|
+
};
|
125
|
+
}
|
126
|
+
export interface UserHasPermission {
|
127
|
+
Read: {
|
128
|
+
created_at: Types['Date Time']['Read'];
|
129
|
+
modified_at: Types['Date Time']['Read'];
|
130
|
+
user: {
|
131
|
+
__id: User['Read']['id'];
|
132
|
+
} | [User['Read']];
|
133
|
+
permission: {
|
134
|
+
__id: Permission['Read']['id'];
|
135
|
+
} | [Permission['Read']];
|
136
|
+
id: Types['Serial']['Read'];
|
137
|
+
expiry_date: Types['Date Time']['Read'] | null;
|
138
|
+
is_of__user: {
|
139
|
+
__id: User['Read']['id'];
|
140
|
+
} | [User['Read']];
|
141
|
+
};
|
142
|
+
Write: {
|
143
|
+
created_at: Types['Date Time']['Write'];
|
144
|
+
modified_at: Types['Date Time']['Write'];
|
145
|
+
user: User['Write']['id'];
|
146
|
+
permission: Permission['Write']['id'];
|
147
|
+
id: Types['Serial']['Write'];
|
148
|
+
expiry_date: Types['Date Time']['Write'] | null;
|
149
|
+
};
|
150
|
+
}
|
151
|
+
export interface ApiKey {
|
152
|
+
Read: {
|
153
|
+
created_at: Types['Date Time']['Read'];
|
154
|
+
modified_at: Types['Date Time']['Read'];
|
155
|
+
id: Types['Serial']['Read'];
|
156
|
+
key: Types['Short Text']['Read'];
|
157
|
+
expiry_date: Types['Date Time']['Read'] | null;
|
158
|
+
is_of__actor: {
|
159
|
+
__id: Actor['Read']['id'];
|
160
|
+
} | [Actor['Read']];
|
161
|
+
name: Types['Text']['Read'] | null;
|
162
|
+
description: Types['Text']['Read'] | null;
|
163
|
+
api_key__has__role?: Array<ApiKeyHasRole['Read']>;
|
164
|
+
api_key__has__permission?: Array<ApiKeyHasPermission['Read']>;
|
165
|
+
};
|
166
|
+
Write: {
|
167
|
+
created_at: Types['Date Time']['Write'];
|
168
|
+
modified_at: Types['Date Time']['Write'];
|
169
|
+
id: Types['Serial']['Write'];
|
170
|
+
key: Types['Short Text']['Write'];
|
171
|
+
expiry_date: Types['Date Time']['Write'] | null;
|
172
|
+
is_of__actor: Actor['Write']['id'];
|
173
|
+
name: Types['Text']['Write'] | null;
|
174
|
+
description: Types['Text']['Write'] | null;
|
175
|
+
};
|
176
|
+
}
|
177
|
+
export interface ApiKeyHasRole {
|
178
|
+
Read: {
|
179
|
+
created_at: Types['Date Time']['Read'];
|
180
|
+
modified_at: Types['Date Time']['Read'];
|
181
|
+
api_key: {
|
182
|
+
__id: ApiKey['Read']['id'];
|
183
|
+
} | [ApiKey['Read']];
|
184
|
+
role: {
|
185
|
+
__id: Role['Read']['id'];
|
186
|
+
} | [Role['Read']];
|
187
|
+
id: Types['Serial']['Read'];
|
188
|
+
is_of__api_key: {
|
189
|
+
__id: ApiKey['Read']['id'];
|
190
|
+
} | [ApiKey['Read']];
|
191
|
+
};
|
192
|
+
Write: {
|
193
|
+
created_at: Types['Date Time']['Write'];
|
194
|
+
modified_at: Types['Date Time']['Write'];
|
195
|
+
api_key: ApiKey['Write']['id'];
|
196
|
+
role: Role['Write']['id'];
|
197
|
+
id: Types['Serial']['Write'];
|
198
|
+
};
|
199
|
+
}
|
200
|
+
export interface ApiKeyHasPermission {
|
201
|
+
Read: {
|
202
|
+
created_at: Types['Date Time']['Read'];
|
203
|
+
modified_at: Types['Date Time']['Read'];
|
204
|
+
api_key: {
|
205
|
+
__id: ApiKey['Read']['id'];
|
206
|
+
} | [ApiKey['Read']];
|
207
|
+
permission: {
|
208
|
+
__id: Permission['Read']['id'];
|
209
|
+
} | [Permission['Read']];
|
210
|
+
id: Types['Serial']['Read'];
|
211
|
+
is_of__api_key: {
|
212
|
+
__id: ApiKey['Read']['id'];
|
213
|
+
} | [ApiKey['Read']];
|
214
|
+
};
|
215
|
+
Write: {
|
216
|
+
created_at: Types['Date Time']['Write'];
|
217
|
+
modified_at: Types['Date Time']['Write'];
|
218
|
+
api_key: ApiKey['Write']['id'];
|
219
|
+
permission: Permission['Write']['id'];
|
220
|
+
id: Types['Serial']['Write'];
|
221
|
+
};
|
222
|
+
}
|
223
|
+
export interface Permission {
|
224
|
+
Read: {
|
225
|
+
created_at: Types['Date Time']['Read'];
|
226
|
+
modified_at: Types['Date Time']['Read'];
|
227
|
+
id: Types['Serial']['Read'];
|
228
|
+
name: Types['Text']['Read'];
|
229
|
+
is_of__role?: Array<RoleHasPermission['Read']>;
|
230
|
+
is_of__user?: Array<UserHasPermission['Read']>;
|
231
|
+
is_of__api_key?: Array<ApiKeyHasPermission['Read']>;
|
232
|
+
user__has__permission?: Array<UserHasPermission['Read']>;
|
233
|
+
user_permission?: Array<UserHasPermission['Read']>;
|
234
|
+
};
|
235
|
+
Write: {
|
236
|
+
created_at: Types['Date Time']['Write'];
|
237
|
+
modified_at: Types['Date Time']['Write'];
|
238
|
+
id: Types['Serial']['Write'];
|
239
|
+
name: Types['Text']['Write'];
|
240
|
+
};
|
241
|
+
}
|
242
|
+
export interface Role {
|
243
|
+
Read: {
|
244
|
+
created_at: Types['Date Time']['Read'];
|
245
|
+
modified_at: Types['Date Time']['Read'];
|
246
|
+
id: Types['Serial']['Read'];
|
247
|
+
name: Types['Text']['Read'];
|
248
|
+
role__has__permission?: Array<RoleHasPermission['Read']>;
|
249
|
+
user__has__role?: Array<UserHasRole['Read']>;
|
250
|
+
user_role?: Array<UserHasRole['Read']>;
|
251
|
+
is_of__user?: Array<UserHasRole['Read']>;
|
252
|
+
is_of__api_key?: Array<ApiKeyHasRole['Read']>;
|
253
|
+
};
|
254
|
+
Write: {
|
255
|
+
created_at: Types['Date Time']['Write'];
|
256
|
+
modified_at: Types['Date Time']['Write'];
|
257
|
+
id: Types['Serial']['Write'];
|
258
|
+
name: Types['Text']['Write'];
|
259
|
+
};
|
260
|
+
}
|
261
|
+
export interface RoleHasPermission {
|
262
|
+
Read: {
|
263
|
+
created_at: Types['Date Time']['Read'];
|
264
|
+
modified_at: Types['Date Time']['Read'];
|
265
|
+
role: {
|
266
|
+
__id: Role['Read']['id'];
|
267
|
+
} | [Role['Read']];
|
268
|
+
permission: {
|
269
|
+
__id: Permission['Read']['id'];
|
270
|
+
} | [Permission['Read']];
|
271
|
+
id: Types['Serial']['Read'];
|
272
|
+
is_of__role: {
|
273
|
+
__id: Role['Read']['id'];
|
274
|
+
} | [Role['Read']];
|
275
|
+
};
|
276
|
+
Write: {
|
277
|
+
created_at: Types['Date Time']['Write'];
|
278
|
+
modified_at: Types['Date Time']['Write'];
|
279
|
+
role: Role['Write']['id'];
|
280
|
+
permission: Permission['Write']['id'];
|
281
|
+
id: Types['Serial']['Write'];
|
282
|
+
};
|
283
|
+
}
|
284
|
+
export interface Actor {
|
285
|
+
Read: {
|
286
|
+
created_at: Types['Date Time']['Read'];
|
287
|
+
modified_at: Types['Date Time']['Read'];
|
288
|
+
id: Types['Serial']['Read'];
|
289
|
+
is_of__user?: Array<User['Read']>;
|
290
|
+
api_key?: Array<ApiKey['Read']>;
|
291
|
+
};
|
292
|
+
Write: {
|
293
|
+
created_at: Types['Date Time']['Write'];
|
294
|
+
modified_at: Types['Date Time']['Write'];
|
295
|
+
id: Types['Serial']['Write'];
|
296
|
+
};
|
297
|
+
}
|
298
|
+
export interface User {
|
299
|
+
Read: {
|
300
|
+
created_at: Types['Date Time']['Read'];
|
301
|
+
modified_at: Types['Date Time']['Read'];
|
302
|
+
id: Types['Serial']['Read'];
|
303
|
+
actor: {
|
304
|
+
__id: Actor['Read']['id'];
|
305
|
+
} | [Actor['Read']];
|
306
|
+
username: Types['Short Text']['Read'];
|
307
|
+
password: Types['Hashed']['Read'];
|
308
|
+
user__has__role?: Array<UserHasRole['Read']>;
|
309
|
+
user_role?: Array<UserHasRole['Read']>;
|
310
|
+
user__has__permission?: Array<UserHasPermission['Read']>;
|
311
|
+
user_permission?: Array<UserHasPermission['Read']>;
|
312
|
+
};
|
313
|
+
Write: {
|
314
|
+
created_at: Types['Date Time']['Write'];
|
315
|
+
modified_at: Types['Date Time']['Write'];
|
316
|
+
id: Types['Serial']['Write'];
|
317
|
+
actor: Actor['Write']['id'];
|
318
|
+
username: Types['Short Text']['Write'];
|
319
|
+
password: Types['Hashed']['Write'];
|
320
|
+
};
|
321
|
+
}
|
322
|
+
export interface UserHasRole {
|
323
|
+
Read: {
|
324
|
+
created_at: Types['Date Time']['Read'];
|
325
|
+
modified_at: Types['Date Time']['Read'];
|
326
|
+
user: {
|
327
|
+
__id: User['Read']['id'];
|
328
|
+
} | [User['Read']];
|
329
|
+
role: {
|
330
|
+
__id: Role['Read']['id'];
|
331
|
+
} | [Role['Read']];
|
332
|
+
id: Types['Serial']['Read'];
|
333
|
+
expiry_date: Types['Date Time']['Read'] | null;
|
334
|
+
is_of__user: {
|
335
|
+
__id: User['Read']['id'];
|
336
|
+
} | [User['Read']];
|
337
|
+
};
|
338
|
+
Write: {
|
339
|
+
created_at: Types['Date Time']['Write'];
|
340
|
+
modified_at: Types['Date Time']['Write'];
|
341
|
+
user: User['Write']['id'];
|
342
|
+
role: Role['Write']['id'];
|
343
|
+
id: Types['Serial']['Write'];
|
344
|
+
expiry_date: Types['Date Time']['Write'] | null;
|
345
|
+
};
|
346
|
+
}
|
347
|
+
export interface UserHasPermission {
|
348
|
+
Read: {
|
349
|
+
created_at: Types['Date Time']['Read'];
|
350
|
+
modified_at: Types['Date Time']['Read'];
|
351
|
+
user: {
|
352
|
+
__id: User['Read']['id'];
|
353
|
+
} | [User['Read']];
|
354
|
+
permission: {
|
355
|
+
__id: Permission['Read']['id'];
|
356
|
+
} | [Permission['Read']];
|
357
|
+
id: Types['Serial']['Read'];
|
358
|
+
expiry_date: Types['Date Time']['Read'] | null;
|
359
|
+
is_of__user: {
|
360
|
+
__id: User['Read']['id'];
|
361
|
+
} | [User['Read']];
|
362
|
+
};
|
363
|
+
Write: {
|
364
|
+
created_at: Types['Date Time']['Write'];
|
365
|
+
modified_at: Types['Date Time']['Write'];
|
366
|
+
user: User['Write']['id'];
|
367
|
+
permission: Permission['Write']['id'];
|
368
|
+
id: Types['Serial']['Write'];
|
369
|
+
expiry_date: Types['Date Time']['Write'] | null;
|
370
|
+
};
|
371
|
+
}
|
372
|
+
export interface ApiKey {
|
373
|
+
Read: {
|
374
|
+
created_at: Types['Date Time']['Read'];
|
375
|
+
modified_at: Types['Date Time']['Read'];
|
376
|
+
id: Types['Serial']['Read'];
|
377
|
+
key: Types['Short Text']['Read'];
|
378
|
+
expiry_date: Types['Date Time']['Read'] | null;
|
379
|
+
is_of__actor: {
|
380
|
+
__id: Actor['Read']['id'];
|
381
|
+
} | [Actor['Read']];
|
382
|
+
name: Types['Text']['Read'] | null;
|
383
|
+
description: Types['Text']['Read'] | null;
|
384
|
+
api_key__has__role?: Array<ApiKeyHasRole['Read']>;
|
385
|
+
api_key__has__permission?: Array<ApiKeyHasPermission['Read']>;
|
386
|
+
};
|
387
|
+
Write: {
|
388
|
+
created_at: Types['Date Time']['Write'];
|
389
|
+
modified_at: Types['Date Time']['Write'];
|
390
|
+
id: Types['Serial']['Write'];
|
391
|
+
key: Types['Short Text']['Write'];
|
392
|
+
expiry_date: Types['Date Time']['Write'] | null;
|
393
|
+
is_of__actor: Actor['Write']['id'];
|
394
|
+
name: Types['Text']['Write'] | null;
|
395
|
+
description: Types['Text']['Write'] | null;
|
396
|
+
};
|
397
|
+
}
|
398
|
+
export interface ApiKeyHasRole {
|
399
|
+
Read: {
|
400
|
+
created_at: Types['Date Time']['Read'];
|
401
|
+
modified_at: Types['Date Time']['Read'];
|
402
|
+
api_key: {
|
403
|
+
__id: ApiKey['Read']['id'];
|
404
|
+
} | [ApiKey['Read']];
|
405
|
+
role: {
|
406
|
+
__id: Role['Read']['id'];
|
407
|
+
} | [Role['Read']];
|
408
|
+
id: Types['Serial']['Read'];
|
409
|
+
is_of__api_key: {
|
410
|
+
__id: ApiKey['Read']['id'];
|
411
|
+
} | [ApiKey['Read']];
|
412
|
+
};
|
413
|
+
Write: {
|
414
|
+
created_at: Types['Date Time']['Write'];
|
415
|
+
modified_at: Types['Date Time']['Write'];
|
416
|
+
api_key: ApiKey['Write']['id'];
|
417
|
+
role: Role['Write']['id'];
|
418
|
+
id: Types['Serial']['Write'];
|
419
|
+
};
|
420
|
+
}
|
421
|
+
export interface ApiKeyHasPermission {
|
422
|
+
Read: {
|
423
|
+
created_at: Types['Date Time']['Read'];
|
424
|
+
modified_at: Types['Date Time']['Read'];
|
425
|
+
api_key: {
|
426
|
+
__id: ApiKey['Read']['id'];
|
427
|
+
} | [ApiKey['Read']];
|
428
|
+
permission: {
|
429
|
+
__id: Permission['Read']['id'];
|
430
|
+
} | [Permission['Read']];
|
431
|
+
id: Types['Serial']['Read'];
|
432
|
+
is_of__api_key: {
|
433
|
+
__id: ApiKey['Read']['id'];
|
434
|
+
} | [ApiKey['Read']];
|
435
|
+
};
|
436
|
+
Write: {
|
437
|
+
created_at: Types['Date Time']['Write'];
|
438
|
+
modified_at: Types['Date Time']['Write'];
|
439
|
+
api_key: ApiKey['Write']['id'];
|
440
|
+
permission: Permission['Write']['id'];
|
441
|
+
id: Types['Serial']['Write'];
|
442
|
+
};
|
443
|
+
}
|
444
|
+
export default interface $Model {
|
445
|
+
permission: Permission;
|
446
|
+
role: Role;
|
447
|
+
role__has__permission: RoleHasPermission;
|
448
|
+
actor: Actor;
|
449
|
+
user: User;
|
450
|
+
user__has__role: UserHasRole;
|
451
|
+
user__has__permission: UserHasPermission;
|
452
|
+
api_key: ApiKey;
|
453
|
+
api_key__has__role: ApiKeyHasRole;
|
454
|
+
api_key__has__permission: ApiKeyHasPermission;
|
455
|
+
permission$sbvr__compiler: Permission;
|
456
|
+
role$sbvr__compiler: Role;
|
457
|
+
role__has__permission$sbvr__compiler: RoleHasPermission;
|
458
|
+
actor$sbvr__compiler: Actor;
|
459
|
+
user$sbvr__compiler: User;
|
460
|
+
user__has__role$sbvr__compiler: UserHasRole;
|
461
|
+
user__has__permission$sbvr__compiler: UserHasPermission;
|
462
|
+
api_key$sbvr__compiler: ApiKey;
|
463
|
+
api_key__has__role$sbvr__compiler: ApiKeyHasRole;
|
464
|
+
api_key__has__permission$sbvr__compiler: ApiKeyHasPermission;
|
465
|
+
user_role: UserHasRole;
|
466
|
+
user_permission: UserHasPermission;
|
467
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/sbvr-api/user.ts"],"names":[],"mappings":""}
|
@@ -12,7 +12,6 @@ export * as errors from '../sbvr-api/errors';
|
|
12
12
|
export * as env from '../config-loader/env';
|
13
13
|
export * as types from '../sbvr-api/common-types';
|
14
14
|
export * as hooks from '../sbvr-api/hooks';
|
15
|
-
export * as tasks from '../tasks';
|
16
15
|
export * as webResourceHandler from '../webresource-handler';
|
17
16
|
export type { configLoader as ConfigLoader };
|
18
17
|
export type { migratorUtils as Migrator };
|
@@ -23,12 +23,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
23
|
return result;
|
24
24
|
};
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
-
exports.init = exports.webResourceHandler = exports.
|
26
|
+
exports.init = exports.webResourceHandler = exports.hooks = exports.types = exports.env = exports.errors = exports.permissions = exports.sbvrUtils = exports.mountLoginRouter = exports.PinejsSessionStore = exports.dbModule = void 0;
|
27
27
|
require("./sbvr-loader");
|
28
28
|
const dbModule = __importStar(require("../database-layer/db"));
|
29
29
|
const configLoader = __importStar(require("../config-loader/config-loader"));
|
30
30
|
const migrator = __importStar(require("../migrator/sync"));
|
31
|
-
const tasks = __importStar(require("../tasks"));
|
32
31
|
const sbvrUtils = __importStar(require("../sbvr-api/sbvr-utils"));
|
33
32
|
const env_1 = require("../config-loader/env");
|
34
33
|
exports.dbModule = __importStar(require("../database-layer/db"));
|
@@ -42,7 +41,6 @@ exports.errors = __importStar(require("../sbvr-api/errors"));
|
|
42
41
|
exports.env = __importStar(require("../config-loader/env"));
|
43
42
|
exports.types = __importStar(require("../sbvr-api/common-types"));
|
44
43
|
exports.hooks = __importStar(require("../sbvr-api/hooks"));
|
45
|
-
exports.tasks = __importStar(require("../tasks"));
|
46
44
|
exports.webResourceHandler = __importStar(require("../webresource-handler"));
|
47
45
|
let envDatabaseOptions;
|
48
46
|
if (dbModule.engines.websql != null) {
|
@@ -77,7 +75,6 @@ const init = async (app, config, databaseOptions = envDatabaseOptions) => {
|
|
77
75
|
await sbvrUtils.setup(app, db);
|
78
76
|
const cfgLoader = await configLoader.setup(app);
|
79
77
|
await cfgLoader.loadConfig(migrator.config);
|
80
|
-
await cfgLoader.loadConfig(tasks.config);
|
81
78
|
const promises = [];
|
82
79
|
if (process.env.SBVR_SERVER_ENABLED) {
|
83
80
|
const sbvrServer = await import('../data-server/sbvr-server.js');
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/server-glue/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yBAAuB;AAEvB,+DAAiD;AACjD,6EAA+D;AAC/D,2DAA6C;
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/server-glue/module.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.0-build-
|
3
|
+
"version": "17.1.0-build-model-based-typings-86a981c89f828217571c93fa010174529a5345f9-1",
|
4
4
|
"main": "out/server-glue/module",
|
5
5
|
"type": "commonjs",
|
6
6
|
"repository": "git@github.com:balena-io/pinejs.git",
|
@@ -19,27 +19,29 @@
|
|
19
19
|
"webpack-server": "grunt server",
|
20
20
|
"webpack-build": "npm run webpack-browser && npm run webpack-module && npm run webpack-server",
|
21
21
|
"lint": "balena-lint -t tsconfig.dev.json -e js -e ts src build typings Gruntfile.ts && npx tsc --project tsconfig.dev.json --noEmit",
|
22
|
-
"test": "npm run lint && npm run build && npm run webpack-build && npm run test:compose",
|
23
|
-
"test:compose": "trap 'docker compose -f docker-compose.npm-test.yml down ; echo Stopped ; exit 0' INT; docker compose -f docker-compose.npm-test.yml up -d && sleep 2 && DATABASE_URL=postgres://docker:docker@localhost:5431/postgres PINEJS_WEBRESOURCE_MAXFILESIZE=1000000000 S3_ENDPOINT=http://localhost:43680 S3_ACCESS_KEY=USERNAME S3_SECRET_KEY=PASSWORD S3_STORAGE_ADAPTER_BUCKET=balena-pine-web-resources S3_REGION=us-east-1
|
22
|
+
"test": "npm run lint && npm run build && npm run webpack-build && npm run test:compose && npm run test:generated-types",
|
23
|
+
"test:compose": "trap 'docker compose -f docker-compose.npm-test.yml down ; echo Stopped ; exit 0' INT; docker compose -f docker-compose.npm-test.yml up -d && sleep 2 && DATABASE_URL=postgres://docker:docker@localhost:5431/postgres PINEJS_WEBRESOURCE_MAXFILESIZE=1000000000 S3_ENDPOINT=http://localhost:43680 S3_ACCESS_KEY=USERNAME S3_SECRET_KEY=PASSWORD S3_STORAGE_ADAPTER_BUCKET=balena-pine-web-resources S3_REGION=us-east-1 npm run mocha",
|
24
|
+
"test:generated-types": "npm run generate-types && git diff --exit-code ./src/sbvr-api/user.ts ./src/migrator/migrations.ts ./src/sbvr-api/dev.ts",
|
24
25
|
"mocha": "TS_NODE_FILES=true mocha",
|
25
|
-
"prettify": "balena-lint -t tsconfig.dev.json -e js -e ts --fix src test build typings Gruntfile.ts"
|
26
|
+
"prettify": "balena-lint -t tsconfig.dev.json -e js -e ts --fix src test build typings Gruntfile.ts",
|
27
|
+
"generate-types": "node ./bin/sbvr-compiler.js generate-types ./src/sbvr-api/user.sbvr ./src/sbvr-api/user.ts && node ./bin/sbvr-compiler.js generate-types ./src/migrator/migrations.sbvr ./src/migrator/migrations.ts && node ./bin/sbvr-compiler.js generate-types ./src/sbvr-api/dev.sbvr ./src/sbvr-api/dev.ts && balena-lint -t tsconfig.dev.json --fix ./src/sbvr-api/user.ts ./src/migrator/migrations.ts ./src/sbvr-api/dev.ts"
|
26
28
|
},
|
27
29
|
"dependencies": {
|
28
|
-
"@balena/abstract-sql-compiler": "^9.
|
29
|
-
"@balena/abstract-sql-to-typescript": "^3.1.
|
30
|
+
"@balena/abstract-sql-compiler": "^9.2.0",
|
31
|
+
"@balena/abstract-sql-to-typescript": "^3.1.2",
|
30
32
|
"@balena/env-parsing": "^1.1.12",
|
31
33
|
"@balena/lf-to-abstract-sql": "^5.0.2",
|
32
34
|
"@balena/odata-parser": "^3.0.8",
|
33
35
|
"@balena/odata-to-abstract-sql": "^6.2.7",
|
34
36
|
"@balena/sbvr-parser": "^1.4.4",
|
35
|
-
"@balena/sbvr-types": "^7.1.
|
37
|
+
"@balena/sbvr-types": "^7.1.3",
|
36
38
|
"@types/body-parser": "^1.19.5",
|
37
39
|
"@types/compression": "^1.7.5",
|
38
40
|
"@types/cookie-parser": "^1.4.7",
|
39
41
|
"@types/deep-freeze": "^0.1.5",
|
40
42
|
"@types/express": "^4.17.21",
|
41
43
|
"@types/express-session": "^1.18.0",
|
42
|
-
"@types/lodash": "^4.17.
|
44
|
+
"@types/lodash": "^4.17.5",
|
43
45
|
"@types/memoizee": "^0.4.11",
|
44
46
|
"@types/method-override": "^0.0.35",
|
45
47
|
"@types/multer": "^1.4.11",
|
@@ -51,16 +53,14 @@
|
|
51
53
|
"@types/pg": "^8.11.6",
|
52
54
|
"@types/randomstring": "^1.3.0",
|
53
55
|
"@types/websql": "^0.0.30",
|
54
|
-
"ajv": "^8.12.0",
|
55
56
|
"busboy": "^1.6.0",
|
56
57
|
"commander": "^11.1.0",
|
57
|
-
"cron-parser": "^4.9.0",
|
58
58
|
"deep-freeze": "^0.0.1",
|
59
59
|
"eventemitter3": "^5.0.1",
|
60
60
|
"express-session": "^1.18.0",
|
61
61
|
"lodash": "^4.17.21",
|
62
62
|
"memoizee": "^0.4.17",
|
63
|
-
"pinejs-client-core": "^6.
|
63
|
+
"pinejs-client-core": "^6.15.0",
|
64
64
|
"randomstring": "^1.3.0",
|
65
65
|
"typed-error": "^3.2.2"
|
66
66
|
},
|
@@ -91,12 +91,11 @@
|
|
91
91
|
"grunt-ts": "^6.0.0-beta.22",
|
92
92
|
"grunt-webpack": "^6.0.0",
|
93
93
|
"husky": "^9.0.11",
|
94
|
-
"
|
95
|
-
"lint-staged": "^15.2.5",
|
94
|
+
"lint-staged": "^15.2.7",
|
96
95
|
"load-grunt-tasks": "^5.1.0",
|
97
96
|
"mocha": "^10.4.0",
|
98
97
|
"on-finished": "^2.4.1",
|
99
|
-
"pinejs-client-supertest": "^2.0.
|
98
|
+
"pinejs-client-supertest": "^2.0.4",
|
100
99
|
"raw-loader": "^4.0.2",
|
101
100
|
"request": "^2.88.2",
|
102
101
|
"require-npm4-to-publish": "^1.0.0",
|
@@ -105,13 +104,13 @@
|
|
105
104
|
"ts-loader": "^9.5.1",
|
106
105
|
"ts-node": "^10.9.2",
|
107
106
|
"typescript": "^5.4.5",
|
108
|
-
"webpack": "^5.
|
107
|
+
"webpack": "^5.92.0",
|
109
108
|
"webpack-dev-server": "^4.15.2"
|
110
109
|
},
|
111
110
|
"optionalDependencies": {
|
112
|
-
"@aws-sdk/client-s3": "^3.
|
113
|
-
"@aws-sdk/lib-storage": "^3.
|
114
|
-
"@aws-sdk/s3-request-presigner": "^3.
|
111
|
+
"@aws-sdk/client-s3": "^3.596.0",
|
112
|
+
"@aws-sdk/lib-storage": "^3.596.0",
|
113
|
+
"@aws-sdk/s3-request-presigner": "^3.596.0",
|
115
114
|
"bcrypt": "^5.1.1",
|
116
115
|
"body-parser": "^1.20.2",
|
117
116
|
"compression": "^1.7.4",
|
@@ -147,6 +146,6 @@
|
|
147
146
|
"recursive": true
|
148
147
|
},
|
149
148
|
"versionist": {
|
150
|
-
"publishedAt": "2024-06-
|
149
|
+
"publishedAt": "2024-06-14T14:22:13.242Z"
|
151
150
|
}
|
152
151
|
}
|
package/src/config-loader/env.ts
CHANGED
@@ -49,7 +49,7 @@ export const cache = {
|
|
49
49
|
apiKeyActorId: false as CacheOpts,
|
50
50
|
};
|
51
51
|
|
52
|
-
import { boolVar
|
52
|
+
import { boolVar } from '@balena/env-parsing';
|
53
53
|
import memoize from 'memoizee';
|
54
54
|
import memoizeWeak = require('memoizee/weak');
|
55
55
|
export const createCache = <T extends (...args: any[]) => any>(
|
@@ -146,8 +146,3 @@ export const migrator = {
|
|
146
146
|
*/
|
147
147
|
asyncMigrationIsEnabled: boolVar('PINEJS_ASYNC_MIGRATION_ENABLED', true),
|
148
148
|
};
|
149
|
-
|
150
|
-
export const tasks = {
|
151
|
-
queueConcurrency: intVar('PINEJS_QUEUE_CONCURRENCY', 0),
|
152
|
-
queueIntervalMS: intVar('PINEJS_QUEUE_INTERVAL_MS', 1000),
|
153
|
-
};
|
@@ -133,14 +133,15 @@ export async function setup(app, sbvrUtils, db) {
|
|
133
133
|
},
|
134
134
|
},
|
135
135
|
})
|
136
|
-
.then(async (
|
136
|
+
.then(async (result) => {
|
137
137
|
if (result.length === 0) {
|
138
138
|
throw new Error('No SE data model found');
|
139
139
|
}
|
140
140
|
const instance = result[0];
|
141
141
|
await sbvrUtils.executeModel(tx, {
|
142
142
|
apiRoot: instance.is_of__vocabulary,
|
143
|
-
|
143
|
+
// prettier-ignore
|
144
|
+
modelText: /** @type { string } */ (instance.model_value.value),
|
144
145
|
});
|
145
146
|
});
|
146
147
|
await isServerOnAir(true);
|