prostgles-server 2.0.291 → 2.0.292
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/dist/validation.d.ts +5 -1
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +7 -3
- package/dist/validation.js.map +1 -1
- package/lib/validation.d.ts +5 -1
- package/lib/validation.d.ts.map +1 -1
- package/lib/validation.js +7 -3
- package/lib/validation.ts +12 -6
- package/package.json +1 -1
- package/tests/client/PID.txt +1 -1
- package/tests/server/DBoGenerated.d.ts +2 -1
- package/tests/server/index.js +2 -1
- package/tests/server/index.ts +2 -1
- package/tests/server/package-lock.json +1 -1
package/dist/validation.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ declare type BaseOptions = {
|
|
|
3
3
|
nullable?: boolean;
|
|
4
4
|
};
|
|
5
5
|
declare type SimpleType = BaseOptions & ({
|
|
6
|
-
type: "number" | "boolean" | "integer" | "string" | "number[]" | "boolean[]" | "integer[]" | "string[]" | ValidationSchema;
|
|
6
|
+
type: "number" | "boolean" | "integer" | "string" | "any" | "number[]" | "boolean[]" | "integer[]" | "string[]" | "any[]" | ValidationSchema;
|
|
7
7
|
} | {
|
|
8
8
|
oneOf: readonly any[];
|
|
9
9
|
});
|
|
@@ -22,6 +22,8 @@ declare type GetType<T extends FieldType> = T extends {
|
|
|
22
22
|
} ? number : T extends {
|
|
23
23
|
type: "string";
|
|
24
24
|
} ? string : T extends {
|
|
25
|
+
type: "any";
|
|
26
|
+
} ? any : T extends {
|
|
25
27
|
type: "number[]";
|
|
26
28
|
} ? number[] : T extends {
|
|
27
29
|
type: "boolean[]";
|
|
@@ -30,6 +32,8 @@ declare type GetType<T extends FieldType> = T extends {
|
|
|
30
32
|
} ? number[] : T extends {
|
|
31
33
|
type: "string[]";
|
|
32
34
|
} ? string[] : T extends {
|
|
35
|
+
type: "any[]";
|
|
36
|
+
} ? any[] : T extends {
|
|
33
37
|
oneOf: readonly any[];
|
|
34
38
|
} ? T["oneOf"][number] :
|
|
35
39
|
/** This needs fixing */
|
package/dist/validation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../lib/validation.ts"],"names":[],"mappings":"AAGA,aAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,aAAK,UAAU,GAAG,WAAW,GAAG,CAAC;IAC/B,IAAI,EACF,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../lib/validation.ts"],"names":[],"mappings":"AAGA,aAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,aAAK,UAAU,GAAG,WAAW,GAAG,CAAC;IAC/B,IAAI,EACF,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,GACnD,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,GAC7D,gBAAgB,CAAC;CAEpB,GAAG;IACF,KAAK,EAAE,SAAS,GAAG,EAAE,CAAC;CACvB,CAAC,CAAA;AAEF,oBAAY,UAAU,GAAG,WAAW,GAAG;IACrC,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACzC,CAAA;AACD,aAAK,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAEzC,aAAK,OAAO,CAAC,CAAC,SAAS,SAAS,IAC9B,CAAC,SAAS;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAC7D,CAAC,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAE,MAAM,GACpC,CAAC,SAAS;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAE,OAAO,GACtC,CAAC,SAAS;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAE,MAAM,GACrC,CAAC,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAE,MAAM,GACpC,CAAC,SAAS;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAAE,GAAG,GAC9B,CAAC,SAAS;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAE,MAAM,EAAE,GACxC,CAAC,SAAS;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GAAE,OAAO,EAAE,GAC1C,CAAC,SAAS;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GAAE,MAAM,EAAE,GACzC,CAAC,SAAS;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAE,MAAM,EAAE,GACxC,CAAC,SAAS;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAE,GAAG,EAAE,GAClC,CAAC,SAAS;IAAE,KAAK,EAAE,SAAS,GAAG,EAAE,CAAA;CAAE,GAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAEzD,wBAAwB;AACtB,CAAC,SAAS;IAAE,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAA;CAAE,GAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,GAC9F,GAAG,CAAC;AAEJ,oBAAY,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACzD,oBAAY,YAAY,CAAC,CAAC,SAAS,gBAAgB,IAAI,CAAC;KACrD,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,IAAI,GAAE,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3E,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,IAAI,GAAE,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1E,CAAC,CAAC;AAmBH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,SAAS,GAAG,OAAO,CAmBhF;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,gBAAgB,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,UAAQ,QAG7H;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAiEpM;AACD,aAAK,OAAO,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAYtC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,SAAK,EAAE,OAAO,UAAQ,GAAG,MAAM,CA2BhG;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,SAAK,EAAE,OAAO,UAAQ,GAAG,MAAM,CAMpI"}
|
package/dist/validation.js
CHANGED
|
@@ -58,7 +58,8 @@ function getPGCheckConstraint(args, depth) {
|
|
|
58
58
|
"integer": "::INTEGER",
|
|
59
59
|
"number": "::NUMERIC",
|
|
60
60
|
"boolean": "::BOOLEAN",
|
|
61
|
-
"string": "::TEXT"
|
|
61
|
+
"string": "::TEXT",
|
|
62
|
+
"any": "::JSONB"
|
|
62
63
|
};
|
|
63
64
|
const kChecks = (k, s) => {
|
|
64
65
|
const t = s[k];
|
|
@@ -88,11 +89,14 @@ function getPGCheckConstraint(args, depth) {
|
|
|
88
89
|
if (typeof t.type === "string") {
|
|
89
90
|
if (t.type.endsWith("[]")) {
|
|
90
91
|
const correctType = t.type.slice(0, -2);
|
|
91
|
-
|
|
92
|
+
let elemCheck = correctType === "any" ? "" : `AND ('{' || right(left(${valAsText},-1),-1) || '}')${jsToPGtypes[correctType]}[] IS NOT NULL`;
|
|
93
|
+
checks.push(`jsonb_typeof(${valAsJson}) = 'array' ${elemCheck}`);
|
|
92
94
|
}
|
|
93
95
|
else {
|
|
94
96
|
const correctType = t.type.replace("integer", "number");
|
|
95
|
-
|
|
97
|
+
if (correctType !== "any") {
|
|
98
|
+
checks.push(`jsonb_typeof(${valAsJson}) = ${(0, PubSubManager_1.asValue)(correctType)} `);
|
|
99
|
+
}
|
|
96
100
|
}
|
|
97
101
|
}
|
|
98
102
|
else {
|
package/dist/validation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../lib/validation.ts"],"names":[],"mappings":";;;AAAA,qDAAqE;AACrE,mDAA0C;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../lib/validation.ts"],"names":[],"mappings":"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"}
|
package/lib/validation.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ declare type BaseOptions = {
|
|
|
3
3
|
nullable?: boolean;
|
|
4
4
|
};
|
|
5
5
|
declare type SimpleType = BaseOptions & ({
|
|
6
|
-
type: "number" | "boolean" | "integer" | "string" | "number[]" | "boolean[]" | "integer[]" | "string[]" | ValidationSchema;
|
|
6
|
+
type: "number" | "boolean" | "integer" | "string" | "any" | "number[]" | "boolean[]" | "integer[]" | "string[]" | "any[]" | ValidationSchema;
|
|
7
7
|
} | {
|
|
8
8
|
oneOf: readonly any[];
|
|
9
9
|
});
|
|
@@ -22,6 +22,8 @@ declare type GetType<T extends FieldType> = T extends {
|
|
|
22
22
|
} ? number : T extends {
|
|
23
23
|
type: "string";
|
|
24
24
|
} ? string : T extends {
|
|
25
|
+
type: "any";
|
|
26
|
+
} ? any : T extends {
|
|
25
27
|
type: "number[]";
|
|
26
28
|
} ? number[] : T extends {
|
|
27
29
|
type: "boolean[]";
|
|
@@ -30,6 +32,8 @@ declare type GetType<T extends FieldType> = T extends {
|
|
|
30
32
|
} ? number[] : T extends {
|
|
31
33
|
type: "string[]";
|
|
32
34
|
} ? string[] : T extends {
|
|
35
|
+
type: "any[]";
|
|
36
|
+
} ? any[] : T extends {
|
|
33
37
|
oneOf: readonly any[];
|
|
34
38
|
} ? T["oneOf"][number] :
|
|
35
39
|
/** This needs fixing */
|
package/lib/validation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["validation.ts"],"names":[],"mappings":"AAGA,aAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,aAAK,UAAU,GAAG,WAAW,GAAG,CAAC;IAC/B,IAAI,EACF,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["validation.ts"],"names":[],"mappings":"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"}
|
package/lib/validation.js
CHANGED
|
@@ -58,7 +58,8 @@ function getPGCheckConstraint(args, depth) {
|
|
|
58
58
|
"integer": "::INTEGER",
|
|
59
59
|
"number": "::NUMERIC",
|
|
60
60
|
"boolean": "::BOOLEAN",
|
|
61
|
-
"string": "::TEXT"
|
|
61
|
+
"string": "::TEXT",
|
|
62
|
+
"any": "::JSONB"
|
|
62
63
|
};
|
|
63
64
|
const kChecks = (k, s) => {
|
|
64
65
|
const t = s[k];
|
|
@@ -88,11 +89,14 @@ function getPGCheckConstraint(args, depth) {
|
|
|
88
89
|
if (typeof t.type === "string") {
|
|
89
90
|
if (t.type.endsWith("[]")) {
|
|
90
91
|
const correctType = t.type.slice(0, -2);
|
|
91
|
-
|
|
92
|
+
let elemCheck = correctType === "any" ? "" : `AND ('{' || right(left(${valAsText},-1),-1) || '}')${jsToPGtypes[correctType]}[] IS NOT NULL`;
|
|
93
|
+
checks.push(`jsonb_typeof(${valAsJson}) = 'array' ${elemCheck}`);
|
|
92
94
|
}
|
|
93
95
|
else {
|
|
94
96
|
const correctType = t.type.replace("integer", "number");
|
|
95
|
-
|
|
97
|
+
if (correctType !== "any") {
|
|
98
|
+
checks.push(`jsonb_typeof(${valAsJson}) = ${(0, PubSubManager_1.asValue)(correctType)} `);
|
|
99
|
+
}
|
|
96
100
|
}
|
|
97
101
|
}
|
|
98
102
|
else {
|
package/lib/validation.ts
CHANGED
|
@@ -8,8 +8,8 @@ type BaseOptions = {
|
|
|
8
8
|
|
|
9
9
|
type SimpleType = BaseOptions & ({
|
|
10
10
|
type:
|
|
11
|
-
| "number" | "boolean" | "integer" | "string"
|
|
12
|
-
| "number[]" | "boolean[]" | "integer[]" | "string[]"
|
|
11
|
+
| "number" | "boolean" | "integer" | "string" | "any"
|
|
12
|
+
| "number[]" | "boolean[]" | "integer[]" | "string[]" | "any[]"
|
|
13
13
|
| ValidationSchema;
|
|
14
14
|
|
|
15
15
|
} | {
|
|
@@ -27,10 +27,12 @@ type GetType<T extends FieldType> =
|
|
|
27
27
|
| T extends { type: "boolean" }? boolean:
|
|
28
28
|
| T extends { type: "integer" }? number:
|
|
29
29
|
| T extends { type: "string" }? string:
|
|
30
|
+
| T extends { type: "any" }? any:
|
|
30
31
|
| T extends { type: "number[]" }? number[]:
|
|
31
32
|
| T extends { type: "boolean[]" }? boolean[]:
|
|
32
33
|
| T extends { type: "integer[]" }? number[]:
|
|
33
34
|
| T extends { type: "string[]" }? string[]:
|
|
35
|
+
| T extends { type: "any[]" }? any[]:
|
|
34
36
|
| T extends { oneOf: readonly any[] }? T["oneOf"][number] :
|
|
35
37
|
|
|
36
38
|
/** This needs fixing */
|
|
@@ -94,7 +96,8 @@ export function getPGCheckConstraint(args: { escapedFieldName: string; schema: V
|
|
|
94
96
|
"integer": "::INTEGER",
|
|
95
97
|
"number": "::NUMERIC",
|
|
96
98
|
"boolean": "::BOOLEAN",
|
|
97
|
-
"string": "::TEXT"
|
|
99
|
+
"string": "::TEXT",
|
|
100
|
+
"any": "::JSONB"
|
|
98
101
|
}
|
|
99
102
|
|
|
100
103
|
const kChecks = (k: string, s: ValidationSchema) => {
|
|
@@ -121,10 +124,13 @@ export function getPGCheckConstraint(args: { escapedFieldName: string; schema: V
|
|
|
121
124
|
if(typeof t.type === "string") {
|
|
122
125
|
if(t.type.endsWith("[]")){
|
|
123
126
|
const correctType = t.type.slice(0, -2);
|
|
124
|
-
|
|
127
|
+
let elemCheck = correctType === "any"? "" : `AND ('{' || right(left(${valAsText},-1),-1) || '}')${jsToPGtypes[correctType as keyof typeof jsToPGtypes]}[] IS NOT NULL`
|
|
128
|
+
checks.push(`jsonb_typeof(${valAsJson}) = 'array' ${elemCheck}`)
|
|
125
129
|
} else {
|
|
126
|
-
const correctType = t.type.replace("integer", "number")
|
|
127
|
-
|
|
130
|
+
const correctType = t.type.replace("integer", "number");
|
|
131
|
+
if(correctType !== "any"){
|
|
132
|
+
checks.push(`jsonb_typeof(${valAsJson}) = ${asValue(correctType)} `)
|
|
133
|
+
}
|
|
128
134
|
}
|
|
129
135
|
} else {
|
|
130
136
|
const check = getPGCheckConstraint({ escapedFieldName: valAsJson, schema: t.type, nullable: !!t.nullable, optional: !!t.optional }, depth + 1).trim();
|
package/package.json
CHANGED
package/tests/client/PID.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
6464
|
package/tests/server/index.js
CHANGED
|
@@ -93,7 +93,8 @@ function dd() {
|
|
|
93
93
|
preferences: { defaultValue: "{}",
|
|
94
94
|
jsonbSchema: {
|
|
95
95
|
showIntro: { type: "boolean", optional: true },
|
|
96
|
-
theme: { oneOf: ["light", "dark"], optional: true },
|
|
96
|
+
theme: { oneOf: ["light", "dark", "auto"], optional: true },
|
|
97
|
+
others: { type: "any[]" }
|
|
97
98
|
}
|
|
98
99
|
},
|
|
99
100
|
}
|
package/tests/server/index.ts
CHANGED
|
@@ -114,7 +114,8 @@ function dd(){
|
|
|
114
114
|
preferences: { defaultValue: "{}",
|
|
115
115
|
jsonbSchema: {
|
|
116
116
|
showIntro: { type: "boolean", optional: true },
|
|
117
|
-
theme: { oneOf: ["light", "dark"], optional: true },
|
|
117
|
+
theme: { oneOf: ["light", "dark", "auto"], optional: true },
|
|
118
|
+
others: { type: "any[]" }
|
|
118
119
|
}
|
|
119
120
|
},
|
|
120
121
|
}
|