@lovrabet/rabetbase-cli 2.3.15 → 2.3.16-beta.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/README.md +7 -2
- 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/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/add.js +1 -1
- package/lib/commands/app/index.js +1 -1
- package/lib/commands/app/list.js +1 -1
- package/lib/commands/app/remote-directory.js +1 -1
- package/lib/commands/app/remove.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/get.js +1 -1
- package/lib/commands/config/index.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/data/filter.js +1 -1
- package/lib/commands/data/getOne.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/data/shared.js +1 -1
- package/lib/commands/dataset/business-group-update.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-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/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.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/tables.js +1 -1
- package/lib/commands/db/test.js +1 -1
- package/lib/commands/db/update.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init/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 -0
- package/lib/commands/kb/delete.js +1 -0
- package/lib/commands/kb/detail.js +1 -0
- package/lib/commands/kb/index.js +1 -0
- package/lib/commands/kb/list.js +1 -0
- package/lib/commands/kb/shared.js +1 -0
- package/lib/commands/kb/update.js +1 -0
- 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/notification/config-list.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/ocr/index.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/standard-page-status.js +1 -1
- package/lib/commands/page/sync.js +1 -1
- package/lib/commands/permit/index.js +1 -1
- package/lib/commands/permit/page-get.js +1 -1
- package/lib/commands/permit/page-set.js +1 -1
- package/lib/commands/permit/role-apis-set.js +1 -1
- package/lib/commands/permit/role-menus-set.js +1 -1
- package/lib/commands/permit/role-menus.js +1 -1
- package/lib/commands/permit/shared.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/non-interactive.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/index.js +1 -1
- package/lib/commands/project/init.js +1 -1
- package/lib/commands/project/upgrade.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/create.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/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/save.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/workspace/add.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/commands/workspace/remove.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/risk.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.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/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.js +1 -1
- package/lib/generated/build-info.js +1 -1
- package/lib/help.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 -0
- 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/copy-directory.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/rules-cdn.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/lib/utils/guides-cdn.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a263_0x10778f=a263_0x470e;(function(_0x404e56,_0x2c9b57){const _0x5ab767=a263_0x470e,_0x306abc=_0x404e56();while(!![]){try{const _0x1c2240=parseInt(_0x5ab767(0xcf))/0x1+parseInt(_0x5ab767(0xee))/0x2+-parseInt(_0x5ab767(0xe1))/0x3*(-parseInt(_0x5ab767(0xd7))/0x4)+-parseInt(_0x5ab767(0xd5))/0x5+parseInt(_0x5ab767(0xeb))/0x6+-parseInt(_0x5ab767(0xcc))/0x7*(-parseInt(_0x5ab767(0xe9))/0x8)+-parseInt(_0x5ab767(0xd4))/0x9;if(_0x1c2240===_0x2c9b57)break;else _0x306abc['push'](_0x306abc['shift']());}catch(_0xec3dfa){_0x306abc['push'](_0x306abc['shift']());}}}(a263_0x5b9d,0xa3cbe));import{mkdirSync,writeFileSync}from'node:fs';import{dirname,join}from'node:path';import{homedir}from'node:os';import{getTemplateBaseUrl}from'../utils/config.js';function getGuidesCdnUrl(){const _0x51800d=a263_0x470e,_0x59f115=getTemplateBaseUrl();return _0x59f115+_0x51800d(0xe3);}function a263_0x470e(_0x5d2f32,_0x1cadfd){_0x5d2f32=_0x5d2f32-0xcb;const _0x5b9de6=a263_0x5b9d();let _0x470e0c=_0x5b9de6[_0x5d2f32];return _0x470e0c;}const CACHE_DIR=join(homedir(),a263_0x10778f(0xe7),a263_0x10778f(0xcd));export async function fetchGuidesFromCDN(){const _0x17bfd7=a263_0x10778f,_0x1bb933=getGuidesCdnUrl(),_0x3b61df=await fetch(_0x1bb933,{'headers':{'Accept':_0x17bfd7(0xdb)}});if(!_0x3b61df['ok'])throw new Error(_0x17bfd7(0xd1)+_0x3b61df[_0x17bfd7(0xe6)]+'\x20'+_0x3b61df[_0x17bfd7(0xe8)]);const _0x4ebbe4=await _0x3b61df[_0x17bfd7(0xd6)]();if(!_0x4ebbe4[_0x17bfd7(0xea)]||typeof _0x4ebbe4[_0x17bfd7(0xea)]!==_0x17bfd7(0xd3))throw new Error(_0x17bfd7(0xd2));return _0x4ebbe4;}export function writeGuidesToProject(_0x344111,_0x1a7ded,_0x221c29=a263_0x10778f(0xdc),_0x57917d){const _0x5b6ed1=a263_0x10778f,_0x2c688a=join(_0x1a7ded,_0x221c29);mkdirSync(_0x2c688a,{'recursive':!![]});for(const [_0x52732d,_0x3a9c6f]of Object[_0x5b6ed1(0xde)](_0x344111['guides'])){let _0x35cb4f=_0x3a9c6f[_0x5b6ed1(0xd8)];_0x3a9c6f[_0x5b6ed1(0xe5)]&&(_0x35cb4f=appendUpdateTime(_0x35cb4f,_0x3a9c6f[_0x5b6ed1(0xe5)])),writeFileSync(join(_0x2c688a,_0x52732d+_0x5b6ed1(0xdf)),_0x35cb4f,_0x5b6ed1(0xda));}}export function appendUpdateTime(_0x54240f,_0x1c4879){const _0x5def3d=a263_0x10778f;return _0x54240f=_0x54240f[_0x5def3d(0xed)](/\n*>更新时间:.*$/m,''),_0x54240f['trimEnd']()+(_0x5def3d(0xd9)+_0x1c4879);}export function getSkillTemplate(_0x306a7b){const _0x29e9bb=a263_0x10778f;return _0x306a7b[_0x29e9bb(0xcb)]?.['content']||'';}export function appendExtendContents(_0xa6be07,_0xe45a0d,_0x5242ff){const _0x19a2c7=a263_0x10778f,_0x3ae591=[];for(const [,_0x18fd2f]of Object[_0x19a2c7(0xde)](_0xe45a0d[_0x19a2c7(0xea)])){_0x18fd2f['extendContent']&&_0x3ae591[_0x19a2c7(0xd0)](_0x18fd2f['extendContent'][_0x19a2c7(0xce)]());}if(_0x3ae591[_0x19a2c7(0xec)]===0x0)return _0xa6be07;return _0xa6be07['trimEnd']()+'\x0a\x0a'+_0x3ae591[_0x19a2c7(0xe2)]('\x0a\x0a')+'\x0a';}function a263_0x5b9d(){const _0x13b4f0=['status','.lovrabet','statusText','160112zFCvtT','guides','2741580iPjCvY','length','replace','1163624lNODwO','skillTemplate','385Hlcqfv','cache','trimEnd','597277qBBPxn','push','CDN\x20请求失败:\x20','CDN\x20返回数据格式错误','object','20222118uHuTuH','4966315bsaAAC','json','4697144ysMZOW','content','\x0a\x0a>更新时间:','utf-8','application/json','.lovrabet/skill/guides','CDN\x20数据中缺少\x20skillTemplate','entries','.md','title','3HDTuER','join','/skills/guides.json','map','lastUpdated'];a263_0x5b9d=function(){return _0x13b4f0;};return a263_0x5b9d();}export function writeSkillFile(_0x2aadb3,_0x5695d1,_0x5e9899){const _0x37128f=a263_0x10778f,_0x54bd8a=getSkillTemplate(_0x2aadb3);if(!_0x54bd8a)throw new Error(_0x37128f(0xdd));const _0x2295de=dirname(_0x5695d1);mkdirSync(_0x2295de,{'recursive':!![]});let _0x400639=_0x54bd8a[_0x37128f(0xed)](/\{\{IDE_NAME\}\}/g,_0x5e9899);_0x400639=appendExtendContents(_0x400639,_0x2aadb3),_0x2aadb3[_0x37128f(0xcb)][_0x37128f(0xe5)]&&(_0x400639=appendUpdateTime(_0x400639,_0x2aadb3[_0x37128f(0xcb)][_0x37128f(0xe5)])),writeFileSync(_0x5695d1,_0x400639,_0x37128f(0xda));}export async function installGuides(_0x2111c8){const _0x56e950=a263_0x10778f,_0x289936=await fetchGuidesFromCDN();return writeGuidesToProject(_0x289936,_0x2111c8),Object['keys'](_0x289936[_0x56e950(0xea)])[_0x56e950(0xec)];}export function getGuidesSummary(_0x595bca){const _0x3e639d=a263_0x10778f;return Object[_0x3e639d(0xde)](_0x595bca[_0x3e639d(0xea)])[_0x3e639d(0xe4)](([_0x123657,_0x373329])=>({'key':_0x123657,'title':_0x373329[_0x3e639d(0xe0)],'path':_0x373329['path']}));}
|
package/lib/utils/http-client.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a264_0x5688(){const _0x3b315a=['abort','fetch','log','760456RHilZP','10056VguVPl','name','ECONNRESET','18QMHUAw','signal','50CYfBTp','1055254ksXXeq','ENOTFOUND','headers','\x20次重试...','AbortError','1159368wHdFjc','4917935dgokWR','message','json','text','includes','1713264uXwKIk','get','45332rNFEpW','*\x20请求失败,','ms\x20后进行第\x20','Request\x20failed','984GvFvxC','725aRYBkQ','TypeError','application/json'];a264_0x5688=function(){return _0x3b315a;};return a264_0x5688();}(function(_0x287256,_0x452c8c){const _0x51b322=a264_0x4621,_0x5223bd=_0x287256();while(!![]){try{const _0x34a7ca=-parseInt(_0x51b322(0xf9))/0x1+-parseInt(_0x51b322(0xf4))/0x2+parseInt(_0x51b322(0xff))/0x3+parseInt(_0x51b322(0xee))/0x4*(parseInt(_0x51b322(0x106))/0x5)+-parseInt(_0x51b322(0x105))/0x6*(parseInt(_0x51b322(0x101))/0x7)+-parseInt(_0x51b322(0x10c))/0x8*(-parseInt(_0x51b322(0xf1))/0x9)+-parseInt(_0x51b322(0xf3))/0xa*(-parseInt(_0x51b322(0xfa))/0xb);if(_0x34a7ca===_0x452c8c)break;else _0x5223bd['push'](_0x5223bd['shift']());}catch(_0x309878){_0x5223bd['push'](_0x5223bd['shift']());}}}(a264_0x5688,0x95702));export async function httpRequest(_0x4c6ed2,_0x16b025={}){const _0x333f50=a264_0x4621,{timeout:timeout=0x7530,retries:retries=0x3,retryDelay:retryDelay=0x3e8,headers:headers={}}=_0x16b025;let _0x1ea4c6=null;for(let _0x3517ef=0x0;_0x3517ef<=retries;_0x3517ef++){try{const _0x7a973=new AbortController(),_0x5534ef=setTimeout(()=>_0x7a973[_0x333f50(0x109)](),timeout),_0x44cd1c=await fetch(_0x4c6ed2,{'headers':headers,'signal':_0x7a973[_0x333f50(0xf2)]});clearTimeout(_0x5534ef);let _0x4d4f2b;const _0x1989c7=_0x44cd1c[_0x333f50(0xf6)][_0x333f50(0x100)]('content-type');return _0x1989c7?.[_0x333f50(0xfe)](_0x333f50(0x108))?_0x4d4f2b=await _0x44cd1c[_0x333f50(0xfc)]():_0x4d4f2b=await _0x44cd1c[_0x333f50(0xfd)](),{'ok':_0x44cd1c['ok'],'status':_0x44cd1c['status'],'statusText':_0x44cd1c['statusText'],'data':_0x4d4f2b,'headers':_0x44cd1c[_0x333f50(0xf6)],'url':_0x44cd1c['url'],'text':()=>_0x44cd1c['text']()};}catch(_0x4004f7){_0x1ea4c6=_0x4004f7 instanceof Error?_0x4004f7:new Error(String(_0x4004f7));if(_0x3517ef===retries)break;if(shouldRetry(_0x4004f7)){console[_0x333f50(0x10b)](_0x333f50(0x102)+retryDelay+_0x333f50(0x103)+(_0x3517ef+0x1)+_0x333f50(0xf7)),await sleep(retryDelay);continue;}else break;}}throw _0x1ea4c6||new Error(_0x333f50(0x104));}function shouldRetry(_0x1b239d){const _0x5a23fe=a264_0x4621;if(_0x1b239d instanceof Error){if(_0x1b239d[_0x5a23fe(0xef)]===_0x5a23fe(0xf8))return![];if(_0x1b239d[_0x5a23fe(0xef)]===_0x5a23fe(0x107)&&_0x1b239d[_0x5a23fe(0xfb)][_0x5a23fe(0xfe)](_0x5a23fe(0x10a)))return!![];if(_0x1b239d[_0x5a23fe(0xfb)][_0x5a23fe(0xfe)](_0x5a23fe(0xf0)))return!![];if(_0x1b239d[_0x5a23fe(0xfb)][_0x5a23fe(0xfe)](_0x5a23fe(0xf5)))return![];}return![];}function sleep(_0x39cb0c){return new Promise(_0x159ca7=>setTimeout(_0x159ca7,_0x39cb0c));}function a264_0x4621(_0x1dcd48,_0x417d3a){_0x1dcd48=_0x1dcd48-0xee;const _0x568801=a264_0x5688();let _0x462142=_0x568801[_0x1dcd48];return _0x462142;}export function validateUrl(_0x27bbed){try{return new URL(_0x27bbed),!![];}catch{return![];}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a265_0x36c7(_0x46a39b,_0xda9539){_0x46a39b=_0x46a39b-0x97;const _0x9309c=a265_0x9309();let _0x36c7f1=_0x9309c[_0x46a39b];return _0x36c7f1;}(function(_0x3b6340,_0xb0f576){const _0x5911a6=a265_0x36c7,_0x4c903c=_0x3b6340();while(!![]){try{const _0x2e0aaf=parseInt(_0x5911a6(0xa3))/0x1*(parseInt(_0x5911a6(0xa5))/0x2)+parseInt(_0x5911a6(0xa6))/0x3+parseInt(_0x5911a6(0x9a))/0x4+-parseInt(_0x5911a6(0x9e))/0x5+parseInt(_0x5911a6(0x9c))/0x6+parseInt(_0x5911a6(0xa1))/0x7+-parseInt(_0x5911a6(0x9d))/0x8*(parseInt(_0x5911a6(0x98))/0x9);if(_0x2e0aaf===_0xb0f576)break;else _0x4c903c['push'](_0x4c903c['shift']());}catch(_0x52a602){_0x4c903c['push'](_0x4c903c['shift']());}}}(a265_0x9309,0x3cc45));function env(_0x1da787){return process.env[`RABETBASE_${_0x1da787}`]||process.env[`LOVRABET_${_0x1da787}`]||undefined;}export function isNonInteractive(_0x29fc86){const _0x30eeb5=a265_0x36c7;return!!(_0x29fc86[_0x30eeb5(0xa2)]||_0x29fc86['ci']||env('CI')==='true'||process.env.CI===_0x30eeb5(0xa0)||!process[_0x30eeb5(0x9b)][_0x30eeb5(0x99)]||!isStdinRawModeSupported());}function a265_0x9309(){const _0x2344cb=['isRaw','81894EVbhDP','668469kCTonT','stdin','47286lAWtcu','isTTY','87436PAAHAt','stdout','796464cFFZfS','848IzueCZ','463910HauEeK','setRawMode','true','2215122KFCBhH','nonInteractive','5hqsveR'];a265_0x9309=function(){return _0x2344cb;};return a265_0x9309();}function isStdinRawModeSupported(){const _0x483e56=a265_0x36c7;if(!process['stdin'][_0x483e56(0x99)])return![];try{const _0x45c59d=process[_0x483e56(0x97)][_0x483e56(0xa4)];return process[_0x483e56(0x97)][_0x483e56(0x9f)](!![]),process[_0x483e56(0x97)][_0x483e56(0x9f)](_0x45c59d??![]),!![];}catch{return![];}}
|
package/lib/utils/logger.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a266_0x21dcff=a266_0x1a78;function a266_0x1bbb(){const _0x513691=['logFilePath','setRawCommand','utf8','winstonLogger','toISOString','开始执行:\x20','readLogs','86511PDcqwo','info','warn','stringify','File','currentRawCommand','success','trim','.lovrabet.log','format','yellow','createLogger','duration','完成:\x20','existsSync','level','parse','printf','message','red','blue','map','mkdirSync','1544088igBEDK','addColors','rawCommand','10909143ObWSpg','122otJLOb','error','失败:\x20','now','3405020oWZNbP','combine','getWinstonInstance','2699230aBOHSZ','clearLogs','initWinstonLogger','1901676ALrTaW','417941QqsPwe','log','setLogPath','writeFileSync','command','filter','dirname','clear','transports','timestamp'];a266_0x1bbb=function(){return _0x513691;};return a266_0x1bbb();}function a266_0x1a78(_0x5bdb13,_0x376188){_0x5bdb13=_0x5bdb13-0x9d;const _0x1bbba5=a266_0x1bbb();let _0x1a7810=_0x1bbba5[_0x5bdb13];return _0x1a7810;}(function(_0x38dd02,_0x48bd11){const _0x4d3c57=a266_0x1a78,_0x8d2e47=_0x38dd02();while(!![]){try{const _0x1475e1=-parseInt(_0x4d3c57(0xd2))/0x1+-parseInt(_0x4d3c57(0xc7))/0x2*(parseInt(_0x4d3c57(0xac))/0x3)+parseInt(_0x4d3c57(0xcb))/0x4+parseInt(_0x4d3c57(0xce))/0x5+parseInt(_0x4d3c57(0xd1))/0x6+parseInt(_0x4d3c57(0xc6))/0x7+-parseInt(_0x4d3c57(0xc3))/0x8;if(_0x1475e1===_0x48bd11)break;else _0x8d2e47['push'](_0x8d2e47['shift']());}catch(_0x21917c){_0x8d2e47['push'](_0x8d2e47['shift']());}}}(a266_0x1bbb,0xdade7));import a266_0x4469a9 from'winston';import a266_0x598ea4 from'node:fs';import a266_0x21dfa4 from'node:path';class Logger{[a266_0x21dcff(0xa8)];[a266_0x21dcff(0xa5)];[a266_0x21dcff(0xb1)]='';constructor(){const _0x1750ff=a266_0x21dcff;this[_0x1750ff(0xa5)]='';}[a266_0x21dcff(0xa6)](_0x513d3d){const _0x471130=a266_0x21dcff;this[_0x471130(0xb1)]=_0x513d3d;}['initWinstonLogger'](){const _0x46de1e=a266_0x21dcff,_0x21a7b1=a266_0x21dfa4[_0x46de1e(0xa1)](this[_0x46de1e(0xa5)]);!a266_0x598ea4[_0x46de1e(0xba)](_0x21a7b1)&&a266_0x598ea4[_0x46de1e(0xc2)](_0x21a7b1,{'recursive':!![]});const _0x25c8df=a266_0x4469a9[_0x46de1e(0xb5)][_0x46de1e(0xcc)](a266_0x4469a9['format'][_0x46de1e(0xa4)](),a266_0x4469a9[_0x46de1e(0xb5)]['errors']({'stack':!![]}),a266_0x4469a9['format'][_0x46de1e(0xbd)](_0xfc45cf=>{const _0x169bb1=_0x46de1e,_0x307600={'timestamp':_0xfc45cf['timestamp']||new Date()[_0x169bb1(0xa9)](),'level':_0xfc45cf[_0x169bb1(0xbb)]||_0x169bb1(0xad),'command':_0xfc45cf[_0x169bb1(0x9f)]||'unknown','rawCommand':_0xfc45cf[_0x169bb1(0xc5)]||this[_0x169bb1(0xb1)]||undefined,'message':_0xfc45cf[_0x169bb1(0xbe)]||'','duration':_0xfc45cf[_0x169bb1(0xb8)]||undefined,'details':_0xfc45cf['details']||undefined};return JSON[_0x169bb1(0xaf)](_0x307600);}));this[_0x46de1e(0xa8)]=a266_0x4469a9[_0x46de1e(0xb7)]({'level':_0x46de1e(0xad),'format':_0x25c8df,'transports':[new a266_0x4469a9[(_0x46de1e(0xa3))][(_0x46de1e(0xb0))]({'filename':this[_0x46de1e(0xa5)],'level':'info'})],'silent':![]}),a266_0x4469a9[_0x46de1e(0xc4)]({'success':'green','error':_0x46de1e(0xbf),'warn':_0x46de1e(0xb6),'info':_0x46de1e(0xc0)});}[a266_0x21dcff(0x9d)](_0x141ea1){const _0x4b816c=a266_0x21dcff;this[_0x4b816c(0xa5)]=a266_0x21dfa4['join'](_0x141ea1,_0x4b816c(0xb4)),this['winstonLogger']&&this[_0x4b816c(0xa8)][_0x4b816c(0xa2)](),this[_0x4b816c(0xd0)]();}['info'](_0x30ae7b,_0x3bf304,_0x5a5ef7){const _0xb46629=a266_0x21dcff;if(!this[_0xb46629(0xa5)]||!this['winstonLogger'])return;this[_0xb46629(0xa8)][_0xb46629(0xad)](_0x3bf304,{'command':_0x30ae7b,'details':_0x5a5ef7});}[a266_0x21dcff(0xb2)](_0x3f5b32,_0x44be2d,_0x32fe19,_0x104abe){const _0x992a1=a266_0x21dcff;if(!this['logFilePath']||!this['winstonLogger'])return;this[_0x992a1(0xa8)][_0x992a1(0xd3)](_0x992a1(0xad),_0x44be2d,{'level':_0x992a1(0xb2),'command':_0x3f5b32,'duration':_0x32fe19,'details':_0x104abe});}[a266_0x21dcff(0xc8)](_0x443461,_0xa95507,_0x2e1a5f){const _0x563d39=a266_0x21dcff;if(!this['logFilePath']||!this[_0x563d39(0xa8)])return;this[_0x563d39(0xa8)][_0x563d39(0xc8)](_0xa95507,{'command':_0x443461,'details':_0x2e1a5f});}[a266_0x21dcff(0xae)](_0xefe03c,_0x4898df,_0x5516c5){const _0x2878d8=a266_0x21dcff;if(!this[_0x2878d8(0xa5)]||!this[_0x2878d8(0xa8)])return;this['winstonLogger'][_0x2878d8(0xae)](_0x4898df,{'command':_0xefe03c,'details':_0x5516c5});}async['logTask'](_0x2a8007,_0x41def6,_0x5c5a76){const _0x329e49=a266_0x21dcff,_0x4202e2=Date[_0x329e49(0xca)]();this['info'](_0x2a8007,_0x329e49(0xaa)+_0x41def6);try{const _0x1a4ab3=await _0x5c5a76(),_0x15d7d6=Date[_0x329e49(0xca)]()-_0x4202e2;return this[_0x329e49(0xb2)](_0x2a8007,_0x329e49(0xb9)+_0x41def6,_0x15d7d6),_0x1a4ab3;}catch(_0x23a5d6){const _0x3c64d5=Date[_0x329e49(0xca)]()-_0x4202e2;this[_0x329e49(0xc8)](_0x2a8007,_0x329e49(0xc9)+_0x41def6,{'error':_0x23a5d6 instanceof Error?_0x23a5d6[_0x329e49(0xbe)]:String(_0x23a5d6),'duration':_0x3c64d5});throw _0x23a5d6;}}[a266_0x21dcff(0xab)](){const _0x5a8e5e=a266_0x21dcff;try{if(!a266_0x598ea4[_0x5a8e5e(0xba)](this[_0x5a8e5e(0xa5)]))return[];const _0x7adeb7=a266_0x598ea4['readFileSync'](this[_0x5a8e5e(0xa5)],_0x5a8e5e(0xa7));return _0x7adeb7['split']('\x0a')[_0x5a8e5e(0xa0)](_0x212b99=>_0x212b99[_0x5a8e5e(0xb3)]())[_0x5a8e5e(0xc1)](_0x509b24=>JSON[_0x5a8e5e(0xbc)](_0x509b24));}catch(_0x337d7b){return console[_0x5a8e5e(0xae)]('Failed\x20to\x20read\x20logs:',_0x337d7b),[];}}[a266_0x21dcff(0xcf)](){const _0x19829d=a266_0x21dcff;try{a266_0x598ea4[_0x19829d(0xba)](this['logFilePath'])&&a266_0x598ea4[_0x19829d(0x9e)](this[_0x19829d(0xa5)],'',_0x19829d(0xa7));}catch(_0x3d0f2c){console[_0x19829d(0xae)]('Failed\x20to\x20clear\x20logs:',_0x3d0f2c);}}[a266_0x21dcff(0xcd)](){const _0x2332aa=a266_0x21dcff;return this[_0x2332aa(0xa8)];}}export const logger=new Logger();
|
package/lib/utils/params.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x5b488a,_0x5c95ba){const _0x2ace19=a267_0x1968,_0x434e6d=_0x5b488a();while(!![]){try{const _0x4fff1f=parseInt(_0x2ace19(0x1f1))/0x1+-parseInt(_0x2ace19(0x1f0))/0x2*(parseInt(_0x2ace19(0x1ee))/0x3)+-parseInt(_0x2ace19(0x1ef))/0x4+-parseInt(_0x2ace19(0x1f6))/0x5+parseInt(_0x2ace19(0x1f3))/0x6*(parseInt(_0x2ace19(0x1ec))/0x7)+-parseInt(_0x2ace19(0x1f5))/0x8*(-parseInt(_0x2ace19(0x1ed))/0x9)+parseInt(_0x2ace19(0x1f4))/0xa*(parseInt(_0x2ace19(0x1e9))/0xb);if(_0x4fff1f===_0x5c95ba)break;else _0x434e6d['push'](_0x434e6d['shift']());}catch(_0x544028){_0x434e6d['push'](_0x434e6d['shift']());}}}(a267_0x117e,0x2c4c9));function a267_0x117e(){const _0x1d260a=['270yrfXxO','135075chLgUg','389412dWTnSy','10pixnil','56464tkErGv','Invalid\x20JSON\x20for\x20--params:\x20','60558nGKgbF','2862430qzBIhN','1720opPLIC','1313410adBZqE','isArray','Example:\x20--params\x20\x27{\x22id\x22:123}\x27','22oTKGXe','--params\x20must\x20be\x20a\x20JSON\x20object','validation','91TGppbB'];a267_0x117e=function(){return _0x1d260a;};return a267_0x117e();}import{CliErrors}from'../errors.js';function a267_0x1968(_0x41ce2d,_0x1ccfc9){_0x41ce2d=_0x41ce2d-0x1e9;const _0x117ea1=a267_0x117e();let _0x196899=_0x117ea1[_0x41ce2d];return _0x196899;}export function parseJsonParams(_0x47314c){const _0x26159f=a267_0x1968;if(!_0x47314c)return undefined;let _0xef46a1;try{_0xef46a1=JSON['parse'](_0x47314c);}catch{throw CliErrors[_0x26159f(0x1eb)](_0x26159f(0x1f2)+_0x47314c);}if(!_0xef46a1||typeof _0xef46a1!=='object'||Array[_0x26159f(0x1f7)](_0xef46a1))throw CliErrors[_0x26159f(0x1eb)](_0x26159f(0x1ea),_0x26159f(0x1f8));return _0xef46a1;}
|
package/lib/utils/platform.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a268_0x5834bf=a268_0x21a5;(function(_0x1370ce,_0x3f5630){const _0x285f10=a268_0x21a5,_0x33a31c=_0x1370ce();while(!![]){try{const _0x590a09=parseInt(_0x285f10(0xa1))/0x1*(parseInt(_0x285f10(0xa7))/0x2)+-parseInt(_0x285f10(0xa9))/0x3*(parseInt(_0x285f10(0xa6))/0x4)+-parseInt(_0x285f10(0xa4))/0x5*(parseInt(_0x285f10(0x9c))/0x6)+-parseInt(_0x285f10(0xa5))/0x7*(-parseInt(_0x285f10(0x9f))/0x8)+parseInt(_0x285f10(0x9d))/0x9*(-parseInt(_0x285f10(0x9e))/0xa)+-parseInt(_0x285f10(0xa3))/0xb+parseInt(_0x285f10(0xa0))/0xc;if(_0x590a09===_0x3f5630)break;else _0x33a31c['push'](_0x33a31c['shift']());}catch(_0x1580d9){_0x33a31c['push'](_0x33a31c['shift']());}}}(a268_0x2451,0x6b248));export const isWindows=process[a268_0x5834bf(0xa2)]===a268_0x5834bf(0xa8);function a268_0x21a5(_0x2b171e,_0x29f34c){_0x2b171e=_0x2b171e-0x9c;const _0x2451c9=a268_0x2451();let _0x21a583=_0x2451c9[_0x2b171e];return _0x21a583;}export function resolveNpmBin(_0x27b103){return isWindows?_0x27b103+'.cmd':_0x27b103;}function a268_0x2451(){const _0x1e0dfe=['14194920ggCrQO','567rvZkfK','platform','4036626afRZYV','750qcOMxQ','1660631wwLPRb','12568AyVkew','3038pvTlGI','win32','411NlUeOG','28668ZAeuPP','8568fuSOzK','3450FWeDKc','8bUhRnf'];a268_0x2451=function(){return _0x1e0dfe;};return a268_0x2451();}
|
package/lib/utils/rules-cdn.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a269_0x55e763=a269_0x3116;(function(_0x498c84,_0x1a1f2d){const _0x53316b=a269_0x3116,_0x18ec32=_0x498c84();while(!![]){try{const _0x25e574=-parseInt(_0x53316b(0x8a))/0x1*(-parseInt(_0x53316b(0x82))/0x2)+-parseInt(_0x53316b(0x8b))/0x3+parseInt(_0x53316b(0x93))/0x4*(parseInt(_0x53316b(0x8d))/0x5)+-parseInt(_0x53316b(0x83))/0x6*(parseInt(_0x53316b(0x89))/0x7)+parseInt(_0x53316b(0x95))/0x8*(parseInt(_0x53316b(0x91))/0x9)+-parseInt(_0x53316b(0x88))/0xa*(parseInt(_0x53316b(0x84))/0xb)+parseInt(_0x53316b(0x7f))/0xc*(parseInt(_0x53316b(0x96))/0xd);if(_0x25e574===_0x1a1f2d)break;else _0x18ec32['push'](_0x18ec32['shift']());}catch(_0x3f631b){_0x18ec32['push'](_0x18ec32['shift']());}}}(a269_0x3ecd,0xf2cc7));function a269_0x3116(_0x25b6e6,_0x11ec72){_0x25b6e6=_0x25b6e6-0x7c;const _0x3ecd0d=a269_0x3ecd();let _0x311606=_0x3ecd0d[_0x25b6e6];return _0x311606;}import{existsSync,mkdirSync,readFileSync,writeFileSync}from'node:fs';import{dirname,join,resolve}from'node:path';import{fileURLToPath}from'node:url';import{getTemplateBaseUrl}from'../utils/config.js';import{appendUpdateTime}from'../utils/guides-cdn.js';const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename);function getRulesCdnUrl(){const _0x5cb565=a269_0x3116,_0x7d1766=getTemplateBaseUrl();return _0x7d1766+_0x5cb565(0x90);}const LOCAL_TEMPLATE_PATH=resolve(__dirname,a269_0x55e763(0x81));export async function fetchRulesFromCDN(){const _0x4dd68d=a269_0x55e763,_0x595b8e=getRulesCdnUrl(),_0x176c18=await fetch(_0x595b8e,{'headers':{'Accept':_0x4dd68d(0x7d)}});if(!_0x176c18['ok'])throw new Error(_0x4dd68d(0x92)+_0x176c18['status']+'\x20'+_0x176c18[_0x4dd68d(0x85)]);const _0x50bc59=await _0x176c18[_0x4dd68d(0x8c)]();if(!_0x50bc59['content']||typeof _0x50bc59['content']!==_0x4dd68d(0x80))throw new Error(_0x4dd68d(0x7c));return _0x50bc59;}export async function getRulesContent(){const _0x49088e=a269_0x55e763;try{const _0x3149f2=await fetchRulesFromCDN();return _0x3149f2[_0x49088e(0x86)];}catch{return readLocalTemplate();}}export function readLocalTemplate(){const _0x47f1d2=a269_0x55e763;if(existsSync(LOCAL_TEMPLATE_PATH))return readFileSync(LOCAL_TEMPLATE_PATH,_0x47f1d2(0x8f));throw new Error('本地模板文件不存在:\x20'+LOCAL_TEMPLATE_PATH);}export async function writeRulesFile(_0x4be7fe){const _0x1c8187=a269_0x55e763,_0x5583ef=await fetchRulesFromCDN()[_0x1c8187(0x8e)](()=>null);let _0x1be728;_0x5583ef?(_0x1be728=_0x5583ef[_0x1c8187(0x86)],_0x5583ef[_0x1c8187(0x94)]&&(_0x1be728=appendUpdateTime(_0x1be728,_0x5583ef[_0x1c8187(0x94)]))):_0x1be728=readLocalTemplate();const _0x594b5e=dirname(_0x4be7fe);!existsSync(_0x594b5e)&&mkdirSync(_0x594b5e,{'recursive':!![]}),writeFileSync(_0x4be7fe,_0x1be728,_0x1c8187(0x8f));}export async function copyRulesToCursor(_0x293ab2){const _0x23f849=a269_0x55e763,_0x3ea852=join(_0x293ab2,_0x23f849(0x7e)),_0x5766ee=join(_0x3ea852,'lovrabet_rules.mdc');if(existsSync(_0x5766ee))return![];return await writeRulesFile(_0x5766ee),!![];}function a269_0x3ecd(){const _0x54b35e=['513lNISXH','CDN\x20请求失败:\x20','1464092JkUlJS','lastUpdated','74280IDZJMj','130117JNttXJ','CDN\x20返回数据格式错误','application/json','.cursor/rules','2340LoLzwe','string','../../templates/rules/lovrabet_rules.mdc.tpl','206120mkFWRF','11606406GgIyRj','110zbdgqG','statusText','content','agents.md','1747310ImPwvu','7FQBBsc','13GdwTQl','727905xeBpxm','json','15zucigb','catch','utf-8','/rules/rules.json'];a269_0x3ecd=function(){return _0x54b35e;};return a269_0x3ecd();}export async function copyRulesToAgentsMd(_0xbbb05c){const _0x3efdf0=a269_0x55e763,_0x1e5999=join(_0xbbb05c,_0x3efdf0(0x87));if(existsSync(_0x1e5999))return![];return await writeRulesFile(_0x1e5999),!![];}
|
package/lib/utils/sleep.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export function sleep(
|
|
1
|
+
export function sleep(_0x1ee468){return new Promise(_0x242ab2=>setTimeout(_0x242ab2,_0x1ee468));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function a271_0x105c(){const _0x18f4bd=['5YHeeqP','toLowerCase','3094190VhqFbX','replaceApiContent','.css','alias:\x20\x22','3354640FsElUt','datasetCode:\x20\x22','now','getMonth','tableName:\x20\x22','99vwQrck','\x20},','processTemplate','api','alias','copyFile','8TLQlQc','.json','map','isDirectory','.js','toComponentName','.tpl','extname','9504719SWJnMH','5480961eNFBnI','pad','getDate','3049434dteFUQ','processDirectory','datasetCode','endsWith','slice','getFullYear','replace','name','开始处理模板内容替换','join','2236038NRCTtV','tableName','processFile','utf8','.md','info','LOVRABET','440248alcDiU','getHours','writeFile','success','toDisplayTitle','message','padStart','.ts','template','replaceContent','split','toISOString','mkdir','YourModel','getMinutes','push','toUpperCase','.jsx','promises','readFile','pop','formatLocalTimestamp','\x0a\x20\x20\x20\x20{\x20'];a271_0x105c=function(){return _0x18f4bd;};return a271_0x105c();}const a271_0x207f5c=a271_0x1c92;(function(_0x21e3ec,_0x41fe33){const _0xebff9a=a271_0x1c92,_0x2dbd48=_0x21e3ec();while(!![]){try{const _0x54e0e5=-parseInt(_0xebff9a(0x115))/0x1+-parseInt(_0xebff9a(0x10e))/0x2+parseInt(_0xebff9a(0x101))/0x3+-parseInt(_0xebff9a(0xed))/0x4+-parseInt(_0xebff9a(0xe7))/0x5*(parseInt(_0xebff9a(0x104))/0x6)+parseInt(_0xebff9a(0x100))/0x7*(-parseInt(_0xebff9a(0xf8))/0x8)+parseInt(_0xebff9a(0xf2))/0x9*(parseInt(_0xebff9a(0xe9))/0xa);if(_0x54e0e5===_0x41fe33)break;else _0x2dbd48['push'](_0x2dbd48['shift']());}catch(_0x55c177){_0x2dbd48['push'](_0x2dbd48['shift']());}}}(a271_0x105c,0xec3bd));import a271_0x1d69e4 from'node:fs';import a271_0x128d5a from'node:path';import{logger}from'../utils/logger.js';import{getCliVersion}from'../utils/version.js';function a271_0x1c92(_0x52ff5c,_0x199ff5){_0x52ff5c=_0x52ff5c-0xe5;const _0x105c63=a271_0x105c();let _0x1c92e8=_0x105c63[_0x52ff5c];return _0x1c92e8;}const CLI_VERSION=getCliVersion();export class TemplateReplacer{static[a271_0x207f5c(0x102)](_0x546af3){const _0xb18008=a271_0x207f5c;return String(_0x546af3)[_0xb18008(0x11b)](0x2,'0');}static[a271_0x207f5c(0xe5)](_0x1d86cb){const _0x615f4f=a271_0x207f5c,_0x2569ff=_0x1d86cb[_0x615f4f(0x109)](),_0x32a678=this[_0x615f4f(0x102)](_0x1d86cb[_0x615f4f(0xf0)]()+0x1),_0x59a03c=this[_0x615f4f(0x102)](_0x1d86cb[_0x615f4f(0x103)]()),_0x263c44=this[_0x615f4f(0x102)](_0x1d86cb[_0x615f4f(0x116)]()),_0x3d1fda=this[_0x615f4f(0x102)](_0x1d86cb[_0x615f4f(0x123)]()),_0x5ef72e=this['pad'](_0x1d86cb['getSeconds']());return{'createdAt':_0x2569ff+'-'+_0x32a678+'-'+_0x59a03c+'\x20'+_0x263c44+':'+_0x3d1fda+':'+_0x5ef72e,'createdDate':_0x2569ff+'-'+_0x32a678+'-'+_0x59a03c,'createdTime':_0x263c44+':'+_0x3d1fda+':'+_0x5ef72e};}static[a271_0x207f5c(0xfd)](_0x3ba15d){const _0x3eefda=a271_0x207f5c,_0xe6a8f6=_0x3ba15d['split']('/')[_0x3eefda(0x129)]()||_0x3ba15d;return _0xe6a8f6['split']('-')[_0x3eefda(0xfa)](_0x4bd568=>_0x4bd568['charAt'](0x0)[_0x3eefda(0x125)]()+_0x4bd568[_0x3eefda(0x108)](0x1)[_0x3eefda(0xe8)]())['join']('');}static[a271_0x207f5c(0x119)](_0x4364be){const _0xe4c1ce=a271_0x207f5c,_0x55873b=_0x4364be[_0xe4c1ce(0x11f)]('/')[_0xe4c1ce(0x129)]()||_0x4364be;return _0x55873b[_0xe4c1ce(0x11f)]('-')[_0xe4c1ce(0xfa)](_0xcc9d14=>_0xcc9d14['charAt'](0x0)[_0xe4c1ce(0x125)]()+_0xcc9d14[_0xe4c1ce(0x108)](0x1)[_0xe4c1ce(0xe8)]())[_0xe4c1ce(0x10d)]('\x20');}static[a271_0x207f5c(0x11e)](_0x51d86d,_0x1a1ad9,_0x69cb54){const _0x3bf9ed=a271_0x207f5c,_0x68b71c=this[_0x3bf9ed(0xfd)](_0x1a1ad9),_0x3f9d9c=this[_0x3bf9ed(0x119)](_0x1a1ad9),{createdAt:_0x106abd,createdDate:_0x4cf5cd,createdTime:_0x37ac68}=this[_0x3bf9ed(0xe5)](new Date());let _0x307c2e=_0x51d86d[_0x3bf9ed(0x10a)](/\{CliVersion\}/g,CLI_VERSION)[_0x3bf9ed(0x10a)](/\{ComponentName\}/g,_0x68b71c)['replace'](/\{DisplayTitle\}/g,_0x3f9d9c)[_0x3bf9ed(0x10a)](/\{PageName\}/g,_0x1a1ad9)[_0x3bf9ed(0x10a)](/\{TemplateName\}/g,_0x69cb54)[_0x3bf9ed(0x10a)](/\{CreatedAt\}/g,_0x106abd)[_0x3bf9ed(0x10a)](/\{CreatedDate\}/g,_0x4cf5cd)[_0x3bf9ed(0x10a)](/\{CreatedTime\}/g,_0x37ac68);return _0x307c2e;}static[a271_0x207f5c(0xea)](_0x68ba71,_0x21d26d,_0x7c6409,_0x2a99ee,_0x399c51,_0x279d60,_0x5d1692,_0x83f009){const _0x4111ac=a271_0x207f5c,_0x2e7ed6=new Date(),_0x599f0f=_0x2e7ed6[_0x4111ac(0x120)](),_0x217970=_0x7c6409[_0x4111ac(0xfa)](_0x3644ed=>{const _0x35eb4f=_0x4111ac,_0x122a1b=[_0x35eb4f(0xee)+_0x3644ed[_0x35eb4f(0x106)]+'\x22',_0x35eb4f(0xf1)+_0x3644ed[_0x35eb4f(0x10f)]+'\x22','name:\x20\x22'+_0x3644ed['name']+'\x22'];return _0x3644ed['alias']&&_0x122a1b[_0x35eb4f(0x124)](_0x35eb4f(0xec)+_0x3644ed[_0x35eb4f(0xf6)]+'\x22'),_0x35eb4f(0xe6)+_0x122a1b[_0x35eb4f(0x10d)](',\x20')+_0x35eb4f(0xf3);})['join'](''),_0x30f1d5=_0x2a99ee||_0x7c6409[0x0]?.['alias']||_0x4111ac(0x122);let _0x437ae5=_0x68ba71[_0x4111ac(0x10a)](/\{AppCode\}/g,_0x21d26d)[_0x4111ac(0x10a)](/\{ModelConfigs\}/g,_0x217970)[_0x4111ac(0x10a)](/\{ExampleModelName\}/g,_0x30f1d5)[_0x4111ac(0x10a)](/\{ApiFileName\}/g,_0x399c51||_0x4111ac(0xf5))[_0x4111ac(0x10a)](/\{ConfigName\}/g,_0x279d60||'default')[_0x4111ac(0x10a)](/\{ClientConfigParam\}/g,_0x5d1692||'')[_0x4111ac(0x10a)](/\{VarPrefix\}/g,_0x83f009||_0x4111ac(0x114))['replace'](/\{CreatedAt\}/g,_0x599f0f);return _0x437ae5;}static async[a271_0x207f5c(0xf4)](_0x3fd03d,_0x79c606,_0x599617,_0x85b5dc,_0x365abc=!![]){const _0x425d13=a271_0x207f5c,_0x521fa5=Date[_0x425d13(0xef)]();try{_0x365abc&&logger[_0x425d13(0x113)]('template',_0x425d13(0x10c),{'templatePath':_0x3fd03d,'targetPath':_0x79c606,'pageName':_0x599617,'templateName':_0x85b5dc});await a271_0x1d69e4[_0x425d13(0x127)][_0x425d13(0x121)](_0x79c606,{'recursive':!![]}),await this[_0x425d13(0x105)](_0x3fd03d,_0x79c606,_0x599617,_0x85b5dc);if(_0x365abc){const _0x1963a9=Date[_0x425d13(0xef)]()-_0x521fa5;logger[_0x425d13(0x118)](_0x425d13(0x11d),'模板内容替换完成',_0x1963a9,{'pageName':_0x599617,'templateName':_0x85b5dc});}}catch(_0x53dec9){if(_0x365abc){const _0x4f26a7=Date[_0x425d13(0xef)]()-_0x521fa5;logger['error']('template','模板内容替换失败',{'templatePath':_0x3fd03d,'targetPath':_0x79c606,'pageName':_0x599617,'templateName':_0x85b5dc,'error':_0x53dec9 instanceof Error?_0x53dec9[_0x425d13(0x11a)]:String(_0x53dec9),'duration':_0x4f26a7});}throw _0x53dec9;}}static async[a271_0x207f5c(0x105)](_0x983f74,_0xc59e9,_0x3b6fec,_0x4b0312){const _0x3c0280=a271_0x207f5c,_0x11e17e=await a271_0x1d69e4['promises']['readdir'](_0x983f74,{'withFileTypes':!![]});for(const _0x2a7b20 of _0x11e17e){const _0x53f34c=a271_0x128d5a['join'](_0x983f74,_0x2a7b20[_0x3c0280(0x10b)]);let _0x4094f0=a271_0x128d5a[_0x3c0280(0x10d)](_0xc59e9,_0x2a7b20[_0x3c0280(0x10b)]);_0x2a7b20[_0x3c0280(0x10b)][_0x3c0280(0x107)]('.tpl')&&(_0x4094f0=a271_0x128d5a[_0x3c0280(0x10d)](_0xc59e9,_0x2a7b20[_0x3c0280(0x10b)][_0x3c0280(0x10a)](/\.tpl$/,'')));if(_0x2a7b20[_0x3c0280(0xfb)]())await a271_0x1d69e4[_0x3c0280(0x127)]['mkdir'](_0x4094f0,{'recursive':!![]}),await this[_0x3c0280(0x105)](_0x53f34c,_0x4094f0,_0x3b6fec,_0x4b0312);else _0x2a7b20['isFile']()&&await this[_0x3c0280(0x110)](_0x53f34c,_0x4094f0,_0x3b6fec,_0x4b0312);}}static async[a271_0x207f5c(0x110)](_0x3ec402,_0x3e39ad,_0x362e13,_0x13ea71){const _0x57b600=a271_0x207f5c,_0x102f51=a271_0x128d5a[_0x57b600(0xff)](_0x3ec402)[_0x57b600(0xe8)]();_0x3ec402['endsWith'](_0x57b600(0xfe))&&(_0x3e39ad=_0x3e39ad[_0x57b600(0x10a)](/\.tpl$/,''));const _0x1919f2=['.tsx',_0x57b600(0x11c),_0x57b600(0x126),_0x57b600(0xfc),_0x57b600(0xf9),_0x57b600(0x112),_0x57b600(0xeb),'.scss','.tpl'];if(_0x1919f2['includes'](_0x102f51)||_0x3ec402[_0x57b600(0x107)](_0x57b600(0xfe))){const _0x4ad476=await a271_0x1d69e4[_0x57b600(0x127)][_0x57b600(0x128)](_0x3ec402,_0x57b600(0x111)),_0x4bd8c6=this[_0x57b600(0x11e)](_0x4ad476,_0x362e13,_0x13ea71);await a271_0x1d69e4[_0x57b600(0x127)][_0x57b600(0x117)](_0x3e39ad,_0x4bd8c6,'utf8');}else await a271_0x1d69e4[_0x57b600(0x127)][_0x57b600(0xf7)](_0x3ec402,_0x3e39ad);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x54ce14,_0x35ac36){const _0x330fb0=a272_0x22f7,_0x10baa7=_0x54ce14();while(!![]){try{const _0x5809c4=-parseInt(_0x330fb0(0xd7))/0x1+parseInt(_0x330fb0(0xbd))/0x2*(parseInt(_0x330fb0(0xd2))/0x3)+-parseInt(_0x330fb0(0xd9))/0x4*(parseInt(_0x330fb0(0xda))/0x5)+parseInt(_0x330fb0(0xca))/0x6+-parseInt(_0x330fb0(0xc9))/0x7*(-parseInt(_0x330fb0(0xbf))/0x8)+parseInt(_0x330fb0(0xd4))/0x9+parseInt(_0x330fb0(0xc0))/0xa*(-parseInt(_0x330fb0(0xcb))/0xb);if(_0x5809c4===_0x35ac36)break;else _0x10baa7['push'](_0x10baa7['shift']());}catch(_0x5d4306){_0x10baa7['push'](_0x10baa7['shift']());}}}(a272_0x2cfc,0x53117));function a272_0x22f7(_0x3806fe,_0x523f31){_0x3806fe=_0x3806fe-0xbc;const _0x2cfc14=a272_0x2cfc();let _0x22f7fa=_0x2cfc14[_0x3806fe];return _0x22f7fa;}import{mkdir,readFile,writeFile}from'node:fs/promises';import{homedir}from'node:os';import{dirname,join}from'node:path';import a272_0x59fe52 from'semver';import{CLI_BIN_NAME,NPM_PACKAGE_NAME}from'../constant/cli.js';function a272_0x2cfc(){const _0x1985e5=['lastNotifiedVersion','number','lastNotifiedAt',',\x20run:\x20','379767CyDahE','trim','1801746rfnNHr','true','now','44041gqrzOe','utf8','249584cpniiz','5nsvNUD','yes','8Rlghsd','\x20update','3793616fHQdrx','1077610WeVNnX','valid','https://www.npmjs.com/package/','checkedAt','rabetbase-cli','.cache','latest','/v/','parse','7ZNzmFc','121554vRLVuz','77uSdSNX','gte','update-check.json'];a272_0x2cfc=function(){return _0x1985e5;};return a272_0x2cfc();}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 _0x3b401a=a272_0x22f7,_0x727c0d=process.env.RABETBASE_NO_UPDATE_NOTICE?.[_0x3b401a(0xd3)]()['toLowerCase']();return _0x727c0d==='1'||_0x727c0d===_0x3b401a(0xd5)||_0x727c0d===_0x3b401a(0xbc);}function cacheRoot(){const _0x2dfb2e=a272_0x22f7;return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),_0x2dfb2e(0xc5));}export function getUpdateNoticeCachePath(){const _0x688c96=a272_0x22f7;return join(cacheRoot(),_0x688c96(0xc4),_0x688c96(0xcd));}async function readUpdateNoticeCache(){const _0x147589=a272_0x22f7;try{const _0x452830=await readFile(getUpdateNoticeCachePath(),'utf8'),_0x28fd04=JSON[_0x147589(0xc8)](_0x452830);if(!_0x28fd04||typeof _0x28fd04!=='object')return{};return _0x28fd04;}catch{return{};}}async function writeUpdateNoticeCache(_0x5c661f){const _0x12185a=a272_0x22f7;try{const _0x250124=getUpdateNoticeCachePath();await mkdir(dirname(_0x250124),{'recursive':!![]}),await writeFile(_0x250124,JSON['stringify'](_0x5c661f,null,0x2)+'\x0a',_0x12185a(0xd8));}catch{}}function isFreshCheck(_0x385f77,_0x388c70){const _0x202975=a272_0x22f7;return typeof _0x385f77[_0x202975(0xc3)]===_0x202975(0xcf)&&_0x388c70-_0x385f77[_0x202975(0xc3)]<UPDATE_CHECK_TTL_MS;}function isRecentlyNotified(_0x504f7f,_0x1c5ada,_0x459292){const _0x3a6f1a=a272_0x22f7;return _0x504f7f[_0x3a6f1a(0xce)]===_0x1c5ada&&typeof _0x504f7f[_0x3a6f1a(0xd0)]===_0x3a6f1a(0xcf)&&_0x459292-_0x504f7f['lastNotifiedAt']<UPDATE_NOTICE_TTL_MS;}export function buildNpmVersionUrl(_0x4603cf){const _0x247b3c=a272_0x22f7;return _0x247b3c(0xc2)+NPM_PACKAGE_NAME+_0x247b3c(0xc7)+_0x4603cf;}export async function resolveLatestUpdateNotice(){const _0x2a8817=a272_0x22f7;if(isUpdateNoticeDisabled())return null;try{const _0xe1b7f4=Date[_0x2a8817(0xd6)](),_0x5108fa=getCliVersion(),_0x321141=await readUpdateNoticeCache();let _0xc658b6=isFreshCheck(_0x321141,_0xe1b7f4)?_0x321141[_0x2a8817(0xc6)]?.['trim']():undefined;if(!_0xc658b6&&!isFreshCheck(_0x321141,_0xe1b7f4)){const _0x2e9554=await getCliVersionPolicy();_0xc658b6=_0x2e9554?.['stableVersion']?.['trim']()||undefined,await writeUpdateNoticeCache({..._0x321141,'checkedAt':_0xe1b7f4,'latest':_0xc658b6,'failed':!_0xc658b6});}if(!_0xc658b6||!a272_0x59fe52[_0x2a8817(0xc1)](_0x5108fa)||!a272_0x59fe52[_0x2a8817(0xc1)](_0xc658b6))return null;if(a272_0x59fe52[_0x2a8817(0xcc)](_0x5108fa,_0xc658b6))return null;if(isRecentlyNotified(_0x321141,_0xc658b6,_0xe1b7f4))return null;const _0x45ac1a=CLI_BIN_NAME+_0x2a8817(0xbe);return await writeUpdateNoticeCache({..._0x321141,'checkedAt':isFreshCheck(_0x321141,_0xe1b7f4)?_0x321141['checkedAt']:_0xe1b7f4,'latest':_0xc658b6,'failed':![],'lastNotifiedVersion':_0xc658b6,'lastNotifiedAt':_0xe1b7f4}),{'command':_0x45ac1a,'current':_0x5108fa,'latest':_0xc658b6,'url':buildNpmVersionUrl(_0xc658b6),'message':CLI_BIN_NAME+'\x20'+_0xc658b6+'\x20available,\x20current\x20'+_0x5108fa+_0x2a8817(0xd1)+_0x45ac1a};}catch{return null;}}
|
package/lib/utils/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a273_0x568d(_0x40b9a4,_0x2243b8){_0x40b9a4=_0x40b9a4-0xe4;var _0x150d57=a273_0x150d();var _0x568d60=_0x150d57[_0x40b9a4];return _0x568d60;}(function(_0x5ae147,_0x4c17ff){var _0x180824=a273_0x568d,_0x20d452=_0x5ae147();while(!![]){try{var _0x11d2ed=-parseInt(_0x180824(0xe8))/0x1+-parseInt(_0x180824(0xea))/0x2+parseInt(_0x180824(0xe4))/0x3+-parseInt(_0x180824(0xe6))/0x4+parseInt(_0x180824(0xeb))/0x5+parseInt(_0x180824(0xe5))/0x6+-parseInt(_0x180824(0xe9))/0x7*(-parseInt(_0x180824(0xe7))/0x8);if(_0x11d2ed===_0x4c17ff)break;else _0x20d452['push'](_0x20d452['shift']());}catch(_0x44c1d6){_0x20d452['push'](_0x20d452['shift']());}}}(a273_0x150d,0xe4f29));import{VERSION}from'../generated/build-info.js';export function getCliVersion(){return VERSION;}function a273_0x150d(){var _0x44b6a7=['4641680KRUrfl','88438qhZmMI','7jKoWDZ','1635438imUsYA','4811420xQjEFf','2188914BLqBZk','1340628dIXCEW','2606576CrGHft'];a273_0x150d=function(){return _0x44b6a7;};return a273_0x150d();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x2264c5,_0x3730cb){var _0x2c0ae4=a274_0x3c1b,_0x1aa199=_0x2264c5();while(!![]){try{var _0x319dfa=parseInt(_0x2c0ae4(0x174))/0x1+parseInt(_0x2c0ae4(0x16f))/0x2*(parseInt(_0x2c0ae4(0x16c))/0x3)+parseInt(_0x2c0ae4(0x169))/0x4*(parseInt(_0x2c0ae4(0x16a))/0x5)+parseInt(_0x2c0ae4(0x16b))/0x6*(parseInt(_0x2c0ae4(0x16e))/0x7)+-parseInt(_0x2c0ae4(0x173))/0x8+parseInt(_0x2c0ae4(0x172))/0x9*(parseInt(_0x2c0ae4(0x171))/0xa)+parseInt(_0x2c0ae4(0x16d))/0xb*(-parseInt(_0x2c0ae4(0x170))/0xc);if(_0x319dfa===_0x3730cb)break;else _0x1aa199['push'](_0x1aa199['shift']());}catch(_0x570636){_0x1aa199['push'](_0x1aa199['shift']());}}}(a274_0x4d6e,0x9a6e8));function a274_0x3c1b(_0x302978,_0x54285d){_0x302978=_0x302978-0x169;var _0x4d6ee7=a274_0x4d6e();var _0x3c1bbf=_0x4d6ee7[_0x302978];return _0x3c1bbf;}import{setActiveCookie,clearActiveCookie}from'../core/api-client.js';function a274_0x4d6e(){var _0x19a668=['251988cWuWrQ','2556340kpgBew','18GpTIDk','7922464TKDWAj','282440nqXRNe','4hnZyUp','1840565FIjoBv','1322718ZKuexP','4203aXcWyd','638Wcbacy','28zMuAEd','1138lIsGRf'];a274_0x4d6e=function(){return _0x19a668;};return a274_0x4d6e();}export async function withActiveCookie(_0x5b281d,_0x23bdb8){setActiveCookie(_0x5b281d);try{return await _0x23bdb8();}finally{clearActiveCookie();}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a275_0x2c2e(_0x3347bf,_0x1dcfb6){_0x3347bf=_0x3347bf-0x1ac;var _0x560c6b=a275_0x560c();var _0x2c2e2e=_0x560c6b[_0x3347bf];return _0x2c2e2e;}function a275_0x560c(){var _0x66e11b=['8dpOmOq','3097945ivtcAc','1415224CFFpRl','170386CFlALA','1945644afyCTq','5740794nbkPYO','1104234eswqgB','write','stderr','1935122HuXbFH'];a275_0x560c=function(){return _0x66e11b;};return a275_0x560c();}(function(_0x28d712,_0x512d97){var _0x2cac66=a275_0x2c2e,_0x22ca40=_0x28d712();while(!![]){try{var _0x3c29f3=parseInt(_0x2cac66(0x1b4))/0x1*(-parseInt(_0x2cac66(0x1ad))/0x2)+parseInt(_0x2cac66(0x1b0))/0x3+parseInt(_0x2cac66(0x1ae))/0x4+-parseInt(_0x2cac66(0x1b5))/0x5+parseInt(_0x2cac66(0x1af))/0x6+parseInt(_0x2cac66(0x1b3))/0x7+-parseInt(_0x2cac66(0x1ac))/0x8;if(_0x3c29f3===_0x512d97)break;else _0x22ca40['push'](_0x22ca40['shift']());}catch(_0x15faea){_0x22ca40['push'](_0x22ca40['shift']());}}}(a275_0x560c,0x94da2));export function writeCliSideChannelLine(_0x104d43){var _0x26fe1d=a275_0x2c2e;process[_0x26fe1d(0x1b2)][_0x26fe1d(0x1b1)](_0x104d43+'\x0a');}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lovrabet/rabetbase-cli",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.16-beta.1",
|
|
4
4
|
"description": "Developer CLI for Lovrabet apps, datasets, pages, SQL, BFF, database connections, skills, and AI agent workflows.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"keywords": [
|