@warlock.js/core 3.0.29 → 3.0.30
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/cjs/repositories/repository-filler-manager.d.ts +1 -14
- package/cjs/repositories/repository-filler-manager.d.ts.map +1 -1
- package/cjs/repositories/repository-filler-manager.js +1 -16
- package/cjs/repositories/repository-filler-manager.js.map +1 -1
- package/cjs/repositories/repository-filler.d.ts +1 -23
- package/cjs/repositories/repository-filler.d.ts.map +1 -1
- package/cjs/repositories/repository-filler.js +2 -120
- package/cjs/repositories/repository-filler.js.map +1 -1
- package/esm/repositories/repository-filler-manager.d.ts +1 -14
- package/esm/repositories/repository-filler-manager.d.ts.map +1 -1
- package/esm/repositories/repository-filler-manager.js +1 -16
- package/esm/repositories/repository-filler-manager.js.map +1 -1
- package/esm/repositories/repository-filler.d.ts +1 -23
- package/esm/repositories/repository-filler.d.ts.map +1 -1
- package/esm/repositories/repository-filler.js +2 -120
- package/esm/repositories/repository-filler.js.map +1 -1
- package/package.json +3 -3
|
@@ -2,17 +2,8 @@ import type { GenericObject } from "@mongez/reinforcements";
|
|
|
2
2
|
import { Model } from "@warlock.js/cascade";
|
|
3
3
|
import { RepositoryDestroyManager } from "./repository-destroyer-manager";
|
|
4
4
|
import { RepositoryFiller } from "./repository-filler";
|
|
5
|
-
import type {
|
|
5
|
+
import type { SaveMode } from "./types";
|
|
6
6
|
export declare abstract class RepositoryFillerManager<T extends Model, M extends typeof Model = typeof Model> extends RepositoryDestroyManager<T, M> {
|
|
7
|
-
/**
|
|
8
|
-
* Data to be filled in the model during creation|update|patch
|
|
9
|
-
*/
|
|
10
|
-
protected fillable?: Fillable;
|
|
11
|
-
/**
|
|
12
|
-
* Filled inputs
|
|
13
|
-
* Will be used with create or update to only get the inputs that are fillable
|
|
14
|
-
*/
|
|
15
|
-
protected filled?: string[];
|
|
16
7
|
/**
|
|
17
8
|
* Create new record
|
|
18
9
|
*/
|
|
@@ -41,10 +32,6 @@ export declare abstract class RepositoryFillerManager<T extends Model, M extends
|
|
|
41
32
|
* Make new instance of the filler
|
|
42
33
|
*/
|
|
43
34
|
makeFiller(): RepositoryFiller;
|
|
44
|
-
/**
|
|
45
|
-
* Get fillable data
|
|
46
|
-
*/
|
|
47
|
-
getFillable(): Fillable;
|
|
48
35
|
/**
|
|
49
36
|
* On creating event
|
|
50
37
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-filler-manager.d.ts","sourceRoot":"","sources":["../../src/repositories/repository-filler-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"repository-filler-manager.d.ts","sourceRoot":"","sources":["../../src/repositories/repository-filler-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,8BAAsB,uBAAuB,CAC3C,CAAC,SAAS,KAAK,EACf,CAAC,SAAS,OAAO,KAAK,GAAG,OAAO,KAAK,CACrC,SAAQ,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;IACtC;;OAEG;IACI,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAM/C;;OAEG;IACU,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG;IAUtD;;OAEG;IACU,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG;IAcvD;;OAEG;IACU,YAAY,CACvB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,CAAC,CAAC;IAMb;;OAEG;IACU,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa;IAUrE;;OAEG;IACU,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ;IAI/D;;OAEG;IACI,UAAU,IAAI,gBAAgB;IAIrC;;OAEG;IAEU,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG;IAI7C;;OAEG;IAEU,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG;IAI3C;;OAEG;IAEU,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;IAI5D;;OAEG;IAEU,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;IAI1D;;OAEG;IAEU,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;IAI1D;;OAEG;IAEU,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;CAGzD"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
'use strict';var cascade=require('@warlock.js/cascade'),repositoryDestroyerManager=require('./repository-destroyer-manager.js'),repositoryFiller=require('./repository-filler.js');class RepositoryFillerManager extends repositoryDestroyerManager.RepositoryDestroyManager {
|
|
2
|
-
/**
|
|
3
|
-
* Data to be filled in the model during creation|update|patch
|
|
4
|
-
*/
|
|
5
|
-
fillable;
|
|
6
|
-
/**
|
|
7
|
-
* Filled inputs
|
|
8
|
-
* Will be used with create or update to only get the inputs that are fillable
|
|
9
|
-
*/
|
|
10
|
-
filled;
|
|
11
2
|
/**
|
|
12
3
|
* Create new record
|
|
13
4
|
*/
|
|
@@ -64,13 +55,7 @@
|
|
|
64
55
|
* Make new instance of the filler
|
|
65
56
|
*/
|
|
66
57
|
makeFiller() {
|
|
67
|
-
return new repositoryFiller.RepositoryFiller(this
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Get fillable data
|
|
71
|
-
*/
|
|
72
|
-
getFillable() {
|
|
73
|
-
return this.fillable;
|
|
58
|
+
return new repositoryFiller.RepositoryFiller(this);
|
|
74
59
|
}
|
|
75
60
|
/**
|
|
76
61
|
* On creating event
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-filler-manager.js","sources":["../../src/repositories/repository-filler-manager.ts"],"sourcesContent":[null],"names":["RepositoryDestroyManager","Model","RepositoryFiller"],"mappings":"mLAMM,MAAgB,uBAGpB,SAAQA,mDAA8B,CAAA;AACtC;;AAEG;
|
|
1
|
+
{"version":3,"file":"repository-filler-manager.js","sources":["../../src/repositories/repository-filler-manager.ts"],"sourcesContent":[null],"names":["RepositoryDestroyManager","Model","RepositoryFiller"],"mappings":"mLAMM,MAAgB,uBAGpB,SAAQA,mDAA8B,CAAA;AACtC;;AAEG;IACI,MAAM,CAAC,IAAS,EAAE,KAAS,EAAA;AAChC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAEjC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAe,CAAC;KACjD;AAED;;AAEG;AACI,IAAA,MAAM,MAAM,CAAC,EAAuB,EAAE,IAAS,EAAA;AACpD,QAAA,MAAM,KAAK,GAAG,EAAE,YAAYC,aAAK,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAE7D,QAAA,IAAI,CAAC,KAAK;YAAE,OAAO;AAEnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAEjC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAe,CAAC;KACjD;AAED;;AAEG;AACI,IAAA,MAAM,UAAU,CAAC,KAAoB,EAAE,IAAS,EAAA;QACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAErC,MAAM,QAAQ,GAAU,EAAE,CAAC;AAE3B,QAAA,MAAM,CAAC,OAAO,CAAC,KAAK,IAAG;AACrB,YAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1C,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAE5B,QAAA,OAAO,MAAM,CAAC;KACf;AAED;;AAEG;AACI,IAAA,MAAM,YAAY,CACvB,KAAoB,EACpB,IAAmB,EAAA;QAEnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEtC,OAAO,KAAK,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;KAC3C;AAED;;AAEG;AACI,IAAA,MAAM,cAAc,CAAC,KAAoB,EAAE,IAAmB,EAAA;QACnE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAEtC,QAAA,IAAI,KAAK,EAAE;YACT,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvC,SAAA;AAED,QAAA,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAChC;AAED;;AAEG;AACI,IAAA,MAAM,OAAO,CAAC,MAAS,EAAE,KAAU,EAAE,SAAmB,EAAA;;KAE9D;AAED;;AAEG;IACI,UAAU,GAAA;AACf,QAAA,OAAO,IAAIC,iCAAgB,CAAC,IAAI,CAAC,CAAC;KACnC;AAED;;AAEG;;AAEI,IAAA,MAAM,UAAU,CAAC,MAAS,EAAE,KAAU,EAAA;;KAE5C;AAED;;AAEG;;AAEI,IAAA,MAAM,QAAQ,CAAC,MAAS,EAAE,KAAU,EAAA;;KAE1C;AAED;;AAEG;;AAEI,IAAA,MAAM,UAAU,CAAC,MAAS,EAAE,KAAU,EAAE,SAAa,EAAA;;KAE3D;AAED;;AAEG;;AAEI,IAAA,MAAM,QAAQ,CAAC,MAAS,EAAE,KAAU,EAAE,SAAa,EAAA;;KAEzD;AAED;;AAEG;;AAEI,IAAA,MAAM,QAAQ,CAAC,MAAS,EAAE,KAAU,EAAE,SAAa,EAAA;;KAEzD;AAED;;AAEG;;AAEI,IAAA,MAAM,MAAM,CAAC,MAAS,EAAE,KAAU,EAAE,SAAa,EAAA;;KAEvD;AACF"}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
import type { GenericObject } from "@mongez/reinforcements";
|
|
2
1
|
import type { Model } from "@warlock.js/cascade";
|
|
3
2
|
import type { RepositoryManager } from "./repository-manager";
|
|
4
|
-
import type { Fillable, FillableColumnDataType, FillableColumnOptions } from "./types";
|
|
5
3
|
export declare class RepositoryFiller {
|
|
6
4
|
protected repository: RepositoryManager<any, any>;
|
|
7
|
-
protected fillable?: Fillable;
|
|
8
|
-
protected filled?: string[];
|
|
9
5
|
/**
|
|
10
6
|
* Constructor
|
|
11
7
|
*/
|
|
12
|
-
constructor(repository: RepositoryManager<any, any
|
|
8
|
+
constructor(repository: RepositoryManager<any, any>);
|
|
13
9
|
/**
|
|
14
10
|
* Create new record
|
|
15
11
|
*/
|
|
@@ -26,23 +22,5 @@ export declare class RepositoryFiller {
|
|
|
26
22
|
* Decrement a column value
|
|
27
23
|
*/
|
|
28
24
|
decrement(model: Model | number, column: string, value?: number): Promise<any>;
|
|
29
|
-
/**
|
|
30
|
-
* Parse fillable
|
|
31
|
-
*/
|
|
32
|
-
protected parseFillable(model: Model, data: any): Promise<GenericObject>;
|
|
33
|
-
/**
|
|
34
|
-
* Parse fillable input and return the value based on the fill options
|
|
35
|
-
*/
|
|
36
|
-
protected parseFillableInput(key: string, fillable: FillableColumnDataType | FillableColumnOptions, data: any, model: Model): Promise<{
|
|
37
|
-
value: any;
|
|
38
|
-
column: string;
|
|
39
|
-
defaultValue: any;
|
|
40
|
-
isValid: boolean;
|
|
41
|
-
mandatory: boolean;
|
|
42
|
-
}>;
|
|
43
|
-
/**
|
|
44
|
-
* Cast value to the given type
|
|
45
|
-
*/
|
|
46
|
-
protected castValue(value: any, model: Model, type: FillableColumnDataType): Promise<any>;
|
|
47
25
|
}
|
|
48
26
|
//# sourceMappingURL=repository-filler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-filler.d.ts","sourceRoot":"","sources":["../../src/repositories/repository-filler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"repository-filler.d.ts","sourceRoot":"","sources":["../../src/repositories/repository-filler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,qBAAa,gBAAgB;IAIR,SAAS,CAAC,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC;IAHpE;;OAEG;gBAC0B,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC;IAIpE;;OAEG;IACU,MAAM,CACjB,IAAI,EAAE,GAAG,EACT,KAAK,GAAE,KAAkC,GACxC,OAAO,CAAC,KAAK,CAAC;IAoBjB;;OAEG;IACU,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG;IAsB3C;;OAEG;IACU,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI;IAUvE;;OAEG;IACU,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI;CASxE"}
|
|
@@ -1,27 +1,16 @@
|
|
|
1
|
-
'use strict';
|
|
1
|
+
'use strict';class RepositoryFiller {
|
|
2
2
|
repository;
|
|
3
|
-
fillable;
|
|
4
|
-
filled;
|
|
5
3
|
/**
|
|
6
4
|
* Constructor
|
|
7
5
|
*/
|
|
8
|
-
constructor(repository
|
|
6
|
+
constructor(repository) {
|
|
9
7
|
this.repository = repository;
|
|
10
|
-
this.fillable = fillable;
|
|
11
|
-
this.filled = filled;
|
|
12
8
|
//
|
|
13
9
|
}
|
|
14
10
|
/**
|
|
15
11
|
* Create new record
|
|
16
12
|
*/
|
|
17
13
|
async create(data, model = this.repository.newModel()) {
|
|
18
|
-
if (this.fillable) {
|
|
19
|
-
data = await this.parseFillable(model, data);
|
|
20
|
-
}
|
|
21
|
-
else if (this.filled) {
|
|
22
|
-
data = reinforcements.only(data, this.filled);
|
|
23
|
-
}
|
|
24
|
-
else ;
|
|
25
14
|
await this.repository.setData(model, data, "create");
|
|
26
15
|
this.repository.onSaving(model, data);
|
|
27
16
|
this.repository.onCreating(model, data);
|
|
@@ -39,12 +28,6 @@
|
|
|
39
28
|
*/
|
|
40
29
|
async update(model, data) {
|
|
41
30
|
const currentModel = this.repository.newModel(model.data);
|
|
42
|
-
if (this.fillable) {
|
|
43
|
-
data = await this.parseFillable(model, data);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
logger.log.warn("repository", "update", "fillable is not defined for this repository, this will save danger data in the database");
|
|
47
|
-
}
|
|
48
31
|
this.repository.onUpdating(model, data);
|
|
49
32
|
this.repository.onSaving(model, data);
|
|
50
33
|
await this.repository.setData(model, data, "update");
|
|
@@ -77,105 +60,4 @@
|
|
|
77
60
|
await model.decrement(column, value);
|
|
78
61
|
return model;
|
|
79
62
|
}
|
|
80
|
-
/**
|
|
81
|
-
* Parse fillable
|
|
82
|
-
*/
|
|
83
|
-
async parseFillable(model, data) {
|
|
84
|
-
//
|
|
85
|
-
const returnedData = {};
|
|
86
|
-
for (const key in this.fillable) {
|
|
87
|
-
const { defaultValue, column, value, isValid, mandatory } = await this.parseFillableInput(key, this.fillable[key], data, model);
|
|
88
|
-
if (!isValid)
|
|
89
|
-
continue;
|
|
90
|
-
const isValuePresent = value !== undefined;
|
|
91
|
-
let columnValue = value;
|
|
92
|
-
if (!isValuePresent) {
|
|
93
|
-
if (!mandatory)
|
|
94
|
-
continue;
|
|
95
|
-
// it means the value is not present and it's mandatory
|
|
96
|
-
// so we need to set the default value as the column value
|
|
97
|
-
columnValue = defaultValue;
|
|
98
|
-
}
|
|
99
|
-
reinforcements.set(returnedData, column, columnValue);
|
|
100
|
-
}
|
|
101
|
-
return returnedData;
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Parse fillable input and return the value based on the fill options
|
|
105
|
-
*/
|
|
106
|
-
async parseFillableInput(key, fillable, data, model) {
|
|
107
|
-
let value = reinforcements.get(data, key);
|
|
108
|
-
let options = {};
|
|
109
|
-
if (typeof fillable !== "object") {
|
|
110
|
-
options = {
|
|
111
|
-
type: fillable,
|
|
112
|
-
column: key,
|
|
113
|
-
mandatory: false,
|
|
114
|
-
validate: () => true,
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
options = {
|
|
119
|
-
type: "string",
|
|
120
|
-
column: key,
|
|
121
|
-
mandatory: false,
|
|
122
|
-
validate: () => true,
|
|
123
|
-
...fillable,
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
const isValid = options.validate
|
|
127
|
-
? await options.validate(value, model, data)
|
|
128
|
-
: true;
|
|
129
|
-
if (value !== undefined && isValid) {
|
|
130
|
-
// now cast the value to the type
|
|
131
|
-
value = await this.castValue(value, model, options.type);
|
|
132
|
-
}
|
|
133
|
-
return {
|
|
134
|
-
value,
|
|
135
|
-
column: options.column || key,
|
|
136
|
-
defaultValue: options.defaultValue,
|
|
137
|
-
isValid,
|
|
138
|
-
mandatory: options.mandatory,
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Cast value to the given type
|
|
143
|
-
*/
|
|
144
|
-
async castValue(value, model, type) {
|
|
145
|
-
if (typeof type === "function") {
|
|
146
|
-
return await type(value, model);
|
|
147
|
-
}
|
|
148
|
-
switch (type) {
|
|
149
|
-
case "string":
|
|
150
|
-
return String(value);
|
|
151
|
-
case "email":
|
|
152
|
-
return String(value).toLowerCase();
|
|
153
|
-
case "number":
|
|
154
|
-
return Number(value);
|
|
155
|
-
case "boolean":
|
|
156
|
-
case "bool":
|
|
157
|
-
return Boolean(value);
|
|
158
|
-
case "int":
|
|
159
|
-
case "integer":
|
|
160
|
-
return parseInt(value);
|
|
161
|
-
case "float":
|
|
162
|
-
case "double":
|
|
163
|
-
return parseFloat(value);
|
|
164
|
-
case "array":
|
|
165
|
-
return Array.isArray(value) ? value : [value];
|
|
166
|
-
case "object":
|
|
167
|
-
return typeof value === "object" ? value : JSON.parse(value);
|
|
168
|
-
case "date":
|
|
169
|
-
return new Date(value);
|
|
170
|
-
case "dateTime":
|
|
171
|
-
return new Date(value);
|
|
172
|
-
case "location":
|
|
173
|
-
return {
|
|
174
|
-
type: "Point",
|
|
175
|
-
coordinates: [value.lng, value.lat],
|
|
176
|
-
};
|
|
177
|
-
default:
|
|
178
|
-
return value;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
63
|
}exports.RepositoryFiller=RepositoryFiller;//# sourceMappingURL=repository-filler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-filler.js","sources":["../../src/repositories/repository-filler.ts"],"sourcesContent":[null],"names":[
|
|
1
|
+
{"version":3,"file":"repository-filler.js","sources":["../../src/repositories/repository-filler.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -2,17 +2,8 @@ import type { GenericObject } from "@mongez/reinforcements";
|
|
|
2
2
|
import { Model } from "@warlock.js/cascade";
|
|
3
3
|
import { RepositoryDestroyManager } from "./repository-destroyer-manager";
|
|
4
4
|
import { RepositoryFiller } from "./repository-filler";
|
|
5
|
-
import type {
|
|
5
|
+
import type { SaveMode } from "./types";
|
|
6
6
|
export declare abstract class RepositoryFillerManager<T extends Model, M extends typeof Model = typeof Model> extends RepositoryDestroyManager<T, M> {
|
|
7
|
-
/**
|
|
8
|
-
* Data to be filled in the model during creation|update|patch
|
|
9
|
-
*/
|
|
10
|
-
protected fillable?: Fillable;
|
|
11
|
-
/**
|
|
12
|
-
* Filled inputs
|
|
13
|
-
* Will be used with create or update to only get the inputs that are fillable
|
|
14
|
-
*/
|
|
15
|
-
protected filled?: string[];
|
|
16
7
|
/**
|
|
17
8
|
* Create new record
|
|
18
9
|
*/
|
|
@@ -41,10 +32,6 @@ export declare abstract class RepositoryFillerManager<T extends Model, M extends
|
|
|
41
32
|
* Make new instance of the filler
|
|
42
33
|
*/
|
|
43
34
|
makeFiller(): RepositoryFiller;
|
|
44
|
-
/**
|
|
45
|
-
* Get fillable data
|
|
46
|
-
*/
|
|
47
|
-
getFillable(): Fillable;
|
|
48
35
|
/**
|
|
49
36
|
* On creating event
|
|
50
37
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-filler-manager.d.ts","sourceRoot":"","sources":["../../src/repositories/repository-filler-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"repository-filler-manager.d.ts","sourceRoot":"","sources":["../../src/repositories/repository-filler-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,8BAAsB,uBAAuB,CAC3C,CAAC,SAAS,KAAK,EACf,CAAC,SAAS,OAAO,KAAK,GAAG,OAAO,KAAK,CACrC,SAAQ,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;IACtC;;OAEG;IACI,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAM/C;;OAEG;IACU,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG;IAUtD;;OAEG;IACU,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG;IAcvD;;OAEG;IACU,YAAY,CACvB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,CAAC,CAAC;IAMb;;OAEG;IACU,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa;IAUrE;;OAEG;IACU,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ;IAI/D;;OAEG;IACI,UAAU,IAAI,gBAAgB;IAIrC;;OAEG;IAEU,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG;IAI7C;;OAEG;IAEU,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG;IAI3C;;OAEG;IAEU,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;IAI5D;;OAEG;IAEU,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;IAI1D;;OAEG;IAEU,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;IAI1D;;OAEG;IAEU,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;CAGzD"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
import {Model}from'@warlock.js/cascade';import {RepositoryDestroyManager}from'./repository-destroyer-manager.js';import {RepositoryFiller}from'./repository-filler.js';class RepositoryFillerManager extends RepositoryDestroyManager {
|
|
2
|
-
/**
|
|
3
|
-
* Data to be filled in the model during creation|update|patch
|
|
4
|
-
*/
|
|
5
|
-
fillable;
|
|
6
|
-
/**
|
|
7
|
-
* Filled inputs
|
|
8
|
-
* Will be used with create or update to only get the inputs that are fillable
|
|
9
|
-
*/
|
|
10
|
-
filled;
|
|
11
2
|
/**
|
|
12
3
|
* Create new record
|
|
13
4
|
*/
|
|
@@ -64,13 +55,7 @@ import {Model}from'@warlock.js/cascade';import {RepositoryDestroyManager}from'./
|
|
|
64
55
|
* Make new instance of the filler
|
|
65
56
|
*/
|
|
66
57
|
makeFiller() {
|
|
67
|
-
return new RepositoryFiller(this
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Get fillable data
|
|
71
|
-
*/
|
|
72
|
-
getFillable() {
|
|
73
|
-
return this.fillable;
|
|
58
|
+
return new RepositoryFiller(this);
|
|
74
59
|
}
|
|
75
60
|
/**
|
|
76
61
|
* On creating event
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-filler-manager.js","sources":["../../src/repositories/repository-filler-manager.ts"],"sourcesContent":[null],"names":[],"mappings":"uKAMM,MAAgB,uBAGpB,SAAQ,wBAA8B,CAAA;AACtC;;AAEG;
|
|
1
|
+
{"version":3,"file":"repository-filler-manager.js","sources":["../../src/repositories/repository-filler-manager.ts"],"sourcesContent":[null],"names":[],"mappings":"uKAMM,MAAgB,uBAGpB,SAAQ,wBAA8B,CAAA;AACtC;;AAEG;IACI,MAAM,CAAC,IAAS,EAAE,KAAS,EAAA;AAChC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAEjC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAe,CAAC;KACjD;AAED;;AAEG;AACI,IAAA,MAAM,MAAM,CAAC,EAAuB,EAAE,IAAS,EAAA;AACpD,QAAA,MAAM,KAAK,GAAG,EAAE,YAAY,KAAK,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAE7D,QAAA,IAAI,CAAC,KAAK;YAAE,OAAO;AAEnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAEjC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAe,CAAC;KACjD;AAED;;AAEG;AACI,IAAA,MAAM,UAAU,CAAC,KAAoB,EAAE,IAAS,EAAA;QACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAErC,MAAM,QAAQ,GAAU,EAAE,CAAC;AAE3B,QAAA,MAAM,CAAC,OAAO,CAAC,KAAK,IAAG;AACrB,YAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1C,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAE5B,QAAA,OAAO,MAAM,CAAC;KACf;AAED;;AAEG;AACI,IAAA,MAAM,YAAY,CACvB,KAAoB,EACpB,IAAmB,EAAA;QAEnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEtC,OAAO,KAAK,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;KAC3C;AAED;;AAEG;AACI,IAAA,MAAM,cAAc,CAAC,KAAoB,EAAE,IAAmB,EAAA;QACnE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAEtC,QAAA,IAAI,KAAK,EAAE;YACT,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvC,SAAA;AAED,QAAA,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAChC;AAED;;AAEG;AACI,IAAA,MAAM,OAAO,CAAC,MAAS,EAAE,KAAU,EAAE,SAAmB,EAAA;;KAE9D;AAED;;AAEG;IACI,UAAU,GAAA;AACf,QAAA,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;KACnC;AAED;;AAEG;;AAEI,IAAA,MAAM,UAAU,CAAC,MAAS,EAAE,KAAU,EAAA;;KAE5C;AAED;;AAEG;;AAEI,IAAA,MAAM,QAAQ,CAAC,MAAS,EAAE,KAAU,EAAA;;KAE1C;AAED;;AAEG;;AAEI,IAAA,MAAM,UAAU,CAAC,MAAS,EAAE,KAAU,EAAE,SAAa,EAAA;;KAE3D;AAED;;AAEG;;AAEI,IAAA,MAAM,QAAQ,CAAC,MAAS,EAAE,KAAU,EAAE,SAAa,EAAA;;KAEzD;AAED;;AAEG;;AAEI,IAAA,MAAM,QAAQ,CAAC,MAAS,EAAE,KAAU,EAAE,SAAa,EAAA;;KAEzD;AAED;;AAEG;;AAEI,IAAA,MAAM,MAAM,CAAC,MAAS,EAAE,KAAU,EAAE,SAAa,EAAA;;KAEvD;AACF"}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
import type { GenericObject } from "@mongez/reinforcements";
|
|
2
1
|
import type { Model } from "@warlock.js/cascade";
|
|
3
2
|
import type { RepositoryManager } from "./repository-manager";
|
|
4
|
-
import type { Fillable, FillableColumnDataType, FillableColumnOptions } from "./types";
|
|
5
3
|
export declare class RepositoryFiller {
|
|
6
4
|
protected repository: RepositoryManager<any, any>;
|
|
7
|
-
protected fillable?: Fillable;
|
|
8
|
-
protected filled?: string[];
|
|
9
5
|
/**
|
|
10
6
|
* Constructor
|
|
11
7
|
*/
|
|
12
|
-
constructor(repository: RepositoryManager<any, any
|
|
8
|
+
constructor(repository: RepositoryManager<any, any>);
|
|
13
9
|
/**
|
|
14
10
|
* Create new record
|
|
15
11
|
*/
|
|
@@ -26,23 +22,5 @@ export declare class RepositoryFiller {
|
|
|
26
22
|
* Decrement a column value
|
|
27
23
|
*/
|
|
28
24
|
decrement(model: Model | number, column: string, value?: number): Promise<any>;
|
|
29
|
-
/**
|
|
30
|
-
* Parse fillable
|
|
31
|
-
*/
|
|
32
|
-
protected parseFillable(model: Model, data: any): Promise<GenericObject>;
|
|
33
|
-
/**
|
|
34
|
-
* Parse fillable input and return the value based on the fill options
|
|
35
|
-
*/
|
|
36
|
-
protected parseFillableInput(key: string, fillable: FillableColumnDataType | FillableColumnOptions, data: any, model: Model): Promise<{
|
|
37
|
-
value: any;
|
|
38
|
-
column: string;
|
|
39
|
-
defaultValue: any;
|
|
40
|
-
isValid: boolean;
|
|
41
|
-
mandatory: boolean;
|
|
42
|
-
}>;
|
|
43
|
-
/**
|
|
44
|
-
* Cast value to the given type
|
|
45
|
-
*/
|
|
46
|
-
protected castValue(value: any, model: Model, type: FillableColumnDataType): Promise<any>;
|
|
47
25
|
}
|
|
48
26
|
//# sourceMappingURL=repository-filler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-filler.d.ts","sourceRoot":"","sources":["../../src/repositories/repository-filler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"repository-filler.d.ts","sourceRoot":"","sources":["../../src/repositories/repository-filler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,qBAAa,gBAAgB;IAIR,SAAS,CAAC,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC;IAHpE;;OAEG;gBAC0B,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC;IAIpE;;OAEG;IACU,MAAM,CACjB,IAAI,EAAE,GAAG,EACT,KAAK,GAAE,KAAkC,GACxC,OAAO,CAAC,KAAK,CAAC;IAoBjB;;OAEG;IACU,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG;IAsB3C;;OAEG;IACU,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI;IAUvE;;OAEG;IACU,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,SAAI;CASxE"}
|
|
@@ -1,27 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
class RepositoryFiller {
|
|
2
2
|
repository;
|
|
3
|
-
fillable;
|
|
4
|
-
filled;
|
|
5
3
|
/**
|
|
6
4
|
* Constructor
|
|
7
5
|
*/
|
|
8
|
-
constructor(repository
|
|
6
|
+
constructor(repository) {
|
|
9
7
|
this.repository = repository;
|
|
10
|
-
this.fillable = fillable;
|
|
11
|
-
this.filled = filled;
|
|
12
8
|
//
|
|
13
9
|
}
|
|
14
10
|
/**
|
|
15
11
|
* Create new record
|
|
16
12
|
*/
|
|
17
13
|
async create(data, model = this.repository.newModel()) {
|
|
18
|
-
if (this.fillable) {
|
|
19
|
-
data = await this.parseFillable(model, data);
|
|
20
|
-
}
|
|
21
|
-
else if (this.filled) {
|
|
22
|
-
data = only(data, this.filled);
|
|
23
|
-
}
|
|
24
|
-
else ;
|
|
25
14
|
await this.repository.setData(model, data, "create");
|
|
26
15
|
this.repository.onSaving(model, data);
|
|
27
16
|
this.repository.onCreating(model, data);
|
|
@@ -39,12 +28,6 @@ import {only,set,get}from'@mongez/reinforcements';import {log}from'@warlock.js/l
|
|
|
39
28
|
*/
|
|
40
29
|
async update(model, data) {
|
|
41
30
|
const currentModel = this.repository.newModel(model.data);
|
|
42
|
-
if (this.fillable) {
|
|
43
|
-
data = await this.parseFillable(model, data);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
log.warn("repository", "update", "fillable is not defined for this repository, this will save danger data in the database");
|
|
47
|
-
}
|
|
48
31
|
this.repository.onUpdating(model, data);
|
|
49
32
|
this.repository.onSaving(model, data);
|
|
50
33
|
await this.repository.setData(model, data, "update");
|
|
@@ -77,105 +60,4 @@ import {only,set,get}from'@mongez/reinforcements';import {log}from'@warlock.js/l
|
|
|
77
60
|
await model.decrement(column, value);
|
|
78
61
|
return model;
|
|
79
62
|
}
|
|
80
|
-
/**
|
|
81
|
-
* Parse fillable
|
|
82
|
-
*/
|
|
83
|
-
async parseFillable(model, data) {
|
|
84
|
-
//
|
|
85
|
-
const returnedData = {};
|
|
86
|
-
for (const key in this.fillable) {
|
|
87
|
-
const { defaultValue, column, value, isValid, mandatory } = await this.parseFillableInput(key, this.fillable[key], data, model);
|
|
88
|
-
if (!isValid)
|
|
89
|
-
continue;
|
|
90
|
-
const isValuePresent = value !== undefined;
|
|
91
|
-
let columnValue = value;
|
|
92
|
-
if (!isValuePresent) {
|
|
93
|
-
if (!mandatory)
|
|
94
|
-
continue;
|
|
95
|
-
// it means the value is not present and it's mandatory
|
|
96
|
-
// so we need to set the default value as the column value
|
|
97
|
-
columnValue = defaultValue;
|
|
98
|
-
}
|
|
99
|
-
set(returnedData, column, columnValue);
|
|
100
|
-
}
|
|
101
|
-
return returnedData;
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Parse fillable input and return the value based on the fill options
|
|
105
|
-
*/
|
|
106
|
-
async parseFillableInput(key, fillable, data, model) {
|
|
107
|
-
let value = get(data, key);
|
|
108
|
-
let options = {};
|
|
109
|
-
if (typeof fillable !== "object") {
|
|
110
|
-
options = {
|
|
111
|
-
type: fillable,
|
|
112
|
-
column: key,
|
|
113
|
-
mandatory: false,
|
|
114
|
-
validate: () => true,
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
options = {
|
|
119
|
-
type: "string",
|
|
120
|
-
column: key,
|
|
121
|
-
mandatory: false,
|
|
122
|
-
validate: () => true,
|
|
123
|
-
...fillable,
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
const isValid = options.validate
|
|
127
|
-
? await options.validate(value, model, data)
|
|
128
|
-
: true;
|
|
129
|
-
if (value !== undefined && isValid) {
|
|
130
|
-
// now cast the value to the type
|
|
131
|
-
value = await this.castValue(value, model, options.type);
|
|
132
|
-
}
|
|
133
|
-
return {
|
|
134
|
-
value,
|
|
135
|
-
column: options.column || key,
|
|
136
|
-
defaultValue: options.defaultValue,
|
|
137
|
-
isValid,
|
|
138
|
-
mandatory: options.mandatory,
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Cast value to the given type
|
|
143
|
-
*/
|
|
144
|
-
async castValue(value, model, type) {
|
|
145
|
-
if (typeof type === "function") {
|
|
146
|
-
return await type(value, model);
|
|
147
|
-
}
|
|
148
|
-
switch (type) {
|
|
149
|
-
case "string":
|
|
150
|
-
return String(value);
|
|
151
|
-
case "email":
|
|
152
|
-
return String(value).toLowerCase();
|
|
153
|
-
case "number":
|
|
154
|
-
return Number(value);
|
|
155
|
-
case "boolean":
|
|
156
|
-
case "bool":
|
|
157
|
-
return Boolean(value);
|
|
158
|
-
case "int":
|
|
159
|
-
case "integer":
|
|
160
|
-
return parseInt(value);
|
|
161
|
-
case "float":
|
|
162
|
-
case "double":
|
|
163
|
-
return parseFloat(value);
|
|
164
|
-
case "array":
|
|
165
|
-
return Array.isArray(value) ? value : [value];
|
|
166
|
-
case "object":
|
|
167
|
-
return typeof value === "object" ? value : JSON.parse(value);
|
|
168
|
-
case "date":
|
|
169
|
-
return new Date(value);
|
|
170
|
-
case "dateTime":
|
|
171
|
-
return new Date(value);
|
|
172
|
-
case "location":
|
|
173
|
-
return {
|
|
174
|
-
type: "Point",
|
|
175
|
-
coordinates: [value.lng, value.lat],
|
|
176
|
-
};
|
|
177
|
-
default:
|
|
178
|
-
return value;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
63
|
}export{RepositoryFiller};//# sourceMappingURL=repository-filler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-filler.js","sources":["../../src/repositories/repository-filler.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"repository-filler.js","sources":["../../src/repositories/repository-filler.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@warlock.js/core",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.30",
|
|
4
4
|
"description": "A robust nodejs framework for building blazing fast applications",
|
|
5
5
|
"main": "./cjs/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"@mongez/fs": "^3.0.5",
|
|
30
30
|
"@mongez/http": "^2.2.10",
|
|
31
31
|
"@mongez/localization": "^3.0.0",
|
|
32
|
-
"@warlock.js/logger": "3.0.
|
|
33
|
-
"@warlock.js/cascade": "3.0.
|
|
32
|
+
"@warlock.js/logger": "3.0.30",
|
|
33
|
+
"@warlock.js/cascade": "3.0.30",
|
|
34
34
|
"@mongez/reinforcements": "^2.3.12",
|
|
35
35
|
"commander": "^12.0.0",
|
|
36
36
|
"@mongez/slug": "^1.0.7",
|