@ifc-lite/codegen 1.15.2 → 1.15.4

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.
@@ -2,10 +2,11 @@
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
  /**
5
- * Generate serialization support code
5
+ * Generate serialization support code — a thin re-export of the shared
6
+ * `@ifc-lite/data` STEP serializer with this schema's registry bound in.
6
7
  */
7
8
  export function generateSerializers(schema) {
8
- let code = `/* This Source Code Form is subject to the terms of the Mozilla Public
9
+ return `/* This Source Code Form is subject to the terms of the Mozilla Public
9
10
  * License, v. 2.0. If a copy of the MPL was not distributed with this
10
11
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
11
12
 
@@ -13,321 +14,49 @@ export function generateSerializers(schema) {
13
14
  * IFC Serialization Support
14
15
  * Generated from EXPRESS schema: ${schema.name}
15
16
  *
16
- * Utilities for serializing IFC entities to STEP format.
17
+ * Thin binding over the shared, schema-agnostic STEP serializer in
18
+ * \`@ifc-lite/data\`. All serialization logic lives there (single source of
19
+ * truth); only this bundle's \`SCHEMA_REGISTRY\` is bound to the registry-coupled
20
+ * helpers below.
17
21
  *
18
22
  * DO NOT EDIT - This file is auto-generated
19
23
  */
20
24
 
21
25
  import { SCHEMA_REGISTRY } from './schema-registry.js';
22
-
23
- /**
24
- * STEP value types
25
- */
26
- export type StepValue =
27
- | string
28
- | number
29
- | boolean
30
- | null
31
- | undefined
32
- | StepValue[]
33
- | EntityRef
34
- | EnumValue;
35
-
36
- /**
37
- * Entity reference (#123)
38
- */
39
- export interface EntityRef {
40
- ref: number;
41
- }
42
-
43
- /**
44
- * Enum value (.VALUE.)
45
- */
46
- export interface EnumValue {
47
- enum: string;
48
- }
49
-
50
- /**
51
- * Check if value is an entity reference
52
- */
53
- export function isEntityRef(value: unknown): value is EntityRef {
54
- return typeof value === 'object' && value !== null && 'ref' in value;
55
- }
56
-
57
- /**
58
- * Check if value is an enum value
59
- */
60
- export function isEnumValue(value: unknown): value is EnumValue {
61
- return typeof value === 'object' && value !== null && 'enum' in value;
62
- }
63
-
64
- /**
65
- * Create an entity reference
66
- */
67
- export function ref(id: number): EntityRef {
68
- return { ref: id };
69
- }
70
-
71
- /**
72
- * Create an enum value
73
- */
74
- export function enumVal(value: string): EnumValue {
75
- return { enum: value };
76
- }
77
-
78
- /**
79
- * Base interface for serializable entities
80
- */
81
- export interface StepEntity {
82
- /** Express ID (#123) */
83
- expressId: number;
84
- /** IFC type name */
85
- type: string;
86
- /** Attribute values */
87
- [key: string]: unknown;
88
- }
89
-
90
- /**
91
- * Serialize a single value to STEP format
92
- */
93
- export function serializeValue(value: StepValue): string {
94
- // Null/undefined -> $
95
- if (value === null || value === undefined) {
96
- return '$';
97
- }
98
-
99
- // Derived value -> *
100
- if (value === '*') {
101
- return '*';
102
- }
103
-
104
- // Boolean
105
- if (typeof value === 'boolean') {
106
- return value ? '.T.' : '.F.';
107
- }
108
-
109
- // Number
110
- if (typeof value === 'number') {
111
- if (!Number.isFinite(value)) {
112
- return '$';
113
- }
114
- // Use exponential notation for large/small numbers
115
- if (Math.abs(value) > 1e10 || (Math.abs(value) < 1e-10 && value !== 0)) {
116
- return value.toExponential(10).toUpperCase().replace('E+', 'E');
117
- }
118
- // Otherwise use fixed notation
119
- const str = value.toString();
120
- // Ensure there's a decimal point for REAL values
121
- return str.includes('.') ? str : str + '.';
122
- }
123
-
124
- // String
125
- if (typeof value === 'string') {
126
- return "'" + escapeStepString(value) + "'";
127
- }
128
-
129
- // Entity reference
130
- if (isEntityRef(value)) {
131
- return '#' + value.ref;
132
- }
133
-
134
- // Enum value
135
- if (isEnumValue(value)) {
136
- return '.' + value.enum + '.';
137
- }
138
-
139
- // Array/List
140
- if (Array.isArray(value)) {
141
- if (value.length === 0) {
142
- return '()';
143
- }
144
- return '(' + value.map(v => serializeValue(v as StepValue)).join(',') + ')';
145
- }
146
-
147
- // Object (shouldn't happen for valid STEP values)
148
- return '$';
149
- }
150
-
151
- /**
152
- * Escape a string for STEP format
153
- */
154
- function escapeStepString(str: string): string {
155
- return str
156
- .replace(/\\\\/g, '\\\\\\\\') // Backslash
157
- .replace(/'/g, "''"); // Single quote
158
- }
159
-
160
- /**
161
- * Serialize an entity to a STEP line
26
+ import {
27
+ generateHeader,
28
+ generateStepFileWithRegistry,
29
+ toStepLineWithRegistry,
30
+ type StepEntity,
31
+ } from '@ifc-lite/data';
32
+
33
+ export {
34
+ isEntityRef,
35
+ isEnumValue,
36
+ ref,
37
+ enumVal,
38
+ serializeValue,
39
+ generateHeader,
40
+ parseStepValue,
41
+ } from '@ifc-lite/data';
42
+ export type { StepValue, EntityRef, EnumValue, StepEntity } from '@ifc-lite/data';
43
+
44
+ /**
45
+ * Serialize an entity to a STEP line (bound to this bundle's schema).
162
46
  */
163
47
  export function toStepLine(entity: StepEntity): string {
164
- const schema = SCHEMA_REGISTRY.entities[entity.type];
165
- if (!schema) {
166
- throw new Error(\`Unknown entity type: \${entity.type}\`);
167
- }
168
-
169
- // Get all attributes in order
170
- const values: string[] = [];
171
- for (const attr of schema.allAttributes) {
172
- const value = entity[attr.name];
173
- values.push(serializeValue(value as StepValue));
174
- }
175
-
176
- return \`#\${entity.expressId}=\${entity.type.toUpperCase()}(\${values.join(',')});\`;
48
+ return toStepLineWithRegistry(SCHEMA_REGISTRY, entity);
177
49
  }
178
50
 
179
51
  /**
180
- * Generate STEP file header
181
- */
182
- export function generateHeader(options: {
183
- description?: string;
184
- author?: string;
185
- organization?: string;
186
- application?: string;
187
- schema: 'IFC2X3' | 'IFC4' | 'IFC4X3' | 'IFC5';
188
- filename?: string;
189
- }): string {
190
- const now = new Date().toISOString().replace(/[-:]/g, '').split('.')[0];
191
- const desc = options.description || 'ViewDefinition [CoordinationView]';
192
- const author = options.author || '';
193
- const org = options.organization || '';
194
- const app = options.application || 'ifc-lite';
195
- const filename = options.filename || 'output.ifc';
196
-
197
- return \`ISO-10303-21;
198
- HEADER;
199
- FILE_DESCRIPTION('\${desc}','2;1');
200
- FILE_NAME('\${filename}','\${now}',('\${author}'),('\${org}'),'\${app}','\${app}','');
201
- FILE_SCHEMA(('\${options.schema}'));
202
- ENDSEC;
203
- \`;
204
- }
205
-
206
- /**
207
- * Generate complete STEP file content
52
+ * Generate complete STEP file content (bound to this bundle's schema).
208
53
  */
209
54
  export function generateStepFile(
210
55
  entities: StepEntity[],
211
56
  options: Parameters<typeof generateHeader>[0]
212
57
  ): string {
213
- const header = generateHeader(options);
214
-
215
- // Sort entities by ID for deterministic output
216
- const sorted = [...entities].sort((a, b) => a.expressId - b.expressId);
217
-
218
- const data = sorted.map(e => toStepLine(e)).join('\\n');
219
-
220
- return \`\${header}DATA;
221
- \${data}
222
- ENDSEC;
223
- END-ISO-10303-21;
224
- \`;
225
- }
226
-
227
- /**
228
- * Parse a STEP value from string
229
- */
230
- export function parseStepValue(str: string): StepValue {
231
- str = str.trim();
232
-
233
- // Null
234
- if (str === '$') {
235
- return null;
236
- }
237
-
238
- // Derived
239
- if (str === '*') {
240
- return '*' as unknown as StepValue;
241
- }
242
-
243
- // Boolean
244
- if (str === '.T.') {
245
- return true;
246
- }
247
- if (str === '.F.') {
248
- return false;
249
- }
250
- if (str === '.U.') {
251
- return null; // Unknown/indeterminate
252
- }
253
-
254
- // Entity reference
255
- if (str.startsWith('#')) {
256
- return { ref: parseInt(str.substring(1), 10) };
257
- }
258
-
259
- // Enum
260
- if (str.startsWith('.') && str.endsWith('.')) {
261
- return { enum: str.substring(1, str.length - 1) };
262
- }
263
-
264
- // String
265
- if (str.startsWith("'") && str.endsWith("'")) {
266
- return unescapeStepString(str.substring(1, str.length - 1));
267
- }
268
-
269
- // List
270
- if (str.startsWith('(') && str.endsWith(')')) {
271
- return parseStepList(str);
272
- }
273
-
274
- // Number
275
- const num = parseFloat(str);
276
- if (!isNaN(num)) {
277
- return num;
278
- }
279
-
280
- // Unknown
281
- return str;
282
- }
283
-
284
- /**
285
- * Parse a STEP list
286
- */
287
- function parseStepList(str: string): StepValue[] {
288
- // Remove outer parentheses
289
- const inner = str.substring(1, str.length - 1).trim();
290
- if (inner === '') {
291
- return [];
292
- }
293
-
294
- const values: StepValue[] = [];
295
- let depth = 0;
296
- let current = '';
297
-
298
- for (let i = 0; i < inner.length; i++) {
299
- const char = inner[i];
300
-
301
- if (char === '(' || char === '[') {
302
- depth++;
303
- current += char;
304
- } else if (char === ')' || char === ']') {
305
- depth--;
306
- current += char;
307
- } else if (char === ',' && depth === 0) {
308
- values.push(parseStepValue(current));
309
- current = '';
310
- } else {
311
- current += char;
312
- }
313
- }
314
-
315
- if (current.trim()) {
316
- values.push(parseStepValue(current));
317
- }
318
-
319
- return values;
320
- }
321
-
322
- /**
323
- * Unescape a STEP string
324
- */
325
- function unescapeStepString(str: string): string {
326
- return str
327
- .replace(/''/g, "'")
328
- .replace(/\\\\\\\\/g, '\\\\');
58
+ return generateStepFileWithRegistry(SCHEMA_REGISTRY, entities, options);
329
59
  }
330
60
  `;
331
- return code;
332
61
  }
333
62
  //# sourceMappingURL=serialization-generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serialization-generator.js","sourceRoot":"","sources":["../src/serialization-generator.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAW/D;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAqB;IACvD,IAAI,IAAI,GAAG;;;;;;oCAMuB,MAAM,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4T9C,CAAC;IAEA,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"serialization-generator.js","sourceRoot":"","sources":["../src/serialization-generator.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAc/D;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAqB;IACvD,OAAO;;;;;;oCAM2B,MAAM,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C9C,CAAC;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-generator.d.ts","sourceRoot":"","sources":["../src/typescript-generator.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,KAAK,EACV,aAAa,EAMd,MAAM,qBAAqB,CAAC;AAG7B,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAQvE;AA8jBD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,MAAM,GAChB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAQrF"}
1
+ {"version":3,"file":"typescript-generator.d.ts","sourceRoot":"","sources":["../src/typescript-generator.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,KAAK,EACV,aAAa,EAMd,MAAM,qBAAqB,CAAC;AAG7B,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAQvE;AAikBD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,MAAM,GAChB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAQrF"}
@@ -96,7 +96,9 @@ function generateAttribute(attr) {
96
96
  // Wrap in array if needed
97
97
  // Note: attr.type may already contain [] for nested collections from the parser
98
98
  if (attr.isArray || attr.isList || attr.isSet) {
99
- tsType = `${tsType}[]`;
99
+ // Parenthesize union element types so `boolean | null` becomes
100
+ // `(boolean | null)[]` rather than the precedence-misparsed `boolean | null[]`.
101
+ tsType = /\|/.test(tsType) ? `(${tsType})[]` : `${tsType}[]`;
100
102
  }
101
103
  code += tsType;
102
104
  code += ';\n';
@@ -128,7 +130,8 @@ function mapExpressTypeToTypeScript(expressType) {
128
130
  const collectionMatch = expressType.match(/^(LIST|SET|ARRAY)\s*\[.*?\]\s*OF\s+(.+)$/i);
129
131
  if (collectionMatch) {
130
132
  const innerType = mapExpressTypeToTypeScript(collectionMatch[2].trim());
131
- return `${innerType}[]`;
133
+ // Parenthesize union element types to preserve `(union)[]` precedence.
134
+ return /\|/.test(innerType) ? `(${innerType})[]` : `${innerType}[]`;
132
135
  }
133
136
  // Handle ENUMERATION OF (...) - these should be handled by enum generation
134
137
  if (/^ENUMERATION\s+OF/i.test(expressType)) {
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-generator.js","sourceRoot":"","sources":["../src/typescript-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typescript-generator.js","sourceRoot":"","sources":["../src/typescript-generator.ts"],"names":[],"mappings":"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"}