typia 5.0.0-dev.20230810 → 5.0.0-dev.20230811
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/lib/factories/ProtobufFactory.js +61 -46
- package/lib/factories/ProtobufFactory.js.map +1 -1
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +4 -4
- package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
- package/package.json +2 -1
- package/src/factories/ProtobufFactory.ts +54 -25
- package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +6 -4
|
@@ -37,6 +37,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.ProtobufFactory = void 0;
|
|
40
|
+
var Escaper_1 = require("../utils/Escaper");
|
|
40
41
|
var MetadataFactory_1 = require("./MetadataFactory");
|
|
41
42
|
var emplace_protocol_object_1 = require("./internal/protocols/emplace_protocol_object");
|
|
42
43
|
var iterate_protocol_main_1 = require("./internal/protocols/iterate_protocol_main");
|
|
@@ -112,6 +113,14 @@ var ProtobufFactory;
|
|
|
112
113
|
obj.properties.some(function (p) { return !p.key.isSoleLiteral(); });
|
|
113
114
|
}))
|
|
114
115
|
throw notSupportedError({ method: method })("object type with mixed static and dynamic key typed properties. Keep statics or dynamic only.");
|
|
116
|
+
else if (meta.objects.length &&
|
|
117
|
+
meta.objects.some(function (obj) {
|
|
118
|
+
return obj.properties.some(function (p) {
|
|
119
|
+
return p.key.isSoleLiteral() &&
|
|
120
|
+
!Escaper_1.Escaper.variable(p.key.getSoleLiteral());
|
|
121
|
+
});
|
|
122
|
+
}))
|
|
123
|
+
throw notSupportedError({ method: method })("object type with invalid static key name.");
|
|
115
124
|
else if (meta.natives.length) {
|
|
116
125
|
var banned = meta.natives
|
|
117
126
|
.map(function (n) { return [n, BANNED_NATIVE_TYPES.get(n)]; })
|
|
@@ -124,9 +133,15 @@ var ProtobufFactory;
|
|
|
124
133
|
? banned[0]
|
|
125
134
|
: "".concat(banned[0], ". Use ").concat(banned[1], " instead."));
|
|
126
135
|
}
|
|
127
|
-
else if (meta.maps.length &&
|
|
128
|
-
meta.maps.some(function (m) { return !is_atomic_key(m.key); }))
|
|
136
|
+
else if (meta.maps.length && meta.maps.some(function (m) { return !isAtomicKey(m.key); }))
|
|
129
137
|
throw notSupportedError({ method: method })("");
|
|
138
|
+
else if (meta.maps.length &&
|
|
139
|
+
meta.maps.some(function (m) { return !!m.value.arrays.length; }))
|
|
140
|
+
throw notSupportedError({ method: method })("map type with array value type");
|
|
141
|
+
else if (meta.objects.length &&
|
|
142
|
+
isDynamicObject(meta.objects[0]) &&
|
|
143
|
+
meta.objects[0].properties.some(function (p) { return !!p.value.arrays.length; }))
|
|
144
|
+
throw notSupportedError({ method: method })("dynamic object with array value type");
|
|
130
145
|
else if (meta.arrays.length &&
|
|
131
146
|
meta.arrays.some(function (a) { return a.value.size() > 1; }))
|
|
132
147
|
throw notSupportedError({ method: method })("union type in array");
|
|
@@ -147,56 +162,56 @@ var ProtobufFactory;
|
|
|
147
162
|
else if (meta.maps.length && meta.maps.some(function (m) { return isUnion(m.value); }))
|
|
148
163
|
throw notSupportedError({ method: method })("union type in map");
|
|
149
164
|
}; };
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
165
|
+
})(ProtobufFactory || (exports.ProtobufFactory = ProtobufFactory = {}));
|
|
166
|
+
var prefix = function (method) { return "Error on typia.protobuf.".concat(method, "():"); };
|
|
167
|
+
var notSupportedError = function (p) { return function (title) {
|
|
168
|
+
return new Error("".concat(prefix(p.method), ": protocol buffer does not support ").concat(title, "."));
|
|
169
|
+
}; };
|
|
170
|
+
var isAtomicKey = function (key) {
|
|
171
|
+
var e_2, _a, e_3, _b;
|
|
172
|
+
if (key.required &&
|
|
173
|
+
key.nullable === false &&
|
|
174
|
+
key.functional === false &&
|
|
175
|
+
key.resolved === null &&
|
|
176
|
+
key.size() ===
|
|
177
|
+
key.atomics.length +
|
|
178
|
+
key.constants
|
|
179
|
+
.map(function (c) { return c.values.length; })
|
|
180
|
+
.reduce(function (a, b) { return a + b; }, 0) +
|
|
181
|
+
key.templates.length) {
|
|
182
|
+
var set = new Set();
|
|
183
|
+
try {
|
|
184
|
+
for (var _c = __values(key.atomics), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
185
|
+
var atomic = _d.value;
|
|
186
|
+
set.add(atomic);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
190
|
+
finally {
|
|
163
191
|
try {
|
|
164
|
-
|
|
165
|
-
var atomic = _d.value;
|
|
166
|
-
set.add(atomic);
|
|
167
|
-
}
|
|
192
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
168
193
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
194
|
+
finally { if (e_2) throw e_2.error; }
|
|
195
|
+
}
|
|
196
|
+
try {
|
|
197
|
+
for (var _e = __values(key.constants), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
198
|
+
var constant = _f.value;
|
|
199
|
+
set.add(constant.type);
|
|
175
200
|
}
|
|
201
|
+
}
|
|
202
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
203
|
+
finally {
|
|
176
204
|
try {
|
|
177
|
-
|
|
178
|
-
var constant = _f.value;
|
|
179
|
-
set.add(constant.type);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
183
|
-
finally {
|
|
184
|
-
try {
|
|
185
|
-
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
186
|
-
}
|
|
187
|
-
finally { if (e_3) throw e_3.error; }
|
|
205
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
188
206
|
}
|
|
189
|
-
if (
|
|
190
|
-
set.add("string");
|
|
191
|
-
return set.size === 1;
|
|
207
|
+
finally { if (e_3) throw e_3.error; }
|
|
192
208
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}; };
|
|
209
|
+
if (key.templates.length)
|
|
210
|
+
set.add("string");
|
|
211
|
+
return set.size === 1;
|
|
212
|
+
}
|
|
213
|
+
return false;
|
|
214
|
+
};
|
|
200
215
|
var isDynamicObject = function (obj) {
|
|
201
216
|
return (obj.properties.length > 0 &&
|
|
202
217
|
obj.properties[0].key.isSoleLiteral() === false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProtobufFactory.js","sourceRoot":"","sources":["../../src/factories/ProtobufFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"ProtobufFactory.js","sourceRoot":"","sources":["../../src/factories/ProtobufFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -119,11 +119,11 @@ var ProtobufMessageProgrammer;
|
|
|
119
119
|
var type = decode(ptr)(prop.tags)(prop.value);
|
|
120
120
|
return type.indexOf("${name}") !== -1
|
|
121
121
|
? type.replace("${name}", key)
|
|
122
|
-
: "".concat(prop.value.arrays.length ||
|
|
122
|
+
: "".concat(prop.value.arrays.length || type.startsWith("map<")
|
|
123
123
|
? ""
|
|
124
124
|
: !prop.value.isRequired() || prop.value.nullable
|
|
125
125
|
? "optional "
|
|
126
|
-
: "required").concat(type, " ").concat(key, " = ").concat(++ptr.value, ";");
|
|
126
|
+
: "required ").concat(type, " ").concat(key, " = ").concat(++ptr.value, ";");
|
|
127
127
|
})
|
|
128
128
|
.join("\n");
|
|
129
129
|
};
|
|
@@ -207,8 +207,8 @@ var ProtobufMessageProgrammer;
|
|
|
207
207
|
? __spreadArray([], __read(elements), false)[0]
|
|
208
208
|
: __spreadArray(__spreadArray([
|
|
209
209
|
"oneof ${name} {"
|
|
210
|
-
], __read(__spreadArray([], __read(elements), false).map(function (str
|
|
211
|
-
return "".concat(TAB).concat(str, " v").concat(
|
|
210
|
+
], __read(__spreadArray([], __read(elements), false).map(function (str) {
|
|
211
|
+
return "".concat(TAB).concat(str, " v").concat(ptr.value + 1, " = ").concat(++ptr.value, ";");
|
|
212
212
|
})), false), [
|
|
213
213
|
"}",
|
|
214
214
|
], false).join("\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProtobufMessageProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/protobuf/ProtobufMessageProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,yEAAwE;AACxE,mEAAkE;AAUlE,+CAA8C;AAC9C,uDAAsD;AAEtD,IAAiB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"ProtobufMessageProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/protobuf/ProtobufMessageProgrammer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typia",
|
|
3
|
-
"version": "5.0.0-dev.
|
|
3
|
+
"version": "5.0.0-dev.20230811",
|
|
4
4
|
"description": "Superfast runtime validators with only one line",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -113,6 +113,7 @@
|
|
|
113
113
|
"jsdom": "^21.1.1",
|
|
114
114
|
"physical-cpu-count": "^2.0.0",
|
|
115
115
|
"prettier": "^2.6.2",
|
|
116
|
+
"protobufjs": "^7.2.4",
|
|
116
117
|
"reflect-metadata": "^0.1.13",
|
|
117
118
|
"rimraf": "^3.0.2",
|
|
118
119
|
"sloc": "^0.2.1",
|
|
@@ -4,6 +4,8 @@ import { Metadata } from "../schemas/metadata/Metadata";
|
|
|
4
4
|
import { MetadataObject } from "../schemas/metadata/MetadataObject";
|
|
5
5
|
import { IProtocolMessage } from "../schemas/protobuf/IProtocolMessage";
|
|
6
6
|
|
|
7
|
+
import { Escaper } from "../utils/Escaper";
|
|
8
|
+
|
|
7
9
|
import { MetadataCollection } from "./MetadataCollection";
|
|
8
10
|
import { MetadataFactory } from "./MetadataFactory";
|
|
9
11
|
import { emplace_protocol_object } from "./internal/protocols/emplace_protocol_object";
|
|
@@ -98,6 +100,20 @@ export namespace ProtobufFactory {
|
|
|
98
100
|
throw notSupportedError({ method })(
|
|
99
101
|
"object type with mixed static and dynamic key typed properties. Keep statics or dynamic only.",
|
|
100
102
|
);
|
|
103
|
+
// STATIC PROPERTY, BUT INVALID KEY NAME
|
|
104
|
+
else if (
|
|
105
|
+
meta.objects.length &&
|
|
106
|
+
meta.objects.some((obj) =>
|
|
107
|
+
obj.properties.some(
|
|
108
|
+
(p) =>
|
|
109
|
+
p.key.isSoleLiteral() &&
|
|
110
|
+
!Escaper.variable(p.key.getSoleLiteral()!),
|
|
111
|
+
),
|
|
112
|
+
)
|
|
113
|
+
)
|
|
114
|
+
throw notSupportedError({ method })(
|
|
115
|
+
`object type with invalid static key name.`,
|
|
116
|
+
);
|
|
101
117
|
// NATIVE TYPE, BUT NOT Uint8Array
|
|
102
118
|
else if (meta.natives.length) {
|
|
103
119
|
const banned = meta.natives
|
|
@@ -111,11 +127,24 @@ export namespace ProtobufFactory {
|
|
|
111
127
|
);
|
|
112
128
|
}
|
|
113
129
|
// MAP TYPE, BUT PROPERTY KEY TYPE IS NOT ATOMIC
|
|
130
|
+
else if (meta.maps.length && meta.maps.some((m) => !isAtomicKey(m.key)))
|
|
131
|
+
throw notSupportedError({ method })("");
|
|
132
|
+
// MAP TYPE, BUT VALUE TYPE IS ARRAY
|
|
114
133
|
else if (
|
|
115
134
|
meta.maps.length &&
|
|
116
|
-
meta.maps.some((m) =>
|
|
135
|
+
meta.maps.some((m) => !!m.value.arrays.length)
|
|
117
136
|
)
|
|
118
|
-
throw notSupportedError({ method })(
|
|
137
|
+
throw notSupportedError({ method })(
|
|
138
|
+
"map type with array value type",
|
|
139
|
+
);
|
|
140
|
+
else if (
|
|
141
|
+
meta.objects.length &&
|
|
142
|
+
isDynamicObject(meta.objects[0]!) &&
|
|
143
|
+
meta.objects[0]!.properties.some((p) => !!p.value.arrays.length)
|
|
144
|
+
)
|
|
145
|
+
throw notSupportedError({ method })(
|
|
146
|
+
"dynamic object with array value type",
|
|
147
|
+
);
|
|
119
148
|
//----
|
|
120
149
|
// UNION TYPES
|
|
121
150
|
//----
|
|
@@ -156,29 +185,6 @@ export namespace ProtobufFactory {
|
|
|
156
185
|
else if (meta.maps.length && meta.maps.some((m) => isUnion(m.value)))
|
|
157
186
|
throw notSupportedError({ method })("union type in map");
|
|
158
187
|
};
|
|
159
|
-
|
|
160
|
-
const is_atomic_key = (key: Metadata) => {
|
|
161
|
-
if (
|
|
162
|
-
key.required &&
|
|
163
|
-
key.nullable === false &&
|
|
164
|
-
key.functional === false &&
|
|
165
|
-
key.resolved === null &&
|
|
166
|
-
key.size() ===
|
|
167
|
-
key.atomics.length +
|
|
168
|
-
key.constants
|
|
169
|
-
.map((c) => c.values.length)
|
|
170
|
-
.reduce((a, b) => a + b, 0) +
|
|
171
|
-
key.templates.length
|
|
172
|
-
) {
|
|
173
|
-
const set: Set<string> = new Set();
|
|
174
|
-
for (const atomic of key.atomics) set.add(atomic);
|
|
175
|
-
for (const constant of key.constants) set.add(constant.type);
|
|
176
|
-
if (key.templates.length) set.add("string");
|
|
177
|
-
|
|
178
|
-
return set.size === 1;
|
|
179
|
-
}
|
|
180
|
-
return false;
|
|
181
|
-
};
|
|
182
188
|
}
|
|
183
189
|
|
|
184
190
|
const prefix = (method: string) => `Error on typia.protobuf.${method}():`;
|
|
@@ -188,6 +194,29 @@ const notSupportedError = (p: { method: string }) => (title: string) =>
|
|
|
188
194
|
`${prefix(p.method)}: protocol buffer does not support ${title}.`,
|
|
189
195
|
);
|
|
190
196
|
|
|
197
|
+
const isAtomicKey = (key: Metadata) => {
|
|
198
|
+
if (
|
|
199
|
+
key.required &&
|
|
200
|
+
key.nullable === false &&
|
|
201
|
+
key.functional === false &&
|
|
202
|
+
key.resolved === null &&
|
|
203
|
+
key.size() ===
|
|
204
|
+
key.atomics.length +
|
|
205
|
+
key.constants
|
|
206
|
+
.map((c) => c.values.length)
|
|
207
|
+
.reduce((a, b) => a + b, 0) +
|
|
208
|
+
key.templates.length
|
|
209
|
+
) {
|
|
210
|
+
const set: Set<string> = new Set();
|
|
211
|
+
for (const atomic of key.atomics) set.add(atomic);
|
|
212
|
+
for (const constant of key.constants) set.add(constant.type);
|
|
213
|
+
if (key.templates.length) set.add("string");
|
|
214
|
+
|
|
215
|
+
return set.size === 1;
|
|
216
|
+
}
|
|
217
|
+
return false;
|
|
218
|
+
};
|
|
219
|
+
|
|
191
220
|
const isDynamicObject = (obj: MetadataObject): boolean => {
|
|
192
221
|
return (
|
|
193
222
|
obj.properties.length > 0 &&
|
|
@@ -87,11 +87,11 @@ export namespace ProtobufMessageProgrammer {
|
|
|
87
87
|
return type.indexOf("${name}") !== -1
|
|
88
88
|
? type.replace("${name}", key)
|
|
89
89
|
: `${
|
|
90
|
-
prop.value.arrays.length ||
|
|
90
|
+
prop.value.arrays.length || type.startsWith("map<")
|
|
91
91
|
? ""
|
|
92
92
|
: !prop.value.isRequired() || prop.value.nullable
|
|
93
93
|
? "optional "
|
|
94
|
-
: "required"
|
|
94
|
+
: "required "
|
|
95
95
|
}${type} ${key} = ${++ptr.value};`;
|
|
96
96
|
})
|
|
97
97
|
.join("\n");
|
|
@@ -123,8 +123,10 @@ export namespace ProtobufMessageProgrammer {
|
|
|
123
123
|
: [
|
|
124
124
|
"oneof ${name} {",
|
|
125
125
|
...[...elements].map(
|
|
126
|
-
(str
|
|
127
|
-
`${TAB}${str} v${
|
|
126
|
+
(str) =>
|
|
127
|
+
`${TAB}${str} v${
|
|
128
|
+
ptr.value + 1
|
|
129
|
+
} = ${++ptr.value};`,
|
|
128
130
|
),
|
|
129
131
|
"}",
|
|
130
132
|
].join("\n");
|