@unbrained/pm-cli 2026.6.22 → 2026.6.23
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/CHANGELOG.md +22 -0
- package/dist/cli/commands/completion.js +5 -4
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/contracts.js +4 -3
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/extension/describe.d.ts +70 -0
- package/dist/cli/commands/extension/describe.js +76 -0
- package/dist/cli/commands/extension/describe.js.map +1 -0
- package/dist/cli/commands/extension/scaffold.js +50 -2
- package/dist/cli/commands/extension/scaffold.js.map +1 -1
- package/dist/cli/commands/extension.d.ts +2 -1
- package/dist/cli/commands/extension.js +28 -3
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/help-content.js +6 -2
- package/dist/cli/help-content.js.map +1 -1
- package/dist/cli/register-setup.js +10 -2
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli-bundle/chunks/{activity-DXS2XMQU.js → activity-H2LMOSSW.js} +11 -11
- package/dist/cli-bundle/chunks/activity-XUZ2AHCW.js +18 -0
- package/dist/cli-bundle/chunks/{aggregate-NMYDVQF7.js → aggregate-EGJLZQBI.js} +10 -10
- package/dist/cli-bundle/chunks/{aggregate-IHM4KMQ3.js → aggregate-R725FC3S.js} +10 -10
- package/dist/cli-bundle/chunks/{append-3HY5G7ET.js → append-5J345QGU.js} +8 -8
- package/dist/cli-bundle/chunks/{append-K54MDQYC.js → append-O5HPBMRN.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-GU7YHKYP.js → chunk-2A34E3BA.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7MPTFYT3.js → chunk-2BFPAUAF.js} +15 -4
- package/dist/cli-bundle/chunks/chunk-2BFPAUAF.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-DHBPJ7VG.js → chunk-2CKH2LMV.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-2LEYMXI6.js → chunk-2RDVQEWV.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-PCH2JTEO.js → chunk-2T3JG6V4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TZQKEBKF.js → chunk-34EONI5F.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-DU64SZUQ.js → chunk-3VY3YQO6.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SFKQAVZA.js → chunk-46G6RSB6.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-DMT4ODVN.js → chunk-4BHT5VDC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UKK2VTTH.js → chunk-4KD54S3Z.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-DBQUQ3AS.js → chunk-55ISXAQH.js} +7 -4
- package/dist/cli-bundle/chunks/{chunk-DBQUQ3AS.js.map → chunk-55ISXAQH.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GGAXE22C.js → chunk-5UVVASSA.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-25XZN3JD.js → chunk-5VOINNKT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KRJJPDUO.js → chunk-66MEDTUD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MD7XKVWI.js → chunk-7AUB5HNA.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-TJABI6PR.js → chunk-7K2XXO4I.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-AJXYOYJV.js → chunk-7MRQ4HMK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-THKDPOS5.js → chunk-7SV63ZHD.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-7MALIV5H.js → chunk-7UGEAPRY.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-TIKJAXQW.js → chunk-7XGQXHFB.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-YJICYNAV.js → chunk-AD3A7ZD6.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-FK6MV5F5.js → chunk-AONIHR2C.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-YRLLL5TY.js → chunk-BB6MDVNQ.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-3GL6LTUL.js → chunk-C5AOG6D2.js} +53 -5
- package/dist/cli-bundle/chunks/{chunk-3GL6LTUL.js.map → chunk-C5AOG6D2.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-I6XE47J2.js → chunk-CE5P2NQR.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-GXBSFKSX.js → chunk-CIIK67GW.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-TRUFOER3.js → chunk-CKGNPJAG.js} +15 -4
- package/dist/cli-bundle/chunks/chunk-CKGNPJAG.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-XKNF3VRJ.js → chunk-DT5LPYOD.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-4SDKF5BG.js → chunk-FIGAZ4Y7.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-CWPBGUC7.js → chunk-FXR67XVQ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NIWY4V4Z.js → chunk-G6N5VEOK.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-7GCCDXXN.js → chunk-G6PYHBBR.js} +117 -7
- package/dist/cli-bundle/chunks/chunk-G6PYHBBR.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-C5SWTISA.js → chunk-GAJVRGGA.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-B2KR24R4.js → chunk-H2IP4QLJ.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-VB54F347.js → chunk-H4IIJDE4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7PBGTIN3.js → chunk-HFFUQR73.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-RPRFBXND.js → chunk-IB3GYLQE.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-GNDHOR64.js → chunk-IPKJ6B36.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-V4SM4UAL.js → chunk-JR2LV3M4.js} +13 -13
- package/dist/cli-bundle/chunks/{chunk-JY25IOEZ.js → chunk-KFWBJPSG.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-D35LTIFR.js → chunk-KQMUV6LX.js} +104 -8
- package/dist/cli-bundle/chunks/chunk-KQMUV6LX.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-Y335KFHD.js → chunk-LRKKONT2.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-QQWEROGS.js → chunk-M4T5DXD5.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-JLSC5NPC.js → chunk-MJTINN54.js} +10 -10
- package/dist/cli-bundle/chunks/{chunk-RZZMSY4P.js → chunk-MJTSZKK5.js} +21 -2
- package/dist/cli-bundle/chunks/{chunk-RZZMSY4P.js.map → chunk-MJTSZKK5.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4YJA4LGU.js → chunk-MVKFOLLM.js} +52 -4
- package/dist/cli-bundle/chunks/{chunk-4YJA4LGU.js.map → chunk-MVKFOLLM.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-CR7KFPAQ.js → chunk-NCVCO3NZ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-CLLVBO3I.js → chunk-NK3UPBVG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-A25LOPRG.js → chunk-O6LLO73I.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4JXWVHMN.js → chunk-P77P2ILI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-I367IDZP.js → chunk-Q2KNGP7C.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-77VKGH4L.js → chunk-QH3PJYON.js} +10 -10
- package/dist/cli-bundle/chunks/{chunk-5SESR24H.js → chunk-QL5RVYOA.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-WBSYW3NT.js → chunk-S26C36QC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-Y4BZEND6.js → chunk-S2RUQSX2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NVUATMTC.js → chunk-SBQTAVJZ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-A7E4ZXG2.js → chunk-SKH7OGE5.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-H6FNDCDI.js → chunk-SKN7LC5W.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-MNGAQB2E.js → chunk-SR3EKWZG.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-PJS2J7Z4.js → chunk-T5472OMV.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-6FQHNHQQ.js → chunk-T72AZDBA.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-YATDFWYK.js → chunk-TQZH6OD6.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-HYQV75IB.js → chunk-U2Z5YUSO.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-KL5ELX2X.js → chunk-UELRKQQU.js} +22 -3
- package/dist/cli-bundle/chunks/chunk-UELRKQQU.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-J2TSPY5L.js → chunk-UVC5LOR7.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-P7ZU73BO.js → chunk-VAYA4XFX.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-47HTJ6BU.js → chunk-VFAQ4LMN.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-WQDX7DVG.js → chunk-W72GHSJE.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-EVPVCE4R.js → chunk-WBRKK5QR.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-YQSWTVZF.js → chunk-WM5ZVBPE.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-NKZOJPXK.js → chunk-WZQWHN4R.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-75VEYQJS.js → chunk-XVF4YARA.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-KBTREGVO.js → chunk-Y4SUQQYH.js} +8 -5
- package/dist/cli-bundle/chunks/{chunk-KBTREGVO.js.map → chunk-Y4SUQQYH.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-KK4TQ3ZP.js → chunk-YDEXO24S.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3VLPDG3J.js → chunk-YJ3SUEPD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-6UPTNMVW.js → chunk-YUDJD3XO.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-K25UDYJ4.js → chunk-ZQ3ZVXX2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-44O4JIN6.js → chunk-ZRK4O56R.js} +13 -13
- package/dist/cli-bundle/chunks/{claim-MPXNVBZQ.js → claim-4KHAA2RN.js} +10 -10
- package/dist/cli-bundle/chunks/{claim-SKHJDLW6.js → claim-CSPJFLNH.js} +10 -10
- package/dist/cli-bundle/chunks/close-A3EMKBBY.js +15 -0
- package/dist/cli-bundle/chunks/{close-4RKSL5L6.js → close-W56IOGYG.js} +8 -8
- package/dist/cli-bundle/chunks/{close-many-SXODYBDP.js → close-many-BX5DCSVV.js} +15 -15
- package/dist/cli-bundle/chunks/{close-many-AWTPXLHJ.js → close-many-TQU5F4E4.js} +15 -15
- package/dist/cli-bundle/chunks/{comments-YYW5P7AG.js → comments-U5KUC4EU.js} +10 -10
- package/dist/cli-bundle/chunks/{comments-OOH64LWW.js → comments-VRECH75R.js} +10 -10
- package/dist/cli-bundle/chunks/{config-3445MCQQ.js → config-D3OKQO52.js} +8 -8
- package/dist/cli-bundle/chunks/{config-LCDMKRB2.js → config-MMJA4LLK.js} +8 -8
- package/dist/cli-bundle/chunks/{context-DZMIBIVP.js → context-BLBD3PUB.js} +13 -13
- package/dist/cli-bundle/chunks/{context-PJCURODY.js → context-DHLVPXN3.js} +13 -13
- package/dist/cli-bundle/chunks/{contracts-7YDFEJB3.js → contracts-C3SZCXXG.js} +7 -5
- package/dist/cli-bundle/chunks/contracts-C3SZCXXG.js.map +7 -0
- package/dist/cli-bundle/chunks/{contracts-MP2P3HL5.js → contracts-XGVMMPC5.js} +8 -6
- package/dist/cli-bundle/chunks/contracts-XGVMMPC5.js.map +1 -0
- package/dist/cli-bundle/chunks/{copy-63IQQRRS.js → copy-5D5DX3VK.js} +7 -7
- package/dist/cli-bundle/chunks/{copy-TASIH2AZ.js → copy-HHL3K4QP.js} +7 -7
- package/dist/cli-bundle/chunks/{create-TGSB5GV4.js → create-IXY43O4H.js} +14 -14
- package/dist/cli-bundle/chunks/create-QVGFYA2X.js +30 -0
- package/dist/cli-bundle/chunks/{delete-ARILQQLB.js → delete-IBUR3M42.js} +7 -7
- package/dist/cli-bundle/chunks/{delete-ZQKBZYNK.js → delete-QQC2FGUH.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-NJFJIMQ5.js → deps-KWKRHXIN.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-MSHQR2GY.js → deps-VTPO4BSE.js} +7 -7
- package/dist/cli-bundle/chunks/{docs-XK2UVUXX.js → docs-7CHFHXLN.js} +9 -9
- package/dist/cli-bundle/chunks/{docs-SS4UKYYA.js → docs-IIO3FEUO.js} +9 -9
- package/dist/cli-bundle/chunks/{eval-FVZGX5IZ.js → eval-CEYYEPSX.js} +12 -12
- package/dist/cli-bundle/chunks/{eval-JOTG2YHU.js → eval-IO7LREOL.js} +12 -12
- package/dist/cli-bundle/chunks/{extension-OQPS27B4.js → extension-KCPUWSY2.js} +6 -6
- package/dist/cli-bundle/chunks/{extension-NLMS47I4.js → extension-UTTQDUYI.js} +6 -6
- package/dist/cli-bundle/chunks/{files-3EVJQZ2N.js → files-TPUL6KWB.js} +9 -9
- package/dist/cli-bundle/chunks/{files-Y2P6LN5A.js → files-Z2HHEFGP.js} +9 -9
- package/dist/cli-bundle/chunks/{focus-D5ZUPTII.js → focus-JVJCGC2D.js} +8 -8
- package/dist/cli-bundle/chunks/{focus-ZPIFTY4R.js → focus-YRNNH7IP.js} +8 -8
- package/dist/cli-bundle/chunks/{gc-LXXDY456.js → gc-O5GUO3SU.js} +3 -3
- package/dist/cli-bundle/chunks/{gc-RNOEQHSX.js → gc-PYVVEELM.js} +3 -3
- package/dist/cli-bundle/chunks/{get-Q3SZGQHD.js → get-ENLTEGTX.js} +11 -11
- package/dist/cli-bundle/chunks/{get-W23G7MJX.js → get-X4O3HBEY.js} +11 -11
- package/dist/cli-bundle/chunks/{health-5LHSX365.js → health-5EXTY44Q.js} +14 -14
- package/dist/cli-bundle/chunks/{health-UDDGJLPP.js → health-BOTB7YSU.js} +14 -14
- package/dist/cli-bundle/chunks/{history-6CZVFIUJ.js → history-AJTXLT6S.js} +10 -10
- package/dist/cli-bundle/chunks/history-AK3E5Z3C.js +20 -0
- package/dist/cli-bundle/chunks/{history-compact-VWUSQH6Z.js → history-compact-43OOUAWD.js} +12 -12
- package/dist/cli-bundle/chunks/{history-compact-M35PDQ4G.js → history-compact-46MRHW3I.js} +12 -12
- package/dist/cli-bundle/chunks/{history-redact-AJGARHT3.js → history-redact-KUUUVUFM.js} +11 -11
- package/dist/cli-bundle/chunks/history-redact-TWIYQV5J.js +21 -0
- package/dist/cli-bundle/chunks/{history-repair-5RDMF7K4.js → history-repair-B5PZBOPU.js} +12 -12
- package/dist/cli-bundle/chunks/{history-repair-YUAHIPIN.js → history-repair-VQTYOSRS.js} +12 -12
- package/dist/cli-bundle/chunks/{init-HASX3YNJ.js → init-BNLVFPRG.js} +11 -11
- package/dist/cli-bundle/chunks/init-RCRKW5PL.js +21 -0
- package/dist/cli-bundle/chunks/{learnings-M4KA6MQE.js → learnings-MUUU5KMC.js} +10 -10
- package/dist/cli-bundle/chunks/{learnings-JNGUIJDK.js → learnings-XSGX52S7.js} +10 -10
- package/dist/cli-bundle/chunks/{list-6FMKTIH3.js → list-32U7BSKE.js} +10 -10
- package/dist/cli-bundle/chunks/{list-5UU2W24O.js → list-ZEEOHLTQ.js} +10 -10
- package/dist/cli-bundle/chunks/{notes-PYCPLA5Y.js → notes-NJ45OZGF.js} +10 -10
- package/dist/cli-bundle/chunks/{notes-MODH5CBT.js → notes-OHU25L3M.js} +10 -10
- package/dist/cli-bundle/chunks/{plan-DXRIRYRU.js → plan-KQA7CAKI.js} +14 -14
- package/dist/cli-bundle/chunks/{plan-EHQALWSC.js → plan-LWWAEV5Y.js} +14 -14
- package/dist/cli-bundle/chunks/{register-list-query-QAASVP2J.js → register-list-query-DDCHPONM.js} +19 -19
- package/dist/cli-bundle/chunks/{register-list-query-WE54YJMH.js → register-list-query-YNPBVIKM.js} +19 -19
- package/dist/cli-bundle/chunks/{register-mutation-B6DZJTY2.js → register-mutation-7ALWDDAX.js} +33 -33
- package/dist/cli-bundle/chunks/{register-mutation-CPV4C2KR.js → register-mutation-LAVKYY63.js} +33 -33
- package/dist/cli-bundle/chunks/{register-operations-AT3BVVX2.js → register-operations-R4VOQ6EF.js} +32 -32
- package/dist/cli-bundle/chunks/{register-operations-RC4C3423.js → register-operations-U5JAW3WE.js} +32 -32
- package/dist/cli-bundle/chunks/{register-setup-HXEHMDHE.js → register-setup-KBXQDCXE.js} +23 -19
- package/dist/cli-bundle/chunks/register-setup-KBXQDCXE.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-setup-JSMJEFCJ.js → register-setup-RCRUHMSZ.js} +24 -20
- package/dist/cli-bundle/chunks/register-setup-RCRUHMSZ.js.map +1 -0
- package/dist/cli-bundle/chunks/restore-2ZKT6UDC.js +19 -0
- package/dist/cli-bundle/chunks/{restore-FNBV4GWE.js → restore-6K53WOWO.js} +11 -11
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-JRIUREEU.js → scheduling-shortcuts-NJ5UVJFB.js} +14 -14
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-ECL6GBMZ.js → scheduling-shortcuts-OQVJXG3M.js} +14 -14
- package/dist/cli-bundle/chunks/{schema-TCW3I7QR.js → schema-MNTAVQCY.js} +9 -9
- package/dist/cli-bundle/chunks/{schema-74YENAJL.js → schema-RBTJ2YXW.js} +9 -9
- package/dist/cli-bundle/chunks/{search-7USZ6XZA.js → search-6HOIVZDU.js} +12 -12
- package/dist/cli-bundle/chunks/{search-GNAUE65M.js → search-ZWYEMASC.js} +12 -12
- package/dist/cli-bundle/chunks/{stats-DQMKJMFT.js → stats-FS742AMA.js} +8 -8
- package/dist/cli-bundle/chunks/{stats-CVHASAEU.js → stats-R5OAJVZK.js} +8 -8
- package/dist/cli-bundle/chunks/{telemetry-7P5EUWCS.js → telemetry-7DIGDQUO.js} +4 -4
- package/dist/cli-bundle/chunks/{telemetry-PQTL5YS2.js → telemetry-FWEXSJLQ.js} +4 -4
- package/dist/cli-bundle/chunks/{test-FDQZQNZ4.js → test-NZF7OT2F.js} +16 -16
- package/dist/cli-bundle/chunks/test-QJXLKV26.js +36 -0
- package/dist/cli-bundle/chunks/{test-all-WQIAZVA6.js → test-all-DPN62TX7.js} +16 -16
- package/dist/cli-bundle/chunks/{test-all-PIPPS4S5.js → test-all-KL7TLMJF.js} +16 -16
- package/dist/cli-bundle/chunks/{test-runs-JS6DNCCI.js → test-runs-C6CFIVOS.js} +5 -5
- package/dist/cli-bundle/chunks/{test-runs-NZD2QGL5.js → test-runs-IAJDL6CA.js} +5 -5
- package/dist/cli-bundle/chunks/update-2XCQNOD6.js +28 -0
- package/dist/cli-bundle/chunks/update-IWUCXVH2.js +24 -0
- package/dist/cli-bundle/chunks/{update-many-6NTZ5J5D.js → update-many-MUTIOAP3.js} +23 -23
- package/dist/cli-bundle/chunks/{update-many-B3TH5TDS.js → update-many-YEH2DQL6.js} +23 -23
- package/dist/cli-bundle/chunks/{upgrade-4C7VE7MS.js → upgrade-HYJ3SWWU.js} +6 -6
- package/dist/cli-bundle/chunks/{upgrade-76IKZ6EZ.js → upgrade-UBNLBZNR.js} +6 -6
- package/dist/cli-bundle/chunks/{validate-AQU7OCL3.js → validate-6QWQVCX2.js} +21 -21
- package/dist/cli-bundle/chunks/{validate-BPM6Z3OT.js → validate-W5V5ZGQX.js} +21 -21
- package/dist/cli-bundle/main.js +22 -18
- package/dist/cli-bundle/main.js.map +2 -2
- package/dist/core/extensions/activation-summary.d.ts +109 -0
- package/dist/core/extensions/activation-summary.js +60 -0
- package/dist/core/extensions/activation-summary.js.map +1 -0
- package/dist/core/extensions/capability-usage.d.ts +10 -0
- package/dist/core/extensions/capability-usage.js +12 -3
- package/dist/core/extensions/capability-usage.js.map +1 -1
- package/dist/core/telemetry/runtime.js +5 -2
- package/dist/core/telemetry/runtime.js.map +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.js +4 -2
- package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +1 -0
- package/dist/sdk/cli-contracts.js +10 -2
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/compose.d.ts +297 -0
- package/dist/sdk/compose.js +420 -0
- package/dist/sdk/compose.js.map +1 -0
- package/dist/sdk/define.d.ts +194 -0
- package/dist/sdk/define.js +205 -0
- package/dist/sdk/define.js.map +1 -0
- package/dist/sdk/index.d.ts +4 -27
- package/dist/sdk/index.js +5 -12
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/testing.d.ts +147 -1
- package/dist/sdk/testing.js +179 -2
- package/dist/sdk/testing.js.map +1 -1
- package/docs/COMMANDS.md +1 -0
- package/docs/EXTENSIONS.md +8 -5
- package/docs/SDK.md +245 -16
- package/package.json +1 -1
- package/dist/cli-bundle/chunks/activity-NEOI45NX.js +0 -18
- package/dist/cli-bundle/chunks/chunk-7GCCDXXN.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-7MPTFYT3.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-D35LTIFR.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-KL5ELX2X.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-TRUFOER3.js.map +0 -7
- package/dist/cli-bundle/chunks/close-Z6AI736U.js +0 -15
- package/dist/cli-bundle/chunks/contracts-7YDFEJB3.js.map +0 -7
- package/dist/cli-bundle/chunks/contracts-MP2P3HL5.js.map +0 -1
- package/dist/cli-bundle/chunks/create-3BV2VA3Q.js +0 -30
- package/dist/cli-bundle/chunks/history-YRQUD4YM.js +0 -20
- package/dist/cli-bundle/chunks/history-redact-27OEOZRZ.js +0 -21
- package/dist/cli-bundle/chunks/init-DWAKYRXI.js +0 -21
- package/dist/cli-bundle/chunks/register-setup-HXEHMDHE.js.map +0 -7
- package/dist/cli-bundle/chunks/register-setup-JSMJEFCJ.js.map +0 -1
- package/dist/cli-bundle/chunks/restore-XY4YE2OV.js +0 -19
- package/dist/cli-bundle/chunks/test-COWPCGBE.js +0 -36
- package/dist/cli-bundle/chunks/update-7IYQHX4Q.js +0 -24
- package/dist/cli-bundle/chunks/update-IJKDRBIX.js +0 -28
- /package/dist/cli-bundle/chunks/{activity-DXS2XMQU.js.map → activity-H2LMOSSW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-NEOI45NX.js.map → activity-XUZ2AHCW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-NMYDVQF7.js.map → aggregate-EGJLZQBI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-IHM4KMQ3.js.map → aggregate-R725FC3S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-3HY5G7ET.js.map → append-5J345QGU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-K54MDQYC.js.map → append-O5HPBMRN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GU7YHKYP.js.map → chunk-2A34E3BA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DHBPJ7VG.js.map → chunk-2CKH2LMV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2LEYMXI6.js.map → chunk-2RDVQEWV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PCH2JTEO.js.map → chunk-2T3JG6V4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TZQKEBKF.js.map → chunk-34EONI5F.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DU64SZUQ.js.map → chunk-3VY3YQO6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SFKQAVZA.js.map → chunk-46G6RSB6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DMT4ODVN.js.map → chunk-4BHT5VDC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UKK2VTTH.js.map → chunk-4KD54S3Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GGAXE22C.js.map → chunk-5UVVASSA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-25XZN3JD.js.map → chunk-5VOINNKT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KRJJPDUO.js.map → chunk-66MEDTUD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MD7XKVWI.js.map → chunk-7AUB5HNA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TJABI6PR.js.map → chunk-7K2XXO4I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AJXYOYJV.js.map → chunk-7MRQ4HMK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-THKDPOS5.js.map → chunk-7SV63ZHD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7MALIV5H.js.map → chunk-7UGEAPRY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TIKJAXQW.js.map → chunk-7XGQXHFB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YJICYNAV.js.map → chunk-AD3A7ZD6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FK6MV5F5.js.map → chunk-AONIHR2C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YRLLL5TY.js.map → chunk-BB6MDVNQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-I6XE47J2.js.map → chunk-CE5P2NQR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GXBSFKSX.js.map → chunk-CIIK67GW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XKNF3VRJ.js.map → chunk-DT5LPYOD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4SDKF5BG.js.map → chunk-FIGAZ4Y7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CWPBGUC7.js.map → chunk-FXR67XVQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NIWY4V4Z.js.map → chunk-G6N5VEOK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-C5SWTISA.js.map → chunk-GAJVRGGA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-B2KR24R4.js.map → chunk-H2IP4QLJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VB54F347.js.map → chunk-H4IIJDE4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7PBGTIN3.js.map → chunk-HFFUQR73.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RPRFBXND.js.map → chunk-IB3GYLQE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GNDHOR64.js.map → chunk-IPKJ6B36.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-V4SM4UAL.js.map → chunk-JR2LV3M4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JY25IOEZ.js.map → chunk-KFWBJPSG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Y335KFHD.js.map → chunk-LRKKONT2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QQWEROGS.js.map → chunk-M4T5DXD5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JLSC5NPC.js.map → chunk-MJTINN54.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CR7KFPAQ.js.map → chunk-NCVCO3NZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CLLVBO3I.js.map → chunk-NK3UPBVG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-A25LOPRG.js.map → chunk-O6LLO73I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4JXWVHMN.js.map → chunk-P77P2ILI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-I367IDZP.js.map → chunk-Q2KNGP7C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-77VKGH4L.js.map → chunk-QH3PJYON.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5SESR24H.js.map → chunk-QL5RVYOA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WBSYW3NT.js.map → chunk-S26C36QC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Y4BZEND6.js.map → chunk-S2RUQSX2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NVUATMTC.js.map → chunk-SBQTAVJZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-A7E4ZXG2.js.map → chunk-SKH7OGE5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-H6FNDCDI.js.map → chunk-SKN7LC5W.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MNGAQB2E.js.map → chunk-SR3EKWZG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PJS2J7Z4.js.map → chunk-T5472OMV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6FQHNHQQ.js.map → chunk-T72AZDBA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YATDFWYK.js.map → chunk-TQZH6OD6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HYQV75IB.js.map → chunk-U2Z5YUSO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-J2TSPY5L.js.map → chunk-UVC5LOR7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-P7ZU73BO.js.map → chunk-VAYA4XFX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-47HTJ6BU.js.map → chunk-VFAQ4LMN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WQDX7DVG.js.map → chunk-W72GHSJE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EVPVCE4R.js.map → chunk-WBRKK5QR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YQSWTVZF.js.map → chunk-WM5ZVBPE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NKZOJPXK.js.map → chunk-WZQWHN4R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-75VEYQJS.js.map → chunk-XVF4YARA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KK4TQ3ZP.js.map → chunk-YDEXO24S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3VLPDG3J.js.map → chunk-YJ3SUEPD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6UPTNMVW.js.map → chunk-YUDJD3XO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-K25UDYJ4.js.map → chunk-ZQ3ZVXX2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-44O4JIN6.js.map → chunk-ZRK4O56R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-MPXNVBZQ.js.map → claim-4KHAA2RN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-SKHJDLW6.js.map → claim-CSPJFLNH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-Z6AI736U.js.map → close-A3EMKBBY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-4RKSL5L6.js.map → close-W56IOGYG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-SXODYBDP.js.map → close-many-BX5DCSVV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-AWTPXLHJ.js.map → close-many-TQU5F4E4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-YYW5P7AG.js.map → comments-U5KUC4EU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-OOH64LWW.js.map → comments-VRECH75R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{config-3445MCQQ.js.map → config-D3OKQO52.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{config-LCDMKRB2.js.map → config-MMJA4LLK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-DZMIBIVP.js.map → context-BLBD3PUB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-PJCURODY.js.map → context-DHLVPXN3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-63IQQRRS.js.map → copy-5D5DX3VK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-TASIH2AZ.js.map → copy-HHL3K4QP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-TGSB5GV4.js.map → create-IXY43O4H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-3BV2VA3Q.js.map → create-QVGFYA2X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-ARILQQLB.js.map → delete-IBUR3M42.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-ZQKBZYNK.js.map → delete-QQC2FGUH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-NJFJIMQ5.js.map → deps-KWKRHXIN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-MSHQR2GY.js.map → deps-VTPO4BSE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-XK2UVUXX.js.map → docs-7CHFHXLN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-SS4UKYYA.js.map → docs-IIO3FEUO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{eval-FVZGX5IZ.js.map → eval-CEYYEPSX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{eval-JOTG2YHU.js.map → eval-IO7LREOL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-OQPS27B4.js.map → extension-KCPUWSY2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-NLMS47I4.js.map → extension-UTTQDUYI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-3EVJQZ2N.js.map → files-TPUL6KWB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-Y2P6LN5A.js.map → files-Z2HHEFGP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-D5ZUPTII.js.map → focus-JVJCGC2D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-ZPIFTY4R.js.map → focus-YRNNH7IP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-LXXDY456.js.map → gc-O5GUO3SU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-RNOEQHSX.js.map → gc-PYVVEELM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-Q3SZGQHD.js.map → get-ENLTEGTX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-W23G7MJX.js.map → get-X4O3HBEY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{health-5LHSX365.js.map → health-5EXTY44Q.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{health-UDDGJLPP.js.map → health-BOTB7YSU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-6CZVFIUJ.js.map → history-AJTXLT6S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-YRQUD4YM.js.map → history-AK3E5Z3C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-VWUSQH6Z.js.map → history-compact-43OOUAWD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-M35PDQ4G.js.map → history-compact-46MRHW3I.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-AJGARHT3.js.map → history-redact-KUUUVUFM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-27OEOZRZ.js.map → history-redact-TWIYQV5J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-5RDMF7K4.js.map → history-repair-B5PZBOPU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-YUAHIPIN.js.map → history-repair-VQTYOSRS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-HASX3YNJ.js.map → init-BNLVFPRG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-DWAKYRXI.js.map → init-RCRKW5PL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-M4KA6MQE.js.map → learnings-MUUU5KMC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-JNGUIJDK.js.map → learnings-XSGX52S7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-6FMKTIH3.js.map → list-32U7BSKE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-5UU2W24O.js.map → list-ZEEOHLTQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-PYCPLA5Y.js.map → notes-NJ45OZGF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-MODH5CBT.js.map → notes-OHU25L3M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-DXRIRYRU.js.map → plan-KQA7CAKI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-EHQALWSC.js.map → plan-LWWAEV5Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-list-query-QAASVP2J.js.map → register-list-query-DDCHPONM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-list-query-WE54YJMH.js.map → register-list-query-YNPBVIKM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-B6DZJTY2.js.map → register-mutation-7ALWDDAX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-CPV4C2KR.js.map → register-mutation-LAVKYY63.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-AT3BVVX2.js.map → register-operations-R4VOQ6EF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-operations-RC4C3423.js.map → register-operations-U5JAW3WE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-XY4YE2OV.js.map → restore-2ZKT6UDC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-FNBV4GWE.js.map → restore-6K53WOWO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{scheduling-shortcuts-JRIUREEU.js.map → scheduling-shortcuts-NJ5UVJFB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{scheduling-shortcuts-ECL6GBMZ.js.map → scheduling-shortcuts-OQVJXG3M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-TCW3I7QR.js.map → schema-MNTAVQCY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-74YENAJL.js.map → schema-RBTJ2YXW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-7USZ6XZA.js.map → search-6HOIVZDU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-GNAUE65M.js.map → search-ZWYEMASC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-DQMKJMFT.js.map → stats-FS742AMA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{stats-CVHASAEU.js.map → stats-R5OAJVZK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-7P5EUWCS.js.map → telemetry-7DIGDQUO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-PQTL5YS2.js.map → telemetry-FWEXSJLQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-FDQZQNZ4.js.map → test-NZF7OT2F.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-COWPCGBE.js.map → test-QJXLKV26.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-all-WQIAZVA6.js.map → test-all-DPN62TX7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-all-PIPPS4S5.js.map → test-all-KL7TLMJF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-JS6DNCCI.js.map → test-runs-C6CFIVOS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-NZD2QGL5.js.map → test-runs-IAJDL6CA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-IJKDRBIX.js.map → update-2XCQNOD6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-7IYQHX4Q.js.map → update-IWUCXVH2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-6NTZ5J5D.js.map → update-many-MUTIOAP3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-B3TH5TDS.js.map → update-many-YEH2DQL6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{upgrade-4C7VE7MS.js.map → upgrade-HYJ3SWWU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{upgrade-76IKZ6EZ.js.map → upgrade-UBNLBZNR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{validate-AQU7OCL3.js.map → validate-6QWQVCX2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{validate-BPM6Z3OT.js.map → validate-W5V5ZGQX.js.map} +0 -0
package/dist/sdk/testing.d.ts
CHANGED
|
@@ -4,8 +4,13 @@
|
|
|
4
4
|
* Defines public SDK APIs and package-author helpers for Testing.
|
|
5
5
|
*/
|
|
6
6
|
import type { AfterCommandHookContext, BeforeCommandHookContext, CommandHandlerResult, CommandOverrideContext, CommandOverrideResult, ExtensionActivationResult, ExtensionCapability, ExtensionCommandRegistry, ExtensionDeactivationResult, ExtensionGovernancePolicy, ExtensionHookRegistry, ExtensionLayer, ExtensionParserRegistry, ExtensionPreflightRegistry, ExtensionRegistrationRegistry, ExtensionRendererRegistry, ExtensionServiceName, ExtensionServiceRegistry, FlagDefinition, OnIndexHookContext, OnReadHookContext, OnWriteHookContext, OutputRendererFormat, ParserOverrideContext, ParserOverrideResult, PreflightOverrideContext, PreflightOverrideResult, RegisteredExtensionCommandDefinition, RegisteredExtensionCommandOverride, RegisteredExtensionExporter, RegisteredExtensionFlagDefinitions, RegisteredExtensionImporter, RegisteredExtensionParserOverride, RegisteredExtensionPreflightOverride, RegisteredExtensionRendererOverride, RegisteredExtensionSchemaFieldDefinitions, RegisteredExtensionSchemaItemTypeDefinitions, RegisteredExtensionSchemaMigrationDefinition, RegisteredExtensionSearchProvider, RegisteredExtensionServiceOverride, RegisteredExtensionVectorStoreAdapter, RendererOverrideContext, RendererOverrideResult, SchemaFieldDefinition, SchemaItemTypeDefinition, SearchProviderEmbedBatchContext, SearchProviderEmbedContext, SearchProviderQueryContext, SearchProviderQueryExpansionContext, SearchProviderQueryExpansionResult, SearchProviderQueryResult, SearchProviderRerankContext, SearchProviderRerankResult, ServiceOverrideContext, ServiceOverrideResult, VectorStoreDeleteContext, VectorStoreQueryContext, VectorStoreQueryHit, VectorStoreUpsertContext } from "../core/extensions/loader.js";
|
|
7
|
+
import { describeExtensionBlueprint, lintExtensionBlueprint } from "./compose.js";
|
|
8
|
+
import type { ExtensionBlueprint, ExtensionBlueprintLintCode, ExtensionBlueprintLintFinding, ExtensionBlueprintLintResult, ExtensionBlueprintLintSeverity, LintExtensionBlueprintOptions } from "./compose.js";
|
|
7
9
|
import type { GlobalOptions } from "../core/shared/command-types.js";
|
|
8
10
|
import type { PmPackageManifest, PmPackageResourceKind } from "../core/packages/manifest.js";
|
|
11
|
+
export { describeExtensionActivation, type DescribeExtensionActivationOptions, type ExtensionActivationSummary, } from "../core/extensions/activation-summary.js";
|
|
12
|
+
export { describeExtensionBlueprint, lintExtensionBlueprint };
|
|
13
|
+
export type { ExtensionBlueprint, ExtensionBlueprintLintCode, ExtensionBlueprintLintFinding, ExtensionBlueprintLintResult, ExtensionBlueprintLintSeverity, LintExtensionBlueprintOptions, };
|
|
9
14
|
/**
|
|
10
15
|
* Documents the activate extension for test options payload exchanged by command, SDK, and package integrations.
|
|
11
16
|
*/
|
|
@@ -803,4 +808,145 @@ export declare function assertRegisteredMigration(registrations: ExtensionRegist
|
|
|
803
808
|
* declared/used/unused breakdown for further assertions.
|
|
804
809
|
*/
|
|
805
810
|
export declare function assertExtensionCapabilityUsage(activation: ExtensionActivationResult, expectation: ExtensionCapabilityUsageExpectation): ExtensionCapabilityUsageAssertion;
|
|
806
|
-
|
|
811
|
+
/**
|
|
812
|
+
* Preflight a declarative {@link ExtensionBlueprint} in a test, throwing if it has
|
|
813
|
+
* any `error`-severity issue (today: capability the blueprint exercises but the
|
|
814
|
+
* declared set omits, which would fail activation with `extension_capability_missing`).
|
|
815
|
+
*
|
|
816
|
+
* The throwing counterpart to {@link lintExtensionBlueprint} and the `assert*`
|
|
817
|
+
* family member for declarative authoring: drop `assertExtensionBlueprint(blueprint)`
|
|
818
|
+
* into a package's `node:test`/Vitest suite to fail CI before the blueprint is
|
|
819
|
+
* ever activated. The full {@link ExtensionBlueprintLintResult} is returned on
|
|
820
|
+
* success so a test can still inspect advisory warnings (unused capability,
|
|
821
|
+
* duplicate command, empty surface) without failing on them.
|
|
822
|
+
*/
|
|
823
|
+
export declare function assertExtensionBlueprint(blueprint: ExtensionBlueprint, options?: LintExtensionBlueprintOptions): ExtensionBlueprintLintResult;
|
|
824
|
+
/**
|
|
825
|
+
* A fluent, single-extension test fixture returned by
|
|
826
|
+
* {@link createExtensionTestHarness}.
|
|
827
|
+
*
|
|
828
|
+
* Every method binds one of the standalone SDK testing helpers to the correct
|
|
829
|
+
* sub-registry of a single {@link ExtensionActivationResult}, so a package author
|
|
830
|
+
* never threads `activation.registrations` vs `activation.commands` vs
|
|
831
|
+
* `activation.hooks` (etc.) by hand — picking the wrong sub-registry is a common
|
|
832
|
+
* footgun that surfaces as a confusing `available: (none)` error. Methods do not
|
|
833
|
+
* use `this`; they close over the activation, so they remain safe to destructure
|
|
834
|
+
* (`const { runCommand, assertCommandContract } = harness;`).
|
|
835
|
+
*
|
|
836
|
+
* The `assert*` methods verify registration wiring (returning the matched
|
|
837
|
+
* registration); the `run*` methods invoke a registered surface through pm's real
|
|
838
|
+
* dispatch engine (returning its runtime result); {@link deactivate} runs the real
|
|
839
|
+
* teardown engine. The raw {@link activation} stays public as an escape hatch to
|
|
840
|
+
* the standalone helpers for any surface not covered by a convenience method.
|
|
841
|
+
*/
|
|
842
|
+
export interface ExtensionTestHarness {
|
|
843
|
+
/** The in-memory extension module supplied to {@link createExtensionTestHarness}. */
|
|
844
|
+
readonly module: unknown;
|
|
845
|
+
/** Resolved extension name (manifest name, explicit override, or `"test-extension"`). */
|
|
846
|
+
readonly name: string;
|
|
847
|
+
/** Layer recorded for the in-memory extension (defaults to `"project"`). */
|
|
848
|
+
readonly layer: ExtensionLayer;
|
|
849
|
+
/** The underlying activation result; use it to reach standalone helpers directly. */
|
|
850
|
+
readonly activation: ExtensionActivationResult;
|
|
851
|
+
/** Bound {@link assertRegisteredCommandContract} over `activation.registrations`. */
|
|
852
|
+
assertCommandContract(expectation: RegisteredCommandContractExpectation): RegisteredCommandContractAssertion;
|
|
853
|
+
/** Bound {@link assertRegisteredFlags} over `activation.registrations`. */
|
|
854
|
+
assertFlags(expectation: RegisteredFlagsExpectation): RegisteredExtensionFlagDefinitions;
|
|
855
|
+
/** Bound {@link assertRegisteredItemField} over `activation.registrations`. */
|
|
856
|
+
assertItemField(expectation: RegisteredItemFieldExpectation): RegisteredItemFieldAssertion;
|
|
857
|
+
/** Bound {@link assertRegisteredItemType} over `activation.registrations`. */
|
|
858
|
+
assertItemType(expectation: RegisteredItemTypeExpectation): RegisteredItemTypeAssertion;
|
|
859
|
+
/** Bound {@link assertRegisteredHook} over `activation.hooks`. */
|
|
860
|
+
assertHook<TKind extends RegisteredHookKind>(expectation: RegisteredHookExpectation & {
|
|
861
|
+
kind: TKind;
|
|
862
|
+
}): ExtensionHookRegistry[(typeof HOOK_KIND_TO_REGISTRY_FIELD)[TKind]][number];
|
|
863
|
+
/** Bound {@link assertRegisteredCommandOverride} over `activation.commands`. */
|
|
864
|
+
assertCommandOverride(expectation: RegisteredCommandOverrideExpectation): RegisteredExtensionCommandOverride;
|
|
865
|
+
/** Bound {@link assertRegisteredParserOverride} over `activation.parsers`. */
|
|
866
|
+
assertParserOverride(expectation: RegisteredParserOverrideExpectation): RegisteredExtensionParserOverride;
|
|
867
|
+
/** Bound {@link assertRegisteredPreflightOverride} over `activation.preflight`. */
|
|
868
|
+
assertPreflightOverride(expectation?: RegisteredPreflightOverrideExpectation): RegisteredExtensionPreflightOverride;
|
|
869
|
+
/** Bound {@link assertRegisteredRendererOverride} over `activation.renderers`. */
|
|
870
|
+
assertRendererOverride(expectation: RegisteredRendererOverrideExpectation): RegisteredExtensionRendererOverride;
|
|
871
|
+
/** Bound {@link assertRegisteredServiceOverride} over `activation.services`. */
|
|
872
|
+
assertServiceOverride(expectation: RegisteredServiceOverrideExpectation): RegisteredExtensionServiceOverride;
|
|
873
|
+
/** Bound {@link assertRegisteredSearchProvider} over `activation.registrations`. */
|
|
874
|
+
assertSearchProvider(expectation: RegisteredSearchProviderExpectation): RegisteredExtensionSearchProvider;
|
|
875
|
+
/** Bound {@link assertRegisteredVectorStoreAdapter} over `activation.registrations`. */
|
|
876
|
+
assertVectorStoreAdapter(expectation: RegisteredVectorStoreAdapterExpectation): RegisteredExtensionVectorStoreAdapter;
|
|
877
|
+
/** Bound {@link assertRegisteredImporter} over `activation.registrations`. */
|
|
878
|
+
assertImporter(expectation: RegisteredImporterExpectation): RegisteredExtensionImporter;
|
|
879
|
+
/** Bound {@link assertRegisteredExporter} over `activation.registrations`. */
|
|
880
|
+
assertExporter(expectation: RegisteredExporterExpectation): RegisteredExtensionExporter;
|
|
881
|
+
/** Bound {@link assertRegisteredMigration} over `activation.registrations`. */
|
|
882
|
+
assertMigration(expectation: RegisteredMigrationExpectation): RegisteredExtensionSchemaMigrationDefinition;
|
|
883
|
+
/** Bound {@link assertExtensionCapabilityUsage} over the whole `activation`. */
|
|
884
|
+
assertCapabilityUsage(expectation: ExtensionCapabilityUsageExpectation): ExtensionCapabilityUsageAssertion;
|
|
885
|
+
/** Bound {@link runRegisteredCommandForTest} over `activation.commands`. */
|
|
886
|
+
runCommand(options: RunRegisteredCommandForTestOptions): Promise<CommandHandlerResult>;
|
|
887
|
+
/** Bound {@link runRegisteredHookForTest} over `activation.hooks`. */
|
|
888
|
+
runHook(options: RunRegisteredHookForTestOptions): Promise<string[]>;
|
|
889
|
+
/** Bound {@link runRegisteredCommandOverrideForTest} over `activation.commands`. */
|
|
890
|
+
runCommandOverride(context: CommandOverrideContext): Promise<CommandOverrideResult>;
|
|
891
|
+
/** Bound {@link runRegisteredParserOverrideForTest} over `activation.parsers`. */
|
|
892
|
+
runParserOverride(context: ParserOverrideContext): Promise<ParserOverrideResult>;
|
|
893
|
+
/** Bound {@link runRegisteredPreflightOverrideForTest} over `activation.preflight`. */
|
|
894
|
+
runPreflightOverride(context: PreflightOverrideContext): Promise<PreflightOverrideResult>;
|
|
895
|
+
/** Bound {@link runRegisteredRendererOverrideForTest} over `activation.renderers`. */
|
|
896
|
+
runRendererOverride(context: RendererOverrideContext): Promise<RendererOverrideResult>;
|
|
897
|
+
/** Bound {@link runRegisteredServiceOverrideForTest} over `activation.services`. */
|
|
898
|
+
runServiceOverride(context: ServiceOverrideContext): Promise<ServiceOverrideResult>;
|
|
899
|
+
/** Bound {@link runRegisteredSearchProviderForTest} over `activation.registrations`. */
|
|
900
|
+
runSearchProvider<Operation extends keyof SearchProviderOperationContexts>(options: {
|
|
901
|
+
provider: string;
|
|
902
|
+
operation: Operation;
|
|
903
|
+
context: SearchProviderOperationContexts[Operation];
|
|
904
|
+
}): Promise<SearchProviderOperationResults[Operation]>;
|
|
905
|
+
/** Bound {@link runRegisteredVectorStoreAdapterForTest} over `activation.registrations`. */
|
|
906
|
+
runVectorStoreAdapter<Operation extends keyof VectorStoreAdapterOperationContexts>(options: {
|
|
907
|
+
adapter: string;
|
|
908
|
+
operation: Operation;
|
|
909
|
+
context: VectorStoreAdapterOperationContexts[Operation];
|
|
910
|
+
}): Promise<VectorStoreAdapterOperationResults[Operation]>;
|
|
911
|
+
/** Bound {@link runRegisteredMigrationForTest} over `activation.registrations`. */
|
|
912
|
+
runMigration(options: RunRegisteredMigrationForTestOptions): Promise<unknown>;
|
|
913
|
+
/** Bound {@link runRegisteredImporterForTest} over the whole `activation`. */
|
|
914
|
+
runImporter(options: RunRegisteredImporterForTestOptions): Promise<CommandHandlerResult>;
|
|
915
|
+
/** Bound {@link runRegisteredExporterForTest} over the whole `activation`. */
|
|
916
|
+
runExporter(options: RunRegisteredExporterForTestOptions): Promise<CommandHandlerResult>;
|
|
917
|
+
/**
|
|
918
|
+
* Bound {@link deactivateExtensionForTest} — runs the real teardown engine for
|
|
919
|
+
* this harness's module, forwarding its resolved `name`/`layer`/`activation` so
|
|
920
|
+
* the skip-key matches and a never-initialized extension is not deactivated.
|
|
921
|
+
*/
|
|
922
|
+
deactivate(options?: {
|
|
923
|
+
deactivateTimeoutMs?: number;
|
|
924
|
+
}): Promise<ExtensionDeactivationResult>;
|
|
925
|
+
}
|
|
926
|
+
/**
|
|
927
|
+
* Activate one in-memory extension module and return a fluent
|
|
928
|
+
* {@link ExtensionTestHarness} that binds every SDK testing helper to the right
|
|
929
|
+
* sub-registry of the resulting activation.
|
|
930
|
+
*
|
|
931
|
+
* This is the ergonomic capstone over the standalone helpers: instead of
|
|
932
|
+
* `activateExtensionForTest(module)` followed by repeatedly threading
|
|
933
|
+
* `activation.registrations` / `activation.commands` / `activation.hooks` into
|
|
934
|
+
* each `assertRegistered*` / `runRegistered*` call, an author writes
|
|
935
|
+
* `const ext = await createExtensionTestHarness(module, { capabilities });` and
|
|
936
|
+
* then `ext.assertCommandContract(...)`, `await ext.runCommand(...)`,
|
|
937
|
+
* `await ext.deactivate()` — never needing to know pm's internal registry layout.
|
|
938
|
+
*
|
|
939
|
+
* `name` and `layer` are resolved exactly as {@link activateExtensionForTest}
|
|
940
|
+
* resolves them, and captured so {@link ExtensionTestHarness.deactivate} forwards
|
|
941
|
+
* a matching skip-key. Activation runs pm's real validation/activation engine, so
|
|
942
|
+
* every bound helper exercises real wiring and dispatch — not mocks.
|
|
943
|
+
*
|
|
944
|
+
* Fails fast: if the module does not activate cleanly (e.g. a registration is
|
|
945
|
+
* dropped because the manifest omits the required capability), this throws a
|
|
946
|
+
* descriptive error listing each failure instead of returning a harness whose
|
|
947
|
+
* registries are empty — which would otherwise surface later as the confusing
|
|
948
|
+
* `available: (none)` assertion error this helper exists to prevent. Tests that
|
|
949
|
+
* deliberately exercise a *failed* activation should call
|
|
950
|
+
* {@link activateExtensionForTest} directly and inspect `activation.failed`.
|
|
951
|
+
*/
|
|
952
|
+
export declare function createExtensionTestHarness(module: unknown, options?: ActivateExtensionForTestOptions): Promise<ExtensionTestHarness>;
|
package/dist/sdk/testing.js
CHANGED
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="9ca86b28-8f2c-5dd3-bdf0-85d3f60e6197")}catch(e){}}();
|
|
3
3
|
import { activateExtensions, deactivateExtensions, runAfterCommandHooks, runBeforeCommandHooks, runCommandHandler, runCommandOverride, runOnIndexHooks, runOnReadHooks, runOnWriteHooks, runParserOverride, runPreflightOverride, runRendererOverride, runServiceOverride, } from "../core/extensions/loader.js";
|
|
4
4
|
import { createDefaultExtensionGovernancePolicy } from "../core/extensions/extension-types.js";
|
|
5
5
|
import { getMigrationRuntimeDefinition, resolveRegisteredSearchProvider, resolveRegisteredVectorStoreAdapter, } from "../core/extensions/runtime-registrations.js";
|
|
6
6
|
import { collectUsedExtensionCapabilities } from "../core/extensions/capability-usage.js";
|
|
7
7
|
import { normalizeKnownExtensionCapability } from "../core/extensions/extension-capability-aliases.js";
|
|
8
|
+
import { describeExtensionBlueprint, lintExtensionBlueprint } from "./compose.js";
|
|
9
|
+
// `describeExtensionActivation` is the `describe` (enumerate-all) verb that
|
|
10
|
+
// pairs with the `assert*` (verify-one) and `run*` (invoke-one) helpers below.
|
|
11
|
+
// It lives in core (it walks the same registries the loader populates) and is
|
|
12
|
+
// surfaced here so package authors get the whole testing surface from the
|
|
13
|
+
// `@unbrained/pm-cli/sdk/testing` subpath.
|
|
14
|
+
export { describeExtensionActivation, } from "../core/extensions/activation-summary.js";
|
|
15
|
+
// `composeExtension`'s author-time companions: describe a blueprint's surface map
|
|
16
|
+
// and preflight it for capability drift / duplicate / empty-surface footguns
|
|
17
|
+
// without activating. Surfaced through the `@unbrained/pm-cli/sdk/testing` subpath
|
|
18
|
+
// so a package author gets the full author → describe → preflight → test loop here,
|
|
19
|
+
// alongside the assert*/run* helpers; `assertExtensionBlueprint` below is the
|
|
20
|
+
// throwing assertion that pairs with the non-throwing `lintExtensionBlueprint`.
|
|
21
|
+
export { describeExtensionBlueprint, lintExtensionBlueprint };
|
|
8
22
|
const HOOK_KIND_TO_REGISTRY_FIELD = {
|
|
9
23
|
before_command: "beforeCommand",
|
|
10
24
|
after_command: "afterCommand",
|
|
@@ -971,5 +985,168 @@ export function assertExtensionCapabilityUsage(activation, expectation) {
|
|
|
971
985
|
}
|
|
972
986
|
return { declared, used, unused };
|
|
973
987
|
}
|
|
988
|
+
/**
|
|
989
|
+
* Preflight a declarative {@link ExtensionBlueprint} in a test, throwing if it has
|
|
990
|
+
* any `error`-severity issue (today: capability the blueprint exercises but the
|
|
991
|
+
* declared set omits, which would fail activation with `extension_capability_missing`).
|
|
992
|
+
*
|
|
993
|
+
* The throwing counterpart to {@link lintExtensionBlueprint} and the `assert*`
|
|
994
|
+
* family member for declarative authoring: drop `assertExtensionBlueprint(blueprint)`
|
|
995
|
+
* into a package's `node:test`/Vitest suite to fail CI before the blueprint is
|
|
996
|
+
* ever activated. The full {@link ExtensionBlueprintLintResult} is returned on
|
|
997
|
+
* success so a test can still inspect advisory warnings (unused capability,
|
|
998
|
+
* duplicate command, empty surface) without failing on them.
|
|
999
|
+
*/
|
|
1000
|
+
export function assertExtensionBlueprint(blueprint, options = {}) {
|
|
1001
|
+
const result = lintExtensionBlueprint(blueprint, options);
|
|
1002
|
+
if (!result.ok) {
|
|
1003
|
+
const errors = result.findings.filter((finding) => finding.severity === "error");
|
|
1004
|
+
throw new Error(`Extension blueprint failed preflight with ${errors.length} ${errors.length === 1 ? "error" : "errors"}:\n` +
|
|
1005
|
+
errors.map((finding) => ` - [${finding.code}] ${finding.message}`).join("\n"));
|
|
1006
|
+
}
|
|
1007
|
+
return result;
|
|
1008
|
+
}
|
|
1009
|
+
/**
|
|
1010
|
+
* Activate one in-memory extension module and return a fluent
|
|
1011
|
+
* {@link ExtensionTestHarness} that binds every SDK testing helper to the right
|
|
1012
|
+
* sub-registry of the resulting activation.
|
|
1013
|
+
*
|
|
1014
|
+
* This is the ergonomic capstone over the standalone helpers: instead of
|
|
1015
|
+
* `activateExtensionForTest(module)` followed by repeatedly threading
|
|
1016
|
+
* `activation.registrations` / `activation.commands` / `activation.hooks` into
|
|
1017
|
+
* each `assertRegistered*` / `runRegistered*` call, an author writes
|
|
1018
|
+
* `const ext = await createExtensionTestHarness(module, { capabilities });` and
|
|
1019
|
+
* then `ext.assertCommandContract(...)`, `await ext.runCommand(...)`,
|
|
1020
|
+
* `await ext.deactivate()` — never needing to know pm's internal registry layout.
|
|
1021
|
+
*
|
|
1022
|
+
* `name` and `layer` are resolved exactly as {@link activateExtensionForTest}
|
|
1023
|
+
* resolves them, and captured so {@link ExtensionTestHarness.deactivate} forwards
|
|
1024
|
+
* a matching skip-key. Activation runs pm's real validation/activation engine, so
|
|
1025
|
+
* every bound helper exercises real wiring and dispatch — not mocks.
|
|
1026
|
+
*
|
|
1027
|
+
* Fails fast: if the module does not activate cleanly (e.g. a registration is
|
|
1028
|
+
* dropped because the manifest omits the required capability), this throws a
|
|
1029
|
+
* descriptive error listing each failure instead of returning a harness whose
|
|
1030
|
+
* registries are empty — which would otherwise surface later as the confusing
|
|
1031
|
+
* `available: (none)` assertion error this helper exists to prevent. Tests that
|
|
1032
|
+
* deliberately exercise a *failed* activation should call
|
|
1033
|
+
* {@link activateExtensionForTest} directly and inspect `activation.failed`.
|
|
1034
|
+
*/
|
|
1035
|
+
export async function createExtensionTestHarness(module, options = {}) {
|
|
1036
|
+
const manifest = readTestExtensionManifest(module);
|
|
1037
|
+
const name = resolveTestExtensionName(manifest, options.name);
|
|
1038
|
+
const layer = options.layer ?? "project";
|
|
1039
|
+
const activation = await activateExtensionForTest(module, options);
|
|
1040
|
+
if (activation.failed.length > 0) {
|
|
1041
|
+
const detail = activation.failed
|
|
1042
|
+
.map((failure) => {
|
|
1043
|
+
const missingCapability = failure.trace?.missing_capability;
|
|
1044
|
+
const reason = missingCapability ? `${failure.error}; missing capability "${missingCapability}"` : failure.error;
|
|
1045
|
+
return `${failure.layer}:${failure.name} (${reason})`;
|
|
1046
|
+
})
|
|
1047
|
+
.join(", ");
|
|
1048
|
+
throw new Error(`createExtensionTestHarness could not activate the extension cleanly: ${detail}. ` +
|
|
1049
|
+
"Declare the required capability in the manifest (or pass it via options.capabilities), " +
|
|
1050
|
+
"or use activateExtensionForTest directly to inspect a failed activation.");
|
|
1051
|
+
}
|
|
1052
|
+
return {
|
|
1053
|
+
module,
|
|
1054
|
+
name,
|
|
1055
|
+
layer,
|
|
1056
|
+
activation,
|
|
1057
|
+
assertCommandContract(expectation) {
|
|
1058
|
+
return assertRegisteredCommandContract(activation.registrations, expectation);
|
|
1059
|
+
},
|
|
1060
|
+
assertFlags(expectation) {
|
|
1061
|
+
return assertRegisteredFlags(activation.registrations, expectation);
|
|
1062
|
+
},
|
|
1063
|
+
assertItemField(expectation) {
|
|
1064
|
+
return assertRegisteredItemField(activation.registrations, expectation);
|
|
1065
|
+
},
|
|
1066
|
+
assertItemType(expectation) {
|
|
1067
|
+
return assertRegisteredItemType(activation.registrations, expectation);
|
|
1068
|
+
},
|
|
1069
|
+
assertHook(expectation) {
|
|
1070
|
+
return assertRegisteredHook(activation.hooks, expectation);
|
|
1071
|
+
},
|
|
1072
|
+
assertCommandOverride(expectation) {
|
|
1073
|
+
return assertRegisteredCommandOverride(activation.commands, expectation);
|
|
1074
|
+
},
|
|
1075
|
+
assertParserOverride(expectation) {
|
|
1076
|
+
return assertRegisteredParserOverride(activation.parsers, expectation);
|
|
1077
|
+
},
|
|
1078
|
+
assertPreflightOverride(expectation) {
|
|
1079
|
+
return assertRegisteredPreflightOverride(activation.preflight, expectation);
|
|
1080
|
+
},
|
|
1081
|
+
assertRendererOverride(expectation) {
|
|
1082
|
+
return assertRegisteredRendererOverride(activation.renderers, expectation);
|
|
1083
|
+
},
|
|
1084
|
+
assertServiceOverride(expectation) {
|
|
1085
|
+
return assertRegisteredServiceOverride(activation.services, expectation);
|
|
1086
|
+
},
|
|
1087
|
+
assertSearchProvider(expectation) {
|
|
1088
|
+
return assertRegisteredSearchProvider(activation.registrations, expectation);
|
|
1089
|
+
},
|
|
1090
|
+
assertVectorStoreAdapter(expectation) {
|
|
1091
|
+
return assertRegisteredVectorStoreAdapter(activation.registrations, expectation);
|
|
1092
|
+
},
|
|
1093
|
+
assertImporter(expectation) {
|
|
1094
|
+
return assertRegisteredImporter(activation.registrations, expectation);
|
|
1095
|
+
},
|
|
1096
|
+
assertExporter(expectation) {
|
|
1097
|
+
return assertRegisteredExporter(activation.registrations, expectation);
|
|
1098
|
+
},
|
|
1099
|
+
assertMigration(expectation) {
|
|
1100
|
+
return assertRegisteredMigration(activation.registrations, expectation);
|
|
1101
|
+
},
|
|
1102
|
+
assertCapabilityUsage(expectation) {
|
|
1103
|
+
return assertExtensionCapabilityUsage(activation, expectation);
|
|
1104
|
+
},
|
|
1105
|
+
runCommand(runOptions) {
|
|
1106
|
+
return runRegisteredCommandForTest(activation.commands, runOptions);
|
|
1107
|
+
},
|
|
1108
|
+
runHook(runOptions) {
|
|
1109
|
+
return runRegisteredHookForTest(activation.hooks, runOptions);
|
|
1110
|
+
},
|
|
1111
|
+
runCommandOverride(context) {
|
|
1112
|
+
return runRegisteredCommandOverrideForTest(activation.commands, context);
|
|
1113
|
+
},
|
|
1114
|
+
runParserOverride(context) {
|
|
1115
|
+
return runRegisteredParserOverrideForTest(activation.parsers, context);
|
|
1116
|
+
},
|
|
1117
|
+
runPreflightOverride(context) {
|
|
1118
|
+
return runRegisteredPreflightOverrideForTest(activation.preflight, context);
|
|
1119
|
+
},
|
|
1120
|
+
runRendererOverride(context) {
|
|
1121
|
+
return runRegisteredRendererOverrideForTest(activation.renderers, context);
|
|
1122
|
+
},
|
|
1123
|
+
runServiceOverride(context) {
|
|
1124
|
+
return runRegisteredServiceOverrideForTest(activation.services, context);
|
|
1125
|
+
},
|
|
1126
|
+
runSearchProvider(runOptions) {
|
|
1127
|
+
return runRegisteredSearchProviderForTest(activation.registrations, runOptions);
|
|
1128
|
+
},
|
|
1129
|
+
runVectorStoreAdapter(runOptions) {
|
|
1130
|
+
return runRegisteredVectorStoreAdapterForTest(activation.registrations, runOptions);
|
|
1131
|
+
},
|
|
1132
|
+
runMigration(runOptions) {
|
|
1133
|
+
return runRegisteredMigrationForTest(activation.registrations, runOptions);
|
|
1134
|
+
},
|
|
1135
|
+
runImporter(runOptions) {
|
|
1136
|
+
return runRegisteredImporterForTest(activation, runOptions);
|
|
1137
|
+
},
|
|
1138
|
+
runExporter(runOptions) {
|
|
1139
|
+
return runRegisteredExporterForTest(activation, runOptions);
|
|
1140
|
+
},
|
|
1141
|
+
deactivate(deactivateOptions = {}) {
|
|
1142
|
+
return deactivateExtensionForTest(module, {
|
|
1143
|
+
name,
|
|
1144
|
+
layer,
|
|
1145
|
+
activation,
|
|
1146
|
+
deactivateTimeoutMs: deactivateOptions.deactivateTimeoutMs,
|
|
1147
|
+
});
|
|
1148
|
+
},
|
|
1149
|
+
};
|
|
1150
|
+
}
|
|
974
1151
|
//# sourceMappingURL=testing.js.map
|
|
975
|
-
//# debugId=
|
|
1152
|
+
//# debugId=9ca86b28-8f2c-5dd3-bdf0-85d3f60e6197
|