@dxos/codec-protobuf 2.33.9-dev.e605934d → 2.33.9-dev.eb69ac10
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/README.md +39 -0
- package/dist/{index.js → browser.js} +3983 -197
- package/dist/src/buffer-patch.d.ts +1 -0
- package/dist/src/buffer-patch.d.ts.map +1 -1
- package/dist/src/buffer-patch.js +15 -0
- package/dist/src/buffer-patch.js.map +1 -0
- package/dist/src/codec.js +53 -0
- package/dist/src/codec.js.map +1 -0
- package/dist/src/common.js +6 -0
- package/dist/src/common.js.map +1 -0
- package/dist/src/encoding.js +35 -0
- package/dist/src/encoding.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +31 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/interface.js +14 -0
- package/dist/src/interface.js.map +1 -0
- package/dist/src/mapping.d.ts +3 -0
- package/dist/src/mapping.d.ts.map +1 -1
- package/dist/src/mapping.js +72 -0
- package/dist/src/mapping.js.map +1 -0
- package/dist/src/precompiled-mapping/codegen.js +86 -0
- package/dist/src/precompiled-mapping/codegen.js.map +1 -0
- package/dist/src/precompiled-mapping/create-message-mapper.js +132 -0
- package/dist/src/precompiled-mapping/create-message-mapper.js.map +1 -0
- package/dist/src/sanitizer.js +53 -0
- package/dist/src/sanitizer.js.map +1 -0
- package/dist/src/schema.js +86 -0
- package/dist/src/schema.js.map +1 -0
- package/dist/src/service.d.ts +2 -2
- package/dist/src/service.d.ts.map +1 -1
- package/dist/src/service.js +113 -0
- package/dist/src/service.js.map +1 -0
- package/dist/src/stream.d.ts +31 -0
- package/dist/src/stream.d.ts.map +1 -1
- package/dist/src/stream.js +186 -0
- package/dist/src/stream.js.map +1 -0
- package/dist/src/stream.test.js +66 -0
- package/dist/src/stream.test.js.map +1 -0
- package/dist/src/substitutions/any.js +30 -0
- package/dist/src/substitutions/any.js.map +1 -0
- package/dist/src/substitutions/index.js +22 -0
- package/dist/src/substitutions/index.js.map +1 -0
- package/dist/src/substitutions/timestamp.js +19 -0
- package/dist/src/substitutions/timestamp.js.map +1 -0
- package/dist/test/codec.test.js +67 -0
- package/dist/test/codec.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -7
- package/src/encoding.ts +9 -0
- package/src/index.ts +2 -0
- package/src/mapping.ts +60 -0
- package/src/precompiled-mapping/create-message-mapper.ts +41 -3
- package/src/service.ts +11 -18
- package/src/stream.test.ts +3 -1
- package/src/stream.ts +72 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buffer-patch.d.ts","sourceRoot":"","sources":["../../src/buffer-patch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,gBAAgB,UAAW,MAAM,GAAG,CAAC;gBACpC,GAAG;;CAEf,CAAC"}
|
|
1
|
+
{"version":3,"file":"buffer-patch.d.ts","sourceRoot":"","sources":["../../src/buffer-patch.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,gBAAgB,UAAW,MAAM,GAAG,CAAC;gBACpC,GAAG;;CAEf,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2021 DXOS.org
|
|
4
|
+
//
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.patchBufferCodec = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Protobuf codec returns instances of Uint8Arrays, but some storages expect to receive Buffers. This function patches the encode method to convert result into a Buffer.
|
|
9
|
+
*/
|
|
10
|
+
const patchBufferCodec = (codec) => ({
|
|
11
|
+
encode: (x) => Buffer.from(codec.encode(x)),
|
|
12
|
+
decode: codec.decode.bind(codec)
|
|
13
|
+
});
|
|
14
|
+
exports.patchBufferCodec = patchBufferCodec;
|
|
15
|
+
//# sourceMappingURL=buffer-patch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buffer-patch.js","sourceRoot":"","sources":["../../src/buffer-patch.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAIF;;GAEG;AACI,MAAM,gBAAgB,GAAG,CAAC,KAAiB,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;CACjC,CAAC,CAAC;AAHU,QAAA,gBAAgB,oBAG1B"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2020 DXOS.org
|
|
4
|
+
//
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ProtoCodec = exports.OBJECT_CONVERSION_OPTIONS = void 0;
|
|
7
|
+
const create_message_mapper_1 = require("./precompiled-mapping/create-message-mapper");
|
|
8
|
+
exports.OBJECT_CONVERSION_OPTIONS = {
|
|
9
|
+
// Represent long integers as strings.
|
|
10
|
+
longs: String,
|
|
11
|
+
// Will set empty repeated fields to [] instead of undefined.
|
|
12
|
+
arrays: true
|
|
13
|
+
};
|
|
14
|
+
class ProtoCodec {
|
|
15
|
+
constructor(_type, _mapping, _schema) {
|
|
16
|
+
this._type = _type;
|
|
17
|
+
this._mapping = _mapping;
|
|
18
|
+
this._schema = _schema;
|
|
19
|
+
this._encodeMapper = (0, create_message_mapper_1.createMessageMapper)(this._type, this._mapping.encode);
|
|
20
|
+
this._decodeMapper = (0, create_message_mapper_1.createMessageMapper)(this._type, this._mapping.decode);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Underlying protobuf.js type descriptor.
|
|
24
|
+
*/
|
|
25
|
+
get protoType() {
|
|
26
|
+
return this._type;
|
|
27
|
+
}
|
|
28
|
+
get substitutionMappings() {
|
|
29
|
+
return this._mapping;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Reference to the protobuf schema this codec was created from.
|
|
33
|
+
*/
|
|
34
|
+
get schema() {
|
|
35
|
+
return this._schema;
|
|
36
|
+
}
|
|
37
|
+
encode(value) {
|
|
38
|
+
const sub = this._encodeMapper(value, [this._schema]);
|
|
39
|
+
return this._type.encode(sub).finish();
|
|
40
|
+
}
|
|
41
|
+
decode(data) {
|
|
42
|
+
const obj = this._type.toObject(this._type.decode(data), exports.OBJECT_CONVERSION_OPTIONS);
|
|
43
|
+
return this._decodeMapper(obj, [this._schema]);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Dynamically add new definitions to this codec. Mutates the underlying schema.
|
|
47
|
+
*/
|
|
48
|
+
addJson(schema) {
|
|
49
|
+
this._schema.addJson(schema);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.ProtoCodec = ProtoCodec;
|
|
53
|
+
//# sourceMappingURL=codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/codec.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAMF,uFAA0F;AAG7E,QAAA,yBAAyB,GAAuB;IAC3D,sCAAsC;IACtC,KAAK,EAAE,MAAM;IAEb,6DAA6D;IAC7D,MAAM,EAAE,IAAI;CACb,CAAC;AAEF,MAAa,UAAU;IAIrB,YACmB,KAAsB,EACtB,QAAwC,EACxC,OAAoB;QAFpB,UAAK,GAAL,KAAK,CAAiB;QACtB,aAAQ,GAAR,QAAQ,CAAgC;QACxC,YAAO,GAAP,OAAO,CAAa;QAErC,IAAI,CAAC,aAAa,GAAG,IAAA,2CAAmB,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,CAAC,aAAa,GAAG,IAAA,2CAAmB,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,MAAM,CAAE,KAAQ;QACd,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,CAAE,IAAgB;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,iCAAyB,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,OAAO,CAAE,MAAW;QAClB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;CACF;AA/CD,gCA+CC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/common.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2021 DXOS.org
|
|
4
|
+
//
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
+
if (mod && mod.__esModule) return mod;
|
|
23
|
+
var result = {};
|
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
+
__setModuleDefault(result, mod);
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.decodeProtobuf = exports.encodeProtobuf = void 0;
|
|
30
|
+
const protobuf = __importStar(require("protobufjs"));
|
|
31
|
+
const encodeProtobuf = (root) => JSON.stringify(root.toJSON());
|
|
32
|
+
exports.encodeProtobuf = encodeProtobuf;
|
|
33
|
+
const decodeProtobuf = (json) => protobuf.Root.fromJSON(JSON.parse(json));
|
|
34
|
+
exports.decodeProtobuf = decodeProtobuf;
|
|
35
|
+
//# sourceMappingURL=encoding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/encoding.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,qDAAuC;AAEhC,MAAM,cAAc,GAAG,CAAC,IAAmB,EAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAAhF,QAAA,cAAc,kBAAkE;AAEtF,MAAM,cAAc,GAAG,CAAC,IAAY,EAAiB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAA3F,QAAA,cAAc,kBAA6E"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export * from './buffer-patch';
|
|
2
2
|
export * from './codec';
|
|
3
3
|
export * from './common';
|
|
4
|
+
export * from './encoding';
|
|
4
5
|
export * from './interface';
|
|
6
|
+
export * from './mapping';
|
|
5
7
|
export * from './sanitizer';
|
|
6
8
|
export * from './schema';
|
|
7
9
|
export * from './service';
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2020 DXOS.org
|
|
4
|
+
//
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
__exportStar(require("./buffer-patch"), exports);
|
|
21
|
+
__exportStar(require("./codec"), exports);
|
|
22
|
+
__exportStar(require("./common"), exports);
|
|
23
|
+
__exportStar(require("./encoding"), exports);
|
|
24
|
+
__exportStar(require("./interface"), exports);
|
|
25
|
+
__exportStar(require("./mapping"), exports);
|
|
26
|
+
__exportStar(require("./sanitizer"), exports);
|
|
27
|
+
__exportStar(require("./schema"), exports);
|
|
28
|
+
__exportStar(require("./service"), exports);
|
|
29
|
+
__exportStar(require("./stream"), exports);
|
|
30
|
+
__exportStar(require("./substitutions"), exports);
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;AAEF,iDAA+B;AAC/B,0CAAwB;AACxB,2CAAyB;AACzB,6CAA2B;AAC3B,8CAA4B;AAC5B,4CAA0B;AAC1B,8CAA4B;AAC5B,2CAAyB;AACzB,4CAA0B;AAC1B,2CAAyB;AACzB,kDAAgC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2021 DXOS.org
|
|
4
|
+
//
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.NOOP_CODEC = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Codec for Uint8Array instances that just passes the values through.
|
|
9
|
+
*/
|
|
10
|
+
exports.NOOP_CODEC = {
|
|
11
|
+
encode: (value) => value,
|
|
12
|
+
decode: (data) => data
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/interface.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAOF;;GAEG;AACU,QAAA,UAAU,GAAsB;IAC3C,MAAM,EAAE,CAAC,KAAiB,EAAE,EAAE,CAAC,KAAK;IACpC,MAAM,EAAE,CAAC,IAAgB,EAAE,EAAE,CAAC,IAAI;CACnC,CAAC"}
|
package/dist/src/mapping.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import protobufjs from 'protobufjs';
|
|
1
2
|
import { Substitutions } from './common';
|
|
2
3
|
export declare type MapingDescriptors = Partial<Record<string, (value: any, ...extraArgs: any) => any>>;
|
|
3
4
|
export interface BidirectionalMapingDescriptors {
|
|
@@ -5,4 +6,6 @@ export interface BidirectionalMapingDescriptors {
|
|
|
5
6
|
decode: MapingDescriptors;
|
|
6
7
|
}
|
|
7
8
|
export declare const createMappingDescriptors: (substitutions: Substitutions) => BidirectionalMapingDescriptors;
|
|
9
|
+
export declare type FieldMapper = (value: any, typeName: string) => Promise<any>;
|
|
10
|
+
export declare const mapMessage: (type: protobufjs.Type, mapper: FieldMapper, obj: any) => Promise<any>;
|
|
8
11
|
//# sourceMappingURL=mapping.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"AAKA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,oBAAY,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,CAAA;AAE/F,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,eAAO,MAAM,wBAAwB,kBAAmB,aAAa,KAAG,8BAWvE,CAAC;AAEF,oBAAY,WAAW,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAEzE,eAAO,MAAM,UAAU,SAAgB,WAAW,IAAI,UAAU,WAAW,OAAO,GAAG,iBAUpF,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2020 DXOS.org
|
|
4
|
+
//
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.mapMessage = exports.createMappingDescriptors = void 0;
|
|
10
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
11
|
+
const protobufjs_1 = __importDefault(require("protobufjs"));
|
|
12
|
+
const createMappingDescriptors = (substitutions) => {
|
|
13
|
+
const encode = {};
|
|
14
|
+
const decode = {};
|
|
15
|
+
for (const type of Object.keys(substitutions)) {
|
|
16
|
+
encode[type] = substitutions[type].encode;
|
|
17
|
+
decode[type] = substitutions[type].decode;
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
encode,
|
|
21
|
+
decode
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
exports.createMappingDescriptors = createMappingDescriptors;
|
|
25
|
+
const mapMessage = async (type, mapper, obj) => {
|
|
26
|
+
const res = {};
|
|
27
|
+
for (const field of type.fieldsArray) {
|
|
28
|
+
if (!(field.name in obj)) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
res[field.name] = await mapField(field, mapper, obj[field.name]);
|
|
32
|
+
}
|
|
33
|
+
return res;
|
|
34
|
+
};
|
|
35
|
+
exports.mapMessage = mapMessage;
|
|
36
|
+
const mapField = async (field, mapper, value) => {
|
|
37
|
+
if (!field.required && (value === null || value === undefined)) {
|
|
38
|
+
return value;
|
|
39
|
+
}
|
|
40
|
+
else if (field.repeated) {
|
|
41
|
+
return await Promise.all(value.map((value) => mapScalarField(field, mapper, value)));
|
|
42
|
+
}
|
|
43
|
+
else if (field.map) {
|
|
44
|
+
(0, node_assert_1.default)(field instanceof protobufjs_1.default.MapField);
|
|
45
|
+
return await asyncObjectMap((value) => mapScalarField(field, mapper, value), value);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
return mapScalarField(field, mapper, value);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const mapScalarField = async (field, mapper, value) => {
|
|
52
|
+
var _a;
|
|
53
|
+
if (!field.resolved) {
|
|
54
|
+
field.resolve();
|
|
55
|
+
}
|
|
56
|
+
const typeName = (_a = field.resolvedType) === null || _a === void 0 ? void 0 : _a.fullName.slice(1); // Name of the protobuf message type if the field type is not primitive.
|
|
57
|
+
if (typeName) {
|
|
58
|
+
return await mapper(value, typeName);
|
|
59
|
+
}
|
|
60
|
+
if (field.resolvedType && field.resolvedType instanceof protobufjs_1.default.Type) {
|
|
61
|
+
return await (0, exports.mapMessage)(field.resolvedType, mapper, value);
|
|
62
|
+
}
|
|
63
|
+
return value;
|
|
64
|
+
};
|
|
65
|
+
const asyncObjectMap = async (map, record) => {
|
|
66
|
+
const res = {};
|
|
67
|
+
await Promise.all(Object.entries(record).map(async ([key, value]) => {
|
|
68
|
+
res[key] = await map(value, key);
|
|
69
|
+
}));
|
|
70
|
+
return res;
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=mapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/mapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2022 DXOS.org
|
|
4
|
+
//
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.codegen = exports.ref = void 0;
|
|
7
|
+
const Ref = Symbol('Ref');
|
|
8
|
+
/**
|
|
9
|
+
* Pass a JS value by reference rather then parsing it as code.
|
|
10
|
+
*
|
|
11
|
+
* Usage example:
|
|
12
|
+
*
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const double = x => x * 2;;
|
|
15
|
+
* codegen('add', ['a', 'b'], c => {
|
|
16
|
+
* c`const c = a + b;`;
|
|
17
|
+
* c`return ${ref(double)}(c)`;
|
|
18
|
+
* });
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* would generate a function:
|
|
22
|
+
*
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const double = x => x * 2;;
|
|
25
|
+
* function add(a, b) {
|
|
26
|
+
* const c = a + b;
|
|
27
|
+
* return double(c);
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
const ref = (value) => ({
|
|
32
|
+
[Ref]: true,
|
|
33
|
+
value
|
|
34
|
+
});
|
|
35
|
+
exports.ref = ref;
|
|
36
|
+
const isRef = (value) => value[Ref] === true;
|
|
37
|
+
/**
|
|
38
|
+
* DSL for runtime code generation.
|
|
39
|
+
*
|
|
40
|
+
* Example:
|
|
41
|
+
*
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const multiplier = 5;
|
|
44
|
+
* codegen('add', ['a', 'b'], c => {
|
|
45
|
+
* c`const c = a + b;`;
|
|
46
|
+
* c`return c * ${multiplier};`;
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* would generate a function:
|
|
51
|
+
*
|
|
52
|
+
* ```typescript
|
|
53
|
+
* function add(a, b) {
|
|
54
|
+
* const c = a + b;
|
|
55
|
+
* return c * 5;
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* @param name Function name. Will appear in stack traces.
|
|
60
|
+
* @param args Names of function arguments.
|
|
61
|
+
* @param gen Closure that builds the function source.
|
|
62
|
+
* @param ctx Optional record with context variables that will appear in function's scope.
|
|
63
|
+
*/
|
|
64
|
+
const codegen = (name, args, gen, ctx = {}) => {
|
|
65
|
+
const newCtx = { ...ctx };
|
|
66
|
+
let nextAnnon = 1;
|
|
67
|
+
let buf = '';
|
|
68
|
+
gen((parts, ...args) => {
|
|
69
|
+
const preprocessArg = (arg) => {
|
|
70
|
+
if (isRef(arg)) {
|
|
71
|
+
const name = `anon${nextAnnon++}`;
|
|
72
|
+
newCtx[name] = arg.value;
|
|
73
|
+
return name;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
return arg;
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
buf += parts.map((s, i) => s + (i < args.length ? preprocessArg(args[i]) : '')).join('') + '\n';
|
|
80
|
+
});
|
|
81
|
+
const code = `return function ${name}(${args.join(', ')}) {\n${buf}\n}`;
|
|
82
|
+
// eslint-disable-next-line no-new-func
|
|
83
|
+
return Function(...Object.keys(newCtx), code)(...Object.values(newCtx));
|
|
84
|
+
};
|
|
85
|
+
exports.codegen = codegen;
|
|
86
|
+
//# sourceMappingURL=codegen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/precompiled-mapping/codegen.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAEF,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAO1B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACI,MAAM,GAAG,GAAG,CAAC,KAAU,EAAO,EAAE,CAAC,CAAC;IACvC,CAAC,GAAG,CAAC,EAAE,IAAI;IACX,KAAK;CACN,CAAC,CAAC;AAHU,QAAA,GAAG,OAGb;AAEH,MAAM,KAAK,GAAG,CAAC,KAAU,EAAgB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACI,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,IAAc,EAAE,GAAuE,EAAE,MAA2B,EAAE,EAA2B,EAAE;IACvL,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAC1B,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;QACrB,MAAM,aAAa,GAAG,CAAC,GAAQ,EAAE,EAAE;YACjC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;gBACd,MAAM,IAAI,GAAG,OAAO,SAAS,EAAE,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;gBACzB,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,OAAO,GAAG,CAAC;aACZ;QACH,CAAC,CAAC;QACF,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IAClG,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,mBAAmB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAExE,uCAAuC;IACvC,OAAO,QAAQ,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC;AAtBW,QAAA,OAAO,WAsBlB"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2022 DXOS.org
|
|
4
|
+
//
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
+
if (mod && mod.__esModule) return mod;
|
|
23
|
+
var result = {};
|
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
+
__setModuleDefault(result, mod);
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
29
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
30
|
+
};
|
|
31
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
+
exports.createMessageMapper = void 0;
|
|
33
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
34
|
+
const pb = __importStar(require("protobufjs"));
|
|
35
|
+
const codegen_1 = require("./codegen");
|
|
36
|
+
const createMessageMapper = (type, substitutions) => createMessageMapperCached(type, substitutions, {}).map;
|
|
37
|
+
exports.createMessageMapper = createMessageMapper;
|
|
38
|
+
const createMessageMapperCached = (type, substitutions, cache) => {
|
|
39
|
+
if (!cache[type.fullName]) {
|
|
40
|
+
// Indirection to allow for recursive message types.
|
|
41
|
+
cache[type.fullName] = {};
|
|
42
|
+
cache[type.fullName].map = (0, codegen_1.codegen)(`${type.name}$map`, ['obj', 'extraArgs'], c => {
|
|
43
|
+
c `const res = {};`;
|
|
44
|
+
for (const field of type.fieldsArray) {
|
|
45
|
+
field.resolve();
|
|
46
|
+
c `if(obj.${field.name} !== undefined && obj.${field.name} !== null) {`;
|
|
47
|
+
{
|
|
48
|
+
const genMapScalar = (value) => {
|
|
49
|
+
const substitution = field.resolvedType && substitutions[field.resolvedType.fullName.slice(1)];
|
|
50
|
+
if (substitution) {
|
|
51
|
+
c `${(0, codegen_1.ref)(substitution)}(${value}, ...extraArgs)`;
|
|
52
|
+
}
|
|
53
|
+
else if (field.resolvedType && field.resolvedType instanceof pb.Type) {
|
|
54
|
+
const mapper = createMessageMapperCached(field.resolvedType, substitutions, cache);
|
|
55
|
+
c `${(0, codegen_1.ref)(mapper)}.map(${value}, extraArgs)`;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
c `${value}`;
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
if (field.repeated) {
|
|
62
|
+
c `res.${field.name} = obj.${field.name}.map(item => `;
|
|
63
|
+
genMapScalar('item');
|
|
64
|
+
c `);`;
|
|
65
|
+
}
|
|
66
|
+
else if (field.map) {
|
|
67
|
+
(0, node_assert_1.default)(field instanceof pb.MapField);
|
|
68
|
+
c `res.${field.name} = {};`;
|
|
69
|
+
c `for(const key of Object.keys(obj.${field.name})) {`;
|
|
70
|
+
{
|
|
71
|
+
c `res.${field.name}[key] = `;
|
|
72
|
+
genMapScalar(`obj.${field.name}[key]`);
|
|
73
|
+
c `;`;
|
|
74
|
+
}
|
|
75
|
+
c `}`;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
c `res.${field.name} = `;
|
|
79
|
+
genMapScalar(`obj.${field.name}`);
|
|
80
|
+
c `;`;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
c `}`;
|
|
84
|
+
if (!field.getOption('proto3_optional') && !field.repeated && !field.map && !field.partOf) {
|
|
85
|
+
c `else {`;
|
|
86
|
+
{
|
|
87
|
+
if (field.resolvedType instanceof pb.Type) {
|
|
88
|
+
const mapper = createMessageMapperCached(field.resolvedType, substitutions, cache);
|
|
89
|
+
c `res.${field.name} = ${(0, codegen_1.ref)(mapper)}.map({}, extraArgs);`;
|
|
90
|
+
}
|
|
91
|
+
else if (field.resolvedType instanceof pb.Enum) {
|
|
92
|
+
`res.${field.name} = 0;`;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
c `res.${field.name} = ${getDefaultValue(field.type)};`;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
c `}`;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
c `return res;`;
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
return cache[type.fullName];
|
|
105
|
+
};
|
|
106
|
+
const getDefaultValue = (type) => {
|
|
107
|
+
switch (type) {
|
|
108
|
+
case 'double':
|
|
109
|
+
case 'float':
|
|
110
|
+
case 'int32':
|
|
111
|
+
case 'sfixed32':
|
|
112
|
+
case 'uint32':
|
|
113
|
+
case 'sint32':
|
|
114
|
+
case 'fixed32':
|
|
115
|
+
return '0';
|
|
116
|
+
case 'sint64':
|
|
117
|
+
case 'int64':
|
|
118
|
+
case 'uint64':
|
|
119
|
+
case 'fixed64':
|
|
120
|
+
case 'sfixed64':
|
|
121
|
+
return '"0"';
|
|
122
|
+
case 'bool':
|
|
123
|
+
return 'false';
|
|
124
|
+
case 'string':
|
|
125
|
+
return '""';
|
|
126
|
+
case 'bytes':
|
|
127
|
+
return 'new Uint8Array()';
|
|
128
|
+
default:
|
|
129
|
+
throw new Error(`Unknown type: ${type}`);
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
//# sourceMappingURL=create-message-mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-message-mapper.js","sourceRoot":"","sources":["../../../src/precompiled-mapping/create-message-mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2022 DXOS.org
|
|
4
|
+
//
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.sanitize = void 0;
|
|
7
|
+
const protobufjs_1 = require("protobufjs");
|
|
8
|
+
/**
|
|
9
|
+
* Sanitiaze all enum fields in object based on protobuf type.
|
|
10
|
+
* @param type
|
|
11
|
+
* @param value
|
|
12
|
+
* @param path
|
|
13
|
+
* @param context
|
|
14
|
+
*/
|
|
15
|
+
const sanitize = (type, value, path, context) => {
|
|
16
|
+
for (const key of Object.keys(value)) {
|
|
17
|
+
if (!type.fields[key]) {
|
|
18
|
+
context.errors.push(`Unexpected key: ${path}.${key}`);
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const field = type.fields[key];
|
|
22
|
+
if (field.repeated) {
|
|
23
|
+
continue; // TODO(marik-d): Implement.
|
|
24
|
+
}
|
|
25
|
+
field.resolve();
|
|
26
|
+
if (!field.resolvedType) {
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (field.resolvedType instanceof protobufjs_1.Type) {
|
|
30
|
+
(0, exports.sanitize)(field.resolvedType, value[key], `${path}.${key}`, context);
|
|
31
|
+
}
|
|
32
|
+
else if (field.resolvedType instanceof protobufjs_1.Enum) {
|
|
33
|
+
value[key] = sanitizeEnum(field.resolvedType, value[key], `${path}.${key}`, context);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
exports.sanitize = sanitize;
|
|
38
|
+
const sanitizeEnum = (type, value, path, context) => {
|
|
39
|
+
if (type.valuesById[value]) {
|
|
40
|
+
return value;
|
|
41
|
+
}
|
|
42
|
+
if (typeof value === 'string') {
|
|
43
|
+
const normalizedValue = value.toLowerCase();
|
|
44
|
+
for (const [name, tag] of Object.entries(type.values)) {
|
|
45
|
+
if (name.toLowerCase() === normalizedValue) {
|
|
46
|
+
return tag;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
context.errors.push(`Invalid enum value: value=${JSON.stringify(value)} enum=${type.fullName} path=${path}`);
|
|
51
|
+
return value;
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=sanitizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitizer.js","sourceRoot":"","sources":["../../src/sanitizer.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAEF,2CAAwC;AAMxC;;;;;;GAMG;AACI,MAAM,QAAQ,GAAG,CAAC,IAAU,EAAE,KAAU,EAAE,IAAY,EAAE,OAAwB,EAAE,EAAE;IACzF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACrB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;YACtD,SAAS;SACV;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClB,SAAS,CAAC,4BAA4B;SACvC;QAED,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;YACvB,SAAS;SACV;QACD,IAAI,KAAK,CAAC,YAAY,YAAY,iBAAI,EAAE;YACtC,IAAA,gBAAQ,EAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;SACrE;aAAM,IAAI,KAAK,CAAC,YAAY,YAAY,iBAAI,EAAE;YAC7C,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;SACtF;KACF;AACH,CAAC,CAAC;AAtBW,QAAA,QAAQ,YAsBnB;AAEF,MAAM,YAAY,GAAG,CAAC,IAAU,EAAE,KAAU,EAAE,IAAY,EAAE,OAAwB,EAAO,EAAE;IAC3F,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACrD,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE;gBAC1C,OAAO,GAAG,CAAC;aACZ;SACF;KACF;IAED,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,QAAQ,SAAS,IAAI,EAAE,CAAC,CAAC;IAE7G,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|