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.
Files changed (122) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +6 -0
  3. package/README.ko.md +138 -0
  4. package/README.md +182 -0
  5. package/RELEASING.md +71 -0
  6. package/bin/deukpack.js +9 -0
  7. package/dist/ast/DeukPackASTBuilder.d.ts +153 -0
  8. package/dist/ast/DeukPackASTBuilder.d.ts.map +1 -0
  9. package/dist/ast/DeukPackASTBuilder.js +931 -0
  10. package/dist/ast/DeukPackASTBuilder.js.map +1 -0
  11. package/dist/codegen/CSharpGenerator.d.ts +136 -0
  12. package/dist/codegen/CSharpGenerator.d.ts.map +1 -0
  13. package/dist/codegen/CSharpGenerator.js +2303 -0
  14. package/dist/codegen/CSharpGenerator.js.map +1 -0
  15. package/dist/codegen/CodeGenerator.d.ts +11 -0
  16. package/dist/codegen/CodeGenerator.d.ts.map +1 -0
  17. package/dist/codegen/CodeGenerator.js +11 -0
  18. package/dist/codegen/CodeGenerator.js.map +1 -0
  19. package/dist/codegen/CppGenerator.d.ts +23 -0
  20. package/dist/codegen/CppGenerator.d.ts.map +1 -0
  21. package/dist/codegen/CppGenerator.js +215 -0
  22. package/dist/codegen/CppGenerator.js.map +1 -0
  23. package/dist/codegen/HighPerformanceCSharpGenerator.d.ts +29 -0
  24. package/dist/codegen/HighPerformanceCSharpGenerator.d.ts.map +1 -0
  25. package/dist/codegen/HighPerformanceCSharpGenerator.js +486 -0
  26. package/dist/codegen/HighPerformanceCSharpGenerator.js.map +1 -0
  27. package/dist/core/DeukPackEngine.d.ts +69 -0
  28. package/dist/core/DeukPackEngine.d.ts.map +1 -0
  29. package/dist/core/DeukPackEngine.js +379 -0
  30. package/dist/core/DeukPackEngine.js.map +1 -0
  31. package/dist/core/DeukPackGenerator.d.ts +9 -0
  32. package/dist/core/DeukPackGenerator.d.ts.map +1 -0
  33. package/dist/core/DeukPackGenerator.js +15 -0
  34. package/dist/core/DeukPackGenerator.js.map +1 -0
  35. package/dist/core/DeukParser.d.ts +12 -0
  36. package/dist/core/DeukParser.d.ts.map +1 -0
  37. package/dist/core/DeukParser.js +27 -0
  38. package/dist/core/DeukParser.js.map +1 -0
  39. package/dist/core/IdlParser.d.ts +27 -0
  40. package/dist/core/IdlParser.d.ts.map +1 -0
  41. package/dist/core/IdlParser.js +157 -0
  42. package/dist/core/IdlParser.js.map +1 -0
  43. package/dist/core/ProtoParser.d.ts +12 -0
  44. package/dist/core/ProtoParser.d.ts.map +1 -0
  45. package/dist/core/ProtoParser.js +27 -0
  46. package/dist/core/ProtoParser.js.map +1 -0
  47. package/dist/csharp/DpExcelProtocol.cs +3005 -0
  48. package/dist/csharp/DpProtocolLibrary.cs +13 -0
  49. package/dist/index.d.ts +22 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +43 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/lexer/DeukLexer.d.ts +31 -0
  54. package/dist/lexer/DeukLexer.d.ts.map +1 -0
  55. package/dist/lexer/DeukLexer.js +292 -0
  56. package/dist/lexer/DeukLexer.js.map +1 -0
  57. package/dist/lexer/IdlLexer.d.ts +33 -0
  58. package/dist/lexer/IdlLexer.d.ts.map +1 -0
  59. package/dist/lexer/IdlLexer.js +286 -0
  60. package/dist/lexer/IdlLexer.js.map +1 -0
  61. package/dist/native/NativeDeukPackEngine.d.ts +30 -0
  62. package/dist/native/NativeDeukPackEngine.d.ts.map +1 -0
  63. package/dist/native/NativeDeukPackEngine.js +99 -0
  64. package/dist/native/NativeDeukPackEngine.js.map +1 -0
  65. package/dist/proto/ProtoASTBuilder.d.ts +29 -0
  66. package/dist/proto/ProtoASTBuilder.d.ts.map +1 -0
  67. package/dist/proto/ProtoASTBuilder.js +239 -0
  68. package/dist/proto/ProtoASTBuilder.js.map +1 -0
  69. package/dist/proto/ProtoLexer.d.ts +29 -0
  70. package/dist/proto/ProtoLexer.d.ts.map +1 -0
  71. package/dist/proto/ProtoLexer.js +264 -0
  72. package/dist/proto/ProtoLexer.js.map +1 -0
  73. package/dist/proto/ProtoTypes.d.ts +40 -0
  74. package/dist/proto/ProtoTypes.d.ts.map +1 -0
  75. package/dist/proto/ProtoTypes.js +37 -0
  76. package/dist/proto/ProtoTypes.js.map +1 -0
  77. package/dist/protocols/BinaryProtocol.d.ts +7 -0
  78. package/dist/protocols/BinaryProtocol.d.ts.map +1 -0
  79. package/dist/protocols/BinaryProtocol.js +11 -0
  80. package/dist/protocols/BinaryProtocol.js.map +1 -0
  81. package/dist/protocols/BinaryWriter.d.ts +22 -0
  82. package/dist/protocols/BinaryWriter.d.ts.map +1 -0
  83. package/dist/protocols/BinaryWriter.js +104 -0
  84. package/dist/protocols/BinaryWriter.js.map +1 -0
  85. package/dist/protocols/CompactProtocol.d.ts +7 -0
  86. package/dist/protocols/CompactProtocol.d.ts.map +1 -0
  87. package/dist/protocols/CompactProtocol.js +11 -0
  88. package/dist/protocols/CompactProtocol.js.map +1 -0
  89. package/dist/protocols/ExcelProtocol.d.ts +98 -0
  90. package/dist/protocols/ExcelProtocol.d.ts.map +1 -0
  91. package/dist/protocols/ExcelProtocol.js +639 -0
  92. package/dist/protocols/ExcelProtocol.js.map +1 -0
  93. package/dist/protocols/JsonProtocol.d.ts +68 -0
  94. package/dist/protocols/JsonProtocol.d.ts.map +1 -0
  95. package/dist/protocols/JsonProtocol.js +422 -0
  96. package/dist/protocols/JsonProtocol.js.map +1 -0
  97. package/dist/protocols/WireProtocol.d.ts +348 -0
  98. package/dist/protocols/WireProtocol.d.ts.map +1 -0
  99. package/dist/protocols/WireProtocol.js +912 -0
  100. package/dist/protocols/WireProtocol.js.map +1 -0
  101. package/dist/serialization/WireDeserializer.d.ts +8 -0
  102. package/dist/serialization/WireDeserializer.d.ts.map +1 -0
  103. package/dist/serialization/WireDeserializer.js +13 -0
  104. package/dist/serialization/WireDeserializer.js.map +1 -0
  105. package/dist/serialization/WireSerializer.d.ts +20 -0
  106. package/dist/serialization/WireSerializer.d.ts.map +1 -0
  107. package/dist/serialization/WireSerializer.js +100 -0
  108. package/dist/serialization/WireSerializer.js.map +1 -0
  109. package/dist/types/DeukPackTypes.d.ts +291 -0
  110. package/dist/types/DeukPackTypes.d.ts.map +1 -0
  111. package/dist/types/DeukPackTypes.js +76 -0
  112. package/dist/types/DeukPackTypes.js.map +1 -0
  113. package/dist/utils/EndianUtils.d.ts +11 -0
  114. package/dist/utils/EndianUtils.d.ts.map +1 -0
  115. package/dist/utils/EndianUtils.js +32 -0
  116. package/dist/utils/EndianUtils.js.map +1 -0
  117. package/dist/utils/PerformanceMonitor.d.ts +26 -0
  118. package/dist/utils/PerformanceMonitor.d.ts.map +1 -0
  119. package/dist/utils/PerformanceMonitor.js +57 -0
  120. package/dist/utils/PerformanceMonitor.js.map +1 -0
  121. package/package.json +77 -0
  122. 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
+ }