@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 +1 -1
- package/dist/authoring/new.js +1 -1
- package/dist/cli.js +2 -2
- package/dist/gen/app/index.js +1 -1
- package/dist/gen/launchpad/index.js +1 -1
- package/docs/DECISIONS.md +60 -2
- package/docs/FEATURES.md +1 -1
- package/docs/README.md +2 -3
- package/package.json +11 -3
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/
|
|
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
|
|
package/dist/authoring/new.js
CHANGED
|
@@ -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/
|
|
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/
|
|
75
|
-
Report a bug or request a feature: https://clementringot.github.io/
|
|
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()) {
|
package/dist/gen/app/index.js
CHANGED
|
@@ -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/
|
|
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/
|
|
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
|
-
|
|
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
|
|
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/
|
|
121
|
-
pre-filled issue in the
|
|
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.
|
|
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/
|
|
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.
|
|
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"
|