@nocobase/plugin-flow-engine 2.1.0-alpha.1 → 2.1.0-alpha.10
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/LICENSE +201 -661
- package/README.md +79 -9
- package/dist/ai/docs/meta.json +6 -0
- package/dist/ai/docs/runjs/context/block-model.md +90 -0
- package/dist/ai/docs/runjs/context/collection-field.md +132 -0
- package/dist/ai/docs/runjs/context/collection.md +100 -0
- package/dist/ai/docs/runjs/context/data-source-manager.md +120 -0
- package/dist/ai/docs/runjs/context/data-source.md +136 -0
- package/dist/ai/docs/runjs/context/element.md +104 -0
- package/dist/ai/docs/runjs/context/exit-all.md +96 -0
- package/dist/ai/docs/runjs/context/exit.md +104 -0
- package/dist/ai/docs/runjs/context/filter-manager.md +102 -0
- package/dist/ai/docs/runjs/context/form.md +169 -0
- package/dist/ai/docs/runjs/context/get-model.md +85 -0
- package/dist/ai/docs/runjs/context/get-value.md +65 -0
- package/dist/ai/docs/runjs/context/get-var.md +157 -0
- package/dist/ai/docs/runjs/context/i18n.md +80 -0
- package/dist/ai/docs/runjs/context/import-async.md +488 -0
- package/dist/ai/docs/runjs/context/init-resource.md +74 -0
- package/dist/ai/docs/runjs/context/libs.md +109 -0
- package/dist/ai/docs/runjs/context/location.md +88 -0
- package/dist/ai/docs/runjs/context/logger.md +85 -0
- package/dist/ai/docs/runjs/context/make-resource.md +90 -0
- package/dist/ai/docs/runjs/context/message.md +107 -0
- package/dist/ai/docs/runjs/context/modal.md +115 -0
- package/dist/ai/docs/runjs/context/model.md +85 -0
- package/dist/ai/docs/runjs/context/notification.md +106 -0
- package/dist/ai/docs/runjs/context/off.md +48 -0
- package/dist/ai/docs/runjs/context/on.md +80 -0
- package/dist/ai/docs/runjs/context/open-view.md +120 -0
- package/dist/ai/docs/runjs/context/render.md +114 -0
- package/dist/ai/docs/runjs/context/request.md +163 -0
- package/dist/ai/docs/runjs/context/require-async.md +110 -0
- package/dist/ai/docs/runjs/context/resource.md +92 -0
- package/dist/ai/docs/runjs/context/route.md +76 -0
- package/dist/ai/docs/runjs/context/router.md +111 -0
- package/dist/ai/docs/runjs/context/set-value.md +73 -0
- package/dist/ai/docs/runjs/context/sql.md +200 -0
- package/dist/ai/docs/runjs/context/t.md +82 -0
- package/dist/ai/docs/runjs/context/view.md +131 -0
- package/dist/ai/docs/runjs/document.md +1 -0
- package/dist/ai/docs/runjs/import-modules.md +110 -0
- package/dist/ai/docs/runjs/index.md +65 -0
- package/dist/ai/docs/runjs/jsx.md +84 -0
- package/dist/ai/docs/runjs/model/form-block-model.md +1 -0
- package/dist/ai/docs/runjs/render.md +64 -0
- package/dist/ai/docs/runjs/resource/api-resource.md +155 -0
- package/dist/ai/docs/runjs/resource/multi-record-resource.md +188 -0
- package/dist/ai/docs/runjs/resource/single-record-resource.md +169 -0
- package/dist/ai/docs/runjs/resource/sql-resource.md +170 -0
- package/dist/ai/docs/runjs/window.md +20 -0
- package/dist/ai/tools/getContextApis.d.ts +10 -0
- package/dist/ai/tools/getContextApis.js +62 -0
- package/dist/ai/tools/getContextEnvs.d.ts +10 -0
- package/dist/ai/tools/getContextEnvs.js +62 -0
- package/dist/ai/tools/getContextVars.d.ts +10 -0
- package/dist/ai/tools/getContextVars.js +78 -0
- package/dist/ai/tools/lintAndTestJS.d.ts +10 -0
- package/dist/ai/tools/lintAndTestJS.js +64 -0
- package/dist/client/index.js +1 -1
- package/dist/externalVersion.js +10 -9
- package/dist/locale/en-US.json +9 -2
- package/dist/locale/index.d.ts +14 -0
- package/dist/locale/zh-CN.json +8 -1
- package/dist/node_modules/ses/package.json +1 -1
- package/dist/node_modules/zod/LICENSE +21 -0
- package/dist/node_modules/zod/index.cjs +1 -0
- package/dist/node_modules/zod/index.d.cts +4 -0
- package/dist/node_modules/zod/index.d.ts +4 -0
- package/dist/node_modules/zod/index.js +4 -0
- package/dist/node_modules/zod/locales/index.cjs +17 -0
- package/dist/node_modules/zod/locales/index.d.cts +1 -0
- package/dist/node_modules/zod/locales/index.d.ts +1 -0
- package/dist/node_modules/zod/locales/index.js +1 -0
- package/dist/node_modules/zod/locales/package.json +6 -0
- package/dist/node_modules/zod/mini/index.cjs +17 -0
- package/dist/node_modules/zod/mini/index.d.cts +1 -0
- package/dist/node_modules/zod/mini/index.d.ts +1 -0
- package/dist/node_modules/zod/mini/index.js +1 -0
- package/dist/node_modules/zod/mini/package.json +6 -0
- package/dist/node_modules/zod/package.json +1 -0
- package/dist/node_modules/zod/src/index.ts +4 -0
- package/dist/node_modules/zod/src/locales/index.ts +1 -0
- package/dist/node_modules/zod/src/mini/index.ts +1 -0
- package/dist/node_modules/zod/src/v3/ZodError.ts +330 -0
- package/dist/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
- package/dist/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
- package/dist/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
- package/dist/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
- package/dist/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
- package/dist/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
- package/dist/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
- package/dist/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
- package/dist/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
- package/dist/node_modules/zod/src/v3/errors.ts +13 -0
- package/dist/node_modules/zod/src/v3/external.ts +6 -0
- package/dist/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
- package/dist/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
- package/dist/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
- package/dist/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
- package/dist/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
- package/dist/node_modules/zod/src/v3/helpers/util.ts +224 -0
- package/dist/node_modules/zod/src/v3/index.ts +4 -0
- package/dist/node_modules/zod/src/v3/locales/en.ts +124 -0
- package/dist/node_modules/zod/src/v3/standard-schema.ts +113 -0
- package/dist/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
- package/dist/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
- package/dist/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
- package/dist/node_modules/zod/src/v3/tests/array.test.ts +71 -0
- package/dist/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
- package/dist/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
- package/dist/node_modules/zod/src/v3/tests/base.test.ts +29 -0
- package/dist/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
- package/dist/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
- package/dist/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
- package/dist/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
- package/dist/node_modules/zod/src/v3/tests/complex.test.ts +70 -0
- package/dist/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
- package/dist/node_modules/zod/src/v3/tests/date.test.ts +32 -0
- package/dist/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
- package/dist/node_modules/zod/src/v3/tests/default.test.ts +112 -0
- package/dist/node_modules/zod/src/v3/tests/description.test.ts +33 -0
- package/dist/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
- package/dist/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
- package/dist/node_modules/zod/src/v3/tests/error.test.ts +551 -0
- package/dist/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
- package/dist/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
- package/dist/node_modules/zod/src/v3/tests/function.test.ts +261 -0
- package/dist/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
- package/dist/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
- package/dist/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
- package/dist/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
- package/dist/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
- package/dist/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
- package/dist/node_modules/zod/src/v3/tests/map.test.ts +110 -0
- package/dist/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
- package/dist/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
- package/dist/node_modules/zod/src/v3/tests/nan.test.ts +24 -0
- package/dist/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
- package/dist/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
- package/dist/node_modules/zod/src/v3/tests/number.test.ts +176 -0
- package/dist/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
- package/dist/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
- package/dist/node_modules/zod/src/v3/tests/object.test.ts +434 -0
- package/dist/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
- package/dist/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
- package/dist/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
- package/dist/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
- package/dist/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
- package/dist/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
- package/dist/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
- package/dist/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
- package/dist/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
- package/dist/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
- package/dist/node_modules/zod/src/v3/tests/record.test.ts +171 -0
- package/dist/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
- package/dist/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
- package/dist/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
- package/dist/node_modules/zod/src/v3/tests/set.test.ts +142 -0
- package/dist/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
- package/dist/node_modules/zod/src/v3/tests/string.test.ts +916 -0
- package/dist/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
- package/dist/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
- package/dist/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
- package/dist/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
- package/dist/node_modules/zod/src/v3/tests/void.test.ts +15 -0
- package/dist/node_modules/zod/src/v3/types.ts +5138 -0
- package/dist/node_modules/zod/src/v4/classic/checks.ts +32 -0
- package/dist/node_modules/zod/src/v4/classic/coerce.ts +27 -0
- package/dist/node_modules/zod/src/v4/classic/compat.ts +70 -0
- package/dist/node_modules/zod/src/v4/classic/errors.ts +82 -0
- package/dist/node_modules/zod/src/v4/classic/external.ts +51 -0
- package/dist/node_modules/zod/src/v4/classic/from-json-schema.ts +643 -0
- package/dist/node_modules/zod/src/v4/classic/index.ts +5 -0
- package/dist/node_modules/zod/src/v4/classic/iso.ts +90 -0
- package/dist/node_modules/zod/src/v4/classic/parse.ts +82 -0
- package/dist/node_modules/zod/src/v4/classic/schemas.ts +2409 -0
- package/dist/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
- package/dist/node_modules/zod/src/v4/classic/tests/apply.test.ts +59 -0
- package/dist/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
- package/dist/node_modules/zod/src/v4/classic/tests/assignability.test.ts +210 -0
- package/dist/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
- package/dist/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
- package/dist/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
- package/dist/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
- package/dist/node_modules/zod/src/v4/classic/tests/brand.test.ts +106 -0
- package/dist/node_modules/zod/src/v4/classic/tests/catch.test.ts +276 -0
- package/dist/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
- package/dist/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +573 -0
- package/dist/node_modules/zod/src/v4/classic/tests/codec.test.ts +562 -0
- package/dist/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
- package/dist/node_modules/zod/src/v4/classic/tests/continuability.test.ts +374 -0
- package/dist/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
- package/dist/node_modules/zod/src/v4/classic/tests/date.test.ts +62 -0
- package/dist/node_modules/zod/src/v4/classic/tests/datetime.test.ts +302 -0
- package/dist/node_modules/zod/src/v4/classic/tests/default.test.ts +365 -0
- package/dist/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +27 -0
- package/dist/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
- package/dist/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +661 -0
- package/dist/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
- package/dist/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +595 -0
- package/dist/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
- package/dist/node_modules/zod/src/v4/classic/tests/file.test.ts +96 -0
- package/dist/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +179 -0
- package/dist/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +26 -0
- package/dist/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +734 -0
- package/dist/node_modules/zod/src/v4/classic/tests/function.test.ts +360 -0
- package/dist/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
- package/dist/node_modules/zod/src/v4/classic/tests/hash.test.ts +68 -0
- package/dist/node_modules/zod/src/v4/classic/tests/index.test.ts +939 -0
- package/dist/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +60 -0
- package/dist/node_modules/zod/src/v4/classic/tests/intersection.test.ts +198 -0
- package/dist/node_modules/zod/src/v4/classic/tests/json.test.ts +109 -0
- package/dist/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
- package/dist/node_modules/zod/src/v4/classic/tests/literal.test.ts +117 -0
- package/dist/node_modules/zod/src/v4/classic/tests/map.test.ts +330 -0
- package/dist/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
- package/dist/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
- package/dist/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +101 -0
- package/dist/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
- package/dist/node_modules/zod/src/v4/classic/tests/number.test.ts +270 -0
- package/dist/node_modules/zod/src/v4/classic/tests/object.test.ts +640 -0
- package/dist/node_modules/zod/src/v4/classic/tests/optional.test.ts +223 -0
- package/dist/node_modules/zod/src/v4/classic/tests/partial.test.ts +427 -0
- package/dist/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +211 -0
- package/dist/node_modules/zod/src/v4/classic/tests/pipe.test.ts +101 -0
- package/dist/node_modules/zod/src/v4/classic/tests/prefault.test.ts +74 -0
- package/dist/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +282 -0
- package/dist/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
- package/dist/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
- package/dist/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
- package/dist/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
- package/dist/node_modules/zod/src/v4/classic/tests/record.test.ts +600 -0
- package/dist/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +582 -0
- package/dist/node_modules/zod/src/v4/classic/tests/refine.test.ts +570 -0
- package/dist/node_modules/zod/src/v4/classic/tests/registries.test.ts +243 -0
- package/dist/node_modules/zod/src/v4/classic/tests/set.test.ts +181 -0
- package/dist/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +134 -0
- package/dist/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +125 -0
- package/dist/node_modules/zod/src/v4/classic/tests/string.test.ts +1175 -0
- package/dist/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +106 -0
- package/dist/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +771 -0
- package/dist/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +438 -0
- package/dist/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +2975 -0
- package/dist/node_modules/zod/src/v4/classic/tests/transform.test.ts +361 -0
- package/dist/node_modules/zod/src/v4/classic/tests/tuple.test.ts +183 -0
- package/dist/node_modules/zod/src/v4/classic/tests/union.test.ts +219 -0
- package/dist/node_modules/zod/src/v4/classic/tests/url.test.ts +13 -0
- package/dist/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
- package/dist/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
- package/dist/node_modules/zod/src/v4/core/api.ts +1798 -0
- package/dist/node_modules/zod/src/v4/core/checks.ts +1293 -0
- package/dist/node_modules/zod/src/v4/core/config.ts +15 -0
- package/dist/node_modules/zod/src/v4/core/core.ts +138 -0
- package/dist/node_modules/zod/src/v4/core/doc.ts +44 -0
- package/dist/node_modules/zod/src/v4/core/errors.ts +448 -0
- package/dist/node_modules/zod/src/v4/core/index.ts +16 -0
- package/dist/node_modules/zod/src/v4/core/json-schema-generator.ts +126 -0
- package/dist/node_modules/zod/src/v4/core/json-schema-processors.ts +667 -0
- package/dist/node_modules/zod/src/v4/core/json-schema.ts +147 -0
- package/dist/node_modules/zod/src/v4/core/parse.ts +195 -0
- package/dist/node_modules/zod/src/v4/core/regexes.ts +183 -0
- package/dist/node_modules/zod/src/v4/core/registries.ts +105 -0
- package/dist/node_modules/zod/src/v4/core/schemas.ts +4543 -0
- package/dist/node_modules/zod/src/v4/core/standard-schema.ts +159 -0
- package/dist/node_modules/zod/src/v4/core/tests/extend.test.ts +59 -0
- package/dist/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
- package/dist/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
- package/dist/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
- package/dist/node_modules/zod/src/v4/core/tests/locales/es.test.ts +181 -0
- package/dist/node_modules/zod/src/v4/core/tests/locales/he.test.ts +379 -0
- package/dist/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +46 -0
- package/dist/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
- package/dist/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
- package/dist/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +83 -0
- package/dist/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +67 -0
- package/dist/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +45 -0
- package/dist/node_modules/zod/src/v4/core/to-json-schema.ts +613 -0
- package/dist/node_modules/zod/src/v4/core/util.ts +966 -0
- package/dist/node_modules/zod/src/v4/core/versions.ts +5 -0
- package/dist/node_modules/zod/src/v4/core/zsf.ts +323 -0
- package/dist/node_modules/zod/src/v4/index.ts +4 -0
- package/dist/node_modules/zod/src/v4/locales/ar.ts +115 -0
- package/dist/node_modules/zod/src/v4/locales/az.ts +111 -0
- package/dist/node_modules/zod/src/v4/locales/be.ts +176 -0
- package/dist/node_modules/zod/src/v4/locales/bg.ts +128 -0
- package/dist/node_modules/zod/src/v4/locales/ca.ts +116 -0
- package/dist/node_modules/zod/src/v4/locales/cs.ts +118 -0
- package/dist/node_modules/zod/src/v4/locales/da.ts +123 -0
- package/dist/node_modules/zod/src/v4/locales/de.ts +116 -0
- package/dist/node_modules/zod/src/v4/locales/en.ts +119 -0
- package/dist/node_modules/zod/src/v4/locales/eo.ts +118 -0
- package/dist/node_modules/zod/src/v4/locales/es.ts +141 -0
- package/dist/node_modules/zod/src/v4/locales/fa.ts +126 -0
- package/dist/node_modules/zod/src/v4/locales/fi.ts +121 -0
- package/dist/node_modules/zod/src/v4/locales/fr-CA.ts +116 -0
- package/dist/node_modules/zod/src/v4/locales/fr.ts +116 -0
- package/dist/node_modules/zod/src/v4/locales/he.ts +246 -0
- package/dist/node_modules/zod/src/v4/locales/hu.ts +117 -0
- package/dist/node_modules/zod/src/v4/locales/hy.ts +164 -0
- package/dist/node_modules/zod/src/v4/locales/id.ts +115 -0
- package/dist/node_modules/zod/src/v4/locales/index.ts +49 -0
- package/dist/node_modules/zod/src/v4/locales/is.ts +119 -0
- package/dist/node_modules/zod/src/v4/locales/it.ts +116 -0
- package/dist/node_modules/zod/src/v4/locales/ja.ts +114 -0
- package/dist/node_modules/zod/src/v4/locales/ka.ts +123 -0
- package/dist/node_modules/zod/src/v4/locales/kh.ts +7 -0
- package/dist/node_modules/zod/src/v4/locales/km.ts +119 -0
- package/dist/node_modules/zod/src/v4/locales/ko.ts +121 -0
- package/dist/node_modules/zod/src/v4/locales/lt.ts +239 -0
- package/dist/node_modules/zod/src/v4/locales/mk.ts +118 -0
- package/dist/node_modules/zod/src/v4/locales/ms.ts +115 -0
- package/dist/node_modules/zod/src/v4/locales/nl.ts +121 -0
- package/dist/node_modules/zod/src/v4/locales/no.ts +116 -0
- package/dist/node_modules/zod/src/v4/locales/ota.ts +117 -0
- package/dist/node_modules/zod/src/v4/locales/pl.ts +118 -0
- package/dist/node_modules/zod/src/v4/locales/ps.ts +126 -0
- package/dist/node_modules/zod/src/v4/locales/pt.ts +116 -0
- package/dist/node_modules/zod/src/v4/locales/ru.ts +176 -0
- package/dist/node_modules/zod/src/v4/locales/sl.ts +118 -0
- package/dist/node_modules/zod/src/v4/locales/sv.ts +119 -0
- package/dist/node_modules/zod/src/v4/locales/ta.ts +118 -0
- package/dist/node_modules/zod/src/v4/locales/th.ts +119 -0
- package/dist/node_modules/zod/src/v4/locales/tr.ts +111 -0
- package/dist/node_modules/zod/src/v4/locales/ua.ts +7 -0
- package/dist/node_modules/zod/src/v4/locales/uk.ts +117 -0
- package/dist/node_modules/zod/src/v4/locales/ur.ts +119 -0
- package/dist/node_modules/zod/src/v4/locales/uz.ts +116 -0
- package/dist/node_modules/zod/src/v4/locales/vi.ts +117 -0
- package/dist/node_modules/zod/src/v4/locales/yo.ts +124 -0
- package/dist/node_modules/zod/src/v4/locales/zh-CN.ts +116 -0
- package/dist/node_modules/zod/src/v4/locales/zh-TW.ts +115 -0
- package/dist/node_modules/zod/src/v4/mini/checks.ts +32 -0
- package/dist/node_modules/zod/src/v4/mini/coerce.ts +27 -0
- package/dist/node_modules/zod/src/v4/mini/external.ts +40 -0
- package/dist/node_modules/zod/src/v4/mini/index.ts +3 -0
- package/dist/node_modules/zod/src/v4/mini/iso.ts +66 -0
- package/dist/node_modules/zod/src/v4/mini/parse.ts +14 -0
- package/dist/node_modules/zod/src/v4/mini/schemas.ts +1916 -0
- package/dist/node_modules/zod/src/v4/mini/tests/apply.test.ts +24 -0
- package/dist/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
- package/dist/node_modules/zod/src/v4/mini/tests/brand.test.ts +94 -0
- package/dist/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
- package/dist/node_modules/zod/src/v4/mini/tests/codec.test.ts +529 -0
- package/dist/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
- package/dist/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
- package/dist/node_modules/zod/src/v4/mini/tests/functions.test.ts +5 -0
- package/dist/node_modules/zod/src/v4/mini/tests/index.test.ts +963 -0
- package/dist/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
- package/dist/node_modules/zod/src/v4/mini/tests/object.test.ts +227 -0
- package/dist/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
- package/dist/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +275 -0
- package/dist/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +50 -0
- package/dist/node_modules/zod/src/v4/mini/tests/string.test.ts +347 -0
- package/dist/node_modules/zod/src/v4-mini/index.ts +1 -0
- package/dist/node_modules/zod/v3/ZodError.cjs +138 -0
- package/dist/node_modules/zod/v3/ZodError.d.cts +164 -0
- package/dist/node_modules/zod/v3/ZodError.d.ts +164 -0
- package/dist/node_modules/zod/v3/ZodError.js +133 -0
- package/dist/node_modules/zod/v3/errors.cjs +17 -0
- package/dist/node_modules/zod/v3/errors.d.cts +5 -0
- package/dist/node_modules/zod/v3/errors.d.ts +5 -0
- package/dist/node_modules/zod/v3/errors.js +9 -0
- package/dist/node_modules/zod/v3/external.cjs +22 -0
- package/dist/node_modules/zod/v3/external.d.cts +6 -0
- package/dist/node_modules/zod/v3/external.d.ts +6 -0
- package/dist/node_modules/zod/v3/external.js +6 -0
- package/dist/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
- package/dist/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
- package/dist/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
- package/dist/node_modules/zod/v3/helpers/enumUtil.js +1 -0
- package/dist/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
- package/dist/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
- package/dist/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
- package/dist/node_modules/zod/v3/helpers/errorUtil.js +6 -0
- package/dist/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
- package/dist/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
- package/dist/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
- package/dist/node_modules/zod/v3/helpers/parseUtil.js +109 -0
- package/dist/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
- package/dist/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
- package/dist/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
- package/dist/node_modules/zod/v3/helpers/partialUtil.js +1 -0
- package/dist/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
- package/dist/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
- package/dist/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
- package/dist/node_modules/zod/v3/helpers/typeAliases.js +1 -0
- package/dist/node_modules/zod/v3/helpers/util.cjs +137 -0
- package/dist/node_modules/zod/v3/helpers/util.d.cts +85 -0
- package/dist/node_modules/zod/v3/helpers/util.d.ts +85 -0
- package/dist/node_modules/zod/v3/helpers/util.js +133 -0
- package/dist/node_modules/zod/v3/index.cjs +33 -0
- package/dist/node_modules/zod/v3/index.d.cts +4 -0
- package/dist/node_modules/zod/v3/index.d.ts +4 -0
- package/dist/node_modules/zod/v3/index.js +4 -0
- package/dist/node_modules/zod/v3/locales/en.cjs +112 -0
- package/dist/node_modules/zod/v3/locales/en.d.cts +3 -0
- package/dist/node_modules/zod/v3/locales/en.d.ts +3 -0
- package/dist/node_modules/zod/v3/locales/en.js +109 -0
- package/dist/node_modules/zod/v3/package.json +6 -0
- package/dist/node_modules/zod/v3/standard-schema.cjs +2 -0
- package/dist/node_modules/zod/v3/standard-schema.d.cts +102 -0
- package/dist/node_modules/zod/v3/standard-schema.d.ts +102 -0
- package/dist/node_modules/zod/v3/standard-schema.js +1 -0
- package/dist/node_modules/zod/v3/types.cjs +3777 -0
- package/dist/node_modules/zod/v3/types.d.cts +1034 -0
- package/dist/node_modules/zod/v3/types.d.ts +1034 -0
- package/dist/node_modules/zod/v3/types.js +3695 -0
- package/dist/node_modules/zod/v4/classic/checks.cjs +33 -0
- package/dist/node_modules/zod/v4/classic/checks.d.cts +1 -0
- package/dist/node_modules/zod/v4/classic/checks.d.ts +1 -0
- package/dist/node_modules/zod/v4/classic/checks.js +1 -0
- package/dist/node_modules/zod/v4/classic/coerce.cjs +47 -0
- package/dist/node_modules/zod/v4/classic/coerce.d.cts +17 -0
- package/dist/node_modules/zod/v4/classic/coerce.d.ts +17 -0
- package/dist/node_modules/zod/v4/classic/coerce.js +17 -0
- package/dist/node_modules/zod/v4/classic/compat.cjs +61 -0
- package/dist/node_modules/zod/v4/classic/compat.d.cts +50 -0
- package/dist/node_modules/zod/v4/classic/compat.d.ts +50 -0
- package/dist/node_modules/zod/v4/classic/compat.js +31 -0
- package/dist/node_modules/zod/v4/classic/errors.cjs +74 -0
- package/dist/node_modules/zod/v4/classic/errors.d.cts +30 -0
- package/dist/node_modules/zod/v4/classic/errors.d.ts +30 -0
- package/dist/node_modules/zod/v4/classic/errors.js +48 -0
- package/dist/node_modules/zod/v4/classic/external.cjs +73 -0
- package/dist/node_modules/zod/v4/classic/external.d.cts +15 -0
- package/dist/node_modules/zod/v4/classic/external.d.ts +15 -0
- package/dist/node_modules/zod/v4/classic/external.js +20 -0
- package/dist/node_modules/zod/v4/classic/from-json-schema.cjs +610 -0
- package/dist/node_modules/zod/v4/classic/from-json-schema.d.cts +12 -0
- package/dist/node_modules/zod/v4/classic/from-json-schema.d.ts +12 -0
- package/dist/node_modules/zod/v4/classic/from-json-schema.js +584 -0
- package/dist/node_modules/zod/v4/classic/index.cjs +33 -0
- package/dist/node_modules/zod/v4/classic/index.d.cts +4 -0
- package/dist/node_modules/zod/v4/classic/index.d.ts +4 -0
- package/dist/node_modules/zod/v4/classic/index.js +4 -0
- package/dist/node_modules/zod/v4/classic/iso.cjs +60 -0
- package/dist/node_modules/zod/v4/classic/iso.d.cts +22 -0
- package/dist/node_modules/zod/v4/classic/iso.d.ts +22 -0
- package/dist/node_modules/zod/v4/classic/iso.js +30 -0
- package/dist/node_modules/zod/v4/classic/package.json +6 -0
- package/dist/node_modules/zod/v4/classic/parse.cjs +41 -0
- package/dist/node_modules/zod/v4/classic/parse.d.cts +31 -0
- package/dist/node_modules/zod/v4/classic/parse.d.ts +31 -0
- package/dist/node_modules/zod/v4/classic/parse.js +15 -0
- package/dist/node_modules/zod/v4/classic/schemas.cjs +1272 -0
- package/dist/node_modules/zod/v4/classic/schemas.d.cts +739 -0
- package/dist/node_modules/zod/v4/classic/schemas.d.ts +739 -0
- package/dist/node_modules/zod/v4/classic/schemas.js +1157 -0
- package/dist/node_modules/zod/v4/core/api.cjs +1222 -0
- package/dist/node_modules/zod/v4/core/api.d.cts +304 -0
- package/dist/node_modules/zod/v4/core/api.d.ts +304 -0
- package/dist/node_modules/zod/v4/core/api.js +1082 -0
- package/dist/node_modules/zod/v4/core/checks.cjs +601 -0
- package/dist/node_modules/zod/v4/core/checks.d.cts +278 -0
- package/dist/node_modules/zod/v4/core/checks.d.ts +278 -0
- package/dist/node_modules/zod/v4/core/checks.js +575 -0
- package/dist/node_modules/zod/v4/core/core.cjs +83 -0
- package/dist/node_modules/zod/v4/core/core.d.cts +70 -0
- package/dist/node_modules/zod/v4/core/core.d.ts +70 -0
- package/dist/node_modules/zod/v4/core/core.js +76 -0
- package/dist/node_modules/zod/v4/core/doc.cjs +39 -0
- package/dist/node_modules/zod/v4/core/doc.d.cts +14 -0
- package/dist/node_modules/zod/v4/core/doc.d.ts +14 -0
- package/dist/node_modules/zod/v4/core/doc.js +35 -0
- package/dist/node_modules/zod/v4/core/errors.cjs +213 -0
- package/dist/node_modules/zod/v4/core/errors.d.cts +220 -0
- package/dist/node_modules/zod/v4/core/errors.d.ts +220 -0
- package/dist/node_modules/zod/v4/core/errors.js +182 -0
- package/dist/node_modules/zod/v4/core/index.cjs +47 -0
- package/dist/node_modules/zod/v4/core/index.d.cts +16 -0
- package/dist/node_modules/zod/v4/core/index.d.ts +16 -0
- package/dist/node_modules/zod/v4/core/index.js +16 -0
- package/dist/node_modules/zod/v4/core/json-schema-generator.cjs +99 -0
- package/dist/node_modules/zod/v4/core/json-schema-generator.d.cts +65 -0
- package/dist/node_modules/zod/v4/core/json-schema-generator.d.ts +65 -0
- package/dist/node_modules/zod/v4/core/json-schema-generator.js +95 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.cjs +648 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.d.cts +49 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.d.ts +49 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.js +605 -0
- package/dist/node_modules/zod/v4/core/json-schema.cjs +2 -0
- package/dist/node_modules/zod/v4/core/json-schema.d.cts +88 -0
- package/dist/node_modules/zod/v4/core/json-schema.d.ts +88 -0
- package/dist/node_modules/zod/v4/core/json-schema.js +1 -0
- package/dist/node_modules/zod/v4/core/package.json +6 -0
- package/dist/node_modules/zod/v4/core/parse.cjs +131 -0
- package/dist/node_modules/zod/v4/core/parse.d.cts +49 -0
- package/dist/node_modules/zod/v4/core/parse.d.ts +49 -0
- package/dist/node_modules/zod/v4/core/parse.js +93 -0
- package/dist/node_modules/zod/v4/core/regexes.cjs +166 -0
- package/dist/node_modules/zod/v4/core/regexes.d.cts +79 -0
- package/dist/node_modules/zod/v4/core/regexes.d.ts +79 -0
- package/dist/node_modules/zod/v4/core/regexes.js +133 -0
- package/dist/node_modules/zod/v4/core/registries.cjs +56 -0
- package/dist/node_modules/zod/v4/core/registries.d.cts +35 -0
- package/dist/node_modules/zod/v4/core/registries.d.ts +35 -0
- package/dist/node_modules/zod/v4/core/registries.js +51 -0
- package/dist/node_modules/zod/v4/core/schemas.cjs +2126 -0
- package/dist/node_modules/zod/v4/core/schemas.d.cts +1146 -0
- package/dist/node_modules/zod/v4/core/schemas.d.ts +1146 -0
- package/dist/node_modules/zod/v4/core/schemas.js +2095 -0
- package/dist/node_modules/zod/v4/core/standard-schema.cjs +2 -0
- package/dist/node_modules/zod/v4/core/standard-schema.d.cts +126 -0
- package/dist/node_modules/zod/v4/core/standard-schema.d.ts +126 -0
- package/dist/node_modules/zod/v4/core/standard-schema.js +1 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.cjs +446 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.d.cts +114 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.d.ts +114 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.js +437 -0
- package/dist/node_modules/zod/v4/core/util.cjs +710 -0
- package/dist/node_modules/zod/v4/core/util.d.cts +199 -0
- package/dist/node_modules/zod/v4/core/util.d.ts +199 -0
- package/dist/node_modules/zod/v4/core/util.js +651 -0
- package/dist/node_modules/zod/v4/core/versions.cjs +8 -0
- package/dist/node_modules/zod/v4/core/versions.d.cts +5 -0
- package/dist/node_modules/zod/v4/core/versions.d.ts +5 -0
- package/dist/node_modules/zod/v4/core/versions.js +5 -0
- package/dist/node_modules/zod/v4/index.cjs +22 -0
- package/dist/node_modules/zod/v4/index.d.cts +3 -0
- package/dist/node_modules/zod/v4/index.d.ts +3 -0
- package/dist/node_modules/zod/v4/index.js +3 -0
- package/dist/node_modules/zod/v4/locales/ar.cjs +133 -0
- package/dist/node_modules/zod/v4/locales/ar.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ar.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ar.js +106 -0
- package/dist/node_modules/zod/v4/locales/az.cjs +132 -0
- package/dist/node_modules/zod/v4/locales/az.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/az.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/az.js +105 -0
- package/dist/node_modules/zod/v4/locales/be.cjs +183 -0
- package/dist/node_modules/zod/v4/locales/be.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/be.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/be.js +156 -0
- package/dist/node_modules/zod/v4/locales/bg.cjs +147 -0
- package/dist/node_modules/zod/v4/locales/bg.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/bg.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/bg.js +120 -0
- package/dist/node_modules/zod/v4/locales/ca.cjs +134 -0
- package/dist/node_modules/zod/v4/locales/ca.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ca.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ca.js +107 -0
- package/dist/node_modules/zod/v4/locales/cs.cjs +138 -0
- package/dist/node_modules/zod/v4/locales/cs.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/cs.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/cs.js +111 -0
- package/dist/node_modules/zod/v4/locales/da.cjs +142 -0
- package/dist/node_modules/zod/v4/locales/da.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/da.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/da.js +115 -0
- package/dist/node_modules/zod/v4/locales/de.cjs +135 -0
- package/dist/node_modules/zod/v4/locales/de.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/de.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/de.js +108 -0
- package/dist/node_modules/zod/v4/locales/en.cjs +136 -0
- package/dist/node_modules/zod/v4/locales/en.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/en.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/en.js +109 -0
- package/dist/node_modules/zod/v4/locales/eo.cjs +136 -0
- package/dist/node_modules/zod/v4/locales/eo.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/eo.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/eo.js +109 -0
- package/dist/node_modules/zod/v4/locales/es.cjs +159 -0
- package/dist/node_modules/zod/v4/locales/es.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/es.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/es.js +132 -0
- package/dist/node_modules/zod/v4/locales/fa.cjs +141 -0
- package/dist/node_modules/zod/v4/locales/fa.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/fa.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/fa.js +114 -0
- package/dist/node_modules/zod/v4/locales/fi.cjs +139 -0
- package/dist/node_modules/zod/v4/locales/fi.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/fi.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/fi.js +112 -0
- package/dist/node_modules/zod/v4/locales/fr-CA.cjs +134 -0
- package/dist/node_modules/zod/v4/locales/fr-CA.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/fr-CA.js +107 -0
- package/dist/node_modules/zod/v4/locales/fr.cjs +135 -0
- package/dist/node_modules/zod/v4/locales/fr.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/fr.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/fr.js +108 -0
- package/dist/node_modules/zod/v4/locales/he.cjs +241 -0
- package/dist/node_modules/zod/v4/locales/he.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/he.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/he.js +214 -0
- package/dist/node_modules/zod/v4/locales/hu.cjs +135 -0
- package/dist/node_modules/zod/v4/locales/hu.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/hu.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/hu.js +108 -0
- package/dist/node_modules/zod/v4/locales/hy.cjs +174 -0
- package/dist/node_modules/zod/v4/locales/hy.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/hy.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/hy.js +147 -0
- package/dist/node_modules/zod/v4/locales/id.cjs +133 -0
- package/dist/node_modules/zod/v4/locales/id.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/id.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/id.js +106 -0
- package/dist/node_modules/zod/v4/locales/index.cjs +104 -0
- package/dist/node_modules/zod/v4/locales/index.d.cts +49 -0
- package/dist/node_modules/zod/v4/locales/index.d.ts +49 -0
- package/dist/node_modules/zod/v4/locales/index.js +49 -0
- package/dist/node_modules/zod/v4/locales/is.cjs +136 -0
- package/dist/node_modules/zod/v4/locales/is.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/is.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/is.js +109 -0
- package/dist/node_modules/zod/v4/locales/it.cjs +135 -0
- package/dist/node_modules/zod/v4/locales/it.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/it.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/it.js +108 -0
- package/dist/node_modules/zod/v4/locales/ja.cjs +134 -0
- package/dist/node_modules/zod/v4/locales/ja.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ja.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ja.js +107 -0
- package/dist/node_modules/zod/v4/locales/ka.cjs +139 -0
- package/dist/node_modules/zod/v4/locales/ka.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ka.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ka.js +112 -0
- package/dist/node_modules/zod/v4/locales/kh.cjs +12 -0
- package/dist/node_modules/zod/v4/locales/kh.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/kh.d.ts +5 -0
- package/dist/node_modules/zod/v4/locales/kh.js +5 -0
- package/dist/node_modules/zod/v4/locales/km.cjs +137 -0
- package/dist/node_modules/zod/v4/locales/km.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/km.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/km.js +110 -0
- package/dist/node_modules/zod/v4/locales/ko.cjs +138 -0
- package/dist/node_modules/zod/v4/locales/ko.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ko.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ko.js +111 -0
- package/dist/node_modules/zod/v4/locales/lt.cjs +230 -0
- package/dist/node_modules/zod/v4/locales/lt.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/lt.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/lt.js +203 -0
- package/dist/node_modules/zod/v4/locales/mk.cjs +136 -0
- package/dist/node_modules/zod/v4/locales/mk.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/mk.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/mk.js +109 -0
- package/dist/node_modules/zod/v4/locales/ms.cjs +134 -0
- package/dist/node_modules/zod/v4/locales/ms.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ms.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ms.js +107 -0
- package/dist/node_modules/zod/v4/locales/nl.cjs +137 -0
- package/dist/node_modules/zod/v4/locales/nl.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/nl.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/nl.js +110 -0
- package/dist/node_modules/zod/v4/locales/no.cjs +135 -0
- package/dist/node_modules/zod/v4/locales/no.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/no.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/no.js +108 -0
- package/dist/node_modules/zod/v4/locales/ota.cjs +136 -0
- package/dist/node_modules/zod/v4/locales/ota.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ota.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ota.js +109 -0
- package/dist/node_modules/zod/v4/locales/package.json +6 -0
- package/dist/node_modules/zod/v4/locales/pl.cjs +136 -0
- package/dist/node_modules/zod/v4/locales/pl.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/pl.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/pl.js +109 -0
- package/dist/node_modules/zod/v4/locales/ps.cjs +141 -0
- package/dist/node_modules/zod/v4/locales/ps.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ps.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ps.js +114 -0
- package/dist/node_modules/zod/v4/locales/pt.cjs +135 -0
- package/dist/node_modules/zod/v4/locales/pt.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/pt.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/pt.js +108 -0
- package/dist/node_modules/zod/v4/locales/ru.cjs +183 -0
- package/dist/node_modules/zod/v4/locales/ru.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ru.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ru.js +156 -0
- package/dist/node_modules/zod/v4/locales/sl.cjs +136 -0
- package/dist/node_modules/zod/v4/locales/sl.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/sl.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/sl.js +109 -0
- package/dist/node_modules/zod/v4/locales/sv.cjs +137 -0
- package/dist/node_modules/zod/v4/locales/sv.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/sv.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/sv.js +110 -0
- package/dist/node_modules/zod/v4/locales/ta.cjs +137 -0
- package/dist/node_modules/zod/v4/locales/ta.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ta.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ta.js +110 -0
- package/dist/node_modules/zod/v4/locales/th.cjs +137 -0
- package/dist/node_modules/zod/v4/locales/th.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/th.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/th.js +110 -0
- package/dist/node_modules/zod/v4/locales/tr.cjs +132 -0
- package/dist/node_modules/zod/v4/locales/tr.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/tr.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/tr.js +105 -0
- package/dist/node_modules/zod/v4/locales/ua.cjs +12 -0
- package/dist/node_modules/zod/v4/locales/ua.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ua.d.ts +5 -0
- package/dist/node_modules/zod/v4/locales/ua.js +5 -0
- package/dist/node_modules/zod/v4/locales/uk.cjs +135 -0
- package/dist/node_modules/zod/v4/locales/uk.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/uk.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/uk.js +108 -0
- package/dist/node_modules/zod/v4/locales/ur.cjs +137 -0
- package/dist/node_modules/zod/v4/locales/ur.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ur.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ur.js +110 -0
- package/dist/node_modules/zod/v4/locales/uz.cjs +136 -0
- package/dist/node_modules/zod/v4/locales/uz.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/uz.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/uz.js +109 -0
- package/dist/node_modules/zod/v4/locales/vi.cjs +135 -0
- package/dist/node_modules/zod/v4/locales/vi.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/vi.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/vi.js +108 -0
- package/dist/node_modules/zod/v4/locales/yo.cjs +134 -0
- package/dist/node_modules/zod/v4/locales/yo.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/yo.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/yo.js +107 -0
- package/dist/node_modules/zod/v4/locales/zh-CN.cjs +136 -0
- package/dist/node_modules/zod/v4/locales/zh-CN.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/zh-CN.js +109 -0
- package/dist/node_modules/zod/v4/locales/zh-TW.cjs +134 -0
- package/dist/node_modules/zod/v4/locales/zh-TW.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/zh-TW.js +107 -0
- package/dist/node_modules/zod/v4/mini/checks.cjs +34 -0
- package/dist/node_modules/zod/v4/mini/checks.d.cts +1 -0
- package/dist/node_modules/zod/v4/mini/checks.d.ts +1 -0
- package/dist/node_modules/zod/v4/mini/checks.js +1 -0
- package/dist/node_modules/zod/v4/mini/coerce.cjs +52 -0
- package/dist/node_modules/zod/v4/mini/coerce.d.cts +7 -0
- package/dist/node_modules/zod/v4/mini/coerce.d.ts +7 -0
- package/dist/node_modules/zod/v4/mini/coerce.js +22 -0
- package/dist/node_modules/zod/v4/mini/external.cjs +63 -0
- package/dist/node_modules/zod/v4/mini/external.d.cts +12 -0
- package/dist/node_modules/zod/v4/mini/external.d.ts +12 -0
- package/dist/node_modules/zod/v4/mini/external.js +14 -0
- package/dist/node_modules/zod/v4/mini/index.cjs +32 -0
- package/dist/node_modules/zod/v4/mini/index.d.cts +3 -0
- package/dist/node_modules/zod/v4/mini/index.d.ts +3 -0
- package/dist/node_modules/zod/v4/mini/index.js +3 -0
- package/dist/node_modules/zod/v4/mini/iso.cjs +64 -0
- package/dist/node_modules/zod/v4/mini/iso.d.cts +22 -0
- package/dist/node_modules/zod/v4/mini/iso.d.ts +22 -0
- package/dist/node_modules/zod/v4/mini/iso.js +34 -0
- package/dist/node_modules/zod/v4/mini/package.json +6 -0
- package/dist/node_modules/zod/v4/mini/parse.cjs +16 -0
- package/dist/node_modules/zod/v4/mini/parse.d.cts +1 -0
- package/dist/node_modules/zod/v4/mini/parse.d.ts +1 -0
- package/dist/node_modules/zod/v4/mini/parse.js +1 -0
- package/dist/node_modules/zod/v4/mini/schemas.cjs +1046 -0
- package/dist/node_modules/zod/v4/mini/schemas.d.cts +427 -0
- package/dist/node_modules/zod/v4/mini/schemas.d.ts +427 -0
- package/dist/node_modules/zod/v4/mini/schemas.js +925 -0
- package/dist/node_modules/zod/v4/package.json +6 -0
- package/dist/node_modules/zod/v4-mini/index.cjs +17 -0
- package/dist/node_modules/zod/v4-mini/index.d.cts +1 -0
- package/dist/node_modules/zod/v4-mini/index.d.ts +1 -0
- package/dist/node_modules/zod/v4-mini/index.js +1 -0
- package/dist/node_modules/zod/v4-mini/package.json +6 -0
- package/dist/server/collections/flowsql.js +1 -0
- package/dist/server/repository.d.ts +9 -1
- package/dist/server/repository.js +138 -0
- package/dist/server/server.js +12 -0
- package/dist/server/template/contexts.d.ts +0 -1
- package/dist/server/template/contexts.js +0 -39
- package/dist/server/template/resolver.js +10 -6
- package/dist/server/variables/records.d.ts +38 -0
- package/dist/server/variables/records.js +120 -0
- package/dist/server/variables/registry.js +130 -51
- package/dist/server/variables/utils.js +56 -16
- package/package.json +3 -3
|
@@ -0,0 +1,488 @@
|
|
|
1
|
+
# ctx.importAsync()
|
|
2
|
+
|
|
3
|
+
Dynamically load **ESM modules** or **CSS** via URL, applicable to various RunJS scenarios. Use `ctx.importAsync()` when third-party ESM libraries are required, and `ctx.requireAsync()` for UMD/AMD libraries. Passing a `.css` address will load and inject the styles into the page.
|
|
4
|
+
|
|
5
|
+
## Use Cases
|
|
6
|
+
|
|
7
|
+
| Scenario | Description |
|
|
8
|
+
|------|------|
|
|
9
|
+
| **JSBlock** | Dynamically load ESM libraries such as Vue, ECharts, or Tabulator to implement custom charts, tables, dashboards, etc. |
|
|
10
|
+
| **JSField / JSItem / JSColumn** | Load lightweight ESM utility libraries (e.g., dayjs plugins) to assist in rendering. |
|
|
11
|
+
| **Workflow / Action Events** | Load dependencies on demand before executing business logic. |
|
|
12
|
+
|
|
13
|
+
## Type Definition
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
importAsync<T = any>(url: string): Promise<T>;
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Parameters
|
|
20
|
+
|
|
21
|
+
| Parameter | Type | Description |
|
|
22
|
+
|------|------|------|
|
|
23
|
+
| `url` | `string` | The address of the ESM module or CSS. Supports shorthand `<package>@<version>` or subpaths `<package>@<version>/<file-path>` (e.g., `vue@3.4.0`, `dayjs@1/plugin/relativeTime.js`), which will be concatenated with the CDN prefix according to the configuration. Full URLs are also supported. When a `.css` file is passed, it will be loaded and injected as a style. For libraries depending on React, you can append `?deps=react@18.2.0,react-dom@18.2.0` to ensure they share the same React instance with the page. |
|
|
24
|
+
|
|
25
|
+
## Return Value
|
|
26
|
+
|
|
27
|
+
- A Promise that resolves to the module's namespace object.
|
|
28
|
+
|
|
29
|
+
## URL Format Description
|
|
30
|
+
|
|
31
|
+
- **ESM and CSS**: In addition to ESM modules, loading CSS is also supported (pass a `.css` URL to load and inject it into the page).
|
|
32
|
+
- **Shorthand Format**: Defaults to **https://esm.sh** as the CDN prefix if not configured. For example, `vue@3.4.0` actually requests `https://esm.sh/vue@3.4.0`.
|
|
33
|
+
- **?deps**: Libraries that depend on React (such as `@dnd-kit/core`, `react-big-calendar`) should append `?deps=react@18.2.0,react-dom@18.2.0` to avoid conflicts with the page's React instance, which could lead to "Invalid hook call" errors.
|
|
34
|
+
- **Self-hosted CDN**: You can specify an internal network or self-hosted service via environment variables:
|
|
35
|
+
- **ESM_CDN_BASE_URL**: The base URL for the ESM CDN (default is `https://esm.sh`).
|
|
36
|
+
- **ESM_CDN_SUFFIX**: Optional suffix (e.g., `/+esm` for jsDelivr).
|
|
37
|
+
- For self-hosted services, refer to: [nocobase/esm-server](https://github.com/nocobase/esm-server)
|
|
38
|
+
|
|
39
|
+
## Difference from ctx.requireAsync()
|
|
40
|
+
|
|
41
|
+
- **ctx.importAsync()**: Loads **ESM modules** and returns the module namespace. Suitable for modern libraries (ESM builds like Vue, dayjs, etc.).
|
|
42
|
+
- **ctx.requireAsync()**: Loads **UMD/AMD** modules or scripts that attach to the global scope. Often used for UMD libraries like ECharts or FullCalendar. If a library provides both ESM and UMD, `ctx.importAsync()` is preferred.
|
|
43
|
+
|
|
44
|
+
## Examples
|
|
45
|
+
|
|
46
|
+
### Basic Usage
|
|
47
|
+
|
|
48
|
+
Demonstrates the most basic usage of dynamically loading ESM modules and CSS by package name or full URL.
|
|
49
|
+
|
|
50
|
+
```javascript
|
|
51
|
+
const Vue = await ctx.importAsync('vue@3.4.0');
|
|
52
|
+
// Equivalent to loading from https://esm.sh/vue@3.4.0
|
|
53
|
+
|
|
54
|
+
const relativeTime = await ctx.importAsync('dayjs@1/plugin/relativeTime.js');
|
|
55
|
+
// With subpath (e.g., dayjs plugin)
|
|
56
|
+
|
|
57
|
+
const pkg = await ctx.importAsync('https://cdn.example.com/my-module.js');
|
|
58
|
+
// Full URL
|
|
59
|
+
|
|
60
|
+
await ctx.importAsync('https://cdn.example.com/theme.css');
|
|
61
|
+
// Load CSS and inject into the page
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### ECharts Example
|
|
65
|
+
|
|
66
|
+
Use ECharts to draw a sales overview chart with bar and line graphs.
|
|
67
|
+
|
|
68
|
+
```ts
|
|
69
|
+
// 1. Dynamically load ECharts module
|
|
70
|
+
const echarts = await ctx.importAsync('echarts@5.4.3');
|
|
71
|
+
|
|
72
|
+
// 2. Create chart container and render
|
|
73
|
+
const chartEl = document.createElement('div');
|
|
74
|
+
chartEl.style.width = '100%';
|
|
75
|
+
chartEl.style.height = '400px';
|
|
76
|
+
ctx.render(chartEl);
|
|
77
|
+
|
|
78
|
+
// 3. Initialize ECharts instance
|
|
79
|
+
const chart = echarts.init(chartEl);
|
|
80
|
+
|
|
81
|
+
// 4. Configure chart
|
|
82
|
+
const option = {
|
|
83
|
+
title: {
|
|
84
|
+
text: 'Sales Overview',
|
|
85
|
+
left: 'center',
|
|
86
|
+
},
|
|
87
|
+
tooltip: {
|
|
88
|
+
trigger: 'axis',
|
|
89
|
+
},
|
|
90
|
+
legend: {
|
|
91
|
+
data: ['Sales', 'Profit'],
|
|
92
|
+
top: '10%',
|
|
93
|
+
},
|
|
94
|
+
xAxis: {
|
|
95
|
+
type: 'category',
|
|
96
|
+
data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'],
|
|
97
|
+
},
|
|
98
|
+
yAxis: {
|
|
99
|
+
type: 'value',
|
|
100
|
+
},
|
|
101
|
+
series: [
|
|
102
|
+
{
|
|
103
|
+
name: 'Sales',
|
|
104
|
+
type: 'bar',
|
|
105
|
+
data: [120, 200, 150, 80, 70, 110],
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: 'Profit',
|
|
109
|
+
type: 'line',
|
|
110
|
+
data: [20, 40, 30, 15, 12, 25],
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
// 5. Set option and render chart
|
|
116
|
+
chart.setOption(option);
|
|
117
|
+
|
|
118
|
+
// 6. Optional: Responsive sizing
|
|
119
|
+
window.addEventListener('resize', () => {
|
|
120
|
+
chart.resize();
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
// 7. Optional: Event listener
|
|
124
|
+
chart.on('click', (params) => {
|
|
125
|
+
ctx.message.info(`Clicked ${params.seriesName} on ${params.name}, value: ${params.value}`);
|
|
126
|
+
});
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Tabulator Example
|
|
130
|
+
|
|
131
|
+
Demonstrates rendering a data table with pagination and row click events in a block using Tabulator.
|
|
132
|
+
|
|
133
|
+
```ts
|
|
134
|
+
// 1. Load Tabulator styles
|
|
135
|
+
await ctx.importAsync('tabulator-tables@6.2.5/dist/css/tabulator.min.css');
|
|
136
|
+
|
|
137
|
+
// 2. Dynamically load Tabulator module
|
|
138
|
+
const { TabulatorFull } = await ctx.importAsync('tabulator-tables@6.2.5');
|
|
139
|
+
|
|
140
|
+
// 3. Create table container and render
|
|
141
|
+
const tableEl = document.createElement('div');
|
|
142
|
+
ctx.render(tableEl);
|
|
143
|
+
|
|
144
|
+
// 4. Initialize Tabulator table
|
|
145
|
+
const table = new TabulatorFull(tableEl, {
|
|
146
|
+
data: [
|
|
147
|
+
{ id: 1, name: 'Alice', age: 25, city: 'New York' },
|
|
148
|
+
{ id: 2, name: 'Bob', age: 30, city: 'London' },
|
|
149
|
+
{ id: 3, name: 'Charlie', age: 28, city: 'Paris' },
|
|
150
|
+
],
|
|
151
|
+
columns: [
|
|
152
|
+
{ title: 'ID', field: 'id', width: 80 },
|
|
153
|
+
{ title: 'Name', field: 'name', width: 150 },
|
|
154
|
+
{ title: 'Age', field: 'age', width: 100 },
|
|
155
|
+
{ title: 'City', field: 'city', width: 150 },
|
|
156
|
+
],
|
|
157
|
+
layout: 'fitColumns',
|
|
158
|
+
pagination: true,
|
|
159
|
+
paginationSize: 10,
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
// 5. Optional: Event listener
|
|
163
|
+
table.on('rowClick', (e, row) => {
|
|
164
|
+
const rowData = row.getData();
|
|
165
|
+
ctx.message.info(`Row clicked: ${rowData.name}`);
|
|
166
|
+
});
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### FullCalendar (ESM) Example
|
|
170
|
+
|
|
171
|
+
Shows how to load FullCalendar and its plugins via ESM and render a basic monthly view calendar.
|
|
172
|
+
|
|
173
|
+
```ts
|
|
174
|
+
// 1. Dynamically load FullCalendar core module
|
|
175
|
+
const { Calendar } = await ctx.importAsync('@fullcalendar/core@6.1.20');
|
|
176
|
+
|
|
177
|
+
// 2. Dynamically load dayGrid plugin
|
|
178
|
+
const dayGridPlugin = await ctx.importAsync('@fullcalendar/daygrid@6.1.20');
|
|
179
|
+
|
|
180
|
+
// 3. Create calendar container and render
|
|
181
|
+
const calendarEl = document.createElement('div');
|
|
182
|
+
calendarEl.id = 'calendar';
|
|
183
|
+
ctx.render(calendarEl);
|
|
184
|
+
|
|
185
|
+
// 4. Initialize and render calendar
|
|
186
|
+
const calendar = new Calendar(calendarEl, {
|
|
187
|
+
plugins: [dayGridPlugin.default || dayGridPlugin],
|
|
188
|
+
headerToolbar: {
|
|
189
|
+
left: 'prev,next today',
|
|
190
|
+
center: 'title',
|
|
191
|
+
right: 'dayGridMonth',
|
|
192
|
+
},
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
calendar.render();
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### dnd-kit Simple Drag-and-Drop Example
|
|
199
|
+
|
|
200
|
+
Uses `@dnd-kit/core` to implement a minimal example of dragging a Box to a target area within a block.
|
|
201
|
+
|
|
202
|
+
```ts
|
|
203
|
+
// 1. Load React, react-dom, @dnd-kit/core (?deps ensures same React instance to avoid Invalid hook call)
|
|
204
|
+
const React = await ctx.importAsync('react@18.2.0');
|
|
205
|
+
const { createRoot } = await ctx.importAsync('react-dom@18.2.0/client');
|
|
206
|
+
const core = await ctx.importAsync('@dnd-kit/core@6.3.1?deps=react@18.2.0,react-dom@18.2.0');
|
|
207
|
+
const { DndContext, closestCenter, PointerSensor, useSensor, useSensors, useDraggable, useDroppable } = core;
|
|
208
|
+
|
|
209
|
+
function DraggableBox() {
|
|
210
|
+
const { attributes, listeners, setNodeRef, transform } = useDraggable({ id: 'box' });
|
|
211
|
+
const style = {
|
|
212
|
+
padding: 12,
|
|
213
|
+
marginBottom: 8,
|
|
214
|
+
background: '#e6f7ff',
|
|
215
|
+
cursor: 'grab',
|
|
216
|
+
transform: transform ? 'translate3d(' + transform.x + 'px,' + transform.y + 'px,0)' : undefined,
|
|
217
|
+
};
|
|
218
|
+
return React.createElement('div', { ref: setNodeRef, style, ...attributes, ...listeners }, 'Drag me');
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
function DropZone() {
|
|
222
|
+
const { setNodeRef, isOver } = useDroppable({ id: 'zone' });
|
|
223
|
+
return React.createElement(
|
|
224
|
+
'div',
|
|
225
|
+
{
|
|
226
|
+
ref: setNodeRef,
|
|
227
|
+
style: { padding: 24, background: isOver ? '#b7eb8f' : '#f5f5f5', borderRadius: 8, minHeight: 80 },
|
|
228
|
+
},
|
|
229
|
+
'Drop here',
|
|
230
|
+
);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
function App() {
|
|
234
|
+
const sensors = useSensors(useSensor(PointerSensor));
|
|
235
|
+
function onDragEnd(e) {
|
|
236
|
+
if (e.over && e.over.id === 'zone') ctx.message.success('Dropped in zone');
|
|
237
|
+
}
|
|
238
|
+
return React.createElement(
|
|
239
|
+
DndContext,
|
|
240
|
+
{ sensors, collisionDetection: closestCenter, onDragEnd },
|
|
241
|
+
React.createElement(
|
|
242
|
+
'div',
|
|
243
|
+
{ style: { maxWidth: 280 } },
|
|
244
|
+
React.createElement(DraggableBox),
|
|
245
|
+
React.createElement(DropZone),
|
|
246
|
+
),
|
|
247
|
+
);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// 2. Render
|
|
251
|
+
ctx.render(<App />);
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
This example relies only on `@dnd-kit/core` to trigger a notification when a Box is dropped into a specific area, demonstrating the simplest drag-and-drop interaction combining `ctx.importAsync` and React in RunJS.
|
|
255
|
+
|
|
256
|
+
### dnd-kit Sortable List Example
|
|
257
|
+
|
|
258
|
+
Implements a vertical sortable list using dnd-kit's core, sortable, and utilities.
|
|
259
|
+
|
|
260
|
+
```ts
|
|
261
|
+
// 1. Load React and dnd-kit related packages (?deps ensures same React instance)
|
|
262
|
+
const React = await ctx.importAsync('react@18.2.0');
|
|
263
|
+
const { createRoot } = await ctx.importAsync('react-dom@18.2.0/client');
|
|
264
|
+
const dndCore = await ctx.importAsync('@dnd-kit/core@6.3.1?deps=react@18.2.0,react-dom@18.2.0');
|
|
265
|
+
const dndSortable = await ctx.importAsync('@dnd-kit/sortable@10.0.0?deps=react@18.2.0,react-dom@18.2.0');
|
|
266
|
+
const dndUtils = await ctx.importAsync('@dnd-kit/utilities@3.2.2');
|
|
267
|
+
|
|
268
|
+
const { useState } = React;
|
|
269
|
+
const { DndContext, closestCenter, KeyboardSensor, PointerSensor, useSensor, useSensors } = dndCore;
|
|
270
|
+
const {
|
|
271
|
+
arrayMove,
|
|
272
|
+
SortableContext,
|
|
273
|
+
sortableKeyboardCoordinates,
|
|
274
|
+
verticalListSortingStrategy,
|
|
275
|
+
useSortable,
|
|
276
|
+
} = dndSortable;
|
|
277
|
+
const { CSS } = dndUtils;
|
|
278
|
+
|
|
279
|
+
// 2. SortableItem component (must be inside SortableContext)
|
|
280
|
+
function SortableItem(props) {
|
|
281
|
+
const { id, label } = props;
|
|
282
|
+
const { attributes, listeners, setNodeRef, transform, transition } = useSortable({ id });
|
|
283
|
+
const style = {
|
|
284
|
+
transform: CSS.Transform.toString(transform),
|
|
285
|
+
transition,
|
|
286
|
+
padding: '12px 16px',
|
|
287
|
+
marginBottom: 8,
|
|
288
|
+
background: '#f5f5f5',
|
|
289
|
+
borderRadius: 6,
|
|
290
|
+
cursor: 'grab',
|
|
291
|
+
};
|
|
292
|
+
return React.createElement('div', { ref: setNodeRef, style, ...attributes, ...listeners }, label);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
// 3. App: DndContext + SortableContext + Drag end handler
|
|
296
|
+
const labels = { 1: 'First', 2: 'Second', 3: 'Third', 4: 'Fourth' };
|
|
297
|
+
function App() {
|
|
298
|
+
const [items, setItems] = useState([1, 2, 3, 4]);
|
|
299
|
+
const sensors = useSensors(
|
|
300
|
+
useSensor(PointerSensor),
|
|
301
|
+
useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates }),
|
|
302
|
+
);
|
|
303
|
+
|
|
304
|
+
function handleDragEnd(event) {
|
|
305
|
+
const { active, over } = event;
|
|
306
|
+
if (over && active.id !== over.id) {
|
|
307
|
+
setItems((prev) => {
|
|
308
|
+
const oldIndex = prev.indexOf(active.id);
|
|
309
|
+
const newIndex = prev.indexOf(over.id);
|
|
310
|
+
return arrayMove(prev, oldIndex, newIndex);
|
|
311
|
+
});
|
|
312
|
+
ctx.message.success('List reordered');
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
return React.createElement(
|
|
317
|
+
DndContext,
|
|
318
|
+
{
|
|
319
|
+
sensors,
|
|
320
|
+
collisionDetection: closestCenter,
|
|
321
|
+
onDragEnd: handleDragEnd,
|
|
322
|
+
},
|
|
323
|
+
React.createElement(
|
|
324
|
+
SortableContext,
|
|
325
|
+
{ items, strategy: verticalListSortingStrategy },
|
|
326
|
+
React.createElement(
|
|
327
|
+
'div',
|
|
328
|
+
{ style: { maxWidth: 320 } },
|
|
329
|
+
items.map((id) => React.createElement(SortableItem, { key: id, id, label: labels[id] })),
|
|
330
|
+
),
|
|
331
|
+
),
|
|
332
|
+
);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
// 4. Create container and mount React
|
|
336
|
+
const rootEl = document.createElement('div');
|
|
337
|
+
ctx.render(rootEl);
|
|
338
|
+
createRoot(rootEl).render(React.createElement(App));
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
This example uses `@dnd-kit/core`, `@dnd-kit/sortable`, and `@dnd-kit/utilities` to implement a sortable list that updates its order and displays a "List reordered" message after dragging.
|
|
342
|
+
|
|
343
|
+
### react-big-calendar Example
|
|
344
|
+
|
|
345
|
+
Renders a calendar component supporting event display in the current block using `react-big-calendar` and `date-fns` for localization.
|
|
346
|
+
|
|
347
|
+
```tsx
|
|
348
|
+
// 1. Load styles (ctx.importAsync uses ctx.loadCSS for .css files)
|
|
349
|
+
await ctx.importAsync('react-big-calendar@1.11.4/lib/css/react-big-calendar.css');
|
|
350
|
+
|
|
351
|
+
// 2. Load React, react-dom, react-big-calendar, date-fns, and locale (ensuring same React instance)
|
|
352
|
+
const React = await ctx.importAsync('react@18.2.0');
|
|
353
|
+
const { Calendar, dateFnsLocalizer } = await ctx.importAsync('react-big-calendar@1.11.4?deps=react@18.2.0,react-dom@18.2.0');
|
|
354
|
+
const { format, parse, startOfWeek, getDay } = await ctx.importAsync('date-fns@2.30.0');
|
|
355
|
+
const enUS = await ctx.importAsync('date-fns@2.30.0/locale/en-US.js');
|
|
356
|
+
|
|
357
|
+
const localizer = dateFnsLocalizer({
|
|
358
|
+
format,
|
|
359
|
+
parse,
|
|
360
|
+
startOfWeek,
|
|
361
|
+
getDay,
|
|
362
|
+
locales: { 'en-US': enUS },
|
|
363
|
+
});
|
|
364
|
+
|
|
365
|
+
const events = [
|
|
366
|
+
{ title: 'All Day Event', start: new Date(2026, 0, 28), end: new Date(2026, 0, 28), allDay: true },
|
|
367
|
+
{ title: 'Meeting', start: new Date(2026, 0, 29, 10, 0), end: new Date(2026, 0, 29, 11, 0) },
|
|
368
|
+
];
|
|
369
|
+
|
|
370
|
+
// 3. Render React Calendar
|
|
371
|
+
ctx.render(
|
|
372
|
+
<Calendar
|
|
373
|
+
localizer={localizer}
|
|
374
|
+
events={events}
|
|
375
|
+
startAccessor="start"
|
|
376
|
+
endAccessor="end"
|
|
377
|
+
style={{ height: '80vh' }}
|
|
378
|
+
/>
|
|
379
|
+
);
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### frappe-gantt Example
|
|
383
|
+
|
|
384
|
+
Uses `frappe-gantt` to render a Gantt chart view showing task start/end times and progress.
|
|
385
|
+
|
|
386
|
+
```ts
|
|
387
|
+
// 1. Dynamically load Gantt styles and constructor
|
|
388
|
+
// Depends on ESM_CDN_BASE_URL (default https://esm.sh), shorthand paths can be used
|
|
389
|
+
await ctx.importAsync('frappe-gantt@1.0.4/dist/frappe-gantt.css');
|
|
390
|
+
const Gantt = await ctx.importAsync('frappe-gantt@1.0.4');
|
|
391
|
+
|
|
392
|
+
// 2. Prepare task data
|
|
393
|
+
let tasks = [
|
|
394
|
+
{
|
|
395
|
+
id: '1',
|
|
396
|
+
name: 'Redesign website',
|
|
397
|
+
start: '2016-12-28',
|
|
398
|
+
end: '2016-12-31',
|
|
399
|
+
progress: 20,
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
id: '2',
|
|
403
|
+
name: 'Develop new feature',
|
|
404
|
+
start: '2017-01-01',
|
|
405
|
+
end: '2017-01-05',
|
|
406
|
+
progress: 40,
|
|
407
|
+
dependencies: '1',
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
id: '3',
|
|
411
|
+
name: 'QA & testing',
|
|
412
|
+
start: '2017-01-06',
|
|
413
|
+
end: '2017-01-10',
|
|
414
|
+
progress: 10,
|
|
415
|
+
dependencies: '2',
|
|
416
|
+
},
|
|
417
|
+
];
|
|
418
|
+
|
|
419
|
+
// 3. Create container and render
|
|
420
|
+
const ganttEl = document.createElement('div');
|
|
421
|
+
ganttEl.id = 'gantt';
|
|
422
|
+
ganttEl.style.height = '400px';
|
|
423
|
+
ctx.render(ganttEl);
|
|
424
|
+
|
|
425
|
+
// 4. Initialize Gantt chart
|
|
426
|
+
let gantt = new Gantt('#gantt', tasks, {
|
|
427
|
+
view_mode: 'Day', // View granularity: 'Quarter Day' | 'Half Day' | 'Day' | 'Week' | 'Month'
|
|
428
|
+
language: 'en',
|
|
429
|
+
bar_height: 24,
|
|
430
|
+
padding: 18,
|
|
431
|
+
custom_popup_html(task) {
|
|
432
|
+
return `
|
|
433
|
+
<div class="details-container">
|
|
434
|
+
<h5>${task.name}</h5>
|
|
435
|
+
<p>Start: ${task._start.toISOString().slice(0, 10)}</p>
|
|
436
|
+
<p>End: ${task._end.toISOString().slice(0, 10)}</p>
|
|
437
|
+
<p>Progress: ${task.progress}%</p>
|
|
438
|
+
</div>
|
|
439
|
+
`;
|
|
440
|
+
},
|
|
441
|
+
});
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
### @asseinfo/react-kanban Example
|
|
445
|
+
|
|
446
|
+
Utilizes `@asseinfo/react-kanban` to render a basic Kanban board with columns like Backlog and Doing within a block.
|
|
447
|
+
|
|
448
|
+
```ts
|
|
449
|
+
// 1. Load styles (ctx.importAsync directly loads .css)
|
|
450
|
+
await ctx.importAsync('@asseinfo/react-kanban@2.2.0/dist/styles.css');
|
|
451
|
+
|
|
452
|
+
// 2. Load React, react-dom, @asseinfo/react-kanban (?deps ensures same React instance)
|
|
453
|
+
const React = await ctx.importAsync('react@18.2.0');
|
|
454
|
+
const { default: Board } = await ctx.importAsync('@asseinfo/react-kanban@2.2.0?deps=react@18.2.0,react-dom@18.2.0');
|
|
455
|
+
|
|
456
|
+
const board = {
|
|
457
|
+
columns: [
|
|
458
|
+
{
|
|
459
|
+
id: 1,
|
|
460
|
+
title: 'Backlog',
|
|
461
|
+
cards: [
|
|
462
|
+
{ id: 1, title: 'Add card', description: 'Add capability to add a card in a column' },
|
|
463
|
+
],
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
id: 2,
|
|
467
|
+
title: 'Doing',
|
|
468
|
+
cards: [
|
|
469
|
+
{ id: 2, title: 'Drag-n-drop support', description: 'Move a card between the columns' },
|
|
470
|
+
],
|
|
471
|
+
},
|
|
472
|
+
],
|
|
473
|
+
};
|
|
474
|
+
|
|
475
|
+
// 4. Mount the board
|
|
476
|
+
ctx.render(<Board initialBoard={board} />);
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
## Notes
|
|
480
|
+
|
|
481
|
+
- This feature depends on an external network or CDN. In internal network environments, **ESM_CDN_BASE_URL** must be configured to point to a self-hosted service.
|
|
482
|
+
- When a library provides both ESM and UMD, prefer `ctx.importAsync()` for better module semantics.
|
|
483
|
+
- For libraries depending on React, ensure you append `?deps=react@18.2.0,react-dom@18.2.0`. The version must match the React version used by the page, otherwise, an "Invalid hook call" error may occur.
|
|
484
|
+
|
|
485
|
+
## Related
|
|
486
|
+
|
|
487
|
+
- [ctx.requireAsync()](./require-async.md): Load UMD/AMD or globally attached scripts, suitable for UMD libraries like ECharts and FullCalendar.
|
|
488
|
+
- [ctx.render()](./render.md): Render content into a container.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# ctx.initResource()
|
|
2
|
+
|
|
3
|
+
**Initializes** the resource for the current context. If `ctx.resource` does not already exist, it creates one of the specified type and binds it to the context; if it already exists, it is used directly. Afterward, it can be accessed via `ctx.resource`.
|
|
4
|
+
|
|
5
|
+
## Use Cases
|
|
6
|
+
|
|
7
|
+
Generally used in **JSBlock** (independent block) scenarios. Most blocks, popups, and other components have `ctx.resource` pre-bound and do not require manual calls. JSBlock has no resource by default, so you must call `ctx.initResource(type)` before loading data via `ctx.resource`.
|
|
8
|
+
|
|
9
|
+
## Type Definition
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
initResource(
|
|
13
|
+
type: 'APIResource' | 'SingleRecordResource' | 'MultiRecordResource' | 'SQLResource'
|
|
14
|
+
): FlowResource;
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
| Parameter | Type | Description |
|
|
18
|
+
|-----------|------|-------------|
|
|
19
|
+
| `type` | `string` | Resource type: `'APIResource'`, `'SingleRecordResource'`, `'MultiRecordResource'`, `'SQLResource'` |
|
|
20
|
+
|
|
21
|
+
**Returns**: The resource instance in the current context (i.e., `ctx.resource`).
|
|
22
|
+
|
|
23
|
+
## Difference from ctx.makeResource()
|
|
24
|
+
|
|
25
|
+
| Method | Behavior |
|
|
26
|
+
|--------|----------|
|
|
27
|
+
| `ctx.initResource(type)` | Creates and binds if `ctx.resource` does not exist; returns the existing one if it does. Ensures `ctx.resource` is available. |
|
|
28
|
+
| `ctx.makeResource(type)` | Only creates and returns a new instance, does **not** write to `ctx.resource`. Suitable for scenarios requiring multiple independent resources or temporary use. |
|
|
29
|
+
|
|
30
|
+
## Examples
|
|
31
|
+
|
|
32
|
+
### List Data (MultiRecordResource)
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
ctx.initResource('MultiRecordResource');
|
|
36
|
+
ctx.resource.setResourceName('users');
|
|
37
|
+
await ctx.resource.refresh();
|
|
38
|
+
const rows = ctx.resource.getData();
|
|
39
|
+
ctx.render(<pre>{JSON.stringify(rows, null, 2)}</pre>);
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Single Record (SingleRecordResource)
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
ctx.initResource('SingleRecordResource');
|
|
46
|
+
ctx.resource.setResourceName('users');
|
|
47
|
+
ctx.resource.setFilterByTk(1); // Specify primary key
|
|
48
|
+
await ctx.resource.refresh();
|
|
49
|
+
const record = ctx.resource.getData();
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Specify Data Source
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
ctx.initResource('MultiRecordResource');
|
|
56
|
+
ctx.resource.setDataSourceKey('main');
|
|
57
|
+
ctx.resource.setResourceName('orders');
|
|
58
|
+
await ctx.resource.refresh();
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Notes
|
|
62
|
+
|
|
63
|
+
- In most block scenarios (Forms, Tables, Details, etc.) and popups, `ctx.resource` is already pre-bound by the runtime environment, so calling `ctx.initResource` is unnecessary.
|
|
64
|
+
- Manual initialization is only required in contexts like JSBlock where there is no default resource.
|
|
65
|
+
- After initialization, you must call `setResourceName(name)` to specify the collection, and then call `refresh()` to load the data.
|
|
66
|
+
|
|
67
|
+
## Related
|
|
68
|
+
|
|
69
|
+
- [ctx.resource](./resource.md) — The resource instance in the current context
|
|
70
|
+
- [ctx.makeResource()](./make-resource.md) — Creates a new resource instance without binding it to `ctx.resource`
|
|
71
|
+
- [MultiRecordResource](../resource/multi-record-resource.md) — Multiple records/List
|
|
72
|
+
- [SingleRecordResource](../resource/single-record-resource.md) — Single record
|
|
73
|
+
- [APIResource](../resource/api-resource.md) — General API resource
|
|
74
|
+
- [SQLResource](../resource/sql-resource.md) — SQL query resource
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# ctx.libs
|
|
2
|
+
|
|
3
|
+
`ctx.libs` is the unified namespace for built-in libraries in RunJS, containing commonly used libraries such as React, Ant Design, dayjs, and lodash. **No `import` or asynchronous loading is required**; they can be used directly via `ctx.libs.xxx`.
|
|
4
|
+
|
|
5
|
+
## Use Cases
|
|
6
|
+
|
|
7
|
+
| Scenario | Description |
|
|
8
|
+
|------|------|
|
|
9
|
+
| **JSBlock / JSField / JSItem / JSColumn** | Use React + Ant Design to render UI, dayjs for date handling, and lodash for data processing. |
|
|
10
|
+
| **Formula / Calculation** | Use formula or math for Excel-like formulas and mathematical expression operations. |
|
|
11
|
+
| **Workflow / Linkage Rules** | Call utility libraries like lodash, dayjs, and formula in pure logic scenarios. |
|
|
12
|
+
|
|
13
|
+
## Built-in Libraries Overview
|
|
14
|
+
|
|
15
|
+
| Property | Description | Documentation |
|
|
16
|
+
|------|------|------|
|
|
17
|
+
| `ctx.libs.React` | React core, used for JSX and Hooks | [React](https://react.dev/) |
|
|
18
|
+
| `ctx.libs.ReactDOM` | ReactDOM client API (including `createRoot`), used with React for rendering | [React DOM](https://react.dev/reference/react-dom) |
|
|
19
|
+
| `ctx.libs.antd` | Ant Design component library (Button, Card, Table, Form, Input, Modal, etc.) | [Ant Design](https://ant.design/components/overview/) |
|
|
20
|
+
| `ctx.libs.antdIcons` | Ant Design icon library (e.g., PlusOutlined, UserOutlined) | [@ant-design/icons](https://ant.design/components/icon/) |
|
|
21
|
+
| `ctx.libs.dayjs` | Date and time utility library | [dayjs](https://day.js.org/) |
|
|
22
|
+
| `ctx.libs.lodash` | Utility library (get, set, debounce, etc.) | [Lodash](https://lodash.com/docs/) |
|
|
23
|
+
| `ctx.libs.formula` | Excel-like formula function library (SUM, AVERAGE, IF, etc.) | [Formula.js](https://formulajs.info/functions/) |
|
|
24
|
+
| `ctx.libs.math` | Mathematical expression and calculation library | [Math.js](https://mathjs.org/docs/) |
|
|
25
|
+
|
|
26
|
+
## Top-level Aliases
|
|
27
|
+
|
|
28
|
+
For compatibility with legacy code, some libraries are also exposed at the top level: `ctx.React`, `ctx.ReactDOM`, `ctx.antd`, and `ctx.dayjs`. **It is recommended to consistently use `ctx.libs.xxx`** for easier maintenance and documentation searching.
|
|
29
|
+
|
|
30
|
+
## Lazy Loading
|
|
31
|
+
|
|
32
|
+
`lodash`, `formula`, and `math` use **lazy loading**: a dynamic import is triggered only when `ctx.libs.lodash` is accessed for the first time, and the cache is reused thereafter. `React`, `antd`, `dayjs`, and `antdIcons` are pre-configured by the context and are available immediately.
|
|
33
|
+
|
|
34
|
+
## Examples
|
|
35
|
+
|
|
36
|
+
### Rendering with React and Ant Design
|
|
37
|
+
|
|
38
|
+
```tsx
|
|
39
|
+
const { Button, Card } = ctx.libs.antd;
|
|
40
|
+
|
|
41
|
+
ctx.render(
|
|
42
|
+
<Card title="Title">
|
|
43
|
+
<Button type="primary">Click</Button>
|
|
44
|
+
</Card>
|
|
45
|
+
);
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Using Hooks
|
|
49
|
+
|
|
50
|
+
```tsx
|
|
51
|
+
const { React } = ctx.libs;
|
|
52
|
+
const { useState } = React;
|
|
53
|
+
const { Button } = ctx.libs.antd;
|
|
54
|
+
|
|
55
|
+
const App = () => {
|
|
56
|
+
const [count, setCount] = useState(0);
|
|
57
|
+
return <Button onClick={() => setCount((c) => c + 1)}>{count}</Button>;
|
|
58
|
+
};
|
|
59
|
+
ctx.render(<App />);
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Using Icons
|
|
63
|
+
|
|
64
|
+
```tsx
|
|
65
|
+
const { Button } = ctx.libs.antd;
|
|
66
|
+
const { UserOutlined, HeartOutlined } = ctx.libs.antdIcons;
|
|
67
|
+
|
|
68
|
+
ctx.render(<Button icon={<UserOutlined />}>User</Button>);
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Date Processing with dayjs
|
|
72
|
+
|
|
73
|
+
```ts
|
|
74
|
+
const now = ctx.libs.dayjs();
|
|
75
|
+
const formatted = now.format('YYYY-MM-DD HH:mm:ss');
|
|
76
|
+
ctx.message.info(formatted);
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Utility Functions with lodash
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
const user = { profile: { name: 'Alice' } };
|
|
83
|
+
const name = ctx.libs.lodash.get(user, 'profile.name', 'Unknown');
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Formula Calculations
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
const values = [1, 2, 3, 4];
|
|
90
|
+
const sum = ctx.libs.formula.SUM(values);
|
|
91
|
+
const avg = ctx.libs.formula.AVERAGE(values);
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Mathematical Expressions with math.js
|
|
95
|
+
|
|
96
|
+
```ts
|
|
97
|
+
const result = ctx.libs.math.evaluate('2 + 3 * 4');
|
|
98
|
+
// result === 14
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Notes
|
|
102
|
+
|
|
103
|
+
- **Mixing with ctx.importAsync**: If an external React is loaded via `ctx.importAsync('react@19')`, JSX will use that instance. In this case, **do not** mix it with `ctx.libs.antd`. Ant Design must be loaded to match that React version (e.g., `ctx.importAsync('antd@5.x')`, `ctx.importAsync('@ant-design/icons@5.x')`).
|
|
104
|
+
- **Multiple React Instances**: If "Invalid hook call" occurs or the hook dispatcher is null, it is usually caused by multiple React instances. Before reading `ctx.libs.React` or calling Hooks, execute `await ctx.importAsync('react@version')` first to ensure the same React instance is shared with the page.
|
|
105
|
+
|
|
106
|
+
## Related
|
|
107
|
+
|
|
108
|
+
- [ctx.importAsync()](./import-async.md) - Load external ESM modules on demand (e.g., specific versions of React, Vue)
|
|
109
|
+
- [ctx.render()](./render.md) - Render content to a container
|