@open-rap/compiler 0.0.0-stage → 0.1.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.
Files changed (227) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +21 -2
  3. package/dist/agent/server.d.ts +35 -0
  4. package/dist/agent/server.js +408 -0
  5. package/dist/agent/server.js.map +1 -0
  6. package/dist/authoring/abapgit.d.ts +38 -0
  7. package/dist/authoring/abapgit.js +242 -0
  8. package/dist/authoring/abapgit.js.map +1 -0
  9. package/dist/authoring/catalog.d.ts +48 -0
  10. package/dist/authoring/catalog.js +117 -0
  11. package/dist/authoring/catalog.js.map +1 -0
  12. package/dist/authoring/floorplan.d.ts +28 -0
  13. package/dist/authoring/floorplan.js +31 -0
  14. package/dist/authoring/floorplan.js.map +1 -0
  15. package/dist/authoring/generate.d.ts +57 -0
  16. package/dist/authoring/generate.js +630 -0
  17. package/dist/authoring/generate.js.map +1 -0
  18. package/dist/authoring/mcp.d.ts +15 -0
  19. package/dist/authoring/mcp.js +52 -0
  20. package/dist/authoring/mcp.js.map +1 -0
  21. package/dist/authoring/new.d.ts +35 -0
  22. package/dist/authoring/new.js +389 -0
  23. package/dist/authoring/new.js.map +1 -0
  24. package/dist/bdef/ast.d.ts +249 -0
  25. package/dist/bdef/ast.js +3 -0
  26. package/dist/bdef/ast.js.map +1 -0
  27. package/dist/bdef/lexer.d.ts +105 -0
  28. package/dist/bdef/lexer.js +148 -0
  29. package/dist/bdef/lexer.js.map +1 -0
  30. package/dist/bdef/parser.d.ts +22 -0
  31. package/dist/bdef/parser.js +1012 -0
  32. package/dist/bdef/parser.js.map +1 -0
  33. package/dist/build.d.ts +26 -0
  34. package/dist/build.js +62 -0
  35. package/dist/build.js.map +1 -0
  36. package/dist/cds/adapter.d.ts +91 -0
  37. package/dist/cds/adapter.js +381 -0
  38. package/dist/cds/adapter.js.map +1 -0
  39. package/dist/cds/expression-ast.d.ts +65 -0
  40. package/dist/cds/expression-ast.js +330 -0
  41. package/dist/cds/expression-ast.js.map +1 -0
  42. package/dist/cli.d.ts +9 -0
  43. package/dist/cli.js +485 -0
  44. package/dist/cli.js.map +1 -0
  45. package/dist/dcl/parser.d.ts +59 -0
  46. package/dist/dcl/parser.js +338 -0
  47. package/dist/dcl/parser.js.map +1 -0
  48. package/dist/ddic/catalog.d.ts +17 -0
  49. package/dist/ddic/catalog.js +211 -0
  50. package/dist/ddic/catalog.js.map +1 -0
  51. package/dist/ddic/cds-types.d.ts +47 -0
  52. package/dist/ddic/cds-types.js +131 -0
  53. package/dist/ddic/cds-types.js.map +1 -0
  54. package/dist/ddic/table-source.d.ts +70 -0
  55. package/dist/ddic/table-source.js +500 -0
  56. package/dist/ddic/table-source.js.map +1 -0
  57. package/dist/ddic/xml.d.ts +65 -0
  58. package/dist/ddic/xml.js +201 -0
  59. package/dist/ddic/xml.js.map +1 -0
  60. package/dist/dev.d.ts +128 -0
  61. package/dist/dev.js +434 -0
  62. package/dist/dev.js.map +1 -0
  63. package/dist/diagnostics.d.ts +33 -0
  64. package/dist/diagnostics.js +53 -0
  65. package/dist/diagnostics.js.map +1 -0
  66. package/dist/gen/abap/derived-types.d.ts +26 -0
  67. package/dist/gen/abap/derived-types.js +323 -0
  68. package/dist/gen/abap/derived-types.js.map +1 -0
  69. package/dist/gen/abap/eml.d.ts +118 -0
  70. package/dist/gen/abap/eml.js +362 -0
  71. package/dist/gen/abap/eml.js.map +1 -0
  72. package/dist/gen/abap/enums.d.ts +13 -0
  73. package/dist/gen/abap/enums.js +74 -0
  74. package/dist/gen/abap/enums.js.map +1 -0
  75. package/dist/gen/abap/framework-http.d.ts +14 -0
  76. package/dist/gen/abap/framework-http.js +1049 -0
  77. package/dist/gen/abap/framework-http.js.map +1 -0
  78. package/dist/gen/abap/framework-query.d.ts +14 -0
  79. package/dist/gen/abap/framework-query.js +225 -0
  80. package/dist/gen/abap/framework-query.js.map +1 -0
  81. package/dist/gen/abap/framework-utils.d.ts +29 -0
  82. package/dist/gen/abap/framework-utils.js +3707 -0
  83. package/dist/gen/abap/framework-utils.js.map +1 -0
  84. package/dist/gen/abap/framework.d.ts +12 -0
  85. package/dist/gen/abap/framework.js +480 -0
  86. package/dist/gen/abap/framework.js.map +1 -0
  87. package/dist/gen/abap/generate.d.ts +40 -0
  88. package/dist/gen/abap/generate.js +238 -0
  89. package/dist/gen/abap/generate.js.map +1 -0
  90. package/dist/gen/abap/rewrite.d.ts +82 -0
  91. package/dist/gen/abap/rewrite.js +957 -0
  92. package/dist/gen/abap/rewrite.js.map +1 -0
  93. package/dist/gen/abap/shadow.d.ts +25 -0
  94. package/dist/gen/abap/shadow.js +175 -0
  95. package/dist/gen/abap/shadow.js.map +1 -0
  96. package/dist/gen/abap/tokens.d.ts +33 -0
  97. package/dist/gen/abap/tokens.js +87 -0
  98. package/dist/gen/abap/tokens.js.map +1 -0
  99. package/dist/gen/app/index.d.ts +25 -0
  100. package/dist/gen/app/index.js +322 -0
  101. package/dist/gen/app/index.js.map +1 -0
  102. package/dist/gen/csdl.d.ts +11 -0
  103. package/dist/gen/csdl.js +562 -0
  104. package/dist/gen/csdl.js.map +1 -0
  105. package/dist/gen/deploy.d.ts +12 -0
  106. package/dist/gen/deploy.js +53 -0
  107. package/dist/gen/deploy.js.map +1 -0
  108. package/dist/gen/docs/index.d.ts +35 -0
  109. package/dist/gen/docs/index.js +267 -0
  110. package/dist/gen/docs/index.js.map +1 -0
  111. package/dist/gen/docs/markdown.d.ts +23 -0
  112. package/dist/gen/docs/markdown.js +187 -0
  113. package/dist/gen/docs/markdown.js.map +1 -0
  114. package/dist/gen/docs/site.d.ts +17 -0
  115. package/dist/gen/docs/site.js +106 -0
  116. package/dist/gen/docs/site.js.map +1 -0
  117. package/dist/gen/keycloak.d.ts +21 -0
  118. package/dist/gen/keycloak.js +90 -0
  119. package/dist/gen/keycloak.js.map +1 -0
  120. package/dist/gen/launchpad/index.d.ts +48 -0
  121. package/dist/gen/launchpad/index.js +302 -0
  122. package/dist/gen/launchpad/index.js.map +1 -0
  123. package/dist/gen/launchpad/ui.d.ts +14 -0
  124. package/dist/gen/launchpad/ui.js +350 -0
  125. package/dist/gen/launchpad/ui.js.map +1 -0
  126. package/dist/gen/mcp.d.ts +23 -0
  127. package/dist/gen/mcp.js +244 -0
  128. package/dist/gen/mcp.js.map +1 -0
  129. package/dist/gen/sql-expressions.d.ts +12 -0
  130. package/dist/gen/sql-expressions.js +136 -0
  131. package/dist/gen/sql-expressions.js.map +1 -0
  132. package/dist/gen/sql.d.ts +38 -0
  133. package/dist/gen/sql.js +612 -0
  134. package/dist/gen/sql.js.map +1 -0
  135. package/dist/gen/ui/index.d.ts +7 -0
  136. package/dist/gen/ui/index.js +27 -0
  137. package/dist/gen/ui/index.js.map +1 -0
  138. package/dist/gen/ui/layout.d.ts +230 -0
  139. package/dist/gen/ui/layout.js +511 -0
  140. package/dist/gen/ui/layout.js.map +1 -0
  141. package/dist/gen/ui/static.d.ts +55 -0
  142. package/dist/gen/ui/static.js +2901 -0
  143. package/dist/gen/ui/static.js.map +1 -0
  144. package/dist/gen/ui/views.d.ts +10 -0
  145. package/dist/gen/ui/views.js +511 -0
  146. package/dist/gen/ui/views.js.map +1 -0
  147. package/dist/gen/vendor.d.ts +23 -0
  148. package/dist/gen/vendor.js +68 -0
  149. package/dist/gen/vendor.js.map +1 -0
  150. package/dist/gen/xml.d.ts +9 -0
  151. package/dist/gen/xml.js +42 -0
  152. package/dist/gen/xml.js.map +1 -0
  153. package/dist/index.d.ts +20 -0
  154. package/dist/index.js +20 -0
  155. package/dist/index.js.map +1 -0
  156. package/dist/input/project.d.ts +50 -0
  157. package/dist/input/project.js +128 -0
  158. package/dist/input/project.js.map +1 -0
  159. package/dist/ir/access-controls.d.ts +11 -0
  160. package/dist/ir/access-controls.js +148 -0
  161. package/dist/ir/access-controls.js.map +1 -0
  162. package/dist/ir/authorizations.d.ts +25 -0
  163. package/dist/ir/authorizations.js +178 -0
  164. package/dist/ir/authorizations.js.map +1 -0
  165. package/dist/ir/behaviors.d.ts +16 -0
  166. package/dist/ir/behaviors.js +548 -0
  167. package/dist/ir/behaviors.js.map +1 -0
  168. package/dist/ir/builder.d.ts +20 -0
  169. package/dist/ir/builder.js +505 -0
  170. package/dist/ir/builder.js.map +1 -0
  171. package/dist/ir/config.d.ts +25 -0
  172. package/dist/ir/config.js +130 -0
  173. package/dist/ir/config.js.map +1 -0
  174. package/dist/ir/dictionary.d.ts +54 -0
  175. package/dist/ir/dictionary.js +328 -0
  176. package/dist/ir/dictionary.js.map +1 -0
  177. package/dist/ir/entities.d.ts +58 -0
  178. package/dist/ir/entities.js +676 -0
  179. package/dist/ir/entities.js.map +1 -0
  180. package/dist/ir/expressions.d.ts +33 -0
  181. package/dist/ir/expressions.js +327 -0
  182. package/dist/ir/expressions.js.map +1 -0
  183. package/dist/ir/handlers.d.ts +63 -0
  184. package/dist/ir/handlers.js +398 -0
  185. package/dist/ir/handlers.js.map +1 -0
  186. package/dist/ir/number-ranges.d.ts +24 -0
  187. package/dist/ir/number-ranges.js +74 -0
  188. package/dist/ir/number-ranges.js.map +1 -0
  189. package/dist/ir/seed.d.ts +23 -0
  190. package/dist/ir/seed.js +78 -0
  191. package/dist/ir/seed.js.map +1 -0
  192. package/dist/ir/service.d.ts +21 -0
  193. package/dist/ir/service.js +96 -0
  194. package/dist/ir/service.js.map +1 -0
  195. package/dist/launchpad/config.d.ts +47 -0
  196. package/dist/launchpad/config.js +321 -0
  197. package/dist/launchpad/config.js.map +1 -0
  198. package/dist/launchpad/workspace.d.ts +48 -0
  199. package/dist/launchpad/workspace.js +166 -0
  200. package/dist/launchpad/workspace.js.map +1 -0
  201. package/dist/srvd/parser.d.ts +36 -0
  202. package/dist/srvd/parser.js +193 -0
  203. package/dist/srvd/parser.js.map +1 -0
  204. package/dist/standard/data.d.ts +18 -0
  205. package/dist/standard/data.js +534 -0
  206. package/dist/standard/data.js.map +1 -0
  207. package/dist/standard/index.d.ts +36 -0
  208. package/dist/standard/index.js +507 -0
  209. package/dist/standard/index.js.map +1 -0
  210. package/dist/version.d.ts +2 -0
  211. package/dist/version.js +4 -0
  212. package/dist/version.js.map +1 -0
  213. package/docs/AGENTS.md +79 -0
  214. package/docs/ANNOTATIONS.md +76 -0
  215. package/docs/DECISIONS.md +1526 -0
  216. package/docs/DEPLOYMENT.md +113 -0
  217. package/docs/DIAGNOSTICS.md +116 -0
  218. package/docs/FEATURES.md +287 -0
  219. package/docs/GUIDE.md +560 -0
  220. package/docs/KNOWN_GAPS.md +216 -0
  221. package/docs/MCP.md +84 -0
  222. package/docs/PLAN.md +690 -0
  223. package/docs/README.md +148 -0
  224. package/docs/REMOTE_APIS.md +121 -0
  225. package/docs/ROADMAP.md +35 -0
  226. package/docs/UTILITIES.md +95 -0
  227. package/package.json +49 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csdl.js","sourceRoot":"","sources":["../../src/gen/csdl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Deployment files of a generated application or launchpad (decision D50): a Cloud Foundry
3
+ * manifest (SAP BTP), next to the Dockerfile. The runtime reads the route and the bound
4
+ * PostgreSQL service of Cloud Foundry by itself (VCAP_APPLICATION, VCAP_SERVICES).
5
+ */
6
+ export declare function cloudFoundryManifest(name: string, options: {
7
+ database: boolean;
8
+ memory?: string;
9
+ }): string;
10
+ export declare const CFIGNORE = "node_modules\ndata\n.env\n*.log\n";
11
+ /** The section "Deploy" of the README of a generated application or launchpad. */
12
+ export declare function deploySection(name: string, kind: "application" | "launchpad"): string;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Deployment files of a generated application or launchpad (decision D50): a Cloud Foundry
3
+ * manifest (SAP BTP), next to the Dockerfile. The runtime reads the route and the bound
4
+ * PostgreSQL service of Cloud Foundry by itself (VCAP_APPLICATION, VCAP_SERVICES).
5
+ */
6
+ export function cloudFoundryManifest(name, options) {
7
+ return `# Cloud Foundry (SAP BTP, Cloud Foundry runtime): cf push
8
+ # The runtime reads its route (PUBLIC_URL) and the bound PostgreSQL service (DATABASE_URL) by itself.
9
+ # Secrets never go in this file: cf set-env ${name} SESSION_SECRET <random>, OIDC_CLIENT_SECRET <secret>.
10
+ applications:
11
+ - name: ${name}
12
+ memory: ${options.memory ?? "512M"}
13
+ disk_quota: 1G
14
+ instances: 1
15
+ buildpacks:
16
+ - nodejs_buildpack
17
+ command: npm start
18
+ health-check-type: http
19
+ health-check-http-endpoint: /health
20
+ env:
21
+ NODE_ENV: production
22
+ # an OpenID Connect identity provider: SAP Cloud Identity Services, Keycloak, Microsoft Entra ID…
23
+ AUTH_MODE: oidc
24
+ OIDC_ISSUER: https://<tenant>.accounts.ondemand.com
25
+ OIDC_CLIENT_ID: <client id>
26
+ ${options.database ? ` services:
27
+ # cf create-service postgresql-db <plan> ${name}-db
28
+ - ${name}-db
29
+ ` : ""}`;
30
+ }
31
+ export const CFIGNORE = `node_modules
32
+ data
33
+ .env
34
+ *.log
35
+ `;
36
+ /** The section "Deploy" of the README of a generated application or launchpad. */
37
+ export function deploySection(name, kind) {
38
+ return `
39
+ ## Deploy
40
+
41
+ The ${kind} runs anywhere Node.js 22 or a container runs. Outside \`localhost\`, set at least
42
+ \`PUBLIC_URL\` (the address users see, for the OIDC redirects), \`AUTH_MODE=oidc\` with an identity
43
+ provider, a random \`SESSION_SECRET\`${kind === "application" ? " and a PostgreSQL database (`DATABASE_URL`, `DATABASE_CA` for its certificate)" : ""}.
44
+
45
+ - **Docker** (any VM, Kubernetes, Azure Container Apps, Google Cloud Run…): \`docker build -t ${name} .\`
46
+ then run the image with the variables of \`.env.example\`.
47
+ - **SAP BTP, Cloud Foundry**: ${kind === "application" ? `\`cf create-service postgresql-db <plan> ${name}-db\`, ` : ""}fill the
48
+ identity provider in \`manifest.yml\`, \`cf set-env ${name} SESSION_SECRET <random>\`, then \`cf push\`.
49
+ The route and the bound database are read from \`VCAP_APPLICATION\` and \`VCAP_SERVICES\`.
50
+ - **A machine of your network**: \`npm install && npm start\` (\`HOST=0.0.0.0\` by default).
51
+ `;
52
+ }
53
+ //# sourceMappingURL=deploy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/gen/deploy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,OAA+C;IAChG,OAAO;;8CAEqC,IAAI;;YAEtC,IAAI;cACF,OAAO,CAAC,MAAM,IAAI,MAAM;;;;;;;;;;;;;;EAcpC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;iDAC4B,IAAI;UAC3C,IAAI;CACb,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACT,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;CAIvB,CAAC;AAEF,kFAAkF;AAClF,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,IAAiC;IAC3E,OAAO;;;MAGH,IAAI;;uCAE6B,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,gFAAgF,CAAC,CAAC,CAAC,EAAE;;gGAErD,IAAI;;gCAEpE,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,4CAA4C,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;wDAC/D,IAAI;;;CAG3D,CAAC;AACF,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * The documentation app of `rapt dev` (decision D49): the documentation of Open RAP Runtime (README,
3
+ * guide, features, diagnostics, decisions…) as an OpenUI5 application of the development
4
+ * launchpad, with a search. The pages are rendered from Markdown when the app is built.
5
+ */
6
+ import { type RenderOptions } from "./markdown.js";
7
+ export interface DocPage {
8
+ id: string;
9
+ title: string;
10
+ /** The file it comes from (README.md, docs/GUIDE.md…). */
11
+ file: string;
12
+ html: string;
13
+ /** Plain text, for the search. */
14
+ text: string;
15
+ headings: Array<{
16
+ id: string;
17
+ title: string;
18
+ level: number;
19
+ }>;
20
+ }
21
+ /** The folder of the documentation: copied next to the compiled compiler, or that of the repository. */
22
+ export declare function documentationDir(): string | undefined;
23
+ /** The Markdown of the documentation, page by page (for `rapt agent`, D64). */
24
+ export declare function documentationSources(dir?: string | undefined): Array<{
25
+ id: string;
26
+ file: string;
27
+ title: string;
28
+ markdown: string;
29
+ }>;
30
+ export declare function documentationPages(dir?: string | undefined, options?: RenderOptions): DocPage[];
31
+ /** The files of the documentation app (`docs/` of the development build). */
32
+ export declare function generateDocsApp(pages?: DocPage[]): Array<{
33
+ path: string;
34
+ content: string;
35
+ }>;
@@ -0,0 +1,267 @@
1
+ /**
2
+ * The documentation app of `rapt dev` (decision D49): the documentation of Open RAP Runtime (README,
3
+ * guide, features, diagnostics, decisions…) as an OpenUI5 application of the development
4
+ * launchpad, with a search. The pages are rendered from Markdown when the app is built.
5
+ */
6
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
7
+ import path from "node:path";
8
+ import { fileURLToPath } from "node:url";
9
+ import { SHELL_STYLE } from "../ui/static.js";
10
+ import { headingId, pageId, renderMarkdown } from "./markdown.js";
11
+ /** The order of the pages; the others follow, by name. */
12
+ const ORDER = ["README.md", "GUIDE.md", "FEATURES.md", "ANNOTATIONS.md", "DIAGNOSTICS.md", "DEPLOYMENT.md", "MCP.md", "UTILITIES.md", "REMOTE_APIS.md", "KNOWN_GAPS.md", "ROADMAP.md", "AGENTS.md", "DECISIONS.md", "PLAN.md"];
13
+ /** The folder of the documentation: copied next to the compiled compiler, or that of the repository. */
14
+ export function documentationDir() {
15
+ const here = path.dirname(fileURLToPath(import.meta.url));
16
+ for (const candidate of [path.join(here, "..", "..", "..", "docs"), path.join(here, "..", "..", "..", "..", "..", "docs")]) {
17
+ if (existsSync(path.join(candidate, "FEATURES.md"))) {
18
+ return candidate;
19
+ }
20
+ }
21
+ return undefined;
22
+ }
23
+ /** The Markdown files of the documentation folder (and, in the repository, the files of its root). */
24
+ function markdownFiles(dir) {
25
+ const files = readdirSync(dir).filter((f) => f.toLowerCase().endsWith(".md")).map((f) => path.join(dir, f));
26
+ const root = path.dirname(dir);
27
+ for (const name of ["README.md", "KNOWN_GAPS.md", "AGENTS.md", "PLAN.md"]) {
28
+ if (!files.some((f) => path.basename(f) === name) && existsSync(path.join(root, name)) && existsSync(path.join(root, "pnpm-workspace.yaml"))) {
29
+ files.push(path.join(root, name));
30
+ }
31
+ }
32
+ const rank = (f) => {
33
+ const i = ORDER.indexOf(path.basename(f));
34
+ return i < 0 ? ORDER.length : i;
35
+ };
36
+ return files.sort((a, b) => rank(a) - rank(b) || path.basename(a).localeCompare(path.basename(b)));
37
+ }
38
+ /** The Markdown of the documentation, page by page (for `rapt agent`, D64). */
39
+ export function documentationSources(dir = documentationDir()) {
40
+ if (dir === undefined) {
41
+ return [];
42
+ }
43
+ return markdownFiles(dir).map((file) => {
44
+ const markdown = readFileSync(file, "utf8");
45
+ const name = path.basename(file);
46
+ const first = /^#\s+(.+)$/m.exec(markdown)?.[1]?.replace(/`/g, "");
47
+ return { id: pageId(name), file: name, title: name === "README.md" ? "Open RAP Runtime" : (first ?? name), markdown };
48
+ });
49
+ }
50
+ export function documentationPages(dir = documentationDir(), options = {}) {
51
+ if (dir === undefined) {
52
+ return [];
53
+ }
54
+ return markdownFiles(dir).map((file) => {
55
+ const markdown = readFileSync(file, "utf8");
56
+ const headings = [...markdown.matchAll(/^(#{1,3})\s+(.+)$/gm)].map((m) => ({ id: `anchor-${headingId(m[2] ?? "")}`, title: (m[2] ?? "").replace(/`/g, ""), level: m[1]?.length ?? 1 }));
57
+ const name = path.basename(file);
58
+ return {
59
+ id: pageId(name),
60
+ title: name === "README.md" ? "Open RAP Runtime" : (headings[0]?.title ?? name),
61
+ file: name,
62
+ html: renderMarkdown(markdown, options),
63
+ text: markdown.replace(/[#*`|>[\]()_-]+/g, " ").replace(/\s+/g, " "),
64
+ headings: headings.filter((h) => h.level > 1),
65
+ };
66
+ });
67
+ }
68
+ const INDEX = `<!DOCTYPE html>
69
+ <html lang="en">
70
+ <head>
71
+ <meta charset="utf-8">
72
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
73
+ <title>Documentation – Open RAP Runtime</title>
74
+ <script id="sap-ui-bootstrap" src="../resources/sap-ui-core.js"
75
+ data-sap-ui-theme="sap_horizon"
76
+ data-sap-ui-async="true"
77
+ data-sap-ui-compat-version="edge"
78
+ data-sap-ui-resource-roots='{"rapt.docs": "./"}'
79
+ data-sap-ui-on-init="module:sap/ui/core/ComponentSupport"></script>
80
+ <link rel="stylesheet" href="css/style.css">
81
+ <style>html, body { height: 100%; margin: 0; }</style>
82
+ </head>
83
+ <body class="sapUiBody" id="content">
84
+ <div data-sap-ui-component data-name="rapt.docs" data-id="container" data-height="100%" data-settings='{"id": "docs"}' style="height: 100%"></div>
85
+ </body>
86
+ </html>
87
+ `;
88
+ const MANIFEST = `${JSON.stringify({
89
+ _version: "1.65.0",
90
+ "sap.app": { id: "rapt.docs", type: "application", title: "Documentation", applicationVersion: { version: "1.0.0" }, dataSources: { pages: { uri: "pages.json", type: "JSON" } } },
91
+ "sap.ui": { technology: "UI5", deviceTypes: { desktop: true, tablet: true, phone: true } },
92
+ "sap.ui5": {
93
+ rootView: { viewName: "rapt.docs.view.Docs", type: "XML", id: "app" },
94
+ dependencies: { minUI5Version: "1.136.0", libs: { "sap.m": {}, "sap.f": {} } },
95
+ models: { "": { type: "sap.ui.model.json.JSONModel", dataSource: "pages" }, ui: { type: "sap.ui.model.json.JSONModel" } },
96
+ routing: {
97
+ config: { routerClass: "sap.m.routing.Router", async: true },
98
+ routes: [
99
+ { pattern: "", name: "home" },
100
+ { pattern: "page/{page}/:anchor:", name: "page" },
101
+ ],
102
+ },
103
+ },
104
+ }, null, 2)}\n`;
105
+ const COMPONENT = `sap.ui.define(["sap/ui/core/UIComponent"], function (UIComponent) {
106
+ "use strict";
107
+ return UIComponent.extend("rapt.docs.Component", {
108
+ metadata: { manifest: "json", interfaces: ["sap.ui.core.IAsyncContentCreation"] },
109
+ init: function () {
110
+ UIComponent.prototype.init.apply(this, arguments);
111
+ // the view listens to the routes: the router starts once it is created
112
+ var oRouter = this.getRouter();
113
+ this.rootControlLoaded().then(function () {
114
+ oRouter.initialize();
115
+ });
116
+ }
117
+ });
118
+ });
119
+ `;
120
+ const VIEW = `<mvc:View controllerName="rapt.docs.controller.Docs" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" xmlns:f="sap.f" xmlns:core="sap.ui.core" displayBlock="true" height="100%">
121
+ <Page id="shell" showHeader="{= !!\${ui>/shell} }" enableScrolling="false" class="raptShell">
122
+ <customHeader>
123
+ <f:ShellBar id="shellBar" title="Documentation" secondTitle="{ui>/shell/title}" homeIcon="{ui>/shell/logo}" homeIconPressed=".onHome" showNavButton="false"/>
124
+ </customHeader>
125
+ <content>
126
+ <SplitApp id="split" mode="ShowHideMode">
127
+ <masterPages>
128
+ <Page id="master" title="Documentation" class="raptDocsMaster">
129
+ <subHeader>
130
+ <Toolbar><SearchField id="search" liveChange=".onSearch" placeholder="Search the documentation" width="100%"/></Toolbar>
131
+ </subHeader>
132
+ <List id="pages" items="{path: '/', templateShareable: false}" mode="SingleSelectMaster" selectionChange=".onSelect">
133
+ <StandardListItem title="{title}" description="{file}" type="Active" counter="{= \${ui>/hits}[\${id}] || 0 }">
134
+ <customData><core:CustomData key="id" value="{id}"/></customData>
135
+ </StandardListItem>
136
+ </List>
137
+ </Page>
138
+ </masterPages>
139
+ <detailPages>
140
+ <Page id="detail" title="{ui>/title}" class="raptDocsDetail">
141
+ <core:HTML id="html" sanitizeContent="false"/>
142
+ </Page>
143
+ </detailPages>
144
+ </SplitApp>
145
+ </content>
146
+ </Page>
147
+ </mvc:View>
148
+ `;
149
+ const CONTROLLER = `sap.ui.define([
150
+ "sap/ui/core/mvc/Controller",
151
+ "sap/ui/model/Filter",
152
+ "sap/ui/model/FilterOperator"
153
+ ], function (Controller, Filter, FilterOperator) {
154
+ "use strict";
155
+
156
+ return Controller.extend("rapt.docs.controller.Docs", {
157
+ onInit: function () {
158
+ var that = this;
159
+ this._ui = this.getOwnerComponent().getModel("ui");
160
+ this._ui.setData({ title: "", hits: {} });
161
+ this.getOwnerComponent().getRouter().attachRouteMatched(this._onRoute, this);
162
+ // behind the development launchpad: its shell bar, the way home
163
+ fetch("/launchpad/config", { credentials: "same-origin", headers: { accept: "application/json" } })
164
+ .then(function (r) { return r.ok ? r.json() : undefined; })
165
+ .then(function (c) { if (c && c.user) { that._ui.setProperty("/shell", { title: c.title, home: c.home || "/", logo: c.logo || "" }); } })
166
+ .catch(function () { /* standalone */ });
167
+ // links between pages and to the headings of a page
168
+ this.byId("html").attachAfterRendering(function () {
169
+ var oDom = that.byId("html").getDomRef();
170
+ if (oDom && that._anchor) {
171
+ var oTarget = document.getElementById("anchor-" + that._anchor);
172
+ if (oTarget) { oTarget.scrollIntoView(); }
173
+ }
174
+ });
175
+ },
176
+
177
+ _pages: function () {
178
+ return this.getView().getModel().getData() || [];
179
+ },
180
+
181
+ _onRoute: function (oEvent) {
182
+ var that = this;
183
+ var oModel = this.getView().getModel();
184
+ var show = function () {
185
+ var aPages = that._pages();
186
+ var sId = oEvent.getParameter("name") === "page" ? oEvent.getParameter("arguments").page : (aPages[0] || {}).id;
187
+ that._anchor = oEvent.getParameter("arguments").anchor;
188
+ var oPage = aPages.find(function (p) { return p.id === sId; }) || aPages[0];
189
+ if (!oPage) { return; }
190
+ that._ui.setProperty("/title", oPage.title);
191
+ that.byId("html").setContent("<div class='raptDoc'>" + oPage.html + "</div>");
192
+ var oList = that.byId("pages");
193
+ oList.getItems().forEach(function (oItem) {
194
+ if (oItem.data("id") === oPage.id) { oList.setSelectedItem(oItem); }
195
+ });
196
+ that.byId("split").toDetail(that.createId("detail"));
197
+ if (!that._anchor) { that.byId("detail").scrollTo(0); }
198
+ };
199
+ if (oModel.getData() && oModel.getData().length) {
200
+ show();
201
+ } else {
202
+ oModel.dataLoaded().then(show);
203
+ }
204
+ },
205
+
206
+ onSelect: function (oEvent) {
207
+ var sId = oEvent.getParameter("listItem").data("id");
208
+ this.getOwnerComponent().getRouter().navTo("page", { page: sId });
209
+ },
210
+
211
+ onHome: function () {
212
+ window.location.assign(this._ui.getProperty("/shell/home") || "/");
213
+ },
214
+
215
+ /** The pages containing the words searched, with the number of hits. */
216
+ onSearch: function (oEvent) {
217
+ var sQuery = (oEvent.getParameter("newValue") || "").trim().toLowerCase();
218
+ var oHits = {};
219
+ if (sQuery !== "") {
220
+ this._pages().forEach(function (p) {
221
+ var sText = (p.title + " " + p.text).toLowerCase();
222
+ var n = 0;
223
+ var i = sText.indexOf(sQuery);
224
+ while (i >= 0) { n++; i = sText.indexOf(sQuery, i + sQuery.length); }
225
+ oHits[p.id] = n;
226
+ });
227
+ }
228
+ this._ui.setProperty("/hits", oHits);
229
+ this.byId("pages").getBinding("items").filter(sQuery === "" ? [] : new Filter({
230
+ path: "id",
231
+ test: function (sId) { return (oHits[sId] || 0) > 0; }
232
+ }));
233
+ }
234
+ });
235
+ });
236
+ `;
237
+ const STYLE = `${SHELL_STYLE}.raptDoc { padding: 1rem 2rem 3rem 2rem; max-width: 60rem; font-family: var(--sapFontFamily); color: var(--sapTextColor); line-height: 1.5; }
238
+ .raptDoc h1 { font-size: 1.75rem; margin: 0.5rem 0 1rem; }
239
+ .raptDoc h2 { font-size: 1.35rem; margin: 2rem 0 0.75rem; border-bottom: 1px solid var(--sapGroup_TitleBorderColor); padding-bottom: 0.25rem; }
240
+ .raptDoc h3 { font-size: 1.1rem; margin: 1.5rem 0 0.5rem; }
241
+ .raptDoc code { font-family: var(--sapFontFamilyMonospace, monospace); background: var(--sapNeutralBackground, #eef0f2); padding: 0 0.25rem; border-radius: 0.25rem; font-size: 0.875em; }
242
+ .raptDoc pre { background: var(--sapShell_Background, #eff1f2); padding: 0.75rem 1rem; border-radius: 0.5rem; overflow-x: auto; }
243
+ .raptDoc pre code { background: none; padding: 0; }
244
+ .raptDoc table { border-collapse: collapse; margin: 0.75rem 0; font-size: 0.875rem; }
245
+ .raptDoc th, .raptDoc td { border: 1px solid var(--sapList_BorderColor, #d9d9d9); padding: 0.375rem 0.5rem; vertical-align: top; text-align: left; }
246
+ .raptDoc th { background: var(--sapList_HeaderBackground, #f5f6f7); }
247
+ .raptDoc blockquote { margin: 0.75rem 0; padding: 0.25rem 1rem; border-left: 0.25rem solid var(--sapInformativeColor, #0070f2); background: var(--sapInformationBackgroundColor, #f5faff); }
248
+ .raptDoc a { color: var(--sapLinkColor); }
249
+ `;
250
+ /** The files of the documentation app (`docs/` of the development build). */
251
+ export function generateDocsApp(pages = documentationPages()) {
252
+ if (pages.length === 0) {
253
+ // never an empty app: say where the documentation should have been (a packaging problem)
254
+ const text = "The documentation of Open RAP Runtime was not found next to the compiler (packages/compiler/docs). Run pnpm build, or reinstall the VS Code extension.";
255
+ pages = [{ id: "readme", title: "Documentation not found", file: "README.md", html: `<h1 id="anchor-documentation-not-found">Documentation not found</h1><p>${text}</p>`, text, headings: [] }];
256
+ }
257
+ return [
258
+ { path: "index.html", content: INDEX },
259
+ { path: "manifest.json", content: MANIFEST },
260
+ { path: "Component.js", content: COMPONENT },
261
+ { path: "view/Docs.view.xml", content: VIEW },
262
+ { path: "controller/Docs.controller.js", content: CONTROLLER },
263
+ { path: "css/style.css", content: STYLE },
264
+ { path: "pages.json", content: JSON.stringify(pages) },
265
+ ];
266
+ }
267
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/gen/docs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAsB,cAAc,EAAE,MAAM,eAAe,CAAC;AAatF,0DAA0D;AAC1D,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;AAE/N,wGAAwG;AACxG,MAAM,UAAU,gBAAgB;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,KAAK,MAAM,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QAC3H,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;YACpD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,sGAAsG;AACtG,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5G,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC;QAC1E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC;YAC7I,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE;QACjC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrG,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,oBAAoB,CAAC,GAAG,GAAG,gBAAgB,EAAE;IAC3D,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACrC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAG,GAAG,gBAAgB,EAAE,EAAE,OAAO,GAAkB,EAAE;IACtF,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACrC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACxL,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC;YAChB,KAAK,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;YAC/E,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC;YACvC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;YACpE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;SAC9C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;CAmBb,CAAC;AAEF,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,CAChC;IACE,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;IAClL,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;IAC1F,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE,QAAQ,EAAE,qBAAqB,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;QACrE,YAAY,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE;QAC9E,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAAE;QACzH,OAAO,EAAE;YACP,MAAM,EAAE,EAAE,WAAW,EAAE,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE;YAC5D,MAAM,EAAE;gBACN,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC7B,EAAE,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,EAAE;aAClD;SACF;KACF;CACF,EACD,IAAI,EACJ,CAAC,CACF,IAAI,CAAC;AAEN,MAAM,SAAS,GAAG;;;;;;;;;;;;;;CAcjB,CAAC;AAEF,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BZ,CAAC;AAEF,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuFlB,CAAC;AAEF,MAAM,KAAK,GAAG,GAAG,WAAW;;;;;;;;;;;;CAY3B,CAAC;AAEF,6EAA6E;AAC7E,MAAM,UAAU,eAAe,CAAC,KAAK,GAAc,kBAAkB,EAAE;IACrE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,yFAAyF;QACzF,MAAM,IAAI,GAAG,wJAAwJ,CAAC;QACtK,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,0EAA0E,IAAI,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IAClM,CAAC;IACD,OAAO;QACL,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE;QACtC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC5C,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE;QAC5C,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE;QAC7C,EAAE,IAAI,EAAE,+BAA+B,EAAE,OAAO,EAAE,UAAU,EAAE;QAC9D,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE;QACzC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;KACvD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * A small Markdown renderer for the documentation app of `rapt dev` (D49): the subset the
3
+ * documentation of Open RAP Runtime uses — headings, paragraphs, lists (nested), code blocks and
4
+ * inline code, tables, block quotes, links, emphasis. Text is escaped; links to other pages
5
+ * (`FILE.md`, `FILE.md#anchor`) become routes of the app (`#/page/file`). The website renders the
6
+ * same Markdown with its own links and images (`RenderOptions`, D63).
7
+ */
8
+ /** Where a link or an image of the Markdown goes; `null`: the link is shown as plain text. */
9
+ export interface RenderOptions {
10
+ link?: (href: string) => {
11
+ href: string;
12
+ external: boolean;
13
+ } | null;
14
+ image?: (src: string) => string | undefined;
15
+ }
16
+ /** The id of a heading, as GitHub writes it. */
17
+ export declare function headingId(text: string): string;
18
+ /** The page id of a Markdown file name: `docs/DIAGNOSTICS.md` → `diagnostics`. */
19
+ export declare function pageId(file: string): string;
20
+ /** Inline Markdown: code spans first (their content stays as written), then links and emphasis. */
21
+ export declare function inline(text: string, options?: RenderOptions): string;
22
+ /** Renders a Markdown document as HTML. */
23
+ export declare function renderMarkdown(markdown: string, options?: RenderOptions): string;