@botpress/cli 5.0.0 → 5.0.2
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/.turbo/turbo-build.log +11 -11
- package/dist/command-implementations/lint-command.js +6 -3
- package/dist/command-implementations/lint-command.js.map +2 -2
- package/dist/linter/base-linter.d.ts +1 -1
- package/dist/linter/base-linter.js +23 -2
- package/dist/linter/base-linter.js.map +2 -2
- package/dist/linter/bot-linter.d.ts +2 -1
- package/dist/linter/bot-linter.js +2 -2
- package/dist/linter/bot-linter.js.map +2 -2
- package/dist/linter/integration-linter.d.ts +2 -1
- package/dist/linter/integration-linter.js +2 -2
- package/dist/linter/integration-linter.js.map +2 -2
- package/dist/linter/interface-linter.d.ts +2 -1
- package/dist/linter/interface-linter.js +2 -2
- package/dist/linter/interface-linter.js.map +2 -2
- package/dist/linter/ruleset-tests/bot.ruleset.test.js +322 -0
- package/dist/linter/ruleset-tests/bot.ruleset.test.js.map +2 -2
- package/dist/linter/ruleset-tests/integration.ruleset.test.js +713 -0
- package/dist/linter/ruleset-tests/integration.ruleset.test.js.map +2 -2
- package/dist/linter/ruleset-tests/interface.ruleset.test.js +502 -0
- package/dist/linter/ruleset-tests/interface.ruleset.test.js.map +2 -2
- package/dist/linter/rulesets/bot.ruleset.d.ts +12 -36
- package/dist/linter/rulesets/bot.ruleset.js +24 -6
- package/dist/linter/rulesets/bot.ruleset.js.map +2 -2
- package/dist/linter/rulesets/integration.ruleset.d.ts +27 -81
- package/dist/linter/rulesets/integration.ruleset.js +48 -16
- package/dist/linter/rulesets/integration.ruleset.js.map +2 -2
- package/dist/linter/rulesets/interface.ruleset.d.ts +10 -30
- package/dist/linter/rulesets/interface.ruleset.js +32 -8
- package/dist/linter/rulesets/interface.ruleset.js.map +2 -2
- package/dist/linter/spectral-functions.d.ts +25 -5
- package/dist/linter/spectral-functions.js +107 -6
- package/dist/linter/spectral-functions.js.map +2 -2
- package/dist/utils/file-watcher.d.ts +1 -1
- package/dist/utils/file-watcher.js +2 -2
- package/dist/utils/file-watcher.js.map +3 -3
- package/package.json +4 -2
- package/templates/empty-bot/package.json +1 -1
- package/templates/empty-integration/package.json +1 -1
- package/templates/empty-plugin/package.json +1 -1
- package/templates/hello-world/package.json +1 -1
- package/templates/webhook-message/package.json +1 -1
|
@@ -44,9 +44,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
44
44
|
given: string;
|
|
45
45
|
then: {
|
|
46
46
|
field: string;
|
|
47
|
-
function: (
|
|
48
|
-
message: string;
|
|
49
|
-
}[];
|
|
47
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
50
48
|
}[];
|
|
51
49
|
};
|
|
52
50
|
'actions-must-have-a-description': {
|
|
@@ -56,9 +54,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
56
54
|
given: string;
|
|
57
55
|
then: {
|
|
58
56
|
field: string;
|
|
59
|
-
function: (
|
|
60
|
-
message: string;
|
|
61
|
-
}[];
|
|
57
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
62
58
|
}[];
|
|
63
59
|
};
|
|
64
60
|
'action-inputparams-should-have-a-title': {
|
|
@@ -68,9 +64,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
68
64
|
given: string;
|
|
69
65
|
then: {
|
|
70
66
|
field: string;
|
|
71
|
-
function: (
|
|
72
|
-
message: string;
|
|
73
|
-
}[];
|
|
67
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
74
68
|
}[];
|
|
75
69
|
};
|
|
76
70
|
'action-inputparams-must-have-a-description': {
|
|
@@ -80,9 +74,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
80
74
|
given: string;
|
|
81
75
|
then: {
|
|
82
76
|
field: string;
|
|
83
|
-
function: (
|
|
84
|
-
message: string;
|
|
85
|
-
}[];
|
|
77
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
86
78
|
}[];
|
|
87
79
|
};
|
|
88
80
|
'action-outputparams-should-have-a-title': {
|
|
@@ -92,9 +84,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
92
84
|
given: string;
|
|
93
85
|
then: {
|
|
94
86
|
field: string;
|
|
95
|
-
function: (
|
|
96
|
-
message: string;
|
|
97
|
-
}[];
|
|
87
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
98
88
|
}[];
|
|
99
89
|
};
|
|
100
90
|
'action-outputparams-must-have-a-description': {
|
|
@@ -104,9 +94,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
104
94
|
given: string;
|
|
105
95
|
then: {
|
|
106
96
|
field: string;
|
|
107
|
-
function: (
|
|
108
|
-
message: string;
|
|
109
|
-
}[];
|
|
97
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
110
98
|
}[];
|
|
111
99
|
};
|
|
112
100
|
'event-outputparams-should-have-title': {
|
|
@@ -116,9 +104,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
116
104
|
given: string;
|
|
117
105
|
then: {
|
|
118
106
|
field: string;
|
|
119
|
-
function: (
|
|
120
|
-
message: string;
|
|
121
|
-
}[];
|
|
107
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
122
108
|
}[];
|
|
123
109
|
};
|
|
124
110
|
'event-outputparams-must-have-description': {
|
|
@@ -128,9 +114,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
128
114
|
given: string;
|
|
129
115
|
then: {
|
|
130
116
|
field: string;
|
|
131
|
-
function: (
|
|
132
|
-
message: string;
|
|
133
|
-
}[];
|
|
117
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
134
118
|
}[];
|
|
135
119
|
};
|
|
136
120
|
'events-must-have-a-title': {
|
|
@@ -140,9 +124,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
140
124
|
given: string;
|
|
141
125
|
then: {
|
|
142
126
|
field: string;
|
|
143
|
-
function: (
|
|
144
|
-
message: string;
|
|
145
|
-
}[];
|
|
127
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
146
128
|
}[];
|
|
147
129
|
};
|
|
148
130
|
'events-must-have-a-description': {
|
|
@@ -152,9 +134,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
152
134
|
given: string;
|
|
153
135
|
then: {
|
|
154
136
|
field: string;
|
|
155
|
-
function: (
|
|
156
|
-
message: string;
|
|
157
|
-
}[];
|
|
137
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
158
138
|
}[];
|
|
159
139
|
};
|
|
160
140
|
'consider-migrating-to-configurations': {
|
|
@@ -173,9 +153,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
173
153
|
given: string;
|
|
174
154
|
then: {
|
|
175
155
|
field: string;
|
|
176
|
-
function: (
|
|
177
|
-
message: string;
|
|
178
|
-
}[];
|
|
156
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
179
157
|
}[];
|
|
180
158
|
};
|
|
181
159
|
'configuration-fields-must-have-a-description': {
|
|
@@ -185,9 +163,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
185
163
|
given: string;
|
|
186
164
|
then: {
|
|
187
165
|
field: string;
|
|
188
|
-
function: (
|
|
189
|
-
message: string;
|
|
190
|
-
}[];
|
|
166
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
191
167
|
}[];
|
|
192
168
|
};
|
|
193
169
|
'multiple-configurations-must-have-a-title': {
|
|
@@ -197,9 +173,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
197
173
|
given: string;
|
|
198
174
|
then: {
|
|
199
175
|
field: string;
|
|
200
|
-
function: (
|
|
201
|
-
message: string;
|
|
202
|
-
}[];
|
|
176
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
203
177
|
}[];
|
|
204
178
|
};
|
|
205
179
|
'multiple-configurations-must-have-a-description': {
|
|
@@ -209,9 +183,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
209
183
|
given: string;
|
|
210
184
|
then: {
|
|
211
185
|
field: string;
|
|
212
|
-
function: (
|
|
213
|
-
message: string;
|
|
214
|
-
}[];
|
|
186
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
215
187
|
}[];
|
|
216
188
|
};
|
|
217
189
|
'multipes-configurations-fields-must-have-a-title': {
|
|
@@ -221,9 +193,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
221
193
|
given: string;
|
|
222
194
|
then: {
|
|
223
195
|
field: string;
|
|
224
|
-
function: (
|
|
225
|
-
message: string;
|
|
226
|
-
}[];
|
|
196
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
227
197
|
}[];
|
|
228
198
|
};
|
|
229
199
|
'multipes-configurations-fields-must-have-a-description': {
|
|
@@ -233,9 +203,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
233
203
|
given: string;
|
|
234
204
|
then: {
|
|
235
205
|
field: string;
|
|
236
|
-
function: (
|
|
237
|
-
message: string;
|
|
238
|
-
}[];
|
|
206
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
239
207
|
}[];
|
|
240
208
|
};
|
|
241
209
|
'user-tags-should-have-a-title': {
|
|
@@ -245,9 +213,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
245
213
|
given: string;
|
|
246
214
|
then: {
|
|
247
215
|
field: string;
|
|
248
|
-
function: (
|
|
249
|
-
message: string;
|
|
250
|
-
}[];
|
|
216
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
251
217
|
}[];
|
|
252
218
|
};
|
|
253
219
|
'user-tags-must-have-a-description': {
|
|
@@ -257,9 +223,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
257
223
|
given: string;
|
|
258
224
|
then: {
|
|
259
225
|
field: string;
|
|
260
|
-
function: (
|
|
261
|
-
message: string;
|
|
262
|
-
}[];
|
|
226
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
263
227
|
}[];
|
|
264
228
|
};
|
|
265
229
|
'channels-should-have-a-title': {
|
|
@@ -269,9 +233,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
269
233
|
given: string;
|
|
270
234
|
then: {
|
|
271
235
|
field: string;
|
|
272
|
-
function: (
|
|
273
|
-
message: string;
|
|
274
|
-
}[];
|
|
236
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
275
237
|
}[];
|
|
276
238
|
};
|
|
277
239
|
'channels-must-have-a-description': {
|
|
@@ -281,9 +243,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
281
243
|
given: string;
|
|
282
244
|
then: {
|
|
283
245
|
field: string;
|
|
284
|
-
function: (
|
|
285
|
-
message: string;
|
|
286
|
-
}[];
|
|
246
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
287
247
|
}[];
|
|
288
248
|
};
|
|
289
249
|
'channels-conversation-tags-should-have-a-title': {
|
|
@@ -293,9 +253,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
293
253
|
given: string;
|
|
294
254
|
then: {
|
|
295
255
|
field: string;
|
|
296
|
-
function: (
|
|
297
|
-
message: string;
|
|
298
|
-
}[];
|
|
256
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
299
257
|
}[];
|
|
300
258
|
};
|
|
301
259
|
'channels-conversation-tags-must-have-a-description': {
|
|
@@ -305,9 +263,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
305
263
|
given: string;
|
|
306
264
|
then: {
|
|
307
265
|
field: string;
|
|
308
|
-
function: (
|
|
309
|
-
message: string;
|
|
310
|
-
}[];
|
|
266
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
311
267
|
}[];
|
|
312
268
|
};
|
|
313
269
|
'channels-message-tags-should-have-a-title': {
|
|
@@ -317,9 +273,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
317
273
|
given: string;
|
|
318
274
|
then: {
|
|
319
275
|
field: string;
|
|
320
|
-
function: (
|
|
321
|
-
message: string;
|
|
322
|
-
}[];
|
|
276
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
323
277
|
}[];
|
|
324
278
|
};
|
|
325
279
|
'channels-message-tags-must-have-a-description': {
|
|
@@ -329,9 +283,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
329
283
|
given: string;
|
|
330
284
|
then: {
|
|
331
285
|
field: string;
|
|
332
|
-
function: (
|
|
333
|
-
message: string;
|
|
334
|
-
}[];
|
|
286
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
335
287
|
}[];
|
|
336
288
|
};
|
|
337
289
|
'legacy-zui-title-should-be-removed': {
|
|
@@ -357,9 +309,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
357
309
|
given: string;
|
|
358
310
|
then: {
|
|
359
311
|
field: string;
|
|
360
|
-
function: (
|
|
361
|
-
message: string;
|
|
362
|
-
}[];
|
|
312
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
363
313
|
}[];
|
|
364
314
|
};
|
|
365
315
|
'state-fields-must-have-description': {
|
|
@@ -369,9 +319,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
369
319
|
given: string;
|
|
370
320
|
then: {
|
|
371
321
|
field: string;
|
|
372
|
-
function: (
|
|
373
|
-
message: string;
|
|
374
|
-
}[];
|
|
322
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
375
323
|
}[];
|
|
376
324
|
};
|
|
377
325
|
'secrets-must-have-a-description': {
|
|
@@ -381,9 +329,7 @@ export declare const INTEGRATION_RULESET: {
|
|
|
381
329
|
given: string;
|
|
382
330
|
then: {
|
|
383
331
|
field: string;
|
|
384
|
-
function: (
|
|
385
|
-
message: string;
|
|
386
|
-
}[];
|
|
332
|
+
function: import("@stoplight/spectral-core").RulesetFunction<any, any> | import("@stoplight/spectral-core").RulesetFunctionWithValidator<any, any>;
|
|
387
333
|
}[];
|
|
388
334
|
};
|
|
389
335
|
};
|
|
@@ -72,7 +72,10 @@ const INTEGRATION_RULESET = {
|
|
|
72
72
|
then: [
|
|
73
73
|
{
|
|
74
74
|
field: "x-zui.title",
|
|
75
|
-
function: (0, import_spectral_functions2.truthyWithMessage)(
|
|
75
|
+
function: (0, import_spectral_functions2.truthyWithMessage)({
|
|
76
|
+
failMsgMapper: ({ path, isFallback }) => `input parameter "${path.at(isFallback ? -5 : -3)}" of action "${path[1]}"`,
|
|
77
|
+
fallbackExtractor: import_spectral_functions2.titleFallbackExtractor
|
|
78
|
+
})
|
|
76
79
|
}
|
|
77
80
|
]
|
|
78
81
|
},
|
|
@@ -84,7 +87,10 @@ const INTEGRATION_RULESET = {
|
|
|
84
87
|
then: [
|
|
85
88
|
{
|
|
86
89
|
field: "description",
|
|
87
|
-
function: (0, import_spectral_functions2.truthyWithMessage)(
|
|
90
|
+
function: (0, import_spectral_functions2.truthyWithMessage)({
|
|
91
|
+
failMsgMapper: ({ path, isFallback }) => `input parameter "${path.at(isFallback ? -4 : -2)}" of action "${path[1]}"`,
|
|
92
|
+
fallbackExtractor: import_spectral_functions2.descriptionFallbackExtractor
|
|
93
|
+
})
|
|
88
94
|
}
|
|
89
95
|
]
|
|
90
96
|
},
|
|
@@ -96,7 +102,10 @@ const INTEGRATION_RULESET = {
|
|
|
96
102
|
then: [
|
|
97
103
|
{
|
|
98
104
|
field: "title",
|
|
99
|
-
function: (0, import_spectral_functions2.truthyWithMessage)(
|
|
105
|
+
function: (0, import_spectral_functions2.truthyWithMessage)({
|
|
106
|
+
failMsgMapper: ({ path, isFallback }) => `output parameter "${path.at(isFallback ? -5 : -3)}" of action "${path[1]}"`,
|
|
107
|
+
fallbackExtractor: import_spectral_functions2.titleFallbackExtractor
|
|
108
|
+
})
|
|
100
109
|
}
|
|
101
110
|
]
|
|
102
111
|
},
|
|
@@ -108,7 +117,10 @@ const INTEGRATION_RULESET = {
|
|
|
108
117
|
then: [
|
|
109
118
|
{
|
|
110
119
|
field: "description",
|
|
111
|
-
function: (0, import_spectral_functions2.truthyWithMessage)(
|
|
120
|
+
function: (0, import_spectral_functions2.truthyWithMessage)({
|
|
121
|
+
failMsgMapper: ({ path, isFallback }) => `output parameter "${path.at(isFallback ? -4 : -2)}" of action "${path[1]}"`,
|
|
122
|
+
fallbackExtractor: import_spectral_functions2.descriptionFallbackExtractor
|
|
123
|
+
})
|
|
112
124
|
}
|
|
113
125
|
]
|
|
114
126
|
},
|
|
@@ -120,7 +132,10 @@ const INTEGRATION_RULESET = {
|
|
|
120
132
|
then: [
|
|
121
133
|
{
|
|
122
134
|
field: "x-zui.title",
|
|
123
|
-
function: (0, import_spectral_functions2.truthyWithMessage)(
|
|
135
|
+
function: (0, import_spectral_functions2.truthyWithMessage)({
|
|
136
|
+
failMsgMapper: ({ path, isFallback }) => `output parameter "${path.at(isFallback ? -5 : -3)}" of event "${path[1]}"`,
|
|
137
|
+
fallbackExtractor: import_spectral_functions2.titleFallbackExtractor
|
|
138
|
+
})
|
|
124
139
|
}
|
|
125
140
|
]
|
|
126
141
|
},
|
|
@@ -132,7 +147,10 @@ const INTEGRATION_RULESET = {
|
|
|
132
147
|
then: [
|
|
133
148
|
{
|
|
134
149
|
field: "description",
|
|
135
|
-
function: (0, import_spectral_functions2.truthyWithMessage)(
|
|
150
|
+
function: (0, import_spectral_functions2.truthyWithMessage)({
|
|
151
|
+
failMsgMapper: ({ path, isFallback }) => `output parameter "${path.at(isFallback ? -4 : -2)}" of event "${path[1]}"`,
|
|
152
|
+
fallbackExtractor: import_spectral_functions2.descriptionFallbackExtractor
|
|
153
|
+
})
|
|
136
154
|
}
|
|
137
155
|
]
|
|
138
156
|
},
|
|
@@ -167,7 +185,10 @@ const INTEGRATION_RULESET = {
|
|
|
167
185
|
then: [
|
|
168
186
|
{
|
|
169
187
|
field: "title",
|
|
170
|
-
function: (0, import_spectral_functions2.truthyWithMessage)(
|
|
188
|
+
function: (0, import_spectral_functions2.truthyWithMessage)({
|
|
189
|
+
failMsgMapper: ({ path, isFallback }) => `configuration parameter "${path.at(isFallback ? -5 : -3)}"`,
|
|
190
|
+
fallbackExtractor: import_spectral_functions2.titleFallbackExtractor
|
|
191
|
+
})
|
|
171
192
|
}
|
|
172
193
|
]
|
|
173
194
|
},
|
|
@@ -179,7 +200,10 @@ const INTEGRATION_RULESET = {
|
|
|
179
200
|
then: [
|
|
180
201
|
{
|
|
181
202
|
field: "description",
|
|
182
|
-
function: (0, import_spectral_functions2.truthyWithMessage)(
|
|
203
|
+
function: (0, import_spectral_functions2.truthyWithMessage)({
|
|
204
|
+
failMsgMapper: ({ path, isFallback }) => `configuration parameter "${path.at(isFallback ? -4 : -2)}"`,
|
|
205
|
+
fallbackExtractor: import_spectral_functions2.descriptionFallbackExtractor
|
|
206
|
+
})
|
|
183
207
|
}
|
|
184
208
|
]
|
|
185
209
|
},
|
|
@@ -205,9 +229,10 @@ const INTEGRATION_RULESET = {
|
|
|
205
229
|
then: [
|
|
206
230
|
{
|
|
207
231
|
field: "title",
|
|
208
|
-
function: (0, import_spectral_functions2.truthyWithMessage)(
|
|
209
|
-
({ path }) => `configuration field "${path.at(-3)}" of configuration "${path[1]}"
|
|
210
|
-
|
|
232
|
+
function: (0, import_spectral_functions2.truthyWithMessage)({
|
|
233
|
+
failMsgMapper: ({ path, isFallback }) => `configuration field "${path.at(isFallback ? -5 : -3)}" of configuration "${path[1]}"`,
|
|
234
|
+
fallbackExtractor: import_spectral_functions2.titleFallbackExtractor
|
|
235
|
+
})
|
|
211
236
|
}
|
|
212
237
|
]
|
|
213
238
|
},
|
|
@@ -219,9 +244,10 @@ const INTEGRATION_RULESET = {
|
|
|
219
244
|
then: [
|
|
220
245
|
{
|
|
221
246
|
field: "description",
|
|
222
|
-
function: (0, import_spectral_functions2.truthyWithMessage)(
|
|
223
|
-
({ path }) => `configuration field "${path.at(-2)}" of configuration "${path[1]}"
|
|
224
|
-
|
|
247
|
+
function: (0, import_spectral_functions2.truthyWithMessage)({
|
|
248
|
+
failMsgMapper: ({ path, isFallback }) => `configuration field "${path.at(isFallback ? -4 : -2)}" of configuration "${path[1]}"`,
|
|
249
|
+
fallbackExtractor: import_spectral_functions2.descriptionFallbackExtractor
|
|
250
|
+
})
|
|
225
251
|
}
|
|
226
252
|
]
|
|
227
253
|
},
|
|
@@ -341,7 +367,10 @@ const INTEGRATION_RULESET = {
|
|
|
341
367
|
then: [
|
|
342
368
|
{
|
|
343
369
|
field: "x-zui.title",
|
|
344
|
-
function: (0, import_spectral_functions2.truthyWithMessage)(
|
|
370
|
+
function: (0, import_spectral_functions2.truthyWithMessage)({
|
|
371
|
+
failMsgMapper: ({ path, isFallback }) => `field "${path.at(isFallback ? -5 : -3)}" of state "${path[1]}"`,
|
|
372
|
+
fallbackExtractor: import_spectral_functions2.titleFallbackExtractor
|
|
373
|
+
})
|
|
345
374
|
}
|
|
346
375
|
]
|
|
347
376
|
},
|
|
@@ -353,7 +382,10 @@ const INTEGRATION_RULESET = {
|
|
|
353
382
|
then: [
|
|
354
383
|
{
|
|
355
384
|
field: "description",
|
|
356
|
-
function: (0, import_spectral_functions2.truthyWithMessage)(
|
|
385
|
+
function: (0, import_spectral_functions2.truthyWithMessage)({
|
|
386
|
+
failMsgMapper: ({ path, isFallback }) => `field "${path.at(isFallback ? -4 : -2)}" of state "${path[1]}"`,
|
|
387
|
+
fallbackExtractor: import_spectral_functions2.descriptionFallbackExtractor
|
|
388
|
+
})
|
|
357
389
|
}
|
|
358
390
|
]
|
|
359
391
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/linter/rulesets/integration.ruleset.ts"],
|
|
4
|
-
"sourcesContent": ["import { type RulesetDefinition } from '@stoplight/spectral-core'\nimport { falsy, truthy } from '@stoplight/spectral-functions'\nimport { truthyWithMessage } from '../spectral-functions'\n\nexport const INTEGRATION_RULESET = {\n extends: [],\n rules: {\n 'integration-title-must-be-present': {\n description: 'The integration MUST have a non-empty title',\n severity: 'error',\n given: '$',\n then: [{ field: 'title', function: truthy }],\n },\n 'integration-description-must-be-present': {\n description: 'The integration MUST have a non-empty description',\n severity: 'error',\n given: '$',\n then: [{ field: 'description', function: truthy }],\n },\n 'integration-must-have-an-icon': {\n description: 'The integration MUST have an icon',\n severity: 'error',\n given: '$',\n then: [{ field: 'icon', function: truthy }],\n },\n 'integration-must-have-a-readme-file': {\n description: 'The integration MUST have a readme file',\n severity: 'error',\n given: '$',\n then: [{ field: 'readme', function: truthy }],\n },\n 'actions-should-have-a-title': {\n description: 'All actions SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD have a non-empty title',\n severity: 'warn',\n given: '$.actions[*]',\n then: [{ field: 'title', function: truthyWithMessage(({ path }) => `action \"${path[1]}\"`) }],\n },\n 'actions-must-have-a-description': {\n description: 'All actions MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.actions[*]',\n then: [{ field: 'description', function: truthyWithMessage(({ path }) => `action \"${path[1]}\"`) }],\n },\n 'action-inputparams-should-have-a-title': {\n description: 'All action input parameters SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema',\n severity: 'warn',\n given: '$.actions[*].input..schema.properties[*]',\n then: [\n {\n field: 'x-zui.title',\n function: truthyWithMessage(({ path }) => `input parameter \"${path.at(-3)}\" of action \"${path[1]}\"`),\n },\n ],\n },\n 'action-inputparams-must-have-a-description': {\n description: 'All action input parameters MUST have a description',\n message: '{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.actions[*].input..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `input parameter \"${path.at(-2)}\" of action \"${path[1]}\"`),\n },\n ],\n },\n 'action-outputparams-should-have-a-title': {\n description: 'All action output parameters SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema',\n severity: 'warn',\n given: '$.actions[*].output..schema.properties[*].x-zui',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `output parameter \"${path.at(-3)}\" of action \"${path[1]}\"`),\n },\n ],\n },\n 'action-outputparams-must-have-a-description': {\n description: 'All action output parameters MUST have a description',\n message: '{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.actions[*].output..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `output parameter \"${path.at(-2)}\" of action \"${path[1]}\"`),\n },\n ],\n },\n 'event-outputparams-should-have-title': {\n description: 'All event output parameters SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema',\n severity: 'warn',\n given: '$.events[*]..schema.properties[*]',\n then: [\n {\n field: 'x-zui.title',\n function: truthyWithMessage(({ path }) => `output parameter \"${path.at(-3)}\" of event \"${path[1]}\"`),\n },\n ],\n },\n 'event-outputparams-must-have-description': {\n description: 'All event output parameters MUST have a description',\n message:\n '{{description}}: {{error}} SHOULD provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.events[*]..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `output parameter \"${path.at(-2)}\" of event \"${path[1]}\"`),\n },\n ],\n },\n 'events-must-have-a-title': {\n description: 'All events MUST have a title',\n message: '{{description}}: {{error}} MUST be a non-empty string',\n severity: 'error',\n given: '$.events[*]',\n then: [{ field: 'title', function: truthyWithMessage(({ path }) => `event \"${path[1]}\"`) }],\n },\n 'events-must-have-a-description': {\n description: 'All events MUST have a description',\n message: '{{description}}: {{error}} MUST be a non-empty string',\n severity: 'error',\n given: '$.events[*]',\n then: [{ field: 'description', function: truthyWithMessage(({ path }) => `event \"${path[1]}\"`) }],\n },\n 'consider-migrating-to-configurations': {\n description:\n 'Consider migrating to the new multiple configuration format: you MAY move your configuration from \"configuration\" to \"configurations\" and remove the \"configuration\" property',\n severity: 'off',\n given: '$',\n then: [\n { field: 'configuration', function: falsy },\n { field: 'configurations', function: truthy },\n ],\n },\n 'configuration-fields-must-have-a-title': {\n description: 'All configuration fields MUST have a title',\n message: '{{description}}: {{error}} MUST provide a non-empty title by using .title() in its Zod schema',\n severity: 'error',\n given: '$.configuration..schema.properties[*].x-zui',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `configuration parameter \"${path.at(-3)}\"`),\n },\n ],\n },\n 'configuration-fields-must-have-a-description': {\n description: 'All configuration fields MUST have a description',\n message: '{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.configuration..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `configuration parameter \"${path.at(-2)}\"`),\n },\n ],\n },\n 'multiple-configurations-must-have-a-title': {\n description: 'Multiple configuration definitions MUST have a title',\n message: '{{description}}: {{error}} MUST have a title',\n severity: 'error',\n given: '$.configurations[*]',\n then: [{ field: 'title', function: truthyWithMessage(({ path }) => `configuration \"${path[1]}\"`) }],\n },\n 'multiple-configurations-must-have-a-description': {\n description: 'Multiple configuration definitions MUST have a description',\n message: '{{description}}: {{error}} MUST have a description',\n severity: 'error',\n given: '$.configurations[*]',\n then: [{ field: 'description', function: truthyWithMessage(({ path }) => `configuration \"${path[1]}\"`) }],\n },\n 'multipes-configurations-fields-must-have-a-title': {\n description: 'All configuration fields in multiple configurations MUST have a title',\n message: '{{description}}: {{error}} MUST provide a non-empty title by using .title() in its Zod schema',\n severity: 'error',\n given: '$.configurations[*]..schema.properties[*].x-zui',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(\n ({ path }) => `configuration field \"${path.at(-3)}\" of configuration \"${path[1]}\"`\n ),\n },\n ],\n },\n 'multipes-configurations-fields-must-have-a-description': {\n description: 'All configuration fields in multiple configurations MUST have a description',\n message: '{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.configurations[*]..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(\n ({ path }) => `configuration field \"${path.at(-2)}\" of configuration \"${path[1]}\"`\n ),\n },\n ],\n },\n 'user-tags-should-have-a-title': {\n description: 'All user tags SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD have a non-empty title',\n severity: 'warn',\n given: '$.user.tags[*]',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `user tag \"${path[2]}\"`),\n },\n ],\n },\n 'user-tags-must-have-a-description': {\n description: 'All user tags MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.user.tags[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `user tag \"${path[2]}\"`),\n },\n ],\n },\n 'channels-should-have-a-title': {\n description: 'All channels SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD have a non-empty title',\n severity: 'warn',\n given: '$.channels[*]',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `channel \"${path[1]}\"`),\n },\n ],\n },\n 'channels-must-have-a-description': {\n description: 'All channels MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.channels[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `channel \"${path[1]}\"`),\n },\n ],\n },\n 'channels-conversation-tags-should-have-a-title': {\n description: 'All conversation tags SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD have a non-empty title',\n severity: 'warn',\n given: '$.channels[*].conversation.tags[*]',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `conversation tag \"${path.at(-2)}\" of channel \"${path[1]}\"`),\n },\n ],\n },\n 'channels-conversation-tags-must-have-a-description': {\n description: 'All conversation tags MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.channels[*].conversation.tags[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `conversation tag \"${path.at(-2)}\" of channel \"${path[1]}\"`),\n },\n ],\n },\n 'channels-message-tags-should-have-a-title': {\n description: 'All message tags SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD have a non-empty title',\n severity: 'warn',\n given: '$.channels[*].message.tags[*]',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `message tag \"${path.at(-2)}\" of channel \"${path[1]}\"`),\n },\n ],\n },\n 'channels-message-tags-must-have-a-description': {\n description: 'All message tags MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.channels[*].message.tags[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `message tag \"${path.at(-2)}\" of channel \"${path[1]}\"`),\n },\n ],\n },\n 'legacy-zui-title-should-be-removed': {\n description:\n 'Legacy ZUI title fields (ui.title) SHOULD be removed. Please use .title() in your Zod schemas instead',\n severity: 'error',\n given: '$..ui[*].title',\n then: [{ function: falsy }],\n },\n 'legacy-zui-examples-should-be-removed': {\n description: 'Legacy ZUI examples fields (ui.examples) SHOULD be removed. There are currently no alternatives',\n severity: 'hint',\n given: '$..ui[*].examples',\n then: [{ function: falsy }],\n },\n 'state-fields-should-have-title': {\n description: 'All state fields SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema',\n severity: 'warn',\n given: '$.states[*]..schema.properties[*]',\n then: [\n {\n field: 'x-zui.title',\n function: truthyWithMessage(({ path }) => `field \"${path.at(-3)}\" of state \"${path[1]}\"`),\n },\n ],\n },\n 'state-fields-must-have-description': {\n description: 'All state fields MUST have a description',\n message:\n '{{description}}: {{error}} SHOULD provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.states[*]..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `field \"${path.at(-2)}\" of state \"${path[1]}\"`),\n },\n ],\n },\n 'secrets-must-have-a-description': {\n description: 'All secrets MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.secrets[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `secret \"${path[1]}\"`),\n },\n ],\n },\n },\n} satisfies RulesetDefinition\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,gCAA8B;AAC9B,IAAAA,
|
|
4
|
+
"sourcesContent": ["import { type RulesetDefinition } from '@stoplight/spectral-core'\nimport { falsy, truthy } from '@stoplight/spectral-functions'\nimport { descriptionFallbackExtractor, titleFallbackExtractor, truthyWithMessage } from '../spectral-functions'\n\nexport const INTEGRATION_RULESET = {\n extends: [],\n rules: {\n 'integration-title-must-be-present': {\n description: 'The integration MUST have a non-empty title',\n severity: 'error',\n given: '$',\n then: [{ field: 'title', function: truthy }],\n },\n 'integration-description-must-be-present': {\n description: 'The integration MUST have a non-empty description',\n severity: 'error',\n given: '$',\n then: [{ field: 'description', function: truthy }],\n },\n 'integration-must-have-an-icon': {\n description: 'The integration MUST have an icon',\n severity: 'error',\n given: '$',\n then: [{ field: 'icon', function: truthy }],\n },\n 'integration-must-have-a-readme-file': {\n description: 'The integration MUST have a readme file',\n severity: 'error',\n given: '$',\n then: [{ field: 'readme', function: truthy }],\n },\n 'actions-should-have-a-title': {\n description: 'All actions SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD have a non-empty title',\n severity: 'warn',\n given: '$.actions[*]',\n then: [{ field: 'title', function: truthyWithMessage(({ path }) => `action \"${path[1]}\"`) }],\n },\n 'actions-must-have-a-description': {\n description: 'All actions MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.actions[*]',\n then: [{ field: 'description', function: truthyWithMessage(({ path }) => `action \"${path[1]}\"`) }],\n },\n 'action-inputparams-should-have-a-title': {\n description: 'All action input parameters SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema',\n severity: 'warn',\n given: '$.actions[*].input..schema.properties[*]',\n then: [\n {\n field: 'x-zui.title',\n function: truthyWithMessage({\n failMsgMapper: ({ path, isFallback }) =>\n `input parameter \"${path.at(isFallback ? -5 : -3)}\" of action \"${path[1]}\"`,\n fallbackExtractor: titleFallbackExtractor,\n }),\n },\n ],\n },\n 'action-inputparams-must-have-a-description': {\n description: 'All action input parameters MUST have a description',\n message: '{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.actions[*].input..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage({\n failMsgMapper: ({ path, isFallback }) =>\n `input parameter \"${path.at(isFallback ? -4 : -2)}\" of action \"${path[1]}\"`,\n fallbackExtractor: descriptionFallbackExtractor,\n }),\n },\n ],\n },\n 'action-outputparams-should-have-a-title': {\n description: 'All action output parameters SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema',\n severity: 'warn',\n given: '$.actions[*].output..schema.properties[*].x-zui',\n then: [\n {\n field: 'title',\n function: truthyWithMessage({\n failMsgMapper: ({ path, isFallback }) =>\n `output parameter \"${path.at(isFallback ? -5 : -3)}\" of action \"${path[1]}\"`,\n fallbackExtractor: titleFallbackExtractor,\n }),\n },\n ],\n },\n 'action-outputparams-must-have-a-description': {\n description: 'All action output parameters MUST have a description',\n message: '{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.actions[*].output..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage({\n failMsgMapper: ({ path, isFallback }) =>\n `output parameter \"${path.at(isFallback ? -4 : -2)}\" of action \"${path[1]}\"`,\n fallbackExtractor: descriptionFallbackExtractor,\n }),\n },\n ],\n },\n 'event-outputparams-should-have-title': {\n description: 'All event output parameters SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema',\n severity: 'warn',\n given: '$.events[*]..schema.properties[*]',\n then: [\n {\n field: 'x-zui.title',\n function: truthyWithMessage({\n failMsgMapper: ({ path, isFallback }) =>\n `output parameter \"${path.at(isFallback ? -5 : -3)}\" of event \"${path[1]}\"`,\n fallbackExtractor: titleFallbackExtractor,\n }),\n },\n ],\n },\n 'event-outputparams-must-have-description': {\n description: 'All event output parameters MUST have a description',\n message:\n '{{description}}: {{error}} SHOULD provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.events[*]..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage({\n failMsgMapper: ({ path, isFallback }) =>\n `output parameter \"${path.at(isFallback ? -4 : -2)}\" of event \"${path[1]}\"`,\n fallbackExtractor: descriptionFallbackExtractor,\n }),\n },\n ],\n },\n 'events-must-have-a-title': {\n description: 'All events MUST have a title',\n message: '{{description}}: {{error}} MUST be a non-empty string',\n severity: 'error',\n given: '$.events[*]',\n then: [{ field: 'title', function: truthyWithMessage(({ path }) => `event \"${path[1]}\"`) }],\n },\n 'events-must-have-a-description': {\n description: 'All events MUST have a description',\n message: '{{description}}: {{error}} MUST be a non-empty string',\n severity: 'error',\n given: '$.events[*]',\n then: [{ field: 'description', function: truthyWithMessage(({ path }) => `event \"${path[1]}\"`) }],\n },\n 'consider-migrating-to-configurations': {\n description:\n 'Consider migrating to the new multiple configuration format: you MAY move your configuration from \"configuration\" to \"configurations\" and remove the \"configuration\" property',\n severity: 'off',\n given: '$',\n then: [\n { field: 'configuration', function: falsy },\n { field: 'configurations', function: truthy },\n ],\n },\n 'configuration-fields-must-have-a-title': {\n description: 'All configuration fields MUST have a title',\n message: '{{description}}: {{error}} MUST provide a non-empty title by using .title() in its Zod schema',\n severity: 'error',\n given: '$.configuration..schema.properties[*].x-zui',\n then: [\n {\n field: 'title',\n function: truthyWithMessage({\n failMsgMapper: ({ path, isFallback }) => `configuration parameter \"${path.at(isFallback ? -5 : -3)}\"`,\n fallbackExtractor: titleFallbackExtractor,\n }),\n },\n ],\n },\n 'configuration-fields-must-have-a-description': {\n description: 'All configuration fields MUST have a description',\n message: '{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.configuration..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage({\n failMsgMapper: ({ path, isFallback }) => `configuration parameter \"${path.at(isFallback ? -4 : -2)}\"`,\n fallbackExtractor: descriptionFallbackExtractor,\n }),\n },\n ],\n },\n 'multiple-configurations-must-have-a-title': {\n description: 'Multiple configuration definitions MUST have a title',\n message: '{{description}}: {{error}} MUST have a title',\n severity: 'error',\n given: '$.configurations[*]',\n then: [{ field: 'title', function: truthyWithMessage(({ path }) => `configuration \"${path[1]}\"`) }],\n },\n 'multiple-configurations-must-have-a-description': {\n description: 'Multiple configuration definitions MUST have a description',\n message: '{{description}}: {{error}} MUST have a description',\n severity: 'error',\n given: '$.configurations[*]',\n then: [{ field: 'description', function: truthyWithMessage(({ path }) => `configuration \"${path[1]}\"`) }],\n },\n 'multipes-configurations-fields-must-have-a-title': {\n description: 'All configuration fields in multiple configurations MUST have a title',\n message: '{{description}}: {{error}} MUST provide a non-empty title by using .title() in its Zod schema',\n severity: 'error',\n given: '$.configurations[*]..schema.properties[*].x-zui',\n then: [\n {\n field: 'title',\n function: truthyWithMessage({\n failMsgMapper: ({ path, isFallback }) =>\n `configuration field \"${path.at(isFallback ? -5 : -3)}\" of configuration \"${path[1]}\"`,\n fallbackExtractor: titleFallbackExtractor,\n }),\n },\n ],\n },\n 'multipes-configurations-fields-must-have-a-description': {\n description: 'All configuration fields in multiple configurations MUST have a description',\n message: '{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.configurations[*]..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage({\n failMsgMapper: ({ path, isFallback }) =>\n `configuration field \"${path.at(isFallback ? -4 : -2)}\" of configuration \"${path[1]}\"`,\n fallbackExtractor: descriptionFallbackExtractor,\n }),\n },\n ],\n },\n 'user-tags-should-have-a-title': {\n description: 'All user tags SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD have a non-empty title',\n severity: 'warn',\n given: '$.user.tags[*]',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `user tag \"${path[2]}\"`),\n },\n ],\n },\n 'user-tags-must-have-a-description': {\n description: 'All user tags MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.user.tags[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `user tag \"${path[2]}\"`),\n },\n ],\n },\n 'channels-should-have-a-title': {\n description: 'All channels SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD have a non-empty title',\n severity: 'warn',\n given: '$.channels[*]',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `channel \"${path[1]}\"`),\n },\n ],\n },\n 'channels-must-have-a-description': {\n description: 'All channels MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.channels[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `channel \"${path[1]}\"`),\n },\n ],\n },\n 'channels-conversation-tags-should-have-a-title': {\n description: 'All conversation tags SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD have a non-empty title',\n severity: 'warn',\n given: '$.channels[*].conversation.tags[*]',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `conversation tag \"${path.at(-2)}\" of channel \"${path[1]}\"`),\n },\n ],\n },\n 'channels-conversation-tags-must-have-a-description': {\n description: 'All conversation tags MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.channels[*].conversation.tags[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `conversation tag \"${path.at(-2)}\" of channel \"${path[1]}\"`),\n },\n ],\n },\n 'channels-message-tags-should-have-a-title': {\n description: 'All message tags SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD have a non-empty title',\n severity: 'warn',\n given: '$.channels[*].message.tags[*]',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `message tag \"${path.at(-2)}\" of channel \"${path[1]}\"`),\n },\n ],\n },\n 'channels-message-tags-must-have-a-description': {\n description: 'All message tags MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.channels[*].message.tags[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `message tag \"${path.at(-2)}\" of channel \"${path[1]}\"`),\n },\n ],\n },\n 'legacy-zui-title-should-be-removed': {\n description:\n 'Legacy ZUI title fields (ui.title) SHOULD be removed. Please use .title() in your Zod schemas instead',\n severity: 'error',\n given: '$..ui[*].title',\n then: [{ function: falsy }],\n },\n 'legacy-zui-examples-should-be-removed': {\n description: 'Legacy ZUI examples fields (ui.examples) SHOULD be removed. There are currently no alternatives',\n severity: 'hint',\n given: '$..ui[*].examples',\n then: [{ function: falsy }],\n },\n 'state-fields-should-have-title': {\n description: 'All state fields SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema',\n severity: 'warn',\n given: '$.states[*]..schema.properties[*]',\n then: [\n {\n field: 'x-zui.title',\n function: truthyWithMessage({\n failMsgMapper: ({ path, isFallback }) => `field \"${path.at(isFallback ? -5 : -3)}\" of state \"${path[1]}\"`,\n fallbackExtractor: titleFallbackExtractor,\n }),\n },\n ],\n },\n 'state-fields-must-have-description': {\n description: 'All state fields MUST have a description',\n message:\n '{{description}}: {{error}} SHOULD provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.states[*]..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage({\n failMsgMapper: ({ path, isFallback }) => `field \"${path.at(isFallback ? -4 : -2)}\" of state \"${path[1]}\"`,\n fallbackExtractor: descriptionFallbackExtractor,\n }),\n },\n ],\n },\n 'secrets-must-have-a-description': {\n description: 'All secrets MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.secrets[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `secret \"${path[1]}\"`),\n },\n ],\n },\n },\n} satisfies RulesetDefinition\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_spectral_functions"]
|
|
7
7
|
}
|