@botpress/cli 1.4.3 → 1.4.5
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 +10 -10
- package/dist/linter/ruleset-tests/bot.ruleset.test.js +58 -56
- package/dist/linter/ruleset-tests/bot.ruleset.test.js.map +2 -2
- package/dist/linter/ruleset-tests/integration.ruleset.test.js +110 -117
- package/dist/linter/ruleset-tests/integration.ruleset.test.js.map +2 -2
- package/dist/linter/ruleset-tests/interface.ruleset.test.js +76 -84
- package/dist/linter/ruleset-tests/interface.ruleset.test.js.map +2 -2
- package/dist/linter/rulesets/bot.ruleset.js +8 -8
- package/dist/linter/rulesets/bot.ruleset.js.map +2 -2
- package/dist/linter/rulesets/integration.ruleset.js +14 -14
- package/dist/linter/rulesets/integration.ruleset.js.map +2 -2
- package/dist/linter/rulesets/interface.ruleset.js +8 -8
- package/dist/linter/rulesets/interface.ruleset.js.map +1 -1
- package/package.json +2 -2
- package/templates/empty-bot/package.json +1 -1
- package/templates/empty-integration/package.json +1 -1
- package/templates/hello-world/package.json +1 -1
- package/templates/webhook-message/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/linter/rulesets/bot.ruleset.ts"],
|
|
4
|
-
"sourcesContent": ["import { type RulesetDefinition } from '@stoplight/spectral-core'\nimport { falsy } from '@stoplight/spectral-functions'\nimport { truthyWithMessage } from '../spectral-functions'\n\nexport const BOT_RULESET = {\n extends: [],\n rules: {\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[*].
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,gCAAsB;AACtB,IAAAA,6BAAkC;AAE3B,MAAM,cAAc;AAAA,EACzB,SAAS,CAAC;AAAA,EACV,OAAO;AAAA,IACL,wCAAwC;AAAA,MACtC,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,QACJ;AAAA,UACE,OAAO;AAAA,UACP,cAAU,8CAAkB,CAAC,EAAE,KAAK,MAAM,qBAAqB,KAAK,GAAG,EAAE,gBAAgB,KAAK,KAAK;AAAA,QACrG;AAAA,MACF;AAAA,IACF;AAAA,IACA,4CAA4C;AAAA,MAC1C,aAAa;AAAA,MACb,SACE;AAAA,MACF,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,QACJ;AAAA,UACE,OAAO;AAAA,UACP,cAAU,8CAAkB,CAAC,EAAE,KAAK,MAAM,qBAAqB,KAAK,GAAG,EAAE,gBAAgB,KAAK,KAAK;AAAA,QACrG;AAAA,MACF;AAAA,IACF;AAAA,IACA,0CAA0C;AAAA,MACxC,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,QACJ;AAAA,UACE,OAAO;AAAA,UACP,cAAU,8CAAkB,CAAC,EAAE,KAAK,MAAM,4BAA4B,KAAK,GAAG,EAAE,IAAI;AAAA,QACtF;AAAA,MACF;AAAA,IACF;AAAA,IACA,gDAAgD;AAAA,MAC9C,aAAa;AAAA,MACb,
|
|
4
|
+
"sourcesContent": ["import { type RulesetDefinition } from '@stoplight/spectral-core'\nimport { falsy } from '@stoplight/spectral-functions'\nimport { truthyWithMessage } from '../spectral-functions'\n\nexport const BOT_RULESET = {\n extends: [],\n rules: {\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 '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 '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 '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: '$.conversation.tags[*]',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `conversation tag \"${path[2]}\"`),\n },\n ],\n },\n '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: '$.conversation.tags[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `conversation tag \"${path[2]}\"`),\n },\n ],\n },\n '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: '$.message.tags[*]',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `message tag \"${path[2]}\"`),\n },\n ],\n },\n '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: '$.message.tags[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `message tag \"${path[2]}\"`),\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 },\n} satisfies RulesetDefinition\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,gCAAsB;AACtB,IAAAA,6BAAkC;AAE3B,MAAM,cAAc;AAAA,EACzB,SAAS,CAAC;AAAA,EACV,OAAO;AAAA,IACL,wCAAwC;AAAA,MACtC,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,QACJ;AAAA,UACE,OAAO;AAAA,UACP,cAAU,8CAAkB,CAAC,EAAE,KAAK,MAAM,qBAAqB,KAAK,GAAG,EAAE,gBAAgB,KAAK,KAAK;AAAA,QACrG;AAAA,MACF;AAAA,IACF;AAAA,IACA,4CAA4C;AAAA,MAC1C,aAAa;AAAA,MACb,SACE;AAAA,MACF,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,QACJ;AAAA,UACE,OAAO;AAAA,UACP,cAAU,8CAAkB,CAAC,EAAE,KAAK,MAAM,qBAAqB,KAAK,GAAG,EAAE,gBAAgB,KAAK,KAAK;AAAA,QACrG;AAAA,MACF;AAAA,IACF;AAAA,IACA,0CAA0C;AAAA,MACxC,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,QACJ;AAAA,UACE,OAAO;AAAA,UACP,cAAU,8CAAkB,CAAC,EAAE,KAAK,MAAM,4BAA4B,KAAK,GAAG,EAAE,IAAI;AAAA,QACtF;AAAA,MACF;AAAA,IACF;AAAA,IACA,gDAAgD;AAAA,MAC9C,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,QACJ;AAAA,UACE,OAAO;AAAA,UACP,cAAU,8CAAkB,CAAC,EAAE,KAAK,MAAM,4BAA4B,KAAK,GAAG,EAAE,IAAI;AAAA,QACtF;AAAA,MACF;AAAA,IACF;AAAA,IACA,iCAAiC;AAAA,MAC/B,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,QACJ;AAAA,UACE,OAAO;AAAA,UACP,cAAU,8CAAkB,CAAC,EAAE,KAAK,MAAM,aAAa,KAAK,KAAK;AAAA,QACnE;AAAA,MACF;AAAA,IACF;AAAA,IACA,qCAAqC;AAAA,MACnC,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,QACJ;AAAA,UACE,OAAO;AAAA,UACP,cAAU,8CAAkB,CAAC,EAAE,KAAK,MAAM,aAAa,KAAK,KAAK;AAAA,QACnE;AAAA,MACF;AAAA,IACF;AAAA,IACA,yCAAyC;AAAA,MACvC,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,QACJ;AAAA,UACE,OAAO;AAAA,UACP,cAAU,8CAAkB,CAAC,EAAE,KAAK,MAAM,qBAAqB,KAAK,KAAK;AAAA,QAC3E;AAAA,MACF;AAAA,IACF;AAAA,IACA,6CAA6C;AAAA,MAC3C,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,QACJ;AAAA,UACE,OAAO;AAAA,UACP,cAAU,8CAAkB,CAAC,EAAE,KAAK,MAAM,qBAAqB,KAAK,KAAK;AAAA,QAC3E;AAAA,MACF;AAAA,IACF;AAAA,IACA,oCAAoC;AAAA,MAClC,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,QACJ;AAAA,UACE,OAAO;AAAA,UACP,cAAU,8CAAkB,CAAC,EAAE,KAAK,MAAM,gBAAgB,KAAK,KAAK;AAAA,QACtE;AAAA,MACF;AAAA,IACF;AAAA,IACA,wCAAwC;AAAA,MACtC,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,QACJ;AAAA,UACE,OAAO;AAAA,UACP,cAAU,8CAAkB,CAAC,EAAE,KAAK,MAAM,gBAAgB,KAAK,KAAK;AAAA,QACtE;AAAA,MACF;AAAA,IACF;AAAA,IACA,sCAAsC;AAAA,MACpC,aACE;AAAA,MACF,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM,CAAC,EAAE,UAAU,gCAAM,CAAC;AAAA,IAC5B;AAAA,IACA,yCAAyC;AAAA,MACvC,aAAa;AAAA,MACb,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM,CAAC,EAAE,UAAU,gCAAM,CAAC;AAAA,IAC5B;AAAA,IACA,kCAAkC;AAAA,MAChC,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,QACJ;AAAA,UACE,OAAO;AAAA,UACP,cAAU,8CAAkB,CAAC,EAAE,KAAK,MAAM,UAAU,KAAK,GAAG,EAAE,gBAAgB,KAAK,KAAK;AAAA,QAC1F;AAAA,MACF;AAAA,IACF;AAAA,IACA,sCAAsC;AAAA,MACpC,aAAa;AAAA,MACb,SACE;AAAA,MACF,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,QACJ;AAAA,UACE,OAAO;AAAA,UACP,cAAU,8CAAkB,CAAC,EAAE,KAAK,MAAM,UAAU,KAAK,GAAG,EAAE,gBAAgB,KAAK,KAAK;AAAA,QAC1F;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
|
|
6
6
|
"names": ["import_spectral_functions"]
|
|
7
7
|
}
|
|
@@ -68,7 +68,7 @@ const INTEGRATION_RULESET = {
|
|
|
68
68
|
description: "All action input parameters SHOULD have a title",
|
|
69
69
|
message: "{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema",
|
|
70
70
|
severity: "warn",
|
|
71
|
-
given: "$.actions[*].input.
|
|
71
|
+
given: "$.actions[*].input..schema.properties[*].x-zui",
|
|
72
72
|
then: [
|
|
73
73
|
{
|
|
74
74
|
field: "title",
|
|
@@ -80,7 +80,7 @@ const INTEGRATION_RULESET = {
|
|
|
80
80
|
description: "All action input parameters MUST have a description",
|
|
81
81
|
message: "{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema",
|
|
82
82
|
severity: "error",
|
|
83
|
-
given: "$.actions[*].input.
|
|
83
|
+
given: "$.actions[*].input..schema.properties[*]",
|
|
84
84
|
then: [
|
|
85
85
|
{
|
|
86
86
|
field: "description",
|
|
@@ -92,7 +92,7 @@ const INTEGRATION_RULESET = {
|
|
|
92
92
|
description: "All action output parameters SHOULD have a title",
|
|
93
93
|
message: "{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema",
|
|
94
94
|
severity: "warn",
|
|
95
|
-
given: "$.actions[*].output.
|
|
95
|
+
given: "$.actions[*].output..schema.properties[*].x-zui",
|
|
96
96
|
then: [
|
|
97
97
|
{
|
|
98
98
|
field: "title",
|
|
@@ -104,7 +104,7 @@ const INTEGRATION_RULESET = {
|
|
|
104
104
|
description: "All action output parameters MUST have a description",
|
|
105
105
|
message: "{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema",
|
|
106
106
|
severity: "error",
|
|
107
|
-
given: "$.actions[*].output.
|
|
107
|
+
given: "$.actions[*].output..schema.properties[*]",
|
|
108
108
|
then: [
|
|
109
109
|
{
|
|
110
110
|
field: "description",
|
|
@@ -116,7 +116,7 @@ const INTEGRATION_RULESET = {
|
|
|
116
116
|
description: "All event output parameters SHOULD have a title",
|
|
117
117
|
message: "{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema",
|
|
118
118
|
severity: "warn",
|
|
119
|
-
given: "$.events[*].
|
|
119
|
+
given: "$.events[*]..schema.properties[*]",
|
|
120
120
|
then: [
|
|
121
121
|
{
|
|
122
122
|
field: "x-zui.title",
|
|
@@ -128,7 +128,7 @@ const INTEGRATION_RULESET = {
|
|
|
128
128
|
description: "All event output parameters MUST have a description",
|
|
129
129
|
message: "{{description}}: {{error}} SHOULD provide a non-empty description by using .describe() in its Zod schema",
|
|
130
130
|
severity: "error",
|
|
131
|
-
given: "$.events[*].
|
|
131
|
+
given: "$.events[*]..schema.properties[*]",
|
|
132
132
|
then: [
|
|
133
133
|
{
|
|
134
134
|
field: "description",
|
|
@@ -161,9 +161,9 @@ const INTEGRATION_RULESET = {
|
|
|
161
161
|
},
|
|
162
162
|
"configuration-fields-must-have-a-title": {
|
|
163
163
|
description: "All configuration fields MUST have a title",
|
|
164
|
-
message: "{{description}}: {{
|
|
164
|
+
message: "{{description}}: {{error}} MUST provide a non-empty title by using .title() in its Zod schema",
|
|
165
165
|
severity: "error",
|
|
166
|
-
given: "$.configuration.
|
|
166
|
+
given: "$.configuration..schema.properties[*].x-zui",
|
|
167
167
|
then: [
|
|
168
168
|
{
|
|
169
169
|
field: "title",
|
|
@@ -173,9 +173,9 @@ const INTEGRATION_RULESET = {
|
|
|
173
173
|
},
|
|
174
174
|
"configuration-fields-must-have-a-description": {
|
|
175
175
|
description: "All configuration fields MUST have a description",
|
|
176
|
-
message: "{{description}}: {{
|
|
176
|
+
message: "{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema",
|
|
177
177
|
severity: "error",
|
|
178
|
-
given: "$.configuration.
|
|
178
|
+
given: "$.configuration..schema.properties[*]",
|
|
179
179
|
then: [
|
|
180
180
|
{
|
|
181
181
|
field: "description",
|
|
@@ -201,7 +201,7 @@ const INTEGRATION_RULESET = {
|
|
|
201
201
|
description: "All configuration fields in multiple configurations MUST have a title",
|
|
202
202
|
message: "{{description}}: {{error}} MUST provide a non-empty title by using .title() in its Zod schema",
|
|
203
203
|
severity: "error",
|
|
204
|
-
given: "$.configurations[*].
|
|
204
|
+
given: "$.configurations[*]..schema.properties[*].x-zui",
|
|
205
205
|
then: [
|
|
206
206
|
{
|
|
207
207
|
field: "title",
|
|
@@ -215,7 +215,7 @@ const INTEGRATION_RULESET = {
|
|
|
215
215
|
description: "All configuration fields in multiple configurations MUST have a description",
|
|
216
216
|
message: "{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema",
|
|
217
217
|
severity: "error",
|
|
218
|
-
given: "$.configurations[*].
|
|
218
|
+
given: "$.configurations[*]..schema.properties[*]",
|
|
219
219
|
then: [
|
|
220
220
|
{
|
|
221
221
|
field: "description",
|
|
@@ -337,7 +337,7 @@ const INTEGRATION_RULESET = {
|
|
|
337
337
|
description: "All state fields SHOULD have a title",
|
|
338
338
|
message: "{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema",
|
|
339
339
|
severity: "warn",
|
|
340
|
-
given: "$.states[*].
|
|
340
|
+
given: "$.states[*]..schema.properties[*]",
|
|
341
341
|
then: [
|
|
342
342
|
{
|
|
343
343
|
field: "x-zui.title",
|
|
@@ -349,7 +349,7 @@ const INTEGRATION_RULESET = {
|
|
|
349
349
|
description: "All state fields MUST have a description",
|
|
350
350
|
message: "{{description}}: {{error}} SHOULD provide a non-empty description by using .describe() in its Zod schema",
|
|
351
351
|
severity: "error",
|
|
352
|
-
given: "$.states[*].
|
|
352
|
+
given: "$.states[*]..schema.properties[*]",
|
|
353
353
|
then: [
|
|
354
354
|
{
|
|
355
355
|
field: "description",
|
|
@@ -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[*].x-zui',\n then: [\n {\n field: '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}}: {{property}} 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:\n '{{description}}: {{property}} 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 { 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[*].x-zui',\n then: [\n {\n field: '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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",
|
|
6
6
|
"names": ["import_spectral_functions"]
|
|
7
7
|
}
|
|
@@ -30,7 +30,7 @@ const INTERFACE_RULESET = {
|
|
|
30
30
|
description: "All action input parameters SHOULD have a title",
|
|
31
31
|
message: "{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema",
|
|
32
32
|
severity: "warn",
|
|
33
|
-
given: "$.actions[*].input.
|
|
33
|
+
given: "$.actions[*].input..schema.properties[*].x-zui",
|
|
34
34
|
then: [
|
|
35
35
|
{
|
|
36
36
|
field: "title",
|
|
@@ -42,7 +42,7 @@ const INTERFACE_RULESET = {
|
|
|
42
42
|
description: "All action input parameters MUST have a description",
|
|
43
43
|
message: "{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema",
|
|
44
44
|
severity: "error",
|
|
45
|
-
given: "$.actions[*].input.
|
|
45
|
+
given: "$.actions[*].input..schema.properties[*]",
|
|
46
46
|
then: [
|
|
47
47
|
{
|
|
48
48
|
field: "description",
|
|
@@ -54,7 +54,7 @@ const INTERFACE_RULESET = {
|
|
|
54
54
|
description: "All action output parameters SHOULD have a title",
|
|
55
55
|
message: "{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema",
|
|
56
56
|
severity: "warn",
|
|
57
|
-
given: "$.actions[*].output.
|
|
57
|
+
given: "$.actions[*].output..schema.properties[*].x-zui",
|
|
58
58
|
then: [
|
|
59
59
|
{
|
|
60
60
|
field: "title",
|
|
@@ -66,7 +66,7 @@ const INTERFACE_RULESET = {
|
|
|
66
66
|
description: "All action output parameters MUST have a description",
|
|
67
67
|
message: "{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema",
|
|
68
68
|
severity: "error",
|
|
69
|
-
given: "$.actions[*].output.
|
|
69
|
+
given: "$.actions[*].output..schema.properties[*]",
|
|
70
70
|
then: [
|
|
71
71
|
{
|
|
72
72
|
field: "description",
|
|
@@ -78,7 +78,7 @@ const INTERFACE_RULESET = {
|
|
|
78
78
|
description: "All event output parameters SHOULD have a title",
|
|
79
79
|
message: "{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema",
|
|
80
80
|
severity: "warn",
|
|
81
|
-
given: "$.events[*].
|
|
81
|
+
given: "$.events[*]..schema.properties[*]",
|
|
82
82
|
then: [
|
|
83
83
|
{
|
|
84
84
|
field: "x-zui.title",
|
|
@@ -90,7 +90,7 @@ const INTERFACE_RULESET = {
|
|
|
90
90
|
description: "All event output parameters MUST have a description",
|
|
91
91
|
message: "{{description}}: {{error}} SHOULD provide a non-empty description by using .describe() in its Zod schema",
|
|
92
92
|
severity: "error",
|
|
93
|
-
given: "$.events[*].
|
|
93
|
+
given: "$.events[*]..schema.properties[*]",
|
|
94
94
|
then: [
|
|
95
95
|
{
|
|
96
96
|
field: "description",
|
|
@@ -128,7 +128,7 @@ const INTERFACE_RULESET = {
|
|
|
128
128
|
description: "All entity fields SHOULD have a title",
|
|
129
129
|
message: "{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema",
|
|
130
130
|
severity: "warn",
|
|
131
|
-
given: "$.entities[*].
|
|
131
|
+
given: "$.entities[*]..schema.properties[*]",
|
|
132
132
|
then: [
|
|
133
133
|
{
|
|
134
134
|
field: "x-zui.title",
|
|
@@ -140,7 +140,7 @@ const INTERFACE_RULESET = {
|
|
|
140
140
|
description: "All entity fields MUST have a description",
|
|
141
141
|
message: "{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema",
|
|
142
142
|
severity: "error",
|
|
143
|
-
given: "$.entities[*].
|
|
143
|
+
given: "$.entities[*]..schema.properties[*]",
|
|
144
144
|
then: [
|
|
145
145
|
{
|
|
146
146
|
field: "description",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/linter/rulesets/interface.ruleset.ts"],
|
|
4
|
-
"sourcesContent": ["import { type RulesetDefinition } from '@stoplight/spectral-core'\nimport { falsy } from '@stoplight/spectral-functions'\nimport { truthyWithMessage } from '../spectral-functions'\n\nexport const INTERFACE_RULESET = {\n extends: [],\n rules: {\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.
|
|
4
|
+
"sourcesContent": ["import { type RulesetDefinition } from '@stoplight/spectral-core'\nimport { falsy } from '@stoplight/spectral-functions'\nimport { truthyWithMessage } from '../spectral-functions'\n\nexport const INTERFACE_RULESET = {\n extends: [],\n rules: {\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[*].x-zui',\n then: [\n {\n field: '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 '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 'entities-should-have-a-title': {\n description: 'All entities SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD have a non-empty title',\n severity: 'warn',\n given: '$.entities[*]',\n then: [{ field: 'title', function: truthyWithMessage(({ path }) => `entity \"${path[1]}\"`) }],\n },\n 'entities-must-have-a-description': {\n description: 'All entities MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.entities[*]',\n then: [{ field: 'description', function: truthyWithMessage(({ path }) => `entity \"${path[1]}\"`) }],\n },\n 'entity-fields-should-have-a-title': {\n description: 'All entity 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: '$.entities[*]..schema.properties[*]',\n then: [\n {\n field: 'x-zui.title',\n function: truthyWithMessage(({ path }) => `field \"${path.at(-3)}\" of entity \"${path[1]}\"`),\n },\n ],\n },\n 'entity-fields-must-have-a-description': {\n description: 'All entity 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: '$.entities[*]..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `field \"${path.at(-2)}\" of entity \"${path[1]}\"`),\n },\n ],\n },\n },\n} satisfies RulesetDefinition\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["import_spectral_functions"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botpress/cli",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.5",
|
|
4
4
|
"description": "Botpress CLI",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "pnpm run bundle && pnpm run template:gen",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@apidevtools/json-schema-ref-parser": "^11.7.0",
|
|
24
24
|
"@botpress/client": "0.34.0",
|
|
25
|
-
"@botpress/sdk": "1.2.
|
|
25
|
+
"@botpress/sdk": "1.2.2",
|
|
26
26
|
"@bpinternal/const": "^0.0.20",
|
|
27
27
|
"@bpinternal/tunnel": "^0.1.1",
|
|
28
28
|
"@bpinternal/yargs-extra": "^0.0.3",
|