deukpack 1.0.0
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/LICENSE +201 -0
- package/NOTICE +6 -0
- package/README.ko.md +138 -0
- package/README.md +182 -0
- package/RELEASING.md +71 -0
- package/bin/deukpack.js +9 -0
- package/dist/ast/DeukPackASTBuilder.d.ts +153 -0
- package/dist/ast/DeukPackASTBuilder.d.ts.map +1 -0
- package/dist/ast/DeukPackASTBuilder.js +931 -0
- package/dist/ast/DeukPackASTBuilder.js.map +1 -0
- package/dist/codegen/CSharpGenerator.d.ts +136 -0
- package/dist/codegen/CSharpGenerator.d.ts.map +1 -0
- package/dist/codegen/CSharpGenerator.js +2303 -0
- package/dist/codegen/CSharpGenerator.js.map +1 -0
- package/dist/codegen/CodeGenerator.d.ts +11 -0
- package/dist/codegen/CodeGenerator.d.ts.map +1 -0
- package/dist/codegen/CodeGenerator.js +11 -0
- package/dist/codegen/CodeGenerator.js.map +1 -0
- package/dist/codegen/CppGenerator.d.ts +23 -0
- package/dist/codegen/CppGenerator.d.ts.map +1 -0
- package/dist/codegen/CppGenerator.js +215 -0
- package/dist/codegen/CppGenerator.js.map +1 -0
- package/dist/codegen/HighPerformanceCSharpGenerator.d.ts +29 -0
- package/dist/codegen/HighPerformanceCSharpGenerator.d.ts.map +1 -0
- package/dist/codegen/HighPerformanceCSharpGenerator.js +486 -0
- package/dist/codegen/HighPerformanceCSharpGenerator.js.map +1 -0
- package/dist/core/DeukPackEngine.d.ts +69 -0
- package/dist/core/DeukPackEngine.d.ts.map +1 -0
- package/dist/core/DeukPackEngine.js +379 -0
- package/dist/core/DeukPackEngine.js.map +1 -0
- package/dist/core/DeukPackGenerator.d.ts +9 -0
- package/dist/core/DeukPackGenerator.d.ts.map +1 -0
- package/dist/core/DeukPackGenerator.js +15 -0
- package/dist/core/DeukPackGenerator.js.map +1 -0
- package/dist/core/DeukParser.d.ts +12 -0
- package/dist/core/DeukParser.d.ts.map +1 -0
- package/dist/core/DeukParser.js +27 -0
- package/dist/core/DeukParser.js.map +1 -0
- package/dist/core/IdlParser.d.ts +27 -0
- package/dist/core/IdlParser.d.ts.map +1 -0
- package/dist/core/IdlParser.js +157 -0
- package/dist/core/IdlParser.js.map +1 -0
- package/dist/core/ProtoParser.d.ts +12 -0
- package/dist/core/ProtoParser.d.ts.map +1 -0
- package/dist/core/ProtoParser.js +27 -0
- package/dist/core/ProtoParser.js.map +1 -0
- package/dist/csharp/DpExcelProtocol.cs +3005 -0
- package/dist/csharp/DpProtocolLibrary.cs +13 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/lexer/DeukLexer.d.ts +31 -0
- package/dist/lexer/DeukLexer.d.ts.map +1 -0
- package/dist/lexer/DeukLexer.js +292 -0
- package/dist/lexer/DeukLexer.js.map +1 -0
- package/dist/lexer/IdlLexer.d.ts +33 -0
- package/dist/lexer/IdlLexer.d.ts.map +1 -0
- package/dist/lexer/IdlLexer.js +286 -0
- package/dist/lexer/IdlLexer.js.map +1 -0
- package/dist/native/NativeDeukPackEngine.d.ts +30 -0
- package/dist/native/NativeDeukPackEngine.d.ts.map +1 -0
- package/dist/native/NativeDeukPackEngine.js +99 -0
- package/dist/native/NativeDeukPackEngine.js.map +1 -0
- package/dist/proto/ProtoASTBuilder.d.ts +29 -0
- package/dist/proto/ProtoASTBuilder.d.ts.map +1 -0
- package/dist/proto/ProtoASTBuilder.js +239 -0
- package/dist/proto/ProtoASTBuilder.js.map +1 -0
- package/dist/proto/ProtoLexer.d.ts +29 -0
- package/dist/proto/ProtoLexer.d.ts.map +1 -0
- package/dist/proto/ProtoLexer.js +264 -0
- package/dist/proto/ProtoLexer.js.map +1 -0
- package/dist/proto/ProtoTypes.d.ts +40 -0
- package/dist/proto/ProtoTypes.d.ts.map +1 -0
- package/dist/proto/ProtoTypes.js +37 -0
- package/dist/proto/ProtoTypes.js.map +1 -0
- package/dist/protocols/BinaryProtocol.d.ts +7 -0
- package/dist/protocols/BinaryProtocol.d.ts.map +1 -0
- package/dist/protocols/BinaryProtocol.js +11 -0
- package/dist/protocols/BinaryProtocol.js.map +1 -0
- package/dist/protocols/BinaryWriter.d.ts +22 -0
- package/dist/protocols/BinaryWriter.d.ts.map +1 -0
- package/dist/protocols/BinaryWriter.js +104 -0
- package/dist/protocols/BinaryWriter.js.map +1 -0
- package/dist/protocols/CompactProtocol.d.ts +7 -0
- package/dist/protocols/CompactProtocol.d.ts.map +1 -0
- package/dist/protocols/CompactProtocol.js +11 -0
- package/dist/protocols/CompactProtocol.js.map +1 -0
- package/dist/protocols/ExcelProtocol.d.ts +98 -0
- package/dist/protocols/ExcelProtocol.d.ts.map +1 -0
- package/dist/protocols/ExcelProtocol.js +639 -0
- package/dist/protocols/ExcelProtocol.js.map +1 -0
- package/dist/protocols/JsonProtocol.d.ts +68 -0
- package/dist/protocols/JsonProtocol.d.ts.map +1 -0
- package/dist/protocols/JsonProtocol.js +422 -0
- package/dist/protocols/JsonProtocol.js.map +1 -0
- package/dist/protocols/WireProtocol.d.ts +348 -0
- package/dist/protocols/WireProtocol.d.ts.map +1 -0
- package/dist/protocols/WireProtocol.js +912 -0
- package/dist/protocols/WireProtocol.js.map +1 -0
- package/dist/serialization/WireDeserializer.d.ts +8 -0
- package/dist/serialization/WireDeserializer.d.ts.map +1 -0
- package/dist/serialization/WireDeserializer.js +13 -0
- package/dist/serialization/WireDeserializer.js.map +1 -0
- package/dist/serialization/WireSerializer.d.ts +20 -0
- package/dist/serialization/WireSerializer.d.ts.map +1 -0
- package/dist/serialization/WireSerializer.js +100 -0
- package/dist/serialization/WireSerializer.js.map +1 -0
- package/dist/types/DeukPackTypes.d.ts +291 -0
- package/dist/types/DeukPackTypes.d.ts.map +1 -0
- package/dist/types/DeukPackTypes.js +76 -0
- package/dist/types/DeukPackTypes.js.map +1 -0
- package/dist/utils/EndianUtils.d.ts +11 -0
- package/dist/utils/EndianUtils.d.ts.map +1 -0
- package/dist/utils/EndianUtils.js +32 -0
- package/dist/utils/EndianUtils.js.map +1 -0
- package/dist/utils/PerformanceMonitor.d.ts +26 -0
- package/dist/utils/PerformanceMonitor.d.ts.map +1 -0
- package/dist/utils/PerformanceMonitor.js +57 -0
- package/dist/utils/PerformanceMonitor.js.map +1 -0
- package/package.json +77 -0
- package/scripts/build_deukpack.js +669 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* DeukPack Endian Utils
|
|
4
|
+
* Endianness utilities
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.EndianUtils = void 0;
|
|
8
|
+
class EndianUtils {
|
|
9
|
+
static isLittleEndian() {
|
|
10
|
+
const buffer = new ArrayBuffer(2);
|
|
11
|
+
new DataView(buffer).setInt16(0, 256, true);
|
|
12
|
+
return new Int16Array(buffer)[0] === 256;
|
|
13
|
+
}
|
|
14
|
+
static getSystemEndianness() {
|
|
15
|
+
return this.isLittleEndian() ? 'LE' : 'BE';
|
|
16
|
+
}
|
|
17
|
+
static swapBytes(buffer) {
|
|
18
|
+
const result = new Uint8Array(buffer.length);
|
|
19
|
+
for (let i = 0; i < buffer.length; i += 2) {
|
|
20
|
+
if (i + 1 < buffer.length) {
|
|
21
|
+
result[i] = buffer[i + 1] || 0;
|
|
22
|
+
result[i + 1] = buffer[i] || 0;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
result[i] = buffer[i] || 0;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.EndianUtils = EndianUtils;
|
|
32
|
+
//# sourceMappingURL=EndianUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EndianUtils.js","sourceRoot":"","sources":["../../src/utils/EndianUtils.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,MAAa,WAAW;IACtB,MAAM,CAAC,cAAc;QACnB,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5C,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,mBAAmB;QACxB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,MAAkB;QACjC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAvBD,kCAuBC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DeukPack Performance Monitor
|
|
3
|
+
* Performance tracking and metrics
|
|
4
|
+
*/
|
|
5
|
+
export interface PerformanceMetrics {
|
|
6
|
+
parseTime: number;
|
|
7
|
+
generateTime: number;
|
|
8
|
+
serializeTime: number;
|
|
9
|
+
deserializeTime: number;
|
|
10
|
+
memoryUsage: number;
|
|
11
|
+
fileCount: number;
|
|
12
|
+
lineCount: number;
|
|
13
|
+
}
|
|
14
|
+
export declare class PerformanceMonitor {
|
|
15
|
+
private metrics;
|
|
16
|
+
getMetrics(): PerformanceMetrics;
|
|
17
|
+
reset(): void;
|
|
18
|
+
updateParseTime(time: number): void;
|
|
19
|
+
updateGenerateTime(time: number): void;
|
|
20
|
+
updateSerializeTime(time: number): void;
|
|
21
|
+
updateDeserializeTime(time: number): void;
|
|
22
|
+
updateMemoryUsage(usage: number): void;
|
|
23
|
+
updateFileCount(count: number): void;
|
|
24
|
+
updateLineCount(count: number): void;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=PerformanceMonitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PerformanceMonitor.d.ts","sourceRoot":"","sources":["../../src/utils/PerformanceMonitor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAQb;IAEF,UAAU,IAAI,kBAAkB;IAIhC,KAAK,IAAI,IAAI;IAYb,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAInC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAItC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIvC,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIzC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAItC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAGrC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* DeukPack Performance Monitor
|
|
4
|
+
* Performance tracking and metrics
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.PerformanceMonitor = void 0;
|
|
8
|
+
class PerformanceMonitor {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.metrics = {
|
|
11
|
+
parseTime: 0,
|
|
12
|
+
generateTime: 0,
|
|
13
|
+
serializeTime: 0,
|
|
14
|
+
deserializeTime: 0,
|
|
15
|
+
memoryUsage: 0,
|
|
16
|
+
fileCount: 0,
|
|
17
|
+
lineCount: 0
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
getMetrics() {
|
|
21
|
+
return { ...this.metrics };
|
|
22
|
+
}
|
|
23
|
+
reset() {
|
|
24
|
+
this.metrics = {
|
|
25
|
+
parseTime: 0,
|
|
26
|
+
generateTime: 0,
|
|
27
|
+
serializeTime: 0,
|
|
28
|
+
deserializeTime: 0,
|
|
29
|
+
memoryUsage: 0,
|
|
30
|
+
fileCount: 0,
|
|
31
|
+
lineCount: 0
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
updateParseTime(time) {
|
|
35
|
+
this.metrics.parseTime = time;
|
|
36
|
+
}
|
|
37
|
+
updateGenerateTime(time) {
|
|
38
|
+
this.metrics.generateTime = time;
|
|
39
|
+
}
|
|
40
|
+
updateSerializeTime(time) {
|
|
41
|
+
this.metrics.serializeTime = time;
|
|
42
|
+
}
|
|
43
|
+
updateDeserializeTime(time) {
|
|
44
|
+
this.metrics.deserializeTime = time;
|
|
45
|
+
}
|
|
46
|
+
updateMemoryUsage(usage) {
|
|
47
|
+
this.metrics.memoryUsage = usage;
|
|
48
|
+
}
|
|
49
|
+
updateFileCount(count) {
|
|
50
|
+
this.metrics.fileCount = count;
|
|
51
|
+
}
|
|
52
|
+
updateLineCount(count) {
|
|
53
|
+
this.metrics.lineCount = count;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.PerformanceMonitor = PerformanceMonitor;
|
|
57
|
+
//# sourceMappingURL=PerformanceMonitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PerformanceMonitor.js","sourceRoot":"","sources":["../../src/utils/PerformanceMonitor.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAYH,MAAa,kBAAkB;IAA/B;QACU,YAAO,GAAuB;YACpC,SAAS,EAAE,CAAC;YACZ,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,eAAe,EAAE,CAAC;YAClB,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;SACb,CAAC;IA6CJ,CAAC;IA3CC,UAAU;QACR,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,GAAG;YACb,SAAS,EAAE,CAAC;YACZ,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,eAAe,EAAE,CAAC;YAClB,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;SACb,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,IAAY;QAC1B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAChC,CAAC;IAED,kBAAkB,CAAC,IAAY;QAC7B,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IACnC,CAAC;IAED,mBAAmB,CAAC,IAAY;QAC9B,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,qBAAqB,CAAC,IAAY;QAChC,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IACtC,CAAC;IAED,iBAAiB,CAAC,KAAa;QAC7B,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;IACnC,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;IACjC,CAAC;CACF;AAtDD,gDAsDC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "deukpack",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "DeukPack — multi-format IDL pipeline (.deuk native, Protobuf, OpenAPI, JSON Schema, CSV, Thrift). Protobuf-aligned wire; fast C#/C++/JS codegen, CLI. v1: no Excel/table editor workflow",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"deukpack": "bin/deukpack.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"prepublishOnly": "npm run build",
|
|
12
|
+
"build": "tsc && node scripts/dist_csharp.js",
|
|
13
|
+
"build:native": "node-gyp rebuild",
|
|
14
|
+
"build:all": "npm run build && npm run build:cpp && npm run build:cs",
|
|
15
|
+
"build:cpp": "cd native/cpp && mkdir -p build && cd build && cmake .. && make",
|
|
16
|
+
"build:cs": "cd native/csharp && dotnet build -c Release",
|
|
17
|
+
"test": "jest",
|
|
18
|
+
"benchmark": "node benchmarks/performance.js",
|
|
19
|
+
"dev": "tsc --watch",
|
|
20
|
+
"clean": "rimraf dist native/cpp/build native/csharp/bin native/csharp/obj",
|
|
21
|
+
"sync:oss": "bash scripts/sync-to-oss.sh",
|
|
22
|
+
"sync:oss:apply": "bash scripts/sync-to-oss.sh --build --apply"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"deukpack",
|
|
26
|
+
"deuk",
|
|
27
|
+
"protocol-buffers",
|
|
28
|
+
"protobuf",
|
|
29
|
+
"thrift",
|
|
30
|
+
"typescript",
|
|
31
|
+
"performance",
|
|
32
|
+
"serialization",
|
|
33
|
+
"binary",
|
|
34
|
+
"cross-platform"
|
|
35
|
+
],
|
|
36
|
+
"author": "gplat-team",
|
|
37
|
+
"license": "Apache-2.0",
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"node-addon-api": "^7.0.0",
|
|
40
|
+
"nan": "^2.17.0"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@types/node": "^20.0.0",
|
|
44
|
+
"@types/jest": "^29.0.0",
|
|
45
|
+
"typescript": "^5.0.0",
|
|
46
|
+
"jest": "^29.0.0",
|
|
47
|
+
"ts-jest": "^29.0.0",
|
|
48
|
+
"rimraf": "^5.0.0",
|
|
49
|
+
"node-gyp": "^10.0.0",
|
|
50
|
+
"cmake-js": "^7.0.0"
|
|
51
|
+
},
|
|
52
|
+
"engines": {
|
|
53
|
+
"node": ">=16.0.0"
|
|
54
|
+
},
|
|
55
|
+
"gypfile": true,
|
|
56
|
+
"repository": {
|
|
57
|
+
"type": "git",
|
|
58
|
+
"url": "https://github.com/joygram/DeukPack.git"
|
|
59
|
+
},
|
|
60
|
+
"bugs": {
|
|
61
|
+
"url": "https://github.com/joygram/DeukPack/issues"
|
|
62
|
+
},
|
|
63
|
+
"homepage": "https://github.com/joygram/DeukPack#readme",
|
|
64
|
+
"files": [
|
|
65
|
+
"bin",
|
|
66
|
+
"scripts/build_deukpack.js",
|
|
67
|
+
"dist",
|
|
68
|
+
"LICENSE",
|
|
69
|
+
"NOTICE",
|
|
70
|
+
"README.md",
|
|
71
|
+
"README.ko.md",
|
|
72
|
+
"RELEASING.md"
|
|
73
|
+
],
|
|
74
|
+
"deukpack": {
|
|
75
|
+
"csharpRuntime": "dist/csharp"
|
|
76
|
+
}
|
|
77
|
+
}
|