@pikku/cli 0.12.125 → 0.12.127
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 +231 -0
- package/console-app/assets/{abnfDiagram-N423BO3Z-B2suyn6i.js → abnfDiagram-N423BO3Z-BY2LM8wi.js} +1 -1
- package/console-app/assets/architecture-TIHT7OUA-CWwmvxZF.js +1 -0
- package/console-app/assets/{architectureDiagram-T3A2C74G-BQ5Dfvpo.js → architectureDiagram-T3A2C74G-CeqjY3Kw.js} +1 -1
- package/console-app/assets/{blockDiagram-VBNYF7ZC-D4pVRDiF.js → blockDiagram-VBNYF7ZC-BW5174xj.js} +1 -1
- package/console-app/assets/{c4Diagram-5PPSVZJV-Da04jGpq.js → c4Diagram-5PPSVZJV-B7zXAFL0.js} +1 -1
- package/console-app/assets/channel-pOkwZ_Ot.js +1 -0
- package/console-app/assets/{chunk-2GRJ4B5K-CwODIPP4.js → chunk-2GRJ4B5K-BfRYzQ4t.js} +1 -1
- package/console-app/assets/{chunk-4I5QYGJK-Bep4akjR.js → chunk-4I5QYGJK-DBA7-Nu4.js} +1 -1
- package/console-app/assets/{chunk-5RXB4S5H-CGyCRU9L.js → chunk-5RXB4S5H-D03lNzwi.js} +1 -1
- package/console-app/assets/{chunk-6Q2QTUOP-D0IK0SMT.js → chunk-6Q2QTUOP-DloGRHJZ.js} +1 -1
- package/console-app/assets/{chunk-7Z6QIM7H-D12vS1jX.js → chunk-7Z6QIM7H-DH3uHtl2.js} +1 -1
- package/console-app/assets/{chunk-GF5L2VYU-kOLwTzIA.js → chunk-GF5L2VYU-Cu252lza.js} +1 -1
- package/console-app/assets/{chunk-I66GZJ75-Cb2nDoa3.js → chunk-I66GZJ75-DH54FcuO.js} +1 -1
- package/console-app/assets/{chunk-JQJVKLGR-B3a_ctfQ.js → chunk-JQJVKLGR-CeFuTL-V.js} +1 -1
- package/console-app/assets/{chunk-KBJHAD2P-DeP2Lqwp.js → chunk-KBJHAD2P-B-prFo0-.js} +1 -1
- package/console-app/assets/{chunk-NSK5VX7P-BO8vlGrO.js → chunk-NSK5VX7P-C10iA4GS.js} +1 -1
- package/console-app/assets/{chunk-QR6OTTB3-sX5V0Lok.js → chunk-QR6OTTB3-Cd8apAsA.js} +1 -1
- package/console-app/assets/{chunk-RYQCIY6F-DoCObEhk.js → chunk-RYQCIY6F-rfPUp2Fj.js} +1 -1
- package/console-app/assets/{chunk-UBXNYLIW-BndMXU5r.js → chunk-UBXNYLIW-D25wqJBc.js} +1 -1
- package/console-app/assets/{chunk-W5SLKNZC--VrZN8EC.js → chunk-W5SLKNZC-CJvxkxuK.js} +1 -1
- package/console-app/assets/{chunk-WRU74C26-DdS0mzXO.js → chunk-WRU74C26-B9Wju92P.js} +1 -1
- package/console-app/assets/chunk-XXDRQBXY-BU_UP6f5.js +1 -0
- package/console-app/assets/classDiagram-JCYQIIEL-CLBKUuxj.js +1 -0
- package/console-app/assets/classDiagram-v2-OCEON4UE-CLBKUuxj.js +1 -0
- package/console-app/assets/{cose-bilkent-JH36ORCC-C5EnHkFn.js → cose-bilkent-JH36ORCC-CwA1VCP5.js} +1 -1
- package/console-app/assets/{cynefin-VYW2F7L2-9irdkTt4.js → cynefin-VYW2F7L2-C_qsD7eR.js} +1 -1
- package/console-app/assets/{cynefinDiagram-MW4NZA55-DY19660c.js → cynefinDiagram-MW4NZA55-CkSLreFW.js} +1 -1
- package/console-app/assets/{dagre-VZM6K2ZE-BYFZSaSb.js → dagre-VZM6K2ZE-0ssqLoHs.js} +1 -1
- package/console-app/assets/{dagre-nXgDYqvf.js → dagre-WqgBlKb7.js} +1 -1
- package/console-app/assets/{diagram-7IWD3JNH-oDftiTp1.js → diagram-7IWD3JNH-DmRL3lmL.js} +1 -1
- package/console-app/assets/{diagram-B4RE2ZJO-Cbj-pPbH.js → diagram-B4RE2ZJO-Bsr9wG4I.js} +1 -1
- package/console-app/assets/{diagram-LBJQPF4R-Ch53oSKw.js → diagram-LBJQPF4R-DdMw1FSY.js} +1 -1
- package/console-app/assets/{diagram-Q27KOJAE-DA7K814v.js → diagram-Q27KOJAE-TPx5TB2B.js} +1 -1
- package/console-app/assets/{diagram-UB23O5K3-B-_C-ctS.js → diagram-UB23O5K3-e_1zSlZR.js} +1 -1
- package/console-app/assets/{ebnfDiagram-BXEA7PRR-DsOdsKXy.js → ebnfDiagram-BXEA7PRR-BACajh2b.js} +1 -1
- package/console-app/assets/{erDiagram-JOGREHBK-XB1mP5_A.js → erDiagram-JOGREHBK-CojomKqL.js} +1 -1
- package/console-app/assets/eventmodeling-45OFAUF4-DkN2KCrT.js +1 -0
- package/console-app/assets/flowDiagram-UKHOOZJN-DL0M9lBc.js +1 -0
- package/console-app/assets/{ganttDiagram-PKOTCBZU-knk0XSHi.js → ganttDiagram-PKOTCBZU-yoOX4Xj2.js} +1 -1
- package/console-app/assets/{gitGraph-TEB2WS4Q-COJnK2tM.js → gitGraph-TEB2WS4Q-BcUY5hIc.js} +1 -1
- package/console-app/assets/{gitGraphDiagram-DS77QQ5N-sF0v605q.js → gitGraphDiagram-DS77QQ5N-BtuIPjuB.js} +1 -1
- package/console-app/assets/{index-DMnbsgzs.js → index-CzWW052c.js} +151 -151
- package/console-app/assets/{info-DKCQHKI2-Cbatr0w6.js → info-DKCQHKI2-B-iR9PUz.js} +1 -1
- package/console-app/assets/{infoDiagram-6WML65LV-93TFPCu2.js → infoDiagram-6WML65LV-CuXKIFH2.js} +1 -1
- package/console-app/assets/{ishikawaDiagram-WSZJBQD7-BBR8_Qms.js → ishikawaDiagram-WSZJBQD7-CSueMFD6.js} +1 -1
- package/console-app/assets/{journeyDiagram-NVQOT4AX-zG55yDoc.js → journeyDiagram-NVQOT4AX-kvnKStZp.js} +1 -1
- package/console-app/assets/{kanban-definition-27J2QSJJ-DonGcEAY.js → kanban-definition-27J2QSJJ-CGGDEz30.js} +1 -1
- package/console-app/assets/{line-D1WdVm1S.js → line-mtMM5-xO.js} +1 -1
- package/console-app/assets/{linear-D2GQL4Cm.js → linear-CLSje0O_.js} +1 -1
- package/console-app/assets/{mermaid-parser.core-b4yKyO56.js → mermaid-parser.core-Cx6yvn3j.js} +3 -3
- package/console-app/assets/{mermaid.core-Cwfec1gr.js → mermaid.core-BebGyklS.js} +4 -4
- package/console-app/assets/{mindmap-definition-FAOFIHXS-D0G4yKgw.js → mindmap-definition-FAOFIHXS-C2_WUUJ9.js} +1 -1
- package/console-app/assets/{packet-7NZHBO7P-DDa4HL2T.js → packet-7NZHBO7P-Dh5yNCA8.js} +1 -1
- package/console-app/assets/{pegDiagram-VL7TDLO6-fPdN5VZs.js → pegDiagram-VL7TDLO6-XgUxesi8.js} +1 -1
- package/console-app/assets/{pie-RZYD4A2V-DRHURUqo.js → pie-RZYD4A2V-D2x2RAXI.js} +1 -1
- package/console-app/assets/{pieDiagram-7S7Q4E2Y-DMYn8ga_.js → pieDiagram-7S7Q4E2Y-Bbor0KbG.js} +1 -1
- package/console-app/assets/{quadrantDiagram-CIZ2JOQS-C190OamC.js → quadrantDiagram-CIZ2JOQS-DZmnMHpM.js} +1 -1
- package/console-app/assets/{radar-I7S5WNFK-Djvqzz9A.js → radar-I7S5WNFK-CPeriDtN.js} +1 -1
- package/console-app/assets/{railroad-3IZDKUUU-C9YvFeFq.js → railroad-3IZDKUUU-2iKAyaie.js} +1 -1
- package/console-app/assets/railroad-abnf-AHOZXSZD-D26xz4MM.js +1 -0
- package/console-app/assets/railroad-ebnf-EBAXGLYW-CCAiMPWc.js +1 -0
- package/console-app/assets/railroad-peg-LSFZ7HO6-BA1zcisq.js +1 -0
- package/console-app/assets/{railroadDiagram-AXF67PYL-IRFg1VrU.js → railroadDiagram-AXF67PYL-DVEqCXoo.js} +1 -1
- package/console-app/assets/{requirementDiagram-LRYGKXZP-L-7ubbcT.js → requirementDiagram-LRYGKXZP-CSgSNL8p.js} +1 -1
- package/console-app/assets/{sankeyDiagram-W5VNT64P-DBttV6Gt.js → sankeyDiagram-W5VNT64P-CFk11odN.js} +1 -1
- package/console-app/assets/{sequenceDiagram-SI44F4Z6-Bg15oKAB.js → sequenceDiagram-SI44F4Z6-Cb5u6FsJ.js} +1 -1
- package/console-app/assets/{src-DUC7tLWb.js → src-LceHEY_Q.js} +1 -1
- package/console-app/assets/{stateDiagram-OKZ733FA-PWl0XGs5.js → stateDiagram-OKZ733FA-DM1jWlkU.js} +1 -1
- package/console-app/assets/stateDiagram-v2-UEYNNEHI-COVnPYic.js +1 -0
- package/console-app/assets/{swimlanes-SLNWSIFB-CyXEtGBV.js → swimlanes-SLNWSIFB-DD6MchlE.js} +1 -1
- package/console-app/assets/swimlanesDiagram-ULZ7WXOC-B5q8iRCQ.js +8 -0
- package/console-app/assets/{timeline-definition-Z64GVDOM-BLA-DhBt.js → timeline-definition-Z64GVDOM-zu5cNnVv.js} +1 -1
- package/console-app/assets/{treeView-QDETBFTQ-Bfnmn2UY.js → treeView-QDETBFTQ-D_4IbvCG.js} +1 -1
- package/console-app/assets/{treemap-6X3UGDF4-DTA0wveO.js → treemap-6X3UGDF4-DNc6bjUc.js} +1 -1
- package/console-app/assets/{vennDiagram-T6HMQDX7-CLXYZln0.js → vennDiagram-T6HMQDX7-DfqoG28f.js} +1 -1
- package/console-app/assets/{wardley-OPB4EBWU-zwxqisG0.js → wardley-OPB4EBWU-BqpI2Lx-.js} +1 -1
- package/console-app/assets/{wardleyDiagram-T6FBY63Y-hKtKvNlv.js → wardleyDiagram-T6FBY63Y-CLIZSvNi.js} +1 -1
- package/console-app/assets/{xychartDiagram-ELKLHX3M-BGf8p4bo.js → xychartDiagram-ELKLHX3M-Cni-XXa6.js} +1 -1
- package/console-app/index.html +1 -1
- package/dist/.pikku/addon/index.d.ts +1 -1
- package/dist/.pikku/addon/index.js +1 -1
- package/dist/.pikku/addon/pikku-addon-types.gen.d.ts +1 -1
- package/dist/.pikku/addon/pikku-addon-types.gen.js +1 -1
- package/dist/.pikku/agent/index.d.ts +1 -1
- package/dist/.pikku/agent/index.js +1 -1
- package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +1 -1
- package/dist/.pikku/agent/pikku-model-aliases.gen.js +1 -1
- package/dist/.pikku/auth/index.d.ts +1 -1
- package/dist/.pikku/auth/index.js +1 -1
- package/dist/.pikku/auth/pikku-auth-types.gen.d.ts +1 -1
- package/dist/.pikku/auth/pikku-auth-types.gen.js +1 -1
- package/dist/.pikku/channel/index.d.ts +1 -1
- package/dist/.pikku/channel/index.js +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
- package/dist/.pikku/cli/index.d.ts +1 -1
- package/dist/.pikku/cli/index.js +1 -1
- package/dist/.pikku/cli/pikku-cli-channel.js +26 -1
- package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.json +103 -0
- package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +116 -0
- package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
- package/dist/.pikku/error/index.d.ts +1 -1
- package/dist/.pikku/error/index.js +1 -1
- package/dist/.pikku/error/pikku-error-types.gen.d.ts +1 -1
- package/dist/.pikku/error/pikku-error-types.gen.js +1 -1
- package/dist/.pikku/function/index.d.ts +1 -1
- package/dist/.pikku/function/index.js +1 -1
- package/dist/.pikku/function/pikku-function-types.gen.d.ts +1 -1
- package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.json +114 -21
- package/dist/.pikku/function/pikku-functions.gen.js +1 -1
- package/dist/.pikku/gateway/index.d.ts +1 -1
- package/dist/.pikku/gateway/index.js +1 -1
- package/dist/.pikku/gateway/pikku-gateway-types.gen.d.ts +1 -1
- package/dist/.pikku/gateway/pikku-gateway-types.gen.js +1 -1
- package/dist/.pikku/http/index.d.ts +1 -1
- package/dist/.pikku/http/index.js +1 -1
- package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
- package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
- package/dist/.pikku/mcp/index.d.ts +1 -1
- package/dist/.pikku/mcp/index.js +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
- package/dist/.pikku/middleware/index.d.ts +1 -1
- package/dist/.pikku/middleware/index.js +1 -1
- package/dist/.pikku/middleware/pikku-middleware-types.gen.d.ts +1 -1
- package/dist/.pikku/middleware/pikku-middleware-types.gen.js +1 -1
- package/dist/.pikku/pikku-bootstrap-scenarios.gen.d.ts +1 -1
- package/dist/.pikku/pikku-bootstrap-scenarios.gen.js +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
- package/dist/.pikku/pikku-services.gen.d.ts +1 -1
- package/dist/.pikku/queue/index.d.ts +1 -1
- package/dist/.pikku/queue/index.js +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +1 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +5 -0
- package/dist/.pikku/scenarios/index.d.ts +1 -1
- package/dist/.pikku/scenarios/index.js +1 -1
- package/dist/.pikku/scenarios/pikku-personas.gen.js +1 -1
- package/dist/.pikku/scenarios/pikku-scenario-functions-meta.gen.js +1 -1
- package/dist/.pikku/scenarios/pikku-scenario-functions.gen.d.ts +1 -1
- package/dist/.pikku/scenarios/pikku-scenario-types.gen.d.ts +1 -1
- package/dist/.pikku/scenarios/pikku-scenario-wirings-meta.gen.js +1 -1
- package/dist/.pikku/scenarios/pikku-scenario-wirings.gen.d.ts +1 -1
- package/dist/.pikku/scenarios/schemas/register.gen.d.ts +1 -1
- package/dist/.pikku/scenarios/schemas/register.gen.js +1 -1
- package/dist/.pikku/scheduler/index.d.ts +1 -1
- package/dist/.pikku/scheduler/index.js +1 -1
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
- package/dist/.pikku/schemas/register.gen.js +19 -1
- package/dist/.pikku/schemas/schemas/FabricFindingsClearInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricFindingsClearOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricFindingsFlushInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricFindingsFlushOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricFindingsListInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricFindingsListOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricReportInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricReportOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricSecretsListInput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/FabricSecretsRotateInput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/FabricSecretsSetInput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/FabricVariablesGetInput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/FabricVariablesSetInput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PersonaSecretInput.schema.json +1 -0
- package/dist/.pikku/scopes/index.d.ts +1 -1
- package/dist/.pikku/scopes/index.js +1 -1
- package/dist/.pikku/scopes/pikku-personas.gen.js +1 -1
- package/dist/.pikku/scopes/pikku-roles.gen.d.ts +1 -1
- package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
- package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
- package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +1 -1
- package/dist/.pikku/secrets/index.d.ts +1 -1
- package/dist/.pikku/secrets/index.js +1 -1
- package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
- package/dist/.pikku/services/pikku-meta-service.gen.d.ts +1 -1
- package/dist/.pikku/services/pikku-meta-service.gen.js +1 -1
- package/dist/.pikku/setup/index.d.ts +1 -1
- package/dist/.pikku/setup/index.js +1 -1
- package/dist/.pikku/setup/pikku-setup-types.gen.d.ts +1 -1
- package/dist/.pikku/setup/pikku-setup-types.gen.js +1 -1
- package/dist/.pikku/trigger/index.d.ts +1 -1
- package/dist/.pikku/trigger/index.js +1 -1
- package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
- package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
- package/dist/.pikku/variables/index.d.ts +1 -1
- package/dist/.pikku/variables/index.js +1 -1
- package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
- package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
- package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
- package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
- package/dist/.pikku/workflow/index.d.ts +1 -1
- package/dist/.pikku/workflow/index.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
- package/dist/bin/pikku-bin.mjs +2 -2
- package/dist/src/cli.wiring.js +6 -1
- package/dist/src/deploy/bundler/bun-bundler.js +12 -5
- package/dist/src/fabric/fabric-commands.d.ts +153 -15
- package/dist/src/fabric/fabric-commands.js +65 -0
- package/dist/src/fabric/functions/deploy.function.js +12 -2
- package/dist/src/fabric/functions/findings-clear.function.d.ts +12 -0
- package/dist/src/fabric/functions/findings-clear.function.js +17 -0
- package/dist/src/fabric/functions/findings-flush.function.d.ts +33 -0
- package/dist/src/fabric/functions/findings-flush.function.js +36 -0
- package/dist/src/fabric/functions/findings-list.function.d.ts +55 -0
- package/dist/src/fabric/functions/findings-list.function.js +52 -0
- package/dist/src/fabric/functions/report.function.d.ts +121 -0
- package/dist/src/fabric/functions/report.function.js +84 -0
- package/dist/src/fabric/functions/secrets-list.function.d.ts +4 -4
- package/dist/src/fabric/functions/secrets-list.function.js +4 -4
- package/dist/src/fabric/functions/secrets-rotate.function.d.ts +4 -4
- package/dist/src/fabric/functions/secrets-rotate.function.js +8 -5
- package/dist/src/fabric/functions/secrets-set.function.d.ts +4 -4
- package/dist/src/fabric/functions/secrets-set.function.js +4 -4
- package/dist/src/fabric/functions/validate.function.js +49 -24
- package/dist/src/fabric/functions/variables-get.function.d.ts +4 -4
- package/dist/src/fabric/functions/variables-get.function.js +4 -4
- package/dist/src/fabric/functions/variables-set.function.d.ts +4 -4
- package/dist/src/fabric/functions/variables-set.function.js +4 -4
- package/dist/src/fabric/lib/blank-comments.d.ts +21 -0
- package/dist/src/fabric/lib/blank-comments.js +71 -0
- package/dist/src/fabric/lib/blank-scenario-meta.d.ts +1 -0
- package/dist/src/fabric/lib/blank-scenario-meta.js +110 -0
- package/dist/src/fabric/lib/deployment.d.ts +26 -0
- package/dist/src/fabric/lib/deployment.js +35 -0
- package/dist/src/fabric/lib/finding-spool.d.ts +56 -0
- package/dist/src/fabric/lib/finding-spool.js +105 -0
- package/dist/src/fabric/lib/finding.d.ts +92 -0
- package/dist/src/fabric/lib/finding.js +156 -0
- package/dist/src/fabric/lib/report-environment.d.ts +53 -0
- package/dist/src/fabric/lib/report-environment.js +119 -0
- package/dist/src/fabric/lib/stage.d.ts +19 -3
- package/dist/src/fabric/lib/stage.js +29 -6
- package/dist/src/functions/commands/db-reset.js +6 -2
- package/dist/src/functions/commands/dev.js +5 -1
- package/dist/src/functions/commands/environment.d.ts +5 -0
- package/dist/src/functions/commands/persona.d.ts +18 -0
- package/dist/src/functions/commands/persona.js +42 -2
- package/dist/src/functions/commands/scenario-browser.d.ts +13 -5
- package/dist/src/functions/commands/scenario.js +1 -0
- package/dist/src/functions/db/check-enums.d.ts +38 -0
- package/dist/src/functions/db/check-enums.js +103 -0
- package/dist/src/functions/db/db-codegen.js +15 -0
- package/dist/src/functions/db/postgres/postgres-introspector.d.ts +14 -0
- package/dist/src/functions/db/postgres/postgres-introspector.js +48 -0
- package/dist/src/functions/db/sqlite/sqlite-introspector.d.ts +3 -4
- package/dist/src/functions/db/sqlite/sqlite-introspector.js +5 -17
- package/dist/src/functions/validate/auth-plugin-checks.d.ts +1 -1
- package/dist/src/functions/validate/auth-plugin-checks.js +8 -5
- package/dist/src/functions/validate/persona-checks.js +8 -6
- package/dist/src/functions/wirings/user-admin/pikku-command-user-admin-functions.js +10 -5
- package/dist/src/functions/wirings/user-admin/serialize-user-admin-functions.d.ts +1 -1
- package/dist/src/functions/wirings/user-admin/serialize-user-admin-functions.js +3 -3
- package/dist/src/functions/wirings/virtual-user/serialize-virtual-user-functions.d.ts +9 -6
- package/dist/src/functions/wirings/virtual-user/serialize-virtual-user-functions.js +51 -27
- package/dist/src/server/actor-sign-in.d.ts +24 -1
- package/dist/src/server/actor-sign-in.js +45 -2
- package/dist/src/services.js +9 -0
- package/dist/src/utils/persona-credentials.d.ts +23 -2
- package/dist/src/utils/persona-credentials.js +55 -2
- package/dist/src/utils/pikku-cli-config.d.ts +4 -4
- package/dist/src/utils/pikku-cli-config.js +30 -10
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/snippets.json +1 -1
- package/surface.json +102 -52
- package/console-app/assets/architecture-TIHT7OUA-DmG0bXDT.js +0 -1
- package/console-app/assets/channel-BgCT5gon.js +0 -1
- package/console-app/assets/chunk-XXDRQBXY-EP2C9tTO.js +0 -1
- package/console-app/assets/classDiagram-JCYQIIEL-D9wGqB4J.js +0 -1
- package/console-app/assets/classDiagram-v2-OCEON4UE-D9wGqB4J.js +0 -1
- package/console-app/assets/eventmodeling-45OFAUF4-NKFCZ8Fj.js +0 -1
- package/console-app/assets/flowDiagram-UKHOOZJN-BpdPkmum.js +0 -1
- package/console-app/assets/railroad-abnf-AHOZXSZD-B3CYVW4p.js +0 -1
- package/console-app/assets/railroad-ebnf-EBAXGLYW-DrZ2yF62.js +0 -1
- package/console-app/assets/railroad-peg-LSFZ7HO6-CWAmMyxd.js +0 -1
- package/console-app/assets/stateDiagram-v2-UEYNNEHI-Celbgz4u.js +0 -1
- package/console-app/assets/swimlanesDiagram-ULZ7WXOC-zxpNaB4U.js +0 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,234 @@
|
|
|
1
|
+
## 0.12.127
|
|
2
|
+
|
|
3
|
+
### Patch Changes
|
|
4
|
+
|
|
5
|
+
- 77ae071: `pikku fabric report` sends a finding — something about pikku that cost an agent time — to fabric. It needs a login but no linked project: a finding is about the framework rather than about anyone's project, and the reports worth having most come from checkouts that have nothing to name.
|
|
6
|
+
|
|
7
|
+
The finding can be given as JSON on stdin (`--stdin`) instead of as flags. Half the fields are prose, and prose carries apostrophes, quotes, backticks and newlines — every one a shell metacharacter before it is a character in a sentence — so an error message pasted into `--error` used to break the command at its first newline. The same schema validates either path.
|
|
8
|
+
|
|
9
|
+
Nothing is written to the repo, so nothing goes stale on an abandoned branch, and the terminal prints exactly what left the machine. Reporting never fails a build.
|
|
10
|
+
|
|
11
|
+
A finding that cannot be sent is held in `~/.fabric/findings` rather than dropped: logged out, unlinked, or fabric unreachable are the states a finding is most likely to be describing, and a scaffold that never got far enough to log in is exactly the thing worth hearing about. The queue drains on the next report that succeeds, keeps the project each finding was filed against, and is bounded at 100. `pikku fabric findings list`, `flush` and `clear` inspect and control it.
|
|
12
|
+
|
|
13
|
+
The resolved `@pikku/*` versions are read off the installed tree rather than out of `package.json`, since a range says nothing about what actually ran. A skewed tree and a package resolving through a workspace or link are both flagged, because either is a reason to read the finding differently.
|
|
14
|
+
|
|
15
|
+
The `pikku-feature` skill now tells an agent when to file one: work around it first, investigate only when there is no workaround, report at the depth already reached, and never patch pikku itself from inside a project that is using it.
|
|
16
|
+
|
|
17
|
+
- 32d1280: Prefix the better-auth plugin factories with `pikku`: `pikkuActor`, `pikkuBan`,
|
|
18
|
+
`pikkuFabric`, `pikkuDelegatedAuth` and `pikkuCredentialOAuth`.
|
|
19
|
+
|
|
20
|
+
A `betterAuth({ plugins: [...] })` array mixes this package's plugins with
|
|
21
|
+
better-auth's own, and until now nothing at the call site told them apart —
|
|
22
|
+
`plugins: [actor(...), ban(), fabric(...), organization()]` reads as four
|
|
23
|
+
plugins from one place when only the last is better-auth's. The prefix says
|
|
24
|
+
which package a plugin came from where it is actually wired.
|
|
25
|
+
|
|
26
|
+
The old names are still exported as deprecated aliases bound to the same
|
|
27
|
+
functions, so no import has to change. Nothing about the plugins themselves
|
|
28
|
+
moved: the `id` each registers under — `pikku-ban`, `actor`, `fabric`,
|
|
29
|
+
`delegated-auth`, `credential-oauth` — is unchanged, so no deployed database or
|
|
30
|
+
session is affected.
|
|
31
|
+
|
|
32
|
+
The pieces that read a plugin's _export_ name rather than its id accept both:
|
|
33
|
+
`PLUGIN_REGISTRY` is keyed under the prefixed and the bare name, and the
|
|
34
|
+
`pikku validate` ban/actor checks and the `scaffold.userAdmin` ban check count
|
|
35
|
+
either spelling as wired. Their messages now point at the new names.
|
|
36
|
+
|
|
37
|
+
- a0ed1e8: Derive a persona's session and operator paths from the mount its sign-in path names.
|
|
38
|
+
|
|
39
|
+
Both `sessionRoles()` and the Fabric operator handshake asked for a fixed
|
|
40
|
+
`/auth/…` no matter where auth was mounted. An app serving better-auth under
|
|
41
|
+
`/api/auth` while keeping its RPCs at the root cannot put the mount in
|
|
42
|
+
`apiUrl`, so it moves `signInPath` — and the other two stayed behind.
|
|
43
|
+
|
|
44
|
+
For the session read that meant a 404, which returns `null`, which means "this
|
|
45
|
+
stage does not report roles": every `pikku persona run` on such an app warned
|
|
46
|
+
"running unverified" and lost the one thing that tells a permissions finding
|
|
47
|
+
from seed drift. For the operator handshake it was worse — `HttpPersona`
|
|
48
|
+
reused the _actor_ path verbatim, so an operator token was posted to the actor
|
|
49
|
+
endpoint and came back as a validation error about a missing email and secret,
|
|
50
|
+
which reads like a broken persona rather than a wrong URL. The browser provider
|
|
51
|
+
had the same fixed default.
|
|
52
|
+
|
|
53
|
+
All three now follow `signInPath`, and `environments[].sessionPath` in
|
|
54
|
+
pikku.config.json overrides the session read for a stage that reports it
|
|
55
|
+
elsewhere.
|
|
56
|
+
|
|
57
|
+
- Updated dependencies [77ae071]
|
|
58
|
+
- Updated dependencies [32d1280]
|
|
59
|
+
- Updated dependencies [a0ed1e8]
|
|
60
|
+
- @pikku/skills@0.12.21
|
|
61
|
+
- @pikku/better-auth@0.12.34
|
|
62
|
+
- @pikku/inspector@0.12.69
|
|
63
|
+
- @pikku/core@0.12.100
|
|
64
|
+
- @pikku/playwright@0.12.81
|
|
65
|
+
|
|
66
|
+
## 0.12.126
|
|
67
|
+
|
|
68
|
+
### Patch Changes
|
|
69
|
+
|
|
70
|
+
- ee9da9e: A Postgres `CHECK (col IN (…))` constraint now generates a string-literal union, the way a native enum and the SQLite equivalent already did. SQL comments inside the value list are ignored rather than corrupting the union parsed out of it.
|
|
71
|
+
- 7a15c9c: An actor credential is one persona's, not everyone's
|
|
72
|
+
|
|
73
|
+
`SCENARIO_ACTOR_SECRET` was a skeleton key. Anyone holding it could post any
|
|
74
|
+
`actor: true` address to `/auth/sign-in/actor` and get that persona's session —
|
|
75
|
+
including the `admin` persona, which provisioning grants real admin. The browser
|
|
76
|
+
switcher held it too, baked into the dev bundle as `VITE_SCENARIO_ACTOR_SECRET`,
|
|
77
|
+
so "the reviewer can sign in as each kind of user" and "the reviewer's bundle is
|
|
78
|
+
entitled to every persona" were the same fact.
|
|
79
|
+
|
|
80
|
+
It is now a root that credentials derive from, never one that is presented:
|
|
81
|
+
|
|
82
|
+
```ts
|
|
83
|
+
deriveActorSecret(root, email) // HKDF-expanded HMAC-SHA256 over the address
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
The endpoint re-derives the expected value for whichever address is signing in
|
|
87
|
+
and compares, so nothing is stored or looked up, a credential minted for one
|
|
88
|
+
persona is refused for every other, and rotating the root invalidates all of
|
|
89
|
+
them at once. The root itself is no longer a valid credential, and a root under
|
|
90
|
+
32 characters refuses the endpoint rather than deriving weak credentials from
|
|
91
|
+
it — the server log says why, the client is not told.
|
|
92
|
+
|
|
93
|
+
What that buys, in the places that used to need the whole key:
|
|
94
|
+
|
|
95
|
+
- **`pikku dev`** mints one credential per declared persona into
|
|
96
|
+
`VITE_DEV_ACTOR_SECRETS` and no longer writes `VITE_SCENARIO_ACTOR_SECRET` at
|
|
97
|
+
all. The root stays on the server.
|
|
98
|
+
- **`pikku persona secret <id>`** mints them for anything else, and a run given
|
|
99
|
+
`PIKKU_PERSONA_SECRETS=id=secret,…` can sign in as those personas and no
|
|
100
|
+
others — asking for one outside the list throws naming the persona instead of
|
|
101
|
+
falling back to the root.
|
|
102
|
+
|
|
103
|
+
`useDevActors()` and `<DevActorSwitcher />` take `secrets` (one per address)
|
|
104
|
+
where they took `secret`, and an actor with no credential is no longer offered
|
|
105
|
+
rather than rendering a row that 401s. `HttpPersonasConfig.secret` and the
|
|
106
|
+
Playwright provider's `secret` additionally accept a resolver, which is how a
|
|
107
|
+
partially-credentialled run is expressed.
|
|
108
|
+
|
|
109
|
+
- ee9da9e: `pikku fabric validate` now fails a project whose generated `coercion.gen.ts` declares coercions that no Kysely instance applies, and the generated file itself says what has to consume it. An unwired coercion map cannot fail locally and 500s on the first deployed request.
|
|
110
|
+
- ee9da9e: `pikku db reset` and `fabric validate` stop treating an absent dev seed as an empty database
|
|
111
|
+
|
|
112
|
+
The seed step reported a conclusion about the database rather than about
|
|
113
|
+
itself: with no `db/sqlite-dev-seed.sql`, reset finished with `database is
|
|
114
|
+
empty` even when a migration had just populated it, and `--no-seed` said the
|
|
115
|
+
same. Both lines now name the step — `no dev seed applied (…)` and `--no-seed,
|
|
116
|
+
skipping the dev seed`.
|
|
117
|
+
|
|
118
|
+
`fabric validate` raised `dev-seed-sql-missing` at **error** severity, so a
|
|
119
|
+
project that had correctly moved its rows into a migration — where anything a
|
|
120
|
+
deployed stage needs has to live, since Fabric never replays the dev seed — was
|
|
121
|
+
failed for no longer carrying a file it deliberately does not need. It is now
|
|
122
|
+
`info`, and the hint says what the file is for instead of advising an idempotent
|
|
123
|
+
form the framework tells you not to reach for.
|
|
124
|
+
|
|
125
|
+
- ee9da9e: The Bun deploy bundler now keeps names, matching the esbuild one, so a deployed error answers with its real name instead of the bundler's identifier for it — `PermissionDeniedError`, not `cn`. An error's `name` is its constructor's name, so a bundler you configure yourself has to preserve names too.
|
|
126
|
+
- ee9da9e: `fabric deploy apply` reports the commit the deployment holds, not the one requested
|
|
127
|
+
|
|
128
|
+
With a deployment already parked at `suspended` for the branch,
|
|
129
|
+
`deployByStageKind` attaches to that plan — pinned to whatever commit it was
|
|
130
|
+
cut at — rather than creating a new one. The CLI echoed back the sha it had
|
|
131
|
+
been asked for, so `apply` printed
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
status: suspended sha: 599439e6
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
for a deployment `deploy list` showed pinned to `5bfe84c`, five commits above
|
|
138
|
+
it. `--ref` did not help; the argument was echoed too. The only symptom was a
|
|
139
|
+
correct-looking line of output, and the failure mode is a rollback that
|
|
140
|
+
silently does not roll back.
|
|
141
|
+
|
|
142
|
+
The ref is now read back off the deployment, and a disagreement between what
|
|
143
|
+
was asked for and what is held aborts with both shas and the deployment id
|
|
144
|
+
named, rather than continuing under the wrong one.
|
|
145
|
+
|
|
146
|
+
- ee9da9e: The hardcoded-copy check stops flagging a feature's own name
|
|
147
|
+
|
|
148
|
+
Two rules disagreed. `runScenarioFileChecks` requires every `pikkuFeature` to
|
|
149
|
+
live in a `*.scenario.ts`, and moving one there is what put it in front of the
|
|
150
|
+
hardcoded-copy check — which then flagged the feature's own `name` because the
|
|
151
|
+
app catalogue happens to hold the same word:
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
name: 'Downloads', → ✗ "Downloads" → nav__downloads | downloads__title
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Complying with the first rule created violations of the second, and the advice
|
|
158
|
+
— read the string from the app catalogue — would tie the Console's language to
|
|
159
|
+
the product's. `name`, `description` and `template` declared directly on a
|
|
160
|
+
`pikkuFeature`, `pikkuScenario` or `pikkuScenarioStep` are Console meta and are
|
|
161
|
+
now skipped. A `name` nested deeper — `getByRole('button', { name: 'Speichern'
|
|
162
|
+
})` — is a selector built out of UI copy and is still caught.
|
|
163
|
+
|
|
164
|
+
- 967d1de: Rename the `locale` field in `pikku.config.json` to `metaLocale`. It sets the language of the meta the Console renders back to your team, not the language your app speaks to its users — a config that still says `locale` now fails with an error saying where the value moved.
|
|
165
|
+
- ee9da9e: `fabric` stage commands default to the only stage, and say what is missing when they cannot
|
|
166
|
+
|
|
167
|
+
`pikku fabric secrets list` with one stage deployed failed with `No stage for
|
|
168
|
+
branch "undefined". Existing: main` — an error interpolating the missing
|
|
169
|
+
argument's value directly above a line naming the single stage it could have
|
|
170
|
+
used.
|
|
171
|
+
|
|
172
|
+
With exactly one stage there is nothing to disambiguate, so `secrets
|
|
173
|
+
list/set/rotate` and `variables get/set` now use it. With several, the error
|
|
174
|
+
says `--branch is required` and lists them; with none, it says nothing is
|
|
175
|
+
deployed yet. Each command also names the stage it acted on rather than echoing
|
|
176
|
+
the argument, and `secrets rotate` resolves before it refuses, so the one
|
|
177
|
+
message standing between a typo and unreadable secrets names the stage that
|
|
178
|
+
would actually be rotated.
|
|
179
|
+
|
|
180
|
+
- ee9da9e: the surface gate measures the surface it actually ships
|
|
181
|
+
|
|
182
|
+
The doc-quality gate went in with ceilings of 112, 823 and 10 beside a surface
|
|
183
|
+
that measured 160, 1210 and 15, so it never passed on any build. Re-baselined to
|
|
184
|
+
the real measurements, and the key-documentation floor earned its way from 76%
|
|
185
|
+
to 79% by documenting what a caller has to put in `defineSecret`, the gateway
|
|
186
|
+
message shapes, and the scorer and judge configs.
|
|
187
|
+
|
|
188
|
+
- ee9da9e: `fabric validate` no longer reads comment prose as an import
|
|
189
|
+
|
|
190
|
+
The undeclared-dependency check matched `from "…"` in raw file text, so any
|
|
191
|
+
sentence putting a quoted phrase after the word _from_ became a phantom
|
|
192
|
+
dependency — at error severity, against the app, with nothing naming the file
|
|
193
|
+
it came from:
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
✗ @project/app imports undeclared package(s): is fine — the deploy bundle cannot resolve them
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
The source is now scanned with comments blanked (a new `blankComments` keeps
|
|
200
|
+
the text the same length so offsets still line up), and the fix hint names the
|
|
201
|
+
file and line each missing package was first imported at.
|
|
202
|
+
|
|
203
|
+
- 2e7adcd: Give a virtual user run a trigger so it survives a per-function deploy.
|
|
204
|
+
|
|
205
|
+
`scaffold.virtualUser` dispatched `executeVirtualUserRun` with an unawaited
|
|
206
|
+
`rpc.invoke`. That is a real dispatch in one process and nothing at all under a
|
|
207
|
+
deployment that puts each function in its own unit: the run function is
|
|
208
|
+
sessionless, unexposed and wired to nothing, so it is never emitted as a unit,
|
|
209
|
+
the RPC resolves to nothing, and the rejection is swallowed by the `catch` that
|
|
210
|
+
exists to stop an unhandled rejection taking the process down. The run parks at
|
|
211
|
+
`running` with zero steps and no error anywhere.
|
|
212
|
+
|
|
213
|
+
The scaffold now wires it to a `pikku-virtual-user-runs` queue worker, which is
|
|
214
|
+
what puts it in the deploy manifest, and `runVirtualUser` enqueues onto that
|
|
215
|
+
queue at `attempts: 1` — a redelivery would be a second different outing writing
|
|
216
|
+
into a record that already has an outcome. A project with no queue service keeps
|
|
217
|
+
the in-process dispatch, which is correct for the one process it runs in.
|
|
218
|
+
|
|
219
|
+
- Updated dependencies [ee9da9e]
|
|
220
|
+
- Updated dependencies [7a15c9c]
|
|
221
|
+
- Updated dependencies [ee9da9e]
|
|
222
|
+
- Updated dependencies [7d641f3]
|
|
223
|
+
- Updated dependencies [ee9da9e]
|
|
224
|
+
- Updated dependencies [ee9da9e]
|
|
225
|
+
- Updated dependencies [ee9da9e]
|
|
226
|
+
- @pikku/core@0.12.99
|
|
227
|
+
- @pikku/better-auth@0.12.33
|
|
228
|
+
- @pikku/playwright@0.12.80
|
|
229
|
+
- @pikku/skills@0.12.20
|
|
230
|
+
- @pikku/inspector@0.12.68
|
|
231
|
+
|
|
1
232
|
## 0.12.125
|
|
2
233
|
|
|
3
234
|
### Patch Changes
|
package/console-app/assets/{abnfDiagram-N423BO3Z-B2suyn6i.js → abnfDiagram-N423BO3Z-BY2LM8wi.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as e,t}from"./mermaid-parser.core-
|
|
1
|
+
import{m as e,t}from"./mermaid-parser.core-Cx6yvn3j.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{t as r}from"./src-LceHEY_Q.js";import"./chunk-I66GZJ75-DH54FcuO.js";import{n as i,r as a,t as o}from"./chunk-6Q2QTUOP-DloGRHJZ.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";import"./mermaid.core-BebGyklS.js";var c=e().RailroadAbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=n(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=n(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=n(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=n(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=n(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=n(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:n(e=>{o.clear(),r.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new t(n);let i=n.value;r.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-KEIR6QF5-BICK3FdT.js";import{M as e}from"./mermaid-parser.core-Cx6yvn3j.js";export{e as createArchitectureServices};
|