backend-plus 2.6.9 → 2.6.10

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.
Files changed (2) hide show
  1. package/README.md +293 -263
  2. package/package.json +18 -15
package/README.md CHANGED
@@ -1,263 +1,293 @@
1
-
2
-
3
- # backend-plus
4
-
5
- Backend for the anti Pareto rule.
6
-
7
-
8
- ![stable](https://img.shields.io/badge/stability-stable-blue.svg)
9
- [![npm-version](https://img.shields.io/npm/v/backend-plus.svg)](https://npmjs.org/package/backend-plus)
10
- [![downloads](https://img.shields.io/npm/dm/backend-plus.svg)](https://npmjs.org/package/backend-plus)
11
- [![build](https://img.shields.io/travis/codenautas/backend-plus/master.svg)](https://travis-ci.org/codenautas/backend-plus)
12
- [![coverage](https://img.shields.io/coveralls/codenautas/backend-plus/master.svg)](https://coveralls.io/r/codenautas/backend-plus)
13
- [![dependencies](https://img.shields.io/david/codenautas/backend-plus.svg)](https://david-dm.org/codenautas/backend-plus)
14
-
15
-
16
- language: ![English](https://raw.githubusercontent.com/codenautas/multilang/master/img/lang-en.png)
17
- also available in:
18
- [![Spanish](https://raw.githubusercontent.com/codenautas/multilang/master/img/lang-es.png)](LEEME.md)
19
-
20
-
21
-
22
- It's a framework for developing web applications based on PostgreSQL database. It's main features are:
23
-
24
- 1. It is based on centralized metadata that defines:
25
- 1. The data structure (tables and views structure)
26
- 2. The procedures structure (param definition, permissions, encoding)
27
- 3. The menus structure
28
- 2. It provides:
29
- 1. Editable grids (orderable and filterable), with support for edit data using XLSX format files
30
- 2. Login mechanism
31
- 3. Menus
32
- 4. Skins definition
33
-
34
-
35
- ## API
36
-
37
-
38
- ### [table definitions](doc/table-definitions.md)
39
-
40
-
41
-
42
- ### [module definitions](doc/module-definitions.md)
43
-
44
-
45
- ### [client side definitions](doc/client-side-definitions.md)
46
-
47
- ### Menus definition
48
-
49
- menuType | use
50
- ---------|----------
51
- menu | menu or submenu
52
- table | grid or table
53
- proc | procedures
54
-
55
- property | type | default value | menuType | use
56
- ------------|------|----------------|----------|---------
57
- menuType | T | | | menu Type
58
- name | T | | | option name (id)
59
- menuContent | A | | menu | menu content
60
- table | T | `name` | table | table name
61
- label | T | `name` | | if you don't want to use default value to display in menu
62
- selectedByDefault | B | | | is the selected by default option
63
- autoproced | B | `false` | proc | if yo want to execute the procedure without clicking the proced button
64
-
65
- Integrating example:
66
-
67
- ```js
68
- getMenu(context){
69
- return {menu:[
70
- {menuType:'menu', name:'periodic table', menuContent:[
71
- {menuType:'table', name:'ptable' , label:'elements'},
72
- {menuType:'table', name:'pgroups' , label:'groups' },
73
- {menuType:'table', name:'isotopes', label:'isotopes'},
74
- {menuType:'proc' , name:'count_without_isotopes', label:'count'}
75
- ]},
76
- {menuType:'table', name:'images', table:'element_images'},
77
- {menuType:'menu', name:'test', menuContent:[
78
- {menuType:'table', name:'bigint'},
79
- ]},
80
- {menuType:'menu', name:'config', menuContent:[
81
- {name:'users', menuType:'table'},
82
- ]},
83
- ]}
84
- }
85
-
86
- ```
87
- ### Procedures definition
88
-
89
- #### procDef:
90
-
91
- property | type | default value | use
92
- ------------|------|-------------------------------|-----------------------------------------------------
93
- action | T | | Name that will be invoked the procedure
94
- bitacora | BO | { error:false, always:false } | Bitacora Object for core functions register
95
- parameters | POA | `[]` | Param Objects Array
96
- cacheable | Bool | false | The result can be cached
97
- coreFunction| F | | Function that implements the procedure
98
-
99
- #### bitacoraDef:
100
-
101
- propiedad | tipo | default value | uso
102
- ----------------------------------|----------------|----------------------------|-------------------
103
- error | B | false | If true, bitacora saves data of error ocurred during core function execution
104
- always | B | false | If true, bitacora saves all data ocurred during core function execution (overrides error)
105
- targetTable | T | null | Tablename for update result of execution data (must to exists a record for update) (see **targetTableBitacoraFields**). Use null for ignore option
106
- targetTableBitacoraFields | O | { **init_date**: 'init_date', **end_date**: 'end_date', **has_error**: 'has_error', **end_status**: 'end_status'} | Objects who defines the fields where **'targetTable'** will reply bitacora fields (If targetTable is null it's ommited)
107
- targetTableUpdateFieldsCondition | A | null | Fields array to define update condition (each value must to be passed as parameter with the same field name)
108
-
109
-
110
- #### paramDef:
111
-
112
- property | type | default value | use
113
- --------------|----------------|----------------|-------------------
114
- name | T | | name of the parameter that is sent to the procedure
115
- defaultValue | según typeName | | parameter default value
116
- typeName | T | | to define the data type
117
- label | T | name | if you don't want to use default value to display on screen
118
-
119
- #### coreFunction(context, parameters)
120
-
121
- context | uso
122
- ---------|----------------------
123
- be | backendApp object
124
- username | username
125
-
126
- Process definition example:
127
-
128
- ```js
129
- {
130
- action:'count_without_isotopes',
131
- bitacora:{
132
- error:true,
133
- always:true,
134
- targetTable:'other_table',
135
- targetTableBitacoraFields: {
136
- init_date: 'fecha_hora_inicio',
137
- end_date: 'fecha_hora_final',
138
- has_error: 'hubo_error',
139
- end_status: 'resultado'
140
- },
141
- targetTableUpdateFieldsCondition: ['id']
142
- },
143
- parameters:[
144
- {name:'first_atomic_number', defaultValue:10, typeName:'integer'},
145
- {name:'last_atomic_number' , defaultValue:99, typeName:'integer'},
146
- ],
147
- coreFunction:function(context, parameters){
148
- return context.client.query(
149
- `SELECT count(*) as number_of_elements
150
- FROM ptable p left join isotopes i on p.atomic_number=i.atomic_number
151
- WHERE i.atomic_number IS NULL
152
- AND p.atomic_number between coalesce($1,0) and coalesce($2,999)`,
153
- [parameters.first_atomic_number, parameters.last_atomic_number]
154
- ).fetchUniqueRow().then(function(result){
155
- return result.row.number_of_elements;
156
- });
157
- }
158
- },
159
- ```
160
-
161
- ## def-config
162
-
163
- ```js
164
- /// def-config.ts
165
- export defConfig=`
166
- server:
167
- port: 3000
168
- base-url: /my-app
169
- db:
170
- motor: postgresql
171
- host: localhost
172
- database: my_app_db
173
- user: my_app_user
174
- install:
175
- dump:
176
- db:
177
- owner: my_app_owner
178
- client-setup:
179
- title: My app
180
- lang: es
181
- `;
182
-
183
- /// main.ts
184
- import {defConfig} from "./def-config"
185
-
186
- export function emergeMyApp<T extends Constructor<AppBackend>>(Base:T){
187
- /// ...
188
- configStaticConfig(){
189
- super.configStaticConfig();
190
- this.setStaticConfig(defConfig);
191
- }
192
- ///...
193
- }
194
-
195
- ```
196
-
197
- The general application config is setted with `setStaticConfig`.
198
- Any option can be overwrited in `local-config.yaml` file.
199
-
200
- `BACKEND_PLUS_LOCAL_CONFIG` enviroment variable can be a `filename.yaml` with more config options.
201
-
202
- ### config format:
203
-
204
- entry | usage
205
- -----------------------------|---------------
206
- server |
207
- .port | port where is listening
208
- .base-url | base url added to domain name
209
- .module-store |
210
- install | (see Spanish)
211
- .dump | (see Spanish)
212
- ..db.owner | (see Spanish)
213
- ..scripts.post-adapt | (see Spanish)
214
- ..scripts.parts-order | (see Spanish)
215
- devel | (see Spanish)
216
- .delay | (see Spanish)
217
- .cache-content | (see Spanish)
218
- .forceShowAsEditable | (see Spanish)
219
- login | (see Spanish)
220
- .plus | (see Spanish)
221
- ..allowHttpLogin | (see Spanish)
222
- log | (see Spanish)
223
- .req | (see Spanish)
224
- .session | (see Spanish)
225
- client-setup | (see Spanish)
226
- .cursors | (see Spanish)
227
- .skin | (see Spanish)
228
- .menu | (see Spanish)
229
- .title | (see Spanish)
230
- .lang | (see Spanish)
231
-
232
- ```yaml
233
- install:
234
- dump:
235
- db:
236
- owner: user_owner
237
- scripts:
238
- post-adapt: [special_triggers.sql, other_constraints.sql]
239
- login:
240
- plus:
241
- allowHttpLogin: true
242
- store:
243
- module-name: file
244
- log:
245
- req: true
246
- session: true
247
- devel:
248
- cache-content: true
249
- ```
250
-
251
- ## Install
252
-
253
- ```sh
254
- $ npm install backend-plus
255
- ```
256
-
257
- ## License
258
-
259
- [MIT](LICENSE)
260
-
261
- ----------------
262
-
263
-
1
+
2
+
3
+ # backend-plus
4
+
5
+ Backend for the anti Pareto rule.
6
+
7
+
8
+ [![npm-version](https://img.shields.io/npm/v/backend-plus.svg)](https://npmjs.org/package/backend-plus)
9
+ [![downloads](https://img.shields.io/npm/dm/backend-plus.svg)](https://npmjs.org/package/backend-plus)
10
+ [![build](https://github.com/codenautas/backend-plus/actions/workflows/build-and-test.yml/badge.svg)](https://github.com/codenautas/backend-plus/actions/workflows/build-and-test.yml)
11
+ [![security](https://socket.dev/api/badge/npm/package/backend-plus)](https://socket.dev/npm/package/backend-plus)
12
+ [![qa-control](https://github.com/codenautas/backend-plus/actions/workflows/qa-control.yml/badge.svg)](https://github.com/codenautas/backend-plus/actions/workflows/qa-control.yml)
13
+
14
+
15
+ language: ![English](https://raw.githubusercontent.com/codenautas/multilang/master/img/lang-en.png)
16
+ also available in:
17
+ [![Spanish](https://raw.githubusercontent.com/codenautas/multilang/master/img/lang-es.png)](LEEME.md)
18
+
19
+
20
+
21
+ It's a framework for developing web applications based on PostgreSQL database. Its main features are:
22
+
23
+ 1. It is based on centralized metadata that defines:
24
+ 1. The data structure (tables and views structure)
25
+ 2. The procedures structure (param definition, permissions, encoding)
26
+ 3. The menus structure
27
+ 2. It provides:
28
+ 1. Editable grids (orderable and filterable), with support for edit data using XLSX format files
29
+ 2. Login mechanism
30
+ 3. Menus
31
+ 4. Skins definition
32
+
33
+
34
+ ## API
35
+
36
+
37
+ ### [table definitions](doc/table-definitions.md)
38
+
39
+
40
+
41
+ ### [module definitions](doc/module-definitions.md)
42
+
43
+
44
+ ### [client side definitions](doc/client-side-definitions.md)
45
+
46
+ ### Menus definition
47
+
48
+ menuType | use
49
+ ---------|----------
50
+ menu | menu or submenu
51
+ table | grid or table
52
+ proc | procedures
53
+
54
+ property | type | default value | menuType | use
55
+ ------------|------|----------------|----------|---------
56
+ menuType | T | | | menu Type
57
+ name | T | | | option name (id)
58
+ menuContent | A | | menu | menu content
59
+ table | T | `name` | table | table name
60
+ label | T | `name` | | if you don't want to use default value to display in menu
61
+ selectedByDefault | B | | | is the selected by default option
62
+ autoproced | B | `false` | proc | if yo want to execute the procedure without clicking the proced button
63
+
64
+ Integrating example:
65
+
66
+ ```js
67
+ getMenu(context){
68
+ return {menu:[
69
+ {menuType:'menu', name:'periodic table', menuContent:[
70
+ {menuType:'table', name:'ptable' , label:'elements'},
71
+ {menuType:'table', name:'pgroups' , label:'groups' },
72
+ {menuType:'table', name:'isotopes', label:'isotopes'},
73
+ {menuType:'proc' , name:'count_without_isotopes', label:'count'}
74
+ ]},
75
+ {menuType:'table', name:'images', table:'element_images'},
76
+ {menuType:'menu', name:'test', menuContent:[
77
+ {menuType:'table', name:'bigint'},
78
+ ]},
79
+ {menuType:'menu', name:'config', menuContent:[
80
+ {name:'users', menuType:'table'},
81
+ ]},
82
+ ]}
83
+ }
84
+
85
+ ```
86
+ ### Procedures definition
87
+
88
+ #### procDef:
89
+
90
+ property | type | default value | use
91
+ ------------|------|-------------------------------|-----------------------------------------------------
92
+ action | T | | Name that will be invoked the procedure
93
+ bitacora | BO | { error:false, always:false } | Bitacora Object for core functions register
94
+ parameters | POA | `[]` | Param Objects Array
95
+ cacheable | Bool | false | The result can be cached
96
+ coreFunction| F | | Function that implements the procedure
97
+
98
+ #### bitacoraDef:
99
+
100
+ property | type | default value | use
101
+ ----------------------------------|----------------|----------------------------|-------------------
102
+ error | B | false | If true, bitacora saves data of error ocurred during core function execution
103
+ always | B | false | If true, bitacora saves all data ocurred during core function execution (overrides error)
104
+ targetTable | T | null | Tablename for update result of execution data (must to exists a record for update) (see **targetTableBitacoraFields**). Use null for ignore option
105
+ targetTableBitacoraFields | O | { **init_date**: 'init_date', **end_date**: 'end_date', **has_error**: 'has_error', **end_status**: 'end_status'} | Objects who defines the fields where **'targetTable'** will reply bitacora fields (If targetTable is null it's ommited)
106
+ targetTableUpdateFieldsCondition | A | null | Fields array to define update condition (each value must to be passed as parameter with the same field name)
107
+
108
+
109
+ #### paramDef:
110
+
111
+ property | type | default value | use
112
+ --------------|----------------|----------------|-------------------
113
+ name | T | | name of the parameter that is sent to the procedure
114
+ defaultValue | according to typeName | | parameter default value
115
+ typeName | T | | to define the data type
116
+ label | T | name | if you don't want to use default value to display on screen
117
+
118
+ #### coreFunction(context, parameters)
119
+
120
+ context | use
121
+ ---------|----------------------
122
+ be | backendApp object
123
+ username | username
124
+
125
+ Process definition example:
126
+
127
+ ```js
128
+ {
129
+ action:'count_without_isotopes',
130
+ bitacora:{
131
+ error:true,
132
+ always:true,
133
+ targetTable:'other_table',
134
+ targetTableBitacoraFields: {
135
+ init_date: 'fecha_hora_inicio',
136
+ end_date: 'fecha_hora_final',
137
+ has_error: 'hubo_error',
138
+ end_status: 'resultado'
139
+ },
140
+ targetTableUpdateFieldsCondition: ['id']
141
+ },
142
+ parameters:[
143
+ {name:'first_atomic_number', defaultValue:10, typeName:'integer'},
144
+ {name:'last_atomic_number' , defaultValue:99, typeName:'integer'},
145
+ ],
146
+ coreFunction:function(context, parameters){
147
+ return context.client.query(
148
+ `SELECT count(*) as number_of_elements
149
+ FROM ptable p left join isotopes i on p.atomic_number=i.atomic_number
150
+ WHERE i.atomic_number IS NULL
151
+ AND p.atomic_number between coalesce($1,0) and coalesce($2,999)`,
152
+ [parameters.first_atomic_number, parameters.last_atomic_number]
153
+ ).fetchUniqueRow().then(function(result){
154
+ return result.row.number_of_elements;
155
+ });
156
+ }
157
+ },
158
+ ```
159
+
160
+ ## def-config
161
+
162
+ ```js
163
+ /// def-config.ts
164
+ export defConfig=`
165
+ server:
166
+ port: 3000
167
+ base-url: /my-app
168
+ db:
169
+ motor: postgresql
170
+ host: localhost
171
+ database: my_app_db
172
+ user: my_app_user
173
+ install:
174
+ dump:
175
+ db:
176
+ owner: my_app_owner
177
+ client-setup:
178
+ title: My app
179
+ lang: es
180
+ `;
181
+
182
+ /// main.ts
183
+ import {defConfig} from "./def-config"
184
+
185
+ export function emergeMyApp<T extends Constructor<AppBackend>>(Base:T){
186
+ /// ...
187
+ configStaticConfig(){
188
+ super.configStaticConfig();
189
+ this.setStaticConfig(defConfig);
190
+ }
191
+ ///...
192
+ }
193
+
194
+ ```
195
+
196
+ The general application config is setted with `setStaticConfig`.
197
+ Any option can be overwrited in `local-config.yaml` file.
198
+
199
+ `BACKEND_PLUS_LOCAL_CONFIG` enviroment variable can be a `filename.yaml` with more config options.
200
+
201
+ ### config format:
202
+
203
+ entry | usage
204
+ -----------------------------|---------------
205
+ server | server level options
206
+ .port | port where it is listening
207
+ .base-url | base url added to domain name
208
+ .module-store | name of the module that stores sessions: file, memory (in devel mode it saves to disk from time to time)
209
+ install | install options
210
+ .table-data-dir | directory or list of directories where the .tabs used by the dump-db command are located (it creates inserts into the local-db-dump.sql file)
211
+ .dump | install dump options
212
+ ..db.owner | database owner user
213
+ ..scripts.post-adapt | list of file names to adapt the database structure
214
+ ..scripts.parts-order | order of the parts in which the dump-db is generated
215
+ devel | set of options for the development and testing environment
216
+ .delay | additional average wait time (to simulate a slow server)
217
+ .cache-content | caches images and files in general (when not in "devel" mode it always caches, the cache can't be turned off outside devel mode)
218
+ .forceShowAsEditable | forces grids to be shown as editable grids to show how the server prevents modification
219
+ .useFileDevelopment | uses the fileDevelopment versions instead of file coming from clientIncludes()
220
+ login | login options
221
+ .plus | options to pass to the login-plus module
222
+ ..allowHttpLogin | whether it allows login from HTTP connections
223
+ .table | name of the table where users are validated
224
+ .schema | schema where the users table is located
225
+ .userFieldName | name of the field that contains the user
226
+ .passFieldName | name of the field that contains md5(password+user)
227
+ .rolFieldName | name of the field where the user role is
228
+ .passUpdatedAtFieldName | name of the field where the date of the last password change is stored (optional)
229
+ .passAlgorithmFieldName | name of the field where the password algorithm is stored (optional)
230
+ .infoFieldList | array with the field names that go to the user field
231
+ .activeClausule | SQL boolean expression that determines whether the user is active
232
+ .messages | messages to show on the login screen
233
+ .keepAlive | maximum logged-in duration if only keep-alive messages are received
234
+ .preserve-case | whether it accepts users with uppercase letters
235
+ log | console log
236
+ .req | shows each request
237
+ .session | shows session info
238
+ .serve-content | whether it should log everything served with `serve-content`
239
+ .db | database connection logs
240
+ ..last-error | whether it should always log the last error (saved in `last-pg-error-local.sql`)
241
+ ..until | whether it should log every executed SQL statement. In `until` you must specify how long since startup (e.g.: '1m30s') or until which day and time (e.g.: '2018-01-20 10:30')
242
+ ..on-demand | whether the logging of all executed SQL can be restarted with `URLbase/--log-db`
243
+ ..results | whether it includes the results in the log of all SQL
244
+ client-setup | front-end options
245
+ .cursors | (in preparation) tells whether it uses cursors to show where (with the cursor on which record) each user is
246
+ .skin | skin name
247
+ .menu | whether it uses the integrated menus
248
+ .title | screen title
249
+ .lang | frontend language (and locale), for now "es" or "en"
250
+ db | database options
251
+ .motor | for now only 'postgresql'
252
+ .database |
253
+ .tablespace | tablespace where the database is created (only if applicable)
254
+ .user |
255
+ .password |
256
+ .port |
257
+ .schema | main schema where to create the new objects
258
+ .search_path | array of schema names, if not specified `search_path = [schema, 'public']`
259
+ .log-last-error | true if you want the last SQL statement that contained an error to be left in a file (only works if config.devel is specified)
260
+ .allow_double_lodash_fields | whether fields with double `_` underscore are allowed
261
+ imports | options for importing to the platform
262
+ .allow-plain-xls | whether it allows importing xlsx that don't have the #backend-plus signal in cell A1
263
+
264
+ ```yaml
265
+ install:
266
+ dump:
267
+ db:
268
+ owner: user_owner
269
+ scripts:
270
+ post-adapt: [special_triggers.sql, other_constraints.sql]
271
+ login:
272
+ plus:
273
+ allowHttpLogin: true
274
+ store:
275
+ module-name: file
276
+ log:
277
+ req: true
278
+ session: true
279
+ devel:
280
+ cache-content: true
281
+ ```
282
+
283
+ ## Install
284
+
285
+ ```sh
286
+ $ npm install backend-plus
287
+ ```
288
+
289
+ ## License
290
+
291
+ [MIT](LICENSE)
292
+
293
+ ----------------
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "backend-plus",
3
3
  "description": "Backend for the anti Pareto rule",
4
- "version": "2.6.9",
4
+ "version": "2.6.10",
5
5
  "author": "Codenautas <codenautas@googlegroups.com>",
6
6
  "license": "MIT",
7
7
  "repository": "codenautas/backend-plus",
@@ -37,10 +37,10 @@
37
37
  "@upgraded/locate-path": "^6.0.0-alfa.1",
38
38
  "ajax-best-promise": "^0.4.3",
39
39
  "backend-skins": "^0.1.34",
40
- "best-globals": "^2.2.0",
40
+ "best-globals": "^2.2.2",
41
41
  "big.js": "^7.0.1",
42
42
  "body-parser": "^2.3.0",
43
- "cast-error": "^0.1.3",
43
+ "cast-error": "^0.1.4",
44
44
  "castellano": "^0.1.5",
45
45
  "connect-pg-simple": "^10.0.0",
46
46
  "cookie-parser": "^1.4.7",
@@ -51,11 +51,11 @@
51
51
  "express-session": "^1.19.0",
52
52
  "express-useragent": "^2.2.0",
53
53
  "fs-extra": "^11.3.5",
54
- "js-to-html": "^1.3.5",
55
- "js-yaml": "^5.0.0",
56
- "json4all": "^1.4.2",
54
+ "js-to-html": "^1.3.6",
55
+ "js-yaml": "^5.1.0",
56
+ "json4all": "^1.4.4",
57
57
  "lazy-some": "^0.1.0",
58
- "like-ar": "^0.5.2",
58
+ "like-ar": "^0.5.3",
59
59
  "login-plus": "^1.8.1",
60
60
  "memorystore": "^1.6.8",
61
61
  "mini-tools": "^1.13.6",
@@ -69,7 +69,7 @@
69
69
  "pug": "^3.0.4",
70
70
  "read-yaml-promise": "^1.0.2",
71
71
  "regexplicit": "^0.1.3",
72
- "require-bro": "^0.3.5",
72
+ "require-bro": "^0.3.6",
73
73
  "self-explain": "^0.11.0",
74
74
  "serve-content": "^1.0.4",
75
75
  "session-file-store": "^1.5.0",
@@ -77,8 +77,8 @@
77
77
  "sql-tools": "^0.1.7",
78
78
  "stack-trace": "^1.0.0",
79
79
  "stylus": "0.64.0",
80
- "type-store": "^0.4.12",
81
- "typed-controls": "^0.12.4",
80
+ "type-store": "^0.5.1",
81
+ "typed-controls": "^0.12.6",
82
82
  "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz"
83
83
  },
84
84
  "devDependencies": {
@@ -90,7 +90,7 @@
90
90
  "@types/js-yaml": "^4.0.9",
91
91
  "@types/mocha": "^10.0.10",
92
92
  "@types/multiparty": "~4.2.1",
93
- "@types/node": "^26.0.0",
93
+ "@types/node": "^26.0.1",
94
94
  "@types/nodemailer": "^8.0.1",
95
95
  "@types/numeral": "~2.0.5",
96
96
  "@types/session-file-store": "^1.2.6",
@@ -107,7 +107,8 @@
107
107
  "kill-9": "~0.4.3",
108
108
  "mocha": "^11.7.6",
109
109
  "nyc": "^18.0.0",
110
- "puppeteer": "^25.1.0",
110
+ "puppeteer": "^25.2.1",
111
+ "qa-control": "0.7.0",
111
112
  "sinon": "^22.0.0",
112
113
  "supertest": "^7.2.2",
113
114
  "types.d.ts": "~0.6.22",
@@ -134,10 +135,12 @@
134
135
  "prepublish": "(tsc -p tsconfig-server.json || echo \"continue w/error\") && (tsc -p tsconfig-client.json || echo \"continue w/error\")"
135
136
  },
136
137
  "qa-control": {
137
- "package-version": "0.3.0",
138
+ "profile": "minimum",
138
139
  "run-in": "server",
139
140
  "type": "lib",
140
- "stage": "designing",
141
- "coverage": 100
141
+ "gha": "all",
142
+ "silenced": [
143
+ "invalid_dependency_version_number_format_in_dep_1"
144
+ ]
142
145
  }
143
146
  }