@lovrabet/rabetbase-cli 2.5.1-beta.5 → 2.5.1
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/lib/api/api-doc.js +1 -1
- package/lib/api/fetch-model-list.js +1 -1
- package/lib/api/generate-api-file.js +1 -1
- package/lib/api/generate-sdk-config-file.js +1 -1
- package/lib/auth/auth-server-ui.js +1 -1
- package/lib/auth/auth-server.js +1 -1
- package/lib/auth/constant.js +1 -1
- package/lib/auth/get-cookie.js +1 -1
- package/lib/auth/get-session-user.js +1 -1
- package/lib/auth/is-session-valid.js +1 -1
- package/lib/auth/login-success-html.js +1 -1
- package/lib/auth/logout.js +1 -1
- package/lib/cli-flags.js +1 -1
- package/lib/cli.js +1 -1
- package/lib/commands/api/generate.js +1 -1
- package/lib/commands/api/index.js +1 -1
- package/lib/commands/api/list.js +1 -1
- package/lib/commands/api/pull.js +1 -1
- package/lib/commands/api/shared.js +1 -1
- package/lib/commands/app/index.js +1 -1
- package/lib/commands/app/list.js +1 -1
- package/lib/commands/app/members-list.js +1 -1
- package/lib/commands/app/remote-directory.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/delete.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/app-config/list.js +1 -1
- package/lib/commands/app-config/set.js +1 -1
- package/lib/commands/app-config/shared.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/bff/create.js +1 -1
- package/lib/commands/bff/delete.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/bff/list.js +1 -1
- package/lib/commands/bff/pull.js +1 -1
- package/lib/commands/bff/push.js +1 -1
- package/lib/commands/bff/status.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/cli-update.js +1 -1
- package/lib/commands/codegen/index.js +1 -1
- package/lib/commands/codegen/sdk.js +1 -1
- package/lib/commands/codegen/sql.js +1 -1
- package/lib/commands/common/app-registry.js +1 -1
- package/lib/commands/common/app-selector.js +1 -1
- package/lib/commands/common/async-task.js +1 -1
- package/lib/commands/common/dry-run.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/common/validate.js +1 -1
- package/lib/commands/config/delete.js +1 -1
- package/lib/commands/config/get.js +1 -1
- package/lib/commands/config/index.js +1 -1
- package/lib/commands/config/init.js +1 -1
- package/lib/commands/config/list.js +1 -1
- package/lib/commands/config/set.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/dataset/business-group-update.js +1 -1
- package/lib/commands/dataset/business-groups.js +1 -1
- package/lib/commands/dataset/capability.js +1 -1
- package/lib/commands/dataset/delete.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/extend-update.js +1 -1
- package/lib/commands/dataset/field-restore.js +1 -1
- package/lib/commands/dataset/field-update.js +1 -1
- package/lib/commands/dataset/generate.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/operations.js +1 -1
- package/lib/commands/dataset/relation-audit.js +1 -1
- package/lib/commands/dataset/relation-create.js +1 -1
- package/lib/commands/dataset/relation-delete.js +1 -1
- package/lib/commands/dataset/relation-shared.js +1 -1
- package/lib/commands/dataset/relation-update.js +1 -1
- package/lib/commands/dataset/relations.js +1 -1
- package/lib/commands/dataset/rename.js +1 -1
- package/lib/commands/dataset/restore.js +1 -1
- package/lib/commands/dataset/user-deleted-field-list.js +1 -1
- package/lib/commands/db/analysis-batching.js +1 -1
- package/lib/commands/db/analyze-batch-plan.js +1 -1
- package/lib/commands/db/analyze-cancel.js +1 -1
- package/lib/commands/db/analyze-start.js +1 -1
- package/lib/commands/db/analyze-status.js +1 -1
- package/lib/commands/db/create.js +1 -1
- package/lib/commands/db/delete.js +1 -1
- package/lib/commands/db/detail.js +1 -1
- package/lib/commands/db/diff-refresh-start.js +1 -1
- package/lib/commands/db/diff-refresh-status.js +1 -1
- package/lib/commands/db/diff.js +1 -1
- package/lib/commands/db/index.js +1 -1
- package/lib/commands/db/list.js +1 -1
- package/lib/commands/db/shared.js +1 -1
- package/lib/commands/db/table-diff-shared.js +1 -1
- package/lib/commands/db/tables.js +1 -1
- package/lib/commands/db/test.js +1 -1
- package/lib/commands/db/update.js +1 -1
- package/lib/commands/deployment/auto-sync.js +1 -1
- package/lib/commands/deployment/index.js +1 -1
- package/lib/commands/deployment/sync.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/issue/index.js +1 -1
- package/lib/commands/issue/nudge.js +1 -1
- package/lib/commands/issue/report.js +1 -1
- package/lib/commands/issue/shared.js +1 -1
- package/lib/commands/kb/create.js +1 -1
- package/lib/commands/kb/delete.js +1 -1
- package/lib/commands/kb/detail.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/kb/list.js +1 -1
- package/lib/commands/kb/search.js +1 -1
- package/lib/commands/kb/shared.js +1 -1
- package/lib/commands/kb/update.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/menu/asset-update.js +1 -1
- package/lib/commands/menu/delete.js +1 -1
- package/lib/commands/menu/external-link-create.js +1 -1
- package/lib/commands/menu/external-link-update.js +1 -1
- package/lib/commands/menu/group-create.js +1 -1
- package/lib/commands/menu/group-update.js +1 -1
- package/lib/commands/menu/index.js +1 -1
- package/lib/commands/menu/list.js +1 -1
- package/lib/commands/menu/move.js +1 -1
- package/lib/commands/menu/regroup-start.js +1 -1
- package/lib/commands/menu/rename.js +1 -1
- package/lib/commands/menu/shared/compare-table.js +1 -1
- package/lib/commands/menu/shared/delete-plan.js +1 -1
- package/lib/commands/menu/shared/facts.js +1 -1
- package/lib/commands/menu/shared/index.js +1 -1
- package/lib/commands/menu/shared/inquirer.js +1 -1
- package/lib/commands/menu/shared/local-pages.js +1 -1
- package/lib/commands/menu/shared/logic.js +1 -1
- package/lib/commands/menu/shared/mutations.js +1 -1
- package/lib/commands/menu/shared/service.js +1 -1
- package/lib/commands/menu/shared/sync-core.js +1 -1
- package/lib/commands/menu/shared/update-core.js +1 -1
- package/lib/commands/menu/shared/valid-url.js +1 -1
- package/lib/commands/menu/sync.js +1 -1
- package/lib/commands/menu/visibility-update.js +1 -1
- package/lib/commands/notification/config-create.js +1 -1
- package/lib/commands/notification/config-delete.js +1 -1
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/config-update.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/notification/shared.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/page/create.js +1 -1
- package/lib/commands/page/custom/detail.js +1 -1
- package/lib/commands/page/custom/list.js +1 -1
- package/lib/commands/page/custom/publish.js +1 -1
- package/lib/commands/page/custom/shared.js +1 -1
- package/lib/commands/page/custom/syntax.js +1 -1
- package/lib/commands/page/custom/template.js +1 -1
- package/lib/commands/page/custom/update.js +1 -1
- package/lib/commands/page/data-list-status.js +1 -1
- package/lib/commands/page/generate-start.js +1 -1
- package/lib/commands/page/generate-status.js +1 -1
- package/lib/commands/page/index.js +1 -1
- package/lib/commands/page/pull.js +1 -1
- package/lib/commands/page/push.js +1 -1
- package/lib/commands/page/relation-audit.js +1 -1
- package/lib/commands/page/restore.js +1 -1
- package/lib/commands/page/shared.js +1 -1
- package/lib/commands/page/sync.js +1 -1
- package/lib/commands/project/create/enhanced-guided-create.js +1 -1
- package/lib/commands/project/create/format-elapsed.js +1 -1
- package/lib/commands/project/create/main.js +1 -1
- package/lib/commands/project/create/materialize-project-template.js +1 -1
- package/lib/commands/project/create/project-name.js +1 -1
- package/lib/commands/project/create/project-template-archive.js +1 -1
- package/lib/commands/project/create/project-template-path.js +1 -1
- package/lib/commands/project/create/use-copy-project-template.js +1 -1
- package/lib/commands/project/create/use-format-code.js +1 -1
- package/lib/commands/project/create/use-install-dependencies.js +1 -1
- package/lib/commands/project/domain-routing-sync.js +1 -1
- package/lib/commands/project/index.js +1 -1
- package/lib/commands/project/upgrade.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/role/user-resolve.js +1 -1
- package/lib/commands/rule/get.js +1 -1
- package/lib/commands/rule/index.js +1 -1
- package/lib/commands/rule/list.js +1 -1
- package/lib/commands/rule/set.js +1 -1
- package/lib/commands/rule/shared.js +1 -1
- package/lib/commands/run/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/sql/create.js +1 -1
- package/lib/commands/sql/delete.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/sql/list.js +1 -1
- package/lib/commands/sql/pull.js +1 -1
- package/lib/commands/sql/push.js +1 -1
- package/lib/commands/sql/shared.js +1 -1
- package/lib/commands/sql/status.js +1 -1
- package/lib/commands/sql/validate.js +1 -1
- package/lib/commands/task/index.js +1 -1
- package/lib/commands/task/status.js +1 -1
- package/lib/commands/tenant/index.js +1 -1
- package/lib/commands/tenant/members-list.js +1 -1
- package/lib/commands/tenant/shared.js +1 -1
- package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/add.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/commands/workspace/remove.js +1 -1
- package/lib/config/deployment-sync.js +1 -1
- package/lib/config/domain-config.js +1 -1
- package/lib/config/project-domain-routing.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/cdn.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/paths.js +1 -1
- package/lib/constant/region.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/routing-profile.js +1 -1
- package/lib/context/app-resolver.js +1 -1
- package/lib/context/auth-resolver.js +1 -1
- package/lib/context/config-loader.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/alias-resolver.js +1 -1
- package/lib/core/api-client.d.ts +0 -16
- package/lib/core/api-client.js +1 -1
- package/lib/core/bff/config.js +1 -1
- package/lib/core/bff/file-system.js +1 -1
- package/lib/core/bff/hash.js +1 -1
- package/lib/core/bff/lock.js +1 -1
- package/lib/core/bff/utils.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/kb-search-client.d.ts +30 -0
- package/lib/core/kb-search-client.js +1 -0
- package/lib/core/page/file-system.js +1 -1
- package/lib/core/page/hash.js +1 -1
- package/lib/core/page/lock.js +1 -1
- package/lib/core/sql-index-auditor.js +1 -1
- package/lib/core/sql-sync/config.js +1 -1
- package/lib/core/sql-sync/file-system.js +1 -1
- package/lib/core/sql-sync/hash.js +1 -1
- package/lib/core/sql-sync/lock.js +1 -1
- package/lib/core/sql-sync/utils.js +1 -1
- package/lib/core/sql-validator.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/error-output.js +1 -1
- package/lib/framework/explicit-yes.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-alias.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/types.d.ts +1 -0
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/generated/official-routing.js +1 -1
- package/lib/generated/routing-contract.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/main.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/telemetry/cli-command-trace.js +1 -1
- package/lib/telemetry/cli-help-trace.js +1 -1
- package/lib/telemetry/ensure-cli-otel-config.js +1 -1
- package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
- package/lib/telemetry/send-cli-trace-log.js +1 -1
- package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
- package/lib/utils/ai_config.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cdn-config.js +1 -1
- package/lib/utils/check-sdk-version.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/config.js +1 -1
- package/lib/utils/entity-with-id.js +1 -1
- package/lib/utils/file-utils.js +1 -1
- package/lib/utils/guides-cdn.js +1 -1
- package/lib/utils/http-client.js +1 -1
- package/lib/utils/is-non-interactive.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/sleep.js +1 -1
- package/lib/utils/template-replacer.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/with-active-cookie.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +1 -1
- package/skills/rabetbase/SKILL.md +3 -3
- package/skills/rabetbase/references/rabetbase-config.md +1 -1
- package/skills/rabetbase/references/rabetbase-database-template.md +36 -0
- package/skills/rabetbase/references/rabetbase-doctor.md +1 -1
- package/skills/rabetbase/references/rabetbase-kb.md +8 -7
- package/skills/rabetbase/references/rabetbase-rule.md +15 -0
- package/skills/rabetbase.manifest.json +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x3de087,_0x301ad4){const _0x5346ec=a297_0x397c,_0x4558e1=_0x3de087();while(!![]){try{const _0x4042bf=parseInt(_0x5346ec(0x16e))/0x1*(-parseInt(_0x5346ec(0x17a))/0x2)+-parseInt(_0x5346ec(0x181))/0x3*(-parseInt(_0x5346ec(0x17c))/0x4)+parseInt(_0x5346ec(0x17d))/0x5+parseInt(_0x5346ec(0x170))/0x6+-parseInt(_0x5346ec(0x171))/0x7*(parseInt(_0x5346ec(0x176))/0x8)+parseInt(_0x5346ec(0x180))/0x9*(-parseInt(_0x5346ec(0x17b))/0xa)+-parseInt(_0x5346ec(0x173))/0xb*(-parseInt(_0x5346ec(0x16d))/0xc);if(_0x4042bf===_0x301ad4)break;else _0x4558e1['push'](_0x4558e1['shift']());}catch(_0x4bdb6b){_0x4558e1['push'](_0x4558e1['shift']());}}}(a297_0x39fd,0x40afe));import{CLI_VERSION_POLICY_URL}from'../constant/cdn.js';const CACHE_TTL=0x5*0x3c*0x3e8,FAILURE_CACHE_TTL=0x3c*0x3e8,FETCH_TIMEOUT_MS=0xbb8;function pickString(_0x1452e8){const _0x579789=a297_0x397c;return typeof _0x1452e8===_0x579789(0x17f)&&_0x1452e8[_0x579789(0x172)]()[_0x579789(0x16c)]>0x0?_0x1452e8['trim']():null;}function normalizeCliVersionPolicy(_0x5ac346){const _0x5c1616=a297_0x397c;if(!_0x5ac346||typeof _0x5ac346!==_0x5c1616(0x179))return null;const _0x1e48e4=_0x5ac346,_0x34f511=_0x1e48e4[_0x5c1616(0x16f)]&&typeof _0x1e48e4[_0x5c1616(0x16f)]===_0x5c1616(0x179)?_0x1e48e4['cli']:_0x1e48e4,_0x1690bb=pickString(_0x34f511[_0x5c1616(0x178)])||pickString(_0x34f511['latestVersion'])||pickString(_0x34f511['recommendedVersion']),_0x5d318f=pickString(_0x34f511[_0x5c1616(0x182)])||pickString(_0x34f511[_0x5c1616(0x174)]);if(!_0x1690bb&&!_0x5d318f)return null;return{'stableVersion':_0x1690bb,'minimumVersion':_0x5d318f,'upgradeMessage':pickString(_0x34f511['upgradeMessage'])||undefined,'minimumVersionMessage':pickString(_0x34f511[_0x5c1616(0x183)])||undefined};}export async function fetchRabetbaseCdnConfig(){const _0xdd9532=a297_0x397c,_0x4ed496=new AbortController(),_0x15ea4e=setTimeout(()=>_0x4ed496['abort'](),FETCH_TIMEOUT_MS);try{const _0x1d96c6=await fetch(CLI_VERSION_POLICY_URL,{'headers':{'Accept':_0xdd9532(0x175)},'signal':_0x4ed496[_0xdd9532(0x177)]});if(!_0x1d96c6['ok'])return null;const _0x3531ea=await _0x1d96c6[_0xdd9532(0x17e)]();return _0x3531ea&&typeof _0x3531ea===_0xdd9532(0x179)?_0x3531ea:null;}catch{return null;}finally{clearTimeout(_0x15ea4e);}}export async function fetchCliVersionPolicy(){return normalizeCliVersionPolicy(await fetchRabetbaseCdnConfig());}let cachedConfig=null,cacheTime=0x0,hasCachedConfig=![];function a297_0x39fd(){const _0x461cec=['cli','931782thNFea','7329yMWXuB','trim','11VIJZik','minVersion','application/json','3704etdJId','signal','stableVersion','object','33898yMGFvG','1590QJNQji','52OozwlK','1696905KhVGHn','json','string','27036yTOvDA','14649nrRuuB','minimumVersion','minimumVersionMessage','length','12708300GBqjwf','23qMCijN'];a297_0x39fd=function(){return _0x461cec;};return a297_0x39fd();}function a297_0x397c(_0x2d8d1a,_0x5d1861){_0x2d8d1a=_0x2d8d1a-0x16c;const _0x39fd06=a297_0x39fd();let _0x397c48=_0x39fd06[_0x2d8d1a];return _0x397c48;}export async function getRabetbaseCdnConfig(){const _0x3d0b0c=Date['now']();if(hasCachedConfig){const _0x59015f=cachedConfig?CACHE_TTL:FAILURE_CACHE_TTL;if(_0x3d0b0c-cacheTime<_0x59015f)return cachedConfig;}return cachedConfig=await fetchRabetbaseCdnConfig(),cacheTime=_0x3d0b0c,hasCachedConfig=!![],cachedConfig;}export async function getCliVersionPolicy(){return normalizeCliVersionPolicy(await getRabetbaseCdnConfig());}export function clearCliVersionPolicyCache(){cachedConfig=null,cacheTime=0x0,hasCachedConfig=![];}
|
package/lib/utils/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a298_0x19a0(_0x4fb28d,_0x31368e){_0x4fb28d=_0x4fb28d-0x144;const _0x2bb79b=a298_0x2bb7();let _0x19a0c1=_0x2bb79b[_0x4fb28d];return _0x19a0c1;}(function(_0x2f1b6d,_0x2b7a73){const _0x4d7bff=a298_0x19a0,_0xd760c0=_0x2f1b6d();while(!![]){try{const _0x2227bf=parseInt(_0x4d7bff(0x148))/0x1+parseInt(_0x4d7bff(0x14b))/0x2+parseInt(_0x4d7bff(0x14d))/0x3*(parseInt(_0x4d7bff(0x146))/0x4)+-parseInt(_0x4d7bff(0x145))/0x5+-parseInt(_0x4d7bff(0x14c))/0x6+-parseInt(_0x4d7bff(0x149))/0x7*(-parseInt(_0x4d7bff(0x14e))/0x8)+-parseInt(_0x4d7bff(0x147))/0x9;if(_0x2227bf===_0x2b7a73)break;else _0xd760c0['push'](_0xd760c0['shift']());}catch(_0x4c74cd){_0xd760c0['push'](_0xd760c0['shift']());}}}(a298_0x2bb7,0xd62b1));function a298_0x2bb7(){const _0x5d53f6=['env','2708640wGEnfC','10507314LdZnQt','405XTSOto','16ORuPpX','string','689445OTyxAp','26524wRKzEI','17021034TbAGiz','847196NhEqrp','5463031taImqT'];a298_0x2bb7=function(){return _0x5d53f6;};return a298_0x2bb7();}import{initEnv}from'../constant/env.js';import{readRawConfig,getConfigAppCode as a298_0x14b982,getMultiAppConfigs as a298_0x5680d5,getTemplateBaseUrl as a298_0x341960}from'../context.js';export{getProjectConfigPath,getGlobalConfigPath}from'../context.js';export{isInProject}from'../context.js';export function readConfig(_0x25f3bf){const _0x2a379b=a298_0x19a0,_0x148cbe=readRawConfig(_0x25f3bf);return _0x148cbe[_0x2a379b(0x14a)]&&typeof _0x148cbe['env']===_0x2a379b(0x144)&&initEnv(_0x148cbe[_0x2a379b(0x14a)]),_0x148cbe;}export function getConfigAppCode(){return a298_0x14b982();}export function getMultiAppConfigs(_0x1029dc='project'){return a298_0x5680d5(_0x1029dc);}export function getTemplateBaseUrl(){return a298_0x341960();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x3cbfc1,_0x172808){const _0x16d2fb=a299_0x11af,_0x1573ae=_0x3cbfc1();while(!![]){try{const _0x2463e9=parseInt(_0x16d2fb(0x8c))/0x1+-parseInt(_0x16d2fb(0x7d))/0x2*(-parseInt(_0x16d2fb(0x7e))/0x3)+-parseInt(_0x16d2fb(0x83))/0x4*(-parseInt(_0x16d2fb(0x80))/0x5)+parseInt(_0x16d2fb(0x87))/0x6*(parseInt(_0x16d2fb(0x81))/0x7)+-parseInt(_0x16d2fb(0x89))/0x8*(-parseInt(_0x16d2fb(0x86))/0x9)+-parseInt(_0x16d2fb(0x88))/0xa+-parseInt(_0x16d2fb(0x8b))/0xb;if(_0x2463e9===_0x172808)break;else _0x1573ae['push'](_0x1573ae['shift']());}catch(_0x4d4adf){_0x1573ae['push'](_0x1573ae['shift']());}}}(a299_0x3859,0xc8d71));function a299_0x3859(){const _0x56c358=['34864368UxMtxQ','836642zmEroA','28gxjduo','301134ytEmui','isFinite','3503645ZDFFNZ','7672413NtVIDv','trim','4ivJgnw','object','number','18dkJUaB','6GzVyGV','7606450iAdIOx','2856208eQImna','string'];a299_0x3859=function(){return _0x56c358;};return a299_0x3859();}function a299_0x11af(_0x1b57f8,_0x28b80e){_0x1b57f8=_0x1b57f8-0x7d;const _0x3859c4=a299_0x3859();let _0x11af0d=_0x3859c4[_0x1b57f8];return _0x11af0d;}function toFiniteNumber(_0x287eb4){const _0xb17371=a299_0x11af;if(typeof _0x287eb4===_0xb17371(0x85)&&Number[_0xb17371(0x7f)](_0x287eb4))return _0x287eb4;if(typeof _0x287eb4===_0xb17371(0x8a)){const _0x1b388b=_0x287eb4[_0xb17371(0x82)]();if(!_0x1b388b)return undefined;const _0x3f46fb=Number(_0x1b388b);if(Number[_0xb17371(0x7f)](_0x3f46fb))return _0x3f46fb;}return undefined;}export function normalizeEntityWithIdResponse(_0x4e539b){const _0x469dde=a299_0x11af,_0x3ba7e8=toFiniteNumber(_0x4e539b);if(_0x3ba7e8!==undefined)return{'id':_0x3ba7e8,'entity':{'id':_0x3ba7e8}};if(!_0x4e539b||typeof _0x4e539b!==_0x469dde(0x84))return{'id':undefined,'entity':{}};const _0x575a94={..._0x4e539b},_0x32b143=toFiniteNumber(_0x575a94['id']);return _0x32b143!==undefined&&(_0x575a94['id']=_0x32b143),{'id':_0x32b143,'entity':_0x575a94};}
|
package/lib/utils/file-utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x4e2e0f,_0x5525db){const _0x2d95ed=a300_0x1634,_0x13b538=_0x4e2e0f();while(!![]){try{const _0x25a4b4=-parseInt(_0x2d95ed(0x18c))/0x1*(-parseInt(_0x2d95ed(0x18a))/0x2)+-parseInt(_0x2d95ed(0x18e))/0x3*(parseInt(_0x2d95ed(0x190))/0x4)+-parseInt(_0x2d95ed(0x192))/0x5+parseInt(_0x2d95ed(0x18b))/0x6+parseInt(_0x2d95ed(0x191))/0x7*(-parseInt(_0x2d95ed(0x188))/0x8)+parseInt(_0x2d95ed(0x193))/0x9*(-parseInt(_0x2d95ed(0x18d))/0xa)+parseInt(_0x2d95ed(0x18f))/0xb*(parseInt(_0x2d95ed(0x189))/0xc);if(_0x25a4b4===_0x5525db)break;else _0x13b538['push'](_0x13b538['shift']());}catch(_0x217cb9){_0x13b538['push'](_0x13b538['shift']());}}}(a300_0x3061,0x38204));import{existsSync,mkdirSync,copyFileSync,readdirSync,statSync}from'node:fs';import{join}from'node:path';function a300_0x3061(){const _0xef7a5a=['393754NEkCHm','144330hswSlV','2rbtXjR','40CzmttG','33tLRGKb','2354xzeCts','155392gZFTqu','833098wzKhZG','422535bGNiCt','466614SBDYXH','16lDcvBT','43140gvaHkq'];a300_0x3061=function(){return _0xef7a5a;};return a300_0x3061();}function a300_0x1634(_0x3c1fa9,_0x4a7a08){_0x3c1fa9=_0x3c1fa9-0x188;const _0x30610f=a300_0x3061();let _0x163434=_0x30610f[_0x3c1fa9];return _0x163434;}export async function copyDir(_0xf93195,_0x44cf62){const _0x49036e=statSync(_0xf93195);if(_0x49036e['isDirectory']()){!existsSync(_0x44cf62)&&mkdirSync(_0x44cf62,{'recursive':!![]});const _0x321a58=readdirSync(_0xf93195);for(const _0x1cc576 of _0x321a58){await copyDir(join(_0xf93195,_0x1cc576),join(_0x44cf62,_0x1cc576));}}else copyFileSync(_0xf93195,_0x44cf62);}export function ensureDir(_0x5d01c1){!existsSync(_0x5d01c1)&&mkdirSync(_0x5d01c1,{'recursive':!![]});}export function pathExists(_0x1859af){return existsSync(_0x1859af);}
|
package/lib/utils/guides-cdn.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a301_0x3ca9d1=a301_0x5304;(function(_0x5070af,_0x209929){const _0x59923c=a301_0x5304,_0x26b4fe=_0x5070af();while(!![]){try{const _0x4a9fdf=-parseInt(_0x59923c(0x17a))/0x1+parseInt(_0x59923c(0x177))/0x2+-parseInt(_0x59923c(0x179))/0x3*(parseInt(_0x59923c(0x165))/0x4)+parseInt(_0x59923c(0x178))/0x5*(parseInt(_0x59923c(0x16e))/0x6)+parseInt(_0x59923c(0x168))/0x7*(-parseInt(_0x59923c(0x16b))/0x8)+-parseInt(_0x59923c(0x173))/0x9*(parseInt(_0x59923c(0x15e))/0xa)+-parseInt(_0x59923c(0x160))/0xb*(-parseInt(_0x59923c(0x176))/0xc);if(_0x4a9fdf===_0x209929)break;else _0x26b4fe['push'](_0x26b4fe['shift']());}catch(_0x609675){_0x26b4fe['push'](_0x26b4fe['shift']());}}}(a301_0x2a98,0x33100));import{mkdirSync,writeFileSync}from'node:fs';import{dirname,join}from'node:path';function a301_0x5304(_0x2b0cf7,_0x345f6c){_0x2b0cf7=_0x2b0cf7-0x158;const _0x2a98d3=a301_0x2a98();let _0x53043f=_0x2a98d3[_0x2b0cf7];return _0x53043f;}import{homedir}from'node:os';import{getTemplateBaseUrl}from'../utils/config.js';function getGuidesCdnUrl(){const _0x5efc09=getTemplateBaseUrl();return _0x5efc09+'/skills/guides.json';}const CACHE_DIR=join(homedir(),a301_0x3ca9d1(0x17b),a301_0x3ca9d1(0x166));export async function fetchGuidesFromCDN(){const _0x25c37f=a301_0x3ca9d1,_0x599954=getGuidesCdnUrl(),_0x145dcc=await fetch(_0x599954,{'headers':{'Accept':_0x25c37f(0x170)}});if(!_0x145dcc['ok'])throw new Error(_0x25c37f(0x171)+_0x145dcc[_0x25c37f(0x161)]+'\x20'+_0x145dcc[_0x25c37f(0x167)]);const _0x2b3d12=await _0x145dcc[_0x25c37f(0x159)]();if(!_0x2b3d12[_0x25c37f(0x15c)]||typeof _0x2b3d12['guides']!==_0x25c37f(0x164))throw new Error('CDN\x20returned\x20invalid\x20data');return _0x2b3d12;}function a301_0x2a98(){const _0x1f4ce0=['json','entries','content','guides','\x0a\x0a>更新时间:','10rNsrma','lastUpdated','6604411MYAeIW','status','replace','trimEnd','object','14400xJrnAY','cache','statusText','3290WQmIWV','CDN\x20data\x20is\x20missing\x20skillTemplate','join','712ZvaBiz','utf-8','.md','6DLaNTB','length','application/json','CDN\x20request\x20failed:\x20','path','3455307WxsqkC','push','.lovrabet/skill/guides','12EjjRAV','17600xjWPMS','1391920mXOJxr','117RMDgCR','112280EXgLqR','.lovrabet','keys','skillTemplate','map','title','extendContent'];a301_0x2a98=function(){return _0x1f4ce0;};return a301_0x2a98();}export function writeGuidesToProject(_0x228e92,_0x486c90,_0x20a4c9=a301_0x3ca9d1(0x175),_0x57b1c1){const _0x4a90c6=a301_0x3ca9d1,_0x2a5bc3=join(_0x486c90,_0x20a4c9);mkdirSync(_0x2a5bc3,{'recursive':!![]});for(const [_0x3e8174,_0x5c86d2]of Object[_0x4a90c6(0x15a)](_0x228e92[_0x4a90c6(0x15c)])){let _0x28b101=_0x5c86d2[_0x4a90c6(0x15b)];_0x5c86d2['lastUpdated']&&(_0x28b101=appendUpdateTime(_0x28b101,_0x5c86d2[_0x4a90c6(0x15f)])),writeFileSync(join(_0x2a5bc3,_0x3e8174+_0x4a90c6(0x16d)),_0x28b101,'utf-8');}}export function appendUpdateTime(_0x593e5e,_0x1252c7){const _0x42adbc=a301_0x3ca9d1;return _0x593e5e=_0x593e5e['replace'](/\n*>更新时间:.*$/m,''),_0x593e5e[_0x42adbc(0x163)]()+(_0x42adbc(0x15d)+_0x1252c7);}export function getSkillTemplate(_0x1c56d4){return _0x1c56d4['skillTemplate']?.['content']||'';}export function appendExtendContents(_0x5291b1,_0x3de250,_0x19e499){const _0x17bf86=a301_0x3ca9d1,_0x303437=[];for(const [,_0x57e23a]of Object[_0x17bf86(0x15a)](_0x3de250[_0x17bf86(0x15c)])){_0x57e23a[_0x17bf86(0x158)]&&_0x303437[_0x17bf86(0x174)](_0x57e23a[_0x17bf86(0x158)]['trimEnd']());}if(_0x303437[_0x17bf86(0x16f)]===0x0)return _0x5291b1;return _0x5291b1[_0x17bf86(0x163)]()+'\x0a\x0a'+_0x303437[_0x17bf86(0x16a)]('\x0a\x0a')+'\x0a';}export function writeSkillFile(_0xfd2529,_0x22d9c8,_0x1f85fe){const _0x5343a4=a301_0x3ca9d1,_0x5f4f15=getSkillTemplate(_0xfd2529);if(!_0x5f4f15)throw new Error(_0x5343a4(0x169));const _0x599ebc=dirname(_0x22d9c8);mkdirSync(_0x599ebc,{'recursive':!![]});let _0xdc37b5=_0x5f4f15[_0x5343a4(0x162)](/\{\{IDE_NAME\}\}/g,_0x1f85fe);_0xdc37b5=appendExtendContents(_0xdc37b5,_0xfd2529),_0xfd2529[_0x5343a4(0x17d)][_0x5343a4(0x15f)]&&(_0xdc37b5=appendUpdateTime(_0xdc37b5,_0xfd2529['skillTemplate'][_0x5343a4(0x15f)])),writeFileSync(_0x22d9c8,_0xdc37b5,_0x5343a4(0x16c));}export async function installGuides(_0x2a7f99){const _0x5b9338=a301_0x3ca9d1,_0x31ce67=await fetchGuidesFromCDN();return writeGuidesToProject(_0x31ce67,_0x2a7f99),Object[_0x5b9338(0x17c)](_0x31ce67[_0x5b9338(0x15c)])[_0x5b9338(0x16f)];}export function getGuidesSummary(_0x1e64e9){const _0x369cba=a301_0x3ca9d1;return Object[_0x369cba(0x15a)](_0x1e64e9[_0x369cba(0x15c)])[_0x369cba(0x17e)](([_0x494345,_0x377f79])=>({'key':_0x494345,'title':_0x377f79[_0x369cba(0x17f)],'path':_0x377f79[_0x369cba(0x172)]}));}
|
package/lib/utils/http-client.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x493626,_0x28e781){const _0x175f59=a302_0x43e1,_0x474ec7=_0x493626();while(!![]){try{const _0x43c55c=parseInt(_0x175f59(0x1a1))/0x1+parseInt(_0x175f59(0x1a7))/0x2*(parseInt(_0x175f59(0x1ac))/0x3)+parseInt(_0x175f59(0x1b9))/0x4+-parseInt(_0x175f59(0x1a5))/0x5+-parseInt(_0x175f59(0x1a0))/0x6+-parseInt(_0x175f59(0x1a4))/0x7+parseInt(_0x175f59(0x1b4))/0x8;if(_0x43c55c===_0x28e781)break;else _0x474ec7['push'](_0x474ec7['shift']());}catch(_0x7e61c1){_0x474ec7['push'](_0x474ec7['shift']());}}}(a302_0x2879,0xbc5c2));function a302_0x2879(){const _0x349ad9=['TypeError','statusText','*\x20Request\x20failed;\x20retry\x20','signal','3XKtyJv','status','ENOTFOUND','headers','text','application/json','includes','ECONNRESET','6989528Rmokng','name','\x20in\x20','ms...','abort','3310836HWKSpQ','url','json','2500440lITsel','271750bPwHcg','message','log','7861245JJCGBo','1757980kMRlAO','Request\x20failed','1379486cZasuR'];a302_0x2879=function(){return _0x349ad9;};return a302_0x2879();}export async function httpRequest(_0x4a2acf,_0x3caac2={}){const _0x4b9c8f=a302_0x43e1,{timeout:timeout=0x7530,retries:retries=0x3,retryDelay:retryDelay=0x3e8,headers:headers={}}=_0x3caac2;let _0x262e82=null;for(let _0x2de8da=0x0;_0x2de8da<=retries;_0x2de8da++){try{const _0x5bb0c3=new AbortController(),_0x575ead=setTimeout(()=>_0x5bb0c3[_0x4b9c8f(0x1b8)](),timeout),_0x29b382=await fetch(_0x4a2acf,{'headers':headers,'signal':_0x5bb0c3[_0x4b9c8f(0x1ab)]});clearTimeout(_0x575ead);let _0x8008fa;const _0x3a2ab5=_0x29b382[_0x4b9c8f(0x1af)]['get']('content-type');return _0x3a2ab5?.['includes'](_0x4b9c8f(0x1b1))?_0x8008fa=await _0x29b382[_0x4b9c8f(0x19f)]():_0x8008fa=await _0x29b382[_0x4b9c8f(0x1b0)](),{'ok':_0x29b382['ok'],'status':_0x29b382[_0x4b9c8f(0x1ad)],'statusText':_0x29b382[_0x4b9c8f(0x1a9)],'data':_0x8008fa,'headers':_0x29b382[_0x4b9c8f(0x1af)],'url':_0x29b382[_0x4b9c8f(0x19e)],'text':()=>_0x29b382[_0x4b9c8f(0x1b0)]()};}catch(_0x20d371){_0x262e82=_0x20d371 instanceof Error?_0x20d371:new Error(String(_0x20d371));if(_0x2de8da===retries)break;if(shouldRetry(_0x20d371)){console[_0x4b9c8f(0x1a3)](_0x4b9c8f(0x1aa)+(_0x2de8da+0x1)+_0x4b9c8f(0x1b6)+retryDelay+_0x4b9c8f(0x1b7)),await sleep(retryDelay);continue;}else break;}}throw _0x262e82||new Error(_0x4b9c8f(0x1a6));}function shouldRetry(_0x5a5aa5){const _0x2aef9e=a302_0x43e1;if(_0x5a5aa5 instanceof Error){if(_0x5a5aa5[_0x2aef9e(0x1b5)]==='AbortError')return![];if(_0x5a5aa5[_0x2aef9e(0x1b5)]===_0x2aef9e(0x1a8)&&_0x5a5aa5['message'][_0x2aef9e(0x1b2)]('fetch'))return!![];if(_0x5a5aa5[_0x2aef9e(0x1a2)]['includes'](_0x2aef9e(0x1b3)))return!![];if(_0x5a5aa5[_0x2aef9e(0x1a2)][_0x2aef9e(0x1b2)](_0x2aef9e(0x1ae)))return![];}return![];}function sleep(_0x2fd2dc){return new Promise(_0x16f4eb=>setTimeout(_0x16f4eb,_0x2fd2dc));}function a302_0x43e1(_0x1c416c,_0x55af7b){_0x1c416c=_0x1c416c-0x19e;const _0x287917=a302_0x2879();let _0x43e11c=_0x287917[_0x1c416c];return _0x43e11c;}export function validateUrl(_0x54410f){try{return new URL(_0x54410f),!![];}catch{return![];}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0xedb29a,_0x5ad511){const _0x51d854=a303_0x1d53,_0x573d51=_0xedb29a();while(!![]){try{const _0x33f56d=-parseInt(_0x51d854(0x1ff))/0x1*(parseInt(_0x51d854(0x201))/0x2)+-parseInt(_0x51d854(0x1f2))/0x3+parseInt(_0x51d854(0x200))/0x4*(parseInt(_0x51d854(0x1fa))/0x5)+parseInt(_0x51d854(0x1fd))/0x6*(parseInt(_0x51d854(0x1f8))/0x7)+-parseInt(_0x51d854(0x1fb))/0x8*(-parseInt(_0x51d854(0x1f1))/0x9)+-parseInt(_0x51d854(0x1f4))/0xa+parseInt(_0x51d854(0x1f9))/0xb;if(_0x33f56d===_0x5ad511)break;else _0x573d51['push'](_0x573d51['shift']());}catch(_0x387fcc){_0x573d51['push'](_0x573d51['shift']());}}}(a303_0x1807,0x30923));function a303_0x1807(){const _0x49132d=['setRawMode','stdin','237223AxvYDm','3459115TCZQUR','700655BWIBac','72HswHNb','true','18hkcOLd','nonInteractive','4alHFgY','8HlYIQT','90422qgQxqh','90063yPKXCX','582879kXSYpX','stdout','2123730UqzeAr','isTTY'];a303_0x1807=function(){return _0x49132d;};return a303_0x1807();}function a303_0x1d53(_0x3464f2,_0x4a7ba7){_0x3464f2=_0x3464f2-0x1f1;const _0x18074a=a303_0x1807();let _0x1d5347=_0x18074a[_0x3464f2];return _0x1d5347;}function env(_0x50b02e){return process.env[`RABETBASE_${_0x50b02e}`]||process.env[`LOVRABET_${_0x50b02e}`]||undefined;}export function isNonInteractive(_0x4cf2de){const _0x490e4e=a303_0x1d53;return!!(_0x4cf2de[_0x490e4e(0x1fe)]||_0x4cf2de['ci']||env('CI')===_0x490e4e(0x1fc)||process.env.CI==='true'||!process[_0x490e4e(0x1f3)][_0x490e4e(0x1f5)]||!isStdinRawModeSupported());}function isStdinRawModeSupported(){const _0x10c480=a303_0x1d53;if(!process[_0x10c480(0x1f7)]['isTTY'])return![];try{const _0x52e15a=process[_0x10c480(0x1f7)]['isRaw'];return process['stdin'][_0x10c480(0x1f6)](!![]),process['stdin'][_0x10c480(0x1f6)](_0x52e15a??![]),!![];}catch{return![];}}
|
package/lib/utils/logger.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a304_0xe2d2(_0x3f4020,_0x121e7d){_0x3f4020=_0x3f4020-0x6c;const _0x2ec923=a304_0x2ec9();let _0xe2d25c=_0x2ec923[_0x3f4020];return _0xe2d25c;}function a304_0x2ec9(){const _0x28b718=['Failed\x20to\x20read\x20logs:','currentRawCommand','existsSync','toISOString','format','error','22LnPxoA','command','393719VRjcfa','setRawCommand','clear','mkdirSync','errors','duration','2307352vHUiBt','3292584Afxwwk','combine','level','rawCommand','getWinstonInstance','printf','21YAWKuM','success','utf8','addColors','Starting:\x20','warn','113585idPXhA','4476060jyXNhS','Completed:\x20','clearLogs','logTask','unknown','11062770PgAZWG','split','log','readFileSync','188wDHApk','103881fkCMaT','winstonLogger','message','logFilePath','now','readLogs','timestamp','File','yellow','stringify','writeFileSync','Failed:\x20','transports','filter','trim','green','red','22GBelEY','map','createLogger','info'];a304_0x2ec9=function(){return _0x28b718;};return a304_0x2ec9();}const a304_0x41423d=a304_0xe2d2;(function(_0x1ad41d,_0x36a7cd){const _0x3d8493=a304_0xe2d2,_0x18e7d8=_0x1ad41d();while(!![]){try{const _0x358e3a=parseInt(_0x3d8493(0xa4))/0x1+-parseInt(_0x3d8493(0xa2))/0x2*(-parseInt(_0x3d8493(0x87))/0x3)+-parseInt(_0x3d8493(0x86))/0x4*(-parseInt(_0x3d8493(0x7c))/0x5)+parseInt(_0x3d8493(0x70))/0x6+parseInt(_0x3d8493(0x76))/0x7*(parseInt(_0x3d8493(0x6f))/0x8)+-parseInt(_0x3d8493(0x7d))/0x9+parseInt(_0x3d8493(0x82))/0xa*(-parseInt(_0x3d8493(0x98))/0xb);if(_0x358e3a===_0x36a7cd)break;else _0x18e7d8['push'](_0x18e7d8['shift']());}catch(_0x7dd4e6){_0x18e7d8['push'](_0x18e7d8['shift']());}}}(a304_0x2ec9,0x8568a));import a304_0x931b47 from'winston';import a304_0x253816 from'node:fs';import a304_0x43ddd6 from'node:path';class Logger{[a304_0x41423d(0x88)];[a304_0x41423d(0x8a)];[a304_0x41423d(0x9d)]='';constructor(){const _0x7378fe=a304_0x41423d;this[_0x7378fe(0x8a)]='';}[a304_0x41423d(0xa5)](_0x5a5454){this['currentRawCommand']=_0x5a5454;}['initWinstonLogger'](){const _0x21ce6c=a304_0x41423d,_0x3ac43d=a304_0x43ddd6['dirname'](this['logFilePath']);!a304_0x253816[_0x21ce6c(0x9e)](_0x3ac43d)&&a304_0x253816[_0x21ce6c(0x6c)](_0x3ac43d,{'recursive':!![]});const _0x4e9e5e=a304_0x931b47[_0x21ce6c(0xa0)][_0x21ce6c(0x71)](a304_0x931b47[_0x21ce6c(0xa0)][_0x21ce6c(0x8d)](),a304_0x931b47[_0x21ce6c(0xa0)][_0x21ce6c(0x6d)]({'stack':!![]}),a304_0x931b47[_0x21ce6c(0xa0)][_0x21ce6c(0x75)](_0x424495=>{const _0x1aef74=_0x21ce6c,_0x581c52={'timestamp':_0x424495['timestamp']||new Date()[_0x1aef74(0x9f)](),'level':_0x424495[_0x1aef74(0x72)]||_0x1aef74(0x9b),'command':_0x424495[_0x1aef74(0xa3)]||_0x1aef74(0x81),'rawCommand':_0x424495[_0x1aef74(0x73)]||this[_0x1aef74(0x9d)]||undefined,'message':_0x424495[_0x1aef74(0x89)]||'','duration':_0x424495[_0x1aef74(0x6e)]||undefined,'details':_0x424495['details']||undefined};return JSON[_0x1aef74(0x90)](_0x581c52);}));this[_0x21ce6c(0x88)]=a304_0x931b47[_0x21ce6c(0x9a)]({'level':_0x21ce6c(0x9b),'format':_0x4e9e5e,'transports':[new a304_0x931b47[(_0x21ce6c(0x93))][(_0x21ce6c(0x8e))]({'filename':this[_0x21ce6c(0x8a)],'level':_0x21ce6c(0x9b)})],'silent':![]}),a304_0x931b47[_0x21ce6c(0x79)]({'success':_0x21ce6c(0x96),'error':_0x21ce6c(0x97),'warn':_0x21ce6c(0x8f),'info':'blue'});}['setLogPath'](_0x384e47){const _0x460ab8=a304_0x41423d;this[_0x460ab8(0x8a)]=a304_0x43ddd6['join'](_0x384e47,'.lovrabet.log'),this[_0x460ab8(0x88)]&&this[_0x460ab8(0x88)][_0x460ab8(0xa6)](),this['initWinstonLogger']();}['info'](_0x1b6367,_0xec6d85,_0x14ef31){const _0x137294=a304_0x41423d;if(!this['logFilePath']||!this[_0x137294(0x88)])return;this[_0x137294(0x88)][_0x137294(0x9b)](_0xec6d85,{'command':_0x1b6367,'details':_0x14ef31});}[a304_0x41423d(0x77)](_0xf552f8,_0x23661d,_0x4afb7e,_0x4390b8){const _0xd7bd21=a304_0x41423d;if(!this['logFilePath']||!this[_0xd7bd21(0x88)])return;this['winstonLogger'][_0xd7bd21(0x84)]('info',_0x23661d,{'level':'success','command':_0xf552f8,'duration':_0x4afb7e,'details':_0x4390b8});}[a304_0x41423d(0xa1)](_0x1ec2e4,_0x34a545,_0x12e9c9){const _0x1be32d=a304_0x41423d;if(!this['logFilePath']||!this[_0x1be32d(0x88)])return;this[_0x1be32d(0x88)][_0x1be32d(0xa1)](_0x34a545,{'command':_0x1ec2e4,'details':_0x12e9c9});}[a304_0x41423d(0x7b)](_0x32d71b,_0x25f81a,_0x2efb2a){const _0x28f977=a304_0x41423d;if(!this[_0x28f977(0x8a)]||!this[_0x28f977(0x88)])return;this[_0x28f977(0x88)]['warn'](_0x25f81a,{'command':_0x32d71b,'details':_0x2efb2a});}async[a304_0x41423d(0x80)](_0x488025,_0x3c92d1,_0x2cee98){const _0x3d3bc4=a304_0x41423d,_0x3726cb=Date[_0x3d3bc4(0x8b)]();this[_0x3d3bc4(0x9b)](_0x488025,_0x3d3bc4(0x7a)+_0x3c92d1);try{const _0x17155c=await _0x2cee98(),_0x118f1c=Date[_0x3d3bc4(0x8b)]()-_0x3726cb;return this[_0x3d3bc4(0x77)](_0x488025,_0x3d3bc4(0x7e)+_0x3c92d1,_0x118f1c),_0x17155c;}catch(_0xa8b068){const _0x4b62a2=Date['now']()-_0x3726cb;this[_0x3d3bc4(0xa1)](_0x488025,_0x3d3bc4(0x92)+_0x3c92d1,{'error':_0xa8b068 instanceof Error?_0xa8b068[_0x3d3bc4(0x89)]:String(_0xa8b068),'duration':_0x4b62a2});throw _0xa8b068;}}[a304_0x41423d(0x8c)](){const _0x3956d2=a304_0x41423d;try{if(!a304_0x253816[_0x3956d2(0x9e)](this[_0x3956d2(0x8a)]))return[];const _0x3c3c93=a304_0x253816[_0x3956d2(0x85)](this[_0x3956d2(0x8a)],_0x3956d2(0x78));return _0x3c3c93[_0x3956d2(0x83)]('\x0a')[_0x3956d2(0x94)](_0x4b3c42=>_0x4b3c42[_0x3956d2(0x95)]())[_0x3956d2(0x99)](_0x311160=>JSON['parse'](_0x311160));}catch(_0x49000f){return console[_0x3956d2(0x7b)](_0x3956d2(0x9c),_0x49000f),[];}}[a304_0x41423d(0x7f)](){const _0x22cda4=a304_0x41423d;try{a304_0x253816[_0x22cda4(0x9e)](this['logFilePath'])&&a304_0x253816[_0x22cda4(0x91)](this[_0x22cda4(0x8a)],'',_0x22cda4(0x78));}catch(_0x137c21){console[_0x22cda4(0x7b)]('Failed\x20to\x20clear\x20logs:',_0x137c21);}}[a304_0x41423d(0x74)](){const _0x32918f=a304_0x41423d;return this[_0x32918f(0x88)];}}export const logger=new Logger();
|
package/lib/utils/params.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x77c7f5,_0x31c9aa){const _0x56148d=a305_0x5200,_0x46e155=_0x77c7f5();while(!![]){try{const _0x219e20=-parseInt(_0x56148d(0x186))/0x1*(parseInt(_0x56148d(0x183))/0x2)+parseInt(_0x56148d(0x18e))/0x3+parseInt(_0x56148d(0x18f))/0x4*(-parseInt(_0x56148d(0x18b))/0x5)+-parseInt(_0x56148d(0x184))/0x6+parseInt(_0x56148d(0x18a))/0x7*(parseInt(_0x56148d(0x188))/0x8)+-parseInt(_0x56148d(0x180))/0x9+parseInt(_0x56148d(0x18c))/0xa*(parseInt(_0x56148d(0x189))/0xb);if(_0x219e20===_0x31c9aa)break;else _0x46e155['push'](_0x46e155['shift']());}catch(_0x16de43){_0x46e155['push'](_0x46e155['shift']());}}}(a305_0x5115,0x46d25));function a305_0x5200(_0x4313b8,_0x5e7eb1){_0x4313b8=_0x4313b8-0x180;const _0x5115f1=a305_0x5115();let _0x520056=_0x5115f1[_0x4313b8];return _0x520056;}import{CliErrors}from'../errors.js';function a305_0x5115(){const _0x30bf13=['1016yWRxqw','11uzUTZX','9772XAKdDN','270ztimBF','9889270fOgohe','validation','486531SPSHwf','35204HmUbek','object','1625931PcUqDh','Invalid\x20JSON\x20for\x20--params:\x20','--params\x20must\x20be\x20a\x20JSON\x20object','8PjeMYk','730596cIdFom','parse','65158jVgFtZ','isArray'];a305_0x5115=function(){return _0x30bf13;};return a305_0x5115();}export function parseJsonParams(_0xbb26b5){const _0xd62404=a305_0x5200;if(!_0xbb26b5)return undefined;let _0x443a23;try{_0x443a23=JSON[_0xd62404(0x185)](_0xbb26b5);}catch{throw CliErrors[_0xd62404(0x18d)](_0xd62404(0x181)+_0xbb26b5);}if(!_0x443a23||typeof _0x443a23!==_0xd62404(0x190)||Array[_0xd62404(0x187)](_0x443a23))throw CliErrors['validation'](_0xd62404(0x182),'Example:\x20--params\x20\x27{\x22id\x22:123}\x27');return _0x443a23;}
|
package/lib/utils/platform.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a306_0x2bc0(){const _0x45fd54=['3450235HIfJRK','210452mCYBlp','103HxqPgZ','15914zIDFpK','platform','win32','45eclQTm','9909180rqGnPa','2985120rUfZvL','2773260yoBfca','.cmd','538784EUpBpv'];a306_0x2bc0=function(){return _0x45fd54;};return a306_0x2bc0();}function a306_0x374a(_0x242395,_0x59ebe0){_0x242395=_0x242395-0x148;const _0x2bc069=a306_0x2bc0();let _0x374a7e=_0x2bc069[_0x242395];return _0x374a7e;}const a306_0x2c64da=a306_0x374a;(function(_0x4615c4,_0x251cb2){const _0x379616=a306_0x374a,_0x468058=_0x4615c4();while(!![]){try{const _0x2e50ca=parseInt(_0x379616(0x14a))/0x1*(parseInt(_0x379616(0x14b))/0x2)+-parseInt(_0x379616(0x150))/0x3+parseInt(_0x379616(0x149))/0x4+-parseInt(_0x379616(0x148))/0x5+parseInt(_0x379616(0x14f))/0x6+parseInt(_0x379616(0x151))/0x7+parseInt(_0x379616(0x153))/0x8*(-parseInt(_0x379616(0x14e))/0x9);if(_0x2e50ca===_0x251cb2)break;else _0x468058['push'](_0x468058['shift']());}catch(_0x354e62){_0x468058['push'](_0x468058['shift']());}}}(a306_0x2bc0,0xdb413));export const isWindows=process[a306_0x2c64da(0x14c)]===a306_0x2c64da(0x14d);export function resolveNpmBin(_0x5644a3){const _0x6a92fb=a306_0x2c64da;return isWindows?_0x5644a3+_0x6a92fb(0x152):_0x5644a3;}
|
package/lib/utils/sleep.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export function sleep(
|
|
1
|
+
export function sleep(_0x1bbf77){return new Promise(_0x2fd309=>setTimeout(_0x2fd309,_0x1bbf77));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a308_0x4c5585=a308_0x2e05;(function(_0x549282,_0x4d72d8){const _0x3f889e=a308_0x2e05,_0x1890b0=_0x549282();while(!![]){try{const _0x537944=-parseInt(_0x3f889e(0x7e))/0x1*(-parseInt(_0x3f889e(0xa2))/0x2)+parseInt(_0x3f889e(0x89))/0x3*(-parseInt(_0x3f889e(0x70))/0x4)+parseInt(_0x3f889e(0xaf))/0x5+parseInt(_0x3f889e(0x99))/0x6*(-parseInt(_0x3f889e(0x97))/0x7)+-parseInt(_0x3f889e(0x76))/0x8+parseInt(_0x3f889e(0x6e))/0x9*(-parseInt(_0x3f889e(0x82))/0xa)+parseInt(_0x3f889e(0x9b))/0xb;if(_0x537944===_0x4d72d8)break;else _0x1890b0['push'](_0x1890b0['shift']());}catch(_0x5c3da7){_0x1890b0['push'](_0x1890b0['shift']());}}}(a308_0xc930,0x97b04));import a308_0x1a3b79 from'node:fs';function a308_0x2e05(_0x52c839,_0x34f724){_0x52c839=_0x52c839-0x6a;const _0xc930e0=a308_0xc930();let _0x2e0533=_0xc930e0[_0x52c839];return _0x2e0533;}import a308_0x1fd478 from'node:path';import{logger}from'../utils/logger.js';import{getCliVersion}from'../utils/version.js';const CLI_VERSION=getCliVersion();function a308_0xc930(){const _0x380d03=['promises','7cESevP','default','1360362fwxzgT','utf8','15273819FPLvzn','pad','extname','tableName','info','alias:\x20\x22','toUpperCase','4610cIhYGR','name','.tsx','datasetCode','formatLocalTimestamp','api','processTemplate','readdir','\x20},','.js','mkdir','Template\x20content\x20replacement\x20failed','.ts','2372590ruYqCL','writeFile','.scss','toComponentName','toDisplayTitle','9OfpdmF','readFile','3698068IUCXgf','isDirectory','copyFile','.md','alias','toLowerCase','2516320mDOUEL','\x0a\x20\x20\x20\x20{\x20','.json','replaceApiContent','.tpl','tableName:\x20\x22','pop','endsWith','235Teaixn','.css','replace','getMonth','3176220FSmxBG','toISOString','join','.jsx','datasetCode:\x20\x22','getMinutes','error','3pkROaa','now','getSeconds','padStart','slice','Starting\x20template\x20content\x20replacement','charAt','replaceContent','template','includes','split','processFile','message'];a308_0xc930=function(){return _0x380d03;};return a308_0xc930();}export class TemplateReplacer{static[a308_0x4c5585(0x9c)](_0x3f0167){const _0x183258=a308_0x4c5585;return String(_0x3f0167)[_0x183258(0x8c)](0x2,'0');}static[a308_0x4c5585(0xa6)](_0x18f9ed){const _0x3890e7=a308_0x4c5585,_0x33798b=_0x18f9ed['getFullYear'](),_0x409f5a=this[_0x3890e7(0x9c)](_0x18f9ed[_0x3890e7(0x81)]()+0x1),_0x58dab0=this[_0x3890e7(0x9c)](_0x18f9ed['getDate']()),_0x2850fd=this[_0x3890e7(0x9c)](_0x18f9ed['getHours']()),_0x57a48f=this[_0x3890e7(0x9c)](_0x18f9ed[_0x3890e7(0x87)]()),_0x43e1fa=this[_0x3890e7(0x9c)](_0x18f9ed[_0x3890e7(0x8b)]());return{'createdAt':_0x33798b+'-'+_0x409f5a+'-'+_0x58dab0+'\x20'+_0x2850fd+':'+_0x57a48f+':'+_0x43e1fa,'createdDate':_0x33798b+'-'+_0x409f5a+'-'+_0x58dab0,'createdTime':_0x2850fd+':'+_0x57a48f+':'+_0x43e1fa};}static['toComponentName'](_0x413c6f){const _0x4a171d=a308_0x4c5585,_0x565a8a=_0x413c6f[_0x4a171d(0x93)]('/')[_0x4a171d(0x7c)]()||_0x413c6f;return _0x565a8a[_0x4a171d(0x93)]('-')['map'](_0x246bd4=>_0x246bd4[_0x4a171d(0x8f)](0x0)[_0x4a171d(0xa1)]()+_0x246bd4['slice'](0x1)['toLowerCase']())[_0x4a171d(0x84)]('');}static[a308_0x4c5585(0x6d)](_0x412a06){const _0x441ce2=a308_0x4c5585,_0x710bea=_0x412a06[_0x441ce2(0x93)]('/')['pop']()||_0x412a06;return _0x710bea['split']('-')['map'](_0x3db81c=>_0x3db81c[_0x441ce2(0x8f)](0x0)['toUpperCase']()+_0x3db81c[_0x441ce2(0x8d)](0x1)[_0x441ce2(0x75)]())[_0x441ce2(0x84)]('\x20');}static[a308_0x4c5585(0x90)](_0x208ae0,_0x409dbc,_0x344aa6){const _0x230dd5=a308_0x4c5585,_0x29595b=this[_0x230dd5(0x6c)](_0x409dbc),_0x5f3c71=this[_0x230dd5(0x6d)](_0x409dbc),{createdAt:_0x1b7101,createdDate:_0x1771bc,createdTime:_0x2622f2}=this['formatLocalTimestamp'](new Date());let _0x51bd52=_0x208ae0[_0x230dd5(0x80)](/\{CliVersion\}/g,CLI_VERSION)['replace'](/\{ComponentName\}/g,_0x29595b)['replace'](/\{DisplayTitle\}/g,_0x5f3c71)[_0x230dd5(0x80)](/\{PageName\}/g,_0x409dbc)[_0x230dd5(0x80)](/\{TemplateName\}/g,_0x344aa6)[_0x230dd5(0x80)](/\{CreatedAt\}/g,_0x1b7101)[_0x230dd5(0x80)](/\{CreatedDate\}/g,_0x1771bc)['replace'](/\{CreatedTime\}/g,_0x2622f2);return _0x51bd52;}static[a308_0x4c5585(0x79)](_0x49451f,_0x3334d7,_0x25aa08,_0x2567b4,_0x4f9cb3,_0x569c13,_0x50a20f,_0x614178){const _0x3e57a=a308_0x4c5585,_0x153e5c=new Date(),_0x225ea7=_0x153e5c[_0x3e57a(0x83)](),_0x31a4ba=_0x25aa08['map'](_0x1cbb76=>{const _0x10629a=_0x3e57a,_0x3702a0=[_0x10629a(0x86)+_0x1cbb76[_0x10629a(0xa5)]+'\x22',_0x10629a(0x7b)+_0x1cbb76[_0x10629a(0x9e)]+'\x22','name:\x20\x22'+_0x1cbb76[_0x10629a(0xa3)]+'\x22'];return _0x1cbb76[_0x10629a(0x74)]&&_0x3702a0['push'](_0x10629a(0xa0)+_0x1cbb76[_0x10629a(0x74)]+'\x22'),_0x10629a(0x77)+_0x3702a0[_0x10629a(0x84)](',\x20')+_0x10629a(0xaa);})['join'](''),_0x55a662=_0x2567b4||_0x25aa08[0x0]?.[_0x3e57a(0x74)]||'YourModel';let _0x3cff91=_0x49451f[_0x3e57a(0x80)](/\{AppCode\}/g,_0x3334d7)[_0x3e57a(0x80)](/\{ModelConfigs\}/g,_0x31a4ba)[_0x3e57a(0x80)](/\{ExampleModelName\}/g,_0x55a662)[_0x3e57a(0x80)](/\{ApiFileName\}/g,_0x4f9cb3||_0x3e57a(0xa7))[_0x3e57a(0x80)](/\{ConfigName\}/g,_0x569c13||_0x3e57a(0x98))[_0x3e57a(0x80)](/\{ClientConfigParam\}/g,_0x50a20f||'')[_0x3e57a(0x80)](/\{VarPrefix\}/g,_0x614178||'LOVRABET')[_0x3e57a(0x80)](/\{CreatedAt\}/g,_0x225ea7);return _0x3cff91;}static async[a308_0x4c5585(0xa8)](_0x54da1c,_0x46d7c2,_0x1e47ea,_0x339457,_0x5b8d8b=!![]){const _0x47ddb3=a308_0x4c5585,_0x23c4e5=Date[_0x47ddb3(0x8a)]();try{_0x5b8d8b&&logger[_0x47ddb3(0x9f)](_0x47ddb3(0x91),_0x47ddb3(0x8e),{'templatePath':_0x54da1c,'targetPath':_0x46d7c2,'pageName':_0x1e47ea,'templateName':_0x339457});await a308_0x1a3b79[_0x47ddb3(0x96)][_0x47ddb3(0xac)](_0x46d7c2,{'recursive':!![]}),await this['processDirectory'](_0x54da1c,_0x46d7c2,_0x1e47ea,_0x339457);if(_0x5b8d8b){const _0x51a9ee=Date[_0x47ddb3(0x8a)]()-_0x23c4e5;logger['success'](_0x47ddb3(0x91),'Template\x20content\x20replacement\x20completed',_0x51a9ee,{'pageName':_0x1e47ea,'templateName':_0x339457});}}catch(_0x348c0a){if(_0x5b8d8b){const _0x290e14=Date[_0x47ddb3(0x8a)]()-_0x23c4e5;logger[_0x47ddb3(0x88)](_0x47ddb3(0x91),_0x47ddb3(0xad),{'templatePath':_0x54da1c,'targetPath':_0x46d7c2,'pageName':_0x1e47ea,'templateName':_0x339457,'error':_0x348c0a instanceof Error?_0x348c0a[_0x47ddb3(0x95)]:String(_0x348c0a),'duration':_0x290e14});}throw _0x348c0a;}}static async['processDirectory'](_0xaa0b80,_0x59637d,_0x5b2b00,_0x2eca9c){const _0x59503a=a308_0x4c5585,_0x583940=await a308_0x1a3b79[_0x59503a(0x96)][_0x59503a(0xa9)](_0xaa0b80,{'withFileTypes':!![]});for(const _0x167ffd of _0x583940){const _0x4f54d2=a308_0x1fd478['join'](_0xaa0b80,_0x167ffd['name']);let _0x4d0d05=a308_0x1fd478[_0x59503a(0x84)](_0x59637d,_0x167ffd['name']);_0x167ffd['name']['endsWith'](_0x59503a(0x7a))&&(_0x4d0d05=a308_0x1fd478['join'](_0x59637d,_0x167ffd['name'][_0x59503a(0x80)](/\.tpl$/,'')));if(_0x167ffd[_0x59503a(0x71)]())await a308_0x1a3b79[_0x59503a(0x96)][_0x59503a(0xac)](_0x4d0d05,{'recursive':!![]}),await this['processDirectory'](_0x4f54d2,_0x4d0d05,_0x5b2b00,_0x2eca9c);else _0x167ffd['isFile']()&&await this['processFile'](_0x4f54d2,_0x4d0d05,_0x5b2b00,_0x2eca9c);}}static async[a308_0x4c5585(0x94)](_0x3a48ef,_0x22e538,_0x5258e2,_0x49f4af){const _0x9a4aa3=a308_0x4c5585,_0x2ed6a1=a308_0x1fd478[_0x9a4aa3(0x9d)](_0x3a48ef)[_0x9a4aa3(0x75)]();_0x3a48ef[_0x9a4aa3(0x7d)](_0x9a4aa3(0x7a))&&(_0x22e538=_0x22e538[_0x9a4aa3(0x80)](/\.tpl$/,''));const _0x286de6=[_0x9a4aa3(0xa4),_0x9a4aa3(0xae),_0x9a4aa3(0x85),_0x9a4aa3(0xab),_0x9a4aa3(0x78),_0x9a4aa3(0x73),_0x9a4aa3(0x7f),_0x9a4aa3(0x6b),_0x9a4aa3(0x7a)];if(_0x286de6[_0x9a4aa3(0x92)](_0x2ed6a1)||_0x3a48ef['endsWith']('.tpl')){const _0x5f11b1=await a308_0x1a3b79[_0x9a4aa3(0x96)][_0x9a4aa3(0x6f)](_0x3a48ef,_0x9a4aa3(0x9a)),_0x5bd06d=this['replaceContent'](_0x5f11b1,_0x5258e2,_0x49f4af);await a308_0x1a3b79['promises'][_0x9a4aa3(0x6a)](_0x22e538,_0x5bd06d,_0x9a4aa3(0x9a));}else await a308_0x1a3b79[_0x9a4aa3(0x96)][_0x9a4aa3(0x72)](_0x3a48ef,_0x22e538);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a309_0x2907(){const _0x45f6de=['114VnRjdd','latest','number','\x20update','yes','.cache','10JmYXbg','1107090auKMOU','toLowerCase','3517065yauRUC','64epdoOa','6314315fiUJfs','stringify','valid','14BkNyag','update-check.json','/v/','\x20available,\x20current\x20','lastNotifiedAt','lastNotifiedVersion','checkedAt','utf8','185591uaCTAN','true','5747088bnJYwM','object','stableVersion','295708idrlyo','14569357AmZMVt','https://www.npmjs.com/package/','trim','parse',',\x20run:\x20'];a309_0x2907=function(){return _0x45f6de;};return a309_0x2907();}(function(_0x49e95b,_0x42d56d){const _0x4f513c=a309_0x4368,_0x2465ab=_0x49e95b();while(!![]){try{const _0x30cd3a=parseInt(_0x4f513c(0x9a))/0x1*(parseInt(_0x4f513c(0x92))/0x2)+parseInt(_0x4f513c(0xae))/0x3+-parseInt(_0x4f513c(0x9c))/0x4+parseInt(_0x4f513c(0xb0))/0x5+-parseInt(_0x4f513c(0xa5))/0x6*(-parseInt(_0x4f513c(0x9f))/0x7)+-parseInt(_0x4f513c(0xaf))/0x8*(parseInt(_0x4f513c(0xac))/0x9)+parseInt(_0x4f513c(0xab))/0xa*(-parseInt(_0x4f513c(0xa0))/0xb);if(_0x30cd3a===_0x42d56d)break;else _0x2465ab['push'](_0x2465ab['shift']());}catch(_0x48936b){_0x2465ab['push'](_0x2465ab['shift']());}}}(a309_0x2907,0xc1464));import{mkdir,readFile,writeFile}from'node:fs/promises';import{homedir}from'node:os';import{dirname,join}from'node:path';import a309_0xd54da3 from'semver';function a309_0x4368(_0x3d5b93,_0x4bb829){_0x3d5b93=_0x3d5b93-0x90;const _0x2907f8=a309_0x2907();let _0x43683f=_0x2907f8[_0x3d5b93];return _0x43683f;}import{CLI_BIN_NAME,NPM_PACKAGE_NAME}from'../constant/cli.js';import{getCliVersionPolicy}from'../utils/cli-version-policy.js';import{getCliVersion}from'../utils/version.js';const UPDATE_CHECK_TTL_MS=0xc*0x3c*0x3c*0x3e8,UPDATE_NOTICE_TTL_MS=0x18*0x3c*0x3c*0x3e8;function isUpdateNoticeDisabled(){const _0x17a5f8=a309_0x4368,_0x24d5b5=process.env.RABETBASE_NO_UPDATE_NOTICE?.[_0x17a5f8(0xa2)]()[_0x17a5f8(0xad)]();return _0x24d5b5==='1'||_0x24d5b5===_0x17a5f8(0x9b)||_0x24d5b5===_0x17a5f8(0xa9);}function cacheRoot(){const _0x48ece5=a309_0x4368;return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),_0x48ece5(0xaa));}export function getUpdateNoticeCachePath(){const _0x291537=a309_0x4368;return join(cacheRoot(),'rabetbase-cli',_0x291537(0x93));}async function readUpdateNoticeCache(){const _0x37c5ea=a309_0x4368;try{const _0x19a907=await readFile(getUpdateNoticeCachePath(),_0x37c5ea(0x99)),_0x23201e=JSON[_0x37c5ea(0xa3)](_0x19a907);if(!_0x23201e||typeof _0x23201e!==_0x37c5ea(0x9d))return{};return _0x23201e;}catch{return{};}}async function writeUpdateNoticeCache(_0x17f9d2){const _0x49755b=a309_0x4368;try{const _0x10e3b6=getUpdateNoticeCachePath();await mkdir(dirname(_0x10e3b6),{'recursive':!![]}),await writeFile(_0x10e3b6,JSON[_0x49755b(0x90)](_0x17f9d2,null,0x2)+'\x0a',_0x49755b(0x99));}catch{}}function isFreshCheck(_0x157fd4,_0x400c31){const _0x24d858=a309_0x4368;return typeof _0x157fd4[_0x24d858(0x98)]===_0x24d858(0xa7)&&_0x400c31-_0x157fd4[_0x24d858(0x98)]<UPDATE_CHECK_TTL_MS;}function isRecentlyNotified(_0x592654,_0xb45f16,_0x24847b){const _0x39ba75=a309_0x4368;return _0x592654[_0x39ba75(0x97)]===_0xb45f16&&typeof _0x592654[_0x39ba75(0x96)]==='number'&&_0x24847b-_0x592654[_0x39ba75(0x96)]<UPDATE_NOTICE_TTL_MS;}export function buildNpmVersionUrl(_0x1102a2){const _0x41977b=a309_0x4368;return _0x41977b(0xa1)+NPM_PACKAGE_NAME+_0x41977b(0x94)+_0x1102a2;}export async function resolveLatestUpdateNotice(){const _0x46197a=a309_0x4368;if(isUpdateNoticeDisabled())return null;try{const _0x343b8f=Date['now'](),_0x3ea9f8=getCliVersion(),_0x145e31=await readUpdateNoticeCache();let _0x309561=isFreshCheck(_0x145e31,_0x343b8f)?_0x145e31[_0x46197a(0xa6)]?.[_0x46197a(0xa2)]():undefined;if(!_0x309561&&!isFreshCheck(_0x145e31,_0x343b8f)){const _0x232683=await getCliVersionPolicy();_0x309561=_0x232683?.[_0x46197a(0x9e)]?.[_0x46197a(0xa2)]()||undefined,await writeUpdateNoticeCache({..._0x145e31,'checkedAt':_0x343b8f,'latest':_0x309561,'failed':!_0x309561});}if(!_0x309561||!a309_0xd54da3['valid'](_0x3ea9f8)||!a309_0xd54da3[_0x46197a(0x91)](_0x309561))return null;if(a309_0xd54da3['gte'](_0x3ea9f8,_0x309561))return null;if(isRecentlyNotified(_0x145e31,_0x309561,_0x343b8f))return null;const _0xeb492=CLI_BIN_NAME+_0x46197a(0xa8);return await writeUpdateNoticeCache({..._0x145e31,'checkedAt':isFreshCheck(_0x145e31,_0x343b8f)?_0x145e31[_0x46197a(0x98)]:_0x343b8f,'latest':_0x309561,'failed':![],'lastNotifiedVersion':_0x309561,'lastNotifiedAt':_0x343b8f}),{'command':_0xeb492,'current':_0x3ea9f8,'latest':_0x309561,'url':buildNpmVersionUrl(_0x309561),'message':CLI_BIN_NAME+'\x20'+_0x309561+_0x46197a(0x95)+_0x3ea9f8+_0x46197a(0xa4)+_0xeb492};}catch{return null;}}
|
package/lib/utils/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x20609c,_0x93d62e){var _0x50096c=a310_0x3c20,_0x5eee45=_0x20609c();while(!![]){try{var _0x21a3e9=parseInt(_0x50096c(0x91))/0x1*(parseInt(_0x50096c(0x90))/0x2)+parseInt(_0x50096c(0x8b))/0x3*(-parseInt(_0x50096c(0x8c))/0x4)+parseInt(_0x50096c(0x8f))/0x5+parseInt(_0x50096c(0x94))/0x6*(parseInt(_0x50096c(0x8a))/0x7)+-parseInt(_0x50096c(0x8d))/0x8*(-parseInt(_0x50096c(0x89))/0x9)+-parseInt(_0x50096c(0x88))/0xa*(parseInt(_0x50096c(0x93))/0xb)+parseInt(_0x50096c(0x92))/0xc*(parseInt(_0x50096c(0x8e))/0xd);if(_0x21a3e9===_0x93d62e)break;else _0x5eee45['push'](_0x5eee45['shift']());}catch(_0x4876fa){_0x5eee45['push'](_0x5eee45['shift']());}}}(a310_0x923e,0x6d82b));import{VERSION}from'../generated/build-info.js';function a310_0x3c20(_0x51dfb2,_0x2217b1){_0x51dfb2=_0x51dfb2-0x88;var _0x923ecb=a310_0x923e();var _0x3c20f8=_0x923ecb[_0x51dfb2];return _0x3c20f8;}function a310_0x923e(){var _0x16b703=['1588027oKdKiQ','2569743vYDkMJ','4GjnmnS','3056392GRHTEK','13lcUSDx','1110070uEQuKq','1738wbzPnk','649JufcOA','1735248KwJpSt','2266UMiPhQ','12fkDAOt','22390IRHBcL','9dRThlY'];a310_0x923e=function(){return _0x16b703;};return a310_0x923e();}export function getCliVersion(){return VERSION;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x3dac68,_0x571e9d){var _0x3a589c=a311_0x2c4d,_0x5c5d9b=_0x3dac68();while(!![]){try{var _0x3c1b94=parseInt(_0x3a589c(0x16d))/0x1+parseInt(_0x3a589c(0x16e))/0x2+-parseInt(_0x3a589c(0x168))/0x3+parseInt(_0x3a589c(0x16b))/0x4*(parseInt(_0x3a589c(0x167))/0x5)+-parseInt(_0x3a589c(0x16a))/0x6+parseInt(_0x3a589c(0x16f))/0x7*(parseInt(_0x3a589c(0x16c))/0x8)+-parseInt(_0x3a589c(0x169))/0x9;if(_0x3c1b94===_0x571e9d)break;else _0x5c5d9b['push'](_0x5c5d9b['shift']());}catch(_0x232221){_0x5c5d9b['push'](_0x5c5d9b['shift']());}}}(a311_0x622b,0x51def));function a311_0x2c4d(_0x13d1e5,_0x4f8e06){_0x13d1e5=_0x13d1e5-0x167;var _0x622bf8=a311_0x622b();var _0x2c4dda=_0x622bf8[_0x13d1e5];return _0x2c4dda;}function a311_0x622b(){var _0x2223da=['3338532kbhewE','1863908zqYjqW','19056UYYLJP','625404fkkmoj','915392MPuDzl','1953qFyiDR','5NWXKjo','1542900LkZfnz','7268310qcGETd'];a311_0x622b=function(){return _0x2223da;};return a311_0x622b();}import{setActiveCookie,clearActiveCookie}from'../core/api-client.js';export async function withActiveCookie(_0x4fbbec,_0x3cdbf1){setActiveCookie(_0x4fbbec);try{return await _0x3cdbf1();}finally{clearActiveCookie();}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x4b099a,_0x26e175){var _0x281bee=a312_0x675d,_0x5ebb20=_0x4b099a();while(!![]){try{var _0x503803=parseInt(_0x281bee(0x17b))/0x1*(-parseInt(_0x281bee(0x17d))/0x2)+-parseInt(_0x281bee(0x183))/0x3*(-parseInt(_0x281bee(0x185))/0x4)+-parseInt(_0x281bee(0x186))/0x5*(-parseInt(_0x281bee(0x182))/0x6)+-parseInt(_0x281bee(0x17c))/0x7+parseInt(_0x281bee(0x17f))/0x8*(parseInt(_0x281bee(0x188))/0x9)+parseInt(_0x281bee(0x181))/0xa*(-parseInt(_0x281bee(0x187))/0xb)+parseInt(_0x281bee(0x17e))/0xc;if(_0x503803===_0x26e175)break;else _0x5ebb20['push'](_0x5ebb20['shift']());}catch(_0xf19d87){_0x5ebb20['push'](_0x5ebb20['shift']());}}}(a312_0x3080,0x9659c));function a312_0x3080(){var _0x5b1fb1=['5329258IsetxL','7088751YWeaQX','1ZEsYMY','5149543rOqQGo','2316838tLrqtQ','18234816BAHeEO','8fTdnQV','stderr','20XvBzhg','89022WQLhTA','3SVUVYM','write','3440304jaBxIF','105GuvaAR'];a312_0x3080=function(){return _0x5b1fb1;};return a312_0x3080();}function a312_0x675d(_0x129ec1,_0x192bdc){_0x129ec1=_0x129ec1-0x17b;var _0x3080ce=a312_0x3080();var _0x675df7=_0x3080ce[_0x129ec1];return _0x675df7;}export function writeCliSideChannelLine(_0xd7f08c){var _0x239604=a312_0x675d;process[_0x239604(0x180)][_0x239604(0x184)](_0xd7f08c+'\x0a');}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lovrabet/rabetbase-cli",
|
|
3
|
-
"version": "2.5.1
|
|
3
|
+
"version": "2.5.1",
|
|
4
4
|
"description": "Developer CLI for Lovrabet apps, datasets, pages, SQL, Backend Function, database connections, skills, and AI agent workflows.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"keywords": [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rabetbase
|
|
3
|
-
version: 2.5.1
|
|
4
|
-
description: "Use for Lovrabet development work through the rabetbase CLI: create or bind projects (including creating an AppCode project in the current folder), pull Dataset/API facts and maintain SDK clients, or manage datasets, database connections, pages, SQL, Backend Functions, menus, notifications, knowledge bases, Agent Context Rules, roles, files, OCR, deployment metadata, platform issues, and 钉钉沙箱账号绑定. Trigger when the user mentions rabetbase, Lovrabet development, AppCode, Dataset, project creation, api pull/codegen, dblink, page, SQL, BFF, menu, notification, knowledge base, Agent Context Rules, RULES.md, DATABASE.md, rule list/get/set, role, file/OCR, or related development workflows."
|
|
3
|
+
version: 2.5.1
|
|
4
|
+
description: "Use for Lovrabet development work through the rabetbase CLI: create or bind projects (including creating an AppCode project in the current folder), pull Dataset/API facts and maintain SDK clients, or manage datasets, database connections, pages, SQL, Backend Functions, menus, notifications, knowledge bases and kb search, Agent Context Rules, roles, files, OCR, deployment metadata, platform issues, and 钉钉沙箱账号绑定. Trigger when the user mentions rabetbase, Lovrabet development, AppCode, Dataset, project creation, api pull/codegen, dblink, page, SQL, BFF, menu, notification, knowledge base, kb search, Agent Context Rules, RULES.md, DATABASE.md, rule list/get/set, role, file/OCR, or related development workflows."
|
|
5
5
|
metadata:
|
|
6
6
|
requires:
|
|
7
7
|
bins: ["rabetbase"]
|
|
@@ -316,7 +316,7 @@ const result = await client.bff.execute<DashboardData>({
|
|
|
316
316
|
| 修改配置文件 | [`rabetbase config set <key> <value>`](references/rabetbase-config.md) | 默认写项目;无项目配置且未 `--global` 会拒绝;`--global` 写 `~/.rabetbase.json` |
|
|
317
317
|
| 列出配置 | [`rabetbase config list`](references/rabetbase-config.md) | 查看当前生效的配置 |
|
|
318
318
|
| 管理运行态 app-config | [`rabetbase app-config list/get/set/delete`](references/rabetbase-app-config.md) | 运行态 app-config 管理面;默认不输出明文 value;`set` 为 `write`,`delete` 保持 `high-risk-write` |
|
|
319
|
-
| 管理和检索当前研发应用的企业知识库 | [`rabetbase kb list/detail/search/create/update/delete`](references/rabetbase-kb.md) | 管理仅 company scope;search
|
|
319
|
+
| 管理和检索当前研发应用的企业知识库 | [`rabetbase kb list/detail/search/create/update/delete`](references/rabetbase-kb.md) | 管理仅 company scope;search 固定 Development 且仅 `public/company`;`create/update` 为 `write`,`delete` 保持 `high-risk-write` |
|
|
320
320
|
| 管理当前研发应用的 Agent context 规则 | [`rabetbase rule list/get/set`](references/rabetbase-rule.md) | `RULES.md` 供页面、API 等研发 Agent 使用且排除 DB Agent;`DATABASE.md` 仅供数据库分析时 DB Agent 使用;两者在各自流程全程参与 context;set 为 `write`,先 dry-run |
|
|
321
321
|
| 查询或管理应用级通知配置 | [`rabetbase notification config-list`](references/rabetbase-notification-config-list.md) / [`rabetbase notification config-create`](references/rabetbase-notification-config-mutations.md) / [`rabetbase notification config-update`](references/rabetbase-notification-config-mutations.md) / [`rabetbase notification config-delete`](references/rabetbase-notification-config-mutations.md) | list 获取 Backend Function 所需 `configCode`;写入只接收单一敏感 JSON 源,先 dry-run;update/delete 必须 `--yes` |
|
|
322
322
|
| 查看线上菜单事实 / 菜单异常审计 | [`rabetbase menu list`](references/rabetbase-menu-list.md) | 返回 DFS 事实、children/page、URL、最近更新人/时间和 snapshotHash;异常治理先读 [`menu-anomaly-manual-cleanup`](guides/menu-anomaly-manual-cleanup.md) |
|
|
@@ -136,7 +136,7 @@ rabetbase workspace remove product --yes
|
|
|
136
136
|
| `userDomain` | string | 平台默认 | 自定义用户域名 |
|
|
137
137
|
| `runtimeDomain` | string | 平台默认 | 自定义运行时域名 |
|
|
138
138
|
| `skillDomain` | string | 节点默认 | SkillHub HTTPS origin 覆盖 |
|
|
139
|
-
| `kbDomain` | string | 跟随 `apiDomain` / 节点 API 默认值 |
|
|
139
|
+
| `kbDomain` | string | 跟随 `apiDomain` / 节点 API 默认值 | 企业知识库管理与 `kb search` 的 SmartCode Java HTTPS origin;KB Service 下游地址由 Java 配置 |
|
|
140
140
|
| `appDomain` | string | 节点默认 | 工作台、页面编辑器和发布页面域名 |
|
|
141
141
|
| `localDomain` | string | 独立部署默认 `http://localhost` | 自定义 HTTPS 本地回调 origin;与 `certificateDomain` 同时配置 |
|
|
142
142
|
| `certificateDomain` | string | 节点默认;独立部署无 | 本地 HTTPS 证书服务 origin;与 `localDomain` 同时配置 |
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# DATABASE
|
|
2
|
+
|
|
3
|
+
> 仅记录当前应用特有、稳定,且无法从实时数据库结构、约束、索引、字段注释及通用数据库约定可靠推断的业务事实。删除不适用条目;完成后的文件建议不超过 5000 个 Unicode 字符,重要规则优先。物理结构以实时元数据为准,业务语义以已确认业务合同为准。
|
|
4
|
+
|
|
5
|
+
## BUSINESS_DOMAIN
|
|
6
|
+
|
|
7
|
+
- 系统定位:{一句话说明系统服务的业务与核心目标}。
|
|
8
|
+
- 业务边界:{明确包含与不包含的业务范围}。
|
|
9
|
+
- 数据隔离:{租户、组织、门店或其他隔离维度及判定字段}。
|
|
10
|
+
- 权威来源:{主数据、交易事实或配置分别以哪些表或外部系统为准}。
|
|
11
|
+
- 业务分组:{表前缀、模块或领域之间的稳定映射}。
|
|
12
|
+
|
|
13
|
+
## ENTITY_DICTIONARY
|
|
14
|
+
|
|
15
|
+
- `<table>`:业务对象={名称};类型={coreEntity/dictionaryTable/config/other};职责={该表保存什么事实};主记录判定={条件或字段}。
|
|
16
|
+
- `<child_table>`:从属于 `<parent_table>`;生命周期={随主对象创建、独立维护或历史保留};一条记录表示={业务含义}。
|
|
17
|
+
- `<snapshot_or_log_table>`:类型={snapshot/log/history};固化时点={事件};用途={审计、展示或计算};不作为={不应承担的当前事实来源}。
|
|
18
|
+
|
|
19
|
+
## COLUMN_SEMANTIC
|
|
20
|
+
|
|
21
|
+
- `<table>.<column>`:含义={业务含义};值域/单位={枚举、金额单位、时区等};空值={未设置、未知或不适用}。
|
|
22
|
+
- 系统字段:创建时间={field};修改时间={field};创建人={field};修改人={field};逻辑删除={field, 正常值/删除值}。
|
|
23
|
+
- 人员标识:`<table>.<column>` 表示 {employee/account/customer/external id},关联目标={table.column 或外部系统}。
|
|
24
|
+
- 状态流:`<table>.<status_column>` 的关键状态={value: meaning};终态={value};允许回退={条件}。
|
|
25
|
+
- 冗余或快照字段:`<table>.<column>` 来源={table.column/计算规则};刷新时机={事件};分析时优先级={源字段或快照字段}。
|
|
26
|
+
|
|
27
|
+
## RELATION_RULE
|
|
28
|
+
|
|
29
|
+
- `<source_table>.<source_column> -> <target_table>.<target_column>`;关系={many-to-one/one-to-one};唯一性依据={PK/unique index};展示字段={target.column}。
|
|
30
|
+
- `<source_table>.(<column_a>, <column_b>) -> <target_table>.(<column_x>, <column_y>)`;关系={复合关联含义};成立条件={过滤条件}。
|
|
31
|
+
- `<source_table>.<code_column> -> <dictionary_table>.<code_column>`;字典分类={类型字段及取值};展示字段={name_column}。
|
|
32
|
+
|
|
33
|
+
### 禁止关联
|
|
34
|
+
|
|
35
|
+
- `<table>.<column>` 是多态引用;由 `<type_column>` 判定目标:`<value> -> <target_table>`;缺少类型条件时不得直接关联。
|
|
36
|
+
- `<table>.<column>` 是 {快照文本/ID 列表/外部标识},不得按普通外键关联;正确解释={规则}。
|
|
@@ -25,7 +25,7 @@ rabetbase doctor check
|
|
|
25
25
|
| Country/Region Configuration | 检查项目与全局 `region`;显式未知值会标明来源,并给出对应作用域的 `config delete region` 修复命令 |
|
|
26
26
|
| Merged Config | 合并后的所有配置项(appCode / env / cookie / apiDir 等) |
|
|
27
27
|
| Apps | 多应用模式下的应用列表及各自配置 |
|
|
28
|
-
| API Endpoints | 最终生效的 region
|
|
28
|
+
| API Endpoints | 最终生效的 region 与域名(user / api / runtime / skill / kb / app);KB 管理与 search 共用 SmartCode Java origin |
|
|
29
29
|
| Auth | 登录状态及 cookie 有效性 |
|
|
30
30
|
|
|
31
31
|
## 典型场景
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
管理开发者侧当前解析应用下的 `company` 知识库,并检索当前应用可访问的公司与公共知识。所有命令都通过标准工作区、`--app <name>` 或 `--appcode <code>` 解析目标应用。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
企业知识库管理与 `kb search` 都使用 `kbDomain`;未显式配置时跟随当前 region/env 的 `apiDomain`,`runtimeDomain` 不参与。`kb search` Cookie-only 调用 SmartCode Java,KB Service 下游域名由 Java 配置,CLI 不再持有或直连该地址。
|
|
6
6
|
|
|
7
7
|
> 边界:`lovrabet kb` 使用运行态 AK/当前应用/当前用户,面向个人知识库和可见知识搜索;`rabetbase kb` 使用开发者登录态,面向公司知识库管理以及公司/公共知识检索。不要用其中一个替代另一个。
|
|
8
8
|
|
|
@@ -37,11 +37,12 @@ rabetbase kb delete --id 60 --yes
|
|
|
37
37
|
|
|
38
38
|
## search
|
|
39
39
|
|
|
40
|
-
- 调用 `POST /smartapi/knowledge/company-public/search
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
40
|
+
- Cookie-only 调用 SmartCode Java `POST /smartapi/knowledge/company-public/search`,请求体包含 `appCode`、`query` 和可选 `topK`;不发送 AK、`userId`、profile 或 scope。
|
|
41
|
+
- SmartCode Java 是统一鉴权、调用量记录与后续计费入口,并按自身配置转发 KB Service 固定 Development 接口;响应保持完整 V2 证据且带 `Cache-Control: no-store`。
|
|
42
|
+
- Development profile 在检索前固定限制为 `public/company`;任何 `personal` 命中都按协议错误失败关闭。
|
|
43
|
+
- `--query` 必填且不能是纯空白;`--topk` 可选,必须为 1–50 的整数。不传时沿用服务端缺省规则。
|
|
44
|
+
- 结构化输出固定为 `data: { schemaVersion:2, profile:"development", total, strategyFingerprint, timingsMs, hits }`。`total` 等于命中数;每个命中完整保留 `documentId/revision/chunkId/scope/title/text/tags/rank/rawScore/finalScore/scoreKind` 的服务端顺序和值,无 legacy 别名。
|
|
45
|
+
- 无命中是 `total:0/hits:[]` 的成功。HTTP、`no-store`、JSON、字段、rank、score、timing、TopK 或 scope 漂移均以脱敏结构化错误失败;错误不包含查询、正文或后端 body。
|
|
45
46
|
|
|
46
47
|
## create
|
|
47
48
|
|
|
@@ -73,4 +74,4 @@ rabetbase kb delete --id 60 --yes
|
|
|
73
74
|
|
|
74
75
|
- 使用 `--env daily` 或 `--env production` 选择 Profile 环境,不通过 URL 参数切换。
|
|
75
76
|
- Production 写操作必须单独取得授权;需求、dry-run 或命令可用不等于写入授权。
|
|
76
|
-
- 输出和错误不得包含 Cookie、Token
|
|
77
|
+
- 输出和错误不得包含 Cookie、Token 或 AccessKey。只有成功的 `search` 按上述 V2 合同返回知识正文;失败输出不得包含查询、正文、后端 body 或原始异常。
|
|
@@ -41,6 +41,21 @@ rabetbase rule set --type database --file ./DATABASE.md --dry-run
|
|
|
41
41
|
- 响应丢失但回读可证明结果时返回 verified 并标记恢复;证据不足时返回 outcome unknown,禁止自动重提。
|
|
42
42
|
- dry-run 和正式结构化输出都不包含新正文,只包含 `contentByteSize`、`contentHash` 等安全元数据。
|
|
43
43
|
|
|
44
|
+
## DATABASE.md 结构模板
|
|
45
|
+
|
|
46
|
+
创建数据库规则时,优先复制 [DATABASE.md 结构模板](./rabetbase-database-template.md),再用当前应用中无法从 DDL、索引、约束和注释可靠推断的事实替换占位符。模板按 DB Agent 可识别的四类语义组织:
|
|
47
|
+
|
|
48
|
+
- `BUSINESS_DOMAIN`:系统定位、业务边界、数据隔离和权威来源。
|
|
49
|
+
- `ENTITY_DICTIONARY`:表对应的业务对象、职责、类型和生命周期。
|
|
50
|
+
- `COLUMN_SEMANTIC`:系统字段、人员标识、枚举状态、单位和快照语义。
|
|
51
|
+
- `RELATION_RULE`:明确的关联方向、唯一性依据、复合关系及禁止误关联的例外。
|
|
52
|
+
|
|
53
|
+
四个二级标题已经提供分类语义,不要在每条规则前重复 `[BUSINESS_DOMAIN]`、`[ENTITY_DICTIONARY]`、`[COLUMN_SEMANTIC]` 或 `[RELATION_RULE]` 标签。准入标准是“当前应用特有且无法可靠推断”,不以某个 LLM 版本是否声称知道该知识为判断依据。
|
|
54
|
+
|
|
55
|
+
完整 `DATABASE.md` 建议不超过 5000 个 Unicode 字符,并把影响范围最大的规则放在前面。这是控制 Agent context 的编写建议,不是 `rule set` 的硬校验;CLI 仍遵循服务端现有的 5 MiB 文件限制。字符数也不应换算为固定 token 数,因为不同语言和模型的分词结果不同。
|
|
56
|
+
|
|
57
|
+
不要重复普通主外键、字段类型等可直接推断的信息,也不要写入凭证、连接串、样例业务数据或短期排障结论。`one-to-one` 必须有主键或唯一索引依据;多态引用、ID 列表、快照文本和外部标识应放入 `RELATION_RULE` 下的“禁止关联”小节,明确排除普通外键推断。
|
|
58
|
+
|
|
44
59
|
## 最佳实践
|
|
45
60
|
|
|
46
61
|
1. 先执行 `rule list`,确认目标文件是否存在及当前版本。
|