@fluidframework/runtime-utils 1.4.0-115997 → 2.0.0-dev-rc.1.0.0.224419

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 (187) hide show
  1. package/.eslintrc.js +5 -7
  2. package/.mocharc.js +12 -0
  3. package/CHANGELOG.md +191 -0
  4. package/README.md +68 -1
  5. package/api-extractor-lint.json +4 -0
  6. package/api-extractor.json +2 -2
  7. package/api-report/runtime-utils.api.md +201 -0
  8. package/dist/{dataStoreHandleContextUtils.js → dataStoreHandleContextUtils.cjs} +5 -2
  9. package/dist/dataStoreHandleContextUtils.cjs.map +1 -0
  10. package/dist/dataStoreHandleContextUtils.d.ts +1 -0
  11. package/dist/dataStoreHandleContextUtils.d.ts.map +1 -1
  12. package/dist/{dataStoreHelpers.js → dataStoreHelpers.cjs} +44 -25
  13. package/dist/dataStoreHelpers.cjs.map +1 -0
  14. package/dist/dataStoreHelpers.d.ts +23 -4
  15. package/dist/dataStoreHelpers.d.ts.map +1 -1
  16. package/dist/index.cjs +44 -0
  17. package/dist/index.cjs.map +1 -0
  18. package/dist/index.d.ts +9 -9
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/{objectstoragepartition.js → objectstoragepartition.cjs} +4 -3
  21. package/dist/objectstoragepartition.cjs.map +1 -0
  22. package/dist/objectstoragepartition.d.ts +1 -0
  23. package/dist/objectstoragepartition.d.ts.map +1 -1
  24. package/dist/{objectstorageutils.js → objectstorageutils.cjs} +11 -15
  25. package/dist/objectstorageutils.cjs.map +1 -0
  26. package/dist/objectstorageutils.d.ts +6 -0
  27. package/dist/objectstorageutils.d.ts.map +1 -1
  28. package/dist/{requestParser.js → requestParser.cjs} +7 -11
  29. package/dist/requestParser.cjs.map +1 -0
  30. package/dist/requestParser.d.ts +1 -0
  31. package/dist/requestParser.d.ts.map +1 -1
  32. package/dist/runtime-utils-alpha.d.ts +155 -0
  33. package/dist/runtime-utils-beta.d.ts +103 -0
  34. package/dist/runtime-utils-public.d.ts +103 -0
  35. package/dist/runtime-utils-untrimmed.d.ts +306 -0
  36. package/dist/{runtimeFactoryHelper.js → runtimeFactoryHelper.cjs} +11 -12
  37. package/dist/runtimeFactoryHelper.cjs.map +1 -0
  38. package/dist/runtimeFactoryHelper.d.ts +4 -1
  39. package/dist/runtimeFactoryHelper.d.ts.map +1 -1
  40. package/dist/{summaryUtils.js → summaryUtils.cjs} +138 -34
  41. package/dist/summaryUtils.cjs.map +1 -0
  42. package/dist/summaryUtils.d.ts +66 -4
  43. package/dist/summaryUtils.d.ts.map +1 -1
  44. package/dist/tsdoc-metadata.json +11 -0
  45. package/dist/unpackUsedRoutes.cjs +34 -0
  46. package/dist/unpackUsedRoutes.cjs.map +1 -0
  47. package/dist/unpackUsedRoutes.d.ts +12 -0
  48. package/dist/unpackUsedRoutes.d.ts.map +1 -0
  49. package/dist/{utils.js → utils.cjs} +2 -1
  50. package/dist/utils.cjs.map +1 -0
  51. package/dist/utils.d.ts +7 -2
  52. package/dist/utils.d.ts.map +1 -1
  53. package/lib/{dataStoreHandleContextUtils.d.ts → dataStoreHandleContextUtils.d.mts} +1 -0
  54. package/lib/dataStoreHandleContextUtils.d.mts.map +1 -0
  55. package/lib/{dataStoreHandleContextUtils.js → dataStoreHandleContextUtils.mjs} +5 -2
  56. package/lib/dataStoreHandleContextUtils.mjs.map +1 -0
  57. package/lib/{dataStoreHelpers.d.ts → dataStoreHelpers.d.mts} +23 -4
  58. package/lib/dataStoreHelpers.d.mts.map +1 -0
  59. package/lib/{dataStoreHelpers.js → dataStoreHelpers.mjs} +42 -22
  60. package/lib/dataStoreHelpers.mjs.map +1 -0
  61. package/lib/index.d.mts +14 -0
  62. package/lib/index.d.mts.map +1 -0
  63. package/lib/index.mjs +14 -0
  64. package/lib/index.mjs.map +1 -0
  65. package/lib/{objectstoragepartition.d.ts → objectstoragepartition.d.mts} +1 -0
  66. package/lib/objectstoragepartition.d.mts.map +1 -0
  67. package/lib/{objectstoragepartition.js → objectstoragepartition.mjs} +3 -2
  68. package/lib/objectstoragepartition.mjs.map +1 -0
  69. package/lib/{objectstorageutils.d.ts → objectstorageutils.d.mts} +6 -0
  70. package/lib/objectstorageutils.d.mts.map +1 -0
  71. package/lib/{objectstorageutils.js → objectstorageutils.mjs} +11 -15
  72. package/lib/objectstorageutils.mjs.map +1 -0
  73. package/lib/{requestParser.d.ts → requestParser.d.mts} +1 -4
  74. package/lib/requestParser.d.mts.map +1 -0
  75. package/lib/{requestParser.js → requestParser.mjs} +7 -11
  76. package/lib/requestParser.mjs.map +1 -0
  77. package/lib/runtime-utils-alpha.d.mts +155 -0
  78. package/lib/runtime-utils-beta.d.mts +103 -0
  79. package/lib/runtime-utils-public.d.mts +103 -0
  80. package/lib/runtime-utils-untrimmed.d.mts +306 -0
  81. package/lib/{runtimeFactoryHelper.d.ts → runtimeFactoryHelper.d.mts} +4 -1
  82. package/lib/runtimeFactoryHelper.d.mts.map +1 -0
  83. package/lib/runtimeFactoryHelper.mjs +24 -0
  84. package/lib/runtimeFactoryHelper.mjs.map +1 -0
  85. package/lib/{summaryUtils.d.ts → summaryUtils.d.mts} +66 -4
  86. package/lib/summaryUtils.d.mts.map +1 -0
  87. package/lib/{summaryUtils.js → summaryUtils.mjs} +129 -26
  88. package/lib/summaryUtils.mjs.map +1 -0
  89. package/lib/unpackUsedRoutes.d.mts +12 -0
  90. package/lib/unpackUsedRoutes.d.mts.map +1 -0
  91. package/lib/unpackUsedRoutes.mjs +30 -0
  92. package/lib/unpackUsedRoutes.mjs.map +1 -0
  93. package/lib/{utils.d.ts → utils.d.mts} +7 -2
  94. package/lib/utils.d.mts.map +1 -0
  95. package/lib/{utils.js → utils.mjs} +2 -1
  96. package/lib/utils.mjs.map +1 -0
  97. package/package.json +102 -66
  98. package/prettier.config.cjs +8 -0
  99. package/src/dataStoreHandleContextUtils.ts +24 -16
  100. package/src/dataStoreHelpers.ts +106 -83
  101. package/src/index.ts +31 -9
  102. package/src/objectstoragepartition.ts +18 -14
  103. package/src/objectstorageutils.ts +37 -36
  104. package/src/requestParser.ts +81 -86
  105. package/src/runtimeFactoryHelper.ts +27 -26
  106. package/src/summaryUtils.ts +425 -299
  107. package/src/unpackUsedRoutes.ts +31 -0
  108. package/src/utils.ts +12 -7
  109. package/tsc-multi.test.json +4 -0
  110. package/tsconfig.json +10 -12
  111. package/dist/dataStoreHandleContextUtils.js.map +0 -1
  112. package/dist/dataStoreHelpers.js.map +0 -1
  113. package/dist/index.js +0 -26
  114. package/dist/index.js.map +0 -1
  115. package/dist/objectstoragepartition.js.map +0 -1
  116. package/dist/objectstorageutils.js.map +0 -1
  117. package/dist/packageVersion.d.ts +0 -9
  118. package/dist/packageVersion.d.ts.map +0 -1
  119. package/dist/packageVersion.js +0 -12
  120. package/dist/packageVersion.js.map +0 -1
  121. package/dist/requestParser.js.map +0 -1
  122. package/dist/runtimeFactoryHelper.js.map +0 -1
  123. package/dist/summarizerNode/index.d.ts +0 -8
  124. package/dist/summarizerNode/index.d.ts.map +0 -1
  125. package/dist/summarizerNode/index.js +0 -12
  126. package/dist/summarizerNode/index.js.map +0 -1
  127. package/dist/summarizerNode/summarizerNode.d.ts +0 -139
  128. package/dist/summarizerNode/summarizerNode.d.ts.map +0 -1
  129. package/dist/summarizerNode/summarizerNode.js +0 -480
  130. package/dist/summarizerNode/summarizerNode.js.map +0 -1
  131. package/dist/summarizerNode/summarizerNodeUtils.d.ts +0 -161
  132. package/dist/summarizerNode/summarizerNodeUtils.d.ts.map +0 -1
  133. package/dist/summarizerNode/summarizerNodeUtils.js +0 -225
  134. package/dist/summarizerNode/summarizerNodeUtils.js.map +0 -1
  135. package/dist/summarizerNode/summarizerNodeWithGc.d.ts +0 -133
  136. package/dist/summarizerNode/summarizerNodeWithGc.d.ts.map +0 -1
  137. package/dist/summarizerNode/summarizerNodeWithGc.js +0 -294
  138. package/dist/summarizerNode/summarizerNodeWithGc.js.map +0 -1
  139. package/dist/summaryUtils.js.map +0 -1
  140. package/dist/utils.js.map +0 -1
  141. package/lib/dataStoreHandleContextUtils.d.ts.map +0 -1
  142. package/lib/dataStoreHandleContextUtils.js.map +0 -1
  143. package/lib/dataStoreHelpers.d.ts.map +0 -1
  144. package/lib/dataStoreHelpers.js.map +0 -1
  145. package/lib/index.d.ts +0 -14
  146. package/lib/index.d.ts.map +0 -1
  147. package/lib/index.js +0 -14
  148. package/lib/index.js.map +0 -1
  149. package/lib/objectstoragepartition.d.ts.map +0 -1
  150. package/lib/objectstoragepartition.js.map +0 -1
  151. package/lib/objectstorageutils.d.ts.map +0 -1
  152. package/lib/objectstorageutils.js.map +0 -1
  153. package/lib/packageVersion.d.ts +0 -9
  154. package/lib/packageVersion.d.ts.map +0 -1
  155. package/lib/packageVersion.js +0 -9
  156. package/lib/packageVersion.js.map +0 -1
  157. package/lib/requestParser.d.ts.map +0 -1
  158. package/lib/requestParser.js.map +0 -1
  159. package/lib/runtimeFactoryHelper.d.ts.map +0 -1
  160. package/lib/runtimeFactoryHelper.js +0 -25
  161. package/lib/runtimeFactoryHelper.js.map +0 -1
  162. package/lib/summarizerNode/index.d.ts +0 -8
  163. package/lib/summarizerNode/index.d.ts.map +0 -1
  164. package/lib/summarizerNode/index.js +0 -7
  165. package/lib/summarizerNode/index.js.map +0 -1
  166. package/lib/summarizerNode/summarizerNode.d.ts +0 -139
  167. package/lib/summarizerNode/summarizerNode.d.ts.map +0 -1
  168. package/lib/summarizerNode/summarizerNode.js +0 -475
  169. package/lib/summarizerNode/summarizerNode.js.map +0 -1
  170. package/lib/summarizerNode/summarizerNodeUtils.d.ts +0 -161
  171. package/lib/summarizerNode/summarizerNodeUtils.d.ts.map +0 -1
  172. package/lib/summarizerNode/summarizerNodeUtils.js +0 -216
  173. package/lib/summarizerNode/summarizerNodeUtils.js.map +0 -1
  174. package/lib/summarizerNode/summarizerNodeWithGc.d.ts +0 -133
  175. package/lib/summarizerNode/summarizerNodeWithGc.d.ts.map +0 -1
  176. package/lib/summarizerNode/summarizerNodeWithGc.js +0 -289
  177. package/lib/summarizerNode/summarizerNodeWithGc.js.map +0 -1
  178. package/lib/summaryUtils.d.ts.map +0 -1
  179. package/lib/summaryUtils.js.map +0 -1
  180. package/lib/utils.d.ts.map +0 -1
  181. package/lib/utils.js.map +0 -1
  182. package/src/packageVersion.ts +0 -9
  183. package/src/summarizerNode/index.ts +0 -8
  184. package/src/summarizerNode/summarizerNode.ts +0 -662
  185. package/src/summarizerNode/summarizerNodeUtils.ts +0 -339
  186. package/src/summarizerNode/summarizerNodeWithGc.ts +0 -459
  187. package/tsconfig.esnext.json +0 -7
@@ -6,100 +6,95 @@ import { IRequest, IRequestHeader } from "@fluidframework/core-interfaces";
6
6
 
7
7
  /**
8
8
  * The Request Parser takes an IRequest provides parsing and sub request creation
9
+ * @alpha
9
10
  */
10
11
  export class RequestParser implements IRequest {
11
- /**
12
- * Splits the path of the url and decodes each path part
13
- * @param url - the url to get path parts of
14
- */
15
- public static getPathParts(url: string): readonly string[] {
16
- const queryStartIndex = url.indexOf("?");
17
- return url
18
- .substring(0, queryStartIndex < 0 ? url.length : queryStartIndex)
19
- .split("/")
20
- .reduce<string[]>(
21
- (pv, cv) => {
22
- if (cv !== undefined && cv.length > 0) {
23
- pv.push(decodeURIComponent(cv));
24
- }
25
- return pv;
26
- },
27
- []);
28
- }
12
+ /**
13
+ * Splits the path of the url and decodes each path part
14
+ * @param url - the url to get path parts of
15
+ */
16
+ public static getPathParts(url: string): readonly string[] {
17
+ const queryStartIndex = url.indexOf("?");
18
+ return url
19
+ .substring(0, queryStartIndex < 0 ? url.length : queryStartIndex)
20
+ .split("/")
21
+ .reduce<string[]>((pv, cv) => {
22
+ if (cv !== undefined && cv.length > 0) {
23
+ pv.push(decodeURIComponent(cv));
24
+ }
25
+ return pv;
26
+ }, []);
27
+ }
29
28
 
30
- private requestPathParts: readonly string[] | undefined;
31
- public readonly query: string;
29
+ private requestPathParts: readonly string[] | undefined;
30
+ public readonly query: string;
32
31
 
33
- public static create(request: Readonly<IRequest>) {
34
- // Perf optimizations.
35
- if (request instanceof RequestParser) {
36
- return request;
37
- }
38
- return new RequestParser(request);
39
- }
32
+ public static create(request: Readonly<IRequest>) {
33
+ // Perf optimizations.
34
+ if (request instanceof RequestParser) {
35
+ return request;
36
+ }
37
+ return new RequestParser(request);
38
+ }
40
39
 
41
- protected constructor(private readonly request: Readonly<IRequest>) {
42
- const queryStartIndex = this.request.url.indexOf("?");
43
- if (queryStartIndex >= 0) {
44
- this.query = this.request.url.substring(queryStartIndex);
45
- } else {
46
- this.query = "";
47
- }
48
- }
40
+ protected constructor(private readonly request: Readonly<IRequest>) {
41
+ const queryStartIndex = this.request.url.indexOf("?");
42
+ this.query = queryStartIndex >= 0 ? this.request.url.substring(queryStartIndex) : "";
43
+ }
49
44
 
50
- public get url(): string {
51
- return this.request.url;
52
- }
45
+ public get url(): string {
46
+ return this.request.url;
47
+ }
53
48
 
54
- public get headers(): IRequestHeader | undefined {
55
- return this.request.headers;
56
- }
49
+ public get headers(): IRequestHeader | undefined {
50
+ return this.request.headers;
51
+ }
57
52
 
58
- /**
59
- * Returns the decoded path parts of the request's url
60
- */
61
- public get pathParts(): readonly string[] {
62
- if (this.requestPathParts === undefined) {
63
- this.requestPathParts = RequestParser.getPathParts(this.url);
64
- }
65
- return this.requestPathParts;
66
- }
53
+ /**
54
+ * Returns the decoded path parts of the request's url
55
+ */
56
+ public get pathParts(): readonly string[] {
57
+ if (this.requestPathParts === undefined) {
58
+ this.requestPathParts = RequestParser.getPathParts(this.url);
59
+ }
60
+ return this.requestPathParts;
61
+ }
67
62
 
68
- /**
69
- * Returns true if it's a terminating path, i.e. no more elements after `elements` entries and empty query.
70
- * @param elements - number of elements in path
71
- */
72
- public isLeaf(elements: number) {
73
- return this.query === "" && this.pathParts.length === elements;
74
- }
63
+ /**
64
+ * Returns true if it's a terminating path, i.e. no more elements after `elements` entries and empty query.
65
+ * @param elements - number of elements in path
66
+ */
67
+ public isLeaf(elements: number) {
68
+ return this.query === "" && this.pathParts.length === elements;
69
+ }
75
70
 
76
- /**
77
- * Creates a sub request starting at a specific path part of this request's url
78
- * The sub request url always has a leading slash, and always include query params if original url has any
79
- * e.g. original url is /a/b/?queryParams, createSubRequest(0) is /a/b/?queryParams
80
- * createSubRequest(1) is /b/?queryParams
81
- * createSubRequest(2) is /?queryParams
82
- * createSubRequest(n) where n is bigger than parts length, e.g. 2, or n is less than 0 will throw an exception
83
- *
84
- * note: query params are not counted towards path parts.
85
- *
86
- * @param startingPathIndex - The index of the first path part of the sub request
87
- */
88
- public createSubRequest(startingPathIndex: number): IRequest {
89
- const pathLen = this.pathParts.length;
90
- if (startingPathIndex < 0 || startingPathIndex > pathLen) {
91
- throw new Error("incorrect sub-request");
92
- }
93
- if (startingPathIndex === pathLen && this.url.includes("?")) {
94
- return {
95
- url: `/${this.query}`,
96
- headers: this.headers,
97
- };
98
- }
99
- const path = `/${this.pathParts.slice(startingPathIndex).join("/")}`;
100
- return {
101
- url: this.query === "" ? path : `${path}/${this.query}`,
102
- headers: this.headers,
103
- };
104
- }
71
+ /**
72
+ * Creates a sub request starting at a specific path part of this request's url
73
+ * The sub request url always has a leading slash, and always include query params if original url has any
74
+ * e.g. original url is /a/b/?queryParams, createSubRequest(0) is /a/b/?queryParams
75
+ * createSubRequest(1) is /b/?queryParams
76
+ * createSubRequest(2) is /?queryParams
77
+ * createSubRequest(n) where n is bigger than parts length, e.g. 2, or n is less than 0 will throw an exception
78
+ *
79
+ * note: query params are not counted towards path parts.
80
+ *
81
+ * @param startingPathIndex - The index of the first path part of the sub request
82
+ */
83
+ public createSubRequest(startingPathIndex: number): IRequest {
84
+ const pathLen = this.pathParts.length;
85
+ if (startingPathIndex < 0 || startingPathIndex > pathLen) {
86
+ throw new Error("incorrect sub-request");
87
+ }
88
+ if (startingPathIndex === pathLen && this.url.includes("?")) {
89
+ return {
90
+ url: `/${this.query}`,
91
+ headers: this.headers,
92
+ };
93
+ }
94
+ const path = `/${this.pathParts.slice(startingPathIndex).join("/")}`;
95
+ return {
96
+ url: this.query === "" ? path : `${path}/${this.query}`,
97
+ headers: this.headers,
98
+ };
99
+ }
105
100
  }
@@ -4,36 +4,37 @@
4
4
  */
5
5
 
6
6
  import {
7
- IContainerContext,
8
- IRuntime,
9
- IRuntimeFactory,
7
+ IContainerContext,
8
+ IRuntime,
9
+ IRuntimeFactory,
10
10
  } from "@fluidframework/container-definitions";
11
11
  import { IContainerRuntime } from "@fluidframework/container-runtime-definitions";
12
12
 
13
+ /**
14
+ * @alpha
15
+ */
13
16
  export abstract class RuntimeFactoryHelper<T = IContainerRuntime> implements IRuntimeFactory {
14
- public get IRuntimeFactory() { return this; }
15
-
16
- public async instantiateRuntime(
17
- context: IContainerContext,
18
- existing?: boolean,
19
- ): Promise<IRuntime> {
20
- const fromExisting = existing === undefined
21
- ? context.existing === true
22
- : existing;
23
- const runtime = await this.preInitialize(context, fromExisting);
24
-
25
- if (fromExisting) {
26
- await this.instantiateFromExisting(runtime);
27
- } else {
28
- await this.instantiateFirstTime(runtime);
29
- }
17
+ public get IRuntimeFactory() {
18
+ return this;
19
+ }
30
20
 
31
- await this.hasInitialized(runtime);
32
- return runtime;
33
- }
21
+ public async instantiateRuntime(
22
+ context: IContainerContext,
23
+ existing: boolean,
24
+ ): Promise<IRuntime> {
25
+ const runtime = await this.preInitialize(context, existing);
26
+ await (existing
27
+ ? this.instantiateFromExisting(runtime)
28
+ : this.instantiateFirstTime(runtime));
29
+ await this.hasInitialized(runtime);
30
+ return runtime;
31
+ }
34
32
 
35
- public abstract preInitialize(context: IContainerContext, existing: boolean): Promise<IRuntime & T>;
36
- public async instantiateFirstTime(_runtime: T): Promise<void> {}
37
- public async instantiateFromExisting(_runtime: T): Promise<void> {}
38
- public async hasInitialized(_runtime: T): Promise<void> {}
33
+ public abstract preInitialize(
34
+ context: IContainerContext,
35
+ existing: boolean,
36
+ ): Promise<IRuntime & T>;
37
+ public async instantiateFirstTime(_runtime: T): Promise<void> {}
38
+ public async instantiateFromExisting(_runtime: T): Promise<void> {}
39
+ public async hasInitialized(_runtime: T): Promise<void> {}
39
40
  }