@ifc-lite/codegen 1.17.0 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/generator.d.ts +4 -0
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +25 -5
- package/dist/generator.js.map +1 -1
- package/dist/rust-generator.d.ts +2 -4
- package/dist/rust-generator.d.ts.map +1 -1
- package/dist/rust-generator.js +24 -28
- package/dist/rust-generator.js.map +1 -1
- package/dist/rust-schema-queries.d.ts +9 -2
- package/dist/rust-schema-queries.d.ts.map +1 -1
- package/dist/rust-schema-queries.js +56 -3
- package/dist/rust-schema-queries.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -21,6 +21,20 @@ node dist/cli.js schemas/IFC4X3.exp --output ./generated/ifc4x3
|
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
Pass `--rust` to also emit Rust type tables (consumed by the ifc-lite Rust core).
|
|
24
|
+
Rust output is public by default. Add `--rust-crate-private` when the generated
|
|
25
|
+
registry is an implementation detail of one crate and must use `pub(crate)`
|
|
26
|
+
instead of becoming part of that crate's public API; the flag has no effect
|
|
27
|
+
unless `--rust` is also present.
|
|
28
|
+
Pass `--rust` to also emit Rust type tables (consumed by the ifc-lite Rust core). To generate
|
|
29
|
+
one exact-name universe across supported releases while keeping the first schema authoritative
|
|
30
|
+
for attributes, pass older schemas with `--rust-supplemental-schema`. Rust generation also
|
|
31
|
+
includes class-shaped rows from `@ifc-lite/data`'s IFC4 family catalog, covering accepted IFC4X1
|
|
32
|
+
entities such as `IfcAlignmentCurve` that are absent from the bundled IFC4 ADD2 EXPRESS file:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
node dist/cli.js schemas/IFC4X3.exp --rust \
|
|
36
|
+
--rust-supplemental-schema schemas/IFC4_ADD2_TC1.exp schemas/IFC2X3_TC1.exp
|
|
37
|
+
```
|
|
24
38
|
|
|
25
39
|
Generated files (one per output directory, e.g. `./generated/ifc4`):
|
|
26
40
|
|
package/dist/cli.js
CHANGED
|
@@ -19,6 +19,8 @@ program
|
|
|
19
19
|
.option('-o, --output <dir>', 'Output directory', './generated')
|
|
20
20
|
.option('-r, --rust', 'Generate Rust code', false)
|
|
21
21
|
.option('--rust-dir <dir>', 'Rust output subdirectory (relative to output)', 'rust')
|
|
22
|
+
.option('--rust-crate-private', 'Keep generated Rust types crate-private', false)
|
|
23
|
+
.option('--rust-supplemental-schema <path...>', 'Additional EXPRESS schemas whose entity names extend the Rust IfcType universe')
|
|
22
24
|
.option('--skip-collision-check', 'Skip CRC32 collision check', false)
|
|
23
25
|
.option('-v, --verbose', 'Verbose output', false)
|
|
24
26
|
.action((schemaPath, options) => {
|
|
@@ -38,6 +40,8 @@ program
|
|
|
38
40
|
const genOptions = {
|
|
39
41
|
rust: options.rust,
|
|
40
42
|
rustDir: options.rustDir,
|
|
43
|
+
rustCratePrivate: options.rustCratePrivate,
|
|
44
|
+
rustSupplementalSchemaPaths: options.rustSupplementalSchema,
|
|
41
45
|
skipCollisionCheck: options.skipCollisionCheck,
|
|
42
46
|
};
|
|
43
47
|
generateFromFile(schemaPath, options.output, genOptions);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;+DAE+D;AAE/D;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAyB,MAAM,gBAAgB,CAAC;AAEzE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,4DAA4D,CAAC;KACzE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,QAAQ,CAAC,UAAU,EAAE,oCAAoC,CAAC;KAC1D,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,aAAa,CAAC;KAC/D,MAAM,CAAC,YAAY,EAAE,oBAAoB,EAAE,KAAK,CAAC;KACjD,MAAM,CAAC,kBAAkB,EAAE,+CAA+C,EAAE,MAAM,CAAC;KACnF,MAAM,CAAC,wBAAwB,EAAE,4BAA4B,EAAE,KAAK,CAAC;KACrE,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,KAAK,CAAC;KAChD,MAAM,CACL,CACE,UAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;+DAE+D;AAE/D;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAyB,MAAM,gBAAgB,CAAC;AAEzE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,4DAA4D,CAAC;KACzE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,QAAQ,CAAC,UAAU,EAAE,oCAAoC,CAAC;KAC1D,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,aAAa,CAAC;KAC/D,MAAM,CAAC,YAAY,EAAE,oBAAoB,EAAE,KAAK,CAAC;KACjD,MAAM,CAAC,kBAAkB,EAAE,+CAA+C,EAAE,MAAM,CAAC;KACnF,MAAM,CAAC,sBAAsB,EAAE,yCAAyC,EAAE,KAAK,CAAC;KAChF,MAAM,CACL,sCAAsC,EACtC,gFAAgF,CACjF;KACA,MAAM,CAAC,wBAAwB,EAAE,4BAA4B,EAAE,KAAK,CAAC;KACrE,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,KAAK,CAAC;KAChD,MAAM,CACL,CACE,UAAkB,EAClB,OAQC,EACD,EAAE;IACF,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,WAAW,UAAU,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACzC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,uDAAuD;YACvD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;gBACjD,CAAC,CAAC,OAAO,CAAC,OAAO;gBACjB,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,WAAW,WAAW,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEzB,MAAM,UAAU,GAAqB;YACnC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,2BAA2B,EAAE,OAAO,CAAC,sBAAsB;YAC3D,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;SAC/C,CAAC;QAEF,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAEzD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,IAAI,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CACF,CAAC;AAEJ,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/generator.d.ts
CHANGED
|
@@ -8,6 +8,10 @@ export interface GeneratorOptions {
|
|
|
8
8
|
rust?: boolean;
|
|
9
9
|
/** Rust output directory (relative to outputDir or absolute) */
|
|
10
10
|
rustDir?: string;
|
|
11
|
+
/** Keep generated Rust types visible only inside their consuming crate. */
|
|
12
|
+
rustCratePrivate?: boolean;
|
|
13
|
+
/** Additional EXPRESS files whose entity names extend the Rust IfcType universe. */
|
|
14
|
+
rustSupplementalSchemaPaths?: string[];
|
|
11
15
|
/** Skip type ID collision check */
|
|
12
16
|
skipCollisionCheck?: boolean;
|
|
13
17
|
}
|
package/dist/generator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAOnF,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oFAAoF;IACpF,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAC;IACvC,mCAAmC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,gBAAqB,GAC7B,iBAAiB,CAMnB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,gBAAqB,GAC7B,iBAAiB,CA8MnB;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,gBAAqB,GAC7B,IAAI,CAoBN"}
|
package/dist/generator.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* - TypeScript serialization helpers
|
|
11
11
|
* - Rust types and type IDs
|
|
12
12
|
*/
|
|
13
|
+
import { ENTITIES_IFC4, IFC_DATA_TYPES } from '@ifc-lite/data';
|
|
13
14
|
import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'node:fs';
|
|
14
15
|
import { join, isAbsolute } from 'node:path';
|
|
15
16
|
import { parseExpressSchema } from './express-parser.js';
|
|
@@ -18,6 +19,7 @@ import { generateTypeIds } from './type-ids-generator.js';
|
|
|
18
19
|
import { generateSerializers } from './serialization-generator.js';
|
|
19
20
|
import { generateRust } from './rust-generator.js';
|
|
20
21
|
import { findCollisions } from './crc32.js';
|
|
22
|
+
import { entityCatalogSchema } from './rust-schema-queries.js';
|
|
21
23
|
/**
|
|
22
24
|
* Generate all code from an EXPRESS schema file
|
|
23
25
|
*/
|
|
@@ -38,6 +40,16 @@ export function generateFromSchema(schemaContent, outputDir, options = {}) {
|
|
|
38
40
|
schemaContent = schemaContent.replace(/\r\n?/g, '\n');
|
|
39
41
|
console.log('📖 Parsing EXPRESS schema...');
|
|
40
42
|
const schema = parseExpressSchema(schemaContent);
|
|
43
|
+
const rustSupplementalSchemas = options.rust
|
|
44
|
+
? [
|
|
45
|
+
...(options.rustSupplementalSchemaPaths ?? []).map((path) => parseExpressSchema(readFileSync(path, 'utf-8').replace(/\r\n?/g, '\n'))),
|
|
46
|
+
// The IFC4-family catalog widens the CANONICAL exact-name universe
|
|
47
|
+
// (#4203); a crate-private per-schema registry is exactly its own
|
|
48
|
+
// schema and must not be widened, or `attribute_names_for_schema`
|
|
49
|
+
// could answer for a class the declared FILE_SCHEMA never knew.
|
|
50
|
+
...(options.rustCratePrivate ? [] : [entityCatalogSchema('IFC4_FAMILY', ENTITIES_IFC4, IFC_DATA_TYPES)]),
|
|
51
|
+
]
|
|
52
|
+
: [];
|
|
41
53
|
console.log(`✓ Parsed ${schema.name}`);
|
|
42
54
|
console.log(` - ${schema.entities.length} entities`);
|
|
43
55
|
console.log(` - ${schema.types.length} types`);
|
|
@@ -46,8 +58,17 @@ export function generateFromSchema(schemaContent, outputDir, options = {}) {
|
|
|
46
58
|
// Check for CRC32 collisions
|
|
47
59
|
if (!options.skipCollisionCheck) {
|
|
48
60
|
console.log('\n🔍 Checking for CRC32 collisions...');
|
|
49
|
-
const entityNames = schema.entities
|
|
50
|
-
const
|
|
61
|
+
const entityNames = [...schema.entities];
|
|
62
|
+
const knownNames = new Set(entityNames.map((entity) => entity.name.toUpperCase()));
|
|
63
|
+
for (const supplemental of rustSupplementalSchemas) {
|
|
64
|
+
for (const entity of supplemental.entities) {
|
|
65
|
+
if (!knownNames.has(entity.name.toUpperCase())) {
|
|
66
|
+
entityNames.push(entity);
|
|
67
|
+
knownNames.add(entity.name.toUpperCase());
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const collisions = findCollisions(entityNames.map((entity) => entity.name));
|
|
51
72
|
if (collisions.size > 0) {
|
|
52
73
|
console.warn('⚠️ CRC32 collisions detected:');
|
|
53
74
|
for (const [hash, names] of collisions) {
|
|
@@ -104,7 +125,7 @@ export * from './serializers.js';
|
|
|
104
125
|
// Generate Rust code if requested
|
|
105
126
|
if (options.rust) {
|
|
106
127
|
console.log('\n🦀 Generating Rust code...');
|
|
107
|
-
const rustCode = generateRust(schema);
|
|
128
|
+
const rustCode = generateRust(schema, rustSupplementalSchemas, options.rustCratePrivate);
|
|
108
129
|
// Use absolute path directly, or join relative path with outputDir
|
|
109
130
|
const rustDir = options.rustDir
|
|
110
131
|
? isAbsolute(options.rustDir)
|
|
@@ -130,8 +151,7 @@ export * from './serializers.js';
|
|
|
130
151
|
mod type_ids;
|
|
131
152
|
mod schema;
|
|
132
153
|
|
|
133
|
-
pub use type_ids::*;
|
|
134
|
-
pub use schema::*;
|
|
154
|
+
${options.rustCratePrivate ? '// The full generated ID universe is intentionally available to sibling modules.\n#[allow(unused_imports)]\npub(crate) use type_ids::*;\n' : 'pub use type_ids::*;\n'}${options.rustCratePrivate ? 'pub(crate)' : 'pub'} use schema::*;
|
|
135
155
|
`;
|
|
136
156
|
writeFileSync(`${rustDir}/mod.rs`, modContent);
|
|
137
157
|
console.log(` ✓ ${rustDir}/mod.rs`);
|
package/dist/generator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAsB,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAsB,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,YAAY,EAA0B,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
package/dist/rust-generator.d.ts
CHANGED
|
@@ -12,8 +12,6 @@ export interface RustGeneratedCode {
|
|
|
12
12
|
typeIds: string;
|
|
13
13
|
schema: string;
|
|
14
14
|
}
|
|
15
|
-
/**
|
|
16
|
-
|
|
17
|
-
*/
|
|
18
|
-
export declare function generateRust(schema: ExpressSchema): RustGeneratedCode;
|
|
15
|
+
/** Generate all Rust code from the canonical and supplemental EXPRESS schemas. */
|
|
16
|
+
export declare function generateRust(schema: ExpressSchema, supplementalSchemas?: readonly ExpressSchema[], cratePrivate?: boolean): RustGeneratedCode;
|
|
19
17
|
//# sourceMappingURL=rust-generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rust-generator.d.ts","sourceRoot":"","sources":["../src/rust-generator.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;AAM3E,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"rust-generator.d.ts","sourceRoot":"","sources":["../src/rust-generator.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;AAM3E,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,kFAAkF;AAClF,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,EACrB,mBAAmB,GAAE,SAAS,aAAa,EAAO,EAClD,YAAY,UAAQ,GACnB,iBAAiB,CAMnB"}
|
package/dist/rust-generator.js
CHANGED
|
@@ -3,21 +3,18 @@
|
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
4
|
import { crc32, formatCRC32TableLiteral } from './crc32.js';
|
|
5
5
|
import { getInheritanceChain } from './express-parser.js';
|
|
6
|
-
import { generateSchemaQueries } from './rust-schema-queries.js';
|
|
6
|
+
import { generateSchemaQueries, mergeTypeUniverse } from './rust-schema-queries.js';
|
|
7
7
|
import { generateTypeNameParser } from './rust-type-name-parser.js';
|
|
8
|
-
/**
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
export function generateRust(schema) {
|
|
8
|
+
/** Generate all Rust code from the canonical and supplemental EXPRESS schemas. */
|
|
9
|
+
export function generateRust(schema, supplementalSchemas = [], cratePrivate = false) {
|
|
10
|
+
const typeUniverse = mergeTypeUniverse(schema, supplementalSchemas);
|
|
12
11
|
return {
|
|
13
|
-
typeIds: generateTypeIdConstants(
|
|
14
|
-
schema: generateIfcTypeEnum(schema),
|
|
12
|
+
typeIds: generateTypeIdConstants(typeUniverse, cratePrivate),
|
|
13
|
+
schema: generateIfcTypeEnum(schema, typeUniverse, cratePrivate),
|
|
15
14
|
};
|
|
16
15
|
}
|
|
17
|
-
/**
|
|
18
|
-
|
|
19
|
-
*/
|
|
20
|
-
function generateTypeIdConstants(schema) {
|
|
16
|
+
/** Generate CRC32 type ID constants. */
|
|
17
|
+
function generateTypeIdConstants(schema, cratePrivate) {
|
|
21
18
|
let code = `// This Source Code Form is subject to the terms of the Mozilla Public
|
|
22
19
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
23
20
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
@@ -42,12 +39,11 @@ function generateTypeIdConstants(schema) {
|
|
|
42
39
|
}
|
|
43
40
|
code += '\n';
|
|
44
41
|
}
|
|
45
|
-
return code;
|
|
42
|
+
return cratePrivate ? `${code.trimEnd()}\n` : code;
|
|
46
43
|
}
|
|
47
|
-
/**
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
function generateIfcTypeEnum(schema) {
|
|
44
|
+
/** Generate the main IfcType enum. */
|
|
45
|
+
function generateIfcTypeEnum(schema, typeUniverse, cratePrivate) {
|
|
46
|
+
const visibility = cratePrivate ? 'pub(crate)' : 'pub';
|
|
51
47
|
let code = `// This Source Code Form is subject to the terms of the Mozilla Public
|
|
52
48
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
53
49
|
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
@@ -58,16 +54,16 @@ function generateIfcTypeEnum(schema) {
|
|
|
58
54
|
//!
|
|
59
55
|
//! DO NOT EDIT - This file is auto-generated by @ifc-lite/codegen
|
|
60
56
|
|
|
61
|
-
use std::fmt;
|
|
57
|
+
${cratePrivate ? '#![allow(dead_code, clippy::enum_variant_names)] // Full EXPRESS names are required; registry consumers currently use only name lookup and attribute slots.\n\n' : ''}use std::fmt;
|
|
62
58
|
|
|
63
59
|
/// IFC Entity Types
|
|
64
60
|
///
|
|
65
|
-
/// All ${
|
|
61
|
+
/// All ${typeUniverse.entities.length} entity types from the supported schema universe.
|
|
66
62
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
|
67
|
-
|
|
63
|
+
${visibility} enum IfcType {
|
|
68
64
|
`;
|
|
69
65
|
// Group entities by category
|
|
70
|
-
const categories = categorizeEntities(
|
|
66
|
+
const categories = categorizeEntities(typeUniverse);
|
|
71
67
|
for (const [category, entities] of Object.entries(categories)) {
|
|
72
68
|
code += ` // ${category}\n`;
|
|
73
69
|
for (const entity of entities) {
|
|
@@ -84,13 +80,13 @@ pub enum IfcType {
|
|
|
84
80
|
}
|
|
85
81
|
|
|
86
82
|
impl IfcType {
|
|
87
|
-
${generateTypeNameParser(
|
|
83
|
+
${generateTypeNameParser(typeUniverse)}
|
|
88
84
|
/// Parse from CRC32 type ID
|
|
89
85
|
pub fn from_id(id: u32) -> Self {
|
|
90
86
|
match id {
|
|
91
87
|
`;
|
|
92
88
|
// Generate match arms for CRC32 IDs
|
|
93
|
-
for (const entity of
|
|
89
|
+
for (const entity of typeUniverse.entities) {
|
|
94
90
|
const id = crc32(entity.name);
|
|
95
91
|
code += ` ${id} => Self::${entity.name},\n`;
|
|
96
92
|
}
|
|
@@ -102,7 +98,7 @@ ${generateTypeNameParser(schema)}
|
|
|
102
98
|
pub fn id(&self) -> u32 {
|
|
103
99
|
match self {
|
|
104
100
|
`;
|
|
105
|
-
for (const entity of
|
|
101
|
+
for (const entity of typeUniverse.entities) {
|
|
106
102
|
const id = crc32(entity.name);
|
|
107
103
|
code += ` Self::${entity.name} => ${id},\n`;
|
|
108
104
|
}
|
|
@@ -114,7 +110,7 @@ ${generateTypeNameParser(schema)}
|
|
|
114
110
|
pub fn as_str(&self) -> &'static str {
|
|
115
111
|
match self {
|
|
116
112
|
`;
|
|
117
|
-
for (const entity of
|
|
113
|
+
for (const entity of typeUniverse.entities) {
|
|
118
114
|
code += ` Self::${entity.name} => "${entity.name.toUpperCase()}",\n`;
|
|
119
115
|
}
|
|
120
116
|
code += ` Self::Unknown(_) => "UNKNOWN",
|
|
@@ -125,7 +121,7 @@ ${generateTypeNameParser(schema)}
|
|
|
125
121
|
pub fn name(&self) -> &'static str {
|
|
126
122
|
match self {
|
|
127
123
|
`;
|
|
128
|
-
for (const entity of
|
|
124
|
+
for (const entity of typeUniverse.entities) {
|
|
129
125
|
code += ` Self::${entity.name} => "${entity.name}",\n`;
|
|
130
126
|
}
|
|
131
127
|
code += ` Self::Unknown(_) => "Unknown",
|
|
@@ -136,7 +132,7 @@ ${generateTypeNameParser(schema)}
|
|
|
136
132
|
pub fn parent(&self) -> Option<Self> {
|
|
137
133
|
match self {
|
|
138
134
|
`;
|
|
139
|
-
for (const entity of
|
|
135
|
+
for (const entity of typeUniverse.entities) {
|
|
140
136
|
if (entity.supertype) {
|
|
141
137
|
code += ` Self::${entity.name} => Some(Self::${entity.supertype}),\n`;
|
|
142
138
|
}
|
|
@@ -162,7 +158,7 @@ ${generateTypeNameParser(schema)}
|
|
|
162
158
|
pub fn is_abstract(&self) -> bool {
|
|
163
159
|
match self {
|
|
164
160
|
`;
|
|
165
|
-
const abstractTypes =
|
|
161
|
+
const abstractTypes = typeUniverse.entities.filter((e) => e.isAbstract);
|
|
166
162
|
for (const entity of abstractTypes) {
|
|
167
163
|
code += ` Self::${entity.name} => true,\n`;
|
|
168
164
|
}
|
|
@@ -170,7 +166,7 @@ ${generateTypeNameParser(schema)}
|
|
|
170
166
|
}
|
|
171
167
|
}
|
|
172
168
|
|
|
173
|
-
${generateSchemaQueries(schema)}impl fmt::Display for IfcType {
|
|
169
|
+
${generateSchemaQueries(schema, typeUniverse.entities, visibility)}impl fmt::Display for IfcType {
|
|
174
170
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
|
175
171
|
write!(f, "{}", self.name())
|
|
176
172
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rust-generator.js","sourceRoot":"","sources":["../src/rust-generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rust-generator.js","sourceRoot":"","sources":["../src/rust-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,14 @@
|
|
|
5
5
|
* Split from rust-generator.ts so the enum emission and the metadata that
|
|
6
6
|
* answers questions ABOUT the enum stay separable.
|
|
7
7
|
*/
|
|
8
|
-
import type {
|
|
8
|
+
import type { IfcEntityInfo } from '@ifc-lite/data';
|
|
9
|
+
import type { EntityDefinition, ExpressSchema } from './express-parser.js';
|
|
10
|
+
/** Adapt class-shaped IFC catalog rows into a name-only EXPRESS supplement. */
|
|
11
|
+
export declare function entityCatalogSchema(name: string, catalog: readonly IfcEntityInfo[], excludedTypes: readonly {
|
|
12
|
+
readonly name: string;
|
|
13
|
+
}[]): ExpressSchema;
|
|
14
|
+
/** Merge exact names while preserving canonical positional metadata. */
|
|
15
|
+
export declare function mergeTypeUniverse(canonical: ExpressSchema, supplemental: readonly ExpressSchema[]): ExpressSchema;
|
|
9
16
|
/** Emitted inside `impl IfcType { … }`, closing the impl block. */
|
|
10
|
-
export declare function generateSchemaQueries(schema: ExpressSchema): string;
|
|
17
|
+
export declare function generateSchemaQueries(schema: ExpressSchema, typeUniverse?: readonly EntityDefinition[], visibility?: string): string;
|
|
11
18
|
//# sourceMappingURL=rust-schema-queries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rust-schema-queries.d.ts","sourceRoot":"","sources":["../src/rust-schema-queries.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"rust-schema-queries.d.ts","sourceRoot":"","sources":["../src/rust-schema-queries.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG3E,+EAA+E;AAC/E,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,aAAa,EAAE,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GAClD,aAAa,CAef;AAED,wEAAwE;AACxE,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,aAAa,EACxB,YAAY,EAAE,SAAS,aAAa,EAAE,GACrC,aAAa,CAgBf;AAED,mEAAmE;AACnE,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,YAAY,GAAE,SAAS,gBAAgB,EAAoB,EAC3D,UAAU,SAAQ,GACjB,MAAM,CAiER"}
|
|
@@ -2,8 +2,41 @@
|
|
|
2
2
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
4
|
import { getAllAttributes } from './express-parser.js';
|
|
5
|
+
/** Adapt class-shaped IFC catalog rows into a name-only EXPRESS supplement. */
|
|
6
|
+
export function entityCatalogSchema(name, catalog, excludedTypes) {
|
|
7
|
+
const excludedNames = new Set(excludedTypes.map((type) => type.name.toUpperCase()));
|
|
8
|
+
const entities = catalog
|
|
9
|
+
.filter((entity) => !excludedNames.has(entity.name.toUpperCase()) &&
|
|
10
|
+
(entity.parent !== undefined || entity.abstract || entity.attributes.length > 0))
|
|
11
|
+
.map((entity) => ({
|
|
12
|
+
name: entity.name,
|
|
13
|
+
isAbstract: entity.abstract,
|
|
14
|
+
supertype: entity.parent,
|
|
15
|
+
attributes: [],
|
|
16
|
+
}));
|
|
17
|
+
return { name, entities, types: [], enums: [], selects: [] };
|
|
18
|
+
}
|
|
19
|
+
/** Merge exact names while preserving canonical positional metadata. */
|
|
20
|
+
export function mergeTypeUniverse(canonical, supplemental) {
|
|
21
|
+
const entities = [...canonical.entities];
|
|
22
|
+
const names = new Set(entities.map((entity) => entity.name.toUpperCase()));
|
|
23
|
+
for (const schema of supplemental) {
|
|
24
|
+
for (const entity of schema.entities) {
|
|
25
|
+
if (!names.has(entity.name.toUpperCase())) {
|
|
26
|
+
entities.push(entity);
|
|
27
|
+
names.add(entity.name.toUpperCase());
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
...canonical,
|
|
33
|
+
name: [canonical, ...supplemental].map((item) => item.name).join(' + '),
|
|
34
|
+
entities,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
5
37
|
/** Emitted inside `impl IfcType { … }`, closing the impl block. */
|
|
6
|
-
export function generateSchemaQueries(schema) {
|
|
38
|
+
export function generateSchemaQueries(schema, typeUniverse = schema.entities, visibility = 'pub') {
|
|
39
|
+
const canonicalNames = new Set(schema.entities.map((entity) => entity.name));
|
|
7
40
|
return ` /// This entity's attributes, in STEP declaration order.
|
|
8
41
|
///
|
|
9
42
|
/// Supertype attributes come FIRST, which is what makes the position here
|
|
@@ -17,7 +50,9 @@ export function generateSchemaQueries(schema) {
|
|
|
17
50
|
/// as authoritative for it.
|
|
18
51
|
pub fn attribute_names(&self) -> &'static [&'static str] {
|
|
19
52
|
match self {
|
|
20
|
-
${
|
|
53
|
+
${typeUniverse.map((e) => canonicalNames.has(e.name)
|
|
54
|
+
? ` Self::${e.name} => &[${getAllAttributes(e, schema).map((a) => `"${a.name}"`).join(', ')}],`
|
|
55
|
+
: ` Self::${e.name} => &[],`).join('\n')}
|
|
21
56
|
Self::Unknown(_) => &[],
|
|
22
57
|
}
|
|
23
58
|
}
|
|
@@ -29,6 +64,24 @@ ${schema.entities.map((e) => ` Self::${e.name} => &[${getAllAttribute
|
|
|
29
64
|
pub fn attribute_index(&self, name: &str) -> Option<usize> {
|
|
30
65
|
self.attribute_names().iter().position(|n| *n == name)
|
|
31
66
|
}
|
|
67
|
+
|
|
68
|
+
/// Whether ${schema.name} itself declares this class.
|
|
69
|
+
///
|
|
70
|
+
/// The enum is one exact-name universe across every supported release;
|
|
71
|
+
/// a variant that only a supplemental (older) schema declares keeps its
|
|
72
|
+
/// name but carries no positional metadata here (its
|
|
73
|
+
/// \`attribute_names()\` is empty). A per-schema registry that must fail
|
|
74
|
+
/// closed for a class the declared FILE_SCHEMA does not know consults
|
|
75
|
+
/// this rather than the emptiness of the attribute list, which a genuine
|
|
76
|
+
/// zero-attribute class shares (#4203).
|
|
77
|
+
pub fn declared_by_canonical_schema(&self) -> bool {
|
|
78
|
+
${typeUniverse.some((e) => !canonicalNames.has(e.name))
|
|
79
|
+
? `!matches!(
|
|
80
|
+
self,
|
|
81
|
+
${typeUniverse.filter((e) => !canonicalNames.has(e.name)).map((e) => `Self::${e.name}`).join(' | ')} | Self::Unknown(_)
|
|
82
|
+
)`
|
|
83
|
+
: '!matches!(self, Self::Unknown(_))'}
|
|
84
|
+
}
|
|
32
85
|
}
|
|
33
86
|
|
|
34
87
|
/// Every entity type this schema defines, in declaration order.
|
|
@@ -43,7 +96,7 @@ ${schema.entities.map((e) => ` Self::${e.name} => &[${getAllAttribute
|
|
|
43
96
|
/// WHOLE schema — mapping every class to some other vocabulary, auditing
|
|
44
97
|
/// which ones it covers, generating a table — otherwise has to re-parse
|
|
45
98
|
/// the EXPRESS file or scrape this one.
|
|
46
|
-
|
|
99
|
+
${visibility} static ALL: &[IfcType] = &[
|
|
47
100
|
${schema.entities.map((e) => ` IfcType::${e.name},`).join('\n')}\n];
|
|
48
101
|
|
|
49
102
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rust-schema-queries.js","sourceRoot":"","sources":["../src/rust-schema-queries.ts"],"names":[],"mappings":"AAAA;;+DAE+D;
|
|
1
|
+
{"version":3,"file":"rust-schema-queries.js","sourceRoot":"","sources":["../src/rust-schema-queries.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ifc-lite/codegen",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.18.0",
|
|
4
4
|
"description": "TypeScript code generator from IFC EXPRESS schemas",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"license": "MPL-2.0",
|
|
48
48
|
"dependencies": {
|
|
49
49
|
"commander": "^15.0.0",
|
|
50
|
-
"@ifc-lite/data": "^
|
|
50
|
+
"@ifc-lite/data": "^5.0.0"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@types/node": "^26.4.1",
|