@lovrabet/lovrabet-cli 2.3.1 → 2.3.2-beta.2

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.
Files changed (184) hide show
  1. package/README.md +10 -8
  2. package/lib/cli.js +1 -1
  3. package/lib/commands/api-doc/index.js +1 -1
  4. package/lib/commands/app/cache.js +1 -1
  5. package/lib/commands/app/definitions.js +1 -1
  6. package/lib/commands/app/eligibility.js +1 -1
  7. package/lib/commands/app/mock-loader.js +1 -1
  8. package/lib/commands/app/remote-source.js +1 -1
  9. package/lib/commands/app/shared.js +1 -1
  10. package/lib/commands/app-config/get.js +1 -1
  11. package/lib/commands/app-config/index.js +1 -1
  12. package/lib/commands/artifact/index.js +1 -1
  13. package/lib/commands/auth/device.js +1 -1
  14. package/lib/commands/auth/index.js +1 -1
  15. package/lib/commands/auth/prompt.js +1 -1
  16. package/lib/commands/bff/detail.js +1 -1
  17. package/lib/commands/bff/exec.js +1 -1
  18. package/lib/commands/bff/index.js +1 -1
  19. package/lib/commands/cli-skill/index.js +1 -1
  20. package/lib/commands/common/config-policy.js +1 -1
  21. package/lib/commands/common/constraints.js +1 -1
  22. package/lib/commands/common/flags.js +1 -1
  23. package/lib/commands/common/local-file.js +1 -1
  24. package/lib/commands/config/definitions.js +1 -1
  25. package/lib/commands/config/init.d.ts +1 -2
  26. package/lib/commands/config/init.js +1 -1
  27. package/lib/commands/config/shared.js +1 -1
  28. package/lib/commands/data/index.js +1 -1
  29. package/lib/commands/dataset/detail.js +1 -1
  30. package/lib/commands/dataset/index.js +1 -1
  31. package/lib/commands/dataset/list.js +1 -1
  32. package/lib/commands/dataset/sdk-doc.js +1 -1
  33. package/lib/commands/doctor.js +1 -1
  34. package/lib/commands/file/index.js +1 -1
  35. package/lib/commands/init.js +1 -1
  36. package/lib/commands/kb/index.js +1 -1
  37. package/lib/commands/logs/index.js +1 -1
  38. package/lib/commands/notification/config-list.js +1 -1
  39. package/lib/commands/notification/index.js +1 -1
  40. package/lib/commands/notification/shared.d.ts +0 -3
  41. package/lib/commands/notification/shared.js +1 -1
  42. package/lib/commands/ocr/index.js +1 -1
  43. package/lib/commands/permit/dataset-get.js +1 -1
  44. package/lib/commands/permit/dataset-set.js +1 -1
  45. package/lib/commands/permit/index.js +1 -1
  46. package/lib/commands/permit/page-get.js +1 -1
  47. package/lib/commands/permit/page-set.js +1 -1
  48. package/lib/commands/permit/role-menus-set.js +1 -1
  49. package/lib/commands/permit/role-menus.js +1 -1
  50. package/lib/commands/permit/shared.js +1 -1
  51. package/lib/commands/personal-bff/index.js +1 -1
  52. package/lib/commands/registry.js +1 -1
  53. package/lib/commands/role/create.js +1 -1
  54. package/lib/commands/role/delete.js +1 -1
  55. package/lib/commands/role/detail.js +1 -1
  56. package/lib/commands/role/index.js +1 -1
  57. package/lib/commands/role/list.js +1 -1
  58. package/lib/commands/role/shared.d.ts +2 -0
  59. package/lib/commands/role/shared.js +1 -1
  60. package/lib/commands/role/update.js +1 -1
  61. package/lib/commands/role/user-add.js +1 -1
  62. package/lib/commands/role/user-remove.js +1 -1
  63. package/lib/commands/schedule/index.js +1 -1
  64. package/lib/commands/schema.js +1 -1
  65. package/lib/commands/service/dynamic.js +1 -1
  66. package/lib/commands/service/function-name-adapter.js +1 -1
  67. package/lib/commands/service/index.js +1 -1
  68. package/lib/commands/service/registry.js +1 -1
  69. package/lib/commands/skill/commands/create.js +1 -1
  70. package/lib/commands/skill/commands/diagram.js +1 -1
  71. package/lib/commands/skill/commands/install.js +1 -1
  72. package/lib/commands/skill/commands/list.js +1 -1
  73. package/lib/commands/skill/commands/push.js +1 -1
  74. package/lib/commands/skill/commands/validate.js +1 -1
  75. package/lib/commands/skill/diagram.js +1 -1
  76. package/lib/commands/skill/flags.js +1 -1
  77. package/lib/commands/skill/index.js +1 -1
  78. package/lib/commands/skill/manifest-helpers.js +1 -1
  79. package/lib/commands/skill/push-execute.js +1 -1
  80. package/lib/commands/skill/push-flow-helpers.js +1 -1
  81. package/lib/commands/skill/push-retarget.js +1 -1
  82. package/lib/commands/skill/scopes.js +1 -1
  83. package/lib/commands/skill/summary.js +1 -1
  84. package/lib/commands/skill/templates.js +1 -1
  85. package/lib/commands/skill/validate.js +1 -1
  86. package/lib/commands/sql/detail.js +1 -1
  87. package/lib/commands/sql/exec.js +1 -1
  88. package/lib/commands/sql/index.js +1 -1
  89. package/lib/commands/update.js +1 -1
  90. package/lib/commands/user-account/bind.js +1 -1
  91. package/lib/commands/user-account/index.js +1 -1
  92. package/lib/commands/workspace/index.js +1 -1
  93. package/lib/config/domain-config.d.ts +6 -14
  94. package/lib/config/domain-config.js +1 -1
  95. package/lib/config/schema.d.ts +1 -1
  96. package/lib/config/schema.js +1 -1
  97. package/lib/constant/app.js +1 -1
  98. package/lib/constant/auth-mode.js +1 -1
  99. package/lib/constant/cli.js +1 -1
  100. package/lib/constant/defaults.js +1 -1
  101. package/lib/constant/distribution.js +1 -1
  102. package/lib/constant/domain.d.ts +0 -3
  103. package/lib/constant/domain.js +1 -1
  104. package/lib/constant/env.js +1 -1
  105. package/lib/constant/output.js +1 -1
  106. package/lib/constant/product.js +1 -1
  107. package/lib/constant/region.js +1 -1
  108. package/lib/constant/risk.js +1 -1
  109. package/lib/constant/url.js +1 -1
  110. package/lib/context.js +1 -1
  111. package/lib/core/api-client.d.ts +5 -10
  112. package/lib/core/api-client.js +1 -1
  113. package/lib/core/db-resolver.js +1 -1
  114. package/lib/core/kb-search-client.js +1 -1
  115. package/lib/core/sdk-client.js +1 -1
  116. package/lib/errors.js +1 -1
  117. package/lib/framework/build-all-flags.js +1 -1
  118. package/lib/framework/dryrun.js +1 -1
  119. package/lib/framework/flags.js +1 -1
  120. package/lib/framework/help.js +1 -1
  121. package/lib/framework/index.js +1 -1
  122. package/lib/framework/output.js +1 -1
  123. package/lib/framework/preparse.js +1 -1
  124. package/lib/framework/rate-limit.js +1 -1
  125. package/lib/framework/raw-flags.js +1 -1
  126. package/lib/framework/response.js +1 -1
  127. package/lib/framework/runner-confirmation.js +1 -1
  128. package/lib/framework/runner-error.js +1 -1
  129. package/lib/framework/runner.js +1 -1
  130. package/lib/framework/schema-export.js +1 -1
  131. package/lib/framework/service-order.js +1 -1
  132. package/lib/framework/types.js +1 -1
  133. package/lib/generated/build-info.d.ts +4 -4
  134. package/lib/generated/build-info.js +1 -1
  135. package/lib/generated/official-routing.d.ts +1 -5
  136. package/lib/generated/official-routing.js +1 -1
  137. package/lib/generated/routing-contract.d.ts +3 -7
  138. package/lib/generated/routing-contract.js +1 -1
  139. package/lib/help.js +1 -1
  140. package/lib/postinstall.js +1 -1
  141. package/lib/runtime/confirmation.js +1 -1
  142. package/lib/runtime/event.js +1 -1
  143. package/lib/runtime/index.js +1 -1
  144. package/lib/runtime/queue.js +1 -1
  145. package/lib/runtime/resolve.js +1 -1
  146. package/lib/skills/builtin-skill.js +1 -1
  147. package/lib/skills/npx-skills-add.js +1 -1
  148. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  149. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  150. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  151. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  152. package/lib/skills/runtime-skill-sync/links.js +1 -1
  153. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  154. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  155. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  156. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  157. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  158. package/lib/skills/runtime-skill-sync/push.js +1 -1
  159. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  160. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  161. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  162. package/lib/skills/runtime-skill-sync.js +1 -1
  163. package/lib/skills/skill-presence.js +1 -1
  164. package/lib/utils/access-key-redaction.js +1 -1
  165. package/lib/utils/apply-jq-filter.js +1 -1
  166. package/lib/utils/cli-version-check.js +1 -1
  167. package/lib/utils/cli-version-policy.js +1 -1
  168. package/lib/utils/logger.js +1 -1
  169. package/lib/utils/lossless-json.js +1 -1
  170. package/lib/utils/params.js +1 -1
  171. package/lib/utils/update-notice.js +1 -1
  172. package/lib/utils/version.js +1 -1
  173. package/lib/utils/write-cli-side-channel.js +1 -1
  174. package/package.json +2 -1
  175. package/skills/lovrabet/SKILL.md +4 -4
  176. package/skills/lovrabet/guides/role-and-permission-workflow.md +6 -4
  177. package/skills/lovrabet/references/lovrabet-config-commands.md +7 -11
  178. package/skills/lovrabet/references/lovrabet-config.md +2 -3
  179. package/skills/lovrabet/references/lovrabet-doctor.md +1 -1
  180. package/skills/lovrabet/references/lovrabet-kb-workflow.md +1 -1
  181. package/skills/lovrabet/references/lovrabet-notification-config-list.md +2 -8
  182. package/skills/lovrabet.manifest.json +3 -3
  183. package/lib/utils/platform.d.ts +0 -17
  184. package/lib/utils/platform.js +0 -1
@@ -1 +1 @@
1
- function a159_0x6870(_0x114042,_0x17e8e9){_0x114042=_0x114042-0xd8;const _0x572e2a=a159_0x572e();let _0x6870fa=_0x572e2a[_0x114042];return _0x6870fa;}const a159_0x48fc3d=a159_0x6870;(function(_0x4b096f,_0x5507f8){const _0x140d14=a159_0x6870,_0x506bef=_0x4b096f();while(!![]){try{const _0x5b279a=parseInt(_0x140d14(0xe5))/0x1+-parseInt(_0x140d14(0xea))/0x2*(parseInt(_0x140d14(0xe8))/0x3)+-parseInt(_0x140d14(0xe0))/0x4*(-parseInt(_0x140d14(0xd8))/0x5)+-parseInt(_0x140d14(0xe3))/0x6+parseInt(_0x140d14(0xe6))/0x7*(-parseInt(_0x140d14(0xdc))/0x8)+parseInt(_0x140d14(0xdd))/0x9+parseInt(_0x140d14(0xe4))/0xa;if(_0x5b279a===_0x5507f8)break;else _0x506bef['push'](_0x506bef['shift']());}catch(_0x37b501){_0x506bef['push'](_0x506bef['shift']());}}}(a159_0x572e,0x48b82));const JSON_NUMBER_PATTERN=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/,MAX_SAFE_INTEGER=BigInt(Number['MAX_SAFE_INTEGER']),MIN_SAFE_INTEGER=BigInt(Number[a159_0x48fc3d(0xe7)]);let restoreResponseJsonParser,responseJsonPrototype,originalResponseJsonDescriptor;function isUnsafeIntegerLiteral(_0xdbaa6){const _0x5ab329=a159_0x48fc3d;if(_0xdbaa6['includes']('.')||_0xdbaa6[_0x5ab329(0xde)]('e')||_0xdbaa6[_0x5ab329(0xde)]('E'))return![];const _0x48f7a7=BigInt(_0xdbaa6);return _0x48f7a7>MAX_SAFE_INTEGER||_0x48f7a7<MIN_SAFE_INTEGER;}function quoteUnsafeIntegerLiterals(_0x5d2a34){const _0x536127=a159_0x48fc3d;let _0x570941='',_0x396041=![],_0x2fe24d=![];for(let _0x1bebd7=0x0;_0x1bebd7<_0x5d2a34[_0x536127(0xda)];){const _0x26a058=_0x5d2a34[_0x1bebd7];if(_0x396041){_0x570941+=_0x26a058,_0x1bebd7+=0x1;if(_0x2fe24d)_0x2fe24d=![];else{if(_0x26a058==='\x5c')_0x2fe24d=!![];else _0x26a058==='\x22'&&(_0x396041=![]);}continue;}if(_0x26a058==='\x22'){_0x396041=!![],_0x570941+=_0x26a058,_0x1bebd7+=0x1;continue;}if(_0x26a058==='-'||_0x26a058>='0'&&_0x26a058<='9'){const _0x138696=JSON_NUMBER_PATTERN[_0x536127(0xe2)](_0x5d2a34[_0x536127(0xdb)](_0x1bebd7))?.[0x0];if(_0x138696){_0x570941+=isUnsafeIntegerLiteral(_0x138696)?'\x22'+_0x138696+'\x22':_0x138696,_0x1bebd7+=_0x138696['length'];continue;}}_0x570941+=_0x26a058,_0x1bebd7+=0x1;}return _0x570941;}export function parseLosslessJson(_0x3433b0){const _0x557629=a159_0x48fc3d;return JSON[_0x557629(0xe1)](quoteUnsafeIntegerLiterals(_0x3433b0));}function a159_0x572e(){const _0x314577=['parse','exec','3285918XBTOcJ','5597520LIIqcw','246062zraVft','1627199klJfae','MIN_SAFE_INTEGER','44751DrUNMC','getOwnPropertyDescriptor','24WdsVua','prototype','undefined','text','4075ONDRml','json','length','slice','16jjmsSO','3086505gKRNQS','includes','defineProperty','1672zKrZjH'];a159_0x572e=function(){return _0x314577;};return a159_0x572e();}export function installLosslessJsonResponseParser(){const _0x1491fe=a159_0x48fc3d;if(typeof Response===_0x1491fe(0xec))return()=>{};if(restoreResponseJsonParser)return restoreResponseJsonParser;return responseJsonPrototype=Response[_0x1491fe(0xeb)],originalResponseJsonDescriptor=Object[_0x1491fe(0xe9)](responseJsonPrototype,_0x1491fe(0xd9)),Object[_0x1491fe(0xdf)](responseJsonPrototype,_0x1491fe(0xd9),{...originalResponseJsonDescriptor??{'configurable':!![],'enumerable':![],'writable':!![]},'value':async function _0x278a1e(){const _0x1c4978=_0x1491fe;return parseLosslessJson(await this[_0x1c4978(0xed)]());}}),restoreResponseJsonParser=()=>{const _0x38a41a=_0x1491fe;if(!responseJsonPrototype)return;originalResponseJsonDescriptor?Object[_0x38a41a(0xdf)](responseJsonPrototype,_0x38a41a(0xd9),originalResponseJsonDescriptor):delete responseJsonPrototype['json'],responseJsonPrototype=undefined,originalResponseJsonDescriptor=undefined,restoreResponseJsonParser=undefined;},restoreResponseJsonParser;}export function restoreLosslessJsonResponseParser(){restoreResponseJsonParser?.();}
1
+ const a159_0x2d4c75=a159_0x154d;(function(_0x237421,_0x40dc9a){const _0x57fa18=a159_0x154d,_0x38ec6e=_0x237421();while(!![]){try{const _0x299e4d=-parseInt(_0x57fa18(0xb1))/0x1*(-parseInt(_0x57fa18(0xc1))/0x2)+parseInt(_0x57fa18(0xbe))/0x3+parseInt(_0x57fa18(0xb9))/0x4+parseInt(_0x57fa18(0xb6))/0x5+parseInt(_0x57fa18(0xb0))/0x6*(parseInt(_0x57fa18(0xba))/0x7)+-parseInt(_0x57fa18(0xbf))/0x8*(-parseInt(_0x57fa18(0xc0))/0x9)+-parseInt(_0x57fa18(0xb5))/0xa;if(_0x299e4d===_0x40dc9a)break;else _0x38ec6e['push'](_0x38ec6e['shift']());}catch(_0xc4bdb6){_0x38ec6e['push'](_0x38ec6e['shift']());}}}(a159_0x1137,0x7cb81));const JSON_NUMBER_PATTERN=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/,MAX_SAFE_INTEGER=BigInt(Number[a159_0x2d4c75(0xb8)]),MIN_SAFE_INTEGER=BigInt(Number[a159_0x2d4c75(0xbc)]);let restoreResponseJsonParser,responseJsonPrototype,originalResponseJsonDescriptor;function isUnsafeIntegerLiteral(_0x4fb3ad){const _0x494191=a159_0x2d4c75;if(_0x4fb3ad[_0x494191(0xb2)]('.')||_0x4fb3ad[_0x494191(0xb2)]('e')||_0x4fb3ad[_0x494191(0xb2)]('E'))return![];const _0x2f9413=BigInt(_0x4fb3ad);return _0x2f9413>MAX_SAFE_INTEGER||_0x2f9413<MIN_SAFE_INTEGER;}function quoteUnsafeIntegerLiterals(_0x2ddf91){const _0x23cc2d=a159_0x2d4c75;let _0x2e8a30='',_0x144cdd=![],_0x8c2452=![];for(let _0x4bb212=0x0;_0x4bb212<_0x2ddf91[_0x23cc2d(0xb3)];){const _0xfbf546=_0x2ddf91[_0x4bb212];if(_0x144cdd){_0x2e8a30+=_0xfbf546,_0x4bb212+=0x1;if(_0x8c2452)_0x8c2452=![];else{if(_0xfbf546==='\x5c')_0x8c2452=!![];else _0xfbf546==='\x22'&&(_0x144cdd=![]);}continue;}if(_0xfbf546==='\x22'){_0x144cdd=!![],_0x2e8a30+=_0xfbf546,_0x4bb212+=0x1;continue;}if(_0xfbf546==='-'||_0xfbf546>='0'&&_0xfbf546<='9'){const _0x4a6ea9=JSON_NUMBER_PATTERN[_0x23cc2d(0xb4)](_0x2ddf91['slice'](_0x4bb212))?.[0x0];if(_0x4a6ea9){_0x2e8a30+=isUnsafeIntegerLiteral(_0x4a6ea9)?'\x22'+_0x4a6ea9+'\x22':_0x4a6ea9,_0x4bb212+=_0x4a6ea9['length'];continue;}}_0x2e8a30+=_0xfbf546,_0x4bb212+=0x1;}return _0x2e8a30;}function a159_0x1137(){const _0x473040=['parse','MIN_SAFE_INTEGER','undefined','1362603OojAGQ','61552KsRzbF','36wvBAXS','2ZaAUno','defineProperty','12ZybpWC','574061CHcMru','includes','length','exec','20323130ozRxGP','1878110CRoOQf','json','MAX_SAFE_INTEGER','662200rvvRnr','3300332vqIdIN'];a159_0x1137=function(){return _0x473040;};return a159_0x1137();}export function parseLosslessJson(_0x7f92bc){const _0x3bb0cf=a159_0x2d4c75;return JSON[_0x3bb0cf(0xbb)](quoteUnsafeIntegerLiterals(_0x7f92bc));}export function installLosslessJsonResponseParser(){const _0x3de259=a159_0x2d4c75;if(typeof Response===_0x3de259(0xbd))return()=>{};if(restoreResponseJsonParser)return restoreResponseJsonParser;return responseJsonPrototype=Response['prototype'],originalResponseJsonDescriptor=Object['getOwnPropertyDescriptor'](responseJsonPrototype,_0x3de259(0xb7)),Object[_0x3de259(0xaf)](responseJsonPrototype,'json',{...originalResponseJsonDescriptor??{'configurable':!![],'enumerable':![],'writable':!![]},'value':async function _0x3a32af(){return parseLosslessJson(await this['text']());}}),restoreResponseJsonParser=()=>{const _0x37acd0=_0x3de259;if(!responseJsonPrototype)return;originalResponseJsonDescriptor?Object[_0x37acd0(0xaf)](responseJsonPrototype,'json',originalResponseJsonDescriptor):delete responseJsonPrototype[_0x37acd0(0xb7)],responseJsonPrototype=undefined,originalResponseJsonDescriptor=undefined,restoreResponseJsonParser=undefined;},restoreResponseJsonParser;}function a159_0x154d(_0x1774f0,_0x1d5571){_0x1774f0=_0x1774f0-0xaf;const _0x1137d3=a159_0x1137();let _0x154dcd=_0x1137d3[_0x1774f0];return _0x154dcd;}export function restoreLosslessJsonResponseParser(){restoreResponseJsonParser?.();}
@@ -1 +1 @@
1
- (function(_0x552ca8,_0x40cec7){const _0x35a570=a160_0x3f58,_0x22ac02=_0x552ca8();while(!![]){try{const _0x362978=-parseInt(_0x35a570(0x15f))/0x1+parseInt(_0x35a570(0x158))/0x2+parseInt(_0x35a570(0x16c))/0x3*(-parseInt(_0x35a570(0x16e))/0x4)+parseInt(_0x35a570(0x15e))/0x5+-parseInt(_0x35a570(0x167))/0x6*(-parseInt(_0x35a570(0x165))/0x7)+-parseInt(_0x35a570(0x161))/0x8+parseInt(_0x35a570(0x164))/0x9*(parseInt(_0x35a570(0x168))/0xa);if(_0x362978===_0x40cec7)break;else _0x22ac02['push'](_0x22ac02['shift']());}catch(_0x10b6f3){_0x22ac02['push'](_0x22ac02['shift']());}}}(a160_0x10cc,0x8b560));import{CliErrors}from'../errors.js';function a160_0x3f58(_0x64ffa8,_0x5f599e){_0x64ffa8=_0x64ffa8-0x156;const _0x10cc30=a160_0x10cc();let _0x3f5896=_0x10cc30[_0x64ffa8];return _0x3f5896;}import{parseLosslessJson}from'../utils/lossless-json.js';export const MAX_DATA_UPDATE_IDS=0x3e8;export function parseJsonParams(_0x20524e){const _0x2b4ff8=a160_0x3f58;if(!_0x20524e)return undefined;try{return parseLosslessJson(_0x20524e);}catch{throw CliErrors['validation'](_0x2b4ff8(0x166)+_0x20524e);}}function a160_0x10cc(){const _0x4b19c8=['data\x20update\x20can\x20update\x20at\x20most\x20','isArray','66RSUfjy','data\x20update\x20--params\x20must\x20be\x20a\x20JSON\x20object\x20with\x20id.','156652jXojKy','validation','items','object','data\x20update\x20--params.','1285120ZJtDus','length','number','map','batchCreate\x20--params\x20must\x20be\x20a\x20JSON\x20array\x20or\x20{\x22items\x22:[...]}','join','4430735BBtDDC','749240qVerhQ','Example:\x20--params\x20\x27{\x22id\x22:[1,2,3],\x22status\x22:\x22done\x22}\x27','1913368fGswYC','\x20must\x20be\x20a\x20positive\x20integer\x20or\x20numeric\x20string.','isSafeInteger','9GwGwLe','423962eFTVGA','Invalid\x20JSON\x20for\x20--params:\x20','36RBmeOU','5286140uiQAhw','data\x20update\x20id\x20array\x20cannot\x20be\x20empty.'];a160_0x10cc=function(){return _0x4b19c8;};return a160_0x10cc();}export function parseJsonParamsValue(_0x189074){const _0x478887=a160_0x3f58;if(!_0x189074)return undefined;try{return parseLosslessJson(_0x189074);}catch{throw CliErrors[_0x478887(0x16f)](_0x478887(0x166)+_0x189074);}}export function parseBatchCreateItemsFromParams(_0x4fa6d6){const _0x5b61d1=a160_0x3f58;if(Array[_0x5b61d1(0x16b)](_0x4fa6d6))return _0x4fa6d6;if(_0x4fa6d6!==null&&_0x4fa6d6!==undefined&&typeof _0x4fa6d6===_0x5b61d1(0x156)&&Array[_0x5b61d1(0x16b)](_0x4fa6d6[_0x5b61d1(0x170)]))return _0x4fa6d6[_0x5b61d1(0x170)];throw CliErrors[_0x5b61d1(0x16f)](_0x5b61d1(0x15c),'Example:\x20--params\x20\x27[{\x22name\x22:\x22a\x22},{\x22name\x22:\x22b\x22}]\x27');}function parseDataUpdateId(_0x2f167e,_0x2ed40a){const _0x58ae83=a160_0x3f58;if(typeof _0x2f167e===_0x58ae83(0x15a)&&Number[_0x58ae83(0x163)](_0x2f167e)&&_0x2f167e>0x0)return _0x2f167e;if(typeof _0x2f167e==='string'){if(/^[1-9]\d*$/['test'](_0x2f167e))return _0x2f167e;}throw CliErrors[_0x58ae83(0x16f)](_0x58ae83(0x157)+_0x2ed40a+_0x58ae83(0x162));}export function parseUpdateIdsFromParams(_0x1a69bc){const _0x42bb5f=a160_0x3f58;if(_0x1a69bc===null||_0x1a69bc===undefined||typeof _0x1a69bc!==_0x42bb5f(0x156)||Array[_0x42bb5f(0x16b)](_0x1a69bc))throw CliErrors[_0x42bb5f(0x16f)](_0x42bb5f(0x16d),_0x42bb5f(0x160));const _0x21d011=_0x1a69bc['id'];if(_0x21d011===undefined||_0x21d011===null)throw CliErrors[_0x42bb5f(0x16f)]('data\x20update\x20requires\x20\x22id\x22\x20in\x20--params.',_0x42bb5f(0x160));const _0x508325=Array[_0x42bb5f(0x16b)](_0x21d011)?_0x21d011:[_0x21d011];if(_0x508325[_0x42bb5f(0x159)]===0x0)throw CliErrors[_0x42bb5f(0x16f)](_0x42bb5f(0x169));if(_0x508325[_0x42bb5f(0x159)]>MAX_DATA_UPDATE_IDS)throw CliErrors[_0x42bb5f(0x16f)](_0x42bb5f(0x16a)+MAX_DATA_UPDATE_IDS+'\x20records\x20per\x20call;\x20received\x20'+_0x508325[_0x42bb5f(0x159)]+'.');return _0x508325[_0x42bb5f(0x15b)]((_0x17067c,_0x52b63b)=>parseDataUpdateId(_0x17067c,Array[_0x42bb5f(0x16b)](_0x21d011)?'id['+_0x52b63b+']':'id'));}export function normalizeUpdateParamsForRuntime(_0xc4177e,_0x569fad){const _0x146940=a160_0x3f58;if(Array['isArray'](_0xc4177e['id'])&&_0x569fad['length']>0x1)return{..._0xc4177e,'id':_0x569fad[_0x146940(0x15d)](',')};return _0xc4177e;}
1
+ (function(_0x5aa4bc,_0x137682){const _0x3c0903=a160_0x2eba,_0x2849b9=_0x5aa4bc();while(!![]){try{const _0x52128c=-parseInt(_0x3c0903(0x195))/0x1*(-parseInt(_0x3c0903(0x199))/0x2)+-parseInt(_0x3c0903(0x183))/0x3+-parseInt(_0x3c0903(0x17c))/0x4*(parseInt(_0x3c0903(0x18e))/0x5)+parseInt(_0x3c0903(0x196))/0x6+parseInt(_0x3c0903(0x180))/0x7*(parseInt(_0x3c0903(0x192))/0x8)+parseInt(_0x3c0903(0x18b))/0x9+-parseInt(_0x3c0903(0x18f))/0xa*(parseInt(_0x3c0903(0x18c))/0xb);if(_0x52128c===_0x137682)break;else _0x2849b9['push'](_0x2849b9['shift']());}catch(_0x1ee5ca){_0x2849b9['push'](_0x2849b9['shift']());}}}(a160_0x12f4,0x83371));function a160_0x12f4(){const _0x217e07=['number','917MkBfxi','Example:\x20--params\x20\x27[{\x22name\x22:\x22a\x22},{\x22name\x22:\x22b\x22}]\x27','length','3006852WLrjkY','isArray','validation','Example:\x20--params\x20\x27{\x22id\x22:[1,2,3],\x22status\x22:\x22done\x22}\x27','data\x20update\x20requires\x20\x22id\x22\x20in\x20--params.','\x20must\x20be\x20a\x20positive\x20integer\x20or\x20numeric\x20string.','test','string','4946337yBJmeX','352lvLXxz','object','82605MtZVNr','193190CgFkwZ','id[','data\x20update\x20can\x20update\x20at\x20most\x20','7720xSLxMQ','isSafeInteger','map','231148ZwjCOT','4037976ONKmCI','join','data\x20update\x20--params.','8NRvFyQ','28HuntxY','items','Invalid\x20JSON\x20for\x20--params:\x20'];a160_0x12f4=function(){return _0x217e07;};return a160_0x12f4();}import{CliErrors}from'../errors.js';import{parseLosslessJson}from'../utils/lossless-json.js';export const MAX_DATA_UPDATE_IDS=0x3e8;function a160_0x2eba(_0x3b8b50,_0xd96deb){_0x3b8b50=_0x3b8b50-0x17c;const _0x12f4d1=a160_0x12f4();let _0x2eba51=_0x12f4d1[_0x3b8b50];return _0x2eba51;}export function parseJsonParams(_0xf89080){const _0x4a3c2c=a160_0x2eba;if(!_0xf89080)return undefined;try{return parseLosslessJson(_0xf89080);}catch{throw CliErrors[_0x4a3c2c(0x185)](_0x4a3c2c(0x17e)+_0xf89080);}}export function parseJsonParamsValue(_0x4dbcf9){const _0x4cf401=a160_0x2eba;if(!_0x4dbcf9)return undefined;try{return parseLosslessJson(_0x4dbcf9);}catch{throw CliErrors[_0x4cf401(0x185)](_0x4cf401(0x17e)+_0x4dbcf9);}}export function parseBatchCreateItemsFromParams(_0x17ded9){const _0x1f016d=a160_0x2eba;if(Array[_0x1f016d(0x184)](_0x17ded9))return _0x17ded9;if(_0x17ded9!==null&&_0x17ded9!==undefined&&typeof _0x17ded9===_0x1f016d(0x18d)&&Array[_0x1f016d(0x184)](_0x17ded9['items']))return _0x17ded9[_0x1f016d(0x17d)];throw CliErrors[_0x1f016d(0x185)]('batchCreate\x20--params\x20must\x20be\x20a\x20JSON\x20array\x20or\x20{\x22items\x22:[...]}',_0x1f016d(0x181));}function parseDataUpdateId(_0x58c108,_0x51ad60){const _0x345428=a160_0x2eba;if(typeof _0x58c108===_0x345428(0x17f)&&Number[_0x345428(0x193)](_0x58c108)&&_0x58c108>0x0)return _0x58c108;if(typeof _0x58c108===_0x345428(0x18a)){if(/^[1-9]\d*$/[_0x345428(0x189)](_0x58c108))return _0x58c108;}throw CliErrors[_0x345428(0x185)](_0x345428(0x198)+_0x51ad60+_0x345428(0x188));}export function parseUpdateIdsFromParams(_0x7d9442){const _0x2c2ea4=a160_0x2eba;if(_0x7d9442===null||_0x7d9442===undefined||typeof _0x7d9442!==_0x2c2ea4(0x18d)||Array['isArray'](_0x7d9442))throw CliErrors[_0x2c2ea4(0x185)]('data\x20update\x20--params\x20must\x20be\x20a\x20JSON\x20object\x20with\x20id.',_0x2c2ea4(0x186));const _0x1a3352=_0x7d9442['id'];if(_0x1a3352===undefined||_0x1a3352===null)throw CliErrors[_0x2c2ea4(0x185)](_0x2c2ea4(0x187),'Example:\x20--params\x20\x27{\x22id\x22:[1,2,3],\x22status\x22:\x22done\x22}\x27');const _0x297499=Array[_0x2c2ea4(0x184)](_0x1a3352)?_0x1a3352:[_0x1a3352];if(_0x297499[_0x2c2ea4(0x182)]===0x0)throw CliErrors[_0x2c2ea4(0x185)]('data\x20update\x20id\x20array\x20cannot\x20be\x20empty.');if(_0x297499[_0x2c2ea4(0x182)]>MAX_DATA_UPDATE_IDS)throw CliErrors['validation'](_0x2c2ea4(0x191)+MAX_DATA_UPDATE_IDS+'\x20records\x20per\x20call;\x20received\x20'+_0x297499[_0x2c2ea4(0x182)]+'.');return _0x297499[_0x2c2ea4(0x194)]((_0x23d722,_0x4764eb)=>parseDataUpdateId(_0x23d722,Array['isArray'](_0x1a3352)?_0x2c2ea4(0x190)+_0x4764eb+']':'id'));}export function normalizeUpdateParamsForRuntime(_0x4c80ec,_0x56fac0){const _0x139198=a160_0x2eba;if(Array[_0x139198(0x184)](_0x4c80ec['id'])&&_0x56fac0[_0x139198(0x182)]>0x1)return{..._0x4c80ec,'id':_0x56fac0[_0x139198(0x197)](',')};return _0x4c80ec;}
@@ -1 +1 @@
1
- (function(_0x2716e7,_0x2254aa){const _0x41d438=a162_0x3f0a,_0x5c069b=_0x2716e7();while(!![]){try{const _0x210748=parseInt(_0x41d438(0x89))/0x1+parseInt(_0x41d438(0x81))/0x2+parseInt(_0x41d438(0x8b))/0x3+parseInt(_0x41d438(0x8e))/0x4+-parseInt(_0x41d438(0x92))/0x5*(-parseInt(_0x41d438(0x8a))/0x6)+-parseInt(_0x41d438(0x7a))/0x7+parseInt(_0x41d438(0x8f))/0x8*(-parseInt(_0x41d438(0x83))/0x9);if(_0x210748===_0x2254aa)break;else _0x5c069b['push'](_0x5c069b['shift']());}catch(_0x7651c8){_0x5c069b['push'](_0x5c069b['shift']());}}}(a162_0x4170,0x27fe4));import{mkdir,readFile,writeFile}from'node:fs/promises';import{homedir}from'node:os';import{dirname,join}from'node:path';import{LOVRABET_NPM_PACKAGE_NAME}from'../constant/distribution.js';import{CLI_BIN_NAME}from'../constant/cli.js';import{checkCliVersion,getCliUpgradeCommand}from'../utils/cli-version-check.js';const UPDATE_NOTICE_TTL_MS=0x18*0x3c*0x3c*0x3e8;function isUpdateNoticeDisabled(){const _0x509f7a=a162_0x3f0a,_0x1d8d09=process.env.LOVRABET_NO_UPDATE_NOTICE?.[_0x509f7a(0x80)]()[_0x509f7a(0x95)]();return _0x1d8d09==='1'||_0x1d8d09===_0x509f7a(0x84)||_0x1d8d09===_0x509f7a(0x91);}function a162_0x3f0a(_0x3360db,_0x319653){_0x3360db=_0x3360db-0x7a;const _0x4170c6=a162_0x4170();let _0x3f0a61=_0x4170c6[_0x3360db];return _0x3f0a61;}function a162_0x4170(){const _0x4f6426=['56zYPmAY',',\x20run:\x20','yes','1206350YaLbBQ','stableVersion','https://www.npmjs.com/package/','toLowerCase','1718353tvPhkn','upgradeMessage','number','update-check.json','.cache','object','trim','69866rATqKN','lovrabet-cli','598077NEVjjd','true','currentVersion','lastNotifiedVersion','needsUpgrade','utf8','141151SyIVfS','6GVgwru','394662KVlZDr','lastNotifiedAt','\x20is\x20recommended,\x20current\x20','1302216VZfaPr'];a162_0x4170=function(){return _0x4f6426;};return a162_0x4170();}function cacheRoot(){const _0x202914=a162_0x3f0a;return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),_0x202914(0x7e));}export function getUpdateNoticeCachePath(){const _0x2e00da=a162_0x3f0a;return join(cacheRoot(),_0x2e00da(0x82),_0x2e00da(0x7d));}async function readUpdateNoticeCache(){const _0x1d5af4=a162_0x3f0a;try{const _0x27d72a=await readFile(getUpdateNoticeCachePath(),_0x1d5af4(0x88)),_0x5d2e4e=JSON['parse'](_0x27d72a);if(!_0x5d2e4e||typeof _0x5d2e4e!==_0x1d5af4(0x7f))return{};return _0x5d2e4e;}catch{return{};}}async function writeUpdateNoticeCache(_0x492400){const _0x532f68=a162_0x3f0a;try{const _0x129f62=getUpdateNoticeCachePath();await mkdir(dirname(_0x129f62),{'recursive':!![]}),await writeFile(_0x129f62,JSON['stringify'](_0x492400,null,0x2)+'\x0a',_0x532f68(0x88));}catch{}}function isRecentlyNotified(_0x5b774a,_0x50e78b,_0x2d29b7){const _0x25cdd5=a162_0x3f0a;return _0x5b774a[_0x25cdd5(0x86)]===_0x50e78b&&typeof _0x5b774a[_0x25cdd5(0x8c)]===_0x25cdd5(0x7c)&&_0x2d29b7-_0x5b774a[_0x25cdd5(0x8c)]<UPDATE_NOTICE_TTL_MS;}export function buildNpmVersionUrl(_0x2b4c23){const _0x551a95=a162_0x3f0a;return _0x551a95(0x94)+LOVRABET_NPM_PACKAGE_NAME+'/v/'+_0x2b4c23;}export async function resolveLatestUpdateNotice(_0x3a1b86){const _0x1b2214=a162_0x3f0a;if(isUpdateNoticeDisabled())return null;try{const _0x4323a9=Date['now'](),_0x28deac=_0x3a1b86??await checkCliVersion(),_0x459db7=_0x28deac[_0x1b2214(0x85)],_0x2bc4dc=_0x28deac[_0x1b2214(0x93)],_0x588487=await readUpdateNoticeCache();if(!_0x2bc4dc||!_0x28deac[_0x1b2214(0x87)]||_0x28deac['belowMinimum'])return null;if(isRecentlyNotified(_0x588487,_0x2bc4dc,_0x4323a9))return null;const _0x5f447e=getCliUpgradeCommand(_0x28deac);return await writeUpdateNoticeCache({..._0x588487,'checkedAt':_0x4323a9,'latest':_0x2bc4dc,'failed':![],'lastNotifiedVersion':_0x2bc4dc,'lastNotifiedAt':_0x4323a9}),{'command':_0x5f447e,'current':_0x459db7,'latest':_0x2bc4dc,'url':buildNpmVersionUrl(_0x2bc4dc),'message':[_0x28deac[_0x1b2214(0x7b)],CLI_BIN_NAME+'\x20'+_0x2bc4dc+_0x1b2214(0x8d)+_0x459db7+_0x1b2214(0x90)+_0x5f447e]['filter'](Boolean)['join']('\x20')};}catch{return null;}}
1
+ function a161_0x4958(){const _0x1c88d9=['14189Yfgoad','true',',\x20run:\x20','1494XJQDYT','object','6628219KQFsuK','join','245yepKad','stableVersion','upgradeMessage','33008FCIvzv','1203234BQzleX','1cpYifh','trim','utf8','\x20is\x20recommended,\x20current\x20','yes','lastNotifiedAt','1277019LJdZDL','filter','https://www.npmjs.com/package/','toLowerCase','currentVersion','12oAUNHs','167848yLyjaZ','130CoEorf','now','update-check.json','stringify','189MrDLFA','needsUpgrade','162613XvuXKL','number','lovrabet-cli','/v/','parse','belowMinimum'];a161_0x4958=function(){return _0x1c88d9;};return a161_0x4958();}function a161_0x4d4b(_0x10cdc9,_0x1fc4dc){_0x10cdc9=_0x10cdc9-0x183;const _0x495862=a161_0x4958();let _0x4d4b91=_0x495862[_0x10cdc9];return _0x4d4b91;}(function(_0x577124,_0x4e7097){const _0x4915bc=a161_0x4d4b,_0x9c9eef=_0x577124();while(!![]){try{const _0x39859e=-parseInt(_0x4915bc(0x184))/0x1*(-parseInt(_0x4915bc(0x183))/0x2)+-parseInt(_0x4915bc(0x18a))/0x3+parseInt(_0x4915bc(0x1a7))/0x4*(parseInt(_0x4915bc(0x1a4))/0x5)+-parseInt(_0x4915bc(0x1a0))/0x6*(-parseInt(_0x4915bc(0x19d))/0x7)+parseInt(_0x4915bc(0x190))/0x8*(-parseInt(_0x4915bc(0x195))/0x9)+parseInt(_0x4915bc(0x191))/0xa*(parseInt(_0x4915bc(0x197))/0xb)+-parseInt(_0x4915bc(0x18f))/0xc*(parseInt(_0x4915bc(0x1a2))/0xd);if(_0x39859e===_0x4e7097)break;else _0x9c9eef['push'](_0x9c9eef['shift']());}catch(_0x2ca401){_0x9c9eef['push'](_0x9c9eef['shift']());}}}(a161_0x4958,0x4fc4a));import{mkdir,readFile,writeFile}from'node:fs/promises';import{homedir}from'node:os';import{dirname,join}from'node:path';import{LOVRABET_NPM_PACKAGE_NAME}from'../constant/distribution.js';import{CLI_BIN_NAME}from'../constant/cli.js';import{checkCliVersion,getCliUpgradeCommand}from'../utils/cli-version-check.js';const UPDATE_NOTICE_TTL_MS=0x18*0x3c*0x3c*0x3e8;function isUpdateNoticeDisabled(){const _0x53c0c7=a161_0x4d4b,_0x2418a6=process.env.LOVRABET_NO_UPDATE_NOTICE?.[_0x53c0c7(0x185)]()[_0x53c0c7(0x18d)]();return _0x2418a6==='1'||_0x2418a6===_0x53c0c7(0x19e)||_0x2418a6===_0x53c0c7(0x188);}function cacheRoot(){return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),'.cache');}export function getUpdateNoticeCachePath(){const _0x58375c=a161_0x4d4b;return join(cacheRoot(),_0x58375c(0x199),_0x58375c(0x193));}async function readUpdateNoticeCache(){const _0x1acedb=a161_0x4d4b;try{const _0x5adbdc=await readFile(getUpdateNoticeCachePath(),_0x1acedb(0x186)),_0x4e749f=JSON[_0x1acedb(0x19b)](_0x5adbdc);if(!_0x4e749f||typeof _0x4e749f!==_0x1acedb(0x1a1))return{};return _0x4e749f;}catch{return{};}}async function writeUpdateNoticeCache(_0x2b3a3f){const _0x22b968=a161_0x4d4b;try{const _0x1a7b47=getUpdateNoticeCachePath();await mkdir(dirname(_0x1a7b47),{'recursive':!![]}),await writeFile(_0x1a7b47,JSON[_0x22b968(0x194)](_0x2b3a3f,null,0x2)+'\x0a',_0x22b968(0x186));}catch{}}function isRecentlyNotified(_0x11515f,_0x548248,_0x30b4e1){const _0x38ab37=a161_0x4d4b;return _0x11515f['lastNotifiedVersion']===_0x548248&&typeof _0x11515f[_0x38ab37(0x189)]===_0x38ab37(0x198)&&_0x30b4e1-_0x11515f['lastNotifiedAt']<UPDATE_NOTICE_TTL_MS;}export function buildNpmVersionUrl(_0x462b54){const _0x2c7831=a161_0x4d4b;return _0x2c7831(0x18c)+LOVRABET_NPM_PACKAGE_NAME+_0x2c7831(0x19a)+_0x462b54;}export async function resolveLatestUpdateNotice(_0x569458){const _0x2faabe=a161_0x4d4b;if(isUpdateNoticeDisabled())return null;try{const _0x2fcfec=Date[_0x2faabe(0x192)](),_0x14e1ec=_0x569458??await checkCliVersion(),_0x1e27a7=_0x14e1ec[_0x2faabe(0x18e)],_0x4af178=_0x14e1ec[_0x2faabe(0x1a5)],_0x5118de=await readUpdateNoticeCache();if(!_0x4af178||!_0x14e1ec[_0x2faabe(0x196)]||_0x14e1ec[_0x2faabe(0x19c)])return null;if(isRecentlyNotified(_0x5118de,_0x4af178,_0x2fcfec))return null;const _0x532c4e=getCliUpgradeCommand(_0x14e1ec);return await writeUpdateNoticeCache({..._0x5118de,'checkedAt':_0x2fcfec,'latest':_0x4af178,'failed':![],'lastNotifiedVersion':_0x4af178,'lastNotifiedAt':_0x2fcfec}),{'command':_0x532c4e,'current':_0x1e27a7,'latest':_0x4af178,'url':buildNpmVersionUrl(_0x4af178),'message':[_0x14e1ec[_0x2faabe(0x1a6)],CLI_BIN_NAME+'\x20'+_0x4af178+_0x2faabe(0x187)+_0x1e27a7+_0x2faabe(0x19f)+_0x532c4e][_0x2faabe(0x18b)](Boolean)[_0x2faabe(0x1a3)]('\x20')};}catch{return null;}}
@@ -1 +1 @@
1
- (function(_0x44bc7e,_0x232f1f){const _0x4ad0e2=a163_0xe389,_0x4fb5c2=_0x44bc7e();while(!![]){try{const _0x5e4d02=parseInt(_0x4ad0e2(0x196))/0x1+parseInt(_0x4ad0e2(0x195))/0x2*(-parseInt(_0x4ad0e2(0x197))/0x3)+-parseInt(_0x4ad0e2(0x193))/0x4*(parseInt(_0x4ad0e2(0x198))/0x5)+parseInt(_0x4ad0e2(0x18e))/0x6*(-parseInt(_0x4ad0e2(0x199))/0x7)+-parseInt(_0x4ad0e2(0x18f))/0x8*(-parseInt(_0x4ad0e2(0x194))/0x9)+-parseInt(_0x4ad0e2(0x191))/0xa*(-parseInt(_0x4ad0e2(0x18d))/0xb)+-parseInt(_0x4ad0e2(0x18c))/0xc*(-parseInt(_0x4ad0e2(0x192))/0xd);if(_0x5e4d02===_0x232f1f)break;else _0x4fb5c2['push'](_0x4fb5c2['shift']());}catch(_0x50a6e3){_0x4fb5c2['push'](_0x4fb5c2['shift']());}}}(a163_0x5ce6,0x8d66e));import{BUILD_TIME,GIT_COMMIT,VERSION}from'../generated/build-info.js';export function getCliVersion(){return VERSION;}export function getCliGitCommit(){const _0x105617=String(GIT_COMMIT);return _0x105617&&_0x105617!=='unknown'?_0x105617:'';}function a163_0xe389(_0x14df9b,_0x5ba916){_0x14df9b=_0x14df9b-0x18c;const _0x5ce65e=a163_0x5ce6();let _0xe3891c=_0x5ce65e[_0x14df9b];return _0xe3891c;}export function getCliVersionDisplay(){const _0x1f7322=a163_0xe389,_0x2b57cf=getCliGitCommit(),_0x541e25=BUILD_TIME[_0x1f7322(0x190)](0x0,0xa);if(!_0x2b57cf||!_0x541e25)return VERSION;return VERSION+'\x20('+_0x2b57cf+',\x20'+_0x541e25+')';}function a163_0x5ce6(){const _0x84985c=['417012hvHhjE','10087946EnAvQr','637926ncEeZM','24456gmOmFS','slice','10RQicWJ','52gJbbnU','4TYdPjA','837BHXqLG','27108ioEdtw','487460maSUgp','114IwGfTa','1010060OLholg','35pAUWYJ'];a163_0x5ce6=function(){return _0x84985c;};return a163_0x5ce6();}
1
+ (function(_0xe554ba,_0x36e89f){const _0x4073e3=a162_0x2d1e,_0x1d85f5=_0xe554ba();while(!![]){try{const _0x1d4ece=parseInt(_0x4073e3(0x1a5))/0x1+parseInt(_0x4073e3(0x1a1))/0x2*(parseInt(_0x4073e3(0x1a0))/0x3)+parseInt(_0x4073e3(0x1a2))/0x4*(parseInt(_0x4073e3(0x19d))/0x5)+-parseInt(_0x4073e3(0x1a4))/0x6+parseInt(_0x4073e3(0x1a8))/0x7+parseInt(_0x4073e3(0x1a6))/0x8*(parseInt(_0x4073e3(0x1a7))/0x9)+parseInt(_0x4073e3(0x19f))/0xa*(-parseInt(_0x4073e3(0x19e))/0xb);if(_0x1d4ece===_0x36e89f)break;else _0x1d85f5['push'](_0x1d85f5['shift']());}catch(_0x5ef56c){_0x1d85f5['push'](_0x1d85f5['shift']());}}}(a162_0x3375,0x5996c));import{BUILD_TIME,GIT_COMMIT,VERSION}from'../generated/build-info.js';function a162_0x2d1e(_0x2bde0e,_0x517414){_0x2bde0e=_0x2bde0e-0x19d;const _0x337563=a162_0x3375();let _0x2d1ed6=_0x337563[_0x2bde0e];return _0x2d1ed6;}export function getCliVersion(){return VERSION;}export function getCliGitCommit(){const _0x52cd7a=a162_0x2d1e,_0x31154a=String(GIT_COMMIT);return _0x31154a&&_0x31154a!==_0x52cd7a(0x1a9)?_0x31154a:'';}export function getCliVersionDisplay(){const _0x30bce7=a162_0x2d1e,_0x20ae1c=getCliGitCommit(),_0x439791=BUILD_TIME[_0x30bce7(0x1a3)](0x0,0xa);if(!_0x20ae1c||!_0x439791)return VERSION;return VERSION+'\x20('+_0x20ae1c+',\x20'+_0x439791+')';}function a162_0x3375(){const _0x593b28=['12xFHaKT','54664xNWeBw','4SQBQVn','slice','3611070KQDeGk','141240kRPebN','16swbUas','3150918jEyeXs','4495722WinVpJ','unknown','864295UVrCXi','2922612TZEBwD','30ewOkGc'];a162_0x3375=function(){return _0x593b28;};return a162_0x3375();}
@@ -1 +1 @@
1
- function a164_0x2882(_0x259748,_0x4cd38e){_0x259748=_0x259748-0xdf;var _0x2132e6=a164_0x2132();var _0x2882a1=_0x2132e6[_0x259748];return _0x2882a1;}(function(_0x3dec5a,_0x3359b5){var _0x195202=a164_0x2882,_0x523473=_0x3dec5a();while(!![]){try{var _0x512bbc=parseInt(_0x195202(0xe3))/0x1*(-parseInt(_0x195202(0xea))/0x2)+-parseInt(_0x195202(0xec))/0x3*(parseInt(_0x195202(0xe2))/0x4)+parseInt(_0x195202(0xe0))/0x5+-parseInt(_0x195202(0xeb))/0x6+parseInt(_0x195202(0xe8))/0x7*(-parseInt(_0x195202(0xdf))/0x8)+parseInt(_0x195202(0xe1))/0x9*(parseInt(_0x195202(0xe5))/0xa)+-parseInt(_0x195202(0xe4))/0xb*(-parseInt(_0x195202(0xe9))/0xc);if(_0x512bbc===_0x3359b5)break;else _0x523473['push'](_0x523473['shift']());}catch(_0x851d64){_0x523473['push'](_0x523473['shift']());}}}(a164_0x2132,0x9c203));function a164_0x2132(){var _0x29bb44=['141jZEFdT','11pPrYvX','10QAexbR','stderr','write','35gekFLM','30925536eedEvH','6412bZwEdk','3493020szJfph','523293mNaOAS','1845752UIUAIX','3334050jhtiuu','959913GlsXEB','12UJBLrD'];a164_0x2132=function(){return _0x29bb44;};return a164_0x2132();}export function writeCliSideChannelLine(_0x318137){var _0x2b053e=a164_0x2882;process[_0x2b053e(0xe6)][_0x2b053e(0xe7)](_0x318137+'\x0a');}
1
+ function a163_0x9d00(){var _0x2580a6=['27FDjCjN','115flKNqa','936474QhyaMU','414340IwZUoj','59tuuVFe','29924uEGGiY','3428wLvyoi','11OocpHs','stderr','333876Zvoqpn','189973dOniGy','494712bvRgEb'];a163_0x9d00=function(){return _0x2580a6;};return a163_0x9d00();}function a163_0x1dd8(_0x4cf1da,_0x473af6){_0x4cf1da=_0x4cf1da-0xdd;var _0x9d00fb=a163_0x9d00();var _0x1dd8cd=_0x9d00fb[_0x4cf1da];return _0x1dd8cd;}(function(_0x1b0e8f,_0x449586){var _0x15b416=a163_0x1dd8,_0x599a49=_0x1b0e8f();while(!![]){try{var _0x4cba9e=-parseInt(_0x15b416(0xe0))/0x1*(parseInt(_0x15b416(0xe2))/0x2)+parseInt(_0x15b416(0xe5))/0x3+-parseInt(_0x15b416(0xe1))/0x4*(-parseInt(_0x15b416(0xdd))/0x5)+-parseInt(_0x15b416(0xde))/0x6+-parseInt(_0x15b416(0xe6))/0x7+parseInt(_0x15b416(0xe7))/0x8*(parseInt(_0x15b416(0xe8))/0x9)+-parseInt(_0x15b416(0xdf))/0xa*(parseInt(_0x15b416(0xe3))/0xb);if(_0x4cba9e===_0x449586)break;else _0x599a49['push'](_0x599a49['shift']());}catch(_0x9efdf6){_0x599a49['push'](_0x599a49['shift']());}}}(a163_0x9d00,0x22ef6));export function writeCliSideChannelLine(_0x9acce1){var _0x1eac53=a163_0x1dd8;process[_0x1eac53(0xe4)]['write'](_0x9acce1+'\x0a');}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lovrabet/lovrabet-cli",
3
- "version": "2.3.1",
3
+ "version": "2.3.2-beta.2",
4
4
  "description": "Runtime CLI for Lovrabet apps, datasets, SQL, Backend Function, skills, and AI agent workflows.",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
@@ -88,6 +88,7 @@
88
88
  "@lovrabet/cli-framework": "1.0.5",
89
89
  "@lovrabet/sdk": "1.4.2",
90
90
  "chalk": "^5.6.2",
91
+ "execa": "^9.6.0",
91
92
  "fflate": "^0.8.3",
92
93
  "fs-extra": "^11.3.6",
93
94
  "ink": "^6.2.3",
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: lovrabet
3
3
  displayName: Lovrabet 运行态 CLI
4
- version: 2.3.1
4
+ version: 2.3.2-beta.2
5
5
  description: "Lovrabet 运行态 CLI — 面向业务场景的 AI 操作套件,通过 lovrabet 命令管理应用目录、业务角色与权限、用户级外部账号、Service Tree 业务命令、API 文档发现、数据集查询、Instant API 数据操作、Custom SQL/Backend Function、Personal Backend Function、文件上传、面向票证类业务材料文字与结构化字段提取的 OCR、定时任务、Skill、知识库与运行态 app-config key 状态检查。触发词:云图、lovrabet、lovrabet-cli、业务角色、角色成员、页面权限、菜单权限、数据集权限、user-account bind、provider 外部账号绑定、钉钉 userId 绑定、service tree、业务服务树、api-doc、dataset、data filter、file upload、file query-url、ocr recognize、OCR 识别、票证文字提取、票证字段提取、发票识别、票据识别、证照识别、附件上传、personal-bff、schedule、定时任务、cron、kb、skill、sql exec、bff exec、app-config、accessKey、compress、jq。"
6
6
  metadata:
7
7
  requires:
@@ -49,7 +49,7 @@ npm 包会自动安装同版本 Built-in Skill。若 `lovrabet doctor` 报告缺
49
49
 
50
50
  ### 认证命令选择
51
51
 
52
- - **首次使用或切换节点**:执行 `lovrabet config init`,选择当前已开放国家/地区;独立部署优先导入 `lovrabet-routing/v1` 清单,清单同时声明 Domain、`cdn.libraries` 与 `cdn.lovrabet`,供两个 CLI 共用。该命令固定维护全局连接配置
52
+ - **首次使用或切换节点**:执行 `lovrabet config init`,选择当前已开放国家/地区;独立部署优先导入 `lovrabet-routing/v1` 清单。该命令只读取运行态连接所需 Domain,忽略清单中的其他消费者字段,并固定维护全局连接配置
53
53
  - **只想更新 AK,尽量保留现有配置**:用户提供 AccessKey 后,使用 `lovrabet auth login --access-key <ACCESS_KEY>`
54
54
  - **还没有 AK,需要先自助创建**:Agent 可先执行 `lovrabet auth login --non-interactive` 获取无打扰提示,把命令根据当前 `userDomain` 返回的创建地址发给用户;用户把 AccessKey 发给 Agent 后,再执行 `lovrabet auth login --access-key <ACCESS_KEY>`
55
55
  - **想确认当前 AK 对应的是哪个用户**:使用 `lovrabet auth info`
@@ -279,8 +279,8 @@ Service Tree 未命中不是失败条件,也不代表业务能力不存在。
279
279
  | **config** | `init` | 初始化全局官方节点或独立部署 Domain | write | 本地 |
280
280
  | **config** | `set` | 写入配置项 | write | 本地 |
281
281
  | **config** | `delete` | 删除配置项 | write | 本地 |
282
- | **role** | `list` / `detail` | 查询当前应用的业务角色 | read | AK |
283
- | **role** | `create` / `update` / `delete` | 管理当前应用的自定义业务角色 | high-risk-write | AK |
282
+ | **role** | `list` / `detail` | 查询当前应用的业务角色及稳定 `roleCode` | read | AK |
283
+ | **role** | `create` / `update` / `delete` | 管理自定义业务角色;create/update 支持 `--role-code` | high-risk-write | AK |
284
284
  | **role** | `user-add` / `user-remove` | 调整业务角色成员 | high-risk-write | AK |
285
285
  | **permit** | `page-get` / `role-menus` / `dataset-get` | 查询页面、菜单和数据集权限 | read | AK |
286
286
  | **permit** | `page-set` / `role-menus-set` / `dataset-set` | 调整页面、菜单和数据集权限 | high-risk-write | AK |
@@ -7,7 +7,7 @@
7
7
  ## 开始前
8
8
 
9
9
  1. 使用明确的 `--appcode <code>`、`--app <name>` 或已经确认的当前应用。
10
- 2. 使用 `lovrabet role list` 获取真实角色 ID 和类型。
10
+ 2. 使用 `lovrabet role list` 获取真实角色 ID、`roleCode` 和类型。
11
11
  3. 写操作先加 `--dry-run` 检查目标和变更内容。
12
12
  4. 只有用户明确授权后才去掉 `--dry-run` 并加 `--yes`。
13
13
 
@@ -23,14 +23,15 @@ lovrabet role list --type CUSTOM --name 销售 --format compress
23
23
  lovrabet role detail --id <roleId> --format compress
24
24
  ```
25
25
 
26
- `role list` 返回内置角色和自定义角色。`builtin=true` 表示不能通过角色更新或删除命令修改。
26
+ `role list` 返回内置角色和自定义角色,每个角色都包含稳定业务标识 `roleCode`。`builtin=true` 表示不能通过角色更新或删除命令修改。
27
27
 
28
28
  ### 创建和修改自定义角色
29
29
 
30
30
  ```bash
31
- lovrabet role create --name <roleName> --remark <remark> --dry-run --format compress
32
- lovrabet role create --name <roleName> --remark <remark> --yes --format compress
31
+ lovrabet role create --name <roleName> --role-code <roleCode> --remark <remark> --dry-run --format compress
32
+ lovrabet role create --name <roleName> --role-code <roleCode> --remark <remark> --yes --format compress
33
33
 
34
+ lovrabet role update --id <roleId> --role-code <newRoleCode> --dry-run --format compress
34
35
  lovrabet role update --id <roleId> --name <newName> --dry-run --format compress
35
36
  lovrabet role update --id <roleId> --remark <newRemark> --yes --format compress
36
37
 
@@ -39,6 +40,7 @@ lovrabet role delete --id <roleId> --yes --format compress
39
40
  ```
40
41
 
41
42
  - 只能创建、更新和删除 CUSTOM 角色。
43
+ - `--role-code` 最长 64 个字符且全局唯一;创建时省略则由服务端使用角色 ID,更新时可以单独修改。
42
44
  - 备注只能设置为非空内容,不能用空字符串清除。
43
45
  - 删除可能影响已有成员和权限;必须先确认角色确实不再使用。
44
46
 
@@ -21,7 +21,7 @@ lovrabet config init --domain-config ./lovrabet-domains.json
21
21
 
22
22
  - `--region` 只接受 `cn` / `id`
23
23
  - 选择 `cn` 时省略冗余的 `region` 字段,以默认值保持向前兼容;选择 `id` 时写入 `"region": "id"`
24
- - 切回官方节点会删除全局配置里的五个显式 Domain,以及兼容读取的旧 Domain 字段
24
+ - 切回官方节点会删除全局配置里的四个显式 Domain,以及兼容读取的旧 Domain 字段
25
25
 
26
26
  ### 独立部署模式
27
27
 
@@ -40,34 +40,30 @@ lovrabet config init --domain-config ./lovrabet-domains.json
40
40
  "apiDomain": "https://api.customer.example.com",
41
41
  "runtimeDomain": "https://runtime.customer.example.com",
42
42
  "skillDomain": "https://skills.customer.example.com",
43
- "kbDomain": {
44
- "default": "https://kb-admin.customer.example.com",
45
- "lovrabet-cli": "https://kb.customer.example.com"
46
- },
43
+ "kbDomain": "https://kb-admin.customer.example.com",
47
44
  "appDomain": "https://app.customer.example.com"
48
45
  }
49
46
  }
50
47
  ```
51
48
 
52
- 新版清单要求完整服务拓扑以及 `cdn.libraries` / `cdn.lovrabet`。前者是第三方库的完整 CDN 基地址,后者是 Lovrabet 自有资源 origin;Runtime CLI 校验并保留它们,供同一清单被 Rabetbase 使用。Domain 可写成所有消费者共用的 HTTPS 字符串;确有差异时写成带 `default` 或消费者键的对象。对象优先使用 `lovrabet-cli`,其次使用 `default`,两者都没有时命令报错。Runtime CLI 会保留但不使用 `appDomain`、`localDomain`、`certificateDomain` 与 `cdn`。清单不能叠加单独的 Domain flags。旧扁平 JSON 继续兼容,只允许以下五个字段,且至少提供一个:
49
+ 同一份清单可以包含其他消费者所需的 Domain、CDN 或数据库访问提示。Lovrabet CLI 只校验并保存 `userDomain`、`apiDomain`、`runtimeDomain` 与 `skillDomain`;`kbDomain` 和其余消费者字段会被忽略。运行态知识库请求统一使用 `runtimeDomain`。Domain 可写成共用 HTTPS 字符串;确有差异时写成带 `default` 或当前消费者键的对象。对象优先使用 `lovrabet-cli`,其次使用 `default`,两者都没有时命令报错。清单不能叠加单独的 Domain flags。旧扁平 JSON 继续兼容,只允许以下四个字段,且至少提供一个:
53
50
 
54
51
  ```json
55
52
  {
56
53
  "userDomain": "https://user.customer.example.com",
57
54
  "apiDomain": "https://api.customer.example.com",
58
55
  "runtimeDomain": "https://runtime.customer.example.com",
59
- "skillDomain": "https://skills.customer.example.com",
60
- "kbDomain": "https://kb.customer.example.com"
56
+ "skillDomain": "https://skills.customer.example.com"
61
57
  }
62
58
  ```
63
59
 
64
- 也可以用 `--user-domain`、`--api-domain`、`--runtime-domain`、`--skill-domain`、`--kb-domain` 逐项传入;显式 flag 只覆盖旧扁平文件里的同名字段。所有值必须是无账号、路径、query 和 fragment 的 HTTPS origin。
60
+ 也可以用 `--user-domain`、`--api-domain`、`--runtime-domain`、`--skill-domain` 逐项传入;显式 flag 只覆盖旧扁平文件里的同名字段。所有值必须是无账号、路径、query 和 fragment 的 HTTPS origin。
65
61
 
66
62
  新版企业清单会保存为带协议标识的 `routing` 对象,并整体优先于旧顶层 Domain;旧扁平配置继续保持既有回退行为。
67
63
 
68
- 进入旧扁平独立部署模式会删除全局 `region` 和旧 Domain 字段,再写入本次提供的 Domain。未提供的 Domain 仍按默认 `cn` 节点和当前 `env` 回退到 Lovrabet 公共服务。企业部署需要所有请求进入私有服务时,应完整提供五个 Domain;KB Service 下游地址由 Runtime Java 独立配置。
64
+ 进入旧扁平独立部署模式会删除全局 `region` 和旧 Domain 字段,再写入本次提供的 Domain。未提供的 Domain 仍按默认 `cn` 节点和当前 `env` 回退到 Lovrabet 公共服务。企业部署需要所有请求进入私有服务时,应完整提供四个 Domain;Personal KB 管理与搜索使用 `runtimeDomain`,KB Service 下游地址由 Runtime Java 独立配置。
69
65
 
70
- 两种模式都保留 AccessKey、env、format、locale、应用绑定等其他全局配置。当前目录 `.lovrabet.json` 的旧扁平同名字段仍会覆盖全局旧扁平配置;初始化后用 `lovrabet doctor` 核对最终生效的国家/地区和五个 Domain。
66
+ 两种模式都保留 AccessKey、env、format、locale、应用绑定等其他全局配置。当前目录 `.lovrabet.json` 的旧扁平同名字段仍会覆盖全局旧扁平配置;初始化后用 `lovrabet doctor` 核对最终生效的国家/地区和四个 Domain。
71
67
 
72
68
  ## config list — 查看完整配置
73
69
 
@@ -55,11 +55,10 @@
55
55
  | `region` | string | `cn` | 当前开放的官方节点:`cn` / `id`;默认 `cn` 可省略 |
56
56
  | `userDomain` | string | 节点内置值 | User 服务 HTTPS origin 覆盖 |
57
57
  | `apiDomain` | string | 节点内置值 | 平台 API HTTPS origin 覆盖 |
58
- | `runtimeDomain` | string | 节点内置值 | 普通 Runtime HTTPS origin 覆盖 |
58
+ | `runtimeDomain` | string | 节点内置值 | Runtime HTTPS origin 覆盖,包含 Personal KB 管理与 `kb search` |
59
59
  | `skillDomain` | string | 节点默认 | SkillHub HTTPS origin 覆盖 |
60
- | `kbDomain` | string | 节点默认 | Personal KB 管理与 `kb search` Runtime 网关 HTTPS origin 覆盖 |
61
60
 
62
- 五个 Domain 各自独立覆盖同名服务地址。没有显式配置时,CLI 按 `region` 和 `env` 使用内置节点:`cn` 对应中国大陆,`id` 对应 Indonesia,且 Indonesia 的最终服务地址统一使用 `*.lovrabet.id`。`development` 与 `daily` 共用非生产地址;KB Service 下游地址由 Runtime Java 配置管理。执行 `lovrabet doctor` 可查看当前实际生效的五个 Domain,无需理解内部地址层级。
61
+ 四个 Domain 各自独立覆盖同名服务地址。没有显式配置时,CLI 按 `region` 和 `env` 使用内置节点:`cn` 对应中国大陆,`id` 对应 Indonesia,且 Indonesia 的最终服务地址统一使用 `*.lovrabet.id`。`development` 与 `daily` 共用非生产地址;Personal KB 管理与搜索统一走 Runtime,KB Service 下游地址由 Runtime Java 配置管理。执行 `lovrabet doctor` 可查看当前实际生效的四个 Domain,无需理解内部地址层级。
63
62
 
64
63
  `config init` 的完整模式切换、独立部署 JSON 和校验规则见 [配置管理](lovrabet-config-commands.md#config-init--初始化连接配置)。
65
64
 
@@ -25,4 +25,4 @@ lovrabet doctor
25
25
 
26
26
  `doctor` 不修改配置、不安装 Skill,也不替代业务命令的认证和权限检查。
27
27
 
28
- `API Endpoints` 显示 `kbDomain`,该地址同时承载 Personal KB 管理与 `kb search` Runtime 网关。KB Service 下游地址由 Runtime Java 配置管理,不在 CLI doctor 中显示。
28
+ `API Endpoints` 显示 `runtimeDomain`,该地址同时承载普通运行态请求、Personal KB 管理与 `kb search` Runtime 网关。KB Service 下游地址由 Runtime Java 配置管理,不在 CLI doctor 中显示。
@@ -10,7 +10,7 @@ lovrabet kb detail --id <id> --format compress
10
10
  lovrabet kb search --query "订单审批" --topk 5 --format compress
11
11
  ```
12
12
 
13
- `kb search` 只携带当前 AK,通过 `kbDomain` 调用固定 Runtime 搜索网关;Runtime 再按其 Java 环境配置访问 KB Service。返回范围是 `public/company/personal`,使用 `scope` 区分来源。
13
+ `kb search` 只携带当前 AK,通过 `runtimeDomain` 调用固定 Runtime 搜索网关;Runtime 再按其 Java 环境配置访问 KB Service。返回范围是 `public/company/personal`,使用 `scope` 区分来源。
14
14
 
15
15
  结构化输出固定为 `data: { schemaVersion:2, profile:"runtime", total, strategyFingerprint, timingsMs, hits }`。`--topk` 可选且必须是 1–50 的整数;命中完整保留 `documentId/revision/chunkId/scope/title/text/tags/rank/rawScore/finalScore/scoreKind` 的服务端顺序和值,不输出 legacy 别名。无命中是 `total:0/hits:[]` 的成功;字段、rank、score、timing、`no-store` 或 scope 漂移都会以脱敏错误失败。
16
16
 
@@ -24,15 +24,12 @@ lovrabet notification config-list --type EMAIL --appcode <appCode> --format json
24
24
 
25
25
  每个配置项只返回用于识别和选择配置的字段:
26
26
 
27
- - `id`
28
27
  - `configCode`
29
28
  - `configName`
30
29
  - `channelType`
31
30
  - `description`
32
- - `createTime`
33
- - `updateTime`
34
31
 
35
- 该命令不会输出 `endpointUrl`、`channelConfig`、SMTP 用户名或密码、token、secret、连接超时和人员身份审计字段。若任一配置缺少可用的 `configCode`、`configName` 或 `channelType`,命令返回错误,不把残缺记录包装成成功结果。
32
+ 该命令不会输出 `endpointUrl`、`channelConfig`、配置 ID、创建或更新时间、SMTP 用户名或密码、token、secret、连接超时和人员身份审计字段。若任一配置缺少可用的 `configCode`、`configName` 或 `channelType`,命令返回错误,不把残缺记录包装成成功结果。
36
33
 
37
34
  示例输出:
38
35
 
@@ -45,13 +42,10 @@ lovrabet notification config-list --type EMAIL --appcode <appCode> --format json
45
42
  "count": 1,
46
43
  "configs": [
47
44
  {
48
- "id": 7,
49
45
  "configCode": "ncc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
50
46
  "configName": "官方邮件",
51
47
  "channelType": "EMAIL",
52
- "description": "业务通知邮件",
53
- "createTime": "2026-07-01T00:00:00Z",
54
- "updateTime": "2026-07-02T00:00:00Z"
48
+ "description": "业务通知邮件"
55
49
  }
56
50
  ]
57
51
  },
@@ -2,8 +2,8 @@
2
2
  "schemaVersion": 1,
3
3
  "name": "lovrabet",
4
4
  "packageName": "@lovrabet/lovrabet-cli",
5
- "packageVersion": "2.3.1",
6
- "skillVersion": "2.3.1",
5
+ "packageVersion": "2.3.2-beta.2",
6
+ "skillVersion": "2.3.2-beta.2",
7
7
  "files": [
8
8
  "SKILL.md",
9
9
  "guides/app-resolution.md",
@@ -37,5 +37,5 @@
37
37
  "references/lovrabet-user-account.md",
38
38
  "references/lovrabet-workspace.md"
39
39
  ],
40
- "digest": "d330bc66b207592115986ab7eb259be8104c53ea8908d4b1583f6f9e82fde931"
40
+ "digest": "bc51f67c9d891d07291f7f93f1fd69aab3a58484559202415ac015599a04616b"
41
41
  }
@@ -1,17 +0,0 @@
1
- /**
2
- * Platform-specific executable helpers for cross-platform CLI execution.
3
- *
4
- * On Windows, npm-installed CLIs such as `npm` and `npx` are exposed as `.cmd`
5
- * wrapper scripts. `spawnSync()` without `shell: true` cannot resolve those
6
- * wrappers unless the extension is explicit. On Unix-like systems, the plain
7
- * command name is sufficient.
8
- */
9
- /** Whether the current runtime is Windows. */
10
- export declare const isWindows: boolean;
11
- /**
12
- * Resolves the executable name for npm ecosystem tools on the current platform.
13
- *
14
- * @param cmd - The base executable name, for example `"npx"` or `"npm"`.
15
- * @returns The executable name that should be passed to `spawnSync()`.
16
- */
17
- export declare function resolveNpmBin(cmd: string): string;
@@ -1 +0,0 @@
1
- const a161_0x324350=a161_0x35b2;(function(_0x55da17,_0x5d4770){const _0x484e07=a161_0x35b2,_0x110bed=_0x55da17();while(!![]){try{const _0x5928eb=parseInt(_0x484e07(0x97))/0x1+parseInt(_0x484e07(0x9c))/0x2*(-parseInt(_0x484e07(0x9e))/0x3)+-parseInt(_0x484e07(0x9f))/0x4+-parseInt(_0x484e07(0x96))/0x5*(parseInt(_0x484e07(0x95))/0x6)+-parseInt(_0x484e07(0x9a))/0x7+parseInt(_0x484e07(0x94))/0x8*(-parseInt(_0x484e07(0x9b))/0x9)+parseInt(_0x484e07(0x99))/0xa;if(_0x5928eb===_0x5d4770)break;else _0x110bed['push'](_0x110bed['shift']());}catch(_0x3f8b66){_0x110bed['push'](_0x110bed['shift']());}}}(a161_0x3905,0x80fc4));export const isWindows=process['platform']===a161_0x324350(0x98);function a161_0x35b2(_0x3d8012,_0x1098e8){_0x3d8012=_0x3d8012-0x94;const _0x3905cf=a161_0x3905();let _0x35b205=_0x3905cf[_0x3d8012];return _0x35b205;}export function resolveNpmBin(_0x3699de){const _0x1eb8ac=a161_0x324350;return isWindows?_0x3699de+_0x1eb8ac(0x9d):_0x3699de;}function a161_0x3905(){const _0x3e3a3a=['10gMuhEV','714434deCwAj','win32','21043440skrvyQ','31899fxVHaK','1988982wnVmgL','100306bjTQjp','.cmd','15wUPohg','3359648IcZuQB','8llrQDg','2922666UBWOVX'];a161_0x3905=function(){return _0x3e3a3a;};return a161_0x3905();}