@ifc-lite/flow-nodes 0.3.1 → 0.5.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 (94) hide show
  1. package/README.md +1 -0
  2. package/dist/aps-client.d.ts +55 -0
  3. package/dist/aps-client.d.ts.map +1 -0
  4. package/dist/aps-client.js +194 -0
  5. package/dist/aps-client.js.map +1 -0
  6. package/dist/aps-nodes.d.ts +3 -0
  7. package/dist/aps-nodes.d.ts.map +1 -0
  8. package/dist/aps-nodes.js +192 -0
  9. package/dist/aps-nodes.js.map +1 -0
  10. package/dist/aps-table.d.ts +24 -0
  11. package/dist/aps-table.d.ts.map +1 -0
  12. package/dist/aps-table.js +123 -0
  13. package/dist/aps-table.js.map +1 -0
  14. package/dist/base64.d.ts +8 -0
  15. package/dist/base64.d.ts.map +1 -0
  16. package/dist/base64.js +59 -0
  17. package/dist/base64.js.map +1 -0
  18. package/dist/bcf-client.d.ts +36 -0
  19. package/dist/bcf-client.d.ts.map +1 -0
  20. package/dist/bcf-client.js +108 -0
  21. package/dist/bcf-client.js.map +1 -0
  22. package/dist/bcf-nodes.d.ts +3 -0
  23. package/dist/bcf-nodes.d.ts.map +1 -0
  24. package/dist/bcf-nodes.js +181 -0
  25. package/dist/bcf-nodes.js.map +1 -0
  26. package/dist/documents-fetch.d.ts +23 -0
  27. package/dist/documents-fetch.d.ts.map +1 -0
  28. package/dist/documents-fetch.js +48 -0
  29. package/dist/documents-fetch.js.map +1 -0
  30. package/dist/documents-nodes.d.ts +5 -0
  31. package/dist/documents-nodes.d.ts.map +1 -0
  32. package/dist/documents-nodes.js +167 -0
  33. package/dist/documents-nodes.js.map +1 -0
  34. package/dist/host.d.ts +28 -0
  35. package/dist/host.d.ts.map +1 -1
  36. package/dist/host.js.map +1 -1
  37. package/dist/http-request-node.d.ts +9 -0
  38. package/dist/http-request-node.d.ts.map +1 -0
  39. package/dist/http-request-node.js +109 -0
  40. package/dist/http-request-node.js.map +1 -0
  41. package/dist/index.d.ts +20 -2
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +34 -5
  44. package/dist/index.js.map +1 -1
  45. package/dist/model-nodes.d.ts.map +1 -1
  46. package/dist/model-nodes.js +11 -6
  47. package/dist/model-nodes.js.map +1 -1
  48. package/dist/open-model-node.d.ts +3 -0
  49. package/dist/open-model-node.d.ts.map +1 -0
  50. package/dist/open-model-node.js +47 -0
  51. package/dist/open-model-node.js.map +1 -0
  52. package/dist/script-node.d.ts.map +1 -1
  53. package/dist/script-node.js +55 -21
  54. package/dist/script-node.js.map +1 -1
  55. package/dist/secrets.d.ts +88 -0
  56. package/dist/secrets.d.ts.map +1 -0
  57. package/dist/secrets.js +202 -0
  58. package/dist/secrets.js.map +1 -0
  59. package/dist/speckle/client.d.ts +52 -0
  60. package/dist/speckle/client.d.ts.map +1 -0
  61. package/dist/speckle/client.js +153 -0
  62. package/dist/speckle/client.js.map +1 -0
  63. package/dist/speckle/geometry.d.ts +37 -0
  64. package/dist/speckle/geometry.d.ts.map +1 -0
  65. package/dist/speckle/geometry.js +126 -0
  66. package/dist/speckle/geometry.js.map +1 -0
  67. package/dist/speckle/mapping.d.ts +62 -0
  68. package/dist/speckle/mapping.d.ts.map +1 -0
  69. package/dist/speckle/mapping.js +208 -0
  70. package/dist/speckle/mapping.js.map +1 -0
  71. package/dist/speckle/parameters.d.ts +49 -0
  72. package/dist/speckle/parameters.d.ts.map +1 -0
  73. package/dist/speckle/parameters.js +95 -0
  74. package/dist/speckle/parameters.js.map +1 -0
  75. package/dist/speckle/refusals.d.ts +45 -0
  76. package/dist/speckle/refusals.d.ts.map +1 -0
  77. package/dist/speckle/refusals.js +40 -0
  78. package/dist/speckle/refusals.js.map +1 -0
  79. package/dist/speckle/units.d.ts +13 -0
  80. package/dist/speckle/units.d.ts.map +1 -0
  81. package/dist/speckle/units.js +59 -0
  82. package/dist/speckle/units.js.map +1 -0
  83. package/dist/speckle/url.d.ts +35 -0
  84. package/dist/speckle/url.d.ts.map +1 -0
  85. package/dist/speckle/url.js +48 -0
  86. package/dist/speckle/url.js.map +1 -0
  87. package/dist/speckle-receive-node.d.ts +9 -0
  88. package/dist/speckle-receive-node.d.ts.map +1 -0
  89. package/dist/speckle-receive-node.js +180 -0
  90. package/dist/speckle-receive-node.js.map +1 -0
  91. package/dist/xlsx-nodes.d.ts.map +1 -1
  92. package/dist/xlsx-nodes.js +1 -40
  93. package/dist/xlsx-nodes.js.map +1 -1
  94. package/package.json +11 -9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/speckle/mapping.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Revit parameters on a Speckle object, in both shapes the Revit connector
3
+ * has written:
4
+ *
5
+ * - `properties["Type Parameters" | "Instance Parameters"][group][name]`
6
+ * = `{ name, value, units?, internalDefinitionName }` (current v2 output);
7
+ * - `parameters[internalName]` = `Objects.BuiltElements.Revit.Parameter`
8
+ * `{ name, value, units, isTypeParameter, applicationInternalName }` (older).
9
+ *
10
+ * Lengths, areas and volumes are converted to metres / m² / m³; every other
11
+ * unit is carried as authored. An entry with no scalar `value` (a compound
12
+ * structure layer, a nested table) is not a parameter and is counted so the
13
+ * caller can report it.
14
+ */
15
+ import type { Resolver } from './geometry.js';
16
+ import { type Quantity } from './units.js';
17
+ export type ParamValue = string | number | boolean;
18
+ export interface SpeckleParameter {
19
+ readonly scope: 'type' | 'instance';
20
+ readonly name: string;
21
+ /** Revit's BuiltInParameter / shared-parameter name, e.g. `WALL_ATTR_WIDTH_PARAM`. */
22
+ readonly internalName?: string;
23
+ /** Converted to SI when the unit is a length, area or volume. */
24
+ readonly value: ParamValue;
25
+ /** What `value` was converted as; absent when it is carried as authored (no unit, or one the tables do not know). */
26
+ readonly quantity?: Quantity;
27
+ /** The unit label as authored, if any. */
28
+ readonly units?: string;
29
+ }
30
+ export interface ParameterRead {
31
+ readonly parameters: SpeckleParameter[];
32
+ /** Entries under a parameter scope that carry no scalar value. */
33
+ readonly skipped: number;
34
+ }
35
+ export declare function readParameters(resolve: Resolver, obj: Record<string, unknown>): ParameterRead;
36
+ /**
37
+ * A positive length parameter by internal name, in metres, instance before
38
+ * type — or why there is none. Only a value that was actually CONVERTED as a
39
+ * length counts: a unit label outside the tables ("Feet and fractional
40
+ * inches", "Fractional inches", none at all) is never read as metres.
41
+ */
42
+ export declare function dimension(params: readonly SpeckleParameter[], internalName: string): {
43
+ value: number;
44
+ } | {
45
+ reason: string;
46
+ };
47
+ /** Property-set rows for one scope; a repeated display name keeps both, the later one qualified by its internal name. */
48
+ export declare function psetRows(params: readonly SpeckleParameter[], scope: 'type' | 'instance'): Record<string, ParamValue>;
49
+ //# sourceMappingURL=parameters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../src/speckle/parameters.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,qHAAqH;IACrH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC;IACxC,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AA0BD,wBAAgB,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CA2B7F;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAQ3H;AAED,yHAAyH;AACzH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAYpH"}
@@ -0,0 +1,95 @@
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
+ import { parameterScale } from './units.js';
5
+ const isScalar = (v) => typeof v === 'string' || typeof v === 'boolean' || (typeof v === 'number' && Number.isFinite(v));
6
+ function convert(value, units) {
7
+ if (typeof value !== 'number')
8
+ return { value };
9
+ const scale = parameterScale(units);
10
+ return scale ? { value: value * scale.factor, quantity: scale.quantity } : { value };
11
+ }
12
+ function entry(scope, key, raw) {
13
+ if (!isScalar(raw.value))
14
+ return undefined;
15
+ const name = typeof raw.name === 'string' && raw.name.length > 0 ? raw.name : key;
16
+ const internal = raw.internalDefinitionName ?? raw.applicationInternalName;
17
+ return {
18
+ scope,
19
+ name,
20
+ internalName: typeof internal === 'string' ? internal : undefined,
21
+ ...convert(raw.value, raw.units),
22
+ units: typeof raw.units === 'string' ? raw.units : undefined,
23
+ };
24
+ }
25
+ const SCOPES = [['Type Parameters', 'type'], ['Instance Parameters', 'instance']];
26
+ export function readParameters(resolve, obj) {
27
+ const parameters = [];
28
+ let skipped = 0;
29
+ const properties = resolve(obj.properties);
30
+ for (const [key, scope] of SCOPES) {
31
+ const groups = resolve(properties?.[key]);
32
+ for (const group of Object.values(groups ?? {})) {
33
+ const g = resolve(group);
34
+ if (!g)
35
+ continue;
36
+ for (const [name, raw] of Object.entries(g)) {
37
+ const r = resolve(raw);
38
+ if (!r)
39
+ continue;
40
+ const p = entry(scope, name, r);
41
+ if (p)
42
+ parameters.push(p);
43
+ else
44
+ skipped++;
45
+ }
46
+ }
47
+ }
48
+ const legacy = resolve(obj.parameters);
49
+ for (const [key, raw] of Object.entries(legacy ?? {})) {
50
+ const r = resolve(raw);
51
+ if (!r || !('value' in r))
52
+ continue; // `id`, `speckle_type`, … of the container itself
53
+ const p = entry(r.isTypeParameter === true ? 'type' : 'instance', key, r);
54
+ if (p)
55
+ parameters.push(p);
56
+ else
57
+ skipped++;
58
+ }
59
+ return { parameters, skipped };
60
+ }
61
+ /**
62
+ * A positive length parameter by internal name, in metres, instance before
63
+ * type — or why there is none. Only a value that was actually CONVERTED as a
64
+ * length counts: a unit label outside the tables ("Feet and fractional
65
+ * inches", "Fractional inches", none at all) is never read as metres.
66
+ */
67
+ export function dimension(params, internalName) {
68
+ const hits = params.filter((p) => p.internalName === internalName && typeof p.value === 'number' && p.value > 0);
69
+ const pick = (ps) => ps.find((p) => p.scope === 'instance') ?? ps[0];
70
+ const converted = pick(hits.filter((p) => p.quantity === 'length'));
71
+ if (converted)
72
+ return { value: converted.value };
73
+ const other = pick(hits);
74
+ if (other)
75
+ return { reason: `${internalName} has unit "${other.units ?? '(none)'}", which is not a supported length unit` };
76
+ return { reason: `no positive ${internalName} parameter` };
77
+ }
78
+ /** Property-set rows for one scope; a repeated display name keeps both, the later one qualified by its internal name. */
79
+ export function psetRows(params, scope) {
80
+ // Null prototype: parameter names come from the server, and `__proto__`,
81
+ // `constructor` or `toString` must be ordinary keys, not Object.prototype.
82
+ const rows = Object.create(null);
83
+ for (const p of params) {
84
+ if (p.scope !== scope)
85
+ continue;
86
+ let key = p.name;
87
+ if (key in rows)
88
+ key = `${p.name} (${p.internalName ?? 'duplicate'})`;
89
+ for (let n = 2; key in rows; n++)
90
+ key = `${p.name} (${p.internalName ?? 'duplicate'} ${n})`;
91
+ rows[key] = p.value;
92
+ }
93
+ return rows;
94
+ }
95
+ //# sourceMappingURL=parameters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/speckle/parameters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * What a Speckle receive did NOT write, by name and count.
3
+ *
4
+ * Same contract as the LandXML mapping's refusals (`@ifc-lite/create`
5
+ * `landxml/refusals.ts`): nothing is dropped silently. "14 RevitElement
6
+ * objects have no v1 mapping" is actionable; an element that is simply
7
+ * absent from the IFC is not even noticeable.
8
+ */
9
+ export type SpeckleRefusalReason =
10
+ /** The object's type has no v1 mapping at all. */
11
+ 'unmapped-type'
12
+ /** A mapped type whose geometry v1 cannot reproduce (curved, sloped, slanted, rotated, …). */
13
+ | 'geometry'
14
+ /** A mapped type missing a dimension its IFC builder needs (thickness, section size, height). */
15
+ | 'missing-dimension'
16
+ /** A floor or roof with openings, which v1 would fill in. */
17
+ | 'openings'
18
+ /** No length unit to convert from. */
19
+ | 'no-units'
20
+ /** Excluded by the node's `level` filter. */
21
+ | 'other-level'
22
+ /** The IFC writer rejected the mapped element. */
23
+ | 'write-failed'
24
+ /** Re-receive: the new version was rejected, and the element from the earlier receive was KEPT (not replaced). */
25
+ | 'write-failed-kept-previous'
26
+ /** Display meshes of written elements, which are not carried (the body is rebuilt parametrically). */
27
+ | 'display-meshes'
28
+ /** Property entries that are not scalar parameters (compound structure layers, nested tables). */
29
+ | 'non-parameter-entries';
30
+ export interface SpeckleRefusal {
31
+ /** The most-derived `speckle_type` link, e.g. `RevitWall`. */
32
+ readonly speckleType: string;
33
+ readonly reason: SpeckleRefusalReason;
34
+ readonly count: number;
35
+ readonly message: string;
36
+ /** Up to five Speckle object ids, so the operator can find them. */
37
+ readonly examples: readonly string[];
38
+ }
39
+ export declare class RefusalLog {
40
+ private readonly buckets;
41
+ /** Count `n` refused things of one type, for one reason, with one explanation. */
42
+ add(speckleType: string, reason: SpeckleRefusalReason, detail: string, id: string | undefined, n?: number): void;
43
+ list(): SpeckleRefusal[];
44
+ }
45
+ //# sourceMappingURL=refusals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refusals.d.ts","sourceRoot":"","sources":["../../src/speckle/refusals.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,MAAM,MAAM,oBAAoB;AAC9B,kDAAkD;AAChD,eAAe;AACjB,8FAA8F;GAC5F,UAAU;AACZ,iGAAiG;GAC/F,mBAAmB;AACrB,6DAA6D;GAC3D,UAAU;AACZ,sCAAsC;GACpC,UAAU;AACZ,6CAA6C;GAC3C,aAAa;AACf,kDAAkD;GAChD,cAAc;AAChB,kHAAkH;GAChH,4BAA4B;AAC9B,sGAAsG;GACpG,gBAAgB;AAClB,kGAAkG;GAChG,uBAAuB,CAAC;AAE5B,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAYD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IAErD,kFAAkF;IAClF,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,SAAI,GAAG,IAAI;IAS3G,IAAI,IAAI,cAAc,EAAE;CASzB"}
@@ -0,0 +1,40 @@
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
+ const MAX_EXAMPLES = 5;
5
+ export class RefusalLog {
6
+ buckets = new Map();
7
+ /** Count `n` refused things of one type, for one reason, with one explanation. */
8
+ add(speckleType, reason, detail, id, n = 1) {
9
+ if (n <= 0)
10
+ return;
11
+ const key = `${speckleType}\u0000${reason}\u0000${detail}`;
12
+ let b = this.buckets.get(key);
13
+ if (!b)
14
+ this.buckets.set(key, (b = { speckleType, reason, detail, count: 0, examples: [] }));
15
+ b.count += n;
16
+ if (id !== undefined && b.examples.length < MAX_EXAMPLES && !b.examples.includes(id))
17
+ b.examples.push(id);
18
+ }
19
+ list() {
20
+ return [...this.buckets.values()].map((b) => ({
21
+ speckleType: b.speckleType,
22
+ reason: b.reason,
23
+ count: b.count,
24
+ message: messageOf(b),
25
+ examples: b.examples,
26
+ }));
27
+ }
28
+ }
29
+ function messageOf(b) {
30
+ const plural = b.count === 1 ? '' : 's';
31
+ switch (b.reason) {
32
+ case 'display-meshes':
33
+ return `${b.count} display mesh${b.count === 1 ? '' : 'es'} on written ${b.speckleType} elements not carried: ${b.detail}.`;
34
+ case 'non-parameter-entries':
35
+ return `${b.count} property entr${b.count === 1 ? 'y' : 'ies'} on written ${b.speckleType} elements not carried: ${b.detail}.`;
36
+ default:
37
+ return `${b.count} ${b.speckleType} object${plural} not written: ${b.detail}.`;
38
+ }
39
+ }
40
+ //# sourceMappingURL=refusals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refusals.js","sourceRoot":"","sources":["../../src/speckle/refusals.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AA2C/D,MAAM,YAAY,GAAG,CAAC,CAAC;AAUvB,MAAM,OAAO,UAAU;IACJ,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAErD,kFAAkF;IAClF,GAAG,CAAC,WAAmB,EAAE,MAA4B,EAAE,MAAc,EAAE,EAAsB,EAAE,CAAC,GAAG,CAAC;QAClG,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO;QACnB,MAAM,GAAG,GAAG,GAAG,WAAW,SAAS,MAAM,SAAS,MAAM,EAAE,CAAC;QAC3D,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7F,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QACb,IAAI,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5C,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;YACrB,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC,CAAC;IACN,CAAC;CACF;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACxC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;QACjB,KAAK,gBAAgB;YACnB,OAAO,GAAG,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,WAAW,0BAA0B,CAAC,CAAC,MAAM,GAAG,CAAC;QAC9H,KAAK,uBAAuB;YAC1B,OAAO,GAAG,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,WAAW,0BAA0B,CAAC,CAAC,MAAM,GAAG,CAAC;QACjI;YACE,OAAO,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,WAAW,UAAU,MAAM,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC;IACnF,CAAC;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ /** Metres per one `units`, or undefined when `units` is not a length unit (including Speckle's `none`). */
2
+ export declare function lengthScale(units: unknown): number | undefined;
3
+ export type Quantity = 'length' | 'area' | 'volume';
4
+ /**
5
+ * The quantity and SI factor of a parameter unit, e.g. `Square meters` →
6
+ * area × 1, `Cubic feet` → volume × 0.0283…; undefined for anything else
7
+ * (`Currency`, `Degrees`, …).
8
+ */
9
+ export declare function parameterScale(units: unknown): {
10
+ quantity: Quantity;
11
+ factor: number;
12
+ } | undefined;
13
+ //# sourceMappingURL=units.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"units.d.ts","sourceRoot":"","sources":["../../src/speckle/units.ts"],"names":[],"mappings":"AA2BA,2GAA2G;AAC3G,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAG9D;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAiBjG"}
@@ -0,0 +1,59 @@
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
+ * Speckle unit strings → SI scale factors.
6
+ *
7
+ * Geometry carries Speckle's own unit vocabulary (`mm`, `cm`, `m`, `km`,
8
+ * `in`, `ft`, `yd`, `mi` and their spelled-out aliases, per specklepy's
9
+ * `UNITS_STRINGS`). Revit parameters carry Revit's display names instead
10
+ * (`Centimeters`, `Square meters`, `Cubic feet`). Both are handled; a unit
11
+ * outside these tables is not a length/area/volume and its value is carried
12
+ * unconverted, never guessed.
13
+ */
14
+ const LENGTH_TO_METRES = {
15
+ mm: 0.001, mil: 0.001, millimeter: 0.001, millimeters: 0.001, millimetre: 0.001, millimetres: 0.001,
16
+ cm: 0.01, centimeter: 0.01, centimeters: 0.01, centimetre: 0.01, centimetres: 0.01,
17
+ dm: 0.1, decimeter: 0.1, decimeters: 0.1, decimetre: 0.1, decimetres: 0.1,
18
+ m: 1, meter: 1, meters: 1, metre: 1, metres: 1,
19
+ km: 1000, kilometer: 1000, kilometers: 1000, kilometre: 1000, kilometres: 1000,
20
+ in: 0.0254, inch: 0.0254, inches: 0.0254,
21
+ ft: 0.3048, foot: 0.3048, feet: 0.3048,
22
+ yd: 0.9144, yard: 0.9144, yards: 0.9144,
23
+ mi: 1609.34, mile: 1609.34, miles: 1609.34,
24
+ };
25
+ /** Metres per one `units`, or undefined when `units` is not a length unit (including Speckle's `none`). */
26
+ export function lengthScale(units) {
27
+ if (typeof units !== 'string')
28
+ return undefined;
29
+ return LENGTH_TO_METRES[units.trim().toLowerCase()];
30
+ }
31
+ /**
32
+ * The quantity and SI factor of a parameter unit, e.g. `Square meters` →
33
+ * area × 1, `Cubic feet` → volume × 0.0283…; undefined for anything else
34
+ * (`Currency`, `Degrees`, …).
35
+ */
36
+ export function parameterScale(units) {
37
+ if (typeof units !== 'string')
38
+ return undefined;
39
+ const u = units.trim().toLowerCase();
40
+ const direct = LENGTH_TO_METRES[u];
41
+ if (direct !== undefined)
42
+ return { quantity: 'length', factor: direct };
43
+ const sq = /^(?:square\s+(.+)|(.+?)(?:²|2))$/.exec(u);
44
+ if (sq) {
45
+ const f = LENGTH_TO_METRES[(sq[1] ?? sq[2]).trim()];
46
+ if (f !== undefined)
47
+ return { quantity: 'area', factor: f * f };
48
+ }
49
+ const cu = /^(?:cubic\s+(.+)|(.+?)(?:³|3))$/.exec(u);
50
+ if (cu) {
51
+ const f = LENGTH_TO_METRES[(cu[1] ?? cu[2]).trim()];
52
+ if (f !== undefined)
53
+ return { quantity: 'volume', factor: f * f * f };
54
+ }
55
+ if (u === 'liters' || u === 'litres' || u === 'l')
56
+ return { quantity: 'volume', factor: 0.001 };
57
+ return undefined;
58
+ }
59
+ //# sourceMappingURL=units.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"units.js","sourceRoot":"","sources":["../../src/speckle/units.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Which Speckle object graph a `speckle.receive` node reads, parsed from the
3
+ * URL a user copies out of the Speckle web app. Three shapes are accepted:
4
+ *
5
+ * https://<server>/projects/<project>/models/<model> latest version of a model
6
+ * https://<server>/projects/<project>/models/<model>@<version> one pinned version
7
+ * https://<server>/streams/<stream>/commits/<commit> legacy (v2) commit = version
8
+ * https://<server>/streams/<stream>/objects/<object> legacy (v2) object, no version lookup
9
+ *
10
+ * A stream id and a project id are the same identifier (the v2 → v3 rename),
11
+ * so both resolve to `projectId`. A federated view (`models/a,b`) names
12
+ * several models at once; it is refused rather than silently narrowed to the
13
+ * first one.
14
+ *
15
+ * Protocol handling in this directory is adapted, as new code, from the
16
+ * author's own ifc-ai-rendering project (`lib/speckle-loader.ts`), at the
17
+ * author's request.
18
+ */
19
+ export type SpeckleTarget = {
20
+ readonly kind: 'version';
21
+ readonly server: string;
22
+ readonly projectId: string;
23
+ /** Absent for a legacy commit URL: a version is addressable by id alone. */
24
+ readonly modelId?: string;
25
+ /** Absent: the model's latest version. */
26
+ readonly versionId?: string;
27
+ } | {
28
+ readonly kind: 'object';
29
+ readonly server: string;
30
+ readonly projectId: string;
31
+ readonly objectId: string;
32
+ };
33
+ /** Parse a Speckle URL. Throws, naming the URL, on anything it cannot address. */
34
+ export declare function parseSpeckleUrl(raw: string): SpeckleTarget;
35
+ //# sourceMappingURL=url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/speckle/url.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,aAAa,GACrB;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAUhH,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAoC1D"}
@@ -0,0 +1,48 @@
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
+ const SEGMENT = /^[A-Za-z0-9_-]+$/;
5
+ function segment(value, what, url) {
6
+ const v = value === undefined ? '' : decodeURIComponent(value);
7
+ if (!SEGMENT.test(v))
8
+ throw new Error(`speckle.receive: "${url}" has no usable ${what}`);
9
+ return v;
10
+ }
11
+ /** Parse a Speckle URL. Throws, naming the URL, on anything it cannot address. */
12
+ export function parseSpeckleUrl(raw) {
13
+ const trimmed = raw.trim();
14
+ if (trimmed.length === 0)
15
+ throw new Error('speckle.receive: "url" is required');
16
+ // A bare host/path is read as https; an explicit other scheme is kept so the
17
+ // network gate refuses it by name rather than this parser rewriting it.
18
+ const withScheme = /^[a-z][a-z0-9+.-]*:\/\//i.test(trimmed) ? trimmed : `https://${trimmed}`;
19
+ let url;
20
+ try {
21
+ url = new URL(withScheme);
22
+ }
23
+ catch {
24
+ throw new Error(`speckle.receive: "${raw}" is not a valid URL`);
25
+ }
26
+ const server = `${url.protocol}//${url.host}`;
27
+ const parts = url.pathname.split('/').filter((p) => p.length > 0);
28
+ if (parts[0] === 'projects' && parts[2] === 'models') {
29
+ const projectId = segment(parts[1], 'project id', raw);
30
+ const modelPart = parts[3] ?? '';
31
+ if (modelPart.includes(',')) {
32
+ throw new Error(`speckle.receive: "${raw}" names several models (a federated view); receive one model per node`);
33
+ }
34
+ const [model, version] = modelPart.split('@');
35
+ const modelId = segment(model, 'model id', raw);
36
+ const versionId = version === undefined ? undefined : segment(version, 'version id', raw);
37
+ return { kind: 'version', server, projectId, modelId, versionId };
38
+ }
39
+ if (parts[0] === 'streams' && parts[2] === 'commits') {
40
+ return { kind: 'version', server, projectId: segment(parts[1], 'stream id', raw), versionId: segment(parts[3], 'commit id', raw) };
41
+ }
42
+ if (parts[0] === 'streams' && parts[2] === 'objects') {
43
+ return { kind: 'object', server, projectId: segment(parts[1], 'stream id', raw), objectId: segment(parts[3], 'object id', raw) };
44
+ }
45
+ throw new Error(`speckle.receive: "${raw}" is not a Speckle model, version, commit or object URL ` +
46
+ '(expected /projects/<project>/models/<model>[@<version>], /streams/<stream>/commits/<commit> or /streams/<stream>/objects/<object>)');
47
+ }
48
+ //# sourceMappingURL=url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/speckle/url.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type FlowNodeDef } from './host.js';
2
+ /**
3
+ * The identity namespace of one Speckle project: the server's normalised
4
+ * origin AND the project id, so the same project id on two servers can
5
+ * never mint the same GlobalIds.
6
+ */
7
+ export declare function identityScope(server: string, projectId: string): string;
8
+ export declare const speckleReceiveNode: FlowNodeDef;
9
+ //# sourceMappingURL=speckle-receive-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speckle-receive-node.d.ts","sourceRoot":"","sources":["../src/speckle-receive-node.ts"],"names":[],"mappings":"AA2BA,OAAO,EAA+H,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAwC1K;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEvE;AAgFD,eAAO,MAAM,kBAAkB,EAAE,WA+BhC,CAAC"}