@genesislcap/event-type-codegen 15.19.4 → 15.19.5

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 (35) hide show
  1. package/README.md +5 -0
  2. package/dist/kotlin-parse-utils.d.ts +6 -1
  3. package/dist/kotlin-parse-utils.d.ts.map +1 -1
  4. package/dist/kotlin-parse-utils.js +30 -1
  5. package/dist/kotlin-parse-utils.js.map +1 -1
  6. package/dist/naming.d.ts +6 -0
  7. package/dist/naming.d.ts.map +1 -1
  8. package/dist/naming.js +24 -1
  9. package/dist/naming.js.map +1 -1
  10. package/dist/parse-dao.d.ts +3 -3
  11. package/dist/parse-dao.d.ts.map +1 -1
  12. package/dist/parse-dao.js +7 -5
  13. package/dist/parse-dao.js.map +1 -1
  14. package/dist/parse-enums.d.ts +46 -7
  15. package/dist/parse-enums.d.ts.map +1 -1
  16. package/dist/parse-enums.js +131 -33
  17. package/dist/parse-enums.js.map +1 -1
  18. package/dist/parse-kotlin.d.ts +10 -2
  19. package/dist/parse-kotlin.d.ts.map +1 -1
  20. package/dist/parse-kotlin.js +10 -5
  21. package/dist/parse-kotlin.js.map +1 -1
  22. package/dist/render.d.ts.map +1 -1
  23. package/dist/render.js +26 -15
  24. package/dist/render.js.map +1 -1
  25. package/dist/types.d.ts +14 -0
  26. package/dist/types.d.ts.map +1 -1
  27. package/package.json +2 -2
  28. package/test/fixtures/client-out/genesis-event-types.ts +58 -0
  29. package/test/fixtures/golden/genesis-event-types.ts +58 -0
  30. package/test/fixtures/mini-server/generated-dao/global/genesis/gen/dao/Axe.kt +38 -0
  31. package/test/fixtures/mini-server/generated-dao/global/genesis/gen/dao/Rfq.kt +26 -0
  32. package/test/fixtures/mini-server/generated-dao/global/genesis/gen/dao/enums/example/axe/Direction.kt +6 -0
  33. package/test/fixtures/mini-server/generated-dao/global/genesis/gen/dao/enums/example/axe/Status.kt +8 -0
  34. package/test/fixtures/mini-server/generated-dao/global/genesis/gen/dao/enums/example/rfq/Direction.kt +6 -0
  35. package/test/fixtures/mini-server/generated-dao/global/genesis/gen/dao/enums/example/rfq/Status.kt +9 -0
package/README.md CHANGED
@@ -54,6 +54,11 @@ In the showcase server Gradle build, `generateDao` is `finalizedBy` `generateEve
54
54
  - Class-based handler sources named `*EventHandler.kt` under a `dto/` path are skipped. The `dto/**` glob is for input `data class`es only; those files are usually `SyncValidatingEventHandler` implementations and are not PAL `eventHandler { }` scripts. PAL handlers in `*-eventhandler.kts` (and other `handlerScan` paths) are still discovered.
55
55
  - Generate DAO sources (Gradle) before client codegen in CI if the trees are not committed.
56
56
  - Dictionary **ENUM** fields: string literal unions when `enum class` and/or companion `Field.Type.ENUM` `values = "…"` appear under `generatedDaoSources` (`gen/dao/**/*.kt`).
57
+ - Enum exports are named after the Kotlin enum, and are qualified with the owning table only
58
+ when tables disagree. Genesis generates one enum package per table, so several tables can
59
+ declare `Status`: identical value sets share a single `Status` export, differing ones are
60
+ emitted as `AxeStatus` / `RfqStatus` / `OrderStatus` so no table's fields point at another's
61
+ values. A field's own enum is resolved through its DAO file's `import`, not by simple name.
57
62
 
58
63
  ## Typed commits
59
64
 
@@ -1,6 +1,11 @@
1
- import type { KotlinProperty } from './types';
1
+ import type { KotlinFileScope, KotlinProperty } from './types';
2
2
  /** Strip Kotlin line and block comments from source before structural parsing. */
3
3
  export declare const stripKotlinComments: (content: string) => string;
4
+ /**
5
+ * Read a file's `package` and `import` header. Genesis generates one enum package per table, so
6
+ * the imports are what tell `Status` in Axe.kt apart from `Status` in Rfq.kt.
7
+ */
8
+ export declare const parseKotlinFileScope: (content: string) => KotlinFileScope;
4
9
  /**
5
10
  * Strip annotations including use-site targets (field:/param:/get: prefixes).
6
11
  * Nested call args in annotations are not fully balanced (secondary limitation).
@@ -1 +1 @@
1
- {"version":3,"file":"kotlin-parse-utils.d.ts","sourceRoot":"","sources":["../src/kotlin-parse-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,kFAAkF;AAClF,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,KAAG,MACa,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,SAAS,MAAM,KAAG,MAI9C,CAAC;AAEZ,2FAA2F;AAC3F,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,MAAM,EAgBtD,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,gFAAgF;IAChF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAcF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,UAAS,0BAA+B,KACvC,cAAc,GAAG,IAcnB,CAAC"}
1
+ {"version":3,"file":"kotlin-parse-utils.d.ts","sourceRoot":"","sources":["../src/kotlin-parse-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE/D,kFAAkF;AAClF,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,KAAG,MACa,CAAC;AAOpE;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,KAAG,eAqBtD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,SAAS,MAAM,KAAG,MAI9C,CAAC;AAEZ,2FAA2F;AAC3F,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,MAAM,EAgBtD,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,gFAAgF;IAChF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAcF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,UAAS,0BAA+B,KACvC,cAAc,GAAG,IAcnB,CAAC"}
@@ -1,9 +1,38 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseKotlinProperty = exports.splitTopLevelArgs = exports.stripKotlinAnnotations = exports.stripKotlinComments = void 0;
3
+ exports.parseKotlinProperty = exports.splitTopLevelArgs = exports.stripKotlinAnnotations = exports.parseKotlinFileScope = exports.stripKotlinComments = void 0;
4
4
  /** Strip Kotlin line and block comments from source before structural parsing. */
5
5
  const stripKotlinComments = (content) => content.replace(/\/\*[\s\S]*?\*\//g, '').replace(/\/\/.*$/gm, '');
6
6
  exports.stripKotlinComments = stripKotlinComments;
7
+ const STAR_IMPORT_SUFFIX = '.*';
8
+ const PACKAGE_REGEX = /(?:^|\n)\s*package\s+([\w.]+)/;
9
+ const IMPORT_REGEX = /(?:^|\n)\s*import\s+((?:\w+\.)*(?:\w+|\*))(?:\s+as\s+(\w+))?/g;
10
+ /**
11
+ * Read a file's `package` and `import` header. Genesis generates one enum package per table, so
12
+ * the imports are what tell `Status` in Axe.kt apart from `Status` in Rfq.kt.
13
+ */
14
+ const parseKotlinFileScope = (content) => {
15
+ var _a, _b, _c;
16
+ const imports = new Map();
17
+ const starImports = [];
18
+ IMPORT_REGEX.lastIndex = 0;
19
+ let match;
20
+ while ((match = IMPORT_REGEX.exec(content)) !== null) {
21
+ const target = match[1];
22
+ if (target.endsWith(STAR_IMPORT_SUFFIX)) {
23
+ starImports.push(target.slice(0, -STAR_IMPORT_SUFFIX.length));
24
+ continue;
25
+ }
26
+ const simpleName = (_a = match[2]) !== null && _a !== void 0 ? _a : target.split('.').pop();
27
+ imports.set(simpleName, target);
28
+ }
29
+ return {
30
+ packageName: (_c = (_b = content.match(PACKAGE_REGEX)) === null || _b === void 0 ? void 0 : _b[1]) !== null && _c !== void 0 ? _c : '',
31
+ imports,
32
+ starImports,
33
+ };
34
+ };
35
+ exports.parseKotlinFileScope = parseKotlinFileScope;
7
36
  /**
8
37
  * Strip annotations including use-site targets (field:/param:/get: prefixes).
9
38
  * Nested call args in annotations are not fully balanced (secondary limitation).
@@ -1 +1 @@
1
- {"version":3,"file":"kotlin-parse-utils.js","sourceRoot":"","sources":["../src/kotlin-parse-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kotlin-parse-utils.js","sourceRoot":"","sources":["../src/kotlin-parse-utils.ts"],"names":[],"mappings":"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"}
package/dist/naming.d.ts CHANGED
@@ -15,4 +15,10 @@ export declare const dtoToDetailsInterfaceName: (dtoName: string) => string;
15
15
  export declare const handlerInputToDetailsInterfaceName: (inputType: string) => string;
16
16
  /** Per-event class carrying MESSAGE_TYPE and DETAILS (one per PAL handler). */
17
17
  export declare const eventNameToEventClassName: (eventName: string) => string;
18
+ /**
19
+ * `…enums.fi_portal.order_fill` → `['OrderFill', 'FiPortalOrderFill', …]`, widest last.
20
+ * Used to disambiguate a Kotlin identifier declared under more than one package (e.g. an enum
21
+ * simple name Genesis emits once per table) by qualifying it with its owning table/dictionary.
22
+ */
23
+ export declare const ownerPrefixes: (packageName: string) => string[];
18
24
  //# sourceMappingURL=naming.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,GAAI,MAAM,MAAM,KAAG,MAwC5D,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,GAAI,cAAc,MAAM,KAAG,MACpB,CAAC;AAE9C,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,GAAI,SAAS,MAAM,KAAG,MACC,CAAC;AAE9D,6EAA6E;AAC7E,eAAO,MAAM,kCAAkC,GAAI,WAAW,MAAM,KAAG,MAMtE,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,yBAAyB,GAAI,WAAW,MAAM,KAAG,MAG7D,CAAC"}
1
+ {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,GAAI,MAAM,MAAM,KAAG,MAwC5D,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,GAAI,cAAc,MAAM,KAAG,MACpB,CAAC;AAE9C,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,GAAI,SAAS,MAAM,KAAG,MACC,CAAC;AAE9D,6EAA6E;AAC7E,eAAO,MAAM,kCAAkC,GAAI,WAAW,MAAM,KAAG,MAMtE,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,yBAAyB,GAAI,WAAW,MAAM,KAAG,MAG7D,CAAC;AAaF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,aAAa,MAAM,KAAG,MAAM,EAOzD,CAAC"}
package/dist/naming.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.eventNameToEventClassName = exports.handlerInputToDetailsInterfaceName = exports.dtoToDetailsInterfaceName = exports.kotlinPropertyToWireField = exports.toUpperUnderscoreWithAcronyms = void 0;
3
+ exports.ownerPrefixes = exports.eventNameToEventClassName = exports.handlerInputToDetailsInterfaceName = exports.dtoToDetailsInterfaceName = exports.kotlinPropertyToWireField = exports.toUpperUnderscoreWithAcronyms = void 0;
4
4
  const change_case_1 = require("change-case");
5
5
  /**
6
6
  * Convert camelCase / PascalCase to UPPER_UNDERSCORE, inserting `_` before digits and
@@ -70,4 +70,27 @@ const eventNameToEventClassName = (eventName) => {
70
70
  return `Event${(0, change_case_1.pascalCase)(base)}`;
71
71
  };
72
72
  exports.eventNameToEventClassName = eventNameToEventClassName;
73
+ /** How many trailing package segments a qualifier may grow to before falling back to a number. */
74
+ const MAX_OWNER_SEGMENTS = 3;
75
+ /**
76
+ * Package segments that are an artefact of the generated tree's layout, not a Genesis dictionary
77
+ * or table name — dropped so a widened qualifier still reads as an owner rather than a file path.
78
+ * `global.genesis.gen.dao.enums` is the fixed prefix every Genesis-generated enum package starts
79
+ * with (see genesis-server `DAOGenerator.ENUM_PACKAGE`); only what follows it varies per table.
80
+ */
81
+ const OWNER_SEGMENT_STOPWORDS = new Set(['global', 'genesis', 'gen', 'dao', 'enums']);
82
+ /**
83
+ * `…enums.fi_portal.order_fill` → `['OrderFill', 'FiPortalOrderFill', …]`, widest last.
84
+ * Used to disambiguate a Kotlin identifier declared under more than one package (e.g. an enum
85
+ * simple name Genesis emits once per table) by qualifying it with its owning table/dictionary.
86
+ */
87
+ const ownerPrefixes = (packageName) => {
88
+ const segments = packageName.split('.').filter((s) => s && !OWNER_SEGMENT_STOPWORDS.has(s));
89
+ const prefixes = [];
90
+ for (let take = 1; take <= Math.min(segments.length, MAX_OWNER_SEGMENTS); take += 1) {
91
+ prefixes.push((0, change_case_1.pascalCase)(segments.slice(segments.length - take).join('_')));
92
+ }
93
+ return prefixes;
94
+ };
95
+ exports.ownerPrefixes = ownerPrefixes;
73
96
  //# sourceMappingURL=naming.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"naming.js","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { KotlinDto } from './types';
1
+ import type { KotlinDto, KotlinFileScope } from './types';
2
2
  /**
3
3
  * Generated Genesis DAO entities use a primary constructor with annotated
4
4
  * `public var` parameters (and sometimes bare params for sequenced PKs).
@@ -8,11 +8,11 @@ export declare const isGeneratedDaoEntityFile: (filePath: string) => boolean;
8
8
  /**
9
9
  * Nested `data class By*` index types inside generated entity Kotlin (e.g. Trade.ById).
10
10
  */
11
- export declare const extractGeneratedDaoIndices: (content: string, filePath: string) => KotlinDto[];
11
+ export declare const extractGeneratedDaoIndices: (content: string, filePath: string, fileScope: KotlinFileScope) => KotlinDto[];
12
12
  /**
13
13
  * Extract table entity classes from generated DAO Kotlin sources.
14
14
  * Prefer entities that look like Genesis table DAOs (constructor + TableEntity).
15
15
  */
16
- export declare const extractGeneratedDaoEntities: (content: string, filePath: string) => KotlinDto[];
16
+ export declare const extractGeneratedDaoEntities: (content: string, filePath: string, fileScope: KotlinFileScope) => KotlinDto[];
17
17
  export declare const parseGeneratedDaosFromSources: (files: string[]) => Map<string, KotlinDto>;
18
18
  //# sourceMappingURL=parse-dao.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-dao.d.ts","sourceRoot":"","sources":["../src/parse-dao.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,SAAS,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,OAG3D,CAAC;AAUF;;GAEG;AACH,eAAO,MAAM,0BAA0B,GAAI,SAAS,MAAM,EAAE,UAAU,MAAM,KAAG,SAAS,EAyCvF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,GAAI,SAAS,MAAM,EAAE,UAAU,MAAM,KAAG,SAAS,EAmCxF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,OAAO,MAAM,EAAE,KAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAmBpF,CAAC"}
1
+ {"version":3,"file":"parse-dao.d.ts","sourceRoot":"","sources":["../src/parse-dao.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAkB,MAAM,SAAS,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,OAG3D,CAAC;AAUF;;GAEG;AACH,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,EACf,UAAU,MAAM,EAChB,WAAW,eAAe,KACzB,SAAS,EA0CX,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,GACtC,SAAS,MAAM,EACf,UAAU,MAAM,EAChB,WAAW,eAAe,KACzB,SAAS,EAmCX,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,OAAO,MAAM,EAAE,KAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAoBpF,CAAC"}
package/dist/parse-dao.js CHANGED
@@ -23,7 +23,7 @@ const entityNameFromDaoFile = (filePath) => {
23
23
  /**
24
24
  * Nested `data class By*` index types inside generated entity Kotlin (e.g. Trade.ById).
25
25
  */
26
- const extractGeneratedDaoIndices = (content, filePath) => {
26
+ const extractGeneratedDaoIndices = (content, filePath, fileScope) => {
27
27
  const entityName = entityNameFromDaoFile(filePath);
28
28
  if (!entityName)
29
29
  return [];
@@ -59,6 +59,7 @@ const extractGeneratedDaoIndices = (content, filePath) => {
59
59
  name: `${entityName}.${indexName}`,
60
60
  properties,
61
61
  filePath,
62
+ fileScope,
62
63
  });
63
64
  }
64
65
  return results;
@@ -68,7 +69,7 @@ exports.extractGeneratedDaoIndices = extractGeneratedDaoIndices;
68
69
  * Extract table entity classes from generated DAO Kotlin sources.
69
70
  * Prefer entities that look like Genesis table DAOs (constructor + TableEntity).
70
71
  */
71
- const extractGeneratedDaoEntities = (content, filePath) => {
72
+ const extractGeneratedDaoEntities = (content, filePath, fileScope) => {
72
73
  const results = [];
73
74
  // Matches: public class Trade public constructor( ... ) :
74
75
  const classRegex = /(?:^|\n)\s*(?:public\s+)?class\s+(\w+)\s+(?:public\s+)?constructor\s*\(/gm;
@@ -97,7 +98,7 @@ const extractGeneratedDaoEntities = (content, filePath) => {
97
98
  .map((segment) => (0, kotlin_parse_utils_1.parseKotlinProperty)(segment, { allowBareParams: true }))
98
99
  .filter((p) => p != null);
99
100
  if (properties.length > 0) {
100
- results.push({ name, properties, filePath });
101
+ results.push({ name, properties, filePath, fileScope });
101
102
  }
102
103
  }
103
104
  return results;
@@ -109,12 +110,13 @@ const parseGeneratedDaosFromSources = (files) => {
109
110
  if (!(0, exports.isGeneratedDaoEntityFile)(filePath))
110
111
  continue;
111
112
  const content = (0, kotlin_parse_utils_1.stripKotlinComments)((0, node_fs_1.readFileSync)(filePath, 'utf8'));
112
- for (const entity of (0, exports.extractGeneratedDaoEntities)(content, filePath)) {
113
+ const fileScope = (0, kotlin_parse_utils_1.parseKotlinFileScope)(content);
114
+ for (const entity of (0, exports.extractGeneratedDaoEntities)(content, filePath, fileScope)) {
113
115
  if (!daos.has(entity.name)) {
114
116
  daos.set(entity.name, entity);
115
117
  }
116
118
  }
117
- for (const index of (0, exports.extractGeneratedDaoIndices)(content, filePath)) {
119
+ for (const index of (0, exports.extractGeneratedDaoIndices)(content, filePath, fileScope)) {
118
120
  if (!daos.has(index.name)) {
119
121
  daos.set(index.name, index);
120
122
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parse-dao.js","sourceRoot":"","sources":["../src/parse-dao.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-dao.js","sourceRoot":"","sources":["../src/parse-dao.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,55 @@
1
- export type KotlinEnumMap = Map<string, readonly string[]>;
1
+ import type { KotlinFileScope } from './types';
2
+ /** One `enum class` declaration, identified by its fully-qualified Kotlin name. */
3
+ export type KotlinEnumDef = {
4
+ /** Simple Kotlin name, e.g. `Status`. */
5
+ name: string;
6
+ /** Declaring package, e.g. `global.genesis.gen.dao.enums.fi_portal.axe` ('' when absent). */
7
+ packageName: string;
8
+ /** `<packageName>.<name>`, or just `name` when the file declares no package. */
9
+ fqn: string;
10
+ values: readonly string[];
11
+ };
12
+ /**
13
+ * Declared enums keyed by FULLY-QUALIFIED name. Genesis generates one enum package per table
14
+ * (`…enums.fi_portal.axe.Status`, `…enums.fi_portal.rfq.Status`), so the simple name alone is
15
+ * not a key — keying by it let one table's values silently stand in for another's.
16
+ */
17
+ export type KotlinEnumMap = Map<string, KotlinEnumDef>;
2
18
  /** Any generated DAO tree Kotlin (entities, enums, xref, etc.). */
3
19
  export declare const isGeneratedDaoTreeFile: (filePath: string) => boolean;
4
20
  /** `enum class Side { BUY, SELL }` in generated DAO sources. */
5
- export declare const extractEnumClassesFromContent: (content: string) => KotlinEnumMap;
21
+ export declare const extractEnumClassesFromContent: (content: string, scope?: KotlinFileScope) => KotlinEnumMap;
6
22
  /**
7
23
  * Companion `Field` metadata on generated entities, e.g.
8
24
  * `values = "STANDARD PREMIUM TRIAL"` on `NonNullable<Tier>(Field(… type = Field.Type.ENUM …))`.
25
+ * The entity file imports the enum from its own table package (real generated code never
26
+ * declares the enum inline), so an explicit `import` is what turns `Tier` into the
27
+ * fully-qualified name this map is keyed by. Without one, we cannot know which package the
28
+ * type actually belongs to — qualifying it with the ENTITY's own package would invent an FQN
29
+ * nothing declares, and that phantom entry could then wrongly stand in for (or split apart) a
30
+ * real declaration in `resolveEnumExportNames`. So we skip it, the same way `uniqueBySimpleName`
31
+ * refuses to guess an ambiguous reference.
9
32
  */
10
- export declare const extractCompanionFieldEnumValues: (content: string) => KotlinEnumMap;
33
+ export declare const extractCompanionFieldEnumValues: (content: string, scope?: KotlinFileScope) => KotlinEnumMap;
11
34
  export declare const parseGeneratedEnumsFromSources: (files: string[]) => KotlinEnumMap;
12
- export declare const kotlinEnumSimpleName: (kotlinType: string) => string;
13
- export declare const kotlinEnumTypeToTs: (kotlinType: string, enums: KotlinEnumMap) => string | null;
14
- /** Use generated enum type name when declared (paired with `renderEnumExports`). */
15
- export declare const kotlinEnumTypeRef: (kotlinType: string, enums: KotlinEnumMap) => string | null;
35
+ /**
36
+ * Resolve a type name AS WRITTEN in the file described by `scope` to the enum it declares.
37
+ * Kotlin resolution order: explicit import (incl. aliases) → same package → star import. `scope`
38
+ * is required rather than optional: every real `KotlinDto` (from either generated-DAO or custom
39
+ * DTO parsing) always carries its declaring file's scope, so a caller with none to give us would
40
+ * itself be a bug worth surfacing at the call site — not something to paper over with a
41
+ * global simple-name guess. That guess is exactly the collision this resolver exists to prevent,
42
+ * just reached one level removed (a hand-written DTO field using an unrelated type that happens
43
+ * to share a name with a generated enum).
44
+ */
45
+ export declare const resolveKotlinEnum: (kotlinType: string, enums: KotlinEnumMap, scope: KotlinFileScope) => KotlinEnumDef | null;
46
+ /**
47
+ * Assign every declared enum the name it is exported under.
48
+ *
49
+ * A simple name declared by exactly one table — or by several that agree on the values — keeps
50
+ * it (`Direction`). When tables disagree, EVERY declaration of that name is qualified with its
51
+ * owning table (`AxeStatus`, `RfqStatus`, `OrderStatus`) so no table's values can be exported
52
+ * under a bare name that another table's fields also point at.
53
+ */
54
+ export declare const resolveEnumExportNames: (enums: KotlinEnumMap) => Map<string, string>;
16
55
  //# sourceMappingURL=parse-enums.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-enums.d.ts","sourceRoot":"","sources":["../src/parse-enums.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;AAI3D,mEAAmE;AACnE,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,KAAG,OAGzD,CAAC;AASF,gEAAgE;AAChE,eAAO,MAAM,6BAA6B,GAAI,SAAS,MAAM,KAAG,aAc/D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,+BAA+B,GAAI,SAAS,MAAM,KAAG,aAyBjE,CAAC;AAUF,eAAO,MAAM,8BAA8B,GAAI,OAAO,MAAM,EAAE,KAAG,aAWhE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,YAAY,MAAM,KAAG,MAGzD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,YAAY,MAAM,EAAE,OAAO,aAAa,KAAG,MAAM,GAAG,IAKtF,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,GAAI,YAAY,MAAM,EAAE,OAAO,aAAa,KAAG,MAAM,GAAG,IAGrF,CAAC"}
1
+ {"version":3,"file":"parse-enums.d.ts","sourceRoot":"","sources":["../src/parse-enums.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,mFAAmF;AACnF,MAAM,MAAM,aAAa,GAAG;IAC1B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,6FAA6F;IAC7F,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AASvD,mEAAmE;AACnE,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,KAAG,OAGzD,CAAC;AASF,gEAAgE;AAChE,eAAO,MAAM,6BAA6B,GACxC,SAAS,MAAM,EACf,QAAO,eAA6B,KACnC,aAeF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,+BAA+B,GAC1C,SAAS,MAAM,EACf,QAAO,eAA6B,KACnC,aAgCF,CAAC;AAUF,eAAO,MAAM,8BAA8B,GAAI,OAAO,MAAM,EAAE,KAAG,aAmBhE,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,MAAM,EAClB,OAAO,aAAa,EACpB,OAAO,eAAe,KACrB,aAAa,GAAG,IAmBlB,CAAC;AASF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,OAAO,aAAa,KAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CA2C/E,CAAC"}
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.kotlinEnumTypeRef = exports.kotlinEnumTypeToTs = exports.kotlinEnumSimpleName = exports.parseGeneratedEnumsFromSources = exports.extractCompanionFieldEnumValues = exports.extractEnumClassesFromContent = exports.isGeneratedDaoTreeFile = void 0;
3
+ exports.resolveEnumExportNames = exports.resolveKotlinEnum = exports.parseGeneratedEnumsFromSources = exports.extractCompanionFieldEnumValues = exports.extractEnumClassesFromContent = exports.isGeneratedDaoTreeFile = void 0;
4
4
  const node_fs_1 = require("node:fs");
5
+ const kotlin_parse_utils_1 = require("./kotlin-parse-utils");
6
+ const naming_1 = require("./naming");
5
7
  const KOTLIN_FILE_EXTENSION = '.kt';
8
+ const EMPTY_SCOPE = { packageName: '', imports: new Map(), starImports: [] };
9
+ const qualify = (packageName, name) => packageName ? `${packageName}.${name}` : name;
6
10
  /** Any generated DAO tree Kotlin (entities, enums, xref, etc.). */
7
11
  const isGeneratedDaoTreeFile = (filePath) => {
8
12
  const normalized = filePath.replace(/\\/g, '/');
@@ -15,15 +19,16 @@ const parseEnumMembers = (body) => body
15
19
  .map((part) => { var _a, _b; return (_b = (_a = part.split(/\s+/)[0]) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : ''; })
16
20
  .filter((name) => /^\w+$/.test(name));
17
21
  /** `enum class Side { BUY, SELL }` in generated DAO sources. */
18
- const extractEnumClassesFromContent = (content) => {
22
+ const extractEnumClassesFromContent = (content, scope = EMPTY_SCOPE) => {
19
23
  const enums = new Map();
20
24
  const enumRegex = /(?:^|\n)\s*(?:public\s+)?enum\s+class\s+(\w+)\s*\{([^}]*)\}/gm;
21
25
  let match;
22
26
  while ((match = enumRegex.exec(content)) !== null) {
23
27
  const name = match[1];
24
- const members = parseEnumMembers(match[2]);
25
- if (members.length > 0) {
26
- enums.set(name, members);
28
+ const values = parseEnumMembers(match[2]);
29
+ if (values.length > 0) {
30
+ const fqn = qualify(scope.packageName, name);
31
+ enums.set(fqn, { name, packageName: scope.packageName, fqn, values });
27
32
  }
28
33
  }
29
34
  return enums;
@@ -32,10 +37,17 @@ exports.extractEnumClassesFromContent = extractEnumClassesFromContent;
32
37
  /**
33
38
  * Companion `Field` metadata on generated entities, e.g.
34
39
  * `values = "STANDARD PREMIUM TRIAL"` on `NonNullable<Tier>(Field(… type = Field.Type.ENUM …))`.
40
+ * The entity file imports the enum from its own table package (real generated code never
41
+ * declares the enum inline), so an explicit `import` is what turns `Tier` into the
42
+ * fully-qualified name this map is keyed by. Without one, we cannot know which package the
43
+ * type actually belongs to — qualifying it with the ENTITY's own package would invent an FQN
44
+ * nothing declares, and that phantom entry could then wrongly stand in for (or split apart) a
45
+ * real declaration in `resolveEnumExportNames`. So we skip it, the same way `uniqueBySimpleName`
46
+ * refuses to guess an ambiguous reference.
35
47
  */
36
- const extractCompanionFieldEnumValues = (content) => {
48
+ const extractCompanionFieldEnumValues = (content, scope = EMPTY_SCOPE) => {
37
49
  const enums = new Map();
38
- const blockRegex = /public\s+val\s+\w+:\s*NonNullable<(\w+)>\s*=\s*NonNullable<\1>\(Field\(([\s\S]*?)\)\)/g;
50
+ const blockRegex = /public\s+val\s+\w+:\s*(?:NonNullable|Nullable)<(\w+)>\s*=\s*(?:NonNullable|Nullable)<\1>\(Field\(([\s\S]*?)\)\)/g;
39
51
  let match;
40
52
  while ((match = blockRegex.exec(content)) !== null) {
41
53
  const enumTypeName = match[1];
@@ -45,54 +57,140 @@ const extractCompanionFieldEnumValues = (content) => {
45
57
  const valuesMatch = fieldBody.match(/values\s*=\s*"([^"]+)"/);
46
58
  if (!valuesMatch)
47
59
  continue;
48
- const literals = valuesMatch[1]
60
+ const values = valuesMatch[1]
49
61
  .trim()
50
62
  .split(/\s+/)
51
63
  .filter((value) => value.length > 0);
52
- if (literals.length > 0) {
53
- enums.set(enumTypeName, literals);
64
+ const fqn = scope.imports.get(enumTypeName);
65
+ if (values.length > 0 && fqn) {
66
+ const dot = fqn.lastIndexOf('.');
67
+ enums.set(fqn, {
68
+ name: dot === -1 ? fqn : fqn.slice(dot + 1),
69
+ packageName: dot === -1 ? '' : fqn.slice(0, dot),
70
+ fqn,
71
+ values,
72
+ });
54
73
  }
55
74
  }
56
75
  return enums;
57
76
  };
58
77
  exports.extractCompanionFieldEnumValues = extractCompanionFieldEnumValues;
59
78
  const mergeEnumMaps = (into, from) => {
60
- for (const [name, values] of from) {
61
- if (!into.has(name)) {
62
- into.set(name, values);
79
+ for (const [fqn, def] of from) {
80
+ if (!into.has(fqn)) {
81
+ into.set(fqn, def);
63
82
  }
64
83
  }
65
84
  };
66
85
  const parseGeneratedEnumsFromSources = (files) => {
67
- const enums = new Map();
86
+ const declaredEnums = new Map();
87
+ const companionEnums = new Map();
68
88
  for (const filePath of files) {
69
89
  if (!(0, exports.isGeneratedDaoTreeFile)(filePath))
70
90
  continue;
71
- const content = (0, node_fs_1.readFileSync)(filePath, 'utf8');
72
- mergeEnumMaps(enums, (0, exports.extractEnumClassesFromContent)(content));
73
- mergeEnumMaps(enums, (0, exports.extractCompanionFieldEnumValues)(content));
91
+ const content = (0, kotlin_parse_utils_1.stripKotlinComments)((0, node_fs_1.readFileSync)(filePath, 'utf8'));
92
+ const scope = (0, kotlin_parse_utils_1.parseKotlinFileScope)(content);
93
+ mergeEnumMaps(declaredEnums, (0, exports.extractEnumClassesFromContent)(content, scope));
94
+ mergeEnumMaps(companionEnums, (0, exports.extractCompanionFieldEnumValues)(content, scope));
74
95
  }
75
- return enums;
96
+ // An `enum class` body is the enum's actual declaration; companion `Field` metadata is a
97
+ // second, redundant encoding of the same values on the entity referencing it. Precedence
98
+ // between the two must not depend on which file the glob happens to visit first, so the
99
+ // declaration always wins and the companion map only fills gaps it didn't cover.
100
+ mergeEnumMaps(declaredEnums, companionEnums);
101
+ return declaredEnums;
76
102
  };
77
103
  exports.parseGeneratedEnumsFromSources = parseGeneratedEnumsFromSources;
78
- const kotlinEnumSimpleName = (kotlinType) => {
104
+ /**
105
+ * Resolve a type name AS WRITTEN in the file described by `scope` to the enum it declares.
106
+ * Kotlin resolution order: explicit import (incl. aliases) → same package → star import. `scope`
107
+ * is required rather than optional: every real `KotlinDto` (from either generated-DAO or custom
108
+ * DTO parsing) always carries its declaring file's scope, so a caller with none to give us would
109
+ * itself be a bug worth surfacing at the call site — not something to paper over with a
110
+ * global simple-name guess. That guess is exactly the collision this resolver exists to prevent,
111
+ * just reached one level removed (a hand-written DTO field using an unrelated type that happens
112
+ * to share a name with a generated enum).
113
+ */
114
+ const resolveKotlinEnum = (kotlinType, enums, scope) => {
79
115
  var _a;
80
116
  const bare = kotlinType.replace(/\?$/, '').trim();
81
- return bare.includes('.') ? ((_a = bare.split('.').pop()) !== null && _a !== void 0 ? _a : bare) : bare;
82
- };
83
- exports.kotlinEnumSimpleName = kotlinEnumSimpleName;
84
- const kotlinEnumTypeToTs = (kotlinType, enums) => {
85
- const simpleName = (0, exports.kotlinEnumSimpleName)(kotlinType);
86
- const values = enums.get(simpleName);
87
- if (!values || values.length === 0)
117
+ if (!bare)
88
118
  return null;
89
- return values.map((value) => `'${value}'`).join(' | ');
119
+ if (bare.includes('.')) {
120
+ return (_a = enums.get(bare)) !== null && _a !== void 0 ? _a : null;
121
+ }
122
+ const candidates = [
123
+ scope.imports.get(bare),
124
+ qualify(scope.packageName, bare),
125
+ ...scope.starImports.map((pkg) => `${pkg}.${bare}`),
126
+ ];
127
+ for (const fqn of candidates) {
128
+ const hit = fqn ? enums.get(fqn) : undefined;
129
+ if (hit)
130
+ return hit;
131
+ }
132
+ return null;
90
133
  };
91
- exports.kotlinEnumTypeToTs = kotlinEnumTypeToTs;
92
- /** Use generated enum type name when declared (paired with `renderEnumExports`). */
93
- const kotlinEnumTypeRef = (kotlinType, enums) => {
94
- const simpleName = (0, exports.kotlinEnumSimpleName)(kotlinType);
95
- return enums.has(simpleName) ? simpleName : null;
134
+ exports.resolveKotlinEnum = resolveKotlinEnum;
135
+ /**
136
+ * Order-insensitive identity for a value set. Two declarations listing the same values in a
137
+ * different order (the same dictionary enum reached via a summary view, say) produce identical
138
+ * TypeScript, so qualifying them apart would be churn with nothing behind it.
139
+ */
140
+ const valuesKey = (values) => [...values].sort().join('\0');
141
+ /**
142
+ * Assign every declared enum the name it is exported under.
143
+ *
144
+ * A simple name declared by exactly one table — or by several that agree on the values — keeps
145
+ * it (`Direction`). When tables disagree, EVERY declaration of that name is qualified with its
146
+ * owning table (`AxeStatus`, `RfqStatus`, `OrderStatus`) so no table's values can be exported
147
+ * under a bare name that another table's fields also point at.
148
+ */
149
+ const resolveEnumExportNames = (enums) => {
150
+ var _a;
151
+ const bySimpleName = new Map();
152
+ for (const def of enums.values()) {
153
+ const group = bySimpleName.get(def.name);
154
+ if (group)
155
+ group.push(def);
156
+ else
157
+ bySimpleName.set(def.name, [def]);
158
+ }
159
+ const exportNames = new Map();
160
+ const taken = new Set();
161
+ const ambiguous = [];
162
+ // Unambiguous names claim the bare simple name first, so a qualified name can never steal it.
163
+ // An ambiguous group reserves its OWN bare name too: `ownerPrefixes` never actually returns an
164
+ // empty prefix for a real Genesis package, but nothing structural stops it — reserving here
165
+ // means a degenerate qualifier falls to the numbered suffix instead of silently handing one
166
+ // arbitrary member of the group the bare name, which is the exact bug this function exists to
167
+ // prevent, just reached from an edge case instead of the common path.
168
+ for (const [simpleName, group] of bySimpleName) {
169
+ const agree = group.every((def) => valuesKey(def.values) === valuesKey(group[0].values));
170
+ if (agree) {
171
+ for (const def of group)
172
+ exportNames.set(def.fqn, simpleName);
173
+ taken.add(simpleName);
174
+ }
175
+ else {
176
+ taken.add(simpleName);
177
+ ambiguous.push(group);
178
+ }
179
+ }
180
+ for (const group of ambiguous) {
181
+ for (const def of group) {
182
+ const candidates = (0, naming_1.ownerPrefixes)(def.packageName).map((prefix) => `${prefix}${def.name}`);
183
+ let chosen = candidates.find((candidate) => !taken.has(candidate));
184
+ for (let n = 2; !chosen; n += 1) {
185
+ const numbered = `${(_a = candidates[candidates.length - 1]) !== null && _a !== void 0 ? _a : def.name}${n}`;
186
+ if (!taken.has(numbered))
187
+ chosen = numbered;
188
+ }
189
+ taken.add(chosen);
190
+ exportNames.set(def.fqn, chosen);
191
+ }
192
+ }
193
+ return exportNames;
96
194
  };
97
- exports.kotlinEnumTypeRef = kotlinEnumTypeRef;
195
+ exports.resolveEnumExportNames = resolveEnumExportNames;
98
196
  //# sourceMappingURL=parse-enums.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-enums.js","sourceRoot":"","sources":["../src/parse-enums.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-enums.js","sourceRoot":"","sources":["../src/parse-enums.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { KotlinEnumMap } from './parse-enums';
2
- import type { KotlinDto, KotlinProperty, MappedHandler, UnmappedHandler } from './types';
2
+ import type { KotlinDto, KotlinFileScope, KotlinProperty, MappedHandler, UnmappedHandler } from './types';
3
3
  declare const DATA_CLASS_START: RegExp;
4
4
  declare const extractDataClasses: (content: string) => {
5
5
  name: string;
@@ -10,6 +10,14 @@ export declare const parseHandlersFromSources: (files: string[], dtos: Map<strin
10
10
  mapped: MappedHandler[];
11
11
  unmapped: UnmappedHandler[];
12
12
  };
13
- export declare const kotlinTypeToTs: (kotlinType: string, dtos: Map<string, KotlinDto>, enums?: KotlinEnumMap) => string;
13
+ /** What a property's declared type is resolved against: the enums, and the file that wrote it. */
14
+ export type EnumRefContext = {
15
+ enums: KotlinEnumMap;
16
+ /** Fully-qualified enum name → the name it is exported under (see resolveEnumExportNames). */
17
+ exportNames: Map<string, string>;
18
+ /** Package + imports of the file declaring the property. */
19
+ fileScope: KotlinFileScope;
20
+ };
21
+ export declare const kotlinTypeToTs: (kotlinType: string, dtos: Map<string, KotlinDto>, enumContext?: EnumRefContext) => string;
14
22
  export { extractDataClasses, DATA_CLASS_START };
15
23
  //# sourceMappingURL=parse-kotlin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-kotlin.d.ts","sourceRoot":"","sources":["../src/parse-kotlin.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAmBzF,QAAA,MAAM,gBAAgB,QAAsE,CAAC;AAE7F,QAAA,MAAM,kBAAkB,GAAI,SAAS,MAAM,KAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,cAAc,EAAE,CAAA;CAAE,EAkC3F,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,EAAE,KAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAe3E,CAAC;AAeF,eAAO,MAAM,wBAAwB,GACnC,OAAO,MAAM,EAAE,EACf,MAAM,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,KAC3B;IAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAA;CAwDxD,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,YAAY,MAAM,EAClB,MAAM,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAC5B,QAAO,aAAyB,KAC/B,MAoBF,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"parse-kotlin.d.ts","sourceRoot":"","sources":["../src/parse-kotlin.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,EAChB,MAAM,SAAS,CAAC;AAmBjB,QAAA,MAAM,gBAAgB,QAAsE,CAAC;AAE7F,QAAA,MAAM,kBAAkB,GAAI,SAAS,MAAM,KAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,cAAc,EAAE,CAAA;CAAE,EAkC3F,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,EAAE,KAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAiB3E,CAAC;AAeF,eAAO,MAAM,wBAAwB,GACnC,OAAO,MAAM,EAAE,EACf,MAAM,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,KAC3B;IAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAA;CAwDxD,CAAC;AAEF,kGAAkG;AAClG,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,8FAA8F;IAC9F,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,4DAA4D;IAC5D,SAAS,EAAE,eAAe,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,YAAY,MAAM,EAClB,MAAM,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAC5B,cAAc,cAAc,KAC3B,MAuBF,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,CAAC"}
@@ -61,11 +61,13 @@ const parseDtosFromSources = (files) => {
61
61
  const dtos = new Map();
62
62
  for (const filePath of files) {
63
63
  const content = (0, kotlin_parse_utils_1.stripKotlinComments)((0, node_fs_1.readFileSync)(filePath, 'utf8'));
64
+ const fileScope = (0, kotlin_parse_utils_1.parseKotlinFileScope)(content);
64
65
  for (const parsed of extractDataClasses(content)) {
65
66
  dtos.set(parsed.name, {
66
67
  name: parsed.name,
67
68
  properties: parsed.properties,
68
69
  filePath,
70
+ fileScope,
69
71
  });
70
72
  }
71
73
  }
@@ -134,17 +136,20 @@ const parseHandlersFromSources = (files, dtos) => {
134
136
  return { mapped, unmapped };
135
137
  };
136
138
  exports.parseHandlersFromSources = parseHandlersFromSources;
137
- const kotlinTypeToTs = (kotlinType, dtos, enums = new Map()) => {
139
+ const kotlinTypeToTs = (kotlinType, dtos, enumContext) => {
138
140
  const listMatch = kotlinType.match(/^(?:List|MutableList|Set|MutableSet)<(.+)>$/);
139
141
  if (listMatch) {
140
- return `${(0, exports.kotlinTypeToTs)(listMatch[1].trim(), dtos, enums)}[]`;
142
+ return `${(0, exports.kotlinTypeToTs)(listMatch[1].trim(), dtos, enumContext)}[]`;
141
143
  }
142
144
  if (PRIMITIVE_TS[kotlinType]) {
143
145
  return PRIMITIVE_TS[kotlinType];
144
146
  }
145
- const enumTs = (0, parse_enums_1.kotlinEnumTypeRef)(kotlinType, enums);
146
- if (enumTs) {
147
- return enumTs;
147
+ if (enumContext) {
148
+ const enumDef = (0, parse_enums_1.resolveKotlinEnum)(kotlinType, enumContext.enums, enumContext.fileScope);
149
+ const exported = enumDef && enumContext.exportNames.get(enumDef.fqn);
150
+ if (exported) {
151
+ return exported;
152
+ }
148
153
  }
149
154
  if (dtos.has(kotlinType)) {
150
155
  return (0, naming_1.handlerInputToDetailsInterfaceName)(kotlinType);
@@ -1 +1 @@
1
- {"version":3,"file":"parse-kotlin.js","sourceRoot":"","sources":["../src/parse-kotlin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-kotlin.js","sourceRoot":"","sources":["../src/parse-kotlin.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAKA,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA6GzE,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,aAAa,EAAE,EACvB,UAAU,eAAe,EAAE,EAC3B,MAAM,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAC5B,QAAO,aAAyB,KAC/B,MA2BF,CAAC"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAKA,OAAO,EAA6C,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9F,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA6HzE,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,aAAa,EAAE,EACvB,UAAU,eAAe,EAAE,EAC3B,MAAM,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAC5B,QAAO,aAAyB,KAC/B,MA4BF,CAAC"}
package/dist/render.js CHANGED
@@ -31,11 +31,11 @@ const expandUsedDtoNames = (mapped, dtos) => {
31
31
  }
32
32
  return used;
33
33
  };
34
- const renderInterface = (dto, dtos, enums) => {
34
+ const renderInterface = (dto, dtos, enumContext) => {
35
35
  const interfaceName = (0, naming_1.handlerInputToDetailsInterfaceName)(dto.name);
36
36
  const lines = dto.properties.map((prop) => {
37
37
  const wireName = (0, naming_1.kotlinPropertyToWireField)(prop.name);
38
- const tsType = (0, parse_kotlin_1.kotlinTypeToTs)(prop.kotlinType, dtos, enums);
38
+ const tsType = (0, parse_kotlin_1.kotlinTypeToTs)(prop.kotlinType, dtos, Object.assign(Object.assign({}, enumContext), { fileScope: dto.fileScope }));
39
39
  const optional = prop.optional ? '?' : '';
40
40
  return ` ${wireName}${optional}: ${tsType};`;
41
41
  });
@@ -64,40 +64,51 @@ const renderUnmappedComment = (unmapped) => {
64
64
  const lines = unmapped.map((entry) => ` * - ${entry.handlerName} (${entry.inputType}): ${entry.reason} [${entry.sourceFile.split(/[/\\]/).pop()}]`);
65
65
  return `/**\n * Unmapped handlers (not included in EventDetailsMap):\n${lines.join('\n')}\n */\n\n`;
66
66
  };
67
- const renderEnumExports = (enums, usedEnumNames) => {
68
- const blocks = [];
69
- for (const name of [...usedEnumNames].sort()) {
70
- const values = enums.get(name);
71
- if (!(values === null || values === void 0 ? void 0 : values.length))
67
+ const renderEnumExports = (enums, usedEnumFqns, exportNames) => {
68
+ var _a;
69
+ // Several declarations can share an export name only when their values agree; take the
70
+ // first by qualified name so the emitted order does not depend on handler declaration order.
71
+ const byExportName = new Map();
72
+ for (const fqn of [...usedEnumFqns].sort()) {
73
+ const exportName = exportNames.get(fqn);
74
+ const values = (_a = enums.get(fqn)) === null || _a === void 0 ? void 0 : _a.values;
75
+ if (!exportName || !(values === null || values === void 0 ? void 0 : values.length) || byExportName.has(exportName))
72
76
  continue;
73
- const entries = values.map((value) => ` ${value}: '${value}',`).join('\n');
74
- blocks.push(`export const ${name} = {\n${entries}\n} as const;\n\nexport type ${name} = (typeof ${name})[keyof typeof ${name}];`);
77
+ byExportName.set(exportName, values);
75
78
  }
79
+ const blocks = [...byExportName.entries()]
80
+ .sort(([a], [b]) => a.localeCompare(b))
81
+ .map(([name, values]) => {
82
+ const entries = values.map((value) => ` ${value}: '${value}',`).join('\n');
83
+ return `export const ${name} = {\n${entries}\n} as const;\n\nexport type ${name} = (typeof ${name})[keyof typeof ${name}];`;
84
+ });
76
85
  return blocks.length > 0 ? `${blocks.join('\n\n')}\n\n` : '';
77
86
  };
78
- const collectUsedEnumNames = (usedDtoNames, dtos, enums) => {
87
+ /** Fully-qualified names of the enums the emitted interfaces actually reference. */
88
+ const collectUsedEnums = (usedDtoNames, dtos, enums) => {
79
89
  const used = new Set();
80
90
  for (const dtoName of usedDtoNames) {
81
91
  const dto = dtos.get(dtoName);
82
92
  if (!dto)
83
93
  continue;
84
94
  for (const prop of dto.properties) {
85
- const ref = (0, parse_enums_1.kotlinEnumTypeRef)(kotlinTypeRoot(prop.kotlinType), enums);
95
+ const ref = (0, parse_enums_1.resolveKotlinEnum)(kotlinTypeRoot(prop.kotlinType), enums, dto.fileScope);
86
96
  if (ref)
87
- used.add(ref);
97
+ used.add(ref.fqn);
88
98
  }
89
99
  }
90
100
  return used;
91
101
  };
92
102
  const renderEventTypesFile = (mapped, unmapped, dtos, enums = new Map()) => {
93
103
  const usedDtos = expandUsedDtoNames(mapped, dtos);
104
+ const exportNames = (0, parse_enums_1.resolveEnumExportNames)(enums);
94
105
  const interfaces = [...usedDtos]
95
106
  .map((name) => dtos.get(name))
96
107
  .filter((dto) => dto != null)
97
108
  .sort((a, b) => a.name.localeCompare(b.name))
98
- .map((dto) => renderInterface(dto, dtos, enums));
99
- const usedEnumNames = collectUsedEnumNames(usedDtos, dtos, enums);
100
- const enumExports = renderEnumExports(enums, usedEnumNames);
109
+ .map((dto) => renderInterface(dto, dtos, { enums, exportNames }));
110
+ const usedEnums = collectUsedEnums(usedDtos, dtos, enums);
111
+ const enumExports = renderEnumExports(enums, usedEnums, exportNames);
101
112
  const mapEntries = mapped.map((m) => ` ${m.eventName}: ${m.detailsInterface};`).join('\n');
102
113
  const eventClasses = renderEventClasses(mapped);
103
114
  const foundationCommsImport = mapped.length > 0 ? `import { GenesisEvent } from '@genesislcap/foundation-comms';\n\n` : '';
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -25,10 +25,24 @@ export type KotlinProperty = {
25
25
  kotlinType: string;
26
26
  optional: boolean;
27
27
  };
28
+ /**
29
+ * Package + import context of one Kotlin file, so a simple type name written inside it can be
30
+ * resolved to the declaration it actually refers to (table-scoped enums reuse simple names).
31
+ */
32
+ export type KotlinFileScope = {
33
+ /** Declared package, '' when the file has none. */
34
+ packageName: string;
35
+ /** Simple name (or alias) → fully-qualified name, from explicit `import` lines. */
36
+ imports: Map<string, string>;
37
+ /** Packages brought in wholesale by `import pkg.*`. */
38
+ starImports: string[];
39
+ };
28
40
  export type KotlinDto = {
29
41
  name: string;
30
42
  properties: KotlinProperty[];
31
43
  filePath: string;
44
+ /** Scope of the declaring file — every producer parses this from real source. */
45
+ fileScope: KotlinFileScope;
32
46
  };
33
47
  export type MappedHandler = {
34
48
  eventName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,uDAAuD;IACvD,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,SAAS,EAAE,eAAe,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/event-type-codegen",
3
3
  "description": "Build-time TypeScript codegen from Kotlin event handler DTOs",
4
- "version": "15.19.4",
4
+ "version": "15.19.5",
5
5
  "license": "SEE LICENSE IN license.txt",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -21,7 +21,7 @@
21
21
  "consola": "^3.0.2"
22
22
  },
23
23
  "devDependencies": {
24
- "@genesislcap/foundation-testing": "15.19.4",
24
+ "@genesislcap/foundation-testing": "15.19.5",
25
25
  "@types/node": "^22.10.2",
26
26
  "tsx": "^4.7.0",
27
27
  "uvu": "0.5.4"
@@ -7,6 +7,22 @@
7
7
 
8
8
  import { GenesisEvent } from '@genesislcap/foundation-comms';
9
9
 
10
+ export const AxeStatus = {
11
+ LIVE: 'LIVE',
12
+ TRADED: 'TRADED',
13
+ WITHDRAWN: 'WITHDRAWN',
14
+ EXPIRED: 'EXPIRED',
15
+ } as const;
16
+
17
+ export type AxeStatus = (typeof AxeStatus)[keyof typeof AxeStatus];
18
+
19
+ export const Direction = {
20
+ BUY: 'BUY',
21
+ SELL: 'SELL',
22
+ } as const;
23
+
24
+ export type Direction = (typeof Direction)[keyof typeof Direction];
25
+
10
26
  export const Priority = {
11
27
  LOW: 'LOW',
12
28
  HIGH: 'HIGH',
@@ -14,6 +30,16 @@ export const Priority = {
14
30
 
15
31
  export type Priority = (typeof Priority)[keyof typeof Priority];
16
32
 
33
+ export const RfqStatus = {
34
+ PRICE_REQUEST: 'PRICE_REQUEST',
35
+ LIVE_PRICE: 'LIVE_PRICE',
36
+ EXECUTED: 'EXECUTED',
37
+ PASSED: 'PASSED',
38
+ EXPIRED: 'EXPIRED',
39
+ } as const;
40
+
41
+ export type RfqStatus = (typeof RfqStatus)[keyof typeof RfqStatus];
42
+
17
43
  export const Side = {
18
44
  BUY: 'BUY',
19
45
  SELL: 'SELL',
@@ -32,6 +58,13 @@ export interface AnnotatedInputDetails {
32
58
  IGNORED_HINT?: string;
33
59
  }
34
60
 
61
+ export interface AxeDetails {
62
+ AXE_ID?: string;
63
+ INSTRUMENT_ID: string;
64
+ DIRECTION?: Direction;
65
+ STATUS?: AxeStatus;
66
+ }
67
+
35
68
  export interface BulkSideInputDetails {
36
69
  PRIORITIES: Priority[];
37
70
  }
@@ -54,6 +87,13 @@ export interface NestedInputDetails {
54
87
  ITEMS: FooInputDetails[];
55
88
  }
56
89
 
90
+ export interface RfqDetails {
91
+ RFQ_ID?: string;
92
+ INSTRUMENT_ID: string;
93
+ DIRECTION?: Direction;
94
+ STATUS?: RfqStatus;
95
+ }
96
+
57
97
  export interface TradeDetails {
58
98
  TRADE_ID?: string;
59
99
  INSTRUMENT_ID: string;
@@ -71,12 +111,14 @@ export interface TradeByIdDetails {
71
111
 
72
112
  export interface EventDetailsMap {
73
113
  EVENT_ANNOTATED: AnnotatedInputDetails;
114
+ EVENT_AXE_INSERT: AxeDetails;
74
115
  EVENT_BAR_BAZ: NestedInputDetails;
75
116
  EVENT_BULK_SIDE: BulkSideInputDetails;
76
117
  EVENT_CHARGE_AMEND: ChargeAmendInputDetails;
77
118
  EVENT_CONTEXT_FOO: FooInputDetails;
78
119
  EVENT_DAO_HANDLER: InstrumentByIdDetails;
79
120
  EVENT_FOO: FooInputDetails;
121
+ EVENT_RFQ_INSERT: RfqDetails;
80
122
  EVENT_TRADE_DELETE: TradeByIdDetails;
81
123
  EVENT_TRADE_INSERT: TradeDetails;
82
124
  }
@@ -91,6 +133,14 @@ export class EventAnnotated extends GenesisEvent<'EVENT_ANNOTATED', AnnotatedInp
91
133
  }
92
134
  }
93
135
 
136
+ export class EventAxeInsert extends GenesisEvent<'EVENT_AXE_INSERT', AxeDetails> {
137
+ readonly MESSAGE_TYPE = 'EVENT_AXE_INSERT' as const;
138
+
139
+ constructor(details: AxeDetails) {
140
+ super(details);
141
+ }
142
+ }
143
+
94
144
  export class EventBarBaz extends GenesisEvent<'EVENT_BAR_BAZ', NestedInputDetails> {
95
145
  readonly MESSAGE_TYPE = 'EVENT_BAR_BAZ' as const;
96
146
 
@@ -139,6 +189,14 @@ export class EventFoo extends GenesisEvent<'EVENT_FOO', FooInputDetails> {
139
189
  }
140
190
  }
141
191
 
192
+ export class EventRfqInsert extends GenesisEvent<'EVENT_RFQ_INSERT', RfqDetails> {
193
+ readonly MESSAGE_TYPE = 'EVENT_RFQ_INSERT' as const;
194
+
195
+ constructor(details: RfqDetails) {
196
+ super(details);
197
+ }
198
+ }
199
+
142
200
  export class EventTradeDelete extends GenesisEvent<'EVENT_TRADE_DELETE', TradeByIdDetails> {
143
201
  readonly MESSAGE_TYPE = 'EVENT_TRADE_DELETE' as const;
144
202
 
@@ -7,6 +7,22 @@
7
7
 
8
8
  import { GenesisEvent } from '@genesislcap/foundation-comms';
9
9
 
10
+ export const AxeStatus = {
11
+ LIVE: 'LIVE',
12
+ TRADED: 'TRADED',
13
+ WITHDRAWN: 'WITHDRAWN',
14
+ EXPIRED: 'EXPIRED',
15
+ } as const;
16
+
17
+ export type AxeStatus = (typeof AxeStatus)[keyof typeof AxeStatus];
18
+
19
+ export const Direction = {
20
+ BUY: 'BUY',
21
+ SELL: 'SELL',
22
+ } as const;
23
+
24
+ export type Direction = (typeof Direction)[keyof typeof Direction];
25
+
10
26
  export const Priority = {
11
27
  LOW: 'LOW',
12
28
  HIGH: 'HIGH',
@@ -14,6 +30,16 @@ export const Priority = {
14
30
 
15
31
  export type Priority = (typeof Priority)[keyof typeof Priority];
16
32
 
33
+ export const RfqStatus = {
34
+ PRICE_REQUEST: 'PRICE_REQUEST',
35
+ LIVE_PRICE: 'LIVE_PRICE',
36
+ EXECUTED: 'EXECUTED',
37
+ PASSED: 'PASSED',
38
+ EXPIRED: 'EXPIRED',
39
+ } as const;
40
+
41
+ export type RfqStatus = (typeof RfqStatus)[keyof typeof RfqStatus];
42
+
17
43
  export const Side = {
18
44
  BUY: 'BUY',
19
45
  SELL: 'SELL',
@@ -32,6 +58,13 @@ export interface AnnotatedInputDetails {
32
58
  IGNORED_HINT?: string;
33
59
  }
34
60
 
61
+ export interface AxeDetails {
62
+ AXE_ID?: string;
63
+ INSTRUMENT_ID: string;
64
+ DIRECTION?: Direction;
65
+ STATUS?: AxeStatus;
66
+ }
67
+
35
68
  export interface BulkSideInputDetails {
36
69
  PRIORITIES: Priority[];
37
70
  }
@@ -54,6 +87,13 @@ export interface NestedInputDetails {
54
87
  ITEMS: FooInputDetails[];
55
88
  }
56
89
 
90
+ export interface RfqDetails {
91
+ RFQ_ID?: string;
92
+ INSTRUMENT_ID: string;
93
+ DIRECTION?: Direction;
94
+ STATUS?: RfqStatus;
95
+ }
96
+
57
97
  export interface TradeDetails {
58
98
  TRADE_ID?: string;
59
99
  INSTRUMENT_ID: string;
@@ -71,12 +111,14 @@ export interface TradeByIdDetails {
71
111
 
72
112
  export interface EventDetailsMap {
73
113
  EVENT_ANNOTATED: AnnotatedInputDetails;
114
+ EVENT_AXE_INSERT: AxeDetails;
74
115
  EVENT_BAR_BAZ: NestedInputDetails;
75
116
  EVENT_BULK_SIDE: BulkSideInputDetails;
76
117
  EVENT_CHARGE_AMEND: ChargeAmendInputDetails;
77
118
  EVENT_CONTEXT_FOO: FooInputDetails;
78
119
  EVENT_DAO_HANDLER: InstrumentByIdDetails;
79
120
  EVENT_FOO: FooInputDetails;
121
+ EVENT_RFQ_INSERT: RfqDetails;
80
122
  EVENT_TRADE_DELETE: TradeByIdDetails;
81
123
  EVENT_TRADE_INSERT: TradeDetails;
82
124
  }
@@ -91,6 +133,14 @@ export class EventAnnotated extends GenesisEvent<'EVENT_ANNOTATED', AnnotatedInp
91
133
  }
92
134
  }
93
135
 
136
+ export class EventAxeInsert extends GenesisEvent<'EVENT_AXE_INSERT', AxeDetails> {
137
+ readonly MESSAGE_TYPE = 'EVENT_AXE_INSERT' as const;
138
+
139
+ constructor(details: AxeDetails) {
140
+ super(details);
141
+ }
142
+ }
143
+
94
144
  export class EventBarBaz extends GenesisEvent<'EVENT_BAR_BAZ', NestedInputDetails> {
95
145
  readonly MESSAGE_TYPE = 'EVENT_BAR_BAZ' as const;
96
146
 
@@ -139,6 +189,14 @@ export class EventFoo extends GenesisEvent<'EVENT_FOO', FooInputDetails> {
139
189
  }
140
190
  }
141
191
 
192
+ export class EventRfqInsert extends GenesisEvent<'EVENT_RFQ_INSERT', RfqDetails> {
193
+ readonly MESSAGE_TYPE = 'EVENT_RFQ_INSERT' as const;
194
+
195
+ constructor(details: RfqDetails) {
196
+ super(details);
197
+ }
198
+ }
199
+
142
200
  export class EventTradeDelete extends GenesisEvent<'EVENT_TRADE_DELETE', TradeByIdDetails> {
143
201
  readonly MESSAGE_TYPE = 'EVENT_TRADE_DELETE' as const;
144
202
 
@@ -0,0 +1,38 @@
1
+ package global.genesis.gen.dao
2
+
3
+ import global.genesis.db.entity.TableEntity
4
+ import global.genesis.dictionary.Field
5
+ import global.genesis.dictionary.annotation.GenesisType
6
+ import global.genesis.gen.dao.enums.example.axe.Direction
7
+ import global.genesis.gen.dao.enums.example.axe.Status
8
+ import global.genesis.message.core.annotation.Title
9
+ import java.io.Serializable
10
+
11
+ /**
12
+ * Fixture stand-in for a generated Axe DAO. Its STATUS enum shares a simple name with Rfq's
13
+ * but not its values — the collision this file exists to pin down.
14
+ */
15
+ @Title("Axe")
16
+ public class Axe public constructor(
17
+ axeId: String? = null,
18
+ @Title("Instrument Id")
19
+ @GenesisType(Field.Type.STRING)
20
+ public var instrumentId: String,
21
+ @Title("Direction")
22
+ @GenesisType(Field.Type.ENUM)
23
+ public var direction: Direction = Direction.BUY,
24
+ @Title("Status")
25
+ @GenesisType(Field.Type.ENUM)
26
+ public var status: Status = Status.LIVE,
27
+ ) : Serializable, TableEntity {
28
+ public var axeId: String = axeId ?: ""
29
+
30
+ public companion object {
31
+ public val STATUS: NonNullable<Status> = NonNullable<Status>(Field(
32
+ name = "STATUS",
33
+ type = Field.Type.ENUM,
34
+ values = "LIVE TRADED WITHDRAWN EXPIRED",
35
+ scope = "example.axe.Status",
36
+ ))
37
+ }
38
+ }
@@ -0,0 +1,26 @@
1
+ package global.genesis.gen.dao
2
+
3
+ import global.genesis.db.entity.TableEntity
4
+ import global.genesis.dictionary.Field
5
+ import global.genesis.dictionary.annotation.GenesisType
6
+ import global.genesis.gen.dao.enums.example.rfq.Direction
7
+ import global.genesis.gen.dao.enums.example.rfq.Status
8
+ import global.genesis.message.core.annotation.Title
9
+ import java.io.Serializable
10
+
11
+ /** Fixture stand-in for a generated Rfq DAO — same STATUS simple name, different values. */
12
+ @Title("Rfq")
13
+ public class Rfq public constructor(
14
+ rfqId: String? = null,
15
+ @Title("Instrument Id")
16
+ @GenesisType(Field.Type.STRING)
17
+ public var instrumentId: String,
18
+ @Title("Direction")
19
+ @GenesisType(Field.Type.ENUM)
20
+ public var direction: Direction = Direction.BUY,
21
+ @Title("Status")
22
+ @GenesisType(Field.Type.ENUM)
23
+ public var status: Status = Status.PRICE_REQUEST,
24
+ ) : Serializable, TableEntity {
25
+ public var rfqId: String = rfqId ?: ""
26
+ }
@@ -0,0 +1,6 @@
1
+ package global.genesis.gen.dao.enums.example.axe
2
+
3
+ public enum class Direction {
4
+ BUY,
5
+ SELL,
6
+ }
@@ -0,0 +1,8 @@
1
+ package global.genesis.gen.dao.enums.example.axe
2
+
3
+ public enum class Status {
4
+ LIVE,
5
+ TRADED,
6
+ WITHDRAWN,
7
+ EXPIRED,
8
+ }
@@ -0,0 +1,6 @@
1
+ package global.genesis.gen.dao.enums.example.rfq
2
+
3
+ public enum class Direction {
4
+ BUY,
5
+ SELL,
6
+ }
@@ -0,0 +1,9 @@
1
+ package global.genesis.gen.dao.enums.example.rfq
2
+
3
+ public enum class Status {
4
+ PRICE_REQUEST,
5
+ LIVE_PRICE,
6
+ EXECUTED,
7
+ PASSED,
8
+ EXPIRED,
9
+ }