@ifc-lite/codegen 1.15.12 → 1.17.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 (119) hide show
  1. package/dist/express-parser.js +43 -51
  2. package/dist/express-parser.js.map +1 -1
  3. package/dist/generated/ifc2x3/entities.d.ts +5244 -0
  4. package/dist/generated/ifc2x3/entities.d.ts.map +1 -0
  5. package/dist/generated/ifc2x3/entities.js +8 -0
  6. package/dist/generated/ifc2x3/entities.js.map +1 -0
  7. package/dist/generated/ifc2x3/enums.d.ts +1809 -0
  8. package/dist/generated/ifc2x3/enums.d.ts.map +1 -0
  9. package/dist/generated/ifc2x3/enums.js +1973 -0
  10. package/dist/generated/ifc2x3/enums.js.map +1 -0
  11. package/dist/generated/ifc2x3/index.d.ts +13 -0
  12. package/dist/generated/ifc2x3/index.d.ts.map +1 -0
  13. package/dist/generated/ifc2x3/index.js +16 -0
  14. package/dist/generated/ifc2x3/index.js.map +1 -0
  15. package/dist/generated/ifc2x3/schema-registry.d.ts +50 -0
  16. package/dist/generated/ifc2x3/schema-registry.d.ts.map +1 -0
  17. package/dist/generated/ifc2x3/schema-registry.js +50052 -0
  18. package/dist/generated/ifc2x3/schema-registry.js.map +1 -0
  19. package/dist/generated/ifc2x3/selects.d.ts +102 -0
  20. package/dist/generated/ifc2x3/selects.d.ts.map +1 -0
  21. package/dist/generated/ifc2x3/selects.js +8 -0
  22. package/dist/generated/ifc2x3/selects.js.map +1 -0
  23. package/dist/generated/ifc2x3/serializers.d.ts +12 -0
  24. package/dist/generated/ifc2x3/serializers.d.ts.map +1 -0
  25. package/dist/generated/ifc2x3/serializers.js +30 -0
  26. package/dist/generated/ifc2x3/serializers.js.map +1 -0
  27. package/dist/generated/ifc2x3/type-ids.d.ts +692 -0
  28. package/dist/generated/ifc2x3/type-ids.d.ts.map +1 -0
  29. package/dist/generated/ifc2x3/type-ids.js +1425 -0
  30. package/dist/generated/ifc2x3/type-ids.js.map +1 -0
  31. package/dist/generated/ifc2x3/types.d.ts +241 -0
  32. package/dist/generated/ifc2x3/types.d.ts.map +1 -0
  33. package/dist/generated/ifc2x3/types.js +8 -0
  34. package/dist/generated/ifc2x3/types.js.map +1 -0
  35. package/dist/generated/ifc4/entities.d.ts +6221 -0
  36. package/dist/generated/ifc4/entities.d.ts.map +1 -0
  37. package/dist/generated/ifc4/entities.js +8 -0
  38. package/dist/generated/ifc4/entities.js.map +1 -0
  39. package/dist/generated/ifc4/enums.d.ts +2260 -0
  40. package/dist/generated/ifc4/enums.d.ts.map +1 -0
  41. package/dist/generated/ifc4/enums.js +2467 -0
  42. package/dist/generated/ifc4/enums.js.map +1 -0
  43. package/dist/generated/ifc4/index.d.ts +13 -0
  44. package/dist/generated/ifc4/index.d.ts.map +1 -0
  45. package/dist/generated/ifc4/index.js +16 -0
  46. package/dist/generated/ifc4/index.js.map +1 -0
  47. package/dist/generated/ifc4/schema-registry.d.ts +50 -0
  48. package/dist/generated/ifc4/schema-registry.d.ts.map +1 -0
  49. package/dist/generated/ifc4/schema-registry.js +62999 -0
  50. package/dist/generated/ifc4/schema-registry.js.map +1 -0
  51. package/dist/generated/ifc4/selects.d.ts +130 -0
  52. package/dist/generated/ifc4/selects.d.ts.map +1 -0
  53. package/dist/generated/ifc4/selects.js +8 -0
  54. package/dist/generated/ifc4/selects.js.map +1 -0
  55. package/dist/generated/ifc4/serializers.d.ts +12 -0
  56. package/dist/generated/ifc4/serializers.d.ts.map +1 -0
  57. package/dist/generated/ifc4/serializers.js +30 -0
  58. package/dist/generated/ifc4/serializers.js.map +1 -0
  59. package/dist/generated/ifc4/type-ids.d.ts +815 -0
  60. package/dist/generated/ifc4/type-ids.d.ts.map +1 -0
  61. package/dist/generated/ifc4/type-ids.js +1671 -0
  62. package/dist/generated/ifc4/type-ids.js.map +1 -0
  63. package/dist/generated/ifc4/types.d.ts +268 -0
  64. package/dist/generated/ifc4/types.d.ts.map +1 -0
  65. package/dist/generated/ifc4/types.js +8 -0
  66. package/dist/generated/ifc4/types.js.map +1 -0
  67. package/dist/generated/ifc4x3/entities.d.ts +6982 -0
  68. package/dist/generated/ifc4x3/entities.d.ts.map +1 -0
  69. package/dist/generated/ifc4x3/entities.js +8 -0
  70. package/dist/generated/ifc4x3/entities.js.map +1 -0
  71. package/dist/generated/ifc4x3/enums.d.ts +2853 -0
  72. package/dist/generated/ifc4x3/enums.d.ts.map +1 -0
  73. package/dist/generated/ifc4x3/enums.js +3096 -0
  74. package/dist/generated/ifc4x3/enums.js.map +1 -0
  75. package/dist/generated/ifc4x3/index.d.ts +13 -0
  76. package/dist/generated/ifc4x3/index.d.ts.map +1 -0
  77. package/dist/generated/ifc4x3/index.js +16 -0
  78. package/dist/generated/ifc4x3/index.js.map +1 -0
  79. package/dist/generated/ifc4x3/schema-registry.d.ts +50 -0
  80. package/dist/generated/ifc4x3/schema-registry.d.ts.map +1 -0
  81. package/dist/generated/ifc4x3/schema-registry.js +71299 -0
  82. package/dist/generated/ifc4x3/schema-registry.js.map +1 -0
  83. package/dist/generated/ifc4x3/selects.d.ts +131 -0
  84. package/dist/generated/ifc4x3/selects.d.ts.map +1 -0
  85. package/dist/generated/ifc4x3/selects.js +8 -0
  86. package/dist/generated/ifc4x3/selects.js.map +1 -0
  87. package/dist/generated/ifc4x3/serializers.d.ts +12 -0
  88. package/dist/generated/ifc4x3/serializers.d.ts.map +1 -0
  89. package/dist/generated/ifc4x3/serializers.js +30 -0
  90. package/dist/generated/ifc4x3/serializers.js.map +1 -0
  91. package/dist/generated/ifc4x3/type-ids.d.ts +915 -0
  92. package/dist/generated/ifc4x3/type-ids.d.ts.map +1 -0
  93. package/dist/generated/ifc4x3/type-ids.js +1871 -0
  94. package/dist/generated/ifc4x3/type-ids.js.map +1 -0
  95. package/dist/generated/ifc4x3/types.d.ts +272 -0
  96. package/dist/generated/ifc4x3/types.d.ts.map +1 -0
  97. package/dist/generated/ifc4x3/types.js +8 -0
  98. package/dist/generated/ifc4x3/types.js.map +1 -0
  99. package/dist/generator.d.ts +1 -1
  100. package/dist/generator.d.ts.map +1 -1
  101. package/dist/generator.js +7 -1
  102. package/dist/generator.js.map +1 -1
  103. package/dist/index.d.ts +1 -0
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +3 -0
  106. package/dist/index.js.map +1 -1
  107. package/dist/rust-generator.d.ts.map +1 -1
  108. package/dist/rust-generator.js +2 -14
  109. package/dist/rust-generator.js.map +1 -1
  110. package/dist/rust-type-name-parser.d.ts +4 -0
  111. package/dist/rust-type-name-parser.d.ts.map +1 -0
  112. package/dist/rust-type-name-parser.js +27 -0
  113. package/dist/rust-type-name-parser.js.map +1 -0
  114. package/dist/schema-hierarchy.d.ts +57 -0
  115. package/dist/schema-hierarchy.d.ts.map +1 -0
  116. package/dist/schema-hierarchy.js +69 -0
  117. package/dist/schema-hierarchy.js.map +1 -0
  118. package/package.json +33 -5
  119. package/schemas/IFC2X3_TC1.exp +9569 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rust-type-name-parser.js","sourceRoot":"","sources":["../src/rust-type-name-parser.ts"],"names":[],"mappings":"AAKA,qEAAqE;AACrE,MAAM,UAAU,sBAAsB,CAAC,MAAqB;IAC1D,OAAO;;;;;;;;;;;;;;;;;;EAkBP,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAC3B,gBAAgB,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;CAIpF,CAAC;AACF,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Schema-derived type-membership helpers.
3
+ *
4
+ * Every `generated/{ifc4,ifc4x3}/schema-registry.ts` bundle carries, per
5
+ * entity, an `inheritanceChain: string[]` running from the schema root down
6
+ * to the entity itself (inclusive) — e.g.
7
+ * `IfcMaterialConstituent.inheritanceChain = ['IfcMaterialDefinition', 'IfcMaterialConstituent']`.
8
+ * That is a schema fact, not a naming convention: it is the correct tool for
9
+ * "is this entity a subtype of X", a question three call sites answered with
10
+ * a string test (`startsWith`/`endsWith`/`includes`) and got wrong at three
11
+ * different edges (see ifc-lite issue #3999).
12
+ *
13
+ * This module is deliberately decoupled from any one generated bundle's
14
+ * concrete `SchemaRegistry`/`EntityMetadata` interfaces (each bundle
15
+ * re-declares its own, identically) — it only requires the shape it
16
+ * actually reads, so it works unchanged against `ifc4`'s registry, `ifc4x3`'s,
17
+ * or both.
18
+ */
19
+ /** The minimal shape this module reads off a generated bundle's entity metadata. */
20
+ export interface HierarchyEntity {
21
+ inheritanceChain?: string[];
22
+ }
23
+ /** The minimal shape this module reads off a generated bundle's `SchemaRegistry`. */
24
+ export interface HierarchyRegistry {
25
+ entities: Record<string, HierarchyEntity>;
26
+ }
27
+ /**
28
+ * Is `type` the same entity as `ancestor`, or a (possibly transitive) subtype
29
+ * of it, according to `registry`? Reflexive: `isSubtypeOf(r, 'IfcWall',
30
+ * 'IfcWall')` is `true`, matching the chain's own inclusion of the entity
31
+ * itself. Case-insensitive on both arguments. Returns `false` for a `type`
32
+ * the registry does not know (including an abstract supertype with no
33
+ * `inheritanceChain` of its own, and any name from a *different* schema
34
+ * version's vocabulary) — never throws.
35
+ */
36
+ export declare function isSubtypeOf(registry: HierarchyRegistry, type: string, ancestor: string): boolean;
37
+ /**
38
+ * Is `type` a subtype of (or the same entity as) `ancestor` in ANY of the
39
+ * given registries? Use this to test membership against a schema-version
40
+ * union — e.g. a set of entity types that must be recognised whether the
41
+ * store was parsed against IFC4 or IFC4X3, mirroring how a hand-maintained
42
+ * "recognise it in either schema" allowlist used to be built by hand.
43
+ */
44
+ export declare function isSubtypeOfAny(registries: readonly HierarchyRegistry[], type: string, ancestor: string): boolean;
45
+ /**
46
+ * Is `type` a PROPER (strict) subtype of `ancestor` — i.e. `isSubtypeOf` is
47
+ * true AND `type` is not `ancestor` itself? Use this for an abstract
48
+ * supertype with no concrete instances (`IfcMaterialDefinition`,
49
+ * `IfcProfileDef`, …): no real IFC entity's `EntityRef.type` is ever the
50
+ * literal abstract-type name, so a caller asking "is this entity one of
51
+ * that abstract type's concrete members" wants the self-match excluded,
52
+ * not `isSubtypeOf`'s reflexive answer.
53
+ */
54
+ export declare function isProperSubtypeOf(registry: HierarchyRegistry, type: string, ancestor: string): boolean;
55
+ /** `isProperSubtypeOf`, checked against ANY of the given registries. */
56
+ export declare function isProperSubtypeOfAny(registries: readonly HierarchyRegistry[], type: string, ancestor: string): boolean;
57
+ //# sourceMappingURL=schema-hierarchy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-hierarchy.d.ts","sourceRoot":"","sources":["../src/schema-hierarchy.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,oFAAoF;AACpF,MAAM,WAAW,eAAe;IAC9B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,qFAAqF;AACrF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC3C;AA+BD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAIhG;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,SAAS,iBAAiB,EAAE,EACxC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAET;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtG;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,SAAS,iBAAiB,EAAE,EACxC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAET"}
@@ -0,0 +1,69 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ /**
5
+ * Per-registry index from upper-cased entity name to its upper-cased
6
+ * inheritance chain, built once per registry object and cached by identity
7
+ * (a generated bundle's `SCHEMA_REGISTRY` is a module-level singleton, so
8
+ * identity is stable for the process lifetime). IFC EXPRESS entity names are
9
+ * unique under case-folding, so upper-casing both the key and the chain
10
+ * entries is lossless and lets callers pass either the raw STEP/type-table
11
+ * spelling (already upper-case, e.g. `'IFCWALL'`) or the schema's own
12
+ * PascalCase spelling (`'IfcWall'`) without needing to know which.
13
+ */
14
+ const chainIndexCache = new WeakMap();
15
+ function chainIndexFor(registry) {
16
+ let index = chainIndexCache.get(registry);
17
+ if (!index) {
18
+ index = new Map();
19
+ for (const [name, meta] of Object.entries(registry.entities)) {
20
+ if (meta.inheritanceChain && meta.inheritanceChain.length > 0) {
21
+ index.set(name.toUpperCase(), meta.inheritanceChain.map((n) => n.toUpperCase()));
22
+ }
23
+ }
24
+ chainIndexCache.set(registry, index);
25
+ }
26
+ return index;
27
+ }
28
+ /**
29
+ * Is `type` the same entity as `ancestor`, or a (possibly transitive) subtype
30
+ * of it, according to `registry`? Reflexive: `isSubtypeOf(r, 'IfcWall',
31
+ * 'IfcWall')` is `true`, matching the chain's own inclusion of the entity
32
+ * itself. Case-insensitive on both arguments. Returns `false` for a `type`
33
+ * the registry does not know (including an abstract supertype with no
34
+ * `inheritanceChain` of its own, and any name from a *different* schema
35
+ * version's vocabulary) — never throws.
36
+ */
37
+ export function isSubtypeOf(registry, type, ancestor) {
38
+ const chain = chainIndexFor(registry).get(type.toUpperCase());
39
+ if (!chain)
40
+ return false;
41
+ return chain.includes(ancestor.toUpperCase());
42
+ }
43
+ /**
44
+ * Is `type` a subtype of (or the same entity as) `ancestor` in ANY of the
45
+ * given registries? Use this to test membership against a schema-version
46
+ * union — e.g. a set of entity types that must be recognised whether the
47
+ * store was parsed against IFC4 or IFC4X3, mirroring how a hand-maintained
48
+ * "recognise it in either schema" allowlist used to be built by hand.
49
+ */
50
+ export function isSubtypeOfAny(registries, type, ancestor) {
51
+ return registries.some((registry) => isSubtypeOf(registry, type, ancestor));
52
+ }
53
+ /**
54
+ * Is `type` a PROPER (strict) subtype of `ancestor` — i.e. `isSubtypeOf` is
55
+ * true AND `type` is not `ancestor` itself? Use this for an abstract
56
+ * supertype with no concrete instances (`IfcMaterialDefinition`,
57
+ * `IfcProfileDef`, …): no real IFC entity's `EntityRef.type` is ever the
58
+ * literal abstract-type name, so a caller asking "is this entity one of
59
+ * that abstract type's concrete members" wants the self-match excluded,
60
+ * not `isSubtypeOf`'s reflexive answer.
61
+ */
62
+ export function isProperSubtypeOf(registry, type, ancestor) {
63
+ return type.toUpperCase() !== ancestor.toUpperCase() && isSubtypeOf(registry, type, ancestor);
64
+ }
65
+ /** `isProperSubtypeOf`, checked against ANY of the given registries. */
66
+ export function isProperSubtypeOfAny(registries, type, ancestor) {
67
+ return registries.some((registry) => isProperSubtypeOf(registry, type, ancestor));
68
+ }
69
+ //# sourceMappingURL=schema-hierarchy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-hierarchy.js","sourceRoot":"","sources":["../src/schema-hierarchy.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AA+B/D;;;;;;;;;GASG;AACH,MAAM,eAAe,GAAG,IAAI,OAAO,EAA4C,CAAC;AAEhF,SAAS,aAAa,CAAC,QAA2B;IAChD,IAAI,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7D,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9D,KAAK,CAAC,GAAG,CACP,IAAI,CAAC,WAAW,EAAE,EAClB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAClD,CAAC;YACJ,CAAC;QACH,CAAC;QACD,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,QAA2B,EAAE,IAAY,EAAE,QAAgB;IACrF,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,UAAwC,EACxC,IAAY,EACZ,QAAgB;IAEhB,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAA2B,EAAE,IAAY,EAAE,QAAgB;IAC3F,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,IAAI,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAChG,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,oBAAoB,CAClC,UAAwC,EACxC,IAAY,EACZ,QAAgB;IAEhB,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ifc-lite/codegen",
3
- "version": "1.15.12",
3
+ "version": "1.17.0",
4
4
  "description": "TypeScript code generator from IFC EXPRESS schemas",
5
5
  "type": "module",
6
6
  "repository": {
@@ -10,6 +10,33 @@
10
10
  },
11
11
  "main": "dist/index.js",
12
12
  "types": "dist/index.d.ts",
13
+ "exports": {
14
+ ".": {
15
+ "types": "./dist/index.d.ts",
16
+ "import": "./dist/index.js",
17
+ "default": "./dist/index.js"
18
+ },
19
+ "./schema-hierarchy": {
20
+ "types": "./dist/schema-hierarchy.d.ts",
21
+ "import": "./dist/schema-hierarchy.js",
22
+ "default": "./dist/schema-hierarchy.js"
23
+ },
24
+ "./ifc4": {
25
+ "types": "./dist/generated/ifc4/index.d.ts",
26
+ "import": "./dist/generated/ifc4/index.js",
27
+ "default": "./dist/generated/ifc4/index.js"
28
+ },
29
+ "./ifc4x3": {
30
+ "types": "./dist/generated/ifc4x3/index.d.ts",
31
+ "import": "./dist/generated/ifc4x3/index.js",
32
+ "default": "./dist/generated/ifc4x3/index.js"
33
+ },
34
+ "./ifc2x3": {
35
+ "types": "./dist/generated/ifc2x3/index.d.ts",
36
+ "import": "./dist/generated/ifc2x3/index.js",
37
+ "default": "./dist/generated/ifc2x3/index.js"
38
+ }
39
+ },
13
40
  "keywords": [
14
41
  "ifc",
15
42
  "express",
@@ -20,10 +47,10 @@
20
47
  "license": "MPL-2.0",
21
48
  "dependencies": {
22
49
  "commander": "^15.0.0",
23
- "@ifc-lite/data": "^4.0.0"
50
+ "@ifc-lite/data": "^4.2.0"
24
51
  },
25
52
  "devDependencies": {
26
- "@types/node": "^26.4.0",
53
+ "@types/node": "^26.4.1",
27
54
  "typescript": "^6.0.3",
28
55
  "vitest": "^4.1.11"
29
56
  },
@@ -38,12 +65,13 @@
38
65
  "README.md"
39
66
  ],
40
67
  "scripts": {
41
- "build": "pnpm exec tsc",
68
+ "build": "pnpm exec tsc && pnpm exec tsc -p tsconfig.generated.json",
42
69
  "typecheck": "node ../../scripts/typecheck-tests.mjs",
43
70
  "dev": "pnpm exec tsc --watch",
44
71
  "test": "vitest run",
45
72
  "generate": "node dist/cli.js",
46
73
  "generate:ifc4": "node dist/cli.js schemas/IFC4_ADD2_TC1.exp -o generated/ifc4",
47
- "generate:ifc4x3": "node dist/cli.js schemas/IFC4X3.exp -o generated/ifc4x3"
74
+ "generate:ifc4x3": "node dist/cli.js schemas/IFC4X3.exp -o generated/ifc4x3",
75
+ "generate:ifc2x3": "node dist/cli.js schemas/IFC2X3_TC1.exp -o generated/ifc2x3"
48
76
  }
49
77
  }