@botpress/cli 5.4.2 → 5.5.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.
- package/.turbo/turbo-build.log +12 -12
- package/dist/code-generation/integration-implementation/integration-secret.d.ts +1 -0
- package/dist/code-generation/integration-implementation/integration-secret.js +5 -2
- package/dist/code-generation/integration-implementation/integration-secret.js.map +2 -2
- package/dist/command-definitions.d.ts +6 -0
- package/dist/command-implementations/dev-command.d.ts +3 -0
- package/dist/command-implementations/dev-command.js +33 -1
- package/dist/command-implementations/dev-command.js.map +2 -2
- package/dist/command-implementations/index.d.ts +6 -0
- package/dist/command-implementations/project-command.d.ts +3 -0
- package/dist/command-implementations/project-command.js.map +2 -2
- package/dist/config.d.ts +6 -0
- package/dist/config.js +6 -0
- package/dist/config.js.map +2 -2
- package/dist/index.d.ts +6 -0
- package/dist/linter/ruleset-tests/interface.ruleset.test.js +0 -54
- package/dist/linter/ruleset-tests/interface.ruleset.test.js.map +2 -2
- package/dist/linter/rulesets/interface.ruleset.d.ts +0 -20
- package/dist/linter/rulesets/interface.ruleset.js +0 -14
- package/dist/linter/rulesets/interface.ruleset.js.map +2 -2
- package/dist/linter/spectral-functions.js +5 -4
- package/dist/linter/spectral-functions.js.map +2 -2
- package/package.json +3 -3
- package/templates/empty-bot/package.json +2 -2
- package/templates/empty-integration/package.json +2 -2
- package/templates/empty-plugin/package.json +1 -1
- package/templates/hello-world/package.json +2 -2
- package/templates/webhook-message/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/linter/spectral-functions.ts"],
|
|
4
|
-
"sourcesContent": ["import { IFunctionResult, RuleDefinition, RulesetFunctionContext } from '@stoplight/spectral-core'\nimport type { JsonPath, Segment } from '@stoplight/types'\nimport { JSONPath } from 'jsonpath-plus'\nimport { Logger } from '../logger'\n\nexport const TRUTHY_WITH_MESSAGE_ID = 'truthyWithMessage'\n\ntype SpectralDocument = RulesetFunctionContext['document']\ntype RulesetThenFn = Exclude<RuleDefinition['then'], Array<any>>['function']\n\ntype MessageFn = ({ path, isFallback }: { path: (string | number)[]; isFallback: boolean }) => string\ntype TruthyWithMessageOptions = {\n failMsgMapper: MessageFn\n fallbackExtractor: FallbackExtractor\n}\n\n/** Extracts a fallback result that will be tested for truthiness */\ntype FallbackExtractor = (\n failedPath: JsonPath,\n jsonPathExtractor: (fallbackPath: string) => { resolvedPath: JsonPath; value: any }[]\n) => { path: JsonPath; value: string } | null\n\nconst
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,2BAAyB;AACzB,oBAAuB;AAEhB,MAAM,yBAAyB;AAiBtC,MAAM,
|
|
4
|
+
"sourcesContent": ["import { IFunctionResult, RuleDefinition, RulesetFunctionContext } from '@stoplight/spectral-core'\nimport type { JsonPath, Segment } from '@stoplight/types'\nimport { JSONPath } from 'jsonpath-plus'\nimport { Logger } from '../logger'\n\nexport const TRUTHY_WITH_MESSAGE_ID = 'truthyWithMessage'\n\ntype SpectralDocument = RulesetFunctionContext['document']\ntype RulesetThenFn = Exclude<RuleDefinition['then'], Array<any>>['function']\n\ntype MessageFn = ({ path, isFallback }: { path: (string | number)[]; isFallback: boolean }) => string\ntype TruthyWithMessageOptions = {\n failMsgMapper: MessageFn\n fallbackExtractor: FallbackExtractor\n}\n\n/** Extracts a fallback result that will be tested for truthiness */\ntype FallbackExtractor = (\n failedPath: JsonPath,\n jsonPathExtractor: (fallbackPath: string) => { resolvedPath: JsonPath; value: any }[]\n) => { path: JsonPath; value: string } | null\n\nconst _anyOrAllOfFallbackExtractor = (\n /** The relative path from within the \"anyOf\" node */\n pathFromAnyOf: Segment[],\n options: { pathBackoff?: number } = {}\n): FallbackExtractor => {\n const { pathBackoff = pathFromAnyOf.length } = options\n\n if (pathBackoff < 0 || !Number.isInteger(pathBackoff)) {\n throw new Error('Path backoff must be a non-negative integer')\n }\n\n const anyOrAllOfSegment = '[?(@property === \"allOf\" || @property === \"anyOf\")][*]'\n return (failedPath, jsonPathExtractor) => {\n const spliceIndex = failedPath.length - pathBackoff\n const newPath = `$.${failedPath.toSpliced(spliceIndex, pathBackoff, anyOrAllOfSegment, ...pathFromAnyOf).join('.')}`\n const match = jsonPathExtractor(newPath).find(({ value }) => typeof value === 'string')\n return match ? { value: match.value, path: match.resolvedPath } : null\n }\n}\n\nexport const titleFallbackExtractor: FallbackExtractor = _anyOrAllOfFallbackExtractor(['x-zui', 'title'])\nexport const descriptionFallbackExtractor: FallbackExtractor = _anyOrAllOfFallbackExtractor(['description'])\n\n/**\n * When the input is falsy, return a message that is generated by the provided function\n *\n * @remark When using the `fallbackExtractor`, it's expected to use a portion\n * of the resolved path so the fallback query continues from that point.\n */\nexport function truthyWithMessage(failMsgMapper: MessageFn): RulesetThenFn\nexport function truthyWithMessage(options: TruthyWithMessageOptions): RulesetThenFn\nexport function truthyWithMessage(failMsgMapperOrOptions: MessageFn | TruthyWithMessageOptions): RulesetThenFn {\n const { failMsgMapper, fallbackExtractor } =\n typeof failMsgMapperOrOptions === 'function' ? { failMsgMapper: failMsgMapperOrOptions } : failMsgMapperOrOptions\n\n const fn = (input: string, options: unknown, context: RulesetFunctionContext) => {\n const messages: IFunctionResult[] = []\n\n if (!_isFalsy(input)) {\n return messages\n }\n\n const logger = _extractLoggerFromOptions(options)\n\n const { path } = context\n if (!fallbackExtractor) {\n const message = failMsgMapper({ path, isFallback: false })\n messages.push({ message })\n } else {\n const jsonPathFn = _extractJsonPath.bind(null, context.document)\n try {\n const fallbackResult = fallbackExtractor(path, jsonPathFn)\n if (fallbackResult === null || _isFalsy(fallbackResult.value)) {\n const isFallback = fallbackResult !== null\n const resolvedPath = isFallback ? fallbackResult.path : path\n\n if (!Array.isArray(resolvedPath)) {\n // This is likely due to a mistake in the fallbackExtractor,\n // which is easy to make since there are \"any\" types involved\n throw new Error('The resolved path was not provided or is invalid')\n }\n\n const message = failMsgMapper({ path: resolvedPath, isFallback })\n messages.push({ message })\n\n // This is for the unit tests\n context.path = resolvedPath\n }\n } catch (thrown: unknown) {\n const error = thrown instanceof Error ? thrown : new Error(String(thrown))\n const message = `[${_getRuleDescriptor(context)}] Ruleset failed in either the fallback extractor or the message supplier -> ${error.message}`\n if (logger) {\n logger.error(message)\n } else {\n messages.push({\n message: message + '\\n[IGNORE] ->',\n })\n }\n }\n }\n\n return messages\n }\n\n Object.defineProperty(fn, 'name', {\n value: TRUTHY_WITH_MESSAGE_ID,\n configurable: false,\n writable: false,\n })\n return fn\n}\n\nconst _getRuleDescriptor = (context: RulesetFunctionContext): string | null =>\n ('name' in context.rule ? `${context.rule.name}` : context.rule.description) ?? '<unknown-rule>'\n\nconst _isFalsy = (input: string): boolean => {\n return !input\n}\n\n/** Parses the equivalent of Stoplight's JsonPath from the JsonPath-plus \"pointer\" output */\nconst _parseJsonPathPointer = (pointer: string): JsonPath => {\n return pointer\n .replace(/^\\//, '')\n .split('/')\n .map((segment: string) => {\n // Do not use \"parseInt\" here\n const numOrNan = Number(segment)\n return isNaN(numOrNan) ? segment : numOrNan\n })\n}\n\nconst _isObjectAndHasProp = <K extends string>(obj: unknown, key: K): obj is Record<K, unknown> => {\n return typeof obj === 'object' ? _safeHasProp(obj, key) : false\n}\n\n// This is safer than `\"key\" in obj` when\n// dealing with an unknown/any variable\nconst _safeHasProp = (obj: unknown, key: string) => {\n return {}.hasOwnProperty.call(obj ?? {}, key)\n}\n\nconst _extractJsonPath = (schemaDocument: SpectralDocument, fallbackJsonPath: string) => {\n const output = JSONPath({\n path: fallbackJsonPath,\n json: schemaDocument.data as object,\n resultType: 'all',\n })\n\n // Sanity check (Error should never actually be thrown)\n if (!Array.isArray(output)) {\n throw new Error('JSONPath output is not an array')\n }\n\n // There is a \"path\" property, but it's serialized in a way that is harder to parse than \"pointer\"\n if (!output.every((result) => _safeHasProp(result, 'value') && _safeHasProp(result, 'pointer'))) {\n throw new Error(\"Fallback JSONPath output is missing either one or both the 'value' or 'pointer' property\")\n }\n\n return output.map((result) => {\n const resolvedPath = _parseJsonPathPointer(result.pointer)\n return { resolvedPath, value: result.value }\n })\n}\n\nconst _extractLoggerFromOptions = (options: unknown): Logger | null => {\n if (!_isObjectAndHasProp(options, 'logger')) {\n return null\n }\n\n return options.logger instanceof Logger ? options.logger : null\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botpress/cli",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.5.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.4",
|
|
30
|
-
"@botpress/client": "1.
|
|
31
|
-
"@botpress/sdk": "5.3.
|
|
30
|
+
"@botpress/client": "1.31.0",
|
|
31
|
+
"@botpress/sdk": "5.3.2",
|
|
32
32
|
"@bpinternal/const": "^0.1.0",
|
|
33
33
|
"@bpinternal/tunnel": "^0.1.1",
|
|
34
34
|
"@bpinternal/verel": "^0.2.0",
|