@arronqzy/blueprint-dsl 1.0.16 → 1.0.17
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/dist/index.cjs +211 -63
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +68 -1
- package/dist/index.d.ts +68 -1
- package/dist/index.js +209 -64
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,3 +1,144 @@
|
|
|
1
|
+
// src/messages.ts
|
|
2
|
+
var ZH_CN = {
|
|
3
|
+
invalidJson: "\u4E0D\u662F\u6709\u6548 JSON\uFF1A{reason}",
|
|
4
|
+
invalidFormat: "\u683C\u5F0F\u65E0\u6548",
|
|
5
|
+
jsonInvalid: "JSON \u683C\u5F0F\u65E0\u6548",
|
|
6
|
+
jsonEmpty: "JSON \u4E0D\u80FD\u4E3A\u7A7A",
|
|
7
|
+
jsonRootMustBeContainer: "JSON \u6839\u8282\u70B9\u5FC5\u987B\u662F object \u6216 array",
|
|
8
|
+
contentEmpty: "\u5185\u5BB9\u4E3A\u7A7A",
|
|
9
|
+
contentRequired: "\u5185\u5BB9\u4E0D\u80FD\u4E3A\u7A7A",
|
|
10
|
+
codeRequired: "\u4EE3\u7801\u4E0D\u80FD\u4E3A\u7A7A",
|
|
11
|
+
javascriptSyntaxError: "JavaScript \u8BED\u6CD5\u9519\u8BEF",
|
|
12
|
+
logicUpdateRequired: "\u9700\u8981\u5B9A\u4E49 update(input) \u51FD\u6570",
|
|
13
|
+
apiItemMustBeObject: "apis[{index}] \u5FC5\u987B\u662F\u5BF9\u8C61",
|
|
14
|
+
apiItemFieldRequired: "apis[{index}].{field} \u5FC5\u586B\u4E14\u4E3A\u975E\u7A7A\u5B57\u7B26\u4E32",
|
|
15
|
+
apiItemMethodInvalid: "apis[{index}].method \u5FC5\u987B\u662F {methods} \u4E4B\u4E00",
|
|
16
|
+
apiItemFieldStringMap: "apis[{index}].{field} \u5FC5\u987B\u662F string \u5B57\u5178",
|
|
17
|
+
apiItemFieldString: "apis[{index}].{field} \u5FC5\u987B\u662F\u5B57\u7B26\u4E32",
|
|
18
|
+
apiRootMustBeObject: "\u6839\u8282\u70B9\u5FC5\u987B\u662F\u5BF9\u8C61",
|
|
19
|
+
apiVersionMismatch: "version \u5FC5\u987B\u4E3A {version}",
|
|
20
|
+
apiNameRequired: "name \u5FC5\u586B\u4E14\u4E3A\u975E\u7A7A\u5B57\u7B26\u4E32",
|
|
21
|
+
apiBaseUrlString: "baseUrl \u5FC5\u987B\u662F\u5B57\u7B26\u4E32",
|
|
22
|
+
apiListMustBeArray: "apis \u5FC5\u987B\u662F\u6570\u7EC4",
|
|
23
|
+
apiListEmpty: "apis \u81F3\u5C11\u5305\u542B\u4E00\u6761\u63A5\u53E3",
|
|
24
|
+
apiNameDuplicated: "\u63A5\u53E3\u540D\u79F0\u91CD\u590D\uFF1A{name}",
|
|
25
|
+
apiTemplateName: "\u793A\u4F8B\u63A5\u53E3\u96C6\u5408",
|
|
26
|
+
apiTemplateListUsers: "\u83B7\u53D6\u7528\u6237\u5217\u8868",
|
|
27
|
+
apiTemplateListUsersDesc: "\u5206\u9875\u67E5\u8BE2\u7528\u6237\uFF1Bpage / tenant / token \u53EF\u7528 Scope \u6A21\u7248",
|
|
28
|
+
apiTemplateCreateUser: "\u521B\u5EFA\u7528\u6237",
|
|
29
|
+
apiTemplateCreateUserDesc: "\u521B\u5EFA\u7528\u6237\uFF1BURL \u4E0E body \u5747\u652F\u6301 Scope \u6A21\u7248",
|
|
30
|
+
apiTemplateGetUser: "\u83B7\u53D6\u7528\u6237\u8BE6\u60C5",
|
|
31
|
+
apiTemplateGetUserDesc: "\u6309 id \u67E5\u8BE2\uFF1B\u8DEF\u5F84\u91CC\u53EF\u76F4\u63A5\u5199 Scope \u6A21\u7248",
|
|
32
|
+
fetchUrlMissing: "\u8BF7\u6C42 URL \u672A\u914D\u7F6E",
|
|
33
|
+
fetchBodyInvalidJson: "\u8BF7\u6C42\u4F53\u4E0D\u662F\u6709\u6548 JSON\uFF1A{reason}",
|
|
34
|
+
fetchResponseInvalidJson: "\u54CD\u5E94\u4E0D\u662F\u6709\u6548\u7684 JSON",
|
|
35
|
+
fetchAborted: "\u8BF7\u6C42\u5DF2\u4E2D\u6B62",
|
|
36
|
+
fetchTimeout: "\u8BF7\u6C42\u8D85\u65F6\uFF08{ms}ms\uFF09",
|
|
37
|
+
headersTemplateNotObject: "\u8BF7\u6C42\u5934\u6A21\u677F\u89E3\u6790\u540E\u4E0D\u662F\u6709\u6548\u7684 JSON \u5BF9\u8C61",
|
|
38
|
+
headersNotObject: "\u8BF7\u6C42\u5934\u4E0D\u662F\u6709\u6548\u7684 JSON \u5BF9\u8C61",
|
|
39
|
+
swaggerInvalid: "Swagger \u6587\u6863\u683C\u5F0F\u65E0\u6548",
|
|
40
|
+
openApiNoOperations: "\u672A\u5728 OpenAPI \u6587\u6863\u4E2D\u627E\u5230\u63A5\u53E3",
|
|
41
|
+
swagger2NoOperations: "\u672A\u5728 Swagger 2.0 \u6587\u6863\u4E2D\u627E\u5230\u63A5\u53E3",
|
|
42
|
+
swaggerUnsupported: "\u4EC5\u652F\u6301 OpenAPI 3.x \u4E0E Swagger 2.0 \u6587\u6863",
|
|
43
|
+
storageUnsupported: "\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301 {storage}",
|
|
44
|
+
storageKeyEmpty: "\u5B58\u50A8\u5199\u5165 key \u89E3\u6790\u4E3A\u7A7A",
|
|
45
|
+
clockCountPositive: "\u8F93\u51FA\u6B21\u6570\u987B\u5927\u4E8E 0",
|
|
46
|
+
clockIntervalPositive: "\u5F53\u524D\u914D\u7F6E\u4E0B\u65F6\u949F\u4FE1\u53F7\u95F4\u9694\u987B\u5927\u4E8E 0 \u79D2",
|
|
47
|
+
lifecycleSignalMissing: "\u751F\u547D\u5468\u671F\u4FE1\u53F7\u7F3A\u5931",
|
|
48
|
+
blueprintCycle: "\u84DD\u56FE\u5F15\u7528\u5B58\u5728\u6B7B\u5FAA\u73AF\uFF1A{path}",
|
|
49
|
+
debugMustStartFromLifecycle: "\u8C03\u8BD5\u4F1A\u8BDD\u53EA\u80FD\u4ECE\u751F\u547D\u5468\u671F\u8282\u70B9\u5F00\u59CB",
|
|
50
|
+
nodeRemoved: "\u8282\u70B9\u5DF2\u4ECE\u84DD\u56FE\u4E2D\u79FB\u9664",
|
|
51
|
+
clockNeedsTrue: "\u65F6\u949F\u8282\u70B9\u9700\u8981\u6536\u5230\u771F\u4FE1\u53F7\u540E\u624D\u4F1A\u542F\u52A8",
|
|
52
|
+
blueprintNeedsTrue: "\u84DD\u56FE\u8282\u70B9\u9700\u8981\u6536\u5230\u771F\u4FE1\u53F7\u540E\u624D\u4F1A\u6267\u884C",
|
|
53
|
+
blueprintNotSelected: "\u672A\u9009\u62E9\u84DD\u56FE\u5E93\u4E2D\u7684\u84DD\u56FE",
|
|
54
|
+
blueprintResolverMissing: "\u84DD\u56FE\u5E93\u89E3\u6790\u5668\u672A\u914D\u7F6E",
|
|
55
|
+
blueprintRecordMissing: "\u84DD\u56FE\u5E93\u8BB0\u5F55\u4E0D\u5B58\u5728: {id}",
|
|
56
|
+
fetchNoUpstream: "\u6570\u636E\u6E90\u8282\u70B9\u672A\u6536\u5230\u4E0A\u6E38\u8F93\u51FA\uFF0C\u8BF7\u786E\u8BA4\u8FDE\u7EBF\u4E0E\u4E0A\u6E38\u8282\u70B9\u5DF2\u6267\u884C",
|
|
57
|
+
fetchNeedsTrue: "\u6570\u636E\u6E90\u8282\u70B9\u9700\u8981\u6536\u5230\u771F\u4FE1\u53F7\u540E\u624D\u4F1A\u53D1\u8D77\u8BF7\u6C42",
|
|
58
|
+
jsonNeedsTrue: "JSON \u8282\u70B9\u9700\u8981\u6536\u5230\u771F\u4FE1\u53F7\u540E\u624D\u4F1A\u89E3\u6790",
|
|
59
|
+
storageNeedsTrue: "\u5B58\u50A8\u8282\u70B9\u9700\u8981\u6536\u5230\u771F\u4FE1\u53F7\u540E\u624D\u4F1A\u8BFB\u5199\u7F13\u5B58",
|
|
60
|
+
andNeedsBothTrue: "\u5E76\u8FD0\u7B97\uFF1A\u4E24\u4E2A\u8F93\u5165\u987B\u5747\u4E3A\u771F\u4FE1\u53F7"
|
|
61
|
+
};
|
|
62
|
+
var EN_US = {
|
|
63
|
+
invalidJson: "Invalid JSON: {reason}",
|
|
64
|
+
invalidFormat: "invalid format",
|
|
65
|
+
jsonInvalid: "Invalid JSON",
|
|
66
|
+
jsonEmpty: "JSON cannot be empty",
|
|
67
|
+
jsonRootMustBeContainer: "JSON root must be an object or array",
|
|
68
|
+
contentEmpty: "Content is empty",
|
|
69
|
+
contentRequired: "Content cannot be empty",
|
|
70
|
+
codeRequired: "Code cannot be empty",
|
|
71
|
+
javascriptSyntaxError: "JavaScript syntax error",
|
|
72
|
+
logicUpdateRequired: "An update(input) function is required",
|
|
73
|
+
apiItemMustBeObject: "apis[{index}] must be an object",
|
|
74
|
+
apiItemFieldRequired: "apis[{index}].{field} is required and must be a non-empty string",
|
|
75
|
+
apiItemMethodInvalid: "apis[{index}].method must be one of {methods}",
|
|
76
|
+
apiItemFieldStringMap: "apis[{index}].{field} must be a string map",
|
|
77
|
+
apiItemFieldString: "apis[{index}].{field} must be a string",
|
|
78
|
+
apiRootMustBeObject: "Root must be an object",
|
|
79
|
+
apiVersionMismatch: "version must be {version}",
|
|
80
|
+
apiNameRequired: "name is required and must be a non-empty string",
|
|
81
|
+
apiBaseUrlString: "baseUrl must be a string",
|
|
82
|
+
apiListMustBeArray: "apis must be an array",
|
|
83
|
+
apiListEmpty: "apis must contain at least one API",
|
|
84
|
+
apiNameDuplicated: "Duplicate API name: {name}",
|
|
85
|
+
apiTemplateName: "Sample API collection",
|
|
86
|
+
apiTemplateListUsers: "List users",
|
|
87
|
+
apiTemplateListUsersDesc: "Paged user query; page / tenant / token accept Scope templates",
|
|
88
|
+
apiTemplateCreateUser: "Create user",
|
|
89
|
+
apiTemplateCreateUserDesc: "Create a user; URL and body both accept Scope templates",
|
|
90
|
+
apiTemplateGetUser: "Get user detail",
|
|
91
|
+
apiTemplateGetUserDesc: "Query by id; Scope templates can be used directly in the path",
|
|
92
|
+
fetchUrlMissing: "Request URL is not configured",
|
|
93
|
+
fetchBodyInvalidJson: "Request body is not valid JSON: {reason}",
|
|
94
|
+
fetchResponseInvalidJson: "Response is not valid JSON",
|
|
95
|
+
fetchAborted: "Request aborted",
|
|
96
|
+
fetchTimeout: "Request timed out ({ms}ms)",
|
|
97
|
+
headersTemplateNotObject: "Headers template does not resolve to a JSON object",
|
|
98
|
+
headersNotObject: "Headers are not a valid JSON object",
|
|
99
|
+
swaggerInvalid: "Invalid Swagger document",
|
|
100
|
+
openApiNoOperations: "No operations found in the OpenAPI document",
|
|
101
|
+
swagger2NoOperations: "No operations found in the Swagger 2.0 document",
|
|
102
|
+
swaggerUnsupported: "Only OpenAPI 3.x and Swagger 2.0 documents are supported",
|
|
103
|
+
storageUnsupported: "{storage} is not available in this environment",
|
|
104
|
+
storageKeyEmpty: "Storage write key resolved to empty",
|
|
105
|
+
clockCountPositive: "Output count must be greater than 0",
|
|
106
|
+
clockIntervalPositive: "Clock interval must be greater than 0 seconds with the current config",
|
|
107
|
+
lifecycleSignalMissing: "Lifecycle signal is missing",
|
|
108
|
+
blueprintCycle: "Blueprint references form a cycle: {path}",
|
|
109
|
+
debugMustStartFromLifecycle: "A debug session can only start from a lifecycle node",
|
|
110
|
+
nodeRemoved: "Node was removed from the blueprint",
|
|
111
|
+
clockNeedsTrue: "Clock node starts only after receiving a true signal",
|
|
112
|
+
blueprintNeedsTrue: "Blueprint node runs only after receiving a true signal",
|
|
113
|
+
blueprintNotSelected: "No blueprint selected from the library",
|
|
114
|
+
blueprintResolverMissing: "Blueprint library resolver is not configured",
|
|
115
|
+
blueprintRecordMissing: "Blueprint library record not found: {id}",
|
|
116
|
+
fetchNoUpstream: "Data source node received no upstream output; check the connection and that upstream nodes ran",
|
|
117
|
+
fetchNeedsTrue: "Data source node sends the request only after receiving a true signal",
|
|
118
|
+
jsonNeedsTrue: "JSON node parses only after receiving a true signal",
|
|
119
|
+
storageNeedsTrue: "Storage node reads/writes only after receiving a true signal",
|
|
120
|
+
andNeedsBothTrue: "AND: both inputs must be true signals"
|
|
121
|
+
};
|
|
122
|
+
var CATALOGS = {
|
|
123
|
+
"zh-CN": ZH_CN,
|
|
124
|
+
"en-US": EN_US
|
|
125
|
+
};
|
|
126
|
+
var currentLocale = "zh-CN";
|
|
127
|
+
function setBlueprintDslLocale(locale) {
|
|
128
|
+
currentLocale = locale;
|
|
129
|
+
}
|
|
130
|
+
function getBlueprintDslLocale() {
|
|
131
|
+
return currentLocale;
|
|
132
|
+
}
|
|
133
|
+
function dslMessage(key, params) {
|
|
134
|
+
const template = CATALOGS[currentLocale][key];
|
|
135
|
+
if (!params) return template;
|
|
136
|
+
return template.replace(
|
|
137
|
+
/\{(\w+)\}/g,
|
|
138
|
+
(match, name) => name in params ? String(params[name]) : match
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
|
|
1
142
|
// src/lifecycle.ts
|
|
2
143
|
var PAGE_LIFECYCLE_PHASES = [
|
|
3
144
|
"created",
|
|
@@ -137,7 +278,7 @@ function registerDefaultBehaviors(registry) {
|
|
|
137
278
|
registry.registerJS("lifecycle-emit", async ({ token, io }) => {
|
|
138
279
|
const lifecycle = token.scope.vars.get(LIFECYCLE_SIGNAL_KEY);
|
|
139
280
|
if (!lifecycle) {
|
|
140
|
-
io.setOutput("out", createFalseSignal("
|
|
281
|
+
io.setOutput("out", createFalseSignal(dslMessage("lifecycleSignalMissing")));
|
|
141
282
|
} else if (lifecycle.phase === "blueprintActivated") {
|
|
142
283
|
io.setOutput(
|
|
143
284
|
"out",
|
|
@@ -972,7 +1113,7 @@ function hasExplicitUrlScheme(url) {
|
|
|
972
1113
|
function resolveFetchRequestUrl(config) {
|
|
973
1114
|
const rawUrl = config.url?.trim() ?? "";
|
|
974
1115
|
if (!rawUrl) {
|
|
975
|
-
throw new Error("
|
|
1116
|
+
throw new Error(dslMessage("fetchUrlMissing"));
|
|
976
1117
|
}
|
|
977
1118
|
if (hasExplicitUrlScheme(rawUrl)) {
|
|
978
1119
|
return rawUrl;
|
|
@@ -1002,7 +1143,7 @@ function linkAbortSignal(controller, external) {
|
|
|
1002
1143
|
async function executeFetch(config, options) {
|
|
1003
1144
|
const rawUrl = config.url?.trim();
|
|
1004
1145
|
if (!rawUrl) {
|
|
1005
|
-
throw new Error("
|
|
1146
|
+
throw new Error(dslMessage("fetchUrlMissing"));
|
|
1006
1147
|
}
|
|
1007
1148
|
const url = resolveFetchRequestUrl(config);
|
|
1008
1149
|
const method = config.method ?? "GET";
|
|
@@ -1013,7 +1154,9 @@ async function executeFetch(config, options) {
|
|
|
1013
1154
|
JSON.parse(body);
|
|
1014
1155
|
} catch (error) {
|
|
1015
1156
|
throw new Error(
|
|
1016
|
-
|
|
1157
|
+
dslMessage("fetchBodyInvalidJson", {
|
|
1158
|
+
reason: error instanceof Error ? error.message : dslMessage("invalidFormat")
|
|
1159
|
+
})
|
|
1017
1160
|
);
|
|
1018
1161
|
}
|
|
1019
1162
|
}
|
|
@@ -1054,7 +1197,7 @@ async function executeFetch(config, options) {
|
|
|
1054
1197
|
if (options?.allowHttpError) {
|
|
1055
1198
|
data = text;
|
|
1056
1199
|
} else {
|
|
1057
|
-
throw new Error("
|
|
1200
|
+
throw new Error(dslMessage("fetchResponseInvalidJson"));
|
|
1058
1201
|
}
|
|
1059
1202
|
}
|
|
1060
1203
|
}
|
|
@@ -1074,9 +1217,9 @@ async function executeFetch(config, options) {
|
|
|
1074
1217
|
} catch (error) {
|
|
1075
1218
|
if (error instanceof Error && error.name === "AbortError") {
|
|
1076
1219
|
if (options?.signal?.aborted) {
|
|
1077
|
-
throw new Error("
|
|
1220
|
+
throw new Error(dslMessage("fetchAborted"));
|
|
1078
1221
|
}
|
|
1079
|
-
throw new Error(
|
|
1222
|
+
throw new Error(dslMessage("fetchTimeout", { ms: timeoutMs }));
|
|
1080
1223
|
}
|
|
1081
1224
|
throw error;
|
|
1082
1225
|
} finally {
|
|
@@ -1422,7 +1565,7 @@ function parseJsonText(text) {
|
|
|
1422
1565
|
} catch (error) {
|
|
1423
1566
|
return {
|
|
1424
1567
|
ok: false,
|
|
1425
|
-
error: error instanceof Error ? error.message : "
|
|
1568
|
+
error: error instanceof Error ? error.message : dslMessage("jsonInvalid")
|
|
1426
1569
|
};
|
|
1427
1570
|
}
|
|
1428
1571
|
}
|
|
@@ -1430,7 +1573,7 @@ function validateFetchJsonText(text, options) {
|
|
|
1430
1573
|
const trimmed = text.trim();
|
|
1431
1574
|
if (!trimmed) {
|
|
1432
1575
|
if (options?.allowEmpty === false) {
|
|
1433
|
-
return { ok: false, error: "
|
|
1576
|
+
return { ok: false, error: dslMessage("contentRequired") };
|
|
1434
1577
|
}
|
|
1435
1578
|
return { ok: true };
|
|
1436
1579
|
}
|
|
@@ -1475,13 +1618,13 @@ function getFetchHeadersValidationError(config, scope) {
|
|
|
1475
1618
|
if (isWholeScopeExpression(raw) || hasScopeTemplate(raw)) {
|
|
1476
1619
|
if (scope === void 0) return null;
|
|
1477
1620
|
const parsed2 = parseFetchHeadersJson(raw, scope);
|
|
1478
|
-
if (!parsed2) return "
|
|
1621
|
+
if (!parsed2) return dslMessage("headersTemplateNotObject");
|
|
1479
1622
|
return null;
|
|
1480
1623
|
}
|
|
1481
1624
|
const result = validateFetchJsonText(raw);
|
|
1482
1625
|
if (!result.ok) return result.error;
|
|
1483
1626
|
const parsed = parseFetchHeadersJson(raw, scope);
|
|
1484
|
-
if (!parsed) return "
|
|
1627
|
+
if (!parsed) return dslMessage("headersNotObject");
|
|
1485
1628
|
return null;
|
|
1486
1629
|
}
|
|
1487
1630
|
function isWholeScopeExpression(text) {
|
|
@@ -1806,7 +1949,7 @@ function lintJsonString(jsonString) {
|
|
|
1806
1949
|
const raw = jsonString ?? "";
|
|
1807
1950
|
const trimmed = raw.trim();
|
|
1808
1951
|
if (!trimmed) {
|
|
1809
|
-
return { ok: false, error: "
|
|
1952
|
+
return { ok: false, error: dslMessage("jsonEmpty"), ranges: [] };
|
|
1810
1953
|
}
|
|
1811
1954
|
const suspectRanges = findSuspectCharRanges(raw);
|
|
1812
1955
|
const trimStart = raw.indexOf(trimmed);
|
|
@@ -1816,13 +1959,13 @@ function lintJsonString(jsonString) {
|
|
|
1816
1959
|
if (value === null || typeof value !== "object") {
|
|
1817
1960
|
return {
|
|
1818
1961
|
ok: false,
|
|
1819
|
-
error: "
|
|
1962
|
+
error: dslMessage("jsonRootMustBeContainer"),
|
|
1820
1963
|
ranges: mergeRanges(suspectRanges)
|
|
1821
1964
|
};
|
|
1822
1965
|
}
|
|
1823
1966
|
return { ok: true, value };
|
|
1824
1967
|
} catch (error) {
|
|
1825
|
-
const message = error instanceof Error ? error.message : "
|
|
1968
|
+
const message = error instanceof Error ? error.message : dslMessage("jsonInvalid");
|
|
1826
1969
|
const ranges = [...suspectRanges];
|
|
1827
1970
|
const fromEngine = extractJsonErrorPosition(message, trimmed);
|
|
1828
1971
|
const fromScan = findJsonSyntaxErrorOffset(trimmed);
|
|
@@ -2023,7 +2166,7 @@ function requireStorage(accessors, kind) {
|
|
|
2023
2166
|
const target = kind === "session" ? accessors?.session : accessors?.local;
|
|
2024
2167
|
if (!target) {
|
|
2025
2168
|
throw new Error(
|
|
2026
|
-
kind === "session" ? "
|
|
2169
|
+
kind === "session" ? dslMessage("storageUnsupported", { storage: "sessionStorage" }) : dslMessage("storageUnsupported", { storage: "localStorage" })
|
|
2027
2170
|
);
|
|
2028
2171
|
}
|
|
2029
2172
|
return target;
|
|
@@ -2036,7 +2179,7 @@ function executeStorageConfig(config, incomingScope, accessors) {
|
|
|
2036
2179
|
const serialized = serializeStorageValue(value);
|
|
2037
2180
|
const key = resolveStorageKey(normalized.set.key, incomingScope);
|
|
2038
2181
|
if (!key) {
|
|
2039
|
-
throw new Error("
|
|
2182
|
+
throw new Error(dslMessage("storageKeyEmpty"));
|
|
2040
2183
|
}
|
|
2041
2184
|
for (const kind of normalized.set.storages) {
|
|
2042
2185
|
requireStorage(store, kind).setItem(key, serialized);
|
|
@@ -2076,7 +2219,7 @@ function compileLogicRunner(sourceCode) {
|
|
|
2076
2219
|
`"use strict";
|
|
2077
2220
|
${sourceCode}
|
|
2078
2221
|
if (typeof update !== "function") {
|
|
2079
|
-
throw new TypeError(
|
|
2222
|
+
throw new TypeError(dslMessage("logicUpdateRequired"));
|
|
2080
2223
|
}
|
|
2081
2224
|
return update(input);`
|
|
2082
2225
|
);
|
|
@@ -2084,7 +2227,7 @@ return update(input);`
|
|
|
2084
2227
|
function validateLogicSourceCode(sourceCode) {
|
|
2085
2228
|
const raw = sourceCode?.trim();
|
|
2086
2229
|
if (!raw) {
|
|
2087
|
-
return { ok: false, error: "
|
|
2230
|
+
return { ok: false, error: dslMessage("codeRequired") };
|
|
2088
2231
|
}
|
|
2089
2232
|
try {
|
|
2090
2233
|
compileLogicRunner(raw);
|
|
@@ -2092,7 +2235,7 @@ function validateLogicSourceCode(sourceCode) {
|
|
|
2092
2235
|
} catch (error) {
|
|
2093
2236
|
return {
|
|
2094
2237
|
ok: false,
|
|
2095
|
-
error: error instanceof Error ? error.message : "
|
|
2238
|
+
error: error instanceof Error ? error.message : dslMessage("javascriptSyntaxError")
|
|
2096
2239
|
};
|
|
2097
2240
|
}
|
|
2098
2241
|
}
|
|
@@ -2128,11 +2271,11 @@ function normalizeClockConfig(config) {
|
|
|
2128
2271
|
function validateClockScheduleConfig(config) {
|
|
2129
2272
|
const normalized = normalizeClockConfig(config);
|
|
2130
2273
|
if (normalized.outputCount <= 0) {
|
|
2131
|
-
return { ok: false, error: "
|
|
2274
|
+
return { ok: false, error: dslMessage("clockCountPositive") };
|
|
2132
2275
|
}
|
|
2133
2276
|
const needsInterval = normalized.outputCount > 1 || normalized.outputCount === 1 && !normalized.emitImmediately;
|
|
2134
2277
|
if (needsInterval && normalized.intervalSeconds <= 0) {
|
|
2135
|
-
return { ok: false, error: "
|
|
2278
|
+
return { ok: false, error: dslMessage("clockIntervalPositive") };
|
|
2136
2279
|
}
|
|
2137
2280
|
return { ok: true };
|
|
2138
2281
|
}
|
|
@@ -2421,24 +2564,24 @@ function parseSwaggerV2(spec, docsUrl) {
|
|
|
2421
2564
|
}
|
|
2422
2565
|
function parseSwaggerDocument(spec, docsUrl) {
|
|
2423
2566
|
if (!spec || typeof spec !== "object") {
|
|
2424
|
-
throw new Error("
|
|
2567
|
+
throw new Error(dslMessage("swaggerInvalid"));
|
|
2425
2568
|
}
|
|
2426
2569
|
const document2 = spec;
|
|
2427
2570
|
if (typeof document2.openapi === "string") {
|
|
2428
2571
|
const parsed = parseOpenApiV3(document2, docsUrl);
|
|
2429
2572
|
if (parsed.endpoints.length === 0) {
|
|
2430
|
-
throw new Error("
|
|
2573
|
+
throw new Error(dslMessage("openApiNoOperations"));
|
|
2431
2574
|
}
|
|
2432
2575
|
return parsed;
|
|
2433
2576
|
}
|
|
2434
2577
|
if (document2.swagger === "2.0" || document2.swagger === 2) {
|
|
2435
2578
|
const parsed = parseSwaggerV2(document2, docsUrl);
|
|
2436
2579
|
if (parsed.endpoints.length === 0) {
|
|
2437
|
-
throw new Error("
|
|
2580
|
+
throw new Error(dslMessage("swagger2NoOperations"));
|
|
2438
2581
|
}
|
|
2439
2582
|
return parsed;
|
|
2440
2583
|
}
|
|
2441
|
-
throw new Error("
|
|
2584
|
+
throw new Error(dslMessage("swaggerUnsupported"));
|
|
2442
2585
|
}
|
|
2443
2586
|
function buildEndpointFullUrl(apiBaseUrl, pathOrEndpoint) {
|
|
2444
2587
|
const path = typeof pathOrEndpoint === "string" ? pathOrEndpoint : pathOrEndpoint.path;
|
|
@@ -2478,28 +2621,28 @@ function isPlainStringRecord(value) {
|
|
|
2478
2621
|
}
|
|
2479
2622
|
function normalizeEndpoint(raw, index) {
|
|
2480
2623
|
if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
|
|
2481
|
-
return
|
|
2624
|
+
return dslMessage("apiItemMustBeObject", { index });
|
|
2482
2625
|
}
|
|
2483
2626
|
const item = raw;
|
|
2484
2627
|
const name = typeof item.name === "string" ? item.name.trim() : "";
|
|
2485
|
-
if (!name) return
|
|
2628
|
+
if (!name) return dslMessage("apiItemFieldRequired", { index, field: "name" });
|
|
2486
2629
|
const url = typeof item.url === "string" ? item.url.trim() : "";
|
|
2487
|
-
if (!url) return
|
|
2630
|
+
if (!url) return dslMessage("apiItemFieldRequired", { index, field: "url" });
|
|
2488
2631
|
const methodRaw = typeof item.method === "string" ? item.method.trim().toUpperCase() : "";
|
|
2489
2632
|
if (!HTTP_METHOD_SET.has(methodRaw)) {
|
|
2490
|
-
return
|
|
2633
|
+
return dslMessage("apiItemMethodInvalid", { index, methods: FETCH_HTTP_METHODS.join(" / ") });
|
|
2491
2634
|
}
|
|
2492
2635
|
if (item.params !== void 0 && !isPlainStringRecord(item.params)) {
|
|
2493
|
-
return
|
|
2636
|
+
return dslMessage("apiItemFieldStringMap", { index, field: "params" });
|
|
2494
2637
|
}
|
|
2495
2638
|
if (item.headers !== void 0 && !isPlainStringRecord(item.headers)) {
|
|
2496
|
-
return
|
|
2639
|
+
return dslMessage("apiItemFieldStringMap", { index, field: "headers" });
|
|
2497
2640
|
}
|
|
2498
2641
|
if (item.body !== void 0 && typeof item.body !== "string") {
|
|
2499
|
-
return
|
|
2642
|
+
return dslMessage("apiItemFieldString", { index, field: "body" });
|
|
2500
2643
|
}
|
|
2501
2644
|
if (item.description !== void 0 && typeof item.description !== "string") {
|
|
2502
|
-
return
|
|
2645
|
+
return dslMessage("apiItemFieldString", { index, field: "description" });
|
|
2503
2646
|
}
|
|
2504
2647
|
return {
|
|
2505
2648
|
name,
|
|
@@ -2513,26 +2656,26 @@ function normalizeEndpoint(raw, index) {
|
|
|
2513
2656
|
}
|
|
2514
2657
|
function validateApiCollectionDocument(input) {
|
|
2515
2658
|
if (!input || typeof input !== "object" || Array.isArray(input)) {
|
|
2516
|
-
return { ok: false, error: "
|
|
2659
|
+
return { ok: false, error: dslMessage("apiRootMustBeObject") };
|
|
2517
2660
|
}
|
|
2518
2661
|
const root = input;
|
|
2519
2662
|
const version = root.version;
|
|
2520
2663
|
if (version !== API_COLLECTION_DOCUMENT_VERSION && version !== "1") {
|
|
2521
2664
|
return {
|
|
2522
2665
|
ok: false,
|
|
2523
|
-
error:
|
|
2666
|
+
error: dslMessage("apiVersionMismatch", { version: API_COLLECTION_DOCUMENT_VERSION })
|
|
2524
2667
|
};
|
|
2525
2668
|
}
|
|
2526
2669
|
const name = typeof root.name === "string" ? root.name.trim() : "";
|
|
2527
|
-
if (!name) return { ok: false, error: "
|
|
2670
|
+
if (!name) return { ok: false, error: dslMessage("apiNameRequired") };
|
|
2528
2671
|
if (root.baseUrl !== void 0 && typeof root.baseUrl !== "string") {
|
|
2529
|
-
return { ok: false, error: "
|
|
2672
|
+
return { ok: false, error: dslMessage("apiBaseUrlString") };
|
|
2530
2673
|
}
|
|
2531
2674
|
if (!Array.isArray(root.apis)) {
|
|
2532
|
-
return { ok: false, error: "
|
|
2675
|
+
return { ok: false, error: dslMessage("apiListMustBeArray") };
|
|
2533
2676
|
}
|
|
2534
2677
|
if (root.apis.length === 0) {
|
|
2535
|
-
return { ok: false, error: "
|
|
2678
|
+
return { ok: false, error: dslMessage("apiListEmpty") };
|
|
2536
2679
|
}
|
|
2537
2680
|
const apis = [];
|
|
2538
2681
|
const nameSet = /* @__PURE__ */ new Set();
|
|
@@ -2542,7 +2685,7 @@ function validateApiCollectionDocument(input) {
|
|
|
2542
2685
|
return { ok: false, error: normalized };
|
|
2543
2686
|
}
|
|
2544
2687
|
if (nameSet.has(normalized.name)) {
|
|
2545
|
-
return { ok: false, error:
|
|
2688
|
+
return { ok: false, error: dslMessage("apiNameDuplicated", { name: normalized.name }) };
|
|
2546
2689
|
}
|
|
2547
2690
|
nameSet.add(normalized.name);
|
|
2548
2691
|
apis.push(normalized);
|
|
@@ -2559,14 +2702,16 @@ function validateApiCollectionDocument(input) {
|
|
|
2559
2702
|
}
|
|
2560
2703
|
function parseApiCollectionJson(text) {
|
|
2561
2704
|
const trimmed = text.trim();
|
|
2562
|
-
if (!trimmed) return { ok: false, error: "
|
|
2705
|
+
if (!trimmed) return { ok: false, error: dslMessage("contentEmpty") };
|
|
2563
2706
|
let parsed;
|
|
2564
2707
|
try {
|
|
2565
2708
|
parsed = JSON.parse(trimmed);
|
|
2566
2709
|
} catch (error) {
|
|
2567
2710
|
return {
|
|
2568
2711
|
ok: false,
|
|
2569
|
-
error:
|
|
2712
|
+
error: dslMessage("invalidJson", {
|
|
2713
|
+
reason: error instanceof Error ? error.message : dslMessage("invalidFormat")
|
|
2714
|
+
})
|
|
2570
2715
|
};
|
|
2571
2716
|
}
|
|
2572
2717
|
const validated = validateApiCollectionDocument(parsed);
|
|
@@ -2592,11 +2737,11 @@ function apiCollectionToListItem(record) {
|
|
|
2592
2737
|
function getApiCollectionTemplateDocument() {
|
|
2593
2738
|
return {
|
|
2594
2739
|
version: API_COLLECTION_DOCUMENT_VERSION,
|
|
2595
|
-
name: "
|
|
2740
|
+
name: dslMessage("apiTemplateName"),
|
|
2596
2741
|
baseUrl: "https://api.example.com",
|
|
2597
2742
|
apis: [
|
|
2598
2743
|
{
|
|
2599
|
-
name: "
|
|
2744
|
+
name: dslMessage("apiTemplateListUsers"),
|
|
2600
2745
|
method: "GET",
|
|
2601
2746
|
url: "/users",
|
|
2602
2747
|
params: {
|
|
@@ -2608,22 +2753,22 @@ function getApiCollectionTemplateDocument() {
|
|
|
2608
2753
|
Accept: "application/json",
|
|
2609
2754
|
Authorization: "Bearer {scope?.value?.token}"
|
|
2610
2755
|
},
|
|
2611
|
-
description: "
|
|
2756
|
+
description: dslMessage("apiTemplateListUsersDesc")
|
|
2612
2757
|
},
|
|
2613
2758
|
{
|
|
2614
|
-
name: "
|
|
2759
|
+
name: dslMessage("apiTemplateCreateUser"),
|
|
2615
2760
|
method: "POST",
|
|
2616
2761
|
url: "/tenants/{scope?.value?.tenant}/users",
|
|
2617
2762
|
headers: { "Content-Type": "application/json" },
|
|
2618
2763
|
body: '{\n "name": "{scope?.value?.name}",\n "role": "member"\n}',
|
|
2619
|
-
description: "
|
|
2764
|
+
description: dslMessage("apiTemplateCreateUserDesc")
|
|
2620
2765
|
},
|
|
2621
2766
|
{
|
|
2622
|
-
name: "
|
|
2767
|
+
name: dslMessage("apiTemplateGetUser"),
|
|
2623
2768
|
method: "GET",
|
|
2624
2769
|
url: "/users/{scope?.value?.id}",
|
|
2625
2770
|
headers: { Accept: "application/json" },
|
|
2626
|
-
description: "
|
|
2771
|
+
description: dslMessage("apiTemplateGetUserDesc")
|
|
2627
2772
|
}
|
|
2628
2773
|
]
|
|
2629
2774
|
};
|
|
@@ -2928,7 +3073,7 @@ function collectBlueprintLibraryRefs(graph) {
|
|
|
2928
3073
|
}
|
|
2929
3074
|
function formatBlueprintCycleMessage(cycleIds, resolveName) {
|
|
2930
3075
|
const labels = cycleIds.map((id) => resolveName?.(id) ?? id);
|
|
2931
|
-
return
|
|
3076
|
+
return dslMessage("blueprintCycle", { path: labels.join(" \u2192 ") });
|
|
2932
3077
|
}
|
|
2933
3078
|
async function detectBlueprintReferenceCycle(options) {
|
|
2934
3079
|
const {
|
|
@@ -3388,7 +3533,7 @@ var BlueprintGraphRunner = class _BlueprintGraphRunner {
|
|
|
3388
3533
|
stopAllClockSchedules();
|
|
3389
3534
|
const node = this.requireNode(lifecycleNodeId);
|
|
3390
3535
|
if (node.nodeType !== LIFECYCLE_NODE_TYPE) {
|
|
3391
|
-
throw new Error("
|
|
3536
|
+
throw new Error(dslMessage("debugMustStartFromLifecycle"));
|
|
3392
3537
|
}
|
|
3393
3538
|
this.outputs.clear();
|
|
3394
3539
|
this.traceEntries = [];
|
|
@@ -3589,7 +3734,7 @@ var BlueprintGraphRunner = class _BlueprintGraphRunner {
|
|
|
3589
3734
|
const runExecutor = executor ?? this.debugExecutor ?? this.createExecutor(this.debugQueue ?? []);
|
|
3590
3735
|
if (!this.syncTokenFromGraph(token)) {
|
|
3591
3736
|
return this.appendDebugTraceEntry(token, nodeLabelById, startedAt, {
|
|
3592
|
-
error: "
|
|
3737
|
+
error: dslMessage("nodeRemoved")
|
|
3593
3738
|
});
|
|
3594
3739
|
}
|
|
3595
3740
|
try {
|
|
@@ -3650,7 +3795,7 @@ var BlueprintGraphRunner = class _BlueprintGraphRunner {
|
|
|
3650
3795
|
}
|
|
3651
3796
|
if (!isTrueSignal(input)) {
|
|
3652
3797
|
return finishWithOutput(
|
|
3653
|
-
createFalseSignal("
|
|
3798
|
+
createFalseSignal(dslMessage("clockNeedsTrue"))
|
|
3654
3799
|
);
|
|
3655
3800
|
}
|
|
3656
3801
|
const validation = validateClockScheduleConfig(normalized);
|
|
@@ -3725,19 +3870,19 @@ var BlueprintGraphRunner = class _BlueprintGraphRunner {
|
|
|
3725
3870
|
if (!isTrueSignal(input)) {
|
|
3726
3871
|
io.setOutput(
|
|
3727
3872
|
"out",
|
|
3728
|
-
createFalseSignal("
|
|
3873
|
+
createFalseSignal(dslMessage("blueprintNeedsTrue"))
|
|
3729
3874
|
);
|
|
3730
3875
|
io.emitFlow("out");
|
|
3731
3876
|
return;
|
|
3732
3877
|
}
|
|
3733
3878
|
const libraryId = node.libraryBlueprintId;
|
|
3734
3879
|
if (!libraryId) {
|
|
3735
|
-
io.setOutput("out", createFalseSignal("
|
|
3880
|
+
io.setOutput("out", createFalseSignal(dslMessage("blueprintNotSelected")));
|
|
3736
3881
|
io.emitFlow("out");
|
|
3737
3882
|
return;
|
|
3738
3883
|
}
|
|
3739
3884
|
if (!runner.resolveLibraryBlueprint) {
|
|
3740
|
-
io.setOutput("out", createFalseSignal("
|
|
3885
|
+
io.setOutput("out", createFalseSignal(dslMessage("blueprintResolverMissing")));
|
|
3741
3886
|
io.emitFlow("out");
|
|
3742
3887
|
return;
|
|
3743
3888
|
}
|
|
@@ -3760,7 +3905,7 @@ var BlueprintGraphRunner = class _BlueprintGraphRunner {
|
|
|
3760
3905
|
if (!nestedGraph) {
|
|
3761
3906
|
io.setOutput(
|
|
3762
3907
|
"out",
|
|
3763
|
-
createFalseSignal(
|
|
3908
|
+
createFalseSignal(dslMessage("blueprintRecordMissing", { id: libraryId }))
|
|
3764
3909
|
);
|
|
3765
3910
|
io.emitFlow("out");
|
|
3766
3911
|
return;
|
|
@@ -3812,7 +3957,7 @@ var BlueprintGraphRunner = class _BlueprintGraphRunner {
|
|
|
3812
3957
|
io.setOutput(
|
|
3813
3958
|
"out",
|
|
3814
3959
|
createFalseSignal(
|
|
3815
|
-
input === void 0 ? "
|
|
3960
|
+
input === void 0 ? dslMessage("fetchNoUpstream") : dslMessage("fetchNeedsTrue")
|
|
3816
3961
|
)
|
|
3817
3962
|
);
|
|
3818
3963
|
io.emitFlow("out");
|
|
@@ -3833,7 +3978,7 @@ var BlueprintGraphRunner = class _BlueprintGraphRunner {
|
|
|
3833
3978
|
}
|
|
3834
3979
|
const bodyError = getFetchBodyValidationError(config.body, config.body);
|
|
3835
3980
|
if (bodyError) {
|
|
3836
|
-
throw new Error(
|
|
3981
|
+
throw new Error(dslMessage("fetchBodyInvalidJson", { reason: bodyError }));
|
|
3837
3982
|
}
|
|
3838
3983
|
resolveFetchRequestUrl(config);
|
|
3839
3984
|
const result = await executeFetch(config, {
|
|
@@ -3889,7 +4034,7 @@ var BlueprintGraphRunner = class _BlueprintGraphRunner {
|
|
|
3889
4034
|
if (!isTrueSignal(input)) {
|
|
3890
4035
|
io.setOutput(
|
|
3891
4036
|
"out",
|
|
3892
|
-
createFalseSignal("
|
|
4037
|
+
createFalseSignal(dslMessage("jsonNeedsTrue"))
|
|
3893
4038
|
);
|
|
3894
4039
|
io.emitFlow("out");
|
|
3895
4040
|
return;
|
|
@@ -3931,7 +4076,7 @@ var BlueprintGraphRunner = class _BlueprintGraphRunner {
|
|
|
3931
4076
|
if (!isTrueSignal(input)) {
|
|
3932
4077
|
io.setOutput(
|
|
3933
4078
|
"out",
|
|
3934
|
-
createFalseSignal("
|
|
4079
|
+
createFalseSignal(dslMessage("storageNeedsTrue"))
|
|
3935
4080
|
);
|
|
3936
4081
|
io.emitFlow("out");
|
|
3937
4082
|
return;
|
|
@@ -3976,7 +4121,7 @@ var BlueprintGraphRunner = class _BlueprintGraphRunner {
|
|
|
3976
4121
|
if (!isTrueSignal(input)) {
|
|
3977
4122
|
io.setOutput(
|
|
3978
4123
|
"out",
|
|
3979
|
-
createFalseSignal("
|
|
4124
|
+
createFalseSignal(dslMessage("clockNeedsTrue"))
|
|
3980
4125
|
);
|
|
3981
4126
|
io.emitFlow("out");
|
|
3982
4127
|
return;
|
|
@@ -4014,7 +4159,7 @@ var BlueprintGraphRunner = class _BlueprintGraphRunner {
|
|
|
4014
4159
|
} else {
|
|
4015
4160
|
io.setOutput(
|
|
4016
4161
|
"out",
|
|
4017
|
-
createFalseSignal("
|
|
4162
|
+
createFalseSignal(dslMessage("andNeedsBothTrue"))
|
|
4018
4163
|
);
|
|
4019
4164
|
}
|
|
4020
4165
|
io.emitFlow("out");
|
|
@@ -4213,6 +4358,6 @@ var BlueprintGraphRunner = class _BlueprintGraphRunner {
|
|
|
4213
4358
|
}
|
|
4214
4359
|
};
|
|
4215
4360
|
|
|
4216
|
-
export { AND_NODE_TYPE, API_COLLECTION_DOCUMENT_VERSION, BLUEPRINT_ACTIVATION_INPUT_KEY, BLUEPRINT_CALL_STACK_KEY, BLUEPRINT_NODE_TYPE, BehaviorRegistry, BlueprintCycleError, BlueprintGraphRunner, CLOCK_NODE_TYPE, DEFAULT_CLOCK_NODE_CONFIG, DEFAULT_FETCH_REQUEST_CONFIG, DEFAULT_JSON_NODE_CONFIG, DEFAULT_LOGIC_NODE_CONFIG, DEFAULT_LOGIC_NODE_TYPE, DEFAULT_STORAGE_NODE_CONFIG, DEFAULT_VIEW_EVENT_NODE_CONFIG, EVENT_NODE_TYPE, Executor, FETCH_CACHES, FETCH_CREDENTIALS, FETCH_HTTP_METHODS, FETCH_MODES, FETCH_NODE_TYPE, FETCH_REDIRECTS, FETCH_RESPONSE_TYPES, FETCH_SCOPE_AUTOCOMPLETE_FALLBACK, JSON_NODE_TYPE, LIFECYCLE_NODE_TYPE, LIFECYCLE_SIGNAL_KEY, PAGE_LIFECYCLE_LABELS, PAGE_LIFECYCLE_PHASES, STORAGE_KINDS, STORAGE_NODE_TYPE, SYSTEM_LOCATION_KEYS, SYSTEM_MATH_KEYS, SYSTEM_TIME_METHOD_NAMES, TEMPLATE_ROOT_NAMES, UI_EVENT_PAYLOAD_KEY, VIEW_EVENT_SIGNAL_KEY, VIEW_EVENT_TYPES, VIEW_NODE_TYPE, abortClockNode, abortClockSession, andLogicNodeDefinition, apiCollectionToListItem, appStorageKey, applyApiCollectionEndpointToFetchConfig, applyFetchConfigScope, applyScopeAutocompleteSelection, assertNoBlueprintReferenceCycle, blueprintNodeDefinition, buildApiCollectionEndpointUrl, buildApiCollectionSyncPatches, buildClockSessionKey, buildClockSignalValue, buildEndpointFullUrl, buildEndpointSuggestions, buildIncomingNodeScope, buildScopeExpression, clearClockSessionAbort, clockNodeDefinition, collectArmedViewEventBindings, collectArmedViewEventNodeIds, collectBlueprintLibraryRefs, collectIncomingNodeScopeEntries, collectViewEventBindings, combinePortSignalsOr, createApiCollectionId, createClockOutputValue, createFalseSignal, createIncomingNodeScopeEntry, createLifecycleSignal, createSystemRoot, createTraceEntryId, createTrueSignal, createViewEventSignal, defaultLogicNodeDefinition, deserializeStorageValue, detectBlueprintReferenceCycle, detectRuntimeBlueprintCycle, downloadApiCollectionTemplate, draftFetchHeadersText, evaluateScopeExpression, evaluateScopeTemplate, evaluateScopeTemplateInJson, executeFetch, executeLogicConfig, executeStorageConfig, extractJsonErrorPosition, fetchConfigHasScopeTemplate, fetchNodeDefinition, filterEndpointSuggestions, filterStorageKeySuggestions, findJsonSyntaxErrorOffset, findSuspectCharRanges, formatBlueprintCycleMessage, formatClockTime, getActiveClockNodeIds, getApiCollectionTemplateDocument, getApiCollectionTemplateJson, getClockTickDelayOffsetMs, getClockTickWaitMs, getFetchBodyValidationError, getFetchHeadersValidationError, getNodeDefinition, getScopeAutocompleteSuggestions, getSystemAutocompleteTree, hasScopeTemplate, hasTemplateExpression, isClockNodeActive, isClockScheduleActive, isClockSessionAborted, isDayjsValue, isFalseSignal, isStorageReadConfigured, isStorageSetConfigured, isTrueSignal, isViewEventType, isWholeScopeExpression, jsonNodeDefinition, latestTraceOutputsByNode, lifecycleNodeDefinition, lintJsonString, listBrowserStorageKeys, looksLikeJsonText, nodeDefinitionRegistry, normalizeApiCollectionUrlKey, normalizeAppNameSpace, normalizeClockConfig, normalizeFetchRequestConfig, normalizeStorageConfig, normalizeViewEventConfig, parseApiCollectionJson, parseFetchHeadersJson, parseJsonConfig, parseJsonText, parseScopeAutocomplete, parseSwaggerDocument, preserveTemplateTokensInEncode, registerDefaultBehaviors, renderJsonWithErrorHighlights, resolveBlueprintCallStack, resolveFetchBody, resolveFetchHeaders, resolveFetchIncomingScope, resolveFetchRequestUrl, resolveFetchScopeAutocompleteRoot, resolveStorageKey, resolveStorageWriteValue, scheduleClockOutputs, serializeStorageValue, serializeTraceValue, snapshotDomEvent, snapshotViewEventNode, startClockSchedule, stopAllClockSchedules, stopClockSchedule, storageNodeDefinition, stringifyScopeValue, subscribeActiveClockNodes, toApiCollectionSyncResult, uniqueStorageKinds, validateApiCollectionDocument, validateClockScheduleConfig, validateFetchJsonText, validateJsonString, validateJsonStringAllowingScope, validateLogicSourceCode, viewBindNodeDefinition, viewEventNodeDefinition };
|
|
4361
|
+
export { AND_NODE_TYPE, API_COLLECTION_DOCUMENT_VERSION, BLUEPRINT_ACTIVATION_INPUT_KEY, BLUEPRINT_CALL_STACK_KEY, BLUEPRINT_NODE_TYPE, BehaviorRegistry, BlueprintCycleError, BlueprintGraphRunner, CLOCK_NODE_TYPE, DEFAULT_CLOCK_NODE_CONFIG, DEFAULT_FETCH_REQUEST_CONFIG, DEFAULT_JSON_NODE_CONFIG, DEFAULT_LOGIC_NODE_CONFIG, DEFAULT_LOGIC_NODE_TYPE, DEFAULT_STORAGE_NODE_CONFIG, DEFAULT_VIEW_EVENT_NODE_CONFIG, EVENT_NODE_TYPE, Executor, FETCH_CACHES, FETCH_CREDENTIALS, FETCH_HTTP_METHODS, FETCH_MODES, FETCH_NODE_TYPE, FETCH_REDIRECTS, FETCH_RESPONSE_TYPES, FETCH_SCOPE_AUTOCOMPLETE_FALLBACK, JSON_NODE_TYPE, LIFECYCLE_NODE_TYPE, LIFECYCLE_SIGNAL_KEY, PAGE_LIFECYCLE_LABELS, PAGE_LIFECYCLE_PHASES, STORAGE_KINDS, STORAGE_NODE_TYPE, SYSTEM_LOCATION_KEYS, SYSTEM_MATH_KEYS, SYSTEM_TIME_METHOD_NAMES, TEMPLATE_ROOT_NAMES, UI_EVENT_PAYLOAD_KEY, VIEW_EVENT_SIGNAL_KEY, VIEW_EVENT_TYPES, VIEW_NODE_TYPE, abortClockNode, abortClockSession, andLogicNodeDefinition, apiCollectionToListItem, appStorageKey, applyApiCollectionEndpointToFetchConfig, applyFetchConfigScope, applyScopeAutocompleteSelection, assertNoBlueprintReferenceCycle, blueprintNodeDefinition, buildApiCollectionEndpointUrl, buildApiCollectionSyncPatches, buildClockSessionKey, buildClockSignalValue, buildEndpointFullUrl, buildEndpointSuggestions, buildIncomingNodeScope, buildScopeExpression, clearClockSessionAbort, clockNodeDefinition, collectArmedViewEventBindings, collectArmedViewEventNodeIds, collectBlueprintLibraryRefs, collectIncomingNodeScopeEntries, collectViewEventBindings, combinePortSignalsOr, createApiCollectionId, createClockOutputValue, createFalseSignal, createIncomingNodeScopeEntry, createLifecycleSignal, createSystemRoot, createTraceEntryId, createTrueSignal, createViewEventSignal, defaultLogicNodeDefinition, deserializeStorageValue, detectBlueprintReferenceCycle, detectRuntimeBlueprintCycle, downloadApiCollectionTemplate, draftFetchHeadersText, dslMessage, evaluateScopeExpression, evaluateScopeTemplate, evaluateScopeTemplateInJson, executeFetch, executeLogicConfig, executeStorageConfig, extractJsonErrorPosition, fetchConfigHasScopeTemplate, fetchNodeDefinition, filterEndpointSuggestions, filterStorageKeySuggestions, findJsonSyntaxErrorOffset, findSuspectCharRanges, formatBlueprintCycleMessage, formatClockTime, getActiveClockNodeIds, getApiCollectionTemplateDocument, getApiCollectionTemplateJson, getBlueprintDslLocale, getClockTickDelayOffsetMs, getClockTickWaitMs, getFetchBodyValidationError, getFetchHeadersValidationError, getNodeDefinition, getScopeAutocompleteSuggestions, getSystemAutocompleteTree, hasScopeTemplate, hasTemplateExpression, isClockNodeActive, isClockScheduleActive, isClockSessionAborted, isDayjsValue, isFalseSignal, isStorageReadConfigured, isStorageSetConfigured, isTrueSignal, isViewEventType, isWholeScopeExpression, jsonNodeDefinition, latestTraceOutputsByNode, lifecycleNodeDefinition, lintJsonString, listBrowserStorageKeys, looksLikeJsonText, nodeDefinitionRegistry, normalizeApiCollectionUrlKey, normalizeAppNameSpace, normalizeClockConfig, normalizeFetchRequestConfig, normalizeStorageConfig, normalizeViewEventConfig, parseApiCollectionJson, parseFetchHeadersJson, parseJsonConfig, parseJsonText, parseScopeAutocomplete, parseSwaggerDocument, preserveTemplateTokensInEncode, registerDefaultBehaviors, renderJsonWithErrorHighlights, resolveBlueprintCallStack, resolveFetchBody, resolveFetchHeaders, resolveFetchIncomingScope, resolveFetchRequestUrl, resolveFetchScopeAutocompleteRoot, resolveStorageKey, resolveStorageWriteValue, scheduleClockOutputs, serializeStorageValue, serializeTraceValue, setBlueprintDslLocale, snapshotDomEvent, snapshotViewEventNode, startClockSchedule, stopAllClockSchedules, stopClockSchedule, storageNodeDefinition, stringifyScopeValue, subscribeActiveClockNodes, toApiCollectionSyncResult, uniqueStorageKinds, validateApiCollectionDocument, validateClockScheduleConfig, validateFetchJsonText, validateJsonString, validateJsonStringAllowingScope, validateLogicSourceCode, viewBindNodeDefinition, viewEventNodeDefinition };
|
|
4217
4362
|
//# sourceMappingURL=index.js.map
|
|
4218
4363
|
//# sourceMappingURL=index.js.map
|