typia 5.0.0-dev.20230814-2 → 5.0.0-dev.20230819

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 (77) hide show
  1. package/lib/factories/ExpressionFactory.d.ts +2 -0
  2. package/lib/factories/ExpressionFactory.js +38 -0
  3. package/lib/factories/ExpressionFactory.js.map +1 -1
  4. package/lib/factories/StatementFactory.d.ts +2 -0
  5. package/lib/factories/StatementFactory.js +11 -0
  6. package/lib/factories/StatementFactory.js.map +1 -1
  7. package/lib/functional/$ProtobufReader.d.ts +33 -0
  8. package/lib/functional/$ProtobufReader.js +155 -0
  9. package/lib/functional/$ProtobufReader.js.map +1 -0
  10. package/lib/functional/$ProtobufSizer.d.ts +36 -0
  11. package/lib/functional/$ProtobufSizer.js +105 -0
  12. package/lib/functional/$ProtobufSizer.js.map +1 -0
  13. package/lib/functional/$ProtobufWriter.d.ts +45 -0
  14. package/lib/functional/$ProtobufWriter.js +107 -0
  15. package/lib/functional/$ProtobufWriter.js.map +1 -0
  16. package/lib/functional/IProtobufWriter.d.ts +15 -0
  17. package/lib/functional/IProtobufWriter.js +3 -0
  18. package/lib/functional/IProtobufWriter.js.map +1 -0
  19. package/lib/functional/Namespace.js +13 -6
  20. package/lib/functional/Namespace.js.map +1 -1
  21. package/lib/programmers/FeatureProgrammer.js +2 -2
  22. package/lib/programmers/FeatureProgrammer.js.map +1 -1
  23. package/lib/programmers/helpers/CloneJoiner.js +1 -7
  24. package/lib/programmers/helpers/CloneJoiner.js.map +1 -1
  25. package/lib/programmers/helpers/FunctionImporeter.d.ts +2 -1
  26. package/lib/programmers/helpers/FunctionImporeter.js +12 -3
  27. package/lib/programmers/helpers/FunctionImporeter.js.map +1 -1
  28. package/lib/programmers/helpers/ProtobufWire.d.ts +16 -12
  29. package/lib/programmers/helpers/UnionExplorer.js +15 -20
  30. package/lib/programmers/helpers/UnionExplorer.js.map +1 -1
  31. package/lib/programmers/helpers/disable_function_importer_declare.js +1 -0
  32. package/lib/programmers/helpers/disable_function_importer_declare.js.map +1 -1
  33. package/lib/programmers/internal/decode_union_object.js +12 -30
  34. package/lib/programmers/internal/decode_union_object.js.map +1 -1
  35. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js +313 -130
  36. package/lib/programmers/protobuf/ProtobufEncodeProgrammer.js.map +1 -1
  37. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +8 -2
  38. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  39. package/lib/protobuf.d.ts +4 -4
  40. package/lib/protobuf.js +23 -9
  41. package/lib/protobuf.js.map +1 -1
  42. package/lib/schemas/metadata/MetadataObject.js +4 -0
  43. package/lib/schemas/metadata/MetadataObject.js.map +1 -1
  44. package/lib/transformers/CallExpressionTransformer.js +0 -4
  45. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  46. package/package.json +1 -1
  47. package/src/factories/ExpressionFactory.ts +38 -0
  48. package/src/factories/StatementFactory.ts +32 -0
  49. package/src/functional/$ProtobufReader.ts +189 -0
  50. package/src/functional/$ProtobufSizer.ts +144 -0
  51. package/src/functional/$ProtobufWriter.ts +152 -0
  52. package/src/functional/IProtobufWriter.ts +18 -0
  53. package/src/functional/Namespace.ts +14 -7
  54. package/src/programmers/FeatureProgrammer.ts +2 -2
  55. package/src/programmers/helpers/CloneJoiner.ts +1 -25
  56. package/src/programmers/helpers/FunctionImporeter.ts +15 -4
  57. package/src/programmers/helpers/ProtobufWire.ts +18 -12
  58. package/src/programmers/helpers/UnionExplorer.ts +25 -20
  59. package/src/programmers/helpers/disable_function_importer_declare.ts +1 -0
  60. package/src/programmers/internal/decode_union_object.ts +17 -6
  61. package/src/programmers/protobuf/ProtobufEncodeProgrammer.ts +653 -209
  62. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +4 -1
  63. package/src/protobuf.ts +33 -33
  64. package/src/schemas/metadata/MetadataObject.ts +10 -0
  65. package/src/transformers/CallExpressionTransformer.ts +0 -4
  66. package/lib/programmers/protobuf/ProtobufSizeProgrammer.d.ts +0 -5
  67. package/lib/programmers/protobuf/ProtobufSizeProgrammer.js +0 -409
  68. package/lib/programmers/protobuf/ProtobufSizeProgrammer.js.map +0 -1
  69. package/lib/transformers/features/protobuf/CreateProtobufSizeTransformer.d.ts +0 -3
  70. package/lib/transformers/features/protobuf/CreateProtobufSizeTransformer.js +0 -10
  71. package/lib/transformers/features/protobuf/CreateProtobufSizeTransformer.js.map +0 -1
  72. package/lib/transformers/features/protobuf/ProtobufSizeTransformer.d.ts +0 -3
  73. package/lib/transformers/features/protobuf/ProtobufSizeTransformer.js +0 -10
  74. package/lib/transformers/features/protobuf/ProtobufSizeTransformer.js.map +0 -1
  75. package/src/programmers/protobuf/ProtobufSizeProgrammer.ts +0 -716
  76. package/src/transformers/features/protobuf/CreateProtobufSizeTransformer.ts +0 -9
  77. package/src/transformers/features/protobuf/ProtobufSizeTransformer.ts +0 -9
@@ -41,6 +41,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
42
  exports.ProtobufEncodeProgrammer = void 0;
43
43
  var typescript_1 = __importDefault(require("typescript"));
44
+ var ExpressionFactory_1 = require("../../factories/ExpressionFactory");
44
45
  var IdentifierFactory_1 = require("../../factories/IdentifierFactory");
45
46
  var MetadataCollection_1 = require("../../factories/MetadataCollection");
46
47
  var ProtobufFactory_1 = require("../../factories/ProtobufFactory");
@@ -51,6 +52,8 @@ var IsProgrammer_1 = require("../IsProgrammer");
51
52
  var FunctionImporeter_1 = require("../helpers/FunctionImporeter");
52
53
  var ProtobufUtil_1 = require("../helpers/ProtobufUtil");
53
54
  var UnionExplorer_1 = require("../helpers/UnionExplorer");
55
+ var UnionPredicator_1 = require("../helpers/UnionPredicator");
56
+ var decode_union_object_1 = require("../internal/decode_union_object");
54
57
  var ProtobufEncodeProgrammer;
55
58
  (function (ProtobufEncodeProgrammer) {
56
59
  ProtobufEncodeProgrammer.write = function (project) {
@@ -59,144 +62,270 @@ var ProtobufEncodeProgrammer;
59
62
  var importer = new FunctionImporeter_1.FunctionImporter();
60
63
  var collection = new MetadataCollection_1.MetadataCollection();
61
64
  var meta = ProtobufFactory_1.ProtobufFactory.metadata(modulo.getText())(project.checker)(collection)(type);
62
- meta;
63
- write_object_function_body;
64
- write_map_function_body;
65
- explore_objects;
66
- explore_arrays;
65
+ var callEncoder = function (writer) { return function (factory) {
66
+ return StatementFactory_1.StatementFactory.constant(writer, typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("encoder"), undefined, [factory]));
67
+ }; };
67
68
  var block = [
68
- StatementFactory_1.StatementFactory.constant("writer", typescript_1.default.factory.createNewExpression(importer.use("Writer"), undefined, undefined)),
69
- typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(WRITER())("finish"), undefined, undefined)),
69
+ StatementFactory_1.StatementFactory.constant("encoder", write_encoder(project)(importer)(collection)(meta)),
70
+ callEncoder("sizer")(typescript_1.default.factory.createNewExpression(importer.use("Sizer"), undefined, [])),
71
+ callEncoder("writer")(typescript_1.default.factory.createNewExpression(importer.use("Writer"), undefined, [typescript_1.default.factory.createIdentifier("sizer")])),
72
+ typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(WRITER())("buffer"), undefined, undefined)),
70
73
  ];
71
74
  return typescript_1.default.factory.createArrowFunction(undefined, undefined, [
72
75
  IdentifierFactory_1.IdentifierFactory.parameter("input", typescript_1.default.factory.createTypeReferenceNode(name !== null && name !== void 0 ? name : TypeFactory_1.TypeFactory.getFullName(project.checker)(type))),
73
- ], typescript_1.default.factory.createTypeReferenceNode("Uint8Array"), undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(importer.declare(modulo)), false), __read(block), false), true));
76
+ ], typescript_1.default.factory.createTypeReferenceNode("Uint8Array"), undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(importer.declare(modulo, false)), false), __read(block), false), true));
74
77
  };
75
78
  };
76
79
  };
77
- var write_object_function_body = function (project) {
78
- return function (config) {
79
- return function (importer) {
80
- return function (input, obj, explore, tags) {
81
- var top = obj.properties[0];
82
- if (top.key.isSoleLiteral() === false)
83
- return write_map_function_body(project)(config)(importer)(input, top, explore, tags);
84
- var index = 1;
85
- return typescript_1.default.factory.createBlock(obj.properties
86
- .map(function (property) {
87
- var statements = decode(project)(config)(importer)(index)(input, property.value, explore, property.tags).statements;
88
- index += property.value.binarySize();
89
- return statements;
90
- })
91
- .flat(), true);
80
+ var write_encoder = function (project) {
81
+ return function (importer) {
82
+ return function (collection) {
83
+ return function (meta) {
84
+ var functors = collection
85
+ .objects()
86
+ .filter(function (obj) { return obj._Messagable(); })
87
+ .map(function (obj) {
88
+ return StatementFactory_1.StatementFactory.constant("".concat(PREFIX, "o").concat(obj.index), write_object_function(project)(importer)(typescript_1.default.factory.createIdentifier("input"), obj, {
89
+ source: "function",
90
+ from: "object",
91
+ tracable: false,
92
+ postfix: "",
93
+ }));
94
+ });
95
+ var main = decode(project)(importer)(null)(typescript_1.default.factory.createIdentifier("input"), meta, {
96
+ source: "top",
97
+ from: "top",
98
+ tracable: false,
99
+ postfix: "",
100
+ }, []);
101
+ return typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("writer")], TypeFactory_1.TypeFactory.keyword("any"), undefined, typescript_1.default.factory.createBlock(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(importer.declareUnions()), false), __read(functors), false), __read(IsProgrammer_1.IsProgrammer.write_function_statements(project)(importer)(collection)), false), __read(main.statements), false), [
102
+ typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createIdentifier("writer")),
103
+ ], false), true));
92
104
  };
93
105
  };
94
106
  };
95
107
  };
96
- var write_map_function_body = function (project) {
97
- return function (config) {
98
- return function (importer) {
99
- return function (input, entry, explore, tags) {
100
- project;
101
- config;
102
- importer;
103
- input;
104
- entry;
105
- explore;
106
- tags;
107
- return typescript_1.default.factory.createBlock([], true);
108
- };
108
+ var write_object_function = function (project) {
109
+ return function (importer) {
110
+ return function (input, obj, explore) {
111
+ var index = 1;
112
+ var body = obj.properties
113
+ .map(function (p) {
114
+ var block = decode(project)(importer)(index)(IdentifierFactory_1.IdentifierFactory.access(input)(p.key.getSoleLiteral()), p.value, explore, p.tags);
115
+ index += p.value.binarySize();
116
+ return __spreadArray([
117
+ typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createIdentifier("// property \"".concat(p.key.getSoleLiteral(), "\"")))
118
+ ], __read(block.statements), false);
119
+ })
120
+ .flat();
121
+ return typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("input")], TypeFactory_1.TypeFactory.keyword("any"), undefined, typescript_1.default.factory.createBlock(body, true));
109
122
  };
110
123
  };
111
124
  };
112
125
  var decode = function (project) {
113
- return function (config) {
114
- return function (importer) {
115
- return function (index) {
116
- return function (input, meta, explore, tags) {
117
- var unions = ProtobufUtil_1.ProtobufUtil.atomics(meta).map(function (type) { return ({
118
- type: type,
119
- wire: function () { return null; },
126
+ return function (importer) {
127
+ return function (index) {
128
+ return function (input, meta, explore, tags) {
129
+ var wrapper = meta.isRequired() && meta.nullable === false
130
+ ? function (block) { return block; }
131
+ : meta.isRequired() === false && meta.nullable === false
132
+ ? function (block) {
133
+ return typescript_1.default.factory.createBlock([
134
+ typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createLogicalAnd(typescript_1.default.factory.createInequality(typescript_1.default.factory.createIdentifier("undefined"), input), typescript_1.default.factory.createInequality(typescript_1.default.factory.createNull(), input)), block),
135
+ ], true);
136
+ }
137
+ : meta.isRequired() === false
138
+ ? function (block) {
139
+ return typescript_1.default.factory.createBlock([
140
+ typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createInequality(typescript_1.default.factory.createIdentifier("undefined"), input), block),
141
+ ], true);
142
+ }
143
+ : function (block) {
144
+ return typescript_1.default.factory.createBlock([
145
+ typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createInequality(typescript_1.default.factory.createNull(), input), block),
146
+ ], true);
147
+ };
148
+ var unions = ProtobufUtil_1.ProtobufUtil.atomics(meta).map(function (type) { return ({
149
+ type: type,
150
+ wire: function () { return null; },
151
+ is: function () {
152
+ return typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral(type), typescript_1.default.factory.createTypeOfExpression(input));
153
+ },
154
+ value: function (index) { return decode_atomic(index)(input, type, tags); },
155
+ }); });
156
+ if (meta.natives.length)
157
+ unions.push({
158
+ type: "bytes",
120
159
  is: function () {
121
- return typescript_1.default.factory.createStrictEquality(typescript_1.default.factory.createStringLiteral(type), typescript_1.default.factory.createTypeOfExpression(input));
160
+ return ExpressionFactory_1.ExpressionFactory.isInstanceOf("Uint8Array")(input);
161
+ },
162
+ value: function (index) { return decode_bytes("bytes")(index)(input); },
163
+ });
164
+ if (meta.maps.length)
165
+ unions.push({
166
+ type: "map",
167
+ is: function () { return ExpressionFactory_1.ExpressionFactory.isInstanceOf("Map")(input); },
168
+ value: function (index) {
169
+ return decode_map(project)(importer)(index)(input, meta.maps[0], __assign(__assign({}, explore), { from: "array" }), tags);
170
+ },
171
+ });
172
+ if (meta.arrays.length)
173
+ unions.push({
174
+ type: "array",
175
+ is: function () { return ExpressionFactory_1.ExpressionFactory.isArray(input); },
176
+ value: function (index) {
177
+ return explore_arrays(project)(importer)(index)(input, meta.arrays, __assign(__assign({}, explore), { from: "array" }), tags);
178
+ },
179
+ });
180
+ if (meta.objects.length)
181
+ unions.push({
182
+ type: "object",
183
+ is: function () {
184
+ return ExpressionFactory_1.ExpressionFactory.isObject({
185
+ checkNull: true,
186
+ checkArray: false,
187
+ })(input);
188
+ },
189
+ value: function (index) {
190
+ return explore_objects(project)(importer)(0)(index)(input, meta.objects, __assign(__assign({}, explore), { from: "object" }), tags);
122
191
  },
123
- value: function () { return decode_atomic(input, type, tags); },
124
- }); });
125
- project;
126
- config;
127
- importer;
128
- index;
129
- explore;
130
- unions;
131
- return typescript_1.default.factory.createBlock([]);
192
+ });
193
+ if (unions.length === 1)
194
+ return wrapper(unions[0].value(index));
195
+ else
196
+ return wrapper(iterate(importer)(index)(unions)(meta.getName())(input));
197
+ };
198
+ };
199
+ };
200
+ };
201
+ var iterate = function (importer) {
202
+ return function (index) {
203
+ return function (unions) {
204
+ return function (expected) {
205
+ return function (input) {
206
+ return typescript_1.default.factory.createBlock([
207
+ unions
208
+ .map(function (u, i) {
209
+ return typescript_1.default.factory.createIfStatement(u.is(), u.value(index ? index + i : null), i === unions.length - 1
210
+ ? create_throw_error(importer)(expected)(input)
211
+ : undefined);
212
+ })
213
+ .reverse()
214
+ .reduce(function (a, b) {
215
+ return typescript_1.default.factory.createIfStatement(b.expression, b.thenStatement, a);
216
+ }),
217
+ ], true);
132
218
  };
133
219
  };
134
220
  };
135
221
  };
136
222
  };
223
+ var decode_map = function (project) {
224
+ return function (importer) {
225
+ return function (index) {
226
+ return function (input, map, explore, tags) {
227
+ var each = __spreadArray(__spreadArray(__spreadArray([
228
+ typescript_1.default.factory.createExpressionStatement(decode_tag(2)(index)),
229
+ typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(WRITER())("fork"), undefined, undefined))
230
+ ], __read(decode(project)(importer)(1)(typescript_1.default.factory.createIdentifier("key"), map.key, explore, []).statements), false), __read(decode(project)(importer)(2)(typescript_1.default.factory.createIdentifier("value"), map.value, explore, tags).statements), false), [
231
+ typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(WRITER())("ldelim"), undefined, undefined)),
232
+ ], false);
233
+ return typescript_1.default.factory.createBlock([
234
+ typescript_1.default.factory.createForOfStatement(undefined, StatementFactory_1.StatementFactory.entry("key")("value"), input, typescript_1.default.factory.createBlock(each)),
235
+ ], true);
236
+ };
237
+ };
238
+ };
239
+ };
137
240
  var decode_object = function (project) {
138
- return function (config) {
139
- return function (importer) {
140
- return function (input, object, explore) {
141
- project;
142
- config;
143
- importer;
144
- input;
145
- object;
146
- explore;
147
- return typescript_1.default.factory.createBlock([].map(function (exp) { return typescript_1.default.factory.createExpressionStatement(exp); }), true);
241
+ return function (importer) {
242
+ return function (index) {
243
+ return function (input, object, explore, tags) {
244
+ var top = object.properties[0];
245
+ if (top.key.isSoleLiteral() === false)
246
+ return decode_map(project)(importer)(index)(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("Object.entries"), [], [input]), top, explore, tags);
247
+ return typescript_1.default.factory.createBlock(__spreadArray(__spreadArray(__spreadArray([], __read((index !== null
248
+ ? [
249
+ decode_tag(2)(index),
250
+ typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(WRITER())("fork"), undefined, undefined),
251
+ ]
252
+ : [])), false), [
253
+ typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("".concat(PREFIX, "o").concat(object.index)), [], [input])
254
+ ], false), __read((index !== null
255
+ ? [
256
+ typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(WRITER())("ldelim"), undefined, undefined),
257
+ ]
258
+ : [])), false).map(function (expr) { return typescript_1.default.factory.createExpressionStatement(expr); }), true);
148
259
  };
149
260
  };
150
261
  };
151
262
  };
152
263
  var decode_array = function (project) {
153
- return function (config) {
154
- return function (importer) {
155
- return function (index) {
156
- return function (input, array, explore, tags) {
157
- return typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read((index !== null
158
- ? [
159
- typescript_1.default.factory.createExpressionStatement(decode_tag(2)(index)),
160
- ]
161
- : [])), false), [
162
- typescript_1.default.factory.createForOfStatement(undefined, typescript_1.default.factory.createVariableDeclarationList([typescript_1.default.factory.createVariableDeclaration("elem")], undefined), input, decode(project)(config)(importer)(index)(typescript_1.default.factory.createIdentifier("elem"), array.value, explore, tags)),
163
- ], false), true);
264
+ return function (importer) {
265
+ return function (index) {
266
+ return function (input, array, explore, tags) {
267
+ var wire = get_standalone_wire(array.value, tags);
268
+ var forLoop = function (index) {
269
+ return typescript_1.default.factory.createForOfStatement(undefined, typescript_1.default.factory.createVariableDeclarationList([typescript_1.default.factory.createVariableDeclaration("elem")], typescript_1.default.NodeFlags.Const), input, decode(project)(importer)(index)(typescript_1.default.factory.createIdentifier("elem"), array.value, explore, tags));
164
270
  };
271
+ var length = function (block) {
272
+ return typescript_1.default.factory.createBlock([
273
+ typescript_1.default.factory.createIfStatement(typescript_1.default.factory.createStrictInequality(typescript_1.default.factory.createNumericLiteral(0), IdentifierFactory_1.IdentifierFactory.access(input)("length")), block),
274
+ ], true);
275
+ };
276
+ if (wire === 2)
277
+ return length(typescript_1.default.factory.createBlock([forLoop(index)], true));
278
+ return length(typescript_1.default.factory.createBlock([
279
+ typescript_1.default.factory.createExpressionStatement(decode_tag(2)(index)),
280
+ typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(WRITER())("fork"), undefined, undefined)),
281
+ forLoop(null),
282
+ typescript_1.default.factory.createExpressionStatement(typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(WRITER())("ldelim"), undefined, undefined)),
283
+ ], true));
165
284
  };
166
285
  };
167
286
  };
168
287
  };
169
- var decode_atomic = function (input, atomic, tags) {
170
- if (atomic === "string")
171
- return decode_bytes("string")(input);
172
- var out = function (method) {
173
- return typescript_1.default.factory.createBlock([
174
- typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(WRITER())(method), undefined, [input]),
175
- ].map(function (exp) { return typescript_1.default.factory.createExpressionStatement(exp); }), true);
288
+ var decode_atomic = function (index) {
289
+ return function (input, atomic, tags) {
290
+ if (atomic === "string")
291
+ return decode_bytes("string")(index)(input);
292
+ var out = function (wire) {
293
+ return function (method) {
294
+ return typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read((index !== null
295
+ ? [decode_tag(wire)(index)]
296
+ : [])), false), [
297
+ typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(WRITER())(method), undefined, [input]),
298
+ ], false).map(function (exp) {
299
+ return typescript_1.default.factory.createExpressionStatement(exp);
300
+ }), true);
301
+ };
302
+ };
303
+ if (atomic === "boolean")
304
+ return out(0)("bool");
305
+ var type = tags.find(function (tag) { return tag.kind === "type"; });
306
+ if (atomic === "bigint")
307
+ return out(0)((type === null || type === void 0 ? void 0 : type.value) === "uint64" ? "uint64" : "int64");
308
+ else if (type === undefined || (type === null || type === void 0 ? void 0 : type.value) === "double")
309
+ return out(1)("double");
310
+ else if (type.value === "float")
311
+ return out(5)("float");
312
+ return out(0)(type.value === "uint32" || type.value === "uint"
313
+ ? "uint32"
314
+ : type.value === "int32" || type.value === "int"
315
+ ? "int32"
316
+ : type.value === "int64"
317
+ ? "int64"
318
+ : "uint64");
176
319
  };
177
- if (atomic === "boolean")
178
- return out("bool");
179
- var type = tags.find(function (tag) { return tag.kind === "type"; });
180
- if (atomic === "bigint")
181
- return out((type === null || type === void 0 ? void 0 : type.value) === "uint64" ? "uint64" : "int64");
182
- else if (type === undefined || (type === null || type === void 0 ? void 0 : type.value) === "double")
183
- return out("double");
184
- else if (type.value === "float")
185
- return out("float");
186
- return out(type.value === "uint32" || type.value === "uint"
187
- ? "uint32"
188
- : type.value === "int32" || type.value === "int"
189
- ? "int32"
190
- : type.value === "int64"
191
- ? "int64"
192
- : "uint64");
193
320
  };
194
321
  var decode_bytes = function (method) {
195
- return function (input) {
196
- return typescript_1.default.factory.createBlock([
197
- typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(WRITER())("uint32"), undefined, [IdentifierFactory_1.IdentifierFactory.access(input)("length")]),
198
- typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(WRITER())(method), undefined, [input]),
199
- ].map(function (expr) { return typescript_1.default.factory.createExpressionStatement(expr); }), true);
322
+ return function (index) {
323
+ return function (input) {
324
+ return typescript_1.default.factory.createBlock([
325
+ decode_tag(2)(index),
326
+ typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(WRITER())(method), undefined, [input]),
327
+ ].map(function (expr) { return typescript_1.default.factory.createExpressionStatement(expr); }), true);
328
+ };
200
329
  };
201
330
  };
202
331
  var decode_tag = function (wire) {
@@ -204,26 +333,78 @@ var ProtobufEncodeProgrammer;
204
333
  return typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(WRITER())("uint32"), undefined, [typescript_1.default.factory.createNumericLiteral((index << 3) | wire)]);
205
334
  };
206
335
  };
336
+ var get_standalone_wire = function (meta, tags) {
337
+ if (meta.arrays.length ||
338
+ meta.objects.length ||
339
+ meta.maps.length ||
340
+ meta.natives.length)
341
+ return 2;
342
+ var v = ProtobufUtil_1.ProtobufUtil.atomics(meta)[0];
343
+ if (v === "string")
344
+ return 2;
345
+ else if (v === "boolean" || v === "bigint")
346
+ return 0;
347
+ var type = tags.find(function (t) { return t.kind === "type"; });
348
+ if (type === undefined)
349
+ return 1;
350
+ else if (type.value === "float")
351
+ return 5;
352
+ return 0;
353
+ };
207
354
  var explore_objects = function (project) {
208
- return function (config) {
209
- return function (importer) {
210
- return function (input, meta, explore) {
211
- return meta.objects.length === 1
212
- ? decode_object(project)(config)(importer)(input, meta.objects[0], explore)
213
- : typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.useLocal("".concat(config.prefix, "u").concat(meta.union_index))), undefined, FeatureProgrammer_1.FeatureProgrammer.argumentsArray(config)(explore)(input));
355
+ return function (importer) {
356
+ return function (level) {
357
+ return function (index) {
358
+ return function (input, targets, explore, tags) {
359
+ if (targets.length === 1)
360
+ return decode_object(project)(importer)(index)(input, targets[0], explore, tags);
361
+ var expected = "(".concat(targets
362
+ .map(function (t) { return t.name; })
363
+ .join(" | "), ")");
364
+ var specList = UnionPredicator_1.UnionPredicator.object(targets);
365
+ if (specList.length === 0) {
366
+ var condition_1 = (0, decode_union_object_1.decode_union_object)(IsProgrammer_1.IsProgrammer.decode_object(importer))(function (i, o, e) {
367
+ return ExpressionFactory_1.ExpressionFactory.selfCall(decode_object(project)(importer)(index)(i, o, e, tags));
368
+ })(function (expr) { return expr; })(function (value, expected) {
369
+ return create_throw_error(importer)(expected)(value);
370
+ })(input, targets, explore);
371
+ return StatementFactory_1.StatementFactory.block(condition_1);
372
+ }
373
+ var remained = targets.filter(function (t) { return specList.find(function (s) { return s.object === t; }) === undefined; });
374
+ var condition = specList
375
+ .filter(function (spec) { return spec.property.key.getSoleLiteral() !== null; })
376
+ .map(function (spec, i, array) {
377
+ var key = spec.property.key.getSoleLiteral();
378
+ var accessor = IdentifierFactory_1.IdentifierFactory.access(input)(key);
379
+ var pred = spec.neighbour
380
+ ? IsProgrammer_1.IsProgrammer.decode(project)(importer)(accessor, spec.property.value, __assign(__assign({}, explore), { tracable: false, postfix: IdentifierFactory_1.IdentifierFactory.postfix(key) }), tags, [])
381
+ : ExpressionFactory_1.ExpressionFactory.isRequired(accessor);
382
+ return typescript_1.default.factory.createIfStatement(pred, typescript_1.default.factory.createReturnStatement(ExpressionFactory_1.ExpressionFactory.selfCall(decode_object(project)(importer)(index)(input, spec.object, explore, tags))), i === array.length - 1
383
+ ? remained.length
384
+ ? typescript_1.default.factory.createReturnStatement(ExpressionFactory_1.ExpressionFactory.selfCall(explore_objects(project)(importer)(level + 1)(index)(input, remained, explore, tags)))
385
+ : create_throw_error(importer)(expected)(input)
386
+ : undefined);
387
+ })
388
+ .reverse()
389
+ .reduce(function (a, b) {
390
+ return typescript_1.default.factory.createIfStatement(b.expression, b.thenStatement, a);
391
+ });
392
+ return typescript_1.default.factory.createBlock([condition], true);
393
+ };
214
394
  };
215
395
  };
216
396
  };
217
397
  };
218
398
  var explore_arrays = function (project) {
219
- return function (config) {
220
- return function (importer) {
221
- return function (index) {
222
- return function (input, elements, explore, tags) {
223
- return explore_array_like_union_types(config)(importer)(UnionExplorer_1.UnionExplorer.array({
399
+ return function (importer) {
400
+ return function (index) {
401
+ return function (input, elements, explore, tags) {
402
+ return elements.length === 1
403
+ ? decode_array(project)(importer)(index)(input, elements[0], explore, tags)
404
+ : explore_array_like_union_types(importer)(UnionExplorer_1.UnionExplorer.array({
224
405
  checker: IsProgrammer_1.IsProgrammer.decode(project)(importer),
225
406
  decoder: function (input, target, explore, tags) {
226
- return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createArrowFunction(undefined, undefined, [], undefined, undefined, decode_array(project)(config)(importer)(index)(input, target, explore, tags)), undefined, undefined);
407
+ return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createArrowFunction(undefined, undefined, [], undefined, undefined, decode_array(project)(importer)(index)(input, target, explore, tags)), undefined, undefined);
227
408
  },
228
409
  empty: typescript_1.default.factory.createStringLiteral("[]"),
229
410
  success: typescript_1.default.factory.createTrue(),
@@ -231,32 +412,34 @@ var ProtobufEncodeProgrammer;
231
412
  return create_throw_error(importer)(expected)(input);
232
413
  },
233
414
  }))(input, elements, explore, tags);
234
- };
235
415
  };
236
416
  };
237
417
  };
238
418
  };
239
- var explore_array_like_union_types = function (config) {
240
- return function (importer) {
241
- return function (factory) {
242
- return function (input, elements, explore, tags) {
243
- var arrow = function (parameters) {
244
- return function (explore) {
245
- return function (input) {
246
- return factory(parameters)(input, elements, explore, tags, []);
247
- };
419
+ var explore_array_like_union_types = function (importer) {
420
+ return function (factory) {
421
+ return function (input, elements, explore, tags) {
422
+ var arrow = function (parameters) {
423
+ return function (explore) {
424
+ return function (input) {
425
+ return factory(parameters)(input, elements, explore, tags, []);
248
426
  };
249
427
  };
250
- if (elements.every(function (e) { return e.recursive === false; }))
251
- typescript_1.default.factory.createCallExpression(arrow([])(explore)(input), undefined, []);
252
- explore = __assign(__assign({}, explore), { source: "function", from: "array" });
253
- return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.emplaceUnion(config.prefix, elements.map(function (e) { return e.name; }).join(" | "), function () {
254
- return arrow(FeatureProgrammer_1.FeatureProgrammer.parameterDeclarations(config)(TypeFactory_1.TypeFactory.keyword("any"))(typescript_1.default.factory.createIdentifier("input")))(__assign(__assign({}, explore), { postfix: "" }))(typescript_1.default.factory.createIdentifier("input"));
255
- })), undefined, FeatureProgrammer_1.FeatureProgrammer.argumentsArray(config)(explore)(input));
256
428
  };
429
+ if (elements.every(function (e) { return e.recursive === false; }))
430
+ return StatementFactory_1.StatementFactory.block(typescript_1.default.factory.createCallExpression(arrow([])(explore)(input), undefined, []));
431
+ explore = __assign(__assign({}, explore), { source: "function", from: "array" });
432
+ return StatementFactory_1.StatementFactory.block(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier(importer.emplaceUnion(PREFIX, elements.map(function (e) { return e.name; }).join(" | "), function () {
433
+ return arrow(FeatureProgrammer_1.FeatureProgrammer.parameterDeclarations(CONFIG)(TypeFactory_1.TypeFactory.keyword("any"))(typescript_1.default.factory.createIdentifier("input")))(__assign(__assign({}, explore), { postfix: "" }))(typescript_1.default.factory.createIdentifier("input"));
434
+ })), undefined, FeatureProgrammer_1.FeatureProgrammer.argumentsArray(CONFIG)(explore)(input)));
257
435
  };
258
436
  };
259
437
  };
438
+ var PREFIX = "$pe";
439
+ var CONFIG = {
440
+ path: false,
441
+ trace: false,
442
+ };
260
443
  var create_throw_error = function (importer) {
261
444
  return function (expected) {
262
445
  return function (value) {
@@ -1 +1 @@
1
- {"version":3,"file":"ProtobufEncodeProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/protobuf/ProtobufEncodeProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProtobufEncodeProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/protobuf/ProtobufEncodeProgrammer.ts"],"names":[],"mappings":"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"}