@botpress/cli 5.0.1 → 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.
Files changed (37) hide show
  1. package/.turbo/turbo-build.log +9 -9
  2. package/dist/command-implementations/lint-command.js +6 -3
  3. package/dist/command-implementations/lint-command.js.map +2 -2
  4. package/dist/linter/base-linter.d.ts +1 -1
  5. package/dist/linter/base-linter.js +21 -1
  6. package/dist/linter/base-linter.js.map +2 -2
  7. package/dist/linter/bot-linter.d.ts +2 -1
  8. package/dist/linter/bot-linter.js +2 -2
  9. package/dist/linter/bot-linter.js.map +2 -2
  10. package/dist/linter/integration-linter.d.ts +2 -1
  11. package/dist/linter/integration-linter.js +2 -2
  12. package/dist/linter/integration-linter.js.map +2 -2
  13. package/dist/linter/interface-linter.d.ts +2 -1
  14. package/dist/linter/interface-linter.js +2 -2
  15. package/dist/linter/interface-linter.js.map +2 -2
  16. package/dist/linter/ruleset-tests/bot.ruleset.test.js +322 -0
  17. package/dist/linter/ruleset-tests/bot.ruleset.test.js.map +2 -2
  18. package/dist/linter/ruleset-tests/integration.ruleset.test.js +713 -0
  19. package/dist/linter/ruleset-tests/integration.ruleset.test.js.map +2 -2
  20. package/dist/linter/ruleset-tests/interface.ruleset.test.js +502 -0
  21. package/dist/linter/ruleset-tests/interface.ruleset.test.js.map +2 -2
  22. package/dist/linter/rulesets/bot.ruleset.d.ts +12 -36
  23. package/dist/linter/rulesets/bot.ruleset.js +24 -6
  24. package/dist/linter/rulesets/bot.ruleset.js.map +2 -2
  25. package/dist/linter/rulesets/integration.ruleset.d.ts +27 -81
  26. package/dist/linter/rulesets/integration.ruleset.js +48 -16
  27. package/dist/linter/rulesets/integration.ruleset.js.map +2 -2
  28. package/dist/linter/rulesets/interface.ruleset.d.ts +10 -30
  29. package/dist/linter/rulesets/interface.ruleset.js +32 -8
  30. package/dist/linter/rulesets/interface.ruleset.js.map +2 -2
  31. package/dist/linter/spectral-functions.d.ts +25 -5
  32. package/dist/linter/spectral-functions.js +107 -6
  33. package/dist/linter/spectral-functions.js.map +2 -2
  34. package/dist/utils/file-watcher.d.ts +1 -1
  35. package/dist/utils/file-watcher.js +2 -2
  36. package/dist/utils/file-watcher.js.map +3 -3
  37. package/package.json +3 -1
@@ -44,9 +44,7 @@ export declare const INTEGRATION_RULESET: {
44
44
  given: string;
45
45
  then: {
46
46
  field: string;
47
- function: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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: (input: string, _: unknown, context: import("@stoplight/spectral-core").RulesetFunctionContext) => {
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)(({ path }) => `input parameter "${path.at(-3)}" of action "${path[1]}"`)
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)(({ path }) => `input parameter "${path.at(-2)}" of action "${path[1]}"`)
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)(({ path }) => `output parameter "${path.at(-3)}" of action "${path[1]}"`)
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)(({ path }) => `output parameter "${path.at(-2)}" of action "${path[1]}"`)
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)(({ path }) => `output parameter "${path.at(-3)}" of event "${path[1]}"`)
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)(({ path }) => `output parameter "${path.at(-2)}" of event "${path[1]}"`)
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)(({ path }) => `configuration parameter "${path.at(-3)}"`)
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)(({ path }) => `configuration parameter "${path.at(-2)}"`)
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)(({ path }) => `field "${path.at(-3)}" of state "${path[1]}"`)
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)(({ path }) => `field "${path.at(-2)}" of state "${path[1]}"`)
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": "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",
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
  }