@llm4ts/shell 0.17.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Cli.d.ts +4 -0
- package/dist/Cli.d.ts.map +1 -1
- package/dist/Cli.js +69 -8
- package/dist/Cli.js.map +1 -1
- package/dist/FlowCatalog.d.ts +10 -4
- package/dist/FlowCatalog.d.ts.map +1 -1
- package/dist/FlowCatalog.js +25 -14
- package/dist/FlowCatalog.js.map +1 -1
- package/flows/epic-stories.js +1 -8
- package/flows/hello.js +15 -0
- package/flows/implement.js +1 -8
- package/flows/issue-pr.js +1 -8
- package/flows/judge-suite.js +1 -4
- package/flows/lib/epic-stories.js +3 -4
- package/flows/local.js +2 -5
- package/flows/modernize-bench.js +3 -12
- package/flows/modernize-extract.js +8 -18
- package/flows/modernize-implement.js +4 -15
- package/flows/modernize-pack-check.js +1 -8
- package/flows/modernize-review.js +4 -13
- package/flows/modernize-seed.js +3 -11
- package/flows/modernize-survey.js +0 -0
- package/flows/modernize-verify.js +5 -13
- package/flows/sdd.js +2 -12
- package/kits/j2ee-nextjs/README.md +29 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/RUNBOOK.md +156 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/PAGES.md +67 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/pom.xml +49 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/java/com/demobank/legacy/dto/AcctOvwDTO.java +58 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/java/com/demobank/legacy/dto/BenfDTO.java +49 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/java/com/demobank/legacy/dto/TrfDTO.java +70 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/java/com/demobank/legacy/esb/EsbAcctListService.java +53 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/java/com/demobank/legacy/esb/EsbBenfListService.java +58 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/java/com/demobank/legacy/esb/EsbBenfMaintService.java +58 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/java/com/demobank/legacy/esb/EsbException.java +21 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/java/com/demobank/legacy/esb/EsbGateway.java +44 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/java/com/demobank/legacy/esb/EsbTrfExecService.java +53 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/java/com/demobank/legacy/esb/EsbTrfValidateService.java +45 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/java/com/demobank/legacy/web/AccountOverviewServlet.java +90 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/java/com/demobank/legacy/web/BeneficiaryServlet.java +195 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/java/com/demobank/legacy/web/TransferDraft.java +62 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/java/com/demobank/legacy/web/TransferServlet.java +223 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/WEB-INF/web.xml +59 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/accountOverview.jsp +65 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/beneficiaryEdit.jsp +70 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/beneficiaryList.jsp +43 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/css/bank.css +132 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/dashboard.jsp +28 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/footer.jsp +8 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/header.jsp +22 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/help.jsp +32 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/js/jquery-1.12.4.min.js +1 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/js/validate.js +79 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/login.jsp +29 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/messages.jsp +34 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/nav.jsp +14 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/oldTransfer.jsp +34 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/profile.jsp +26 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/promoQ3.jsp +23 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/settings.jsp +34 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/testHarness.jsp +39 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/transferConfirm.jsp +35 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/transferStep1.jsp +73 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/transferStep2.jsp +40 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/CONTRIBUTING.md +76 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/README.md +46 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/contracts/cards.openapi.yaml +57 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/contracts/profile.openapi.yaml +73 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/eslint.config.mjs +24 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/next-env.d.ts +5 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/next.config.mjs +10 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/package.json +29 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/pnpm-lock.yaml +2895 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/app/cards/page.tsx +62 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/app/layout.tsx +41 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/app/page.tsx +26 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/app/profile/page.tsx +134 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/app/signed-in-badge.tsx +9 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/auth/AuthProvider.tsx +36 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/components/Button.tsx +27 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/components/Card.tsx +18 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/components/DataTable.tsx +57 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/components/Field.tsx +34 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/components/Form.tsx +70 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/components/PageLayout.tsx +39 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/components/Stepper.tsx +29 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/components/index.ts +19 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/services/cards/mock.ts +47 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/services/cards/port.ts +31 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/services/profile/mock.ts +45 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/services/profile/port.ts +24 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/services/registry.ts +20 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/theme/components.css +269 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/src/theme/tokens.css +38 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/tests/cards.page.test.tsx +81 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/tests/profile.page.test.tsx +87 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/tsconfig.json +54 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/nextjs/vitest.config.ts +17 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/preflight.mjs +45 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/reset-demo.mjs +40 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/seed-legacy-j2ee.mjs +71 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/seed-nextjs.mjs +111 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/smoke-legacy-j2ee.mjs +144 -0
- package/kits/j2ee-nextjs/fixtures/demo-bank/smoke-nextjs.mjs +118 -0
- package/{flows → kits/j2ee-nextjs/flows}/convert-all.js +1 -7
- package/{flows → kits/j2ee-nextjs/flows}/convert-page.js +2 -6
- package/{flows → kits/j2ee-nextjs/flows}/lib/convert.js +6 -16
- package/{flows → kits/j2ee-nextjs}/packs/j2ee-nextjs-spa/pack.md +1 -1
- package/{flows → kits/j2ee-nextjs}/packs/jsp-bff-nextjs/pack.md +1 -1
- package/{flows → kits/j2ee-nextjs}/packs/jsp-nextjs/pack.md +1 -1
- package/kits/mainframe-java/README.md +31 -0
- package/{flows → kits/mainframe-java}/packs/ace-integration/pack.md +1 -1
- package/{flows → kits/mainframe-java}/packs/ace-kafka/pack.md +1 -1
- package/{flows → kits/mainframe-java}/packs/cobol-kafka/pack.md +1 -1
- package/{flows → kits/mainframe-java}/packs/cobol-springboot/pack.md +1 -1
- package/package.json +6 -6
- package/src/Cli.ts +92 -9
- package/src/FlowCatalog.ts +29 -13
- /package/{flows → kits/j2ee-nextjs}/packs/j2ee-nextjs-spa/patterns/PAT-J2EE-001-jstl-table.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/j2ee-nextjs-spa/patterns/PAT-J2EE-002-jquery-validation.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/j2ee-nextjs-spa/patterns/PAT-J2EE-003-session-stepper.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/j2ee-nextjs-spa/patterns/PAT-J2EE-004-esb-port.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/j2ee-nextjs-spa/patterns/PAT-J2EE-005-include-shell.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/j2ee-nextjs-spa/prompts/analysis.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/j2ee-nextjs-spa/prompts/bdd.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/j2ee-nextjs-spa/prompts/implement.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/j2ee-nextjs-spa/prompts/plan.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/j2ee-nextjs-spa/prompts/review.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/j2ee-nextjs-spa/prompts/spec.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/j2ee-nextjs-spa/prompts/survey-refine.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/j2ee-nextjs-spa/prompts/survey-triage.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/j2ee-nextjs-spa/reviewers/acl-purity.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/j2ee-nextjs-spa/reviewers/house-style.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-bff-nextjs/lessons.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-bff-nextjs/prompts/analysis.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-bff-nextjs/prompts/bdd.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-bff-nextjs/prompts/implement.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-bff-nextjs/prompts/plan.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-bff-nextjs/prompts/review.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-bff-nextjs/prompts/spec.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-bff-nextjs/prompts/survey-refine.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-bff-nextjs/prompts/survey-triage.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-bff-nextjs/reviewers/bff-boundary.md +0 -0
- /package/{flows/packs/ace-integration → kits/j2ee-nextjs/packs/jsp-bff-nextjs}/reviewers/traceability.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-nextjs/lessons.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-nextjs/prompts/analysis.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-nextjs/prompts/bdd.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-nextjs/prompts/implement.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-nextjs/prompts/plan.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-nextjs/prompts/review.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-nextjs/prompts/spec.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-nextjs/prompts/survey-refine.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-nextjs/prompts/survey-triage.md +0 -0
- /package/{flows/packs/ace-kafka → kits/j2ee-nextjs/packs/jsp-nextjs}/reviewers/traceability.md +0 -0
- /package/{flows → kits/j2ee-nextjs}/packs/jsp-nextjs/reviewers/ux-fidelity.md +0 -0
- /package/{flows/fixtures → kits/j2ee-nextjs}/scaffolds/nextjs-spa/README.md +0 -0
- /package/{flows/fixtures → kits/j2ee-nextjs}/scaffolds/nextjs-spa/app/layout.js +0 -0
- /package/{flows/fixtures → kits/j2ee-nextjs}/scaffolds/nextjs-spa/app/page.js +0 -0
- /package/{flows/fixtures/scaffolds/kafka-streams-service/src/test/resources/features → kits/j2ee-nextjs/scaffolds/nextjs-spa/docs/specs}/.gitkeep +0 -0
- /package/{flows/fixtures/scaffolds/nextjs-spa/docs/specs → kits/j2ee-nextjs/scaffolds/nextjs-spa/features}/.gitkeep +0 -0
- /package/{flows/fixtures → kits/j2ee-nextjs}/scaffolds/nextjs-spa/next.config.js +0 -0
- /package/{flows/fixtures → kits/j2ee-nextjs}/scaffolds/nextjs-spa/package.json +0 -0
- /package/{flows/fixtures → kits/j2ee-nextjs}/scaffolds/nextjs-spa/tests/smoke.test.js +0 -0
- /package/{flows/fixtures → kits/j2ee-nextjs}/scaffolds/spring-bff/README.md +0 -0
- /package/{flows/fixtures → kits/j2ee-nextjs}/scaffolds/spring-bff/frontend/app/layout.js +0 -0
- /package/{flows/fixtures → kits/j2ee-nextjs}/scaffolds/spring-bff/frontend/app/page.js +0 -0
- /package/{flows/fixtures → kits/j2ee-nextjs}/scaffolds/spring-bff/frontend/next.config.js +0 -0
- /package/{flows/fixtures → kits/j2ee-nextjs}/scaffolds/spring-bff/frontend/package.json +0 -0
- /package/{flows/fixtures → kits/j2ee-nextjs}/scaffolds/spring-bff/frontend/tests/smoke.test.js +0 -0
- /package/{flows/fixtures → kits/j2ee-nextjs}/scaffolds/spring-bff/pom.xml +0 -0
- /package/{flows/fixtures → kits/j2ee-nextjs}/scaffolds/spring-bff/scripts/test.sh +0 -0
- /package/{flows/fixtures → kits/j2ee-nextjs}/scaffolds/spring-bff/src/main/java/com/meridian/bff/Application.java +0 -0
- /package/{flows/fixtures → kits/j2ee-nextjs}/scaffolds/spring-bff/src/main/resources/application.yaml +0 -0
- /package/{flows/fixtures → kits/j2ee-nextjs}/scaffolds/spring-bff/src/test/java/com/meridian/bff/ApplicationTests.java +0 -0
- /package/{flows/fixtures/scaffolds/nextjs-spa → kits/j2ee-nextjs/scaffolds/spring-bff/src/test/resources}/features/.gitkeep +0 -0
- /package/{flows → kits/mainframe-java}/packs/ace-integration/lessons.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/ace-integration/prompts/analysis.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/ace-integration/prompts/bdd.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/ace-integration/prompts/implement.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/ace-integration/prompts/plan.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/ace-integration/prompts/review.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/ace-integration/prompts/spec.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/ace-integration/reviewers/routing-fidelity.md +0 -0
- /package/{flows/packs/cobol-kafka → kits/mainframe-java/packs/ace-integration}/reviewers/traceability.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/ace-kafka/lessons.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/ace-kafka/prompts/analysis.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/ace-kafka/prompts/bdd.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/ace-kafka/prompts/implement.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/ace-kafka/prompts/plan.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/ace-kafka/prompts/review.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/ace-kafka/prompts/spec.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/ace-kafka/prompts/vectors.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/ace-kafka/reviewers/event-contracts.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/ace-kafka/reviewers/routing-fidelity.md +0 -0
- /package/{flows/packs/cobol-springboot → kits/mainframe-java/packs/ace-kafka}/reviewers/traceability.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/lessons.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/patterns/PAT-STREAM-001-record-to-event.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/patterns/PAT-STREAM-002-job-step-topology.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/patterns/PAT-STREAM-003-checkpoint-idempotence.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/patterns/PAT-STREAM-004-eod-totals-window.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/patterns/PAT-STREAM-005-reject-topic.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/patterns/PAT-STREAM-006-keyed-state-store.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/patterns/PAT-STREAM-007-outbox.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/patterns/PAT-STREAM-008-partition-key.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/patterns/PAT-STREAM-009-batch-window-cutoff.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/patterns/PAT-STREAM-010-replay-backfill.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/prompts/analysis.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/prompts/bdd.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/prompts/implement.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/prompts/plan.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/prompts/review.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/prompts/spec.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/prompts/survey-refine.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/prompts/survey-triage.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/prompts/vectors.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/reviewers/cobol-fidelity.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-kafka/reviewers/pattern-conformance.md +0 -0
- /package/{flows/packs/jsp-bff-nextjs → kits/mainframe-java/packs/cobol-kafka}/reviewers/traceability.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-springboot/lessons.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-springboot/prompts/analysis.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-springboot/prompts/bdd.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-springboot/prompts/implement.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-springboot/prompts/plan.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-springboot/prompts/review.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-springboot/prompts/spec.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-springboot/prompts/survey-refine.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-springboot/prompts/survey-triage.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-springboot/prompts/vectors.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-springboot/reviewers/cobol-fidelity.md +0 -0
- /package/{flows → kits/mainframe-java}/packs/cobol-springboot/reviewers/pattern-conformance.md +0 -0
- /package/{flows/packs/jsp-nextjs → kits/mainframe-java/packs/cobol-springboot}/reviewers/traceability.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-001-comp3-money.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-002-redefines.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-003-88-levels.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-004-perform-thru.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-005-file-status.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-006-sqlcode.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-007-validation-order.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-008-zoned-decimal.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-009-occurs-table.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-010-copybook-record.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-011-batch-counters.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-012-commit-frequency.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-013-abend.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-014-reject-file.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-015-accept-date.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-016-string-building.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-017-cursor-loop.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-018-yn-switches.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-019-shared-accumulators.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-020-tiered-fees.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-021-overdraft-floor.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-022-jcl-job-net.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-023-sort-step.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-024-fixed-width-records.md +0 -0
- /package/{flows → kits/mainframe-java}/patterns/PAT-COBOL-025-audit-rows.md +0 -0
- /package/{flows/fixtures → kits/mainframe-java}/scaffolds/kafka-streams-service/README.md +0 -0
- /package/{flows/fixtures → kits/mainframe-java}/scaffolds/kafka-streams-service/pom.xml +0 -0
- /package/{flows/fixtures → kits/mainframe-java}/scaffolds/kafka-streams-service/scripts/replay.sh +0 -0
- /package/{flows/fixtures → kits/mainframe-java}/scaffolds/kafka-streams-service/src/main/java/com/meridian/scaffold/Application.java +0 -0
- /package/{flows/fixtures → kits/mainframe-java}/scaffolds/kafka-streams-service/src/test/java/com/meridian/scaffold/ApplicationTests.java +0 -0
- /package/{flows/fixtures/scaffolds/spring-bff → kits/mainframe-java/scaffolds/kafka-streams-service}/src/test/resources/features/.gitkeep +0 -0
- /package/{flows/fixtures → kits/mainframe-java}/scaffolds/spring-boot-service/README.md +0 -0
- /package/{flows/fixtures → kits/mainframe-java}/scaffolds/spring-boot-service/pom.xml +0 -0
- /package/{flows/fixtures → kits/mainframe-java}/scaffolds/spring-boot-service/scripts/replay.sh +0 -0
- /package/{flows/fixtures → kits/mainframe-java}/scaffolds/spring-boot-service/src/main/java/com/meridian/scaffold/Application.java +0 -0
- /package/{flows/fixtures → kits/mainframe-java}/scaffolds/spring-boot-service/src/main/resources/application.yaml +0 -0
- /package/{flows/fixtures → kits/mainframe-java}/scaffolds/spring-boot-service/src/test/java/com/meridian/scaffold/ApplicationTests.java +0 -0
- /package/{flows/fixtures → kits/mainframe-java}/scaffolds/spring-boot-service/src/test/resources/features/.gitkeep +0 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<%@ page contentType="text/html; charset=ISO-8859-1" %>
|
|
2
|
+
<%-- Static FAQ (filler). Also mapped as the 500 error page in web.xml. --%>
|
|
3
|
+
<jsp:include page="header.jsp" />
|
|
4
|
+
|
|
5
|
+
<h1>Help & FAQ</h1>
|
|
6
|
+
|
|
7
|
+
<h2>I cannot see my accounts</h2>
|
|
8
|
+
<p>
|
|
9
|
+
Balances are retrieved from the central host. If the overview shows no
|
|
10
|
+
accounts, retry in a few minutes; during nightly batch (00:30-01:30 CET)
|
|
11
|
+
positions may be unavailable.
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<h2>How long does a wire transfer take?</h2>
|
|
15
|
+
<p>
|
|
16
|
+
SEPA transfers in EUR are settled on the next business day. Transfers
|
|
17
|
+
entered after 17:30 CET are processed the following business day.
|
|
18
|
+
</p>
|
|
19
|
+
|
|
20
|
+
<h2>Is there a transfer limit?</h2>
|
|
21
|
+
<p>
|
|
22
|
+
The default online limit is EUR 5,000.00 per day. Higher limits can be
|
|
23
|
+
arranged at your branch.
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
<h2>Who do I contact?</h2>
|
|
27
|
+
<p>
|
|
28
|
+
Customer service: 800 000 000 (Mon-Fri 8:00-20:00), or write from the
|
|
29
|
+
<a href="messages.jsp">Messages</a> page.
|
|
30
|
+
</p>
|
|
31
|
+
|
|
32
|
+
<jsp:include page="footer.jsp" />
|
package/kits/j2ee-nextjs/fixtures/demo-bank/legacy-j2ee/src/main/webapp/js/jquery-1.12.4.min.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/* Placeholder stub standing in for jQuery 1.12.4 (jquery-1.12.4.min.js). The real minified library is deliberately not vendored in this synthetic fixture. */
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* DemoBank shared form validation helpers.
|
|
3
|
+
* Hand-rolled long before any validation plugin was approved by the
|
|
4
|
+
* architecture board (see ticket DB-1187). Every page wires these up
|
|
5
|
+
* slightly differently -- do not "clean up" without regression testing
|
|
6
|
+
* beneficiaryEdit.jsp and transferStep1.jsp.
|
|
7
|
+
*
|
|
8
|
+
* History:
|
|
9
|
+
* 2009-03-12 gferri initial version
|
|
10
|
+
* 2010-11-02 rmasi IBAN check for SEPA go-live
|
|
11
|
+
* 2012-06-21 lgreco amount check, decimal comma tolerated
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
function dbTrim(s) {
|
|
15
|
+
if (s == null) return ""
|
|
16
|
+
return String(s).replace(/^\s+|\s+$/g, "")
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* Required field: returns true when non-empty, otherwise marks the field. */
|
|
20
|
+
function dbRequired(fld, msg) {
|
|
21
|
+
var v = dbTrim($(fld).val())
|
|
22
|
+
if (v.length == 0) {
|
|
23
|
+
dbMark(fld, msg || "Required field")
|
|
24
|
+
return false
|
|
25
|
+
}
|
|
26
|
+
dbUnmark(fld)
|
|
27
|
+
return true
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* Very loose IBAN shape check: 2 letters, 2 digits, then 10..30 chars.
|
|
31
|
+
* The REAL check is on the host side (ESB), this is only cosmetic.
|
|
32
|
+
* Spaces are tolerated and stripped. */
|
|
33
|
+
function dbIbanShape(fld) {
|
|
34
|
+
var v = dbTrim($(fld).val()).replace(/ /g, "").toUpperCase()
|
|
35
|
+
if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{10,30}$/.test(v)) {
|
|
36
|
+
dbMark(fld, "IBAN format not recognised")
|
|
37
|
+
return false
|
|
38
|
+
}
|
|
39
|
+
dbUnmark(fld)
|
|
40
|
+
return true
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* Amount: positive, max 2 decimals, comma or dot accepted.
|
|
44
|
+
* NB: server side only accepts the dot -- known mismatch, ticket DB-3302. */
|
|
45
|
+
function dbAmount(fld) {
|
|
46
|
+
var v = dbTrim($(fld).val()).replace(",", ".")
|
|
47
|
+
if (!/^[0-9]+(\.[0-9]{1,2})?$/.test(v) || parseFloat(v) <= 0) {
|
|
48
|
+
dbMark(fld, "Enter a positive amount (max 2 decimals)")
|
|
49
|
+
return false
|
|
50
|
+
}
|
|
51
|
+
dbUnmark(fld)
|
|
52
|
+
return true
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* Max length helper used by the beneficiary name field. */
|
|
56
|
+
function dbMaxLen(fld, n) {
|
|
57
|
+
var v = dbTrim($(fld).val())
|
|
58
|
+
if (v.length > n) {
|
|
59
|
+
dbMark(fld, "Maximum " + n + " characters")
|
|
60
|
+
return false
|
|
61
|
+
}
|
|
62
|
+
dbUnmark(fld)
|
|
63
|
+
return true
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function dbMark(fld, msg) {
|
|
67
|
+
$(fld).addClass("fldErr")
|
|
68
|
+
var id = $(fld).attr("id")
|
|
69
|
+
if ($("#err_" + id).length == 0) {
|
|
70
|
+
$(fld).after('<span class="errMsg" id="err_' + id + '"></span>')
|
|
71
|
+
}
|
|
72
|
+
$("#err_" + id).text(msg)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function dbUnmark(fld) {
|
|
76
|
+
$(fld).removeClass("fldErr")
|
|
77
|
+
var id = $(fld).attr("id")
|
|
78
|
+
$("#err_" + id).remove()
|
|
79
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<%@ page contentType="text/html; charset=ISO-8859-1" %>
|
|
2
|
+
<%-- Login shell (filler). Authentication is out of scope for this fixture:
|
|
3
|
+
the form posts to the container-managed j_security_check stub and
|
|
4
|
+
nothing checks it. Welcome page per web.xml. --%>
|
|
5
|
+
<jsp:include page="header.jsp" />
|
|
6
|
+
|
|
7
|
+
<h1>Internet Banking Login</h1>
|
|
8
|
+
|
|
9
|
+
<form class="legacy" method="post" action="j_security_check">
|
|
10
|
+
<div class="row">
|
|
11
|
+
<label for="j_username">Customer id</label>
|
|
12
|
+
<input type="text" id="j_username" name="j_username" size="20" value="CUST0042" />
|
|
13
|
+
</div>
|
|
14
|
+
<div class="row">
|
|
15
|
+
<label for="j_password">PIN</label>
|
|
16
|
+
<input type="password" id="j_password" name="j_password" size="20" />
|
|
17
|
+
</div>
|
|
18
|
+
<div class="row">
|
|
19
|
+
<input type="submit" class="btn" value="Login" />
|
|
20
|
+
</div>
|
|
21
|
+
</form>
|
|
22
|
+
|
|
23
|
+
<p class="small">
|
|
24
|
+
Forgot your PIN? Call 800 000 000 or visit your branch with a valid id
|
|
25
|
+
document. Never share your PIN with anyone: DemoBank staff will never ask
|
|
26
|
+
for it.
|
|
27
|
+
</p>
|
|
28
|
+
|
|
29
|
+
<jsp:include page="footer.jsp" />
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<%@ page contentType="text/html; charset=ISO-8859-1" %>
|
|
2
|
+
<%-- Secure messages inbox (filler). Static demo rows; the real inbox
|
|
3
|
+
servlet lives in the CRM webapp, not this portal. --%>
|
|
4
|
+
<jsp:include page="header.jsp" />
|
|
5
|
+
|
|
6
|
+
<h1>Messages</h1>
|
|
7
|
+
|
|
8
|
+
<table class="data">
|
|
9
|
+
<tr>
|
|
10
|
+
<th>Date</th>
|
|
11
|
+
<th>From</th>
|
|
12
|
+
<th>Subject</th>
|
|
13
|
+
</tr>
|
|
14
|
+
<tr>
|
|
15
|
+
<td>02/01/2013</td>
|
|
16
|
+
<td>DemoBank</td>
|
|
17
|
+
<td>Your December statement is available</td>
|
|
18
|
+
</tr>
|
|
19
|
+
<tr class="odd">
|
|
20
|
+
<td>18/12/2012</td>
|
|
21
|
+
<td>DemoBank</td>
|
|
22
|
+
<td>New security recommendations for online banking</td>
|
|
23
|
+
</tr>
|
|
24
|
+
<tr>
|
|
25
|
+
<td>02/11/2012</td>
|
|
26
|
+
<td>DemoBank</td>
|
|
27
|
+
<td>Fee schedule update effective 01/01/2013</td>
|
|
28
|
+
</tr>
|
|
29
|
+
</table>
|
|
30
|
+
|
|
31
|
+
<p><input type="button" class="btn" value="New message"
|
|
32
|
+
onclick="alert('Messaging is handled by the branch CRM. Please call 800 000 000.');" /></p>
|
|
33
|
+
|
|
34
|
+
<jsp:include page="footer.jsp" />
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<%@ page contentType="text/html; charset=ISO-8859-1" %>
|
|
2
|
+
<%-- Main navigation. NOTE: keep in sync with web.xml mappings (ticket DB-2141). --%>
|
|
3
|
+
<div id="nav">
|
|
4
|
+
<ul>
|
|
5
|
+
<li><a href="dashboard.jsp">Home</a></li>
|
|
6
|
+
<li><a href="accountOverview">Accounts</a></li>
|
|
7
|
+
<li><a href="beneficiary">Beneficiaries</a></li>
|
|
8
|
+
<li><a href="transfer">Wire Transfer</a></li>
|
|
9
|
+
<li><a href="messages.jsp">Messages</a></li>
|
|
10
|
+
<li><a href="profile.jsp">Profile</a></li>
|
|
11
|
+
<li><a href="settings.jsp">Settings</a></li>
|
|
12
|
+
<li><a href="help.jsp">Help</a></li>
|
|
13
|
+
</ul>
|
|
14
|
+
</div>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<%@ page contentType="text/html; charset=ISO-8859-1" %>
|
|
2
|
+
<%-- DEAD PAGE. Single-page transfer form, replaced by the 3-step wizard
|
|
3
|
+
in release 2.4 (2011). Kept "just in case" for the branch kiosks and
|
|
4
|
+
never removed. Posts to /doTransfer which no longer exists in web.xml. --%>
|
|
5
|
+
<jsp:include page="header.jsp" />
|
|
6
|
+
|
|
7
|
+
<h1>Wire Transfer</h1>
|
|
8
|
+
|
|
9
|
+
<form class="legacy" method="post" action="doTransfer">
|
|
10
|
+
<div class="row">
|
|
11
|
+
<label for="benfIban">Beneficiary IBAN</label>
|
|
12
|
+
<input type="text" id="benfIban" name="benfIban" size="40"
|
|
13
|
+
value="IT00 DEMO 0101 0101 0000 0000 001" />
|
|
14
|
+
</div>
|
|
15
|
+
<div class="row">
|
|
16
|
+
<label for="benfNm">Beneficiary name</label>
|
|
17
|
+
<input type="text" id="benfNm" name="benfNm" size="50" />
|
|
18
|
+
</div>
|
|
19
|
+
<div class="row">
|
|
20
|
+
<label for="amt">Amount (EUR)</label>
|
|
21
|
+
<input type="text" id="amt" name="amt" size="12" />
|
|
22
|
+
</div>
|
|
23
|
+
<div class="row">
|
|
24
|
+
<label for="desc">Description</label>
|
|
25
|
+
<input type="text" id="desc" name="desc" size="50" />
|
|
26
|
+
</div>
|
|
27
|
+
<div class="row">
|
|
28
|
+
<input type="submit" class="btn" value="Execute transfer" />
|
|
29
|
+
</div>
|
|
30
|
+
</form>
|
|
31
|
+
|
|
32
|
+
<p class="small">All fields are mandatory. Transfers over EUR 5,000.00 must be arranged at the branch.</p>
|
|
33
|
+
|
|
34
|
+
<jsp:include page="footer.jsp" />
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<%@ page contentType="text/html; charset=ISO-8859-1" %>
|
|
2
|
+
<%-- Customer profile (filler). Data is hard-coded demo content; the host
|
|
3
|
+
profile inquiry (ESB_CUST_INQ) was never wired into this page. --%>
|
|
4
|
+
<jsp:include page="header.jsp" />
|
|
5
|
+
|
|
6
|
+
<%
|
|
7
|
+
String custId = (String) session.getAttribute("custId");
|
|
8
|
+
if (custId == null) custId = "CUST0042";
|
|
9
|
+
%>
|
|
10
|
+
<h1>Customer Profile</h1>
|
|
11
|
+
|
|
12
|
+
<table class="data" style="width: 60%;">
|
|
13
|
+
<tr><th>Customer id</th><td><%= custId %></td></tr>
|
|
14
|
+
<tr><th>Name</th><td>MARIO BIANCHI</td></tr>
|
|
15
|
+
<tr><th>Address</th><td>VIA ROMA 1, 20100 MILANO (MI)</td></tr>
|
|
16
|
+
<tr><th>Email</th><td>mario.bianchi@example.invalid</td></tr>
|
|
17
|
+
<tr><th>Phone</th><td>+39 02 0000 0000</td></tr>
|
|
18
|
+
<tr><th>Branch</th><td>0042 - MILANO CENTRO</td></tr>
|
|
19
|
+
</table>
|
|
20
|
+
|
|
21
|
+
<p class="small">
|
|
22
|
+
To update your personal data please visit your branch with a valid id
|
|
23
|
+
document. Online profile update is not yet available.
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
<jsp:include page="footer.jsp" />
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<%@ page contentType="text/html; charset=ISO-8859-1" %>
|
|
2
|
+
<%-- DEAD PAGE. Q3 2011 deposit campaign, expired 30/09/2011. Marketing
|
|
3
|
+
asked to keep it "until the next campaign"; there was no next campaign. --%>
|
|
4
|
+
<jsp:include page="header.jsp" />
|
|
5
|
+
|
|
6
|
+
<h1>DemoBank Summer Deposit 2011</h1>
|
|
7
|
+
|
|
8
|
+
<p class="msgOk">Promotional rate 2.75% gross on new deposits until 30/09/2011!</p>
|
|
9
|
+
|
|
10
|
+
<ul>
|
|
11
|
+
<li>Minimum deposit: EUR 5,000.00</li>
|
|
12
|
+
<li>6 month term, no early withdrawal fee</li>
|
|
13
|
+
<li>Reserved to sums not already held with DemoBank</li>
|
|
14
|
+
</ul>
|
|
15
|
+
|
|
16
|
+
<p>
|
|
17
|
+
To subscribe visit your branch or call 800 000 000. Terms and conditions
|
|
18
|
+
in the information sheet available at every branch.
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
<p class="small">Offer valid 01/07/2011 - 30/09/2011. Rates before tax.</p>
|
|
22
|
+
|
|
23
|
+
<jsp:include page="footer.jsp" />
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<%@ page contentType="text/html; charset=ISO-8859-1" %>
|
|
2
|
+
<%-- Settings page (filler). Toggles are rendered but wired to nothing:
|
|
3
|
+
the save servlet was never built (ticket DB-1560, parked 2010). --%>
|
|
4
|
+
<jsp:include page="header.jsp" />
|
|
5
|
+
|
|
6
|
+
<h1>Settings</h1>
|
|
7
|
+
|
|
8
|
+
<form class="legacy" method="post" action="#">
|
|
9
|
+
<div class="row">
|
|
10
|
+
<label for="lang">Language</label>
|
|
11
|
+
<select id="lang" name="lang">
|
|
12
|
+
<option value="it" selected="selected">Italiano</option>
|
|
13
|
+
<option value="en">English</option>
|
|
14
|
+
</select>
|
|
15
|
+
</div>
|
|
16
|
+
<div class="row">
|
|
17
|
+
<label for="stmtMode">Statement delivery</label>
|
|
18
|
+
<select id="stmtMode" name="stmtMode">
|
|
19
|
+
<option value="P">Paper</option>
|
|
20
|
+
<option value="E" selected="selected">Electronic</option>
|
|
21
|
+
</select>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="row">
|
|
24
|
+
<label for="smsAlert">SMS alerts</label>
|
|
25
|
+
<input type="checkbox" id="smsAlert" name="smsAlert" checked="checked" />
|
|
26
|
+
over threshold EUR
|
|
27
|
+
<input type="text" name="smsThr" size="8" value="500.00" />
|
|
28
|
+
</div>
|
|
29
|
+
<div class="row">
|
|
30
|
+
<input type="submit" class="btn" value="Save" onclick="alert('Settings service temporarily unavailable.'); return false;" />
|
|
31
|
+
</div>
|
|
32
|
+
</form>
|
|
33
|
+
|
|
34
|
+
<jsp:include page="footer.jsp" />
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<%@ page contentType="text/html; charset=ISO-8859-1" %>
|
|
2
|
+
<%-- DEAD PAGE. Developer scratch page for poking the servlets by hand.
|
|
3
|
+
Should never have shipped to production (it did, release 2.3). Not
|
|
4
|
+
linked from anywhere; security review DB-SEC-77 flagged it in 2012,
|
|
5
|
+
removal still pending. --%>
|
|
6
|
+
<html>
|
|
7
|
+
<head>
|
|
8
|
+
<title>portal test harness - INTERNAL</title>
|
|
9
|
+
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
|
|
10
|
+
</head>
|
|
11
|
+
<body style="font-family: monospace;">
|
|
12
|
+
<h3>portal test harness (dev only)</h3>
|
|
13
|
+
|
|
14
|
+
<p>
|
|
15
|
+
<a href="accountOverview?fmt=json">acct list json</a> |
|
|
16
|
+
<a href="beneficiary">benf list</a> |
|
|
17
|
+
<a href="transfer">trf step1</a>
|
|
18
|
+
</p>
|
|
19
|
+
|
|
20
|
+
<form method="post" action="transfer">
|
|
21
|
+
<input type="hidden" name="step" value="1" />
|
|
22
|
+
benfId <input type="text" name="benfId" value="B0001" size="6" />
|
|
23
|
+
amt <input type="text" name="trfAmt" value="1.00" size="8" />
|
|
24
|
+
ccy <input type="text" name="trfCcy" value="EUR" size="4" />
|
|
25
|
+
<input type="submit" value="post step1" />
|
|
26
|
+
</form>
|
|
27
|
+
|
|
28
|
+
<pre id="out"></pre>
|
|
29
|
+
<script type="text/javascript">
|
|
30
|
+
// dump the acct json into the pre for eyeballing
|
|
31
|
+
$(function() {
|
|
32
|
+
$.get("accountOverview", { fmt: "json" }, function(d) {
|
|
33
|
+
$("#out").text(typeof d == "string" ? d : JSON.stringify(d));
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
</script>
|
|
37
|
+
|
|
38
|
+
</body>
|
|
39
|
+
</html>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<%@ page contentType="text/html; charset=ISO-8859-1" %>
|
|
2
|
+
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
|
3
|
+
<%-- HERO 3, step 3 of 3: result screen. TransferServlet forwards here after
|
|
4
|
+
ESB_TRF_EXEC with a TrfDTO in request attribute "trfRes"; the session
|
|
5
|
+
draft has been cleared by then. --%>
|
|
6
|
+
<jsp:include page="header.jsp" />
|
|
7
|
+
|
|
8
|
+
<h1>Wire Transfer — Completed</h1>
|
|
9
|
+
|
|
10
|
+
<c:choose>
|
|
11
|
+
<c:when test="${trfRes.status == 'OK'}">
|
|
12
|
+
<p class="msgOk">Transfer accepted by the bank host.</p>
|
|
13
|
+
<table class="data" style="width: 60%;">
|
|
14
|
+
<tr><th>Reference</th><td><c:out value="${trfRes.trfRef}" /></td></tr>
|
|
15
|
+
<tr><th>Beneficiary</th><td><c:out value="${trfRes.benfNm}" /></td></tr>
|
|
16
|
+
<tr><th>Amount</th><td><c:out value="${trfRes.trfCcy}" /> <c:out value="${trfRes.trfAmt}" /></td></tr>
|
|
17
|
+
<tr><th>Value date</th><td><c:out value="${trfRes.valDt}" /></td></tr>
|
|
18
|
+
</table>
|
|
19
|
+
<p>Keep the reference number for any enquiry with customer service.</p>
|
|
20
|
+
</c:when>
|
|
21
|
+
<c:otherwise>
|
|
22
|
+
<p class="msgErr">
|
|
23
|
+
The transfer was NOT executed:
|
|
24
|
+
<c:out value="${trfRes.hostMsg}" /> (code <c:out value="${trfRes.hostRc}" />)
|
|
25
|
+
</p>
|
|
26
|
+
<p>No amount has been debited. Please retry later or contact your branch.</p>
|
|
27
|
+
</c:otherwise>
|
|
28
|
+
</c:choose>
|
|
29
|
+
|
|
30
|
+
<p>
|
|
31
|
+
<a class="btn" href="transfer">New transfer</a>
|
|
32
|
+
<a class="btn btnGrey" href="accountOverview">Back to accounts</a>
|
|
33
|
+
</p>
|
|
34
|
+
|
|
35
|
+
<jsp:include page="footer.jsp" />
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
<%@ page contentType="text/html; charset=ISO-8859-1" %>
|
|
2
|
+
<%@ page import="java.util.List" %>
|
|
3
|
+
<%@ page import="com.demobank.legacy.dto.BenfDTO" %>
|
|
4
|
+
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
|
5
|
+
<%-- HERO 3, step 1 of 3: wire transfer entry. Posts step=1 to TransferServlet
|
|
6
|
+
which stores a TransferDraft in HttpSession. Scriptlet + JSTL mix is
|
|
7
|
+
historical: the beneficiary combo predates the JSTL migration. --%>
|
|
8
|
+
<jsp:include page="header.jsp" />
|
|
9
|
+
|
|
10
|
+
<h1>Wire Transfer — Step 1 of 3</h1>
|
|
11
|
+
|
|
12
|
+
<c:if test="${not empty stepErr}">
|
|
13
|
+
<p class="msgErr"><c:out value="${stepErr}" /></p>
|
|
14
|
+
</c:if>
|
|
15
|
+
|
|
16
|
+
<form id="trfForm" class="legacy" method="post" action="transfer">
|
|
17
|
+
<input type="hidden" name="step" value="1" />
|
|
18
|
+
<div class="row">
|
|
19
|
+
<label for="benfId">Beneficiary</label>
|
|
20
|
+
<select id="benfId" name="benfId">
|
|
21
|
+
<option value="">-- select --</option>
|
|
22
|
+
<%
|
|
23
|
+
// Legacy: combo rendered with a scriptlet since 2007 (pre-JSTL page).
|
|
24
|
+
List benfCombo = (List) request.getAttribute("benfCombo");
|
|
25
|
+
if (benfCombo != null) {
|
|
26
|
+
for (int i = 0; i < benfCombo.size(); i++) {
|
|
27
|
+
BenfDTO b = (BenfDTO) benfCombo.get(i);
|
|
28
|
+
%>
|
|
29
|
+
<option value="<%= b.getBenfId() %>"><%= b.getBenfNm() %> - <%= b.getBenfIban() %></option>
|
|
30
|
+
<%
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
%>
|
|
34
|
+
</select>
|
|
35
|
+
<a href="beneficiary?action=new">new beneficiary</a>
|
|
36
|
+
</div>
|
|
37
|
+
<div class="row">
|
|
38
|
+
<label for="trfAmt">Amount</label>
|
|
39
|
+
<input type="text" id="trfAmt" name="trfAmt" size="12" value="<c:out value='${draft.trfAmt}' />" />
|
|
40
|
+
<select id="trfCcy" name="trfCcy">
|
|
41
|
+
<option value="EUR" selected="selected">EUR</option>
|
|
42
|
+
</select>
|
|
43
|
+
</div>
|
|
44
|
+
<div class="row">
|
|
45
|
+
<label for="trfDesc">Description</label>
|
|
46
|
+
<input type="text" id="trfDesc" name="trfDesc" size="50" maxlength="140"
|
|
47
|
+
value="<c:out value='${draft.trfDesc}' />" />
|
|
48
|
+
</div>
|
|
49
|
+
<div class="row">
|
|
50
|
+
<label for="valDt">Value date</label>
|
|
51
|
+
<input type="text" id="valDt" name="valDt" size="10" value="<c:out value='${draft.valDt}' />" />
|
|
52
|
+
<span class="small">(dd/mm/yyyy, leave blank for first available)</span>
|
|
53
|
+
</div>
|
|
54
|
+
<div class="row">
|
|
55
|
+
<input type="submit" class="btn" value="Continue" />
|
|
56
|
+
</div>
|
|
57
|
+
</form>
|
|
58
|
+
|
|
59
|
+
<script type="text/javascript">
|
|
60
|
+
$(document).ready(function() {
|
|
61
|
+
$("#trfForm").submit(function() {
|
|
62
|
+
var ok = true;
|
|
63
|
+
if (dbTrim($("#benfId").val()) == "") { dbMark("#benfId", "Select a beneficiary"); ok = false; }
|
|
64
|
+
else dbUnmark("#benfId");
|
|
65
|
+
if (!dbAmount("#trfAmt")) ok = false;
|
|
66
|
+
// Description optional client-side; host rejects some characters,
|
|
67
|
+
// server strips them silently (see TransferServlet.sanitizeDesc).
|
|
68
|
+
return ok;
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
</script>
|
|
72
|
+
|
|
73
|
+
<jsp:include page="footer.jsp" />
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<%@ page contentType="text/html; charset=ISO-8859-1" %>
|
|
2
|
+
<%@ page import="com.demobank.legacy.web.TransferDraft" %>
|
|
3
|
+
<%-- HERO 3, step 2 of 3: review. All data comes from the TransferDraft in
|
|
4
|
+
HttpSession (attribute "trfDraft"); nothing is re-posted except the
|
|
5
|
+
confirmation itself. Direct GET without a draft bounces to step 1. --%>
|
|
6
|
+
<jsp:include page="header.jsp" />
|
|
7
|
+
|
|
8
|
+
<h1>Wire Transfer — Step 2 of 3: Review</h1>
|
|
9
|
+
|
|
10
|
+
<%
|
|
11
|
+
TransferDraft draft = (TransferDraft) session.getAttribute("trfDraft");
|
|
12
|
+
if (draft == null) {
|
|
13
|
+
// Session expired or deep link: back to step 1.
|
|
14
|
+
response.sendRedirect("transfer");
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
%>
|
|
18
|
+
|
|
19
|
+
<table class="data" style="width: 60%;">
|
|
20
|
+
<tr><th>Beneficiary</th><td><%= draft.getBenfNm() %></td></tr>
|
|
21
|
+
<tr><th>IBAN</th><td><%= draft.getBenfIban() %></td></tr>
|
|
22
|
+
<tr><th>Amount</th><td><%= draft.getTrfCcy() %> <%= draft.getTrfAmt() %></td></tr>
|
|
23
|
+
<tr><th>Description</th><td><%= draft.getTrfDesc() == null ? "" : draft.getTrfDesc() %></td></tr>
|
|
24
|
+
<tr><th>Value date</th><td><%= draft.getValDt() %></td></tr>
|
|
25
|
+
<tr><th>Fee</th><td>EUR <%= draft.getFeeAmt() %> (standard SEPA)</td></tr>
|
|
26
|
+
</table>
|
|
27
|
+
|
|
28
|
+
<p class="msgErr">
|
|
29
|
+
Please verify the details above. On confirmation the transfer is sent to
|
|
30
|
+
the bank host and can no longer be amended online.
|
|
31
|
+
</p>
|
|
32
|
+
|
|
33
|
+
<form method="post" action="transfer">
|
|
34
|
+
<input type="hidden" name="step" value="3" />
|
|
35
|
+
<input type="submit" class="btn" value="Confirm transfer" />
|
|
36
|
+
<input type="button" class="btn btnGrey" value="Back"
|
|
37
|
+
onclick="window.location='transfer';" />
|
|
38
|
+
</form>
|
|
39
|
+
|
|
40
|
+
<jsp:include page="footer.jsp" />
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# DemoBank house rules
|
|
2
|
+
|
|
3
|
+
These rules apply to every page added to this repository — by people or by
|
|
4
|
+
automated converters. The exemplar pages (`src/app/cards/page.tsx`,
|
|
5
|
+
`src/app/profile/page.tsx`) demonstrate all of them; imitate the exemplars
|
|
6
|
+
before inventing anything.
|
|
7
|
+
|
|
8
|
+
## File layout
|
|
9
|
+
|
|
10
|
+
```text
|
|
11
|
+
contracts/<domain>.openapi.yaml wire contract (OpenAPI 3.0)
|
|
12
|
+
src/app/<route>/page.tsx one page per route, always "use client"
|
|
13
|
+
src/auth/AuthProvider.tsx SSO stub — consume, never reimplement
|
|
14
|
+
src/components/ design system (import from '@/components')
|
|
15
|
+
src/services/<domain>/port.ts typed interface + factory type
|
|
16
|
+
src/services/<domain>/mock.ts mock adapter with fixture data
|
|
17
|
+
src/services/registry.ts the only place adapters are wired to ports
|
|
18
|
+
src/theme/ tokens + component CSS
|
|
19
|
+
tests/<route>.page.test.tsx one component test file per page
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Imports use the `@/` alias (`@/components`, `@/services/registry`); no deep
|
|
23
|
+
relative paths across top-level folders.
|
|
24
|
+
|
|
25
|
+
## Pages
|
|
26
|
+
|
|
27
|
+
- Every page starts with `'use client'` and default-exports the page
|
|
28
|
+
component. No server components fetching data, no API routes.
|
|
29
|
+
- Every page renders exactly one `PageLayout` at its root and puts content
|
|
30
|
+
in `Card`s.
|
|
31
|
+
- Get the signed-in user from `useAuth()`. Never implement login, tokens, or
|
|
32
|
+
redirects.
|
|
33
|
+
- Loading states: hold `null` until the port resolves and render
|
|
34
|
+
`<p className="db-loading">…</p>` meanwhile (see the exemplars).
|
|
35
|
+
|
|
36
|
+
## Components
|
|
37
|
+
|
|
38
|
+
- Compose the design system: `Button`, `Field`, `Form`, `DataTable`,
|
|
39
|
+
`Stepper`, `Card`, `PageLayout`. Do not add external UI kits and do not
|
|
40
|
+
hand-roll tables, labels, or submit handling that a component covers.
|
|
41
|
+
- Tabular data goes through `DataTable` with declarative columns.
|
|
42
|
+
- Every form control sits inside a `Field` (label + error handled for you)
|
|
43
|
+
and every form is a `Form` render prop (values, errors, setValue,
|
|
44
|
+
submitting). Validation is a pure function next to the page returning a
|
|
45
|
+
`ValidationErrors<T>` map.
|
|
46
|
+
- Styling: use the `db-*` classes from `src/theme/components.css`, which
|
|
47
|
+
consume only the custom properties in `src/theme/tokens.css`. No inline
|
|
48
|
+
colors, no new CSS files per page, no CSS-in-JS.
|
|
49
|
+
|
|
50
|
+
## Services (ports and adapters)
|
|
51
|
+
|
|
52
|
+
- No `fetch`/network calls in components — ever. Pages call ports; adapters
|
|
53
|
+
talk to the gateway.
|
|
54
|
+
- Each domain gets `src/services/<domain>/port.ts` (interface + `...Factory`
|
|
55
|
+
type), `src/services/<domain>/mock.ts` (deterministic fixture data, small
|
|
56
|
+
artificial delay), and `contracts/<domain>.openapi.yaml` matching the port.
|
|
57
|
+
- Pages obtain ports only from `src/services/registry.ts`. Swapping a mock
|
|
58
|
+
for a real adapter is a one-line change there; pages never import adapters
|
|
59
|
+
directly.
|
|
60
|
+
|
|
61
|
+
## Tests
|
|
62
|
+
|
|
63
|
+
- One test file per page under `tests/`, named `<route>.page.test.tsx`,
|
|
64
|
+
written with Vitest + React Testing Library.
|
|
65
|
+
- Style: `vi.mock('@/services/registry', …)` with instrumented port
|
|
66
|
+
functions, render the page inside `AuthProvider`, then assert (1) fields
|
|
67
|
+
or rows render, (2) validation fires and blocks the port on bad input,
|
|
68
|
+
(3) the port is called with the expected payload.
|
|
69
|
+
- Tests are deterministic and network-free.
|
|
70
|
+
|
|
71
|
+
## TypeScript and lint
|
|
72
|
+
|
|
73
|
+
- `strict` TypeScript; no `any`, no type assertions (`as`), no `@ts-ignore`.
|
|
74
|
+
- Model domain data with `readonly` interfaces exported from the port.
|
|
75
|
+
- Gates that must stay green: `pnpm typecheck && pnpm lint && pnpm test &&
|
|
76
|
+
pnpm build`.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# demo-bank-nextjs
|
|
2
|
+
|
|
3
|
+
Synthetic, client-only Next.js SPA for a fictional bank ("DemoBank"). This is
|
|
4
|
+
the **destination fixture** for the llm4ts bank-conversion PoC: converted
|
|
5
|
+
legacy pages land here, and the convert flow judges them by how well they
|
|
6
|
+
imitate this repo's house style (see `CONTRIBUTING.md` and the exemplar
|
|
7
|
+
pages `src/app/cards/page.tsx` and `src/app/profile/page.tsx`).
|
|
8
|
+
|
|
9
|
+
Everything is fake: SSO is a stubbed `AuthProvider`, service adapters are
|
|
10
|
+
in-memory mocks behind typed ports, and the data is deterministic fixture
|
|
11
|
+
data. No real bank, brand, or person is referenced.
|
|
12
|
+
|
|
13
|
+
## Install and run
|
|
14
|
+
|
|
15
|
+
This package is standalone — it is **not** part of the llm4ts pnpm
|
|
16
|
+
workspace, so install with the workspace ignored:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
pnpm install --ignore-workspace
|
|
20
|
+
pnpm dev # local dev server
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Gates (the convert flow's hard gates — all must pass):
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
pnpm typecheck && pnpm lint && pnpm test && pnpm build
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
`pnpm build` produces a static export in `out/` (`output: 'export'`; there
|
|
30
|
+
is no server runtime).
|
|
31
|
+
|
|
32
|
+
## Offline notes
|
|
33
|
+
|
|
34
|
+
- `pnpm-lock.yaml` is committed; installs are deterministic.
|
|
35
|
+
- To run on a machine without network (e.g. workshop stage): warm the pnpm
|
|
36
|
+
store once while online with `pnpm install --ignore-workspace` here, then
|
|
37
|
+
in a seeded copy run `pnpm install --ignore-workspace --offline` — pnpm
|
|
38
|
+
resolves everything from the lockfile and the local store.
|
|
39
|
+
- Tests, typecheck, lint, and build never touch the network.
|
|
40
|
+
|
|
41
|
+
## Seeding a working copy
|
|
42
|
+
|
|
43
|
+
The fixture is materialized as a standalone git repository by
|
|
44
|
+
`../seed-nextjs.mjs` (node_modules and build output are excluded; the
|
|
45
|
+
initial commit is deterministic). `../smoke-nextjs.mjs` seeds into a temp
|
|
46
|
+
dir and asserts the expected files exist.
|