@bian-womp/spark-graph 0.1.16 → 0.1.18
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/lib/cjs/index.cjs +46 -12
- package/lib/cjs/index.cjs.map +1 -1
- package/lib/cjs/src/builder/GraphBuilder.d.ts.map +1 -1
- package/lib/cjs/src/core/types.d.ts.map +1 -1
- package/lib/cjs/src/misc/base.d.ts.map +1 -1
- package/lib/esm/index.js +46 -12
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/src/builder/GraphBuilder.d.ts.map +1 -1
- package/lib/esm/src/core/types.d.ts.map +1 -1
- package/lib/esm/src/misc/base.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphBuilder.d.ts","sourceRoot":"","sources":["../../../../src/builder/GraphBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ;IAEtC,QAAQ,CAAC,GAAG,EAAE,eAAe,GAAG,gBAAgB;
|
|
1
|
+
{"version":3,"file":"GraphBuilder.d.ts","sourceRoot":"","sources":["../../../../src/builder/GraphBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ;IAEtC,QAAQ,CAAC,GAAG,EAAE,eAAe,GAAG,gBAAgB;IA6OhD,KAAK,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,YAAY;IAI9D,UAAU,CACR,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC3D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC7D,EACD,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;CAiC1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAChC,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AACpC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAChC,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AACpC,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC9B,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,OAAO;IAC7C,EAAE,EAAE,UAAU,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,gBAAgB,GACxB,eAAe,GACf,oBAAoB,GACpB,QAAQ,GACR,UAAU,CAAC;AAEf,MAAM,WAAW,WAAW,CAAC,KAAK;IAChC,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB,CAAC,KAAK,CAAE,SAAQ,WAAW,CAAC,KAAK,CAAC;IACjE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,OAAO,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,WAAW,CAAC;IACzB,qBAAqB,EAAE,MAAM,eAAe,CAAC;IAC7C,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAGD,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC1C,YAAY,EAAE,UAAU,CAAC;IACzB,aAAa,EAAE,CAAC,CAAC;CAClB,CAAC;AAEF,wBAAgB,KAAK,CAAC,CAAC,GAAG,OAAO,EAC/B,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,CAAC,GACP,gBAAgB,CAAC,CAAC,CAAC,CAErB;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,gBAAgB,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/misc/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,eAAe,CAAC;AA0CvE,wBAAgB,uBAAuB,IAAI,QAAQ,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/misc/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,eAAe,CAAC;AA0CvE,wBAAgB,uBAAuB,IAAI,QAAQ,CA6alD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,QA+BnD;AAqBD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,QA6BvD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,6BAUrE"}
|
package/lib/esm/index.js
CHANGED
|
@@ -376,8 +376,7 @@ function typed(typeId, value) {
|
|
|
376
376
|
function isTypedOutput(v) {
|
|
377
377
|
return (!!v &&
|
|
378
378
|
typeof v === "object" &&
|
|
379
|
-
Object.prototype.hasOwnProperty.call(v, "__spark_type")
|
|
380
|
-
Object.prototype.hasOwnProperty.call(v, "__spark_value"));
|
|
379
|
+
Object.prototype.hasOwnProperty.call(v, "__spark_type"));
|
|
381
380
|
}
|
|
382
381
|
|
|
383
382
|
class GraphRuntime {
|
|
@@ -1248,15 +1247,30 @@ class GraphBuilder {
|
|
|
1248
1247
|
message: `Edge ${e.id} target node missing`,
|
|
1249
1248
|
data: { edgeId: e.id },
|
|
1250
1249
|
});
|
|
1251
|
-
//
|
|
1250
|
+
// Infer edge type when missing. For union sources, prefer target input type if available.
|
|
1252
1251
|
let effectiveTypeId = e.typeId;
|
|
1253
|
-
|
|
1252
|
+
let _srcDeclared;
|
|
1253
|
+
let _dstDeclared;
|
|
1254
|
+
if (srcNode) {
|
|
1254
1255
|
const srcType = this.registry.nodes.get(srcNode.typeId);
|
|
1255
|
-
if (srcType)
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1256
|
+
if (srcType)
|
|
1257
|
+
_srcDeclared = srcType.outputs[e.source.handle];
|
|
1258
|
+
}
|
|
1259
|
+
if (dstNode) {
|
|
1260
|
+
const dstType = this.registry.nodes.get(dstNode.typeId);
|
|
1261
|
+
if (dstType)
|
|
1262
|
+
_dstDeclared = dstType.inputs[e.target.handle];
|
|
1263
|
+
}
|
|
1264
|
+
if (!effectiveTypeId) {
|
|
1265
|
+
if (Array.isArray(_srcDeclared) && _dstDeclared) {
|
|
1266
|
+
// When source is a union and target input type is known, adopt the input type
|
|
1267
|
+
// so validation checks are performed against the target, not an arbitrary variant.
|
|
1268
|
+
effectiveTypeId = _dstDeclared;
|
|
1269
|
+
}
|
|
1270
|
+
else if (_srcDeclared) {
|
|
1271
|
+
effectiveTypeId = Array.isArray(_srcDeclared)
|
|
1272
|
+
? _srcDeclared[0]
|
|
1273
|
+
: _srcDeclared;
|
|
1260
1274
|
}
|
|
1261
1275
|
}
|
|
1262
1276
|
const type = effectiveTypeId
|
|
@@ -1293,7 +1307,8 @@ class GraphBuilder {
|
|
|
1293
1307
|
: [];
|
|
1294
1308
|
if (declaredArr.length > 0 && effectiveTypeId) {
|
|
1295
1309
|
for (const s of declaredArr) {
|
|
1296
|
-
if (s !== effectiveTypeId &&
|
|
1310
|
+
if (s !== effectiveTypeId &&
|
|
1311
|
+
!this.registry.canCoerce(s, effectiveTypeId)) {
|
|
1297
1312
|
issues.push({
|
|
1298
1313
|
level: "error",
|
|
1299
1314
|
code: "TYPE_MISMATCH_OUTPUT",
|
|
@@ -1340,7 +1355,8 @@ class GraphBuilder {
|
|
|
1340
1355
|
? [effectiveTypeId]
|
|
1341
1356
|
: [];
|
|
1342
1357
|
for (const s of srcArr) {
|
|
1343
|
-
if (s !== declaredIn &&
|
|
1358
|
+
if (s !== declaredIn &&
|
|
1359
|
+
!this.registry.canCoerce(s, declaredIn)) {
|
|
1344
1360
|
issues.push({
|
|
1345
1361
|
level: "error",
|
|
1346
1362
|
code: "TYPE_MISMATCH_INPUT",
|
|
@@ -1356,7 +1372,8 @@ class GraphBuilder {
|
|
|
1356
1372
|
}
|
|
1357
1373
|
}
|
|
1358
1374
|
}
|
|
1359
|
-
else if (declaredIn !== effectiveTypeId &&
|
|
1375
|
+
else if (declaredIn !== effectiveTypeId &&
|
|
1376
|
+
!this.registry.canCoerce(effectiveTypeId, declaredIn)) {
|
|
1360
1377
|
issues.push({
|
|
1361
1378
|
level: "error",
|
|
1362
1379
|
code: "TYPE_MISMATCH_INPUT",
|
|
@@ -1874,6 +1891,23 @@ function setupBasicGraphRegistry() {
|
|
|
1874
1891
|
Result: Math.trunc(Number(ins.Value)),
|
|
1875
1892
|
}),
|
|
1876
1893
|
});
|
|
1894
|
+
// JSON parser node: base.stringToObject
|
|
1895
|
+
registry.registerNode({
|
|
1896
|
+
id: "base.stringToObject",
|
|
1897
|
+
categoryId: "compute",
|
|
1898
|
+
inputs: { Text: "base.string" },
|
|
1899
|
+
outputs: { Object: "base.object" },
|
|
1900
|
+
impl: (ins) => {
|
|
1901
|
+
const t = ins.Text ?? "";
|
|
1902
|
+
try {
|
|
1903
|
+
const obj = JSON.parse(t);
|
|
1904
|
+
return { Object: obj };
|
|
1905
|
+
}
|
|
1906
|
+
catch {
|
|
1907
|
+
return { Object: undefined };
|
|
1908
|
+
}
|
|
1909
|
+
},
|
|
1910
|
+
});
|
|
1877
1911
|
// Number to String
|
|
1878
1912
|
registry.registerNode({
|
|
1879
1913
|
id: "base.numberToString",
|