@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,85 @@
1
+ /** OData V4 JSON (odata.metadata=minimal): entities, collections, ETags, IEEE754Compatible. */
2
+ import { ENTITY_CONTROL, FIELD_CONTROL, OPERATION_CONTROL } from "@open-rap/model";
3
+ import { RawJsonNumber, toJson } from "../values.js";
4
+ /** JSON.stringify that writes RawJsonNumber verbatim. */
5
+ export function stringify(value) {
6
+ if (value instanceof RawJsonNumber) {
7
+ return value.text;
8
+ }
9
+ if (value === null || typeof value !== "object") {
10
+ return JSON.stringify(value);
11
+ }
12
+ if (Array.isArray(value)) {
13
+ return `[${value.map(stringify).join(",")}]`;
14
+ }
15
+ return `{${Object.entries(value)
16
+ .filter(([, v]) => v !== undefined)
17
+ .map(([k, v]) => `${JSON.stringify(k)}:${stringify(v)}`)
18
+ .join(",")}}`;
19
+ }
20
+ /** Hidden member of the rows of an `etag dependent` entity: the ETag field of its master (D32). */
21
+ export const DEPENDENT_ETAG = "__etag";
22
+ /** The ETag of a row: its ETag field, or the one of its master (`etag dependent by`). */
23
+ export function etagOf(info, row) {
24
+ const name = info.type.etag ?? (info.type.etagPath === undefined ? undefined : DEPENDENT_ETAG);
25
+ if (name === undefined) {
26
+ return undefined;
27
+ }
28
+ return etagValue(row[name]);
29
+ }
30
+ /** The weak ETag of a value of an ETag field. */
31
+ export function etagValue(value) {
32
+ return `W/"${value === null || value === undefined ? "0" : String(value)}"`;
33
+ }
34
+ export class JsonWriter {
35
+ service;
36
+ read;
37
+ constructor(service, read) {
38
+ this.service = service;
39
+ this.read = read;
40
+ }
41
+ entity(info, row, options, ctx) {
42
+ const result = {};
43
+ const etag = etagOf(info, row);
44
+ if (etag !== undefined) {
45
+ result["@odata.etag"] = etag;
46
+ }
47
+ for (const name of this.read.selectedProperties(info, options)) {
48
+ const { property } = this.service.property(info, name);
49
+ result[name] = toJson(property.edm, (row[name] ?? null), ctx.ieee754);
50
+ }
51
+ for (const control of [ENTITY_CONTROL, OPERATION_CONTROL, FIELD_CONTROL]) {
52
+ const value = row[control];
53
+ if (value !== undefined && isSelected(options, control)) {
54
+ result[control] = value;
55
+ }
56
+ }
57
+ for (const item of options.expand ?? []) {
58
+ const names = item.path[0] === "*" ? [...info.navigations.keys()] : [item.path[0]];
59
+ for (const name of names) {
60
+ const { navigation, target } = this.service.navigationTarget(info, name);
61
+ const value = row[name];
62
+ const nested = item.path[0] === "*" ? {} : item.options;
63
+ if (navigation.collection) {
64
+ const count = row[`${name}@odata.count`];
65
+ if (typeof count === "number") {
66
+ result[`${name}@odata.count`] = count;
67
+ }
68
+ result[name] = Array.isArray(value) ? value.map((r) => this.entity(target, r, nested, ctx)) : [];
69
+ }
70
+ else {
71
+ result[name] = value === null || value === undefined || Array.isArray(value) || typeof value !== "object" ? null : this.entity(target, value, nested, ctx);
72
+ }
73
+ }
74
+ }
75
+ return result;
76
+ }
77
+ contextUrl(info, options, single) {
78
+ const select = options.select !== undefined && !options.select.some((p) => p[0] === "*") ? `(${this.read.selectedProperties(info, options).join(",")})` : "";
79
+ return `$metadata#${info.set.name}${select}${single ? "/$entity" : ""}`;
80
+ }
81
+ }
82
+ function isSelected(options, name) {
83
+ return options.select === undefined || options.select.some((p) => p[0] === "*" || p[0] === name);
84
+ }
85
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/odata/json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Reads: OData query options → parameterized SQL on the views of the CDS entities (decision D4).
3
+ * Identifiers come from the model (white list), values are bound parameters.
4
+ */
5
+ import { type RawBuilder } from "kysely";
6
+ import type { Database } from "../db/database.js";
7
+ import { type CanonicalValue } from "../values.js";
8
+ import type { CustomQueries } from "./custom.js";
9
+ import { type AccessControls } from "./access.js";
10
+ import type { Key, ServiceRuntime, TypeInfo } from "./service.js";
11
+ import type { Expr, QueryOptions } from "./uri/ast.js";
12
+ export type Row = {
13
+ [property: string]: CanonicalValue | Row | Row[] | number | undefined;
14
+ };
15
+ /** Rows read for one level, with the counts of expanded collections. */
16
+ export interface ReadResult {
17
+ rows: Row[];
18
+ count?: number;
19
+ }
20
+ export declare class ReadEngine {
21
+ private readonly service;
22
+ private readonly db;
23
+ /** The access controls (DCL) of the entities, for the user of the request (D35). */
24
+ private readonly access?;
25
+ /** The query classes of the custom entities (D43), when the application has a RAP runtime. */
26
+ queries?: CustomQueries;
27
+ /** Scopes on custom entities: the SQL placeholder stands for a condition given to the query class. */
28
+ private readonly customScopes;
29
+ constructor(service: ServiceRuntime, db: () => Database,
30
+ /** The access controls (DCL) of the entities, for the user of the request (D35). */
31
+ access?: AccessControls | undefined);
32
+ private customScope;
33
+ private customQueries;
34
+ /** Equalities on properties, as a condition on the elements of the custom entity. */
35
+ private equalities;
36
+ private scopeConditions;
37
+ private customCollection;
38
+ private customExpand;
39
+ private column;
40
+ private operand;
41
+ /** A literal bound to the type of the other side of a comparison. */
42
+ private bind;
43
+ private stringArgument;
44
+ private likePattern;
45
+ private call;
46
+ condition(info: TypeInfo, alias: string, expr: Expr): RawBuilder<unknown>;
47
+ /** `$search`: every term must be found in one of the search fields (case-insensitive). */
48
+ private search;
49
+ /** The condition of the access controls of the entity for the user of the request, if any. */
50
+ private accessCondition;
51
+ private where;
52
+ private orderBy;
53
+ /** Properties to read: the selected ones, the keys, the ETag and the fields joins need. */
54
+ selectedProperties(info: TypeInfo, options: QueryOptions, needed?: string[]): string[];
55
+ private rowFrom;
56
+ /**
57
+ * The ETag of an `etag dependent` entity (D32): the ETag field of the master instance, read by
58
+ * scalar sub-queries along the to-one navigations of the path.
59
+ */
60
+ private dependentEtag;
61
+ /** The columns of a query: the properties, and the ETag of an `etag dependent` entity. */
62
+ private columns;
63
+ /** Conditions selecting one instance on the alias t0. */
64
+ keyConditions(info: TypeInfo, key: Key): RawBuilder<unknown>[];
65
+ private keyCondition;
66
+ /** Reads a collection of an entity set, optionally restricted to the targets of a navigation. */
67
+ readCollection(info: TypeInfo, options: QueryOptions, scope?: RawBuilder<unknown>[], withCount?: boolean): Promise<ReadResult>;
68
+ /**
69
+ * `$apply` (D52): the groups of the dimensions with their aggregates, after the filters of
70
+ * `$apply` and `$filter` (on the instances), with the access controls; `$orderby` on the
71
+ * dimensions and the aliases, `$top`, `$skip`, `$count` (number of groups).
72
+ */
73
+ readAggregated(info: TypeInfo, options: QueryOptions, scope?: RawBuilder<unknown>[]): Promise<{
74
+ rows: Array<Record<string, CanonicalValue | number>>;
75
+ count?: number;
76
+ properties: string[];
77
+ aliases: string[];
78
+ }>;
79
+ count(info: TypeInfo, options: QueryOptions, scope?: RawBuilder<unknown>[]): Promise<number>;
80
+ readOne(info: TypeInfo, key: Key, options: QueryOptions): Promise<Row | undefined>;
81
+ /** Scope of a navigation from a source instance: conditions on the target alias t0. */
82
+ navigationScope(source: TypeInfo, key: Key, navigation: string): Promise<{
83
+ target: TypeInfo;
84
+ scope: RawBuilder<unknown>[];
85
+ collection: boolean;
86
+ } | undefined>;
87
+ private neededForExpand;
88
+ /** $expand, one level: one query per navigation for all the rows of the page. */
89
+ private expand;
90
+ }