typia 5.0.0-dev.20230808 → 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.
@@ -2,7 +2,7 @@ import ts from "typescript";
2
2
  import { Metadata } from "../schemas/metadata/Metadata";
3
3
  import { IProtocolMessage } from "../schemas/protobuf/IProtocolMessage";
4
4
  import { MetadataCollection } from "./MetadataCollection";
5
- export declare namespace ProtocolFactory {
6
- const metadata: (checker: ts.TypeChecker) => (collection: MetadataCollection) => (type: ts.Type) => Metadata;
5
+ export declare namespace ProtobufFactory {
6
+ const metadata: (method: string) => (checker: ts.TypeChecker) => (collection: MetadataCollection) => (type: ts.Type) => Metadata;
7
7
  const analyze: (collection: MetadataCollection) => (dict: Map<string, IProtocolMessage>) => (meta: Metadata) => void;
8
8
  }
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+ var __values = (this && this.__values) || function(o) {
3
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
+ if (m) return m.call(o);
5
+ if (o && typeof o.length === "number") return {
6
+ next: function () {
7
+ if (o && i >= o.length) o = void 0;
8
+ return { value: o && o[i++], done: !o };
9
+ }
10
+ };
11
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
+ };
13
+ var __read = (this && this.__read) || function (o, n) {
14
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
15
+ if (!m) return o;
16
+ var i = m.call(o), r, ar = [], e;
17
+ try {
18
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
+ }
20
+ catch (error) { e = { error: error }; }
21
+ finally {
22
+ try {
23
+ if (r && !r.done && (m = i["return"])) m.call(i);
24
+ }
25
+ finally { if (e) throw e.error; }
26
+ }
27
+ return ar;
28
+ };
29
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
30
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
31
+ if (ar || !(i in from)) {
32
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
33
+ ar[i] = from[i];
34
+ }
35
+ }
36
+ return to.concat(ar || Array.prototype.slice.call(from));
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.ProtobufFactory = void 0;
40
+ var Escaper_1 = require("../utils/Escaper");
41
+ var MetadataFactory_1 = require("./MetadataFactory");
42
+ var emplace_protocol_object_1 = require("./internal/protocols/emplace_protocol_object");
43
+ var iterate_protocol_main_1 = require("./internal/protocols/iterate_protocol_main");
44
+ var ProtobufFactory;
45
+ (function (ProtobufFactory) {
46
+ ProtobufFactory.metadata = function (method) {
47
+ return function (checker) {
48
+ return function (collection) {
49
+ return function (type) {
50
+ var top = MetadataFactory_1.MetadataFactory.analyze(checker)({
51
+ resolve: false,
52
+ constant: true,
53
+ absorb: true,
54
+ validate: validate(method),
55
+ })(collection)(type);
56
+ var onlyObject = top.size() === 1 &&
57
+ top.objects.length === 1 &&
58
+ top.objects[0].properties.every(function (p) {
59
+ return p.key.isSoleLiteral();
60
+ }) &&
61
+ top.isRequired() === true &&
62
+ top.nullable === false;
63
+ if (onlyObject === false)
64
+ throw new Error("".concat(prefix(method), " target type must be a sole and static object."));
65
+ return top;
66
+ };
67
+ };
68
+ };
69
+ };
70
+ ProtobufFactory.analyze = function (collection) {
71
+ return function (dict) {
72
+ return function (meta) {
73
+ var e_1, _a;
74
+ try {
75
+ for (var _b = __values(collection.objects()), _c = _b.next(); !_c.done; _c = _b.next()) {
76
+ var obj = _c.value;
77
+ (0, emplace_protocol_object_1.emplace_protocol_object)(dict)(obj);
78
+ }
79
+ }
80
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
81
+ finally {
82
+ try {
83
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
84
+ }
85
+ finally { if (e_1) throw e_1.error; }
86
+ }
87
+ (0, iterate_protocol_main_1.iterate_protocol_main)(dict)(meta);
88
+ };
89
+ };
90
+ };
91
+ var validate = function (method) { return function (meta) {
92
+ if (meta.any)
93
+ throw notSupportedError({ method: method })("any type");
94
+ else if (meta.functional)
95
+ throw notSupportedError({ method: method })("functional type");
96
+ else if (meta.tuples.length)
97
+ throw notSupportedError({ method: method })("tuple type");
98
+ else if (meta.sets.length)
99
+ throw notSupportedError({ method: method })("Set type");
100
+ else if (meta.arrays.length &&
101
+ meta.arrays.some(function (array) { return !!array.value.arrays.length; }))
102
+ throw notSupportedError({ method: method })("two dimenstional array type");
103
+ else if (meta.objects.length &&
104
+ meta.objects.some(function (obj) {
105
+ return obj.properties.filter(function (p) { return !p.key.isSoleLiteral(); })
106
+ .length > 1;
107
+ }))
108
+ throw notSupportedError({ method: method })("object type with multiple dynamic key typed properties. Keep only one.");
109
+ else if (meta.objects.length &&
110
+ meta.objects.some(function (obj) {
111
+ return obj.properties.length &&
112
+ obj.properties.some(function (p) { return p.key.isSoleLiteral(); }) &&
113
+ obj.properties.some(function (p) { return !p.key.isSoleLiteral(); });
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.");
124
+ else if (meta.natives.length) {
125
+ var banned = meta.natives
126
+ .map(function (n) { return [n, BANNED_NATIVE_TYPES.get(n)]; })
127
+ .filter(function (_a) {
128
+ var _b = __read(_a, 2), _n = _b[0], b = _b[1];
129
+ return b !== undefined;
130
+ })[0];
131
+ if (banned !== undefined)
132
+ throw notSupportedError({ method: method })(banned[1] === null
133
+ ? banned[0]
134
+ : "".concat(banned[0], ". Use ").concat(banned[1], " instead."));
135
+ }
136
+ else if (meta.maps.length && meta.maps.some(function (m) { return !isAtomicKey(m.key); }))
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");
145
+ else if (meta.arrays.length &&
146
+ meta.arrays.some(function (a) { return a.value.size() > 1; }))
147
+ throw notSupportedError({ method: method })("union type in array");
148
+ else if (meta.size() > 1 && meta.arrays.length)
149
+ throw notSupportedError({ method: method })("union type with array type");
150
+ else if (meta.size() > 1 &&
151
+ meta.objects.length &&
152
+ isDynamicObject(meta.objects[0]))
153
+ throw notSupportedError({ method: method })("union type with dynamic object type");
154
+ else if (meta.objects.length &&
155
+ meta.objects.some(function (obj) {
156
+ return isDynamicObject(obj) &&
157
+ obj.properties.some(function (p) { return isUnion(p.value); });
158
+ }))
159
+ throw notSupportedError({ method: method })("union type in dynamic property");
160
+ else if (meta.size() > 1 && meta.maps.length)
161
+ throw notSupportedError({ method: method })("union type with map type");
162
+ else if (meta.maps.length && meta.maps.some(function (m) { return isUnion(m.value); }))
163
+ throw notSupportedError({ method: method })("union type in map");
164
+ }; };
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 {
191
+ try {
192
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
193
+ }
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);
200
+ }
201
+ }
202
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
203
+ finally {
204
+ try {
205
+ if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
206
+ }
207
+ finally { if (e_3) throw e_3.error; }
208
+ }
209
+ if (key.templates.length)
210
+ set.add("string");
211
+ return set.size === 1;
212
+ }
213
+ return false;
214
+ };
215
+ var isDynamicObject = function (obj) {
216
+ return (obj.properties.length > 0 &&
217
+ obj.properties[0].key.isSoleLiteral() === false);
218
+ };
219
+ var isUnion = function (meta) {
220
+ var count = new Set(__spreadArray(__spreadArray(__spreadArray([], __read(meta.atomics), false), __read(meta.constants.map(function (c) { return c.type; })), false), __read((meta.templates.length ? ["string"] : [])), false)).size +
221
+ meta.arrays.length +
222
+ meta.tuples.length +
223
+ meta.natives.length +
224
+ meta.objects.length +
225
+ meta.maps.length;
226
+ return count > 1;
227
+ };
228
+ var BANNED_NATIVE_TYPES = new Map(__spreadArray([
229
+ ["Date", "string"],
230
+ ["Boolean", "boolean"],
231
+ ["BigInt", "bigint"],
232
+ ["Number", "number"],
233
+ ["String", "string"]
234
+ ], __read([
235
+ "Buffer",
236
+ "Uint8ClampedArray",
237
+ "Uint16Array",
238
+ "Uint32Array",
239
+ "BigUint64Array",
240
+ "Int8Array",
241
+ "Int16Array",
242
+ "Int32Array",
243
+ "BigInt64Array",
244
+ "Float32Array",
245
+ "Float64Array",
246
+ "DataView",
247
+ "ArrayBuffer",
248
+ "SharedArrayBuffer",
249
+ ].map(function (name) { return [name, "Uint8Array"]; })), false));
250
+ //# sourceMappingURL=ProtobufFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtobufFactory.js","sourceRoot":"","sources":["../../src/factories/ProtobufFactory.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import ts from "typescript";
2
2
  import { IProject } from "../../transformers/IProject";
3
3
  export declare namespace ProtobufMessageProgrammer {
4
- const generate: ({ checker }: IProject) => (type: ts.Type) => ts.StringLiteral;
4
+ const write: ({ checker }: IProject) => (type: ts.Type) => ts.StringLiteral;
5
5
  }
@@ -42,25 +42,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
42
42
  exports.ProtobufMessageProgrammer = void 0;
43
43
  var typescript_1 = __importDefault(require("typescript"));
44
44
  var MetadataCollection_1 = require("../../factories/MetadataCollection");
45
- var ProtocolFactory_1 = require("../../factories/ProtocolFactory");
46
- var Escaper_1 = require("../../utils/Escaper");
45
+ var ProtobufFactory_1 = require("../../factories/ProtobufFactory");
47
46
  var MapUtil_1 = require("../../utils/MapUtil");
48
47
  var NameEncoder_1 = require("../../utils/NameEncoder");
49
48
  var ProtobufMessageProgrammer;
50
49
  (function (ProtobufMessageProgrammer) {
51
- ProtobufMessageProgrammer.generate = function (_a) {
50
+ ProtobufMessageProgrammer.write = function (_a) {
52
51
  var checker = _a.checker;
53
52
  return function (type) {
54
53
  var e_1, _a;
55
54
  var collection = new MetadataCollection_1.MetadataCollection();
56
- var metadata = ProtocolFactory_1.ProtocolFactory.metadata(checker)(collection)(type);
57
- var dict = new Map();
58
- ProtocolFactory_1.ProtocolFactory.analyze(collection)(dict)(metadata);
55
+ ProtobufFactory_1.ProtobufFactory.metadata("message")(checker)(collection)(type);
59
56
  var hierarchies = new Map();
60
57
  try {
61
- for (var _b = __values(dict.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
62
- var msg = _c.value;
63
- emplace(hierarchies)(msg);
58
+ for (var _b = __values(collection.objects()), _c = _b.next(); !_c.done; _c = _b.next()) {
59
+ var obj = _c.value;
60
+ if (is_dynamic_object(obj) === false)
61
+ emplace(hierarchies)(obj);
64
62
  }
65
63
  }
66
64
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
@@ -71,43 +69,38 @@ var ProtobufMessageProgrammer;
71
69
  finally { if (e_1) throw e_1.error; }
72
70
  }
73
71
  var content = "syntax = \"proto3\";\n\n" +
74
- __spreadArray([], __read(hierarchies.values()), false).map(function (hier) { return stringify(hier); })
72
+ __spreadArray([], __read(hierarchies.values()), false).map(function (hier) { return write_hierarchy(hier); })
75
73
  .join("\n\n");
76
74
  return typescript_1.default.factory.createStringLiteral(content);
77
75
  };
78
76
  };
79
- var stringify = function (hierarchy) {
80
- var key = hierarchy.key, message = hierarchy.message, children = hierarchy.children;
81
- var index = 1;
82
- var elements = ["message ".concat(NameEncoder_1.NameEncoder.encode(key), " {")];
83
- if (message !== null)
84
- elements.push.apply(elements, __spreadArray([], __read(message.properties.map(function (property) {
85
- var key = Escaper_1.Escaper.variable(property.key) &&
86
- property.key.indexOf("$") === -1
87
- ? property.key
88
- : "v".concat(index + 1);
89
- if (property.oneOf.length === 1)
90
- return [
91
- TAB,
92
- property.required ? "" : "optional ",
93
- property.repeated ? "repeated " : "",
94
- getTypeName(property.oneOf[0].type) + " ",
95
- key,
96
- " = ",
97
- "".concat(index++, ";"),
98
- ].join("");
99
- return ("".concat(TAB, "oneof ").concat(key, " {\n") +
100
- property.oneOf
101
- .map(function (o, i) {
102
- return "".concat(TAB).concat(TAB).concat(getTypeName(o.type), " ").concat(key, "_o").concat(i, " = ").concat(index++, ";");
103
- })
104
- .join("\n") +
105
- "\n".concat(TAB, "}"));
106
- })), false));
107
- if (message !== null && children.size)
108
- elements.push("\n");
109
- if (children.size)
110
- elements.push(__spreadArray([], __read(children.values()), false).map(function (child) { return stringify(child); })
77
+ var emplace = function (dict) { return function (obj) {
78
+ var accessors = obj.name.split(".");
79
+ accessors.forEach(function (access, i) {
80
+ var hierarchy = MapUtil_1.MapUtil.take(dict)(access, function () { return ({
81
+ key: access,
82
+ object: null,
83
+ children: new Map(),
84
+ }); });
85
+ dict = hierarchy.children;
86
+ if (i === accessors.length - 1)
87
+ hierarchy.object = obj;
88
+ });
89
+ }; };
90
+ var is_dynamic_object = function (obj) {
91
+ return obj.properties.length === 1 &&
92
+ obj.properties[0].key.isSoleLiteral() === false;
93
+ };
94
+ var write_hierarchy = function (hierarchy) {
95
+ var elements = [
96
+ "message ".concat(NameEncoder_1.NameEncoder.encode(hierarchy.key), " {"),
97
+ ];
98
+ if (hierarchy.object !== null) {
99
+ var text = write_object(hierarchy.object);
100
+ elements.push.apply(elements, __spreadArray([], __read(text.split("\n").map(function (str) { return "".concat(TAB).concat(str); })), false));
101
+ }
102
+ if (hierarchy.children.size)
103
+ elements.push(__spreadArray([], __read(hierarchy.children.values()), false).map(function (child) { return write_hierarchy(child); })
111
104
  .map(function (body) {
112
105
  return body
113
106
  .split("\n")
@@ -118,24 +111,131 @@ var ProtobufMessageProgrammer;
118
111
  elements.push("}");
119
112
  return elements.join("\n");
120
113
  };
121
- var emplace = function (dict) { return function (message) {
122
- var accessors = message.name.split(".");
123
- accessors.forEach(function (access, i) {
124
- var hierarchy = MapUtil_1.MapUtil.take(dict)(access, function () { return ({
125
- key: access,
126
- message: null,
127
- children: new Map(),
128
- }); });
129
- dict = hierarchy.children;
130
- if (i === accessors.length - 1)
131
- hierarchy.message = message;
132
- });
133
- }; };
134
- function getTypeName(type) {
135
- return typeof type === "string"
136
- ? NameEncoder_1.NameEncoder.encode(type)
137
- : "map<".concat(type.key, ", ").concat(getTypeName(type.value), ">");
138
- }
114
+ var write_object = function (obj) {
115
+ var ptr = { value: 0 };
116
+ return obj.properties
117
+ .map(function (prop) {
118
+ var key = prop.key.getSoleLiteral();
119
+ var type = decode(ptr)(prop.tags)(prop.value);
120
+ return type.indexOf("${name}") !== -1
121
+ ? type.replace("${name}", key)
122
+ : "".concat(prop.value.arrays.length || type.startsWith("map<")
123
+ ? ""
124
+ : !prop.value.isRequired() || prop.value.nullable
125
+ ? "optional "
126
+ : "required ").concat(type, " ").concat(key, " = ").concat(++ptr.value, ";");
127
+ })
128
+ .join("\n");
129
+ };
130
+ var decode = function (ptr) {
131
+ return function (tags) {
132
+ return function (meta) {
133
+ var e_2, _a, e_3, _b, e_4, _c, e_5, _d, e_6, _e;
134
+ var elements = new Set();
135
+ if (meta.natives.length)
136
+ elements.add("bytes");
137
+ if (meta.templates.length)
138
+ elements.add("string");
139
+ try {
140
+ for (var _f = __values(meta.atomics), _g = _f.next(); !_g.done; _g = _f.next()) {
141
+ var atomic = _g.value;
142
+ elements.add(decode_atomic(tags)(atomic));
143
+ }
144
+ }
145
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
146
+ finally {
147
+ try {
148
+ if (_g && !_g.done && (_a = _f.return)) _a.call(_f);
149
+ }
150
+ finally { if (e_2) throw e_2.error; }
151
+ }
152
+ try {
153
+ for (var _h = __values(meta.constants), _j = _h.next(); !_j.done; _j = _h.next()) {
154
+ var constant = _j.value;
155
+ elements.add(decode_atomic(tags)(constant.type));
156
+ }
157
+ }
158
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
159
+ finally {
160
+ try {
161
+ if (_j && !_j.done && (_b = _h.return)) _b.call(_h);
162
+ }
163
+ finally { if (e_3) throw e_3.error; }
164
+ }
165
+ try {
166
+ for (var _k = __values(meta.arrays), _l = _k.next(); !_l.done; _l = _k.next()) {
167
+ var array = _l.value;
168
+ elements.add("repeated ".concat(decode(ptr)(tags)(array.value)));
169
+ }
170
+ }
171
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
172
+ finally {
173
+ try {
174
+ if (_l && !_l.done && (_c = _k.return)) _c.call(_k);
175
+ }
176
+ finally { if (e_4) throw e_4.error; }
177
+ }
178
+ try {
179
+ for (var _m = __values(meta.objects), _o = _m.next(); !_o.done; _o = _m.next()) {
180
+ var obj = _o.value;
181
+ elements.add(is_dynamic_object(obj)
182
+ ? decode_map(ptr)(tags)(obj.properties[0])
183
+ : NameEncoder_1.NameEncoder.encode(obj.name));
184
+ }
185
+ }
186
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
187
+ finally {
188
+ try {
189
+ if (_o && !_o.done && (_d = _m.return)) _d.call(_m);
190
+ }
191
+ finally { if (e_5) throw e_5.error; }
192
+ }
193
+ try {
194
+ for (var _p = __values(meta.maps), _q = _p.next(); !_q.done; _q = _p.next()) {
195
+ var map = _q.value;
196
+ elements.add(decode_map(ptr)(tags)(map));
197
+ }
198
+ }
199
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
200
+ finally {
201
+ try {
202
+ if (_q && !_q.done && (_e = _p.return)) _e.call(_p);
203
+ }
204
+ finally { if (e_6) throw e_6.error; }
205
+ }
206
+ return elements.size === 1
207
+ ? __spreadArray([], __read(elements), false)[0]
208
+ : __spreadArray(__spreadArray([
209
+ "oneof ${name} {"
210
+ ], __read(__spreadArray([], __read(elements), false).map(function (str) {
211
+ return "".concat(TAB).concat(str, " v").concat(ptr.value + 1, " = ").concat(++ptr.value, ";");
212
+ })), false), [
213
+ "}",
214
+ ], false).join("\n");
215
+ };
216
+ };
217
+ };
218
+ var decode_atomic = function (tags) {
219
+ return function (literal) {
220
+ var _a;
221
+ if (literal === "boolean")
222
+ return "bool";
223
+ else if (literal === "bigint")
224
+ return "int64";
225
+ else if (literal === "number") {
226
+ var type = tags.find(function (t) { return t.kind === "type"; });
227
+ return (_a = type === null || type === void 0 ? void 0 : type.value) !== null && _a !== void 0 ? _a : "double";
228
+ }
229
+ return literal;
230
+ };
231
+ };
232
+ var decode_map = function (ptr) {
233
+ return function (tags) {
234
+ return function (prop) {
235
+ return "map<".concat(decode(ptr)([])(prop.key), ", ").concat(decode(ptr)(tags)(prop.value), ">");
236
+ };
237
+ };
238
+ };
139
239
  })(ProtobufMessageProgrammer || (exports.ProtobufMessageProgrammer = ProtobufMessageProgrammer = {}));
140
240
  var TAB = " ".repeat(4);
141
241
  //# sourceMappingURL=ProtobufMessageProgrammer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProtobufMessageProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/protobuf/ProtobufMessageProgrammer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProtobufMessageProgrammer.js","sourceRoot":"","sources":["../../../src/programmers/protobuf/ProtobufMessageProgrammer.ts"],"names":[],"mappings":"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"}
@@ -297,7 +297,7 @@ var Metadata = (function () {
297
297
  };
298
298
  Metadata.prototype.isUnionBucket = function () {
299
299
  var size = this.bucket();
300
- var emended = this.constants.length ? size - 1 : size;
300
+ var emended = !!this.atomics.length && !!this.constants.length ? size - 1 : size;
301
301
  return emended > 1;
302
302
  };
303
303
  Metadata.prototype.getSoleLiteral = function () {