@openclaw/line 2026.9.3 → 2026.9.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/assets/activity.svg +40 -0
- package/assets/icon.png +0 -0
- package/dist/.setup/api-BePkCTWu.mjs +3 -0
- package/dist/.setup/api-W3zy11mj.mjs +11 -0
- package/dist/{card-command-pwvE48Wb.js → .setup/card-command-PSnrhetp.mjs} +2 -2
- package/dist/{channel-DKU9GRRC.js → .setup/channel-CAFu4vuW.mjs} +286 -91
- package/dist/.setup/channel.runtime-CgI6K6p-.mjs +4 -0
- package/dist/{markdown-to-line-B-sj-7II.js → .setup/markdown-to-line-Dvyr_6HD.mjs} +83 -43
- package/dist/{monitor-Bp2VIzkG.js → .setup/monitor-1JaX1WOU.mjs} +393 -135
- package/dist/.setup/monitor.runtime-D2vNVJRD.mjs +2 -0
- package/dist/{outbound.runtime-CGqyJ-Ug.js → .setup/outbound.runtime-CyrwiL69.mjs} +2 -2
- package/dist/.setup/probe.runtime-kp-FIW5_.mjs +2 -0
- package/dist/{rich-messages-HS8pNeOa.js → .setup/rich-messages-Cp77q9NY.mjs} +158 -18
- package/dist/{send-CQQxpxPp.js → .setup/send-E6GiL_tr.mjs} +27 -10
- package/dist/{send-retry-ChpfJ-LM.js → .setup/send-retry-DaGwYlBO.mjs} +104 -3
- package/dist/{setup-surface-DiXO4x5f.js → .setup/setup-surface-CcfKJKtr.mjs} +2 -2
- package/dist/api.js +2 -10
- package/dist/channel-plugin-api.js +1 -1
- package/dist/contract-api.js +1 -1
- package/dist/doctor-contract-api.js +1 -1
- package/dist/index.js +1 -1
- package/dist/runtime-api.js +10 -10
- package/dist/setup-api.js +1 -1
- package/dist/setup-entry.js +2 -1
- package/node_modules/typebox/build/compile/validator.d.mts +1 -1
- package/node_modules/typebox/build/compile/validator.mjs +1 -1
- package/node_modules/typebox/build/format/idna/idn-hostname.mjs +7 -5
- package/node_modules/typebox/build/format/iri.mjs +5 -1
- package/node_modules/typebox/build/guard/emit.mjs +2 -4
- package/node_modules/typebox/build/guard/guard.mjs +6 -18
- package/node_modules/typebox/build/guard/string.mjs +16 -24
- package/node_modules/typebox/build/schema/build.mjs +2 -2
- package/node_modules/typebox/build/schema/check.mjs +1 -1
- package/node_modules/typebox/build/schema/compile.d.mts +3 -2
- package/node_modules/typebox/build/schema/compile.mjs +8 -8
- package/node_modules/typebox/build/schema/engine/_context.d.mts +6 -7
- package/node_modules/typebox/build/schema/engine/_context.mjs +23 -15
- package/node_modules/typebox/build/schema/engine/_functions.d.mts +2 -2
- package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/_reducer.d.mts +3 -3
- package/node_modules/typebox/build/schema/engine/_refine.d.mts +5 -5
- package/node_modules/typebox/build/schema/engine/_refine.mjs +4 -7
- package/node_modules/typebox/build/schema/engine/_stack.d.mts +34 -16
- package/node_modules/typebox/build/schema/engine/_stack.mjs +148 -104
- package/node_modules/typebox/build/schema/engine/additionalItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +8 -8
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +26 -18
- package/node_modules/typebox/build/schema/engine/allOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/allOf.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/anyOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/anyOf.mjs +5 -10
- package/node_modules/typebox/build/schema/engine/boolean.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/boolean.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/const.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/const.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/contains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/contains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/dependencies.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dependencies.mjs +3 -6
- package/node_modules/typebox/build/schema/engine/dependentRequired.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dependentRequired.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/dependentSchemas.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +11 -7
- package/node_modules/typebox/build/schema/engine/enum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/enum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/exclusiveMaximum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/exclusiveMinimum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/format.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/format.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/if.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/if.mjs +7 -15
- package/node_modules/typebox/build/schema/engine/items.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/items.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/maxContains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxContains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxItems.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxLength.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxLength.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxProperties.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maximum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maximum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minContains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minContains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minItems.d.mts +5 -5
- package/node_modules/typebox/build/schema/engine/minItems.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minLength.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minLength.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minProperties.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minimum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minimum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/multipleOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/multipleOf.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/not.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/not.mjs +4 -8
- package/node_modules/typebox/build/schema/engine/oneOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/oneOf.mjs +6 -11
- package/node_modules/typebox/build/schema/engine/pattern.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -7
- package/node_modules/typebox/build/schema/engine/patternProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/patternProperties.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/prefixItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/prefixItems.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/properties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/properties.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/propertyNames.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/propertyNames.mjs +4 -10
- package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +11 -7
- package/node_modules/typebox/build/schema/engine/ref.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/ref.mjs +19 -15
- package/node_modules/typebox/build/schema/engine/required.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/required.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/schema.d.mts +7 -7
- package/node_modules/typebox/build/schema/engine/schema.mjs +137 -133
- package/node_modules/typebox/build/schema/engine/type.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/type.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/unevaluatedItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +5 -9
- package/node_modules/typebox/build/schema/engine/unevaluatedProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +5 -9
- package/node_modules/typebox/build/schema/engine/uniqueItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/uniqueItems.mjs +2 -6
- package/node_modules/typebox/build/schema/errors.d.mts +2 -2
- package/node_modules/typebox/build/schema/errors.mjs +8 -14
- package/node_modules/typebox/build/schema/intern/index.d.mts +1 -0
- package/node_modules/typebox/build/schema/intern/index.mjs +1 -0
- package/node_modules/typebox/build/schema/intern/intern.d.mts +11 -0
- package/node_modules/typebox/build/schema/intern/intern.mjs +293 -0
- package/node_modules/typebox/build/schema/meta/draft_2019_09.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_2019_09.mjs +288 -0
- package/node_modules/typebox/build/schema/meta/draft_2020_12.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_2020_12.mjs +300 -0
- package/node_modules/typebox/build/schema/meta/draft_3.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_3.mjs +143 -0
- package/node_modules/typebox/build/schema/meta/draft_4.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_4.mjs +149 -0
- package/node_modules/typebox/build/schema/meta/draft_6.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_6.mjs +155 -0
- package/node_modules/typebox/build/schema/meta/draft_7.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_7.mjs +172 -0
- package/node_modules/typebox/build/schema/meta/index.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/index.mjs +2 -0
- package/node_modules/typebox/build/schema/meta/meta.d.mts +9 -0
- package/node_modules/typebox/build/schema/meta/meta.mjs +15 -0
- package/node_modules/typebox/build/schema/meta/schema.d.mts +6 -0
- package/node_modules/typebox/build/schema/meta/schema.mjs +1 -0
- package/node_modules/typebox/build/schema/parse.d.mts +1 -0
- package/node_modules/typebox/build/schema/parse.mjs +10 -5
- package/node_modules/typebox/build/schema/resolve/resolve.d.mts +8 -3
- package/node_modules/typebox/build/schema/resolve/resolve.mjs +268 -139
- package/node_modules/typebox/build/schema/schema.d.mts +2 -0
- package/node_modules/typebox/build/schema/schema.mjs +2 -0
- package/node_modules/typebox/build/value/errors/errors.d.mts +2 -12
- package/node_modules/typebox/build/value/errors/errors.mjs +2 -7
- package/node_modules/typebox/package.json +1 -1
- package/node_modules/typebox/readme.md +59 -89
- package/node_modules/zod/README.md +27 -0
- package/node_modules/zod/compile.cjs +77 -0
- package/node_modules/zod/compile.d.cts +1 -0
- package/node_modules/zod/compile.d.ts +1 -0
- package/node_modules/zod/compile.js +52 -0
- package/node_modules/zod/index.cjs +2 -2
- package/node_modules/zod/index.d.cts +1 -2
- package/node_modules/zod/index.d.ts +1 -2
- package/node_modules/zod/index.js +5 -2
- package/node_modules/zod/package.json +13 -2
- package/node_modules/zod/src/compile.ts +56 -0
- package/node_modules/zod/src/index.ts +5 -2
- package/node_modules/zod/src/v3/ZodError.ts +22 -12
- package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
- package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
- package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
- package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
- package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
- package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
- package/node_modules/zod/src/v3/types.ts +5 -5
- package/node_modules/zod/src/v4/classic/checks.ts +1 -0
- package/node_modules/zod/src/v4/classic/compat.ts +26 -18
- package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
- package/node_modules/zod/src/v4/classic/errors.ts +59 -44
- package/node_modules/zod/src/v4/classic/external.ts +12 -9
- package/node_modules/zod/src/v4/classic/from-json-schema.ts +140 -78
- package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
- package/node_modules/zod/src/v4/classic/index.ts +2 -2
- package/node_modules/zod/src/v4/classic/iso.ts +2 -72
- package/node_modules/zod/src/v4/classic/parse.ts +10 -4
- package/node_modules/zod/src/v4/classic/schemas.ts +452 -262
- package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
- package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +135 -0
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +30 -1
- package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
- package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
- package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +720 -0
- package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
- package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
- package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
- package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
- package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
- package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +155 -13
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +11 -0
- package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +274 -6
- package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +425 -10
- package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
- package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
- package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
- package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
- package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +281 -0
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +47 -0
- package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
- package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +183 -0
- package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
- package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
- package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
- package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +46 -9
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +245 -12
- package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +234 -0
- package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
- package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
- package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
- package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
- package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +33 -2
- package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
- package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
- package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
- package/node_modules/zod/src/v4/classic/tests/string.test.ts +127 -5
- package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +11 -2
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1585 -173
- package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
- package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
- package/node_modules/zod/src/v4/classic/tests/validate.test.ts +76 -0
- package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
- package/node_modules/zod/src/v4/core/api.ts +48 -12
- package/node_modules/zod/src/v4/core/checks.ts +57 -44
- package/node_modules/zod/src/v4/core/compile.ts +2188 -0
- package/node_modules/zod/src/v4/core/core.ts +98 -19
- package/node_modules/zod/src/v4/core/doc.ts +11 -7
- package/node_modules/zod/src/v4/core/errors.ts +115 -24
- package/node_modules/zod/src/v4/core/index.ts +3 -0
- package/node_modules/zod/src/v4/core/json-schema-generator.ts +6 -1
- package/node_modules/zod/src/v4/core/json-schema-processors.ts +257 -93
- package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
- package/node_modules/zod/src/v4/core/memoizer.ts +284 -0
- package/node_modules/zod/src/v4/core/parse.ts +131 -38
- package/node_modules/zod/src/v4/core/regexes.ts +30 -13
- package/node_modules/zod/src/v4/core/registries.ts +2 -2
- package/node_modules/zod/src/v4/core/schemas.ts +759 -461
- package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +969 -0
- package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
- package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
- package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
- package/node_modules/zod/src/v4/core/tests/compile.test.ts +1639 -0
- package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
- package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
- package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
- package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
- package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +31 -0
- package/node_modules/zod/src/v4/core/to-json-schema.ts +275 -42
- package/node_modules/zod/src/v4/core/util.ts +268 -42
- package/node_modules/zod/src/v4/core/versions.ts +2 -2
- package/node_modules/zod/src/v4/core/visit.ts +193 -0
- package/node_modules/zod/src/v4/index.ts +3 -3
- package/node_modules/zod/src/v4/locales/ar.ts +3 -0
- package/node_modules/zod/src/v4/locales/az.ts +3 -0
- package/node_modules/zod/src/v4/locales/be.ts +10 -0
- package/node_modules/zod/src/v4/locales/bg.ts +3 -0
- package/node_modules/zod/src/v4/locales/bn.ts +121 -0
- package/node_modules/zod/src/v4/locales/ca.ts +3 -0
- package/node_modules/zod/src/v4/locales/ckb.ts +138 -0
- package/node_modules/zod/src/v4/locales/cs.ts +3 -0
- package/node_modules/zod/src/v4/locales/da.ts +5 -2
- package/node_modules/zod/src/v4/locales/de.ts +3 -0
- package/node_modules/zod/src/v4/locales/el.ts +1 -0
- package/node_modules/zod/src/v4/locales/en.ts +15 -4
- package/node_modules/zod/src/v4/locales/eo.ts +3 -0
- package/node_modules/zod/src/v4/locales/es.ts +2 -0
- package/node_modules/zod/src/v4/locales/fa.ts +3 -0
- package/node_modules/zod/src/v4/locales/fi.ts +3 -0
- package/node_modules/zod/src/v4/locales/fr-CA.ts +3 -0
- package/node_modules/zod/src/v4/locales/fr.ts +19 -14
- package/node_modules/zod/src/v4/locales/gu.ts +121 -0
- package/node_modules/zod/src/v4/locales/he.ts +6 -1
- package/node_modules/zod/src/v4/locales/hi.ts +124 -0
- package/node_modules/zod/src/v4/locales/hr.ts +2 -0
- package/node_modules/zod/src/v4/locales/hu.ts +3 -0
- package/node_modules/zod/src/v4/locales/hy.ts +9 -0
- package/node_modules/zod/src/v4/locales/id.ts +3 -0
- package/node_modules/zod/src/v4/locales/index.ts +10 -0
- package/node_modules/zod/src/v4/locales/is.ts +3 -0
- package/node_modules/zod/src/v4/locales/it.ts +3 -0
- package/node_modules/zod/src/v4/locales/ja.ts +3 -0
- package/node_modules/zod/src/v4/locales/ka.ts +3 -0
- package/node_modules/zod/src/v4/locales/km.ts +3 -0
- package/node_modules/zod/src/v4/locales/kn.ts +124 -0
- package/node_modules/zod/src/v4/locales/ko.ts +3 -0
- package/node_modules/zod/src/v4/locales/lt.ts +2 -0
- package/node_modules/zod/src/v4/locales/mk.ts +3 -0
- package/node_modules/zod/src/v4/locales/ms.ts +3 -0
- package/node_modules/zod/src/v4/locales/ne.ts +126 -0
- package/node_modules/zod/src/v4/locales/nl.ts +3 -0
- package/node_modules/zod/src/v4/locales/nn.ts +119 -0
- package/node_modules/zod/src/v4/locales/no.ts +5 -2
- package/node_modules/zod/src/v4/locales/ota.ts +3 -0
- package/node_modules/zod/src/v4/locales/pl.ts +3 -0
- package/node_modules/zod/src/v4/locales/ps.ts +3 -0
- package/node_modules/zod/src/v4/locales/pt-BR.ts +159 -0
- package/node_modules/zod/src/v4/locales/pt.ts +99 -58
- package/node_modules/zod/src/v4/locales/ro.ts +1 -0
- package/node_modules/zod/src/v4/locales/ru.ts +10 -0
- package/node_modules/zod/src/v4/locales/sk.ts +121 -0
- package/node_modules/zod/src/v4/locales/sl.ts +3 -0
- package/node_modules/zod/src/v4/locales/sv.ts +5 -2
- package/node_modules/zod/src/v4/locales/ta.ts +3 -0
- package/node_modules/zod/src/v4/locales/th.ts +3 -0
- package/node_modules/zod/src/v4/locales/tk.ts +111 -0
- package/node_modules/zod/src/v4/locales/tr.ts +3 -0
- package/node_modules/zod/src/v4/locales/uk.ts +3 -0
- package/node_modules/zod/src/v4/locales/ur.ts +3 -0
- package/node_modules/zod/src/v4/locales/uz.ts +1 -0
- package/node_modules/zod/src/v4/locales/vi.ts +3 -0
- package/node_modules/zod/src/v4/locales/yo.ts +3 -0
- package/node_modules/zod/src/v4/locales/zh-CN.ts +3 -0
- package/node_modules/zod/src/v4/locales/zh-TW.ts +3 -0
- package/node_modules/zod/src/v4/mini/checks.ts +1 -0
- package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
- package/node_modules/zod/src/v4/mini/external.ts +10 -1
- package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
- package/node_modules/zod/src/v4/mini/parse.ts +2 -0
- package/node_modules/zod/src/v4/mini/schemas.ts +135 -56
- package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
- package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
- package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
- package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
- package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
- package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +72 -5
- package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
- package/node_modules/zod/src/v4/mini/tests/string.test.ts +21 -0
- package/node_modules/zod/v3/ZodError.cjs +22 -12
- package/node_modules/zod/v3/ZodError.d.cts +1 -1
- package/node_modules/zod/v3/ZodError.d.ts +1 -1
- package/node_modules/zod/v3/ZodError.js +22 -12
- package/node_modules/zod/v3/types.cjs +7 -5
- package/node_modules/zod/v3/types.js +7 -5
- package/node_modules/zod/v4/classic/checks.cjs +2 -1
- package/node_modules/zod/v4/classic/checks.d.cts +1 -1
- package/node_modules/zod/v4/classic/checks.d.ts +1 -1
- package/node_modules/zod/v4/classic/checks.js +1 -1
- package/node_modules/zod/v4/classic/compat.d.cts +9 -11
- package/node_modules/zod/v4/classic/compat.d.ts +9 -11
- package/node_modules/zod/v4/classic/deep-partial.cjs +39 -0
- package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.js +13 -0
- package/node_modules/zod/v4/classic/errors.cjs +43 -34
- package/node_modules/zod/v4/classic/errors.d.cts +3 -4
- package/node_modules/zod/v4/classic/errors.d.ts +3 -4
- package/node_modules/zod/v4/classic/errors.js +43 -34
- package/node_modules/zod/v4/classic/external.cjs +30 -27
- package/node_modules/zod/v4/classic/external.d.cts +5 -2
- package/node_modules/zod/v4/classic/external.d.ts +5 -2
- package/node_modules/zod/v4/classic/external.js +5 -8
- package/node_modules/zod/v4/classic/from-json-schema.cjs +136 -75
- package/node_modules/zod/v4/classic/from-json-schema.js +136 -75
- package/node_modules/zod/v4/classic/in-out.cjs +63 -0
- package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
- package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
- package/node_modules/zod/v4/classic/in-out.js +36 -0
- package/node_modules/zod/v4/classic/index.cjs +2 -2
- package/node_modules/zod/v4/classic/index.d.cts +1 -2
- package/node_modules/zod/v4/classic/index.d.ts +1 -2
- package/node_modules/zod/v4/classic/index.js +2 -2
- package/node_modules/zod/v4/classic/iso.cjs +11 -22
- package/node_modules/zod/v4/classic/iso.d.cts +2 -17
- package/node_modules/zod/v4/classic/iso.d.ts +2 -17
- package/node_modules/zod/v4/classic/iso.js +2 -17
- package/node_modules/zod/v4/classic/parse.cjs +4 -1
- package/node_modules/zod/v4/classic/parse.d.cts +17 -4
- package/node_modules/zod/v4/classic/parse.d.ts +17 -4
- package/node_modules/zod/v4/classic/parse.js +1 -0
- package/node_modules/zod/v4/classic/schemas.cjs +498 -398
- package/node_modules/zod/v4/classic/schemas.d.cts +53 -18
- package/node_modules/zod/v4/classic/schemas.d.ts +53 -18
- package/node_modules/zod/v4/classic/schemas.js +492 -396
- package/node_modules/zod/v4/core/api.cjs +23 -4
- package/node_modules/zod/v4/core/api.d.cts +13 -9
- package/node_modules/zod/v4/core/api.d.ts +13 -9
- package/node_modules/zod/v4/core/api.js +21 -4
- package/node_modules/zod/v4/core/checks.cjs +37 -31
- package/node_modules/zod/v4/core/checks.d.cts +13 -13
- package/node_modules/zod/v4/core/checks.d.ts +13 -13
- package/node_modules/zod/v4/core/checks.js +37 -31
- package/node_modules/zod/v4/core/compile.cjs +1813 -0
- package/node_modules/zod/v4/core/compile.d.cts +51 -0
- package/node_modules/zod/v4/core/compile.d.ts +51 -0
- package/node_modules/zod/v4/core/compile.js +1783 -0
- package/node_modules/zod/v4/core/core.cjs +81 -18
- package/node_modules/zod/v4/core/core.d.cts +16 -4
- package/node_modules/zod/v4/core/core.d.ts +16 -4
- package/node_modules/zod/v4/core/core.js +82 -19
- package/node_modules/zod/v4/core/doc.cjs +5 -7
- package/node_modules/zod/v4/core/doc.d.cts +3 -1
- package/node_modules/zod/v4/core/doc.d.ts +3 -1
- package/node_modules/zod/v4/core/doc.js +5 -7
- package/node_modules/zod/v4/core/errors.cjs +110 -25
- package/node_modules/zod/v4/core/errors.d.cts +4 -0
- package/node_modules/zod/v4/core/errors.d.ts +4 -0
- package/node_modules/zod/v4/core/errors.js +110 -25
- package/node_modules/zod/v4/core/index.cjs +5 -1
- package/node_modules/zod/v4/core/index.d.cts +3 -0
- package/node_modules/zod/v4/core/index.d.ts +3 -0
- package/node_modules/zod/v4/core/index.js +3 -0
- package/node_modules/zod/v4/core/json-schema-generator.cjs +4 -0
- package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.js +4 -0
- package/node_modules/zod/v4/core/json-schema-processors.cjs +264 -95
- package/node_modules/zod/v4/core/json-schema-processors.js +243 -97
- package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
- package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
- package/node_modules/zod/v4/core/memoizer.cjs +272 -0
- package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
- package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
- package/node_modules/zod/v4/core/memoizer.js +265 -0
- package/node_modules/zod/v4/core/parse.cjs +96 -34
- package/node_modules/zod/v4/core/parse.d.cts +14 -11
- package/node_modules/zod/v4/core/parse.d.ts +14 -11
- package/node_modules/zod/v4/core/parse.js +94 -33
- package/node_modules/zod/v4/core/regexes.cjs +27 -15
- package/node_modules/zod/v4/core/regexes.d.cts +2 -0
- package/node_modules/zod/v4/core/regexes.d.ts +2 -0
- package/node_modules/zod/v4/core/regexes.js +24 -13
- package/node_modules/zod/v4/core/registries.js +2 -2
- package/node_modules/zod/v4/core/schemas.cjs +537 -326
- package/node_modules/zod/v4/core/schemas.d.cts +100 -31
- package/node_modules/zod/v4/core/schemas.d.ts +100 -31
- package/node_modules/zod/v4/core/schemas.js +526 -325
- package/node_modules/zod/v4/core/to-json-schema.cjs +242 -39
- package/node_modules/zod/v4/core/to-json-schema.d.cts +42 -3
- package/node_modules/zod/v4/core/to-json-schema.d.ts +42 -3
- package/node_modules/zod/v4/core/to-json-schema.js +241 -39
- package/node_modules/zod/v4/core/util.cjs +212 -31
- package/node_modules/zod/v4/core/util.d.cts +58 -1
- package/node_modules/zod/v4/core/util.d.ts +58 -1
- package/node_modules/zod/v4/core/util.js +202 -30
- package/node_modules/zod/v4/core/versions.cjs +2 -2
- package/node_modules/zod/v4/core/versions.d.cts +1 -1
- package/node_modules/zod/v4/core/versions.d.ts +1 -1
- package/node_modules/zod/v4/core/versions.js +2 -2
- package/node_modules/zod/v4/core/visit.cjs +195 -0
- package/node_modules/zod/v4/core/visit.d.cts +30 -0
- package/node_modules/zod/v4/core/visit.d.ts +30 -0
- package/node_modules/zod/v4/core/visit.js +169 -0
- package/node_modules/zod/v4/index.cjs +15 -5
- package/node_modules/zod/v4/index.d.cts +2 -2
- package/node_modules/zod/v4/index.d.ts +2 -2
- package/node_modules/zod/v4/index.js +3 -2
- package/node_modules/zod/v4/locales/ar.cjs +3 -0
- package/node_modules/zod/v4/locales/ar.js +3 -0
- package/node_modules/zod/v4/locales/az.cjs +3 -0
- package/node_modules/zod/v4/locales/az.js +3 -0
- package/node_modules/zod/v4/locales/be.cjs +10 -0
- package/node_modules/zod/v4/locales/be.js +10 -0
- package/node_modules/zod/v4/locales/bg.cjs +3 -0
- package/node_modules/zod/v4/locales/bg.js +3 -0
- package/node_modules/zod/v4/locales/bn.cjs +138 -0
- package/node_modules/zod/v4/locales/bn.d.cts +5 -0
- package/node_modules/zod/v4/locales/bn.d.ts +4 -0
- package/node_modules/zod/v4/locales/bn.js +111 -0
- package/node_modules/zod/v4/locales/ca.cjs +3 -0
- package/node_modules/zod/v4/locales/ca.js +3 -0
- package/node_modules/zod/v4/locales/ckb.cjs +158 -0
- package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
- package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
- package/node_modules/zod/v4/locales/ckb.js +131 -0
- package/node_modules/zod/v4/locales/cs.cjs +3 -0
- package/node_modules/zod/v4/locales/cs.js +3 -0
- package/node_modules/zod/v4/locales/da.cjs +5 -2
- package/node_modules/zod/v4/locales/da.js +5 -2
- package/node_modules/zod/v4/locales/de.cjs +3 -0
- package/node_modules/zod/v4/locales/de.js +3 -0
- package/node_modules/zod/v4/locales/el.cjs +1 -0
- package/node_modules/zod/v4/locales/el.js +1 -0
- package/node_modules/zod/v4/locales/en.cjs +14 -4
- package/node_modules/zod/v4/locales/en.js +14 -4
- package/node_modules/zod/v4/locales/eo.cjs +3 -0
- package/node_modules/zod/v4/locales/eo.js +3 -0
- package/node_modules/zod/v4/locales/es.cjs +2 -0
- package/node_modules/zod/v4/locales/es.js +2 -0
- package/node_modules/zod/v4/locales/fa.cjs +3 -0
- package/node_modules/zod/v4/locales/fa.js +3 -0
- package/node_modules/zod/v4/locales/fi.cjs +3 -0
- package/node_modules/zod/v4/locales/fi.js +3 -0
- package/node_modules/zod/v4/locales/fr-CA.cjs +3 -0
- package/node_modules/zod/v4/locales/fr-CA.js +3 -0
- package/node_modules/zod/v4/locales/fr.cjs +16 -14
- package/node_modules/zod/v4/locales/fr.js +16 -14
- package/node_modules/zod/v4/locales/gu.cjs +138 -0
- package/node_modules/zod/v4/locales/gu.d.cts +5 -0
- package/node_modules/zod/v4/locales/gu.d.ts +4 -0
- package/node_modules/zod/v4/locales/gu.js +111 -0
- package/node_modules/zod/v4/locales/he.cjs +5 -0
- package/node_modules/zod/v4/locales/he.js +5 -0
- package/node_modules/zod/v4/locales/hi.cjs +136 -0
- package/node_modules/zod/v4/locales/hi.d.cts +5 -0
- package/node_modules/zod/v4/locales/hi.d.ts +4 -0
- package/node_modules/zod/v4/locales/hi.js +109 -0
- package/node_modules/zod/v4/locales/hr.cjs +2 -0
- package/node_modules/zod/v4/locales/hr.js +2 -0
- package/node_modules/zod/v4/locales/hu.cjs +3 -0
- package/node_modules/zod/v4/locales/hu.js +3 -0
- package/node_modules/zod/v4/locales/hy.cjs +9 -0
- package/node_modules/zod/v4/locales/hy.js +9 -0
- package/node_modules/zod/v4/locales/id.cjs +3 -0
- package/node_modules/zod/v4/locales/id.js +3 -0
- package/node_modules/zod/v4/locales/index.cjs +22 -2
- package/node_modules/zod/v4/locales/index.d.cts +10 -0
- package/node_modules/zod/v4/locales/index.d.ts +10 -0
- package/node_modules/zod/v4/locales/index.js +10 -0
- package/node_modules/zod/v4/locales/is.cjs +3 -0
- package/node_modules/zod/v4/locales/is.js +3 -0
- package/node_modules/zod/v4/locales/it.cjs +3 -0
- package/node_modules/zod/v4/locales/it.js +3 -0
- package/node_modules/zod/v4/locales/ja.cjs +3 -0
- package/node_modules/zod/v4/locales/ja.js +3 -0
- package/node_modules/zod/v4/locales/ka.cjs +3 -0
- package/node_modules/zod/v4/locales/ka.js +3 -0
- package/node_modules/zod/v4/locales/km.cjs +3 -0
- package/node_modules/zod/v4/locales/km.js +3 -0
- package/node_modules/zod/v4/locales/kn.cjs +141 -0
- package/node_modules/zod/v4/locales/kn.d.cts +5 -0
- package/node_modules/zod/v4/locales/kn.d.ts +4 -0
- package/node_modules/zod/v4/locales/kn.js +114 -0
- package/node_modules/zod/v4/locales/ko.cjs +3 -0
- package/node_modules/zod/v4/locales/ko.js +3 -0
- package/node_modules/zod/v4/locales/lt.cjs +2 -0
- package/node_modules/zod/v4/locales/lt.js +2 -0
- package/node_modules/zod/v4/locales/mk.cjs +3 -0
- package/node_modules/zod/v4/locales/mk.js +3 -0
- package/node_modules/zod/v4/locales/ms.cjs +3 -0
- package/node_modules/zod/v4/locales/ms.js +3 -0
- package/node_modules/zod/v4/locales/ne.cjs +136 -0
- package/node_modules/zod/v4/locales/ne.d.cts +5 -0
- package/node_modules/zod/v4/locales/ne.d.ts +4 -0
- package/node_modules/zod/v4/locales/ne.js +109 -0
- package/node_modules/zod/v4/locales/nl.cjs +3 -0
- package/node_modules/zod/v4/locales/nl.js +3 -0
- package/node_modules/zod/v4/locales/nn.cjs +138 -0
- package/node_modules/zod/v4/locales/nn.d.cts +5 -0
- package/node_modules/zod/v4/locales/nn.d.ts +4 -0
- package/node_modules/zod/v4/locales/nn.js +111 -0
- package/node_modules/zod/v4/locales/no.cjs +5 -2
- package/node_modules/zod/v4/locales/no.js +5 -2
- package/node_modules/zod/v4/locales/ota.cjs +3 -0
- package/node_modules/zod/v4/locales/ota.js +3 -0
- package/node_modules/zod/v4/locales/pl.cjs +3 -0
- package/node_modules/zod/v4/locales/pl.js +3 -0
- package/node_modules/zod/v4/locales/ps.cjs +3 -0
- package/node_modules/zod/v4/locales/ps.js +3 -0
- package/node_modules/zod/v4/locales/pt-BR.cjs +168 -0
- package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
- package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
- package/node_modules/zod/v4/locales/pt-BR.js +141 -0
- package/node_modules/zod/v4/locales/pt.cjs +87 -55
- package/node_modules/zod/v4/locales/pt.js +87 -55
- package/node_modules/zod/v4/locales/ro.cjs +1 -0
- package/node_modules/zod/v4/locales/ro.js +1 -0
- package/node_modules/zod/v4/locales/ru.cjs +10 -0
- package/node_modules/zod/v4/locales/ru.js +10 -0
- package/node_modules/zod/v4/locales/sk.cjs +141 -0
- package/node_modules/zod/v4/locales/sk.d.cts +5 -0
- package/node_modules/zod/v4/locales/sk.d.ts +4 -0
- package/node_modules/zod/v4/locales/sk.js +114 -0
- package/node_modules/zod/v4/locales/sl.cjs +3 -0
- package/node_modules/zod/v4/locales/sl.js +3 -0
- package/node_modules/zod/v4/locales/sv.cjs +5 -2
- package/node_modules/zod/v4/locales/sv.js +5 -2
- package/node_modules/zod/v4/locales/ta.cjs +3 -0
- package/node_modules/zod/v4/locales/ta.js +3 -0
- package/node_modules/zod/v4/locales/th.cjs +3 -0
- package/node_modules/zod/v4/locales/th.js +3 -0
- package/node_modules/zod/v4/locales/tk.cjs +132 -0
- package/node_modules/zod/v4/locales/tk.d.cts +5 -0
- package/node_modules/zod/v4/locales/tk.d.ts +4 -0
- package/node_modules/zod/v4/locales/tk.js +105 -0
- package/node_modules/zod/v4/locales/tr.cjs +3 -0
- package/node_modules/zod/v4/locales/tr.js +3 -0
- package/node_modules/zod/v4/locales/uk.cjs +3 -0
- package/node_modules/zod/v4/locales/uk.js +3 -0
- package/node_modules/zod/v4/locales/ur.cjs +3 -0
- package/node_modules/zod/v4/locales/ur.js +3 -0
- package/node_modules/zod/v4/locales/uz.cjs +1 -0
- package/node_modules/zod/v4/locales/uz.js +1 -0
- package/node_modules/zod/v4/locales/vi.cjs +3 -0
- package/node_modules/zod/v4/locales/vi.js +3 -0
- package/node_modules/zod/v4/locales/yo.cjs +3 -0
- package/node_modules/zod/v4/locales/yo.js +3 -0
- package/node_modules/zod/v4/locales/zh-CN.cjs +3 -0
- package/node_modules/zod/v4/locales/zh-CN.js +3 -0
- package/node_modules/zod/v4/locales/zh-TW.cjs +3 -0
- package/node_modules/zod/v4/locales/zh-TW.js +3 -0
- package/node_modules/zod/v4/mini/checks.cjs +2 -1
- package/node_modules/zod/v4/mini/checks.d.cts +1 -1
- package/node_modules/zod/v4/mini/checks.d.ts +1 -1
- package/node_modules/zod/v4/mini/checks.js +1 -1
- package/node_modules/zod/v4/mini/deep-partial.cjs +39 -0
- package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.js +13 -0
- package/node_modules/zod/v4/mini/external.cjs +12 -1
- package/node_modules/zod/v4/mini/external.d.cts +5 -2
- package/node_modules/zod/v4/mini/external.d.ts +5 -2
- package/node_modules/zod/v4/mini/external.js +3 -1
- package/node_modules/zod/v4/mini/in-out.cjs +63 -0
- package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
- package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
- package/node_modules/zod/v4/mini/in-out.js +36 -0
- package/node_modules/zod/v4/mini/parse.cjs +3 -1
- package/node_modules/zod/v4/mini/parse.d.cts +1 -1
- package/node_modules/zod/v4/mini/parse.d.ts +1 -1
- package/node_modules/zod/v4/mini/parse.js +1 -1
- package/node_modules/zod/v4/mini/schemas.cjs +75 -47
- package/node_modules/zod/v4/mini/schemas.d.cts +43 -13
- package/node_modules/zod/v4/mini/schemas.d.ts +43 -13
- package/node_modules/zod/v4/mini/schemas.js +71 -45
- package/openclaw.plugin.json +123 -42
- package/package.json +16 -7
- package/dist/channel.runtime-Bq6dsWOi.js +0 -4
- package/dist/monitor.runtime-Bgm3Hcfu.js +0 -2
- package/dist/probe.runtime-CbtMgU4s.js +0 -2
- package/node_modules/zod/src/v4/core/config.ts +0 -15
- /package/dist/{account-helpers-BSUyZwLm.js → .setup/account-helpers-BSUyZwLm.mjs} +0 -0
- /package/dist/{accounts-BBEFMYbY.js → .setup/accounts-BBEFMYbY.mjs} +0 -0
- /package/dist/{webhook-spool-contract-1rY8OJw8.js → .setup/webhook-spool-contract-1rY8OJw8.mjs} +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { c as pushFlexMessage, d as pushMessageLine, f as pushMessagesLine, g as sendMessageLine, m as pushTextMessageWithQuickReplies, n as createLocationMessage, p as pushTemplateMessage, r as createQuickReplyItems, t as createFlexMessage, u as pushLocationMessage } from "./send-
|
|
1
|
+
import { a as buildTemplateMessageFromPayload, r as processLineMessage } from "./markdown-to-line-Dvyr_6HD.mjs";
|
|
2
|
+
import { c as pushFlexMessage, d as pushMessageLine, f as pushMessagesLine, g as sendMessageLine, m as pushTextMessageWithQuickReplies, n as createLocationMessage, p as pushTemplateMessage, r as createQuickReplyItems, t as createFlexMessage, u as pushLocationMessage } from "./send-E6GiL_tr.mjs";
|
|
3
3
|
export { buildTemplateMessageFromPayload, createFlexMessage, createLocationMessage, createQuickReplyItems, processLineMessage, pushFlexMessage, pushLocationMessage, pushMessageLine, pushMessagesLine, pushTemplateMessage, pushTextMessageWithQuickReplies, sendMessageLine };
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { i as resolveLineAccount } from "./accounts-BBEFMYbY.
|
|
2
|
-
import { t as hasLineCredentials } from "./account-helpers-BSUyZwLm.
|
|
3
|
-
import { S as fitsLineFlexBubble, b as truncateLineActionLabel, c as createAgendaCard, d as createActionCard, g as messageAction, l as createEventCard, y as postbackAction } from "./send-retry-
|
|
1
|
+
import { i as resolveLineAccount } from "./accounts-BBEFMYbY.mjs";
|
|
2
|
+
import { t as hasLineCredentials } from "./account-helpers-BSUyZwLm.mjs";
|
|
3
|
+
import { F as inferLineTargetChatType, S as fitsLineFlexBubble, b as truncateLineActionLabel, c as createAgendaCard, d as createActionCard, g as messageAction, l as createEventCard, y as postbackAction } from "./send-retry-DaGwYlBO.mjs";
|
|
4
4
|
import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
|
|
5
5
|
import { resolveAccountEntry } from "openclaw/plugin-sdk/account-resolution";
|
|
6
|
-
import { isRecord, normalizeLowercaseStringOrEmpty, normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
7
|
-
import { DmPolicySchema, GroupPolicySchema, buildChannelConfigSchema, buildGroupEntrySchema, buildMultiAccountChannelSchema, requireOpenAllowFrom } from "openclaw/plugin-sdk/channel-config-schema";
|
|
6
|
+
import { isRecord, normalizeLowercaseStringOrEmpty, normalizeOptionalString, normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
7
|
+
import { ChannelDeliveryStreamingConfigSchema, DmPolicySchema, GroupPolicySchema, buildChannelConfigSchema, buildGroupEntrySchema, buildMultiAccountChannelSchema, requireOpenAllowFrom } from "openclaw/plugin-sdk/channel-config-schema";
|
|
8
8
|
import { requireChannelOpenAllowFrom } from "openclaw/plugin-sdk/extension-shared";
|
|
9
9
|
import { z } from "zod";
|
|
10
|
+
import { firstDefined as firstDefined$1 } from "openclaw/plugin-sdk/allow-from";
|
|
10
11
|
import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
|
|
12
|
+
import { resolveAskUserQuestionOptionIndex, resolveAskUserQuestionOptionIndices } from "openclaw/plugin-sdk/reply-payload";
|
|
11
13
|
import { normalizeMessagePresentation, renderMessagePresentationFallbackText, renderPresentationForDelivery, resolveMessagePresentationButtonAction, resolveMessagePresentationOptionAction } from "openclaw/plugin-sdk/interactive-runtime";
|
|
12
14
|
import { Type } from "typebox";
|
|
13
15
|
//#region extensions/line/src/config-schema.ts
|
|
@@ -18,6 +20,11 @@ const ThreadBindingsSchema = z.object({
|
|
|
18
20
|
spawnSessions: z.boolean().optional(),
|
|
19
21
|
defaultSpawnContext: z.enum(["isolated", "fork"]).optional()
|
|
20
22
|
}).strict();
|
|
23
|
+
const LineReplyToModeSchema = z.enum([
|
|
24
|
+
"off",
|
|
25
|
+
"first",
|
|
26
|
+
"all"
|
|
27
|
+
]);
|
|
21
28
|
const LineCommonConfigSchemaBase = z.object({
|
|
22
29
|
enabled: z.boolean().optional(),
|
|
23
30
|
configWrites: z.boolean().optional(),
|
|
@@ -33,6 +40,8 @@ const LineCommonConfigSchemaBase = z.object({
|
|
|
33
40
|
dmPolicy: DmPolicySchema.optional().default("pairing"),
|
|
34
41
|
groupPolicy: GroupPolicySchema.optional().default("allowlist"),
|
|
35
42
|
responsePrefix: z.string().optional(),
|
|
43
|
+
replyToMode: LineReplyToModeSchema.optional(),
|
|
44
|
+
streaming: ChannelDeliveryStreamingConfigSchema.optional(),
|
|
36
45
|
mediaMaxMb: z.number().optional(),
|
|
37
46
|
webhookPath: z.string().optional(),
|
|
38
47
|
threadBindings: ThreadBindingsSchema.optional()
|
|
@@ -59,11 +68,21 @@ const LineChannelConfigSchema = buildChannelConfigSchema(LineConfigSchema, { uiH
|
|
|
59
68
|
help: "Post one brief introduction when the bot joins an allowed LINE group or multi-person room (default: true). Account settings override the channel-wide setting."
|
|
60
69
|
} } });
|
|
61
70
|
//#endregion
|
|
62
|
-
//#region extensions/line/src/
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
71
|
+
//#region extensions/line/src/bot-access.ts
|
|
72
|
+
function normalizeLineAllowEntry(value) {
|
|
73
|
+
const trimmed = String(value).trim();
|
|
74
|
+
if (!trimmed) return "";
|
|
75
|
+
if (trimmed === "*") return "*";
|
|
76
|
+
return trimmed.replace(/^line:(?:user:)?/i, "");
|
|
77
|
+
}
|
|
78
|
+
const normalizeAllowFrom = (list) => {
|
|
79
|
+
const entries = (list ?? []).map((value) => normalizeLineAllowEntry(value)).filter(Boolean);
|
|
80
|
+
return {
|
|
81
|
+
entries,
|
|
82
|
+
hasWildcard: entries.includes("*"),
|
|
83
|
+
hasEntries: entries.length > 0
|
|
84
|
+
};
|
|
85
|
+
};
|
|
67
86
|
//#endregion
|
|
68
87
|
//#region extensions/line/src/group-keys.ts
|
|
69
88
|
function resolveLineGroupLookupIds(groupId) {
|
|
@@ -103,6 +122,12 @@ function resolveExactLineGroupConfigKey(params) {
|
|
|
103
122
|
return resolveLineGroupLookupIds(params.groupId).find((candidate) => Object.hasOwn(groups, candidate));
|
|
104
123
|
}
|
|
105
124
|
//#endregion
|
|
125
|
+
//#region extensions/line/src/runtime.ts
|
|
126
|
+
const { setRuntime: setLineRuntime, getRuntime: getLineRuntime } = createPluginRuntimeStore({
|
|
127
|
+
pluginId: "line",
|
|
128
|
+
errorMessage: "LINE runtime not initialized - plugin not registered"
|
|
129
|
+
});
|
|
130
|
+
//#endregion
|
|
106
131
|
//#region extensions/line/src/quick-reply-fallback.ts
|
|
107
132
|
function buildLineQuickReplyFallbackText(labels) {
|
|
108
133
|
const normalized = normalizeStringEntries(labels ?? []).slice(0, 13);
|
|
@@ -432,6 +457,60 @@ function createDeviceControlCard(params) {
|
|
|
432
457
|
return bubble;
|
|
433
458
|
}
|
|
434
459
|
//#endregion
|
|
460
|
+
//#region extensions/line/src/question-postback.ts
|
|
461
|
+
const QUESTION_ID_PARAM = "line.question";
|
|
462
|
+
const OPTION_INDEX_PARAM = "line.option";
|
|
463
|
+
const POSTBACK_DATA_MAX_BYTES = 300;
|
|
464
|
+
function withinPostbackLimit(data) {
|
|
465
|
+
return Buffer.byteLength(data, "utf8") <= POSTBACK_DATA_MAX_BYTES ? data : void 0;
|
|
466
|
+
}
|
|
467
|
+
/** Encodes one ask_user choice into LINE postback data, or nothing when it cannot fit. */
|
|
468
|
+
function buildLineQuestionPostbackData(callback) {
|
|
469
|
+
const questionId = normalizeOptionalString(callback.questionId);
|
|
470
|
+
if (!questionId) return;
|
|
471
|
+
const params = new URLSearchParams({ [QUESTION_ID_PARAM]: questionId });
|
|
472
|
+
if (!Number.isInteger(callback.optionIndex) || callback.optionIndex < 0) return;
|
|
473
|
+
params.set(OPTION_INDEX_PARAM, String(callback.optionIndex));
|
|
474
|
+
return withinPostbackLimit(params.toString());
|
|
475
|
+
}
|
|
476
|
+
/** Reads a question choice back out of inbound postback data, if it carries one. */
|
|
477
|
+
function parseLineQuestionPostbackData(data) {
|
|
478
|
+
if (!data.includes(QUESTION_ID_PARAM)) return;
|
|
479
|
+
const params = new URLSearchParams(data);
|
|
480
|
+
const questionId = normalizeOptionalString(params.get(QUESTION_ID_PARAM));
|
|
481
|
+
if (!questionId) return;
|
|
482
|
+
const rawIndex = normalizeOptionalString(params.get(OPTION_INDEX_PARAM));
|
|
483
|
+
if (!rawIndex || !/^\d+$/.test(rawIndex)) return;
|
|
484
|
+
return {
|
|
485
|
+
questionId,
|
|
486
|
+
optionIndex: Number(rawIndex)
|
|
487
|
+
};
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* Submit an ask_user choice a LINE tap carried, and report only what the user needs.
|
|
491
|
+
*
|
|
492
|
+
* A successful answer needs no acknowledgement: the agent's own next reply is the
|
|
493
|
+
* feedback, and LINE already echoes the chosen label through the action's
|
|
494
|
+
* `displayText`. Only an answer that cannot land says so.
|
|
495
|
+
*/
|
|
496
|
+
async function resolveLineQuestionPostback(params) {
|
|
497
|
+
try {
|
|
498
|
+
const { questionGatewayRuntime } = await import("openclaw/plugin-sdk/question-gateway-runtime");
|
|
499
|
+
const result = await questionGatewayRuntime.resolveOption({
|
|
500
|
+
cfg: params.cfg,
|
|
501
|
+
questionId: params.callback.questionId,
|
|
502
|
+
senderId: params.senderId,
|
|
503
|
+
clientDisplayName: `LINE question (${params.accountId})`,
|
|
504
|
+
optionIndex: params.callback.optionIndex,
|
|
505
|
+
authorize: params.authorize
|
|
506
|
+
});
|
|
507
|
+
if (result.status === "answered" || result.status === "already-terminal" || result.status === "denied") return { status: result.status };
|
|
508
|
+
return { status: "failed" };
|
|
509
|
+
} catch {
|
|
510
|
+
return { status: "failed" };
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
//#endregion
|
|
435
514
|
//#region extensions/line/src/rich-messages.ts
|
|
436
515
|
const nonempty = () => Type.String({ minLength: 1 });
|
|
437
516
|
const closed = (properties) => Type.Object(properties, { additionalProperties: false });
|
|
@@ -544,9 +623,53 @@ const LINE_PRESENTATION_CAPABILITIES = {
|
|
|
544
623
|
text: { markdownDialect: "plain" }
|
|
545
624
|
}
|
|
546
625
|
};
|
|
547
|
-
|
|
626
|
+
/**
|
|
627
|
+
* Reads the choice one question button carries. The Gateway owns option order, so a
|
|
628
|
+
* tap sends the index it published, never the rendered label; a choice it no longer
|
|
629
|
+
* lists renders no button at all rather than a tap that answers the wrong option.
|
|
630
|
+
*/
|
|
631
|
+
function toLineQuestionChoice(action, questionOptionIndices) {
|
|
632
|
+
if ("intent" in action) return;
|
|
633
|
+
const optionIndex = resolveAskUserQuestionOptionIndex({
|
|
634
|
+
questionOptionIndices,
|
|
635
|
+
questionId: action.questionId,
|
|
636
|
+
optionValue: action.optionValue
|
|
637
|
+
});
|
|
638
|
+
return optionIndex === void 0 ? void 0 : {
|
|
639
|
+
questionId: action.questionId,
|
|
640
|
+
optionIndex
|
|
641
|
+
};
|
|
642
|
+
}
|
|
643
|
+
/**
|
|
644
|
+
* The free-text control is not drawn. LINE can open the composer on a tap
|
|
645
|
+
* (`inputOption: "openKeyboard"`), so the platform is not the reason: an answer
|
|
646
|
+
* is claimed only on the plain-text inbound path, which no postback reaches, so
|
|
647
|
+
* the button cannot change whether what follows it counts as the answer. It
|
|
648
|
+
* would add a tap that changes nothing the card's own words already offer, which
|
|
649
|
+
* is why Discord and Slack leave that route in text too.
|
|
650
|
+
*/
|
|
651
|
+
function isLineTextFallbackButton(button) {
|
|
652
|
+
const action = resolveMessagePresentationButtonAction(button);
|
|
653
|
+
return action?.type === "question" && "intent" in action && action.intent === "custom-input";
|
|
654
|
+
}
|
|
655
|
+
/** A control the Gateway owns, whose label the operator cannot disambiguate. */
|
|
656
|
+
function isLineQuestionButton(button) {
|
|
657
|
+
return resolveMessagePresentationButtonAction(button)?.type === "question";
|
|
658
|
+
}
|
|
659
|
+
function toLineAction(button, questionOptionIndices) {
|
|
548
660
|
const normalized = resolveMessagePresentationButtonAction(button);
|
|
549
661
|
const { label } = button;
|
|
662
|
+
if (normalized?.type === "question") {
|
|
663
|
+
const choice = toLineQuestionChoice(normalized, questionOptionIndices);
|
|
664
|
+
const data = choice && buildLineQuestionPostbackData(choice);
|
|
665
|
+
if (!data) return;
|
|
666
|
+
return {
|
|
667
|
+
type: "postback",
|
|
668
|
+
label,
|
|
669
|
+
data,
|
|
670
|
+
displayText: label
|
|
671
|
+
};
|
|
672
|
+
}
|
|
550
673
|
if (normalized?.type === "command") return {
|
|
551
674
|
type: "message",
|
|
552
675
|
label,
|
|
@@ -569,15 +692,30 @@ function toLineAction(button) {
|
|
|
569
692
|
uri: normalized.url
|
|
570
693
|
};
|
|
571
694
|
}
|
|
572
|
-
function renderLinePresentation(payload, presentation) {
|
|
695
|
+
function renderLinePresentation(payload, presentation, to, sourcePresentation = presentation) {
|
|
696
|
+
const hasQuestion = sourcePresentation.blocks.some((block) => block.type === "buttons" && block.buttons.some(isLineQuestionButton));
|
|
697
|
+
const hasAuthoredPrompt = Boolean(sourcePresentation.title?.trim()) || sourcePresentation.blocks.some((block) => (block.type === "text" || block.type === "context") && block.text.trim());
|
|
698
|
+
if (hasQuestion && !hasAuthoredPrompt) return null;
|
|
699
|
+
if (inferLineTargetChatType(to ?? "") !== "direct" && hasQuestion) return null;
|
|
573
700
|
const hasCard = presentation.blocks.some((block) => block.type === "buttons" && block.buttons.length > 0);
|
|
574
701
|
const buttons = [];
|
|
575
702
|
const quickReplyItems = [];
|
|
576
703
|
const carriedBlocks = [];
|
|
577
704
|
const cardBody = [];
|
|
705
|
+
const omittedControlLabels = [];
|
|
706
|
+
const questionLabels = /* @__PURE__ */ new Set();
|
|
707
|
+
const questionOptionIndices = resolveAskUserQuestionOptionIndices(payload);
|
|
578
708
|
for (const block of presentation.blocks) if (block.type === "buttons") for (const button of block.buttons) {
|
|
579
|
-
|
|
709
|
+
if (isLineTextFallbackButton(button)) {
|
|
710
|
+
omittedControlLabels.push(button.label);
|
|
711
|
+
continue;
|
|
712
|
+
}
|
|
713
|
+
const action = toLineAction(button, questionOptionIndices);
|
|
580
714
|
if (!action) return null;
|
|
715
|
+
if (isLineQuestionButton(button)) {
|
|
716
|
+
if (questionLabels.has(button.label)) return null;
|
|
717
|
+
questionLabels.add(button.label);
|
|
718
|
+
}
|
|
581
719
|
buttons.push({
|
|
582
720
|
label: button.label,
|
|
583
721
|
action
|
|
@@ -605,10 +743,12 @@ function renderLinePresentation(payload, presentation) {
|
|
|
605
743
|
} else if (!hasCard) carriedBlocks.push(block);
|
|
606
744
|
else if (block.type === "text" || block.type === "context") cardBody.push(block.text);
|
|
607
745
|
if (buttons.length === 0 && quickReplyItems.length === 0) return null;
|
|
746
|
+
if (hasCard && omittedControlLabels.length > 0) cardBody.push(`Actions:\n${omittedControlLabels.map((label) => `- ${label}`).join("\n")}`);
|
|
608
747
|
const lineData = isRecord(payload.channelData?.line) ? payload.channelData.line : {};
|
|
609
748
|
const title = presentation.title || "Choose an option";
|
|
749
|
+
const altText = presentation.title || cardBody[0] || title;
|
|
610
750
|
const flexMessage = hasCard ? {
|
|
611
|
-
altText
|
|
751
|
+
altText,
|
|
612
752
|
contents: createActionCard(title, cardBody.join("\n") || "Choose an option.", buttons)
|
|
613
753
|
} : void 0;
|
|
614
754
|
if (flexMessage && !fitsLineFlexBubble(flexMessage.contents)) return null;
|
|
@@ -639,13 +779,13 @@ function renderLinePresentation(payload, presentation) {
|
|
|
639
779
|
* replies the plugin delivers itself reach delivery with the controls still
|
|
640
780
|
* portable. Preparing them here keeps both LINE delivery paths on one rendering.
|
|
641
781
|
*/
|
|
642
|
-
async function prepareLineReplyPayload(payload) {
|
|
782
|
+
async function prepareLineReplyPayload(payload, to) {
|
|
643
783
|
if (!normalizeMessagePresentation(payload.presentation)) return payload;
|
|
644
784
|
const usesFallbackText = payload.presentationTextMode === "fallback" && Boolean(payload.text?.trim());
|
|
645
785
|
return renderPresentationForDelivery({
|
|
646
786
|
presentationCapabilities: LINE_PRESENTATION_CAPABILITIES,
|
|
647
|
-
renderPresentation: (adapted) => {
|
|
648
|
-
const rendered = renderLinePresentation(adapted, adapted.presentation);
|
|
787
|
+
renderPresentation: (adapted, sourcePresentation) => {
|
|
788
|
+
const rendered = renderLinePresentation(adapted, adapted.presentation, to, sourcePresentation);
|
|
649
789
|
return rendered && usesFallbackText && rendered.channelData.line.flexMessage === void 0 ? {
|
|
650
790
|
...rendered,
|
|
651
791
|
text: payload.text
|
|
@@ -729,4 +869,4 @@ function createLineQuickReply(items) {
|
|
|
729
869
|
})) };
|
|
730
870
|
}
|
|
731
871
|
//#endregion
|
|
732
|
-
export { LineChannelConfigSchema as _, renderLineCard as a,
|
|
872
|
+
export { LineConfigSchema as C, LineChannelConfigSchema as S, resolveLineGroupLookupIds as _, renderLineCard as a, normalizeAllowFrom as b, resolveLineQuestionPostback as c, createMediaPlayerCard as d, buildLineQuickReplyFallbackText as f, resolveLineGroupConfigEntry as g, resolveExactLineGroupConfigKey as h, prepareLineReplyPayload as i, createAppleTvRemoteCard as l, setLineRuntime as m, createLineQuickReply as n, renderLinePresentation as o, getLineRuntime as p, lineMessageActions as r, parseLineQuestionPostbackData as s, LINE_PRESENTATION_CAPABILITIES as t, createDeviceControlCard as u, resolveLineGroupsConfig as v, normalizeLineAllowEntry as x, firstDefined$1 as y };
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { i as resolveLineAccount } from "./accounts-BBEFMYbY.
|
|
2
|
-
import { g as messageAction, i as runLinePushWithRetries, o as resolveLineChannelAccessToken, s as createLineSendReceipt, v as normalizeLineMessage, w as
|
|
1
|
+
import { i as resolveLineAccount } from "./accounts-BBEFMYbY.mjs";
|
|
2
|
+
import { A as withoutLineQuoteTokens, g as messageAction, i as runLinePushWithRetries, j as buildLineMediaMessage, n as findLineHttpError, o as resolveLineChannelAccessToken, s as createLineSendReceipt, v as normalizeLineMessage, w as applyLineQuoteToken } from "./send-retry-DaGwYlBO.mjs";
|
|
3
3
|
import { createChannelPartialDeliveryError } from "openclaw/plugin-sdk/channel-inbound";
|
|
4
|
+
import { pruneMapToMaxSize } from "openclaw/plugin-sdk/collection-runtime";
|
|
5
|
+
import { logVerbose } from "openclaw/plugin-sdk/runtime-env";
|
|
4
6
|
import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
5
7
|
import { HTTPFetchError, messagingApi } from "@line/bot-sdk";
|
|
6
8
|
import { readProviderJsonResponse, readResponseTextLimited } from "openclaw/plugin-sdk/provider-http";
|
|
7
9
|
import { fetchWithRuntimeDispatcherOrMockedGlobal } from "openclaw/plugin-sdk/runtime-fetch";
|
|
8
|
-
import { logVerbose } from "openclaw/plugin-sdk/runtime-env";
|
|
9
10
|
import { randomUUID } from "node:crypto";
|
|
10
11
|
import lineBotSdkPackage from "@line/bot-sdk/package.json" with { type: "json" };
|
|
11
12
|
import { recordChannelActivity } from "openclaw/plugin-sdk/channel-activity-runtime";
|
|
12
|
-
import { pruneMapToMaxSize } from "openclaw/plugin-sdk/collection-runtime";
|
|
13
13
|
import { requireRuntimeConfig } from "openclaw/plugin-sdk/plugin-config-runtime";
|
|
14
14
|
import { createDedupeCache } from "openclaw/plugin-sdk/dedupe-runtime";
|
|
15
15
|
//#region extensions/line/src/outbound-message-log.ts
|
|
@@ -127,7 +127,24 @@ function createLinePushContext(to, opts) {
|
|
|
127
127
|
chatId: normalizeTarget(to)
|
|
128
128
|
};
|
|
129
129
|
}
|
|
130
|
-
async function sendLineProviderMessages(operation, token, request, retryKey) {
|
|
130
|
+
async function sendLineProviderMessages(operation, token, request, retryKey, authorize) {
|
|
131
|
+
try {
|
|
132
|
+
return await postLineProviderMessages(operation, token, request, retryKey, authorize);
|
|
133
|
+
} catch (error) {
|
|
134
|
+
const unquoted = findLineHttpError(error)?.status === 400 ? withoutLineQuoteTokens(request.messages) : void 0;
|
|
135
|
+
if (!unquoted) throw error;
|
|
136
|
+
return await postLineProviderMessages(operation, token, {
|
|
137
|
+
...request,
|
|
138
|
+
messages: unquoted
|
|
139
|
+
}, retryKey, authorize);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
async function postLineProviderMessages(operation, token, request, retryKey, authorize) {
|
|
143
|
+
const requestBody = JSON.stringify(request);
|
|
144
|
+
if (authorize) {
|
|
145
|
+
const authorized = authorize();
|
|
146
|
+
if (!(typeof authorized === "boolean" ? authorized : await authorized)) throw new Error("LINE send authorization denied");
|
|
147
|
+
}
|
|
131
148
|
const response = await fetchWithRuntimeDispatcherOrMockedGlobal(`https://api.line.me/v2/bot/message/${operation}`, {
|
|
132
149
|
method: "POST",
|
|
133
150
|
headers: {
|
|
@@ -136,7 +153,7 @@ async function sendLineProviderMessages(operation, token, request, retryKey) {
|
|
|
136
153
|
"User-Agent": `@line/bot-sdk/${lineBotSdkPackage.version}`,
|
|
137
154
|
...retryKey ? { "X-Line-Retry-Key": retryKey } : {}
|
|
138
155
|
},
|
|
139
|
-
body:
|
|
156
|
+
body: requestBody
|
|
140
157
|
});
|
|
141
158
|
const acceptedRetryConflict = retryKey !== void 0 && response.status === 409;
|
|
142
159
|
if (!response.ok && !acceptedRetryConflict) {
|
|
@@ -217,14 +234,14 @@ function resolveLineReceiptKind(messages) {
|
|
|
217
234
|
async function pushLineMessages(to, messages, opts, behavior = {}) {
|
|
218
235
|
if (messages.length === 0) throw new Error("Message must be non-empty for LINE sends");
|
|
219
236
|
const { account, token, chatId } = createLinePushContext(to, opts);
|
|
220
|
-
const normalizedMessages = messages.map(normalizeLineMessage);
|
|
237
|
+
const normalizedMessages = applyLineQuoteToken(messages, opts.quoteToken).map(normalizeLineMessage);
|
|
221
238
|
const retryKey = randomUUID();
|
|
222
239
|
const { messageId, messageIds } = resolveLineProviderMessageIds(await runLinePushWithRetries(async () => {
|
|
223
240
|
try {
|
|
224
241
|
return await sendLineProviderMessages("push", token, {
|
|
225
242
|
to: chatId,
|
|
226
243
|
messages: normalizedMessages
|
|
227
|
-
}, retryKey);
|
|
244
|
+
}, retryKey, opts.authorize);
|
|
228
245
|
} catch (err) {
|
|
229
246
|
if (behavior.errorContext) logLineHttpError(err, behavior.errorContext);
|
|
230
247
|
throw err;
|
|
@@ -256,8 +273,8 @@ async function replyLineMessages(replyToken, messages, opts) {
|
|
|
256
273
|
return {
|
|
257
274
|
...resolveLineProviderMessageIds(await sendLineProviderMessages("reply", token, {
|
|
258
275
|
replyToken,
|
|
259
|
-
messages: messages.map(normalizeLineMessage)
|
|
260
|
-
}), "reply"),
|
|
276
|
+
messages: applyLineQuoteToken(messages, opts.quoteToken).map(normalizeLineMessage)
|
|
277
|
+
}, void 0, opts.authorize), "reply"),
|
|
261
278
|
accountId: account.accountId
|
|
262
279
|
};
|
|
263
280
|
}
|
|
@@ -1,14 +1,29 @@
|
|
|
1
|
-
import { i as resolveLineAccount } from "./accounts-BBEFMYbY.
|
|
1
|
+
import { i as resolveLineAccount, n as normalizeAccountId, r as resolveDefaultLineAccountId } from "./accounts-BBEFMYbY.mjs";
|
|
2
2
|
import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
3
|
import { createMessageReceiptFromOutboundResults } from "openclaw/plugin-sdk/channel-outbound";
|
|
4
4
|
import { collectErrorGraphCandidates, extractErrorCode, formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
5
5
|
import { getFileExtension, mimeTypeFromFilePath } from "openclaw/plugin-sdk/media-mime";
|
|
6
6
|
import { resolvePinnedHostnameWithPolicy } from "openclaw/plugin-sdk/ssrf-runtime";
|
|
7
|
+
import { pruneMapToMaxSize } from "openclaw/plugin-sdk/collection-runtime";
|
|
8
|
+
import { logVerbose } from "openclaw/plugin-sdk/runtime-env";
|
|
7
9
|
import { runChannelProbe, truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
8
10
|
import { HTTPFetchError } from "@line/bot-sdk";
|
|
9
11
|
import { classifyTransientNetworkErrorCode, createChannelApiRetryRunner } from "openclaw/plugin-sdk/retry-runtime";
|
|
10
12
|
import { assertOkOrThrowHttpError, createProviderOperationDeadline, createProviderOperationTimeoutResolver, fetchWithTimeout, readProviderJsonResponse } from "openclaw/plugin-sdk/provider-http";
|
|
11
13
|
import { fetchWithRuntimeDispatcherOrMockedGlobal } from "openclaw/plugin-sdk/runtime-fetch";
|
|
14
|
+
//#region extensions/line/src/messaging-target.ts
|
|
15
|
+
function normalizeLineMessagingTarget(target) {
|
|
16
|
+
const trimmed = target.trim();
|
|
17
|
+
if (!trimmed) return;
|
|
18
|
+
return trimmed.replace(/^line:(group|room|user):/i, "").replace(/^line:/i, "");
|
|
19
|
+
}
|
|
20
|
+
function inferLineTargetChatType(target) {
|
|
21
|
+
const normalized = normalizeLineMessagingTarget(target);
|
|
22
|
+
if (!normalized) return;
|
|
23
|
+
if (/^U[a-f0-9]{32}$/i.test(normalized)) return "direct";
|
|
24
|
+
return /^[CR][a-f0-9]{32}$/i.test(normalized) ? "group" : void 0;
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
12
27
|
//#region extensions/line/src/media-url.ts
|
|
13
28
|
function isHttpsUrl(value) {
|
|
14
29
|
if (typeof value !== "string") return false;
|
|
@@ -136,6 +151,80 @@ async function buildLineMediaMessage(mediaUrl, opts, target) {
|
|
|
136
151
|
return buildLineMediaMessageObject(await resolveLineOutboundMedia(mediaUrl, opts), { allowTrackingId: isLineUserTarget(target) });
|
|
137
152
|
}
|
|
138
153
|
//#endregion
|
|
154
|
+
//#region extensions/line/src/quote-tokens.ts
|
|
155
|
+
const QUOTE_TOKEN_LIMIT = 500;
|
|
156
|
+
const quoteTokensByAccount = /* @__PURE__ */ new Map();
|
|
157
|
+
function quoteTokenKey(chatId, messageId) {
|
|
158
|
+
const chat = normalizeLineMessagingTarget(chatId);
|
|
159
|
+
const message = messageId.trim();
|
|
160
|
+
return chat && message ? `${chat}|${message}` : void 0;
|
|
161
|
+
}
|
|
162
|
+
/** Reads the quote token LINE attaches to the message kinds a person can quote. */
|
|
163
|
+
function readLineQuoteToken(message) {
|
|
164
|
+
return message.type === "text" || message.type === "image" || message.type === "video" || message.type === "sticker" ? message.quoteToken : void 0;
|
|
165
|
+
}
|
|
166
|
+
/** Remembers the token an inbound message can later be quoted with. */
|
|
167
|
+
function recordLineQuoteToken(params) {
|
|
168
|
+
const quoteToken = params.quoteToken;
|
|
169
|
+
if (!quoteToken) return;
|
|
170
|
+
const key = quoteTokenKey(params.chatId, params.messageId);
|
|
171
|
+
if (!key) return;
|
|
172
|
+
const tokens = quoteTokensByAccount.get(params.accountId) ?? /* @__PURE__ */ new Map();
|
|
173
|
+
quoteTokensByAccount.set(params.accountId, tokens);
|
|
174
|
+
tokens.delete(key);
|
|
175
|
+
tokens.set(key, quoteToken);
|
|
176
|
+
pruneMapToMaxSize(tokens, QUOTE_TOKEN_LIMIT);
|
|
177
|
+
}
|
|
178
|
+
/** Resolves the token that quotes one message in one chat, if it is still known. */
|
|
179
|
+
function resolveLineQuoteToken(params) {
|
|
180
|
+
const key = params.messageId ? quoteTokenKey(params.chatId, params.messageId) : void 0;
|
|
181
|
+
if (!key) return;
|
|
182
|
+
const accountId = normalizeAccountId(params.accountId ?? resolveDefaultLineAccountId(params.cfg));
|
|
183
|
+
const quoteToken = quoteTokensByAccount.get(accountId)?.get(key);
|
|
184
|
+
if (!quoteToken) logVerbose(`line: account ${accountId} remembers no quote token for ${key}; sending the reply unquoted`);
|
|
185
|
+
return quoteToken;
|
|
186
|
+
}
|
|
187
|
+
const QUOTABLE_OUTBOUND_TYPES = /* @__PURE__ */ new Set([
|
|
188
|
+
"text",
|
|
189
|
+
"textV2",
|
|
190
|
+
"sticker"
|
|
191
|
+
]);
|
|
192
|
+
/** True when LINE lets this message carry the quote for its request. */
|
|
193
|
+
function canCarryLineQuoteToken(message) {
|
|
194
|
+
return QUOTABLE_OUTBOUND_TYPES.has(message.type);
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Reports a reply that answered a message but had nothing able to carry the quote.
|
|
198
|
+
*
|
|
199
|
+
* Both delivery paths reach this state, and without a line here the silence reads
|
|
200
|
+
* as "the quote went out" to anyone who saw the resolve step succeed.
|
|
201
|
+
*/
|
|
202
|
+
function reportLineQuoteCarrierMissing(chatId) {
|
|
203
|
+
logVerbose(`line: nothing in this reply to ${chatId} can carry a quote; sending it unquoted`);
|
|
204
|
+
}
|
|
205
|
+
/** Attaches a quote token to the first message in a request that can carry one. */
|
|
206
|
+
function applyLineQuoteToken(messages, quoteToken) {
|
|
207
|
+
const target = quoteToken ? messages.findIndex(canCarryLineQuoteToken) : -1;
|
|
208
|
+
return target < 0 ? [...messages] : messages.map((message, index) => index === target ? {
|
|
209
|
+
...message,
|
|
210
|
+
quoteToken
|
|
211
|
+
} : message);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Drops every quote token from a request, or undefined when it carried none.
|
|
215
|
+
*
|
|
216
|
+
* LINE can refuse a whole request for an invalid quote token without naming a
|
|
217
|
+
* field in its error. Offering the same reply without the quote lets delivery
|
|
218
|
+
* recover from that rejection.
|
|
219
|
+
*/
|
|
220
|
+
function withoutLineQuoteTokens(messages) {
|
|
221
|
+
if (!messages.some((message) => "quoteToken" in message)) return;
|
|
222
|
+
return messages.map((message) => "quoteToken" in message ? {
|
|
223
|
+
...message,
|
|
224
|
+
quoteToken: void 0
|
|
225
|
+
} : message);
|
|
226
|
+
}
|
|
227
|
+
//#endregion
|
|
139
228
|
//#region extensions/line/src/flex-templates/message.ts
|
|
140
229
|
const LINE_FLEX_BUBBLE_MAX_BYTES = 3e4;
|
|
141
230
|
const LINE_FLEX_CAROUSEL_MAX_BYTES = 5e4;
|
|
@@ -1136,6 +1225,15 @@ async function readLineMessageQuota(channelAccessToken, budgetMs) {
|
|
|
1136
1225
|
return;
|
|
1137
1226
|
}
|
|
1138
1227
|
}
|
|
1228
|
+
async function readLineWebhookState(channelAccessToken, budgetMs) {
|
|
1229
|
+
if (!Number.isFinite(budgetMs) || budgetMs <= 0) return;
|
|
1230
|
+
try {
|
|
1231
|
+
const registered = await createLineApiReader(channelAccessToken, budgetMs)("channel/webhook/endpoint");
|
|
1232
|
+
return typeof registered.active === "boolean" ? { status: registered.active ? "active" : "disabled" } : void 0;
|
|
1233
|
+
} catch (error) {
|
|
1234
|
+
return isRecord(error) && error.status === 404 ? { status: "unset" } : void 0;
|
|
1235
|
+
}
|
|
1236
|
+
}
|
|
1139
1237
|
async function readLineAccountMessageQuota(params) {
|
|
1140
1238
|
try {
|
|
1141
1239
|
return await readLineMessageQuota(resolveLineChannelAccessToken(void 0, resolveLineAccount({
|
|
@@ -1154,7 +1252,9 @@ async function probeLineBot(channelAccessToken, timeoutMs = 5e3) {
|
|
|
1154
1252
|
const token = channelAccessToken.trim();
|
|
1155
1253
|
return await runChannelProbe(timeoutMs, async ({ elapsedMs }) => {
|
|
1156
1254
|
const profile = await createLineApiReader(token, timeoutMs)("info");
|
|
1157
|
-
const
|
|
1255
|
+
const optionalBudgetMs = () => Math.floor(Math.max(timeoutMs - elapsedMs(), 0) / 2);
|
|
1256
|
+
const quota = await readLineMessageQuota(token, optionalBudgetMs());
|
|
1257
|
+
const webhook = await readLineWebhookState(token, optionalBudgetMs());
|
|
1158
1258
|
return {
|
|
1159
1259
|
ok: true,
|
|
1160
1260
|
bot: {
|
|
@@ -1163,6 +1263,7 @@ async function probeLineBot(channelAccessToken, timeoutMs = 5e3) {
|
|
|
1163
1263
|
basicId: profile.basicId,
|
|
1164
1264
|
pictureUrl: profile.pictureUrl
|
|
1165
1265
|
},
|
|
1266
|
+
...webhook ? { webhook } : {},
|
|
1166
1267
|
...quota ? { quota } : {}
|
|
1167
1268
|
};
|
|
1168
1269
|
}, (error) => ({
|
|
@@ -1233,4 +1334,4 @@ async function explainLineRefusal(params) {
|
|
|
1233
1334
|
};
|
|
1234
1335
|
}
|
|
1235
1336
|
//#endregion
|
|
1236
|
-
export { toFlexMessage as C,
|
|
1337
|
+
export { withoutLineQuoteTokens as A, toFlexMessage as C, recordLineQuoteToken as D, readLineQuoteToken as E, inferLineTargetChatType as F, normalizeLineMessagingTarget as I, createAudioMessage as M, createImageMessage as N, reportLineQuoteCarrierMissing as O, createVideoMessage as P, fitsLineFlexBubble as S, canCarryLineQuoteToken as T, normalizeLineAction as _, probeLineBot as a, truncateLineActionLabel as b, createAgendaCard as c, createActionCard as d, createImageCard as f, messageAction as g, datetimePickerAction as h, runLinePushWithRetries as i, buildLineMediaMessage as j, resolveLineQuoteToken as k, createEventCard as l, createListCard as m, findLineHttpError as n, resolveLineChannelAccessToken as o, createInfoCard as p, resolveLineNonDispatchRetryable as r, createLineSendReceipt as s, explainLineRefusal as t, createReceiptCard as u, normalizeLineMessage as v, applyLineQuoteToken as w, uriAction as x, postbackAction as y };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as resolveLineAccount, n as normalizeAccountId, r as resolveDefaultLineAccountId, t as listLineAccountIds } from "./accounts-BBEFMYbY.
|
|
2
|
-
import { n as parseLineAllowFromId, t as hasLineCredentials } from "./account-helpers-BSUyZwLm.
|
|
1
|
+
import { i as resolveLineAccount, n as normalizeAccountId, r as resolveDefaultLineAccountId, t as listLineAccountIds } from "./accounts-BBEFMYbY.mjs";
|
|
2
|
+
import { n as parseLineAllowFromId, t as hasLineCredentials } from "./account-helpers-BSUyZwLm.mjs";
|
|
3
3
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
4
|
import { defineChannelSetupContract } from "openclaw/plugin-sdk/channel-setup";
|
|
5
5
|
import { DEFAULT_ACCOUNT_ID, createAllowFromSection, createPromptParsedAllowFromForAccount, createSetupInputPresenceValidator, createSetupTranslator, createStandardChannelSetupStatus, defineTokenCredential, formatDocsLink, parseSetupEntriesWithParser, patchScopedAccountConfig, setSetupChannelEnabled, splitSetupEntries } from "openclaw/plugin-sdk/setup";
|
package/dist/api.js
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
//#region extensions/line/src/channel.setup.ts
|
|
4
|
-
const lineSetupPlugin = {
|
|
5
|
-
id: "line",
|
|
6
|
-
...lineChannelPluginCommon,
|
|
7
|
-
setupWizard: lineSetupWizard,
|
|
8
|
-
setupContract: lineSetupContract
|
|
9
|
-
};
|
|
10
|
-
//#endregion
|
|
1
|
+
import { t as linePlugin } from "./.setup/channel-CAFu4vuW.mjs";
|
|
2
|
+
import { t as lineSetupPlugin } from "./.setup/api-W3zy11mj.mjs";
|
|
11
3
|
export { linePlugin, lineSetupPlugin };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as linePlugin } from "
|
|
1
|
+
import { t as linePlugin } from "./.setup/channel-CAFu4vuW.mjs";
|
|
2
2
|
export { linePlugin };
|
package/dist/contract-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as resolveLineAccount, r as resolveDefaultLineAccountId, t as listLineAccountIds } from "
|
|
1
|
+
import { i as resolveLineAccount, r as resolveDefaultLineAccountId, t as listLineAccountIds } from "./.setup/accounts-BBEFMYbY.mjs";
|
|
2
2
|
export { listLineAccountIds, resolveDefaultLineAccountId, resolveLineAccount };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as eventIdFor, i as errorText, o as laneKeyFor, r as LineWebhookPayloadError, s as legacyEventIdFor, t as LINE_WEBHOOK_SPOOL_INVALID_EVENT_REASON } from "
|
|
1
|
+
import { a as eventIdFor, i as errorText, o as laneKeyFor, r as LineWebhookPayloadError, s as legacyEventIdFor, t as LINE_WEBHOOK_SPOOL_INVALID_EVENT_REASON } from "./.setup/webhook-spool-contract-1rY8OJw8.mjs";
|
|
2
2
|
import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
3
|
//#region extensions/line/src/webhook-spool-migration.ts
|
|
4
4
|
/** Pre-drain (#109655) rows stored the event object under `event` instead of the
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineBundledChannelEntry } from "openclaw/plugin-sdk/channel-entry-contract";
|
|
2
2
|
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
3
3
|
//#region extensions/line/index.ts
|
|
4
|
-
const loadLineCardCommand = createLazyRuntimeModule(() => import("
|
|
4
|
+
const loadLineCardCommand = createLazyRuntimeModule(() => import("./.setup/card-command-PSnrhetp.mjs"));
|
|
5
5
|
var line_default = defineBundledChannelEntry({
|
|
6
6
|
id: "line",
|
|
7
7
|
name: "LINE",
|
package/dist/runtime-api.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { i as resolveLineAccount, n as normalizeAccountId, r as resolveDefaultLineAccountId, t as listLineAccountIds } from "
|
|
2
|
-
import {
|
|
3
|
-
import { C as toFlexMessage,
|
|
4
|
-
import { a as
|
|
5
|
-
import { a as
|
|
6
|
-
import { _ as showLoadingAnimation, c as pushFlexMessage, d as pushMessageLine, f as pushMessagesLine, g as sendMessageLine, h as replyMessageLine, i as createTextMessageWithQuickReplies, l as pushImageMessage, m as pushTextMessageWithQuickReplies, n as createLocationMessage, o as getUserDisplayName, p as pushTemplateMessage, r as createQuickReplyItems, s as getUserProfile, t as createFlexMessage, u as pushLocationMessage } from "
|
|
1
|
+
import { i as resolveLineAccount, n as normalizeAccountId, r as resolveDefaultLineAccountId, t as listLineAccountIds } from "./.setup/accounts-BBEFMYbY.mjs";
|
|
2
|
+
import { C as LineConfigSchema, S as LineChannelConfigSchema, _ as resolveLineGroupLookupIds, b as normalizeAllowFrom, d as createMediaPlayerCard, g as resolveLineGroupConfigEntry, h as resolveExactLineGroupConfigKey, l as createAppleTvRemoteCard, m as setLineRuntime, u as createDeviceControlCard, v as resolveLineGroupsConfig, y as firstDefined } from "./.setup/rich-messages-Cp77q9NY.mjs";
|
|
3
|
+
import { C as toFlexMessage, M as createAudioMessage, N as createImageMessage, P as createVideoMessage, a as probeLineBot, c as createAgendaCard, d as createActionCard, f as createImageCard, g as messageAction, h as datetimePickerAction, l as createEventCard, m as createListCard, o as resolveLineChannelAccessToken, p as createInfoCard, u as createReceiptCard, x as uriAction, y as postbackAction } from "./.setup/send-retry-DaGwYlBO.mjs";
|
|
4
|
+
import { a as resolveLineWebhookPath, i as parseLineWebhookBody, n as createLineNodeWebhookHandler, o as validateLineSignature, r as readLineWebhookRequestBody, s as downloadLineMedia, t as monitorLineProvider } from "./.setup/monitor-1JaX1WOU.mjs";
|
|
5
|
+
import { a as buildTemplateMessageFromPayload, c as createConfirmTemplate, i as stripMarkdown, l as createTemplateCarousel, n as hasMarkdownToConvert, o as createButtonTemplate, r as processLineMessage, s as createCarouselColumn, t as convertCodeBlockToFlexBubble } from "./.setup/markdown-to-line-Dvyr_6HD.mjs";
|
|
6
|
+
import { _ as showLoadingAnimation, c as pushFlexMessage, d as pushMessageLine, f as pushMessagesLine, g as sendMessageLine, h as replyMessageLine, i as createTextMessageWithQuickReplies, l as pushImageMessage, m as pushTextMessageWithQuickReplies, n as createLocationMessage, o as getUserDisplayName, p as pushTemplateMessage, r as createQuickReplyItems, s as getUserProfile, t as createFlexMessage, u as pushLocationMessage } from "./.setup/send-E6GiL_tr.mjs";
|
|
7
7
|
import { buildChannelConfigSchema } from "openclaw/plugin-sdk/channel-config-schema";
|
|
8
|
+
import { buildComputedAccountStatusSnapshot, buildTokenChannelStatusSummary } from "openclaw/plugin-sdk/status-helpers";
|
|
8
9
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
9
10
|
import { mimeTypeFromFilePath } from "openclaw/plugin-sdk/media-mime";
|
|
11
|
+
import { danger, logVerbose } from "openclaw/plugin-sdk/runtime-env";
|
|
10
12
|
import { messagingApi } from "@line/bot-sdk";
|
|
11
13
|
import { DEFAULT_ACCOUNT_ID, formatDocsLink, setSetupChannelEnabled, splitSetupEntries } from "openclaw/plugin-sdk/setup";
|
|
12
|
-
import { buildComputedAccountStatusSnapshot, buildTokenChannelStatusSummary } from "openclaw/plugin-sdk/status-helpers";
|
|
13
14
|
import { clearAccountEntryFields } from "openclaw/plugin-sdk/core";
|
|
14
|
-
import { danger, logVerbose } from "openclaw/plugin-sdk/runtime-env";
|
|
15
15
|
import { bufferToBlobPart } from "openclaw/plugin-sdk/blob-runtime";
|
|
16
16
|
import { getAgentScopedMediaLocalRoots } from "openclaw/plugin-sdk/media-local-roots";
|
|
17
17
|
import { loadWebMediaRaw } from "openclaw/plugin-sdk/web-media";
|
|
@@ -69,7 +69,7 @@ function startLineWebhook(options) {
|
|
|
69
69
|
const channelSecret = typeof options.channelSecret === "string" ? options.channelSecret.trim() : "";
|
|
70
70
|
if (!channelSecret) throw new Error("LINE webhook mode requires a non-empty channel secret. Set channels.line.channelSecret in your config.");
|
|
71
71
|
return {
|
|
72
|
-
path: options.path
|
|
72
|
+
path: resolveLineWebhookPath(options.path),
|
|
73
73
|
handler: createLineWebhookMiddleware({
|
|
74
74
|
channelSecret,
|
|
75
75
|
onEvents: options.onEvents,
|
|
@@ -257,4 +257,4 @@ function createDefaultMenuConfig() {
|
|
|
257
257
|
};
|
|
258
258
|
}
|
|
259
259
|
//#endregion
|
|
260
|
-
export { DEFAULT_ACCOUNT_ID, LineChannelConfigSchema, LineConfigSchema, buildChannelConfigSchema, buildComputedAccountStatusSnapshot, buildTemplateMessageFromPayload, buildTokenChannelStatusSummary, cancelDefaultRichMenu, clearAccountEntryFields, convertCodeBlockToFlexBubble,
|
|
260
|
+
export { DEFAULT_ACCOUNT_ID, LineChannelConfigSchema, LineConfigSchema, buildChannelConfigSchema, buildComputedAccountStatusSnapshot, buildTemplateMessageFromPayload, buildTokenChannelStatusSummary, cancelDefaultRichMenu, clearAccountEntryFields, convertCodeBlockToFlexBubble, createActionCard, createAgendaCard, createAppleTvRemoteCard, createAudioMessage, createButtonTemplate, createCarouselColumn, createConfirmTemplate, createDefaultMenuConfig, createDeviceControlCard, createEventCard, createFlexMessage, createGridLayout, createImageCard, createImageMessage, createInfoCard, createLineNodeWebhookHandler, createLineWebhookMiddleware, createListCard, createLocationMessage, createMediaPlayerCard, createQuickReplyItems, createReceiptCard, createRichMenu, createRichMenuAlias, createTemplateCarousel, createTextMessageWithQuickReplies, createVideoMessage, datetimePickerAction, deleteRichMenu, deleteRichMenuAlias, downloadLineMedia, firstDefined, formatDocsLink, getDefaultRichMenuId, getRichMenu, getRichMenuIdOfUser, getRichMenuList, getUserDisplayName, getUserProfile, hasMarkdownToConvert, listLineAccountIds, messageAction, monitorLineProvider, normalizeAccountId, normalizeAllowFrom, parseLineWebhookBody, postbackAction, probeLineBot, processLineMessage, pushFlexMessage, pushImageMessage, pushLocationMessage, pushMessageLine, pushMessagesLine, pushTemplateMessage, pushTextMessageWithQuickReplies, readLineWebhookRequestBody, replyMessageLine, resolveDefaultLineAccountId, resolveExactLineGroupConfigKey, resolveLineAccount, resolveLineChannelAccessToken, resolveLineGroupConfigEntry, resolveLineGroupLookupIds, resolveLineGroupsConfig, sendMessageLine, setDefaultRichMenu, setLineRuntime, setSetupChannelEnabled, showLoadingAnimation, splitSetupEntries, startLineWebhook, stripMarkdown, toFlexMessage, uploadRichMenuImage, uriAction, validateLineSignature };
|
package/dist/setup-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as lineSetupAdapter, t as lineSetupWizard } from "
|
|
1
|
+
import { n as lineSetupAdapter, t as lineSetupWizard } from "./.setup/setup-surface-CcfKJKtr.mjs";
|
|
2
2
|
export { lineSetupAdapter, lineSetupWizard };
|