@ifc-lite/flow-nodes 0.6.0 → 0.9.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 (112) hide show
  1. package/README.md +118 -0
  2. package/dist/ai-classify.d.ts +8 -0
  3. package/dist/ai-classify.d.ts.map +1 -0
  4. package/dist/ai-classify.js +113 -0
  5. package/dist/ai-classify.js.map +1 -0
  6. package/dist/ai-extract.d.ts +26 -0
  7. package/dist/ai-extract.d.ts.map +1 -0
  8. package/dist/ai-extract.js +127 -0
  9. package/dist/ai-extract.js.map +1 -0
  10. package/dist/ai-propose-fields.d.ts +12 -0
  11. package/dist/ai-propose-fields.d.ts.map +1 -0
  12. package/dist/ai-propose-fields.js +57 -0
  13. package/dist/ai-propose-fields.js.map +1 -0
  14. package/dist/ai-propose.d.ts +3 -0
  15. package/dist/ai-propose.d.ts.map +1 -0
  16. package/dist/ai-propose.js +94 -0
  17. package/dist/ai-propose.js.map +1 -0
  18. package/dist/ai-response-schemas.d.ts +11 -0
  19. package/dist/ai-response-schemas.d.ts.map +1 -0
  20. package/dist/ai-response-schemas.js +46 -0
  21. package/dist/ai-response-schemas.js.map +1 -0
  22. package/dist/ai-service.d.ts +60 -0
  23. package/dist/ai-service.d.ts.map +1 -0
  24. package/dist/ai-service.js +109 -0
  25. package/dist/ai-service.js.map +1 -0
  26. package/dist/ai-summarize.d.ts +3 -0
  27. package/dist/ai-summarize.d.ts.map +1 -0
  28. package/dist/ai-summarize.js +75 -0
  29. package/dist/ai-summarize.js.map +1 -0
  30. package/dist/ai.d.ts +15 -0
  31. package/dist/ai.d.ts.map +1 -0
  32. package/dist/ai.js +10 -0
  33. package/dist/ai.js.map +1 -0
  34. package/dist/bcf-nodes.d.ts.map +1 -1
  35. package/dist/bcf-nodes.js +12 -2
  36. package/dist/bcf-nodes.js.map +1 -1
  37. package/dist/bcf-publication-capacity.d.ts +5 -0
  38. package/dist/bcf-publication-capacity.d.ts.map +1 -0
  39. package/dist/bcf-publication-capacity.js +44 -0
  40. package/dist/bcf-publication-capacity.js.map +1 -0
  41. package/dist/bcf-publication-check.d.ts +4 -0
  42. package/dist/bcf-publication-check.d.ts.map +1 -0
  43. package/dist/bcf-publication-check.js +100 -0
  44. package/dist/bcf-publication-check.js.map +1 -0
  45. package/dist/bcf-publication-codec.d.ts +53 -0
  46. package/dist/bcf-publication-codec.d.ts.map +1 -0
  47. package/dist/bcf-publication-codec.js +247 -0
  48. package/dist/bcf-publication-codec.js.map +1 -0
  49. package/dist/bcf-publication-epochs.d.ts +17 -0
  50. package/dist/bcf-publication-epochs.d.ts.map +1 -0
  51. package/dist/bcf-publication-epochs.js +104 -0
  52. package/dist/bcf-publication-epochs.js.map +1 -0
  53. package/dist/bcf-publication-history.d.ts +8 -0
  54. package/dist/bcf-publication-history.d.ts.map +1 -0
  55. package/dist/bcf-publication-history.js +84 -0
  56. package/dist/bcf-publication-history.js.map +1 -0
  57. package/dist/bcf-publication-node.d.ts +4 -0
  58. package/dist/bcf-publication-node.d.ts.map +1 -0
  59. package/dist/bcf-publication-node.js +235 -0
  60. package/dist/bcf-publication-node.js.map +1 -0
  61. package/dist/bcf-publication-owner.d.ts +7 -0
  62. package/dist/bcf-publication-owner.d.ts.map +1 -0
  63. package/dist/bcf-publication-owner.js +94 -0
  64. package/dist/bcf-publication-owner.js.map +1 -0
  65. package/dist/bcf-publication-store.d.ts +40 -0
  66. package/dist/bcf-publication-store.d.ts.map +1 -0
  67. package/dist/bcf-publication-store.js +312 -0
  68. package/dist/bcf-publication-store.js.map +1 -0
  69. package/dist/bcf-publication-types.d.ts +105 -0
  70. package/dist/bcf-publication-types.d.ts.map +1 -0
  71. package/dist/bcf-publication-types.js +5 -0
  72. package/dist/bcf-publication-types.js.map +1 -0
  73. package/dist/bcf-publication.d.ts +13 -0
  74. package/dist/bcf-publication.d.ts.map +1 -0
  75. package/dist/bcf-publication.js +24 -0
  76. package/dist/bcf-publication.js.map +1 -0
  77. package/dist/bcf-write-gateway.d.ts +41 -0
  78. package/dist/bcf-write-gateway.d.ts.map +1 -0
  79. package/dist/bcf-write-gateway.js +75 -0
  80. package/dist/bcf-write-gateway.js.map +1 -0
  81. package/dist/capability.d.ts +4 -0
  82. package/dist/capability.d.ts.map +1 -0
  83. package/dist/capability.js +21 -0
  84. package/dist/capability.js.map +1 -0
  85. package/dist/element-nodes.d.ts +9 -1
  86. package/dist/element-nodes.d.ts.map +1 -1
  87. package/dist/element-nodes.js +82 -9
  88. package/dist/element-nodes.js.map +1 -1
  89. package/dist/host.d.ts +41 -40
  90. package/dist/host.d.ts.map +1 -1
  91. package/dist/host.js +2 -31
  92. package/dist/host.js.map +1 -1
  93. package/dist/ids-nodes.d.ts +23 -0
  94. package/dist/ids-nodes.d.ts.map +1 -0
  95. package/dist/ids-nodes.js +180 -0
  96. package/dist/ids-nodes.js.map +1 -0
  97. package/dist/index.d.ts +1 -0
  98. package/dist/index.d.ts.map +1 -1
  99. package/dist/index.js +4 -0
  100. package/dist/index.js.map +1 -1
  101. package/dist/ports.d.ts +38 -0
  102. package/dist/ports.d.ts.map +1 -0
  103. package/dist/ports.js +14 -0
  104. package/dist/ports.js.map +1 -0
  105. package/dist/review-node.d.ts +3 -0
  106. package/dist/review-node.d.ts.map +1 -0
  107. package/dist/review-node.js +20 -0
  108. package/dist/review-node.js.map +1 -0
  109. package/dist/speckle/url.d.ts.map +1 -1
  110. package/dist/speckle/url.js +9 -1
  111. package/dist/speckle/url.js.map +1 -1
  112. package/package.json +32 -12
@@ -0,0 +1,180 @@
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
+ * `ids.load` / `ids.lint` / `ids.validate` (IDS-122): the no-code
6
+ * pipeline "Load IDS → Lint → Validate model → BCF". `ids.validate`
7
+ * emits one row per failing element with `title` and `description`
8
+ * columns, so its table wires straight into `bcf.createTopic`'s `rows`.
9
+ *
10
+ * The IDS document travels between nodes as a Studio document (plain
11
+ * JSON, content-derived node ids; `@ifc-lite/ids-authoring`), the same
12
+ * shape the MCP tools exchange.
13
+ *
14
+ * The node definitions are eager (the standard registry lists them), but the
15
+ * authoring runtime is loaded inside `run` via `import()`: the viewer
16
+ * registers these nodes at startup, and the authoring gate, reducer and lint
17
+ * rules must stay out of its eager bundle. `run` may return a promise, so
18
+ * the contract is unchanged; a failed load fails the node with its error.
19
+ */
20
+ import { validateIDS } from '@ifc-lite/ids';
21
+ import { ANY_ITEM, ANY_LIST, SCALAR_ITEM, TABLE_ITEM } from './host.js';
22
+ const DIAGNOSTIC_COLUMNS = [
23
+ { name: 'code', type: 'string' },
24
+ { name: 'severity', type: 'string' },
25
+ { name: 'path', type: 'string' },
26
+ { name: 'specification', type: 'string' },
27
+ { name: 'message', type: 'string' },
28
+ ];
29
+ const FAILURE_COLUMNS = [
30
+ { name: 'title', type: 'string' },
31
+ { name: 'description', type: 'string' },
32
+ { name: 'specification', type: 'string' },
33
+ { name: 'globalId', type: 'identifier' },
34
+ { name: 'ifcType', type: 'string' },
35
+ ];
36
+ const SEVERITY_RANK = { error: 0, warning: 1, info: 2 };
37
+ const loadAuthoring = () => import('@ifc-lite/ids-authoring');
38
+ async function studioDoc(v, node) {
39
+ const { parseStudioDocument } = await loadAuthoring();
40
+ try {
41
+ return parseStudioDocument(v);
42
+ }
43
+ catch (err) {
44
+ throw new Error(`${node}: the "ids" input is not an IDS document from ids.load (${err instanceof Error ? err.message : String(err)})`, { cause: err });
45
+ }
46
+ }
47
+ function specName(doc, specId) {
48
+ const i = specId ? doc.nodes.specs.findIndex((s) => s.id === specId) : -1;
49
+ return i >= 0 ? doc.ids.specifications[i].name : null;
50
+ }
51
+ /** One row per failing element, phrased for an issue tracker. */
52
+ export function failureRows(report) {
53
+ const rows = [];
54
+ for (const spec of report.specificationResults) {
55
+ for (const entity of spec.entityResults) {
56
+ if (entity.passed)
57
+ continue;
58
+ const reasons = entity.requirementResults
59
+ .filter((r) => r.status === 'fail')
60
+ .map((r) => r.failureReason ?? r.checkedDescription);
61
+ const label = entity.entityName ? `${entity.entityType} "${entity.entityName}"` : entity.entityType;
62
+ rows.push({
63
+ title: `${spec.specification.name}: ${label}`,
64
+ description: reasons.join('\n'),
65
+ specification: spec.specification.name,
66
+ globalId: entity.globalId ?? null,
67
+ ifcType: entity.entityType,
68
+ });
69
+ }
70
+ }
71
+ return rows;
72
+ }
73
+ function accessorFor(ctx) {
74
+ const accessor = ctx.host.idsAccessor?.();
75
+ if (!accessor)
76
+ throw new Error('ids.validate: this host cannot read model data for IDS validation');
77
+ return accessor;
78
+ }
79
+ export const idsNodes = [
80
+ {
81
+ type: 'ids.load',
82
+ title: 'Load IDS',
83
+ category: 'ids',
84
+ doc: 'Reads IDS XML (the `xml` input, else the `xml` param) into an IDS document for `ids.lint` and `ids.validate`. Node ids depend only on the content.',
85
+ inputs: [{ name: 'xml', type: SCALAR_ITEM, optional: true, doc: 'IDS XML text, e.g. from a file or HTTP node.' }],
86
+ outputs: [
87
+ { name: 'ids', type: ANY_ITEM },
88
+ { name: 'title', type: SCALAR_ITEM },
89
+ { name: 'specifications', type: SCALAR_ITEM },
90
+ ],
91
+ params: [{ name: 'xml', kind: 'string', default: '', doc: 'IDS XML, used when the input is not wired.' }],
92
+ capabilities: [],
93
+ run: async (_ctx, i, p) => {
94
+ const xml = typeof i.xml === 'string' && i.xml.trim() !== '' ? i.xml : String(p.xml ?? '');
95
+ if (xml.trim() === '')
96
+ throw new Error('ids.load: no IDS XML (wire the `xml` input or set the param)');
97
+ const { readStudioDocument } = await loadAuthoring();
98
+ const doc = readStudioDocument(xml);
99
+ return { ids: doc, title: doc.ids.info.title, specifications: doc.ids.specifications.length };
100
+ },
101
+ },
102
+ {
103
+ type: 'ids.lint',
104
+ title: 'Lint IDS',
105
+ category: 'ids',
106
+ doc: 'Runs the IDSL lint rules over an IDS document. `table` has one row per diagnostic (code, severity, XML path, specification, message); `errors` counts error-severity rows. With `failOn` set, the node fails when a diagnostic at or above that severity remains.',
107
+ inputs: [{ name: 'ids', type: ANY_ITEM }],
108
+ outputs: [
109
+ { name: 'table', type: TABLE_ITEM },
110
+ { name: 'diagnostics', type: ANY_LIST },
111
+ { name: 'errors', type: SCALAR_ITEM },
112
+ ],
113
+ params: [
114
+ { name: 'rules', kind: 'string', default: '', doc: 'Comma-separated rule codes to run; empty runs all.' },
115
+ { name: 'failOn', kind: 'enum', options: ['never', 'error', 'warning', 'info'], default: 'never' },
116
+ ],
117
+ capabilities: [],
118
+ run: async (_ctx, i, p) => {
119
+ const doc = await studioDoc(i.ids, 'ids.lint');
120
+ const { createLintContext, lintDocument, nodePath } = await loadAuthoring();
121
+ const rules = String(p.rules ?? '').split(',').map((s) => s.trim()).filter(Boolean);
122
+ const { diagnostics } = lintDocument(doc, await createLintContext(), rules.length ? { rules } : {});
123
+ const rows = diagnostics.map((d) => ({
124
+ code: d.code,
125
+ severity: d.severity,
126
+ path: nodePath(doc, d.nodeId) ?? d.nodeId,
127
+ specification: specName(doc, d.specId),
128
+ message: d.message,
129
+ }));
130
+ const failOn = p.failOn;
131
+ if (failOn !== 'never' && diagnostics.some((d) => SEVERITY_RANK[d.severity] <= SEVERITY_RANK[failOn])) {
132
+ throw new Error(`ids.lint: ${diagnostics.length} diagnostic(s), at least one at or above "${failOn}"`);
133
+ }
134
+ const table = { columns: DIAGNOSTIC_COLUMNS, rows, key: 'path' };
135
+ return { table, diagnostics, errors: diagnostics.filter((d) => d.severity === 'error').length };
136
+ },
137
+ },
138
+ {
139
+ type: 'ids.validate',
140
+ title: 'Validate Model (IDS)',
141
+ category: 'ids',
142
+ doc: 'Validates the active model against an IDS document. `failures` has one row per failing element with `title` and `description` columns, so it wires straight into `bcf.createTopic` rows; `report` is the full validation report.',
143
+ inputs: [{ name: 'ids', type: ANY_ITEM }],
144
+ outputs: [
145
+ { name: 'failures', type: TABLE_ITEM },
146
+ { name: 'report', type: ANY_ITEM },
147
+ { name: 'failed', type: SCALAR_ITEM },
148
+ ],
149
+ params: [],
150
+ capabilities: ['model.read'],
151
+ reads: 'model',
152
+ run: async (ctx, i) => {
153
+ const doc = await studioDoc(i.ids, 'ids.validate');
154
+ const model = ctx.host.bim.model.active();
155
+ const accessor = accessorFor(ctx);
156
+ const capture = await ctx.host.validationCapture?.begin(JSON.stringify(doc.ids), ctx.signal);
157
+ let report;
158
+ try {
159
+ if (ctx.signal?.aborted)
160
+ throw new DOMException('Validation aborted', 'AbortError');
161
+ report = await validateIDS(doc.ids, accessor, {
162
+ modelId: model?.id ?? ctx.host.defaultModelId ?? 'model',
163
+ schemaVersion: model?.schemaVersion ?? '',
164
+ entityCount: model?.entityCount ?? 0,
165
+ });
166
+ if (ctx.signal?.aborted)
167
+ throw new DOMException('Validation aborted', 'AbortError');
168
+ ctx.host.validationCapture?.finish(capture ?? null, report);
169
+ }
170
+ catch (error) {
171
+ ctx.host.validationCapture?.abandon(capture ?? null, ctx.signal?.aborted ? 'aborted' : 'producer-failed');
172
+ throw error;
173
+ }
174
+ const rows = failureRows(report);
175
+ ctx.log('info', `${report.summary.failedSpecifications}/${report.summary.totalSpecifications} specification(s) failed, ${rows.length} failing element(s)`);
176
+ return { failures: { columns: FAILURE_COLUMNS, rows, key: 'globalId' }, report, failed: rows.length };
177
+ },
178
+ },
179
+ ];
180
+ //# sourceMappingURL=ids-nodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids-nodes.js","sourceRoot":"","sources":["../src/ids-nodes.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@ import type { FlowHost } from './host.js';
3
3
  export { isModelSelector, parseTagRules, parseCheckJobs, matchesFilename, AUTOMATION_FEATURES } from './session-contracts.js';
4
4
  export type { ModelSelector, SessionModel, SessionModels, FilenameTagRule, ResourceSource, CheckJob, DocumentMapping, SessionAutomationHost } from './session-contracts.js';
5
5
  export type { FlowHost, FlowNodeDef, TableAccess, StringLookup } from './host.js';
6
+ export type { BcfWriteGateway, BcfWriteIntent } from './bcf-write-gateway.js';
6
7
  export { requireCapability, toRef, toSdkRef, resolveByGlobalId, rememberGlobalId, forgetGlobalId, invalidateGlobalIdIndex } from './host.js';
7
8
  export { columnTypeOf, VALUE_TYPE_BY_COLUMN_TYPE } from './table-nodes.js';
8
9
  export type { ElementSpec } from './element-nodes.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAUjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAW1C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC9H,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE5K,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAC7I,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7D,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEpF,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,4CAA4C;AAC5C,wBAAgB,sBAAsB,IAAI,YAAY,CAAC,QAAQ,CAAC,CAsB/D;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,YAI9B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,QAAQ,CAAC,MAAM,CAAM,GAAG,YAAY,CAE7E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAWjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAY1C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC9H,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE5K,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAClF,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAC7I,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7D,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEpF,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,4CAA4C;AAC5C,wBAAgB,sBAAsB,IAAI,YAAY,CAAC,QAAQ,CAAC,CAwB/D;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,YAI9B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,QAAQ,CAAC,MAAM,CAAM,GAAG,YAAY,CAE7E"}
package/dist/index.js CHANGED
@@ -11,6 +11,7 @@ import { csvNodes } from './csv-nodes.js';
11
11
  import { documentsNodes } from './documents-nodes.js';
12
12
  import { elementNodes } from './element-nodes.js';
13
13
  import { httpRequestNode } from './http-request-node.js';
14
+ import { idsNodes } from './ids-nodes.js';
14
15
  import { modelNodes } from './model-nodes.js';
15
16
  import { openModelNode } from './open-model-node.js';
16
17
  import { scriptListNode, scriptNode } from './script-node.js';
@@ -20,6 +21,7 @@ import { viewerNodes } from './viewer-nodes.js';
20
21
  import { writeNodes } from './write-nodes.js';
21
22
  import { xlsxNodes } from './xlsx-nodes.js';
22
23
  import { sessionNodes } from './session-nodes.js';
24
+ import { reviewSnapshotNode } from './review-node.js';
23
25
  export { isModelSelector, parseTagRules, parseCheckJobs, matchesFilename, AUTOMATION_FEATURES } from './session-contracts.js';
24
26
  export { requireCapability, toRef, toSdkRef, resolveByGlobalId, rememberGlobalId, forgetGlobalId, invalidateGlobalIdIndex } from './host.js';
25
27
  export { columnTypeOf, VALUE_TYPE_BY_COLUMN_TYPE } from './table-nodes.js';
@@ -42,11 +44,13 @@ export function createStandardRegistry() {
42
44
  scriptListNode,
43
45
  httpRequestNode,
44
46
  ...bcfNodes,
47
+ ...idsNodes,
45
48
  ...apsNodes,
46
49
  speckleReceiveNode,
47
50
  ...documentsNodes,
48
51
  openModelNode,
49
52
  ...sessionNodes,
53
+ reviewSnapshotNode,
50
54
  ]);
51
55
  }
52
56
  /**
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /** Port types shared by the standard nodes; re-exported by `host.ts`. */
2
+ export declare const ENTITY_ITEM: {
3
+ readonly kind: "entity";
4
+ readonly access: "item";
5
+ };
6
+ export declare const ENTITY_LIST: {
7
+ readonly kind: "entity";
8
+ readonly access: "list";
9
+ };
10
+ export declare const ENTITY_GROUP: {
11
+ readonly kind: "entity";
12
+ readonly access: "group";
13
+ };
14
+ export declare const SCALAR_ITEM: {
15
+ readonly kind: "scalar";
16
+ readonly access: "item";
17
+ };
18
+ export declare const SCALAR_LIST: {
19
+ readonly kind: "scalar";
20
+ readonly access: "list";
21
+ };
22
+ export declare const TABLE_ITEM: {
23
+ readonly kind: "table";
24
+ readonly access: "item";
25
+ };
26
+ export declare const ANY_ITEM: {
27
+ readonly kind: "any";
28
+ readonly access: "item";
29
+ };
30
+ export declare const ANY_LIST: {
31
+ readonly kind: "any";
32
+ readonly access: "list";
33
+ };
34
+ export declare const ANY_GROUP: {
35
+ readonly kind: "any";
36
+ readonly access: "group";
37
+ };
38
+ //# sourceMappingURL=ports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../src/ports.ts"],"names":[],"mappings":"AAIA,yEAAyE;AAEzE,eAAO,MAAM,WAAW;;;CAA8C,CAAC;AACvE,eAAO,MAAM,WAAW;;;CAA8C,CAAC;AACvE,eAAO,MAAM,YAAY;;;CAA+C,CAAC;AACzE,eAAO,MAAM,WAAW;;;CAA8C,CAAC;AACvE,eAAO,MAAM,WAAW;;;CAA8C,CAAC;AACvE,eAAO,MAAM,UAAU;;;CAA6C,CAAC;AACrE,eAAO,MAAM,QAAQ;;;CAA2C,CAAC;AACjE,eAAO,MAAM,QAAQ;;;CAA2C,CAAC;AACjE,eAAO,MAAM,SAAS;;;CAA4C,CAAC"}
package/dist/ports.js ADDED
@@ -0,0 +1,14 @@
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
+ /** Port types shared by the standard nodes; re-exported by `host.ts`. */
5
+ export const ENTITY_ITEM = { kind: 'entity', access: 'item' };
6
+ export const ENTITY_LIST = { kind: 'entity', access: 'list' };
7
+ export const ENTITY_GROUP = { kind: 'entity', access: 'group' };
8
+ export const SCALAR_ITEM = { kind: 'scalar', access: 'item' };
9
+ export const SCALAR_LIST = { kind: 'scalar', access: 'list' };
10
+ export const TABLE_ITEM = { kind: 'table', access: 'item' };
11
+ export const ANY_ITEM = { kind: 'any', access: 'item' };
12
+ export const ANY_LIST = { kind: 'any', access: 'list' };
13
+ export const ANY_GROUP = { kind: 'any', access: 'group' };
14
+ //# sourceMappingURL=ports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ports.js","sourceRoot":"","sources":["../src/ports.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,yEAAyE;AAEzE,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAW,CAAC;AACvE,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAW,CAAC;AACvE,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAW,CAAC;AACzE,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAW,CAAC;AACvE,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAW,CAAC;AACvE,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAW,CAAC;AACrE,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAW,CAAC;AACjE,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAW,CAAC;AACjE,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type FlowNodeDef } from './host.js';
2
+ export declare const reviewSnapshotNode: FlowNodeDef;
3
+ //# sourceMappingURL=review-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-node.d.ts","sourceRoot":"","sources":["../src/review-node.ts"],"names":[],"mappings":"AAIA,OAAO,EAA+B,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAE1E,eAAO,MAAM,kBAAkB,EAAE,WAahC,CAAC"}
@@ -0,0 +1,20 @@
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 { ANY_ITEM, requireCapability } from './host.js';
5
+ export const reviewSnapshotNode = {
6
+ type: 'review.snapshot', title: 'Read native Review', category: 'review',
7
+ doc: 'Reads actual captured native findings, model/source provenance, coverage and explicit unsupported sources. Does not rerun analyses, publish records or make human decisions.',
8
+ inputs: [{ name: 'after', type: ANY_ITEM, optional: true, doc: 'Optional dependency on a native analysis result.' }],
9
+ outputs: [{ name: 'snapshot', type: ANY_ITEM }],
10
+ params: [{ name: 'sources', kind: 'json' }, { name: 'modelIds', kind: 'json' },
11
+ { name: 'maxFindings', kind: 'number', default: 128 }],
12
+ capabilities: ['model.read'], requires: { backend: ['review'] }, reads: 'model', volatile: true,
13
+ run: async (ctx, _input, params) => {
14
+ requireCapability(ctx, 'model.read');
15
+ if (!ctx.host.review)
16
+ throw new Error('review.snapshot: this host has no native Review provider');
17
+ return { snapshot: await ctx.host.review.snapshot(params) };
18
+ },
19
+ };
20
+ //# sourceMappingURL=review-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-node.js","sourceRoot":"","sources":["../src/review-node.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAoB,MAAM,WAAW,CAAC;AAE1E,MAAM,CAAC,MAAM,kBAAkB,GAAgB;IAC7C,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ;IACxE,GAAG,EAAE,8KAA8K;IACnL,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,kDAAkD,EAAE,CAAC;IACpH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC/C,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;QAC5E,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IACxD,YAAY,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI;IAC/F,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACjC,iBAAiB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IAC9D,CAAC;CACF,CAAC"}
@@ -1 +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"}
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;AAiBhH,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAoC1D"}
@@ -3,7 +3,15 @@
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
4
  const SEGMENT = /^[A-Za-z0-9_-]+$/;
5
5
  function segment(value, what, url) {
6
- const v = value === undefined ? '' : decodeURIComponent(value);
6
+ let v;
7
+ try {
8
+ v = value === undefined ? '' : decodeURIComponent(value);
9
+ }
10
+ catch {
11
+ // A malformed percent-escape is not a usable id; refuse it by name below
12
+ // rather than letting a bare URIError escape the parser's contract.
13
+ v = '';
14
+ }
7
15
  if (!SEGMENT.test(v))
8
16
  throw new Error(`speckle.receive: "${url}" has no usable ${what}`);
9
17
  return v;
@@ -1 +1 @@
1
- {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/speckle/url.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/speckle/url.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ifc-lite/flow-nodes",
3
- "version": "0.6.0",
3
+ "version": "0.9.0",
4
4
  "description": "Standard node library for @ifc-lite/flow over the ifc-lite SDK: model reads and writes, tables, viewer, and a sandboxed Script node",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -10,25 +10,45 @@
10
10
  "types": "./dist/index.d.ts",
11
11
  "import": "./dist/index.js",
12
12
  "default": "./dist/index.js"
13
+ },
14
+ "./ai": {
15
+ "types": "./dist/ai.d.ts",
16
+ "import": "./dist/ai.js",
17
+ "default": "./dist/ai.js"
18
+ },
19
+ "./bcf-publication": {
20
+ "types": "./dist/bcf-publication.d.ts",
21
+ "import": "./dist/bcf-publication.js",
22
+ "default": "./dist/bcf-publication.js"
23
+ },
24
+ "./bcf-publication-node": {
25
+ "types": "./dist/bcf-publication-node.d.ts",
26
+ "import": "./dist/bcf-publication-node.js",
27
+ "default": "./dist/bcf-publication-node.js"
13
28
  }
14
29
  },
15
30
  "dependencies": {
16
31
  "exceljs": "^4.4.0",
17
- "@ifc-lite/bcf-api": "^0.2.4",
18
- "@ifc-lite/data": "^6.1.0",
19
- "@ifc-lite/documents-api": "^0.2.0",
20
- "@ifc-lite/export": "^4.9.0",
21
- "@ifc-lite/extensions": "^0.10.1",
22
- "@ifc-lite/flow": "^0.5.0",
23
- "@ifc-lite/mutations": "^3.1.0",
32
+ "@ifc-lite/ai": "^0.2.0",
33
+ "@ifc-lite/bcf-api": "^0.3.0",
34
+ "@ifc-lite/data": "^6.2.0",
35
+ "@ifc-lite/export": "^4.11.0",
36
+ "@ifc-lite/documents-api": "^0.2.1",
37
+ "@ifc-lite/flow": "^0.6.0",
38
+ "@ifc-lite/extensions": "^0.11.0",
39
+ "@ifc-lite/ids": "^3.3.3",
40
+ "@ifc-lite/ids-authoring": "^0.2.3",
41
+ "@ifc-lite/mutations": "^3.2.0",
24
42
  "@ifc-lite/query": "^2.5.2",
25
- "@ifc-lite/sdk": "^9.0.0",
26
- "@ifc-lite/sandbox": "^2.10.0"
43
+ "@ifc-lite/sandbox": "^2.12.0",
44
+ "@ifc-lite/sdk": "^9.3.0"
27
45
  },
28
46
  "devDependencies": {
29
- "@types/node": "^26.6.2",
47
+ "@types/node": "^26.6.4",
48
+ "ajv": "^8.17.1",
30
49
  "typescript": "^6.0.3",
31
- "vitest": "^5.0.2"
50
+ "vitest": "^5.0.3",
51
+ "@ifc-lite/parser": "^9.5.0"
32
52
  },
33
53
  "license": "MPL-2.0",
34
54
  "author": "Louis True",