@lovrabet/lovrabet-cli 2.1.23-beta.4 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -10
- package/lib/cli.js +1 -1
- package/lib/commands/api-doc/index.js +1 -1
- package/lib/commands/app/cache.js +1 -1
- package/lib/commands/app/definitions.js +1 -1
- package/lib/commands/app/eligibility.js +1 -1
- package/lib/commands/app/mock-loader.js +1 -1
- package/lib/commands/app/remote-source.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/artifact/index.js +1 -1
- package/lib/commands/auth/device.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/auth/prompt.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/exec.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/common/config-policy.js +1 -1
- package/lib/commands/common/constraints.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/config/definitions.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/sdk-doc.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/schedule/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/function-name-adapter.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/commands/create.js +1 -1
- package/lib/commands/skill/commands/diagram.js +1 -1
- package/lib/commands/skill/commands/install.js +1 -1
- package/lib/commands/skill/commands/list.js +1 -1
- package/lib/commands/skill/commands/push.js +1 -1
- package/lib/commands/skill/commands/validate.js +1 -1
- package/lib/commands/skill/diagram.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-execute.js +1 -1
- package/lib/commands/skill/push-flow-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.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/update.d.ts +2 -2
- package/lib/commands/update.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.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/product.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.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/preparse.js +1 -1
- package/lib/framework/rate-limit.js +1 -1
- package/lib/framework/raw-flags.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- 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/help.js +1 -1
- package/lib/postinstall.d.ts +2 -0
- package/lib/postinstall.js +1 -0
- 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.d.ts +37 -0
- package/lib/skills/builtin-skill.js +1 -0
- package/lib/skills/npx-skills-add.d.ts +3 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync/constants.js +1 -1
- package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
- package/lib/skills/runtime-skill-sync/hashing.js +1 -1
- package/lib/skills/runtime-skill-sync/install-target.js +1 -1
- package/lib/skills/runtime-skill-sync/links.js +1 -1
- package/lib/skills/runtime-skill-sync/list-local.js +1 -1
- package/lib/skills/runtime-skill-sync/local-files.js +1 -1
- package/lib/skills/runtime-skill-sync/materialize.js +1 -1
- package/lib/skills/runtime-skill-sync/metadata.js +1 -1
- package/lib/skills/runtime-skill-sync/paths.js +1 -1
- package/lib/skills/runtime-skill-sync/push.js +1 -1
- package/lib/skills/runtime-skill-sync/scopes.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/lossless-json.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +14 -3
- package/scripts/postinstall.mjs +24 -0
- package/skills/lovrabet/SKILL.md +702 -0
- package/skills/lovrabet/guides/app-resolution.md +165 -0
- package/skills/lovrabet/guides/dataset-and-data-workflow.md +170 -0
- package/skills/lovrabet/guides/sql-and-bff-workflow.md +132 -0
- package/skills/lovrabet/guides/troubleshooting.md +91 -0
- package/skills/lovrabet/references/dataset-discovery-workflow.md +160 -0
- package/skills/lovrabet/references/instant-api-workflow.md +259 -0
- package/skills/lovrabet/references/lovrabet-app-config.md +51 -0
- package/skills/lovrabet/references/lovrabet-app.md +113 -0
- package/skills/lovrabet/references/lovrabet-auth.md +136 -0
- package/skills/lovrabet/references/lovrabet-bff-workflow.md +139 -0
- package/skills/lovrabet/references/lovrabet-config-commands.md +104 -0
- package/skills/lovrabet/references/lovrabet-config.md +124 -0
- package/skills/lovrabet/references/lovrabet-doctor.md +26 -0
- package/skills/lovrabet/references/lovrabet-file-workflow.md +62 -0
- package/skills/lovrabet/references/lovrabet-kb-workflow.md +78 -0
- package/skills/lovrabet/references/lovrabet-logs.md +19 -0
- package/skills/lovrabet/references/lovrabet-ocr-workflow.md +83 -0
- package/skills/lovrabet/references/lovrabet-output-format-jq.md +40 -0
- package/skills/lovrabet/references/lovrabet-personal-bff-workflow.md +108 -0
- package/skills/lovrabet/references/lovrabet-schedule-workflow.md +175 -0
- package/skills/lovrabet/references/lovrabet-service-tree.md +279 -0
- package/skills/lovrabet/references/lovrabet-skill-authoring.md +128 -0
- package/skills/lovrabet/references/lovrabet-skill-install.md +34 -0
- package/skills/lovrabet/references/lovrabet-skill-sync.md +146 -0
- package/skills/lovrabet/references/lovrabet-sql-workflow.md +111 -0
- package/skills/lovrabet/references/lovrabet-update.md +34 -0
- package/skills/lovrabet/references/lovrabet-workspace.md +82 -0
- package/skills/lovrabet.manifest.json +38 -0
package/lib/utils/params.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x50691c,_0x1fa721){const _0x3a5945=a129_0x5966,_0xdadafa=_0x50691c();while(!![]){try{const _0x57ddc3=parseInt(_0x3a5945(0x1aa))/0x1+parseInt(_0x3a5945(0x19b))/0x2*(-parseInt(_0x3a5945(0x192))/0x3)+-parseInt(_0x3a5945(0x197))/0x4+parseInt(_0x3a5945(0x199))/0x5+-parseInt(_0x3a5945(0x1a2))/0x6+parseInt(_0x3a5945(0x19a))/0x7*(parseInt(_0x3a5945(0x1a3))/0x8)+parseInt(_0x3a5945(0x19d))/0x9;if(_0x57ddc3===_0x1fa721)break;else _0xdadafa['push'](_0xdadafa['shift']());}catch(_0x398e1f){_0xdadafa['push'](_0xdadafa['shift']());}}}(a129_0x59ba,0x80525));function a129_0x59ba(){const _0xc2d7b5=['items','data\x20update\x20--params\x20must\x20be\x20a\x20JSON\x20object\x20with\x20id.','validation','\x20records\x20per\x20call;\x20received\x20','Example:\x20--params\x20\x27{\x22id\x22:[1,2,3],\x22status\x22:\x22done\x22}\x27','string','96910KtMpNn','isSafeInteger','join','object','3ZgJXRr','data\x20update\x20id\x20array\x20cannot\x20be\x20empty.','Invalid\x20JSON\x20for\x20--params:\x20','data\x20update\x20--params.','id[','2373460NfExhT','\x20must\x20be\x20a\x20positive\x20integer\x20or\x20numeric\x20string.','1630330wBlOyD','226051XaZCaS','167542tUFbOo','length','7547346pDUiqh','batchCreate\x20--params\x20must\x20be\x20a\x20JSON\x20array\x20or\x20{\x22items\x22:[...]}','map','test','isArray','546732lcCPLm','8aACIgw'];a129_0x59ba=function(){return _0xc2d7b5;};return a129_0x59ba();}import{CliErrors}from'../errors.js';import{parseLosslessJson}from'../utils/lossless-json.js';export const MAX_DATA_UPDATE_IDS=0x3e8;export function parseJsonParams(_0x4debe7){const _0x440f98=a129_0x5966;if(!_0x4debe7)return undefined;try{return parseLosslessJson(_0x4debe7);}catch{throw CliErrors['validation'](_0x440f98(0x194)+_0x4debe7);}}export function parseJsonParamsValue(_0x5991f0){const _0x36731e=a129_0x5966;if(!_0x5991f0)return undefined;try{return parseLosslessJson(_0x5991f0);}catch{throw CliErrors[_0x36731e(0x1a6)]('Invalid\x20JSON\x20for\x20--params:\x20'+_0x5991f0);}}export function parseBatchCreateItemsFromParams(_0x1d734c){const _0x3cf6d0=a129_0x5966;if(Array[_0x3cf6d0(0x1a1)](_0x1d734c))return _0x1d734c;if(_0x1d734c!==null&&_0x1d734c!==undefined&&typeof _0x1d734c===_0x3cf6d0(0x191)&&Array[_0x3cf6d0(0x1a1)](_0x1d734c[_0x3cf6d0(0x1a4)]))return _0x1d734c[_0x3cf6d0(0x1a4)];throw CliErrors[_0x3cf6d0(0x1a6)](_0x3cf6d0(0x19e),'Example:\x20--params\x20\x27[{\x22name\x22:\x22a\x22},{\x22name\x22:\x22b\x22}]\x27');}function parseDataUpdateId(_0x4c694d,_0x2a0f98){const _0x4bc20a=a129_0x5966;if(typeof _0x4c694d==='number'&&Number[_0x4bc20a(0x1ab)](_0x4c694d)&&_0x4c694d>0x0)return _0x4c694d;if(typeof _0x4c694d===_0x4bc20a(0x1a9)){if(/^[1-9]\d*$/[_0x4bc20a(0x1a0)](_0x4c694d))return _0x4c694d;}throw CliErrors[_0x4bc20a(0x1a6)](_0x4bc20a(0x195)+_0x2a0f98+_0x4bc20a(0x198));}function a129_0x5966(_0x5cb81d,_0x1a7386){_0x5cb81d=_0x5cb81d-0x190;const _0x59ba11=a129_0x59ba();let _0x596697=_0x59ba11[_0x5cb81d];return _0x596697;}export function parseUpdateIdsFromParams(_0x836a20){const _0x436fca=a129_0x5966;if(_0x836a20===null||_0x836a20===undefined||typeof _0x836a20!==_0x436fca(0x191)||Array['isArray'](_0x836a20))throw CliErrors[_0x436fca(0x1a6)](_0x436fca(0x1a5),_0x436fca(0x1a8));const _0x8965f2=_0x836a20['id'];if(_0x8965f2===undefined||_0x8965f2===null)throw CliErrors[_0x436fca(0x1a6)]('data\x20update\x20requires\x20\x22id\x22\x20in\x20--params.',_0x436fca(0x1a8));const _0x11a2c6=Array[_0x436fca(0x1a1)](_0x8965f2)?_0x8965f2:[_0x8965f2];if(_0x11a2c6['length']===0x0)throw CliErrors[_0x436fca(0x1a6)](_0x436fca(0x193));if(_0x11a2c6[_0x436fca(0x19c)]>MAX_DATA_UPDATE_IDS)throw CliErrors[_0x436fca(0x1a6)]('data\x20update\x20can\x20update\x20at\x20most\x20'+MAX_DATA_UPDATE_IDS+_0x436fca(0x1a7)+_0x11a2c6[_0x436fca(0x19c)]+'.');return _0x11a2c6[_0x436fca(0x19f)]((_0x3ebd60,_0x2ac5b9)=>parseDataUpdateId(_0x3ebd60,Array['isArray'](_0x8965f2)?_0x436fca(0x196)+_0x2ac5b9+']':'id'));}export function normalizeUpdateParamsForRuntime(_0x292f9f,_0x3c8fd6){const _0x573af6=a129_0x5966;if(Array['isArray'](_0x292f9f['id'])&&_0x3c8fd6['length']>0x1)return{..._0x292f9f,'id':_0x3c8fd6[_0x573af6(0x190)](',')};return _0x292f9f;}
|
package/lib/utils/platform.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a130_0x3514af=a130_0x4a69;function a130_0x4a69(_0x13b4fd,_0xaf4f81){_0x13b4fd=_0x13b4fd-0x8f;const _0x3130cb=a130_0x3130();let _0x4a699b=_0x3130cb[_0x13b4fd];return _0x4a699b;}function a130_0x3130(){const _0x38e430=['4734664cOudlo','12378087AZCWvM','7BVRkkA','13300991wRhEUk','win32','.cmd','99476kSobVE','8GFZAzQ','5gNHlSe','10iOoDbp','7059534wipawm','6820499DBlBXa','4832544UNpBbj'];a130_0x3130=function(){return _0x38e430;};return a130_0x3130();}(function(_0x3b33be,_0x5190c5){const _0x440d92=a130_0x4a69,_0x56a858=_0x3b33be();while(!![]){try{const _0x30a140=parseInt(_0x440d92(0x96))/0x1*(parseInt(_0x440d92(0x9a))/0x2)+parseInt(_0x440d92(0x93))/0x3+-parseInt(_0x440d92(0x94))/0x4*(parseInt(_0x440d92(0x8f))/0x5)+parseInt(_0x440d92(0x91))/0x6+-parseInt(_0x440d92(0x92))/0x7+parseInt(_0x440d92(0x9b))/0x8*(-parseInt(_0x440d92(0x95))/0x9)+parseInt(_0x440d92(0x90))/0xa*(parseInt(_0x440d92(0x97))/0xb);if(_0x30a140===_0x5190c5)break;else _0x56a858['push'](_0x56a858['shift']());}catch(_0x56cf83){_0x56a858['push'](_0x56a858['shift']());}}}(a130_0x3130,0xc619a));export const isWindows=process['platform']===a130_0x3514af(0x98);export function resolveNpmBin(_0x2d7f22){const _0x562523=a130_0x3514af;return isWindows?_0x2d7f22+_0x562523(0x99):_0x2d7f22;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x1109bd,_0x54364b){const _0x11263f=a131_0x460f,_0x528433=_0x1109bd();while(!![]){try{const _0x371328=parseInt(_0x11263f(0x1d2))/0x1*(parseInt(_0x11263f(0x1c1))/0x2)+parseInt(_0x11263f(0x1dc))/0x3+-parseInt(_0x11263f(0x1d5))/0x4+parseInt(_0x11263f(0x1db))/0x5+parseInt(_0x11263f(0x1da))/0x6*(-parseInt(_0x11263f(0x1ca))/0x7)+-parseInt(_0x11263f(0x1d4))/0x8+parseInt(_0x11263f(0x1c9))/0x9*(parseInt(_0x11263f(0x1c2))/0xa);if(_0x371328===_0x54364b)break;else _0x528433['push'](_0x528433['shift']());}catch(_0x48f675){_0x528433['push'](_0x528433['shift']());}}}(a131_0x28d9,0x53675));import{mkdir,readFile,writeFile}from'node:fs/promises';import{homedir}from'node:os';import{dirname,join}from'node:path';import{LOVRABET_NPM_PACKAGE_NAME,NPM_REGISTRY_BASE_URL}from'../constant/distribution.js';import{CLI_BIN_NAME}from'../constant/cli.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 parseSemver(_0xad7e78){const _0x4b609a=a131_0x460f,_0x569247=_0xad7e78[_0x4b609a(0x1e0)]()['match'](/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?$/);if(!_0x569247)return null;return{'major':Number(_0x569247[0x1]),'minor':Number(_0x569247[0x2]),'patch':Number(_0x569247[0x3]),'prerelease':_0x569247[0x4]};}function compareSemver(_0x130283,_0x53b2cc){const _0x5064ad=a131_0x460f,_0x2f8c83=parseSemver(_0x130283),_0x1fc9c9=parseSemver(_0x53b2cc);if(!_0x2f8c83||!_0x1fc9c9)throw new Error(_0x5064ad(0x1d9));for(const _0x43efa0 of[_0x5064ad(0x1cd),_0x5064ad(0x1c3),'patch']){if(_0x2f8c83[_0x43efa0]<_0x1fc9c9[_0x43efa0])return-0x1;if(_0x2f8c83[_0x43efa0]>_0x1fc9c9[_0x43efa0])return 0x1;}if(!_0x2f8c83['prerelease']&&!_0x1fc9c9[_0x5064ad(0x1de)])return 0x0;if(!_0x2f8c83['prerelease'])return 0x1;if(!_0x1fc9c9['prerelease'])return-0x1;if(_0x2f8c83[_0x5064ad(0x1de)]===_0x1fc9c9[_0x5064ad(0x1de)])return 0x0;return _0x2f8c83[_0x5064ad(0x1de)]<_0x1fc9c9[_0x5064ad(0x1de)]?-0x1:0x1;}function isUpdateNoticeDisabled(){const _0x2be77b=a131_0x460f,_0x47850a=process.env.LOVRABET_NO_UPDATE_NOTICE?.[_0x2be77b(0x1e0)]()[_0x2be77b(0x1cf)]();return _0x47850a==='1'||_0x47850a===_0x2be77b(0x1dd)||_0x47850a===_0x2be77b(0x1c7);}function cacheRoot(){const _0x562e13=a131_0x460f;return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),_0x562e13(0x1c8));}export function getUpdateNoticeCachePath(){const _0xd7419b=a131_0x460f;return join(cacheRoot(),_0xd7419b(0x1e3),_0xd7419b(0x1df));}async function readUpdateNoticeCache(){const _0x2e1b2e=a131_0x460f;try{const _0x1ddbda=await readFile(getUpdateNoticeCachePath(),_0x2e1b2e(0x1c6)),_0x547823=JSON[_0x2e1b2e(0x1d8)](_0x1ddbda);if(!_0x547823||typeof _0x547823!==_0x2e1b2e(0x1c5))return{};return _0x547823;}catch{return{};}}async function writeUpdateNoticeCache(_0x20db7f){const _0x3b8c47=a131_0x460f;try{const _0x25e635=getUpdateNoticeCachePath();await mkdir(dirname(_0x25e635),{'recursive':!![]}),await writeFile(_0x25e635,JSON[_0x3b8c47(0x1e2)](_0x20db7f,null,0x2)+'\x0a','utf8');}catch{}}function isFreshCheck(_0x20c1ae,_0x2b9268){const _0x77a48=a131_0x460f;return typeof _0x20c1ae['checkedAt']===_0x77a48(0x1cb)&&_0x2b9268-_0x20c1ae[_0x77a48(0x1bf)]<UPDATE_CHECK_TTL_MS;}function isRecentlyNotified(_0x2a6528,_0x1ecf88,_0x2276e6){const _0x52a731=a131_0x460f;return _0x2a6528[_0x52a731(0x1e5)]===_0x1ecf88&&typeof _0x2a6528[_0x52a731(0x1c4)]===_0x52a731(0x1cb)&&_0x2276e6-_0x2a6528['lastNotifiedAt']<UPDATE_NOTICE_TTL_MS;}function a131_0x460f(_0x4e7c6e,_0x441642){_0x4e7c6e=_0x4e7c6e-0x1bf;const _0x28d9ad=a131_0x28d9();let _0x460fb2=_0x28d9ad[_0x4e7c6e];return _0x460fb2;}async function fetchNpmDistTags(_0x1a3452=0x5dc){const _0x49774b=a131_0x460f;try{const _0x54c38f=NPM_REGISTRY_BASE_URL+'/-/package/'+encodeURIComponent(LOVRABET_NPM_PACKAGE_NAME)+'/dist-tags',_0x2c1ebe=await fetch(_0x54c38f,{'signal':AbortSignal[_0x49774b(0x1e6)](_0x1a3452)});if(!_0x2c1ebe['ok'])return null;const _0x155af3=await _0x2c1ebe['json']();if(!_0x155af3||typeof _0x155af3!==_0x49774b(0x1c5))return null;return Object[_0x49774b(0x1d0)](Object[_0x49774b(0x1ce)](_0x155af3)[_0x49774b(0x1d6)](([,_0x295de2])=>typeof _0x295de2==='string'&&_0x295de2['trim']())['map'](([_0x4e399b,_0x460a09])=>[_0x4e399b,String(_0x460a09)[_0x49774b(0x1e0)]()]));}catch{return null;}}export function buildNpmVersionUrl(_0x3ea9cb){const _0x2b6460=a131_0x460f;return _0x2b6460(0x1e4)+LOVRABET_NPM_PACKAGE_NAME+_0x2b6460(0x1d7)+_0x3ea9cb;}function a131_0x28d9(){const _0x46b526=['minor','lastNotifiedAt','object','utf8','yes','.cache','153YmFxAP','50491dkFlgd','number','\x20update','major','entries','toLowerCase','fromEntries','now','487164mpQFUx','latest','5243928ZDsjuE','2534384vXqAkD','filter','/v/','parse','Invalid\x20semver','6ECngay','1047245AKEbGc','523977OLQZas','true','prerelease','update-check.json','trim',',\x20run:\x20','stringify','lovrabet-cli','https://www.npmjs.com/package/','lastNotifiedVersion','timeout','checkedAt','\x20available,\x20current\x20','2oIJoeP','450970IrbVno'];a131_0x28d9=function(){return _0x46b526;};return a131_0x28d9();}export async function resolveLatestUpdateNotice(){const _0x171875=a131_0x460f;if(isUpdateNoticeDisabled())return null;try{const _0x11e556=Date[_0x171875(0x1d1)](),_0x52ebe6=getCliVersion(),_0x5b3009=await readUpdateNoticeCache();let _0x435df8=isFreshCheck(_0x5b3009,_0x11e556)?_0x5b3009['latest']?.['trim']():undefined;if(!_0x435df8&&!isFreshCheck(_0x5b3009,_0x11e556)){const _0xd1e877=await fetchNpmDistTags();_0x435df8=_0xd1e877?.[_0x171875(0x1d3)]?.[_0x171875(0x1e0)](),await writeUpdateNoticeCache({..._0x5b3009,'checkedAt':_0x11e556,'latest':_0x435df8,'failed':!_0x435df8});}if(!_0x435df8||compareSemver(_0x52ebe6,_0x435df8)>=0x0)return null;if(isRecentlyNotified(_0x5b3009,_0x435df8,_0x11e556))return null;const _0xaa081a=CLI_BIN_NAME+_0x171875(0x1cc);return await writeUpdateNoticeCache({..._0x5b3009,'checkedAt':isFreshCheck(_0x5b3009,_0x11e556)?_0x5b3009[_0x171875(0x1bf)]:_0x11e556,'latest':_0x435df8,'failed':![],'lastNotifiedVersion':_0x435df8,'lastNotifiedAt':_0x11e556}),{'command':_0xaa081a,'current':_0x52ebe6,'latest':_0x435df8,'url':buildNpmVersionUrl(_0x435df8),'message':CLI_BIN_NAME+'\x20'+_0x435df8+_0x171875(0x1c0)+_0x52ebe6+_0x171875(0x1e1)+_0xaa081a};}catch{return null;}}
|
package/lib/utils/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a132_0x5a10(){const _0x408f07=['unknown','6fWivLD','1147700sJMllt','3740305IrlfJu','134836cuefll','4eADPYE','1122374oQGEZp','105kjnRJM','8124248jsyygd','slice','45upeMvU','2944676sJyPsg','4160pXMTjb'];a132_0x5a10=function(){return _0x408f07;};return a132_0x5a10();}(function(_0x545260,_0x18fe49){const _0xe7427a=a132_0xb070,_0xab12eb=_0x545260();while(!![]){try{const _0x36eb47=parseInt(_0xe7427a(0x83))/0x1+parseInt(_0xe7427a(0x7e))/0x2*(-parseInt(_0xe7427a(0x86))/0x3)+parseInt(_0xe7427a(0x84))/0x4*(parseInt(_0xe7427a(0x82))/0x5)+parseInt(_0xe7427a(0x80))/0x6*(-parseInt(_0xe7427a(0x7d))/0x7)+parseInt(_0xe7427a(0x87))/0x8+parseInt(_0xe7427a(0x89))/0x9*(-parseInt(_0xe7427a(0x81))/0xa)+-parseInt(_0xe7427a(0x85))/0xb;if(_0x36eb47===_0x18fe49)break;else _0xab12eb['push'](_0xab12eb['shift']());}catch(_0x89f187){_0xab12eb['push'](_0xab12eb['shift']());}}}(a132_0x5a10,0xb1ff4));import{BUILD_TIME,GIT_COMMIT,VERSION}from'../generated/build-info.js';export function getCliVersion(){return VERSION;}function a132_0xb070(_0xbbdce9,_0x4f348f){_0xbbdce9=_0xbbdce9-0x7d;const _0x5a10bb=a132_0x5a10();let _0xb070a7=_0x5a10bb[_0xbbdce9];return _0xb070a7;}export function getCliGitCommit(){const _0x25d756=a132_0xb070,_0x15c2f0=String(GIT_COMMIT);return _0x15c2f0&&_0x15c2f0!==_0x25d756(0x7f)?_0x15c2f0:'';}export function getCliVersionDisplay(){const _0xe238c0=a132_0xb070,_0x224431=getCliGitCommit(),_0x3d6f45=BUILD_TIME[_0xe238c0(0x88)](0x0,0xa);if(!_0x224431||!_0x3d6f45)return VERSION;return VERSION+'\x20('+_0x224431+',\x20'+_0x3d6f45+')';}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x456148,_0x2cdd26){var _0x42f2f1=a133_0x5f14,_0x243559=_0x456148();while(!![]){try{var _0x4c43c4=-parseInt(_0x42f2f1(0xb9))/0x1+parseInt(_0x42f2f1(0xb5))/0x2+-parseInt(_0x42f2f1(0xba))/0x3+-parseInt(_0x42f2f1(0xb8))/0x4+-parseInt(_0x42f2f1(0xb1))/0x5*(parseInt(_0x42f2f1(0xb4))/0x6)+-parseInt(_0x42f2f1(0xb3))/0x7*(-parseInt(_0x42f2f1(0xbb))/0x8)+parseInt(_0x42f2f1(0xb6))/0x9*(parseInt(_0x42f2f1(0xb2))/0xa);if(_0x4c43c4===_0x2cdd26)break;else _0x243559['push'](_0x243559['shift']());}catch(_0x3394a7){_0x243559['push'](_0x243559['shift']());}}}(a133_0x2ba1,0x66402));function a133_0x5f14(_0x5326e9,_0x6a6b02){_0x5326e9=_0x5326e9-0xb0;var _0x2ba1f5=a133_0x2ba1();var _0x5f1403=_0x2ba1f5[_0x5326e9];return _0x5f1403;}function a133_0x2ba1(){var _0x23ef29=['9950QxLtUP','413RVXbvy','120htnwhY','806546QORnMS','11862cXwXLN','stderr','122664owKljZ','689257CEdsEy','2421087NrdNUP','66024NSOKAG','write','63960lbmwVA'];a133_0x2ba1=function(){return _0x23ef29;};return a133_0x2ba1();}export function writeCliSideChannelLine(_0x13f4c6){var _0x5cb676=a133_0x5f14;process[_0x5cb676(0xb7)][_0x5cb676(0xb0)](_0x13f4c6+'\x0a');}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lovrabet/lovrabet-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Runtime CLI for Lovrabet apps, datasets, SQL, BFF, skills, and AI agent workflows.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"keywords": [
|
|
@@ -34,13 +34,13 @@
|
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
"engines": {
|
|
37
|
-
"node": ">=20"
|
|
37
|
+
"node": ">=22.20.0"
|
|
38
38
|
},
|
|
39
39
|
"publishConfig": {
|
|
40
40
|
"access": "public"
|
|
41
41
|
},
|
|
42
42
|
"scripts": {
|
|
43
|
-
"prebuild": "node scripts/generate-build-info.js",
|
|
43
|
+
"prebuild": "node scripts/generate-build-info.js && node scripts/generate-builtin-skill-manifest.mjs --check",
|
|
44
44
|
"build": "rimraf lib && tsc && tsc-alias && javascript-obfuscator lib --output lib && node scripts/ensure-bin-executable.mjs",
|
|
45
45
|
"prebuild:dev": "node scripts/generate-build-info.js",
|
|
46
46
|
"build:dev": "rimraf lib && tsc && tsc-alias && node scripts/ensure-bin-executable.mjs",
|
|
@@ -49,12 +49,18 @@
|
|
|
49
49
|
"pretypecheck": "node scripts/generate-build-info.js",
|
|
50
50
|
"typecheck": "tsc --noEmit",
|
|
51
51
|
"verify:bundled-jq": "node scripts/verify-bundled-jq.mjs",
|
|
52
|
+
"regression:release-smoke": "node scripts/regression-release-smoke.mjs",
|
|
53
|
+
"pack:dry-run-summary": "node scripts/package-dry-run-summary.mjs",
|
|
54
|
+
"verify:release-package": "node scripts/verify-release-package.mjs",
|
|
52
55
|
"publish:github": "node scripts/publish-github.mjs",
|
|
53
56
|
"lint": "echo 'No linter configured yet'",
|
|
54
57
|
"beta-release": "node scripts/beta-release.mjs",
|
|
55
58
|
"release": "node scripts/latest-release.mjs",
|
|
56
59
|
"check:lockfile": "node scripts/check-lockfile-integrity.mjs",
|
|
57
60
|
"check:skill-version": "node scripts/check-skill-version.mjs",
|
|
61
|
+
"generate:builtin-skill-manifest": "node scripts/generate-builtin-skill-manifest.mjs",
|
|
62
|
+
"check:builtin-skill-manifest": "node scripts/generate-builtin-skill-manifest.mjs --check",
|
|
63
|
+
"postinstall": "node scripts/postinstall.mjs",
|
|
58
64
|
"ci": "npm run typecheck && npm run check:skill-version && npm run check:lockfile && npm run build",
|
|
59
65
|
"pretest": "node scripts/generate-build-info.js",
|
|
60
66
|
"test": "vitest run",
|
|
@@ -67,6 +73,9 @@
|
|
|
67
73
|
},
|
|
68
74
|
"files": [
|
|
69
75
|
"lib",
|
|
76
|
+
"skills/lovrabet",
|
|
77
|
+
"skills/lovrabet.manifest.json",
|
|
78
|
+
"scripts/postinstall.mjs",
|
|
70
79
|
"README.md",
|
|
71
80
|
"LICENSE",
|
|
72
81
|
"NOTICE"
|
|
@@ -83,6 +92,7 @@
|
|
|
83
92
|
"meow": "^13.2.0",
|
|
84
93
|
"mermaid": "11.16.0",
|
|
85
94
|
"react": "^19.2.0",
|
|
95
|
+
"semver": "^7.7.3",
|
|
86
96
|
"winston": "^3.17.0",
|
|
87
97
|
"ws": "8.20.1",
|
|
88
98
|
"yaml": "^2.9.0"
|
|
@@ -91,6 +101,7 @@
|
|
|
91
101
|
"@types/fs-extra": "^11.0.4",
|
|
92
102
|
"@types/node": "^24.5.2",
|
|
93
103
|
"@types/react": "^19.2.0",
|
|
104
|
+
"@types/semver": "^7.7.1",
|
|
94
105
|
"@vitest/coverage-v8": "^4.1.2",
|
|
95
106
|
"javascript-obfuscator": "^5.4.1",
|
|
96
107
|
"rimraf": "^6.1.3",
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import { dirname, join, resolve } from "node:path";
|
|
4
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
5
|
+
|
|
6
|
+
const root = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
7
|
+
const entry = join(root, "lib", "postinstall.js");
|
|
8
|
+
|
|
9
|
+
if (!existsSync(entry)) {
|
|
10
|
+
if (existsSync(join(root, "src", "postinstall.ts"))) {
|
|
11
|
+
console.log("Skipping Lovrabet Built-in Skill postinstall in an unbuilt source checkout.");
|
|
12
|
+
} else {
|
|
13
|
+
console.error("[BUILTIN_SKILL_INSTALL_SOURCE_MISSING] Missing lib/postinstall.js");
|
|
14
|
+
process.exitCode = 1;
|
|
15
|
+
}
|
|
16
|
+
} else {
|
|
17
|
+
try {
|
|
18
|
+
const { runPostinstall } = await import(pathToFileURL(entry).href);
|
|
19
|
+
await runPostinstall();
|
|
20
|
+
} catch (error) {
|
|
21
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
22
|
+
process.exitCode = 1;
|
|
23
|
+
}
|
|
24
|
+
}
|