@botpress/cli 6.1.0 → 6.2.0

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 (50) hide show
  1. package/.turbo/turbo-build.log +11 -11
  2. package/dist/api/bot-body.js +10 -5
  3. package/dist/api/bot-body.js.map +2 -2
  4. package/dist/api/integration-body.js +12 -6
  5. package/dist/api/integration-body.js.map +2 -2
  6. package/dist/api/interface-body.js +10 -5
  7. package/dist/api/interface-body.js.map +2 -2
  8. package/dist/api/plugin-body.js +10 -5
  9. package/dist/api/plugin-body.js.map +2 -2
  10. package/dist/code-generation/bot-implementation/index.js +9 -1
  11. package/dist/code-generation/bot-implementation/index.js.map +2 -2
  12. package/dist/code-generation/index.d.ts +1 -1
  13. package/dist/code-generation/index.js +2 -2
  14. package/dist/code-generation/index.js.map +2 -2
  15. package/dist/code-generation/integration-implementation/index.js +2 -2
  16. package/dist/code-generation/integration-implementation/index.js.map +2 -2
  17. package/dist/code-generation/secret-module.d.ts +12 -0
  18. package/dist/code-generation/{integration-implementation/integration-secret.js → secret-module.js} +13 -13
  19. package/dist/code-generation/secret-module.js.map +7 -0
  20. package/dist/command-implementations/deploy-command.js +1 -0
  21. package/dist/command-implementations/deploy-command.js.map +2 -2
  22. package/dist/command-implementations/dev-command.js +9 -9
  23. package/dist/command-implementations/dev-command.js.map +2 -2
  24. package/dist/command-implementations/project-command.d.ts +3 -1
  25. package/dist/command-implementations/project-command.js +7 -5
  26. package/dist/command-implementations/project-command.js.map +2 -2
  27. package/dist/command-implementations/serve-command.js +1 -1
  28. package/dist/command-implementations/serve-command.js.map +2 -2
  29. package/dist/linter/base-linter.test.js +4 -2
  30. package/dist/linter/base-linter.test.js.map +2 -2
  31. package/dist/linter/ruleset-tests/bot.ruleset.test.js +22 -0
  32. package/dist/linter/ruleset-tests/bot.ruleset.test.js.map +2 -2
  33. package/dist/linter/rulesets/bot.ruleset.js +3 -1
  34. package/dist/linter/rulesets/bot.ruleset.js.map +2 -2
  35. package/dist/linter/rulesets/integration.ruleset.js +2 -12
  36. package/dist/linter/rulesets/integration.ruleset.js.map +2 -2
  37. package/dist/linter/rulesets/shared-rules.d.ts +2 -0
  38. package/dist/linter/rulesets/shared-rules.js +41 -0
  39. package/dist/linter/rulesets/shared-rules.js.map +7 -0
  40. package/dist/utils/schema-utils.d.ts +1 -0
  41. package/dist/utils/schema-utils.js +5 -2
  42. package/dist/utils/schema-utils.js.map +2 -2
  43. package/package.json +3 -3
  44. package/templates/empty-bot/package.json +2 -2
  45. package/templates/empty-integration/package.json +2 -2
  46. package/templates/empty-plugin/package.json +1 -1
  47. package/templates/hello-world/package.json +2 -2
  48. package/templates/webhook-message/package.json +2 -2
  49. package/dist/code-generation/integration-implementation/integration-secret.d.ts +0 -9
  50. package/dist/code-generation/integration-implementation/integration-secret.js.map +0 -7
@@ -38,9 +38,12 @@ const isObjectSchema = (schema) => schema.type === "object";
38
38
  async function mapZodToJsonSchema(definition, options) {
39
39
  let schema;
40
40
  if (options.useLegacyZuiTransformer) {
41
- schema = sdk.z.transforms.toJSONSchemaLegacy(definition.schema, { target: "jsonSchema7" });
41
+ schema = sdk.z.transforms.toJSONSchemaLegacy(definition.schema, {
42
+ target: "jsonSchema7",
43
+ ...options.toJSONSchemaOptions
44
+ });
42
45
  } else {
43
- schema = sdk.z.transforms.toJSONSchema(definition.schema);
46
+ schema = sdk.z.transforms.toJSONSchema(definition.schema, options.toJSONSchemaOptions);
44
47
  }
45
48
  schema = await dereferenceSchema(schema);
46
49
  if (!isObjectSchema(schema) || !definition.ui) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/schema-utils.ts"],
4
- "sourcesContent": ["import { dereference } from '@apidevtools/json-schema-ref-parser'\nimport * as sdk from '@botpress/sdk'\nimport { JSONSchema7 } from 'json-schema'\n\ntype ZuiToJsonSchema = typeof sdk.z.transforms.toJSONSchemaLegacy\ntype JsonSchema = ReturnType<ZuiToJsonSchema>\n\ntype SchemaOptions = {\n title?: string\n examples?: any[]\n}\n\ntype SchemaDefinition = {\n schema: sdk.z.ZuiObjectOrRefSchema\n ui?: Record<string, SchemaOptions | undefined>\n}\n\ntype MapSchemaOptions = {\n useLegacyZuiTransformer?: boolean\n}\n\nconst isObjectSchema = (schema: JsonSchema): boolean => schema.type === 'object'\n\nexport async function mapZodToJsonSchema(\n definition: SchemaDefinition,\n options: MapSchemaOptions\n): Promise<ReturnType<typeof sdk.z.transforms.toJSONSchemaLegacy>> {\n let schema: JSONSchema7\n if (options.useLegacyZuiTransformer) {\n schema = sdk.z.transforms.toJSONSchemaLegacy(definition.schema, { target: 'jsonSchema7' })\n } else {\n schema = sdk.z.transforms.toJSONSchema(definition.schema)\n }\n schema = (await dereferenceSchema(schema)) as typeof schema\n\n if (!isObjectSchema(schema) || !definition.ui) {\n return schema\n }\n\n for (const [key, value] of Object.entries(definition.ui ?? {})) {\n const property = schema.properties?.[key]\n\n if (!property) {\n continue\n }\n\n if (!!value?.title) {\n ;(property as any).title = value.title\n }\n\n if (!!value?.examples) {\n ;(property as any).examples = value.examples\n }\n }\n\n return schema\n}\n\nexport const dereferenceSchema = async (schema: JSONSchema7): Promise<JSONSchema7> => {\n return dereference(schema, {\n resolve: {\n external: false,\n file: false,\n http: false,\n },\n })\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAA4B;AAC5B,UAAqB;AAoBrB,MAAM,iBAAiB,CAAC,WAAgC,OAAO,SAAS;AAExE,eAAsB,mBACpB,YACA,SACiE;AACjE,MAAI;AACJ,MAAI,QAAQ,yBAAyB;AACnC,aAAS,IAAI,EAAE,WAAW,mBAAmB,WAAW,QAAQ,EAAE,QAAQ,cAAc,CAAC;AAAA,EAC3F,OAAO;AACL,aAAS,IAAI,EAAE,WAAW,aAAa,WAAW,MAAM;AAAA,EAC1D;AACA,WAAU,MAAM,kBAAkB,MAAM;AAExC,MAAI,CAAC,eAAe,MAAM,KAAK,CAAC,WAAW,IAAI;AAC7C,WAAO;AAAA,EACT;AAEA,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,WAAW,MAAM,CAAC,CAAC,GAAG;AAC9D,UAAM,WAAW,OAAO,aAAa,GAAG;AAExC,QAAI,CAAC,UAAU;AACb;AAAA,IACF;AAEA,QAAI,CAAC,CAAC,OAAO,OAAO;AAClB;AAAC,MAAC,SAAiB,QAAQ,MAAM;AAAA,IACnC;AAEA,QAAI,CAAC,CAAC,OAAO,UAAU;AACrB;AAAC,MAAC,SAAiB,WAAW,MAAM;AAAA,IACtC;AAAA,EACF;AAEA,SAAO;AACT;AAEO,MAAM,oBAAoB,OAAO,WAA8C;AACpF,aAAO,2CAAY,QAAQ;AAAA,IACzB,SAAS;AAAA,MACP,UAAU;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA,EACF,CAAC;AACH;",
4
+ "sourcesContent": ["import { dereference } from '@apidevtools/json-schema-ref-parser'\nimport * as sdk from '@botpress/sdk'\nimport { JSONSchema7 } from 'json-schema'\n\ntype ZuiToJsonSchema = typeof sdk.z.transforms.toJSONSchemaLegacy\ntype JsonSchema = ReturnType<ZuiToJsonSchema>\n\ntype SchemaOptions = {\n title?: string\n examples?: any[]\n}\n\ntype SchemaDefinition = {\n schema: sdk.z.ZuiObjectOrRefSchema\n ui?: Record<string, SchemaOptions | undefined>\n}\n\ntype MapSchemaOptions = {\n useLegacyZuiTransformer?: boolean\n toJSONSchemaOptions?: Partial<sdk.z.transforms.JSONSchemaGenerationOptions>\n}\n\nconst isObjectSchema = (schema: JsonSchema): boolean => schema.type === 'object'\n\nexport async function mapZodToJsonSchema(\n definition: SchemaDefinition,\n options: MapSchemaOptions\n): Promise<ReturnType<typeof sdk.z.transforms.toJSONSchemaLegacy>> {\n let schema: JSONSchema7\n if (options.useLegacyZuiTransformer) {\n schema = sdk.z.transforms.toJSONSchemaLegacy(definition.schema, {\n target: 'jsonSchema7',\n ...options.toJSONSchemaOptions,\n })\n } else {\n schema = sdk.z.transforms.toJSONSchema(definition.schema, options.toJSONSchemaOptions)\n }\n schema = (await dereferenceSchema(schema)) as typeof schema\n\n if (!isObjectSchema(schema) || !definition.ui) {\n return schema\n }\n\n for (const [key, value] of Object.entries(definition.ui ?? {})) {\n const property = schema.properties?.[key]\n\n if (!property) {\n continue\n }\n\n if (!!value?.title) {\n ;(property as any).title = value.title\n }\n\n if (!!value?.examples) {\n ;(property as any).examples = value.examples\n }\n }\n\n return schema\n}\n\nexport const dereferenceSchema = async (schema: JSONSchema7): Promise<JSONSchema7> => {\n return dereference(schema, {\n resolve: {\n external: false,\n file: false,\n http: false,\n },\n })\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAA4B;AAC5B,UAAqB;AAqBrB,MAAM,iBAAiB,CAAC,WAAgC,OAAO,SAAS;AAExE,eAAsB,mBACpB,YACA,SACiE;AACjE,MAAI;AACJ,MAAI,QAAQ,yBAAyB;AACnC,aAAS,IAAI,EAAE,WAAW,mBAAmB,WAAW,QAAQ;AAAA,MAC9D,QAAQ;AAAA,MACR,GAAG,QAAQ;AAAA,IACb,CAAC;AAAA,EACH,OAAO;AACL,aAAS,IAAI,EAAE,WAAW,aAAa,WAAW,QAAQ,QAAQ,mBAAmB;AAAA,EACvF;AACA,WAAU,MAAM,kBAAkB,MAAM;AAExC,MAAI,CAAC,eAAe,MAAM,KAAK,CAAC,WAAW,IAAI;AAC7C,WAAO;AAAA,EACT;AAEA,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,WAAW,MAAM,CAAC,CAAC,GAAG;AAC9D,UAAM,WAAW,OAAO,aAAa,GAAG;AAExC,QAAI,CAAC,UAAU;AACb;AAAA,IACF;AAEA,QAAI,CAAC,CAAC,OAAO,OAAO;AAClB;AAAC,MAAC,SAAiB,QAAQ,MAAM;AAAA,IACnC;AAEA,QAAI,CAAC,CAAC,OAAO,UAAU;AACrB;AAAC,MAAC,SAAiB,WAAW,MAAM;AAAA,IACtC;AAAA,EACF;AAEA,SAAO;AACT;AAEO,MAAM,oBAAoB,OAAO,WAA8C;AACpF,aAAO,2CAAY,QAAQ;AAAA,IACzB,SAAS;AAAA,MACP,UAAU;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA,EACF,CAAC;AACH;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botpress/cli",
3
- "version": "6.1.0",
3
+ "version": "6.2.0",
4
4
  "description": "Botpress CLI",
5
5
  "scripts": {
6
6
  "build": "pnpm run build:types && pnpm run bundle && pnpm run template:gen",
@@ -27,8 +27,8 @@
27
27
  "dependencies": {
28
28
  "@apidevtools/json-schema-ref-parser": "^11.7.0",
29
29
  "@botpress/chat": "0.5.5",
30
- "@botpress/client": "1.37.0",
31
- "@botpress/sdk": "6.1.0",
30
+ "@botpress/client": "1.38.0",
31
+ "@botpress/sdk": "6.3.0",
32
32
  "@bpinternal/const": "^0.1.0",
33
33
  "@bpinternal/tunnel": "^0.1.1",
34
34
  "@bpinternal/verel": "^0.2.0",
@@ -5,8 +5,8 @@
5
5
  },
6
6
  "private": true,
7
7
  "dependencies": {
8
- "@botpress/client": "1.37.0",
9
- "@botpress/sdk": "6.1.0"
8
+ "@botpress/client": "1.38.0",
9
+ "@botpress/sdk": "6.3.0"
10
10
  },
11
11
  "devDependencies": {
12
12
  "@types/node": "^22.16.4",
@@ -6,8 +6,8 @@
6
6
  },
7
7
  "private": true,
8
8
  "dependencies": {
9
- "@botpress/client": "1.37.0",
10
- "@botpress/sdk": "6.1.0"
9
+ "@botpress/client": "1.38.0",
10
+ "@botpress/sdk": "6.3.0"
11
11
  },
12
12
  "devDependencies": {
13
13
  "@types/node": "^22.16.4",
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "private": true,
8
8
  "dependencies": {
9
- "@botpress/sdk": "6.1.0"
9
+ "@botpress/sdk": "6.3.0"
10
10
  },
11
11
  "devDependencies": {
12
12
  "@types/node": "^22.16.4",
@@ -6,8 +6,8 @@
6
6
  },
7
7
  "private": true,
8
8
  "dependencies": {
9
- "@botpress/client": "1.37.0",
10
- "@botpress/sdk": "6.1.0"
9
+ "@botpress/client": "1.38.0",
10
+ "@botpress/sdk": "6.3.0"
11
11
  },
12
12
  "devDependencies": {
13
13
  "@types/node": "^22.16.4",
@@ -6,8 +6,8 @@
6
6
  },
7
7
  "private": true,
8
8
  "dependencies": {
9
- "@botpress/client": "1.37.0",
10
- "@botpress/sdk": "6.1.0",
9
+ "@botpress/client": "1.38.0",
10
+ "@botpress/sdk": "6.3.0",
11
11
  "axios": "^1.6.8"
12
12
  },
13
13
  "devDependencies": {
@@ -1,9 +0,0 @@
1
- import { IntegrationDefinition } from '@botpress/sdk';
2
- import { Module } from '../module';
3
- export declare const secretEnvVariableName: (secretName: string) => string;
4
- export declare const stripSecretEnvVariablePrefix: (secretName: string) => string;
5
- export declare class IntegrationSecretIndexModule extends Module {
6
- private _integration;
7
- constructor(_integration: IntegrationDefinition);
8
- getContent(): Promise<string>;
9
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/code-generation/integration-implementation/integration-secret.ts"],
4
- "sourcesContent": ["import { IntegrationDefinition } from '@botpress/sdk'\nimport { casing } from '../../utils'\nimport * as consts from '../consts'\nimport { Module } from '../module'\n\nexport const secretEnvVariableName = (secretName: string) => `SECRET_${casing.to.screamingSnakeCase(secretName)}`\nexport const stripSecretEnvVariablePrefix = (secretName: string) => secretName.replace(/^SECRET_/, '')\n\nexport class IntegrationSecretIndexModule extends Module {\n public constructor(private _integration: IntegrationDefinition) {\n super({ exportName: 'secrets', path: consts.INDEX_FILE })\n }\n\n public async getContent() {\n let content = consts.GENERATED_HEADER\n content += 'class Secrets {\\n'\n for (const [secretName, { optional }] of Object.entries(this._integration.secrets ?? {})) {\n const envVariableName = secretEnvVariableName(secretName)\n const fieldName = casing.to.screamingSnakeCase(secretName)\n\n if (optional) {\n content += ` public get ${fieldName}(): string | undefined {\\n`\n content += ` const envVarValue = process.env.${envVariableName}\\n`\n content += ' return envVarValue\\n'\n content += ' }\\n'\n } else {\n content += ` public get ${fieldName}(): string {\\n`\n content += ` const envVarValue = process.env.${envVariableName}\\n`\n content += ` if (!envVarValue) throw new Error('Missing required secret \"${secretName}\"')\\n`\n content += ' return envVarValue\\n'\n content += ' }\\n'\n }\n }\n content += '}\\n'\n content += 'export const secrets = new Secrets()\\n'\n return content\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAuB;AACvB,aAAwB;AACxB,oBAAuB;AAEhB,MAAM,wBAAwB,CAAC,eAAuB,UAAU,oBAAO,GAAG,mBAAmB,UAAU,CAAC;AACxG,MAAM,+BAA+B,CAAC,eAAuB,WAAW,QAAQ,YAAY,EAAE;AAE9F,MAAM,qCAAqC,qBAAO;AAAA,EAChD,YAAoB,cAAqC;AAC9D,UAAM,EAAE,YAAY,WAAW,MAAM,OAAO,WAAW,CAAC;AAD/B;AAAA,EAE3B;AAAA,EAEA,MAAa,aAAa;AACxB,QAAI,UAAU,OAAO;AACrB,eAAW;AACX,eAAW,CAAC,YAAY,EAAE,SAAS,CAAC,KAAK,OAAO,QAAQ,KAAK,aAAa,WAAW,CAAC,CAAC,GAAG;AACxF,YAAM,kBAAkB,sBAAsB,UAAU;AACxD,YAAM,YAAY,oBAAO,GAAG,mBAAmB,UAAU;AAEzD,UAAI,UAAU;AACZ,mBAAW,gBAAgB,SAAS;AAAA;AACpC,mBAAW,uCAAuC,eAAe;AAAA;AACjE,mBAAW;AACX,mBAAW;AAAA,MACb,OAAO;AACL,mBAAW,gBAAgB,SAAS;AAAA;AACpC,mBAAW,uCAAuC,eAAe;AAAA;AACjE,mBAAW,mEAAmE,UAAU;AAAA;AACxF,mBAAW;AACX,mBAAW;AAAA,MACb;AAAA,IACF;AACA,eAAW;AACX,eAAW;AACX,WAAO;AAAA,EACT;AACF;",
6
- "names": []
7
- }