@open-rap/compiler 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @open-rap/compiler
2
2
 
3
- The compiler of [Open RAP Runtime](https://clementringot.github.io/RAP-Transpiler/): CDS, BDEF,
3
+ The compiler of [Open RAP Runtime](https://clementringot.github.io/Open-Rap-Runtime/): CDS, BDEF,
4
4
  SRVD and DCL parsers, intermediate representation, generators (SQL, OData V4 `$metadata`,
5
5
  transpiled ABAP, OpenUI5 UI) and the command line.
6
6
 
@@ -323,7 +323,7 @@ finds the MCP server of rapt (tools \`rapt_check\`, \`rapt_generate\`, \`rapt_do
323
323
  - Write ABAP Cloud and CDS as in the ABAP Development Tools; RAP managed, with or without draft.
324
324
  - Run \`rapt check .\` after every change until there is no error; the codes are explained in
325
325
  the documentation (tile *Documentation* of \`rapt dev\`, the tool \`rapt_docs_read\` of
326
- \`rapt agent\`, or https://clementringot.github.io/RAP-Transpiler/docs/diagnostics.html).
326
+ \`rapt agent\`, or https://clementringot.github.io/Open-Rap-Runtime/docs/diagnostics.html).
327
327
  - Keep \`rapt/config.json\` in mode \`standard\` when the BO must activate on SAP; \`enhanced\`
328
328
  allows Open RAP Runtime extensions (mandatory fields checked automatically, managed BO on a
329
329
  custom entity).
package/dist/cli.js CHANGED
@@ -71,8 +71,8 @@ Options:
71
71
  --warnings-as-errors
72
72
  -h, --help
73
73
 
74
- Documentation: https://clementringot.github.io/RAP-Transpiler/docs/
75
- Report a bug or request a feature: https://clementringot.github.io/RAP-Transpiler/feedback.html
74
+ Documentation: https://clementringot.github.io/Open-Rap-Runtime/docs/
75
+ Report a bug or request a feature: https://clementringot.github.io/Open-Rap-Runtime/feedback.html
76
76
  `;
77
77
  function report(diagnostics) {
78
78
  for (const d of diagnostics.sorted()) {
@@ -228,7 +228,7 @@ ${rows.join("\n")}
228
228
  function readme(model, name, destinations = []) {
229
229
  return `# ${name}
230
230
 
231
- Application generated by [Open RAP Runtime](https://clementringot.github.io/RAP-Transpiler) from the
231
+ Application generated by [Open RAP Runtime](https://clementringot.github.io/Open-Rap-Runtime) from the
232
232
  RAP service definition \`${model.service.name}\`: an OData V4 service (\`${model.service.path}\`), the
233
233
  managed RAP runtime with the transpiled behavior pool, and an OpenUI5 UI (List Report / Object
234
234
  Page) at \`/ui/\`.
@@ -115,7 +115,7 @@ function readme(name, model) {
115
115
  const tiles = model.groups.flatMap((g) => g.tiles.map((t) => ({ group: g.title, tile: t })));
116
116
  return `# ${name}
117
117
 
118
- Launchpad generated by [Open RAP Runtime](https://clementringot.github.io/RAP-Transpiler): the entry
118
+ Launchpad generated by [Open RAP Runtime](https://clementringot.github.io/Open-Rap-Runtime): the entry
119
119
  point of the applications, as the SAP Fiori launchpad, built with OpenUI5. It shows the tiles
120
120
  assigned to the roles of the user, opens the applications at \`/apps/<id>/\` and forwards the
121
121
  requests of their UIs to their services: the browser sees a single origin and logs in once.
package/docs/DECISIONS.md CHANGED
@@ -1496,8 +1496,8 @@ correspond to points 1 to 13 of §11 of PLAN.md. The milestones M1 to M6 are tho
1496
1496
  (npm organization `open-rap`), the VS Code extension `open-rap-runtime-vscode` ("Open RAP
1497
1497
  Runtime"). Unchanged, so that existing projects keep working: the `rapt` command, the `rapt/`
1498
1498
  folder of the projects, the `.rapt/` build folder, the `rapt_*` tables, the `ZRAP_*` ABAP
1499
- objects. The URL of the website follows the name of the GitHub repository
1500
- (`RAP-Transpiler`) until it is renamed.
1499
+ objects. The URL of the website follows the name of the GitHub repository, renamed
1500
+ `Open-Rap-Runtime` (https://clementringot.github.io/Open-Rap-Runtime/).
1501
1501
  - **Why**: "Open" says open source and without proprietary SAP libraries; "RAP Runtime" says
1502
1502
  what the application runs. The website states that the project is not affiliated with SAP SE.
1503
1503
  - **Tests**: the whole suite (package names, generated applications with `vendor/open-rap-*`,
@@ -1505,6 +1505,8 @@ correspond to points 1 to 13 of §11 of PLAN.md. The milestones M1 to M6 are tho
1505
1505
 
1506
1506
  ## D71 — Feedback: a public feedback repository and a form on the website
1507
1507
 
1508
+ _The issues moved to the repository itself once public: see D74._
1509
+
1508
1510
  - **Context**: the repository is private, so its issues are not open to the users; bug reports
1509
1511
  and feature requests had no place.
1510
1512
  - **Decision**: a public repository, `ClementRingot/open-rap-runtime-feedback`, holds the issues,
@@ -1524,3 +1526,59 @@ correspond to points 1 to 13 of §11 of PLAN.md. The milestones M1 to M6 are tho
1524
1526
  fields, prefill from the query string, URL of the issue with the fields of the bug form,
1525
1527
  fields of the feature form, mobile without horizontal scrolling).
1526
1528
 
1529
+
1530
+ ## D72 — Extension builds: progress, floorplan prompts; the website serves the released .vsix
1531
+
1532
+ - **Context**: in VS Code, *Build the application* kept its progress notification spinning after
1533
+ the build: the message of the result (with its *Open folder* button) was awaited inside the
1534
+ progress, so the progress ended only once the message was answered; the user saw a build that
1535
+ never ended. Building the launchpad asks the floorplan of each application that has none, but
1536
+ the prompt named only the entity set, not the application. The website served a `.vsix` built
1537
+ from `main`, whose version (that of `packages/vscode/package.json`) was not the released one.
1538
+ - **Decision**: the progress covers the call of `rapt` only; the result is shown after it, without
1539
+ being awaited. Every application of the VS Code workspace (each project with a service
1540
+ definition) goes into the one launchpad of the workspace when the launchpad is built: they are
1541
+ added to `launchpad.json` (what is there is kept) before the build; only an application built
1542
+ alone (standalone) stays out of it. The choice reads "Launchpad of the workspace (3
1543
+ applications)" with the names of the applications, never the name of a folder that could be
1544
+ taken for one of them, and "<application> alone (standalone)". The floorplan prompt names the
1545
+ application: the name of its workspace folder,
1546
+ with the folder when they differ ("Helpdesk (Worklist) (helpdesk) — Ticket"); building the
1547
+ launchpad still asks, application by application, the floorplan of every root entity set
1548
+ without one (all of them when no application has a floorplan). The website serves the `.vsix`
1549
+ of the latest GitHub release under its stable name, with its version shown on the page
1550
+ (`%VSIX_VERSION%` of `scripts/build-site.mjs`); the Release workflow runs the Site workflow once
1551
+ the release exists (a release created with the `GITHUB_TOKEN` does not trigger the `release`
1552
+ event). Without a release, the `.vsix` is built from the commit. The website and the links of
1553
+ the project follow the name of the repository, `Open-Rap-Runtime`.
1554
+ - **Tests**: `vscode/test/rapt.test.ts` (name of a project in the prompts, applications of the
1555
+ workspace, URL of the feedback form); a launchpad of three projects (one already built, two without floorplan) under a folder
1556
+ with an accent built by `rapt launchpad` in 2 s.
1557
+
1558
+ ## D73 — The missing abapGit files are written before a build in VS Code
1559
+
1560
+ - **Context**: a project written by hand or by an AI agent can lack its abapGit files
1561
+ (`.abapgit.xml`, the XML of the objects): `rapt build` does not need them, but the sources then
1562
+ do not import into an SAP system with abapGit, which is the purpose of the project.
1563
+ - **Decision**: *Build the application* (standalone or launchpad) and *Build the launchpad* run
1564
+ `rapt abapgit` on each application before building it: the missing files are written, the
1565
+ existing ones are kept. The written files are listed in the log of the extension and announced
1566
+ in a message; the objects that cannot be completed (a table without source) are logged; a
1567
+ failure does not stop the build. The command line (`rapt build`, `rapt launchpad`) writes
1568
+ nothing into the sources: in a terminal or a CI, `rapt abapgit` is run explicitly.
1569
+ - **Why**: the build of the extension is the moment the user hands the application over; the
1570
+ sources that go with it must be importable as they are.
1571
+ - **Tests**: `vscode/test/rapt.test.ts` (missing files written, existing files kept, a second run
1572
+ writes nothing).
1573
+
1574
+ ## D74 — The repository is public: feedback goes to its own issues
1575
+
1576
+ - **Context**: the repository `ClementRingot/Open-RAP-Runtime` becomes public, so its issues are
1577
+ open to the users; the separate feedback repository of D71 is no longer needed.
1578
+ - **Decision**: the feedback form of the website (and so the VS Code command *RAP: Report a bug
1579
+ or request a feature…*) opens a pre-filled issue in the repository itself, with the same issue
1580
+ forms, now in `.github/ISSUE_TEMPLATE` (bug report, feature request; blank issues disabled).
1581
+ The npm packages give the repository and its issues (`repository`, `bugs`). The repository
1582
+ `open-rap-runtime-feedback` points to the new place; its issues stay readable. The rest of D71
1583
+ holds (fields filled from the query string, version and environment from the extension).
1584
+ - **Tests**: `compiler/test/docs.test.ts` (no link to the former name of the repository).
package/docs/FEATURES.md CHANGED
@@ -284,4 +284,4 @@ dependent ETag, remote APIs.
284
284
  | MCP server of rapt for AI coding agents (`rapt agent`), registered in the agent mode of VS Code | ✅ | Check, objects, floorplans, abapGit, documentation (D64). |
285
285
  | npm package `open-rap-runtime` (`rapt`, `npx open-rap-runtime`) | ✅ | D65; archives of `pnpm pack` checked on each tag before publication with `NPM_TOKEN`. |
286
286
  | Website with the documentation | ✅ | D62, D63. |
287
- | Feedback form (website, *RAP: Report a bug or request a feature…*) to the public feedback repository | ✅ | D71. |
287
+ | Feedback form (website, *RAP: Report a bug or request a feature…*) to the issues of the repository | ✅ | D71, D74. |
package/docs/README.md CHANGED
@@ -117,9 +117,8 @@ Open RAP Runtime, contains this documentation and serves the `.vsix` of the late
117
117
  ## Feedback
118
118
 
119
119
  Report a bug or request a feature with the
120
- [feedback form](https://clementringot.github.io/RAP-Transpiler/feedback.html) (it opens a
121
- pre-filled issue in the public
122
- [feedback repository](https://github.com/ClementRingot/open-rap-runtime-feedback)), or in VS Code
120
+ [feedback form](https://clementringot.github.io/Open-Rap-Runtime/feedback.html) (it opens a
121
+ pre-filled issue in the [issues](https://github.com/ClementRingot/Open-RAP-Runtime/issues) of this repository), or in VS Code
123
122
  with *RAP: Report a bug or request a feature…*.
124
123
 
125
124
  ## Contributing
package/package.json CHANGED
@@ -1,10 +1,18 @@
1
1
  {
2
2
  "name": "@open-rap/compiler",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Compiles SAP RAP sources (abapGit format) into a standalone Node.js OData V4 application.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
- "homepage": "https://clementringot.github.io/RAP-Transpiler/",
7
+ "homepage": "https://clementringot.github.io/Open-Rap-Runtime/",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/ClementRingot/Open-RAP-Runtime.git",
11
+ "directory": "packages/compiler"
12
+ },
13
+ "bugs": {
14
+ "url": "https://github.com/ClementRingot/Open-RAP-Runtime/issues"
15
+ },
8
16
  "keywords": [
9
17
  "sap",
10
18
  "rap",
@@ -44,7 +52,7 @@
44
52
  "@abaplint/transpiler": "2.14.24",
45
53
  "chevrotain": "13.2.0",
46
54
  "fast-xml-parser": "5.12.0",
47
- "@open-rap/model": "0.1.0"
55
+ "@open-rap/model": "0.1.2"
48
56
  },
49
57
  "scripts": {
50
58
  "build": "tsc -p tsconfig.build.json && node scripts/copy-docs.mjs"