@open-rap/runtime 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 (144) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +14 -2
  3. package/dist/abap/background.d.ts +14 -0
  4. package/dist/abap/background.js +130 -0
  5. package/dist/abap/background.js.map +1 -0
  6. package/dist/abap/bridge.d.ts +62 -0
  7. package/dist/abap/bridge.js +402 -0
  8. package/dist/abap/bridge.js.map +1 -0
  9. package/dist/abap/convert.d.ts +26 -0
  10. package/dist/abap/convert.js +197 -0
  11. package/dist/abap/convert.js.map +1 -0
  12. package/dist/abap/http.d.ts +34 -0
  13. package/dist/abap/http.js +133 -0
  14. package/dist/abap/http.js.map +1 -0
  15. package/dist/abap/mail.d.ts +10 -0
  16. package/dist/abap/mail.js +83 -0
  17. package/dist/abap/mail.js.map +1 -0
  18. package/dist/abap/odata-client.d.ts +33 -0
  19. package/dist/abap/odata-client.js +576 -0
  20. package/dist/abap/odata-client.js.map +1 -0
  21. package/dist/abap/sql.d.ts +92 -0
  22. package/dist/abap/sql.js +261 -0
  23. package/dist/abap/sql.js.map +1 -0
  24. package/dist/abap/utils.d.ts +41 -0
  25. package/dist/abap/utils.js +976 -0
  26. package/dist/abap/utils.js.map +1 -0
  27. package/dist/app.d.ts +53 -0
  28. package/dist/app.js +169 -0
  29. package/dist/app.js.map +1 -0
  30. package/dist/auth/auth.d.ts +68 -0
  31. package/dist/auth/auth.js +140 -0
  32. package/dist/auth/auth.js.map +1 -0
  33. package/dist/auth/authorizations.d.ts +39 -0
  34. package/dist/auth/authorizations.js +103 -0
  35. package/dist/auth/authorizations.js.map +1 -0
  36. package/dist/auth/business-users.d.ts +15 -0
  37. package/dist/auth/business-users.js +36 -0
  38. package/dist/auth/business-users.js.map +1 -0
  39. package/dist/auth/dev-oauth.d.ts +38 -0
  40. package/dist/auth/dev-oauth.js +156 -0
  41. package/dist/auth/dev-oauth.js.map +1 -0
  42. package/dist/auth/environment.d.ts +7 -0
  43. package/dist/auth/environment.js +57 -0
  44. package/dist/auth/environment.js.map +1 -0
  45. package/dist/auth/session.d.ts +45 -0
  46. package/dist/auth/session.js +257 -0
  47. package/dist/auth/session.js.map +1 -0
  48. package/dist/auth/user.d.ts +21 -0
  49. package/dist/auth/user.js +12 -0
  50. package/dist/auth/user.js.map +1 -0
  51. package/dist/db/database.d.ts +30 -0
  52. package/dist/db/database.js +131 -0
  53. package/dist/db/database.js.map +1 -0
  54. package/dist/db/seed.d.ts +9 -0
  55. package/dist/db/seed.js +63 -0
  56. package/dist/db/seed.js.map +1 -0
  57. package/dist/index.d.ts +20 -0
  58. package/dist/index.js +21 -0
  59. package/dist/index.js.map +1 -0
  60. package/dist/launchpad/dev.d.ts +14 -0
  61. package/dist/launchpad/dev.js +48 -0
  62. package/dist/launchpad/dev.js.map +1 -0
  63. package/dist/launchpad/proxy.d.ts +30 -0
  64. package/dist/launchpad/proxy.js +98 -0
  65. package/dist/launchpad/proxy.js.map +1 -0
  66. package/dist/launchpad/server.d.ts +77 -0
  67. package/dist/launchpad/server.js +177 -0
  68. package/dist/launchpad/server.js.map +1 -0
  69. package/dist/mcp/server.d.ts +22 -0
  70. package/dist/mcp/server.js +222 -0
  71. package/dist/mcp/server.js.map +1 -0
  72. package/dist/odata/access.d.ts +31 -0
  73. package/dist/odata/access.js +142 -0
  74. package/dist/odata/access.js.map +1 -0
  75. package/dist/odata/batch.d.ts +36 -0
  76. package/dist/odata/batch.js +147 -0
  77. package/dist/odata/batch.js.map +1 -0
  78. package/dist/odata/csrf.d.ts +13 -0
  79. package/dist/odata/csrf.js +27 -0
  80. package/dist/odata/csrf.js.map +1 -0
  81. package/dist/odata/custom.d.ts +90 -0
  82. package/dist/odata/custom.js +373 -0
  83. package/dist/odata/custom.js.map +1 -0
  84. package/dist/odata/draft.d.ts +78 -0
  85. package/dist/odata/draft.js +590 -0
  86. package/dist/odata/draft.js.map +1 -0
  87. package/dist/odata/errors.d.ts +27 -0
  88. package/dist/odata/errors.js +41 -0
  89. package/dist/odata/errors.js.map +1 -0
  90. package/dist/odata/handler.d.ts +90 -0
  91. package/dist/odata/handler.js +312 -0
  92. package/dist/odata/handler.js.map +1 -0
  93. package/dist/odata/json.d.ts +23 -0
  94. package/dist/odata/json.js +85 -0
  95. package/dist/odata/json.js.map +1 -0
  96. package/dist/odata/read.d.ts +90 -0
  97. package/dist/odata/read.js +686 -0
  98. package/dist/odata/read.js.map +1 -0
  99. package/dist/odata/service.d.ts +45 -0
  100. package/dist/odata/service.js +145 -0
  101. package/dist/odata/service.js.map +1 -0
  102. package/dist/odata/uri/ast.d.ts +103 -0
  103. package/dist/odata/uri/ast.js +3 -0
  104. package/dist/odata/uri/ast.js.map +1 -0
  105. package/dist/odata/uri/parser.d.ts +26 -0
  106. package/dist/odata/uri/parser.js +697 -0
  107. package/dist/odata/uri/parser.js.map +1 -0
  108. package/dist/odata/write.d.ts +127 -0
  109. package/dist/odata/write.js +799 -0
  110. package/dist/odata/write.js.map +1 -0
  111. package/dist/platform.d.ts +14 -0
  112. package/dist/platform.js +66 -0
  113. package/dist/platform.js.map +1 -0
  114. package/dist/rap/bo.d.ts +76 -0
  115. package/dist/rap/bo.js +184 -0
  116. package/dist/rap/bo.js.map +1 -0
  117. package/dist/rap/kernel.d.ts +7 -0
  118. package/dist/rap/kernel.js +287 -0
  119. package/dist/rap/kernel.js.map +1 -0
  120. package/dist/rap/runtime.d.ts +84 -0
  121. package/dist/rap/runtime.js +128 -0
  122. package/dist/rap/runtime.js.map +1 -0
  123. package/dist/rap/transaction.d.ts +227 -0
  124. package/dist/rap/transaction.js +1385 -0
  125. package/dist/rap/transaction.js.map +1 -0
  126. package/dist/rap/types.d.ts +74 -0
  127. package/dist/rap/types.js +25 -0
  128. package/dist/rap/types.js.map +1 -0
  129. package/dist/server.d.ts +34 -0
  130. package/dist/server.js +114 -0
  131. package/dist/server.js.map +1 -0
  132. package/dist/ui/plugin.d.ts +14 -0
  133. package/dist/ui/plugin.js +47 -0
  134. package/dist/ui/plugin.js.map +1 -0
  135. package/dist/ui/resources.d.ts +22 -0
  136. package/dist/ui/resources.js +88 -0
  137. package/dist/ui/resources.js.map +1 -0
  138. package/dist/ui/variants.d.ts +25 -0
  139. package/dist/ui/variants.js +68 -0
  140. package/dist/ui/variants.js.map +1 -0
  141. package/dist/values.d.ts +43 -0
  142. package/dist/values.js +367 -0
  143. package/dist/values.js.map +1 -0
  144. package/package.json +60 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/odata/write.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * The environment of the cloud platform (decision D50). On Cloud Foundry (SAP BTP), the platform
3
+ * gives the URL of the application (`VCAP_APPLICATION`) and the credentials of the bound services
4
+ * (`VCAP_SERVICES`): a PostgreSQL service gives `DATABASE_URL` (and `DATABASE_CA`), the first route
5
+ * `PUBLIC_URL`. A variable set explicitly always wins.
6
+ */
7
+ export type Environment = Record<string, string | undefined>;
8
+ /** The connection of a PostgreSQL service bound to the application: its URI and certificate. */
9
+ export declare function boundPostgres(vcapServices: string | undefined): {
10
+ url: string;
11
+ ca?: string;
12
+ } | undefined;
13
+ /** The environment of the application, completed with what the platform gives. */
14
+ export declare function platformEnvironment(env: Environment): Environment;
@@ -0,0 +1,66 @@
1
+ /**
2
+ * The environment of the cloud platform (decision D50). On Cloud Foundry (SAP BTP), the platform
3
+ * gives the URL of the application (`VCAP_APPLICATION`) and the credentials of the bound services
4
+ * (`VCAP_SERVICES`): a PostgreSQL service gives `DATABASE_URL` (and `DATABASE_CA`), the first route
5
+ * `PUBLIC_URL`. A variable set explicitly always wins.
6
+ */
7
+ function json(text) {
8
+ if (text === undefined || text === "") {
9
+ return undefined;
10
+ }
11
+ try {
12
+ return JSON.parse(text);
13
+ }
14
+ catch {
15
+ return undefined;
16
+ }
17
+ }
18
+ /** The connection of a PostgreSQL service bound to the application: its URI and certificate. */
19
+ export function boundPostgres(vcapServices) {
20
+ const services = json(vcapServices);
21
+ if (services === undefined) {
22
+ return undefined;
23
+ }
24
+ const all = Object.entries(services).flatMap(([label, list]) => (Array.isArray(list) ? list.map((s) => ({ ...s, label: s.label ?? label })) : []));
25
+ const postgres = all.find((s) => [s.label ?? "", ...(s.tags ?? [])].some((t) => /postgres/i.test(t)));
26
+ const c = postgres?.credentials;
27
+ if (c === undefined) {
28
+ return undefined;
29
+ }
30
+ const text = (key) => (typeof c[key] === "string" || typeof c[key] === "number" ? String(c[key]) : undefined);
31
+ let url = text("uri") ?? text("url");
32
+ if (url === undefined) {
33
+ const host = text("hostname") ?? text("host");
34
+ const database = text("dbname") ?? text("database");
35
+ if (host === undefined || database === undefined) {
36
+ return undefined;
37
+ }
38
+ const user = encodeURIComponent(text("username") ?? text("user") ?? "");
39
+ const password = encodeURIComponent(text("password") ?? "");
40
+ url = `postgres://${user}:${password}@${host}:${text("port") ?? "5432"}/${database}`;
41
+ }
42
+ const ca = text("sslrootcert") ?? text("sslcert");
43
+ return ca === undefined ? { url } : { url, ca };
44
+ }
45
+ /** The environment of the application, completed with what the platform gives. */
46
+ export function platformEnvironment(env) {
47
+ const result = { ...env };
48
+ if ((result["PUBLIC_URL"] ?? "") === "") {
49
+ const application = json(env["VCAP_APPLICATION"]);
50
+ const route = application?.application_uris?.[0] ?? application?.uris?.[0];
51
+ if (route !== undefined) {
52
+ result["PUBLIC_URL"] = `https://${route.replace(/\/+$/, "")}/`;
53
+ }
54
+ }
55
+ if ((result["DATABASE_URL"] ?? "") === "") {
56
+ const postgres = boundPostgres(env["VCAP_SERVICES"]);
57
+ if (postgres !== undefined) {
58
+ result["DATABASE_URL"] = postgres.url;
59
+ if (postgres.ca !== undefined && (result["DATABASE_CA"] ?? "") === "") {
60
+ result["DATABASE_CA"] = postgres.ca;
61
+ }
62
+ }
63
+ }
64
+ return result;
65
+ }
66
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * The business objects of the model as the managed runtime sees them: for each entity of a
3
+ * managed BDEF, its persistent table, keys, parent, lock and authorization masters, ETag and
4
+ * administrative fields.
5
+ */
6
+ import { type AdminSemantics, type AssociationModel, type BehaviorModel, type EntityBehaviorModel, type EntityModel, type FieldCharacteristic, type FieldModel, type Model, type TableModel } from "@open-rap/model";
7
+ import type { Row } from "./types.js";
8
+ export interface BoAssociation {
9
+ name: string;
10
+ /** 1-based index among the associations of the source entity that stay in the BDEF (`bN`). */
11
+ index: number;
12
+ kind: AssociationModel["kind"];
13
+ target: BoEntity;
14
+ /** Source field → target field. */
15
+ on: Array<{
16
+ source: string;
17
+ target: string;
18
+ }>;
19
+ collection: boolean;
20
+ behavior?: EntityBehaviorModel["associations"][number];
21
+ }
22
+ export interface BoEntity {
23
+ bdef: BehaviorModel;
24
+ behavior: EntityBehaviorModel;
25
+ entity: EntityModel;
26
+ /** 1-based index in the BDEF (the `eN` of the derived types). */
27
+ index: number;
28
+ /** Name of the derived types interface (upper case, the key of abap.Classes). */
29
+ iface: string;
30
+ /** Where the instances are read and locked: the persistent table, or the CDS view (unmanaged save). */
31
+ table: TableModel;
32
+ /** CDS field → column of `table` (lower case for a table). */
33
+ columns: Map<string, string>;
34
+ /** Who writes the instances: the runtime, the runtime and save_modified, save_modified alone. */
35
+ saving: "managed" | "additional" | "unmanaged";
36
+ /** The table of `mapping for` (or the persistent table), for INSERT … MAPPING FROM ENTITY. */
37
+ mapped?: {
38
+ table: TableModel;
39
+ columns: Map<string, string>;
40
+ };
41
+ keys: FieldModel[];
42
+ fields: FieldModel[];
43
+ associations: BoAssociation[];
44
+ /** The to-parent association, for child entities. */
45
+ parent?: BoAssociation;
46
+ compositions: BoAssociation[];
47
+ admin: Partial<Record<AdminSemantics, string>>;
48
+ /** Own ETag field (`etag master F`). */
49
+ etagField?: string;
50
+ }
51
+ export declare class BoModel {
52
+ readonly model: Model;
53
+ readonly entities: BoEntity[];
54
+ private readonly byName;
55
+ constructor(model: Model);
56
+ find(entity: string): BoEntity | undefined;
57
+ get(entity: string): BoEntity;
58
+ /** An entity of a BDEF by alias or entity name. */
59
+ inBdef(bdef: string, name: string): BoEntity | undefined;
60
+ association(bo: BoEntity, name: string): BoAssociation | undefined;
61
+ root(bo: BoEntity): BoEntity;
62
+ /** The entity whose lock covers `bo` (`lock dependent by` up to a `lock master`). */
63
+ lockMaster(bo: BoEntity): BoEntity;
64
+ /** The entity whose authorization handlers check `bo`. */
65
+ authorizationMaster(bo: BoEntity): BoEntity;
66
+ /** The entity whose ETag field covers `bo`. */
67
+ etagMaster(bo: BoEntity): BoEntity;
68
+ private master;
69
+ characteristics(bo: BoEntity, field: string): FieldCharacteristic[];
70
+ field(bo: BoEntity, name: string): FieldModel | undefined;
71
+ }
72
+ /** Canonical key string of an instance (its key values in key order). */
73
+ /** The entity whose BDEF mapping (or persistent table) is the table `name`. */
74
+ export declare function entityOfTable(model: BoModel, name: string): BoEntity | undefined;
75
+ export declare function keyString(bo: BoEntity, row: Row): string;
76
+ export declare function keyOf(bo: BoEntity, row: Row): Row;
package/dist/rap/bo.js ADDED
@@ -0,0 +1,184 @@
1
+ /**
2
+ * The business objects of the model as the managed runtime sees them: for each entity of a
3
+ * managed BDEF, its persistent table, keys, parent, lock and authorization masters, ETag and
4
+ * administrative fields.
5
+ */
6
+ import { derivedTypesInterfaceName, findEntity, findTable, same, savingOf, } from "@open-rap/model";
7
+ export class BoModel {
8
+ model;
9
+ entities = [];
10
+ byName = new Map();
11
+ constructor(model) {
12
+ this.model = model;
13
+ for (const bdef of model.behaviors.filter((b) => b.implementationType === "managed")) {
14
+ bdef.entities.forEach((behavior, i) => {
15
+ const entity = findEntity(model, behavior.entity);
16
+ const saving = savingOf(bdef, behavior);
17
+ const persistent = behavior.persistentTable === undefined ? undefined : findTable(model, behavior.persistentTable);
18
+ const mappingTable = persistent ?? (behavior.mapping === undefined ? undefined : findTable(model, behavior.mapping.table));
19
+ if (entity === undefined) {
20
+ return;
21
+ }
22
+ const columnsOf = (table) => {
23
+ const columns = new Map();
24
+ for (const field of entity.fields) {
25
+ if (field.expression !== undefined) {
26
+ continue; // a calculated element (D67) is computed by the view
27
+ }
28
+ const mapped = Object.entries(behavior.mapping?.fields ?? {}).find(([f]) => same(f, field.name))?.[1];
29
+ const column = (mapped ?? field.column ?? field.name).toLowerCase();
30
+ if (table.columns.some((c) => c.name === column)) {
31
+ columns.set(field.name, column);
32
+ }
33
+ }
34
+ return columns;
35
+ };
36
+ let table;
37
+ let columns;
38
+ if (persistent !== undefined && saving !== "unmanaged") {
39
+ table = persistent;
40
+ columns = columnsOf(persistent);
41
+ }
42
+ else if (saving === "unmanaged" && (entity.sqlView !== undefined || entity.kind === "custom")) {
43
+ // no persistent table: the instances are read through the CDS view, or the query class of a custom entity (D43)
44
+ table = { name: entity.sqlView ?? "", columns: entity.fields.map((f) => ({ name: f.name, type: f.type, key: f.key, notNull: false, client: false })) };
45
+ columns = new Map(entity.fields.map((f) => [f.name, f.name]));
46
+ }
47
+ else {
48
+ return;
49
+ }
50
+ const admin = {};
51
+ for (const field of entity.fields) {
52
+ if (field.semantics !== undefined) {
53
+ admin[field.semantics] = field.name;
54
+ }
55
+ }
56
+ const bo = {
57
+ bdef,
58
+ behavior,
59
+ entity,
60
+ index: i + 1,
61
+ iface: derivedTypesInterfaceName(bdef.name),
62
+ table,
63
+ columns,
64
+ saving,
65
+ ...(mappingTable === undefined ? {} : { mapped: { table: mappingTable, columns: columnsOf(mappingTable) } }),
66
+ keys: entity.fields.filter((f) => f.key),
67
+ fields: entity.fields,
68
+ associations: [],
69
+ compositions: [],
70
+ admin,
71
+ ...(behavior.etag?.kind === "master" ? { etagField: fieldName(entity, behavior.etag.field) } : {}),
72
+ };
73
+ this.entities.push(bo);
74
+ this.byName.set(entity.name.toUpperCase(), bo);
75
+ });
76
+ }
77
+ for (const bo of this.entities) {
78
+ for (const association of bo.entity.associations) {
79
+ const target = this.find(association.target);
80
+ if (target === undefined || target.bdef !== bo.bdef) {
81
+ continue;
82
+ }
83
+ const resolved = {
84
+ name: association.name,
85
+ index: bo.associations.length + 1,
86
+ kind: association.kind,
87
+ target,
88
+ on: association.on,
89
+ collection: association.cardinality.max === "*" || association.cardinality.max > 1,
90
+ };
91
+ const behavior = bo.behavior.associations.find((a) => same(a.name, association.name));
92
+ if (behavior !== undefined) {
93
+ resolved.behavior = behavior;
94
+ }
95
+ bo.associations.push(resolved);
96
+ if (association.kind === "toParent") {
97
+ bo.parent = resolved;
98
+ }
99
+ else if (association.kind === "composition") {
100
+ bo.compositions.push(resolved);
101
+ }
102
+ }
103
+ }
104
+ }
105
+ find(entity) {
106
+ return this.byName.get(entity.toUpperCase());
107
+ }
108
+ get(entity) {
109
+ const found = this.find(entity);
110
+ if (found === undefined) {
111
+ throw new Error(`no managed behavior for ${entity}`);
112
+ }
113
+ return found;
114
+ }
115
+ /** An entity of a BDEF by alias or entity name. */
116
+ inBdef(bdef, name) {
117
+ return this.entities.find((e) => same(e.bdef.name, bdef) && (same(e.behavior.alias, name) || same(e.entity.name, name)));
118
+ }
119
+ association(bo, name) {
120
+ return bo.associations.find((a) => same(a.name, name.replace(/^\\/, "")));
121
+ }
122
+ root(bo) {
123
+ let current = bo;
124
+ const seen = new Set();
125
+ while (current.parent !== undefined && !seen.has(current)) {
126
+ seen.add(current);
127
+ current = current.parent.target;
128
+ }
129
+ return current;
130
+ }
131
+ /** The entity whose lock covers `bo` (`lock dependent by` up to a `lock master`). */
132
+ lockMaster(bo) {
133
+ return this.master(bo, (b) => b.behavior.lock);
134
+ }
135
+ /** The entity whose authorization handlers check `bo`. */
136
+ authorizationMaster(bo) {
137
+ return this.master(bo, (b) => b.behavior.authorization);
138
+ }
139
+ /** The entity whose ETag field covers `bo`. */
140
+ etagMaster(bo) {
141
+ return this.master(bo, (b) => b.behavior.etag);
142
+ }
143
+ master(bo, of) {
144
+ let current = bo;
145
+ for (let depth = 0; depth < 20; depth++) {
146
+ const spec = of(current);
147
+ if (spec === undefined || spec.kind === "master") {
148
+ return current;
149
+ }
150
+ const association = this.association(current, spec.by);
151
+ if (association === undefined) {
152
+ return this.root(current);
153
+ }
154
+ current = association.target;
155
+ }
156
+ return current;
157
+ }
158
+ characteristics(bo, field) {
159
+ const own = Object.entries(bo.behavior.fieldCharacteristics).find(([f]) => same(f, field))?.[1] ?? [];
160
+ return this.field(bo, field)?.expression !== undefined && !own.includes("readonly") ? [...own, "readonly"] : own;
161
+ }
162
+ field(bo, name) {
163
+ return bo.fields.find((f) => same(f.name, name));
164
+ }
165
+ }
166
+ function fieldName(entity, name) {
167
+ return entity.fields.find((f) => same(f.name, name))?.name ?? name;
168
+ }
169
+ /** Canonical key string of an instance (its key values in key order). */
170
+ /** The entity whose BDEF mapping (or persistent table) is the table `name`. */
171
+ export function entityOfTable(model, name) {
172
+ return model.entities.find((e) => e.mapped !== undefined && same(e.mapped.table.name, name));
173
+ }
174
+ export function keyString(bo, row) {
175
+ return JSON.stringify(bo.keys.map((k) => row[k.name] ?? null));
176
+ }
177
+ export function keyOf(bo, row) {
178
+ const key = {};
179
+ for (const k of bo.keys) {
180
+ key[k.name] = row[k.name] ?? null;
181
+ }
182
+ return key;
183
+ }
184
+ //# sourceMappingURL=bo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bo.js","sourceRoot":"","sources":["../../src/rap/bo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The EML kernel: JavaScript implementation of the static methods of the clean-room class
3
+ * ZRAP_EML, which the rewrite pass calls for every EML statement of the behavior pools
4
+ * (decision D2). The methods run in the LUW of the handler that executes the statement.
5
+ */
6
+ import type { RapRuntime } from "./runtime.js";
7
+ export declare function installKernel(runtime: RapRuntime): void;