@fluidframework/local-driver 2.0.0-dev.3.1.0.125672 → 2.0.0-dev.4.2.0.153917

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 (76) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +38 -0
  3. package/api-extractor.json +4 -0
  4. package/dist/localCreateDocument.d.ts +8 -0
  5. package/dist/localCreateDocument.d.ts.map +1 -0
  6. package/dist/localCreateDocument.js +32 -0
  7. package/dist/localCreateDocument.js.map +1 -0
  8. package/dist/localDocumentService.d.ts.map +1 -1
  9. package/dist/localDocumentService.js +1 -1
  10. package/dist/localDocumentService.js.map +1 -1
  11. package/dist/localDocumentServiceFactory.d.ts +0 -1
  12. package/dist/localDocumentServiceFactory.d.ts.map +1 -1
  13. package/dist/localDocumentServiceFactory.js +4 -21
  14. package/dist/localDocumentServiceFactory.js.map +1 -1
  15. package/dist/localDocumentStorageService.d.ts +5 -2
  16. package/dist/localDocumentStorageService.d.ts.map +1 -1
  17. package/dist/localDocumentStorageService.js +16 -2
  18. package/dist/localDocumentStorageService.js.map +1 -1
  19. package/dist/localSessionStorageDb.d.ts.map +1 -1
  20. package/dist/localSessionStorageDb.js +3 -0
  21. package/dist/localSessionStorageDb.js.map +1 -1
  22. package/dist/packageVersion.d.ts +1 -1
  23. package/dist/packageVersion.js +1 -1
  24. package/dist/packageVersion.js.map +1 -1
  25. package/lib/auth.d.ts +12 -0
  26. package/lib/auth.d.ts.map +1 -0
  27. package/lib/auth.js +38 -0
  28. package/lib/auth.js.map +1 -0
  29. package/lib/index.d.ts +12 -0
  30. package/lib/index.d.ts.map +1 -0
  31. package/lib/index.js +12 -0
  32. package/lib/index.js.map +1 -0
  33. package/lib/localCreateDocument.d.ts +8 -0
  34. package/lib/localCreateDocument.d.ts.map +1 -0
  35. package/lib/localCreateDocument.js +28 -0
  36. package/lib/localCreateDocument.js.map +1 -0
  37. package/lib/localDeltaStorageService.d.ts +19 -0
  38. package/lib/localDeltaStorageService.d.ts.map +1 -0
  39. package/lib/localDeltaStorageService.js +31 -0
  40. package/lib/localDeltaStorageService.js.map +1 -0
  41. package/lib/localDocumentDeltaConnection.d.ts +47 -0
  42. package/lib/localDocumentDeltaConnection.d.ts.map +1 -0
  43. package/lib/localDocumentDeltaConnection.js +88 -0
  44. package/lib/localDocumentDeltaConnection.js.map +1 -0
  45. package/lib/localDocumentService.d.ts +52 -0
  46. package/lib/localDocumentService.d.ts.map +1 -0
  47. package/lib/localDocumentService.js +80 -0
  48. package/lib/localDocumentService.js.map +1 -0
  49. package/lib/localDocumentServiceFactory.d.ts +43 -0
  50. package/lib/localDocumentServiceFactory.d.ts.map +1 -0
  51. package/lib/localDocumentServiceFactory.js +81 -0
  52. package/lib/localDocumentServiceFactory.js.map +1 -0
  53. package/lib/localDocumentStorageService.d.ts +27 -0
  54. package/lib/localDocumentStorageService.d.ts.map +1 -0
  55. package/lib/localDocumentStorageService.js +86 -0
  56. package/lib/localDocumentStorageService.js.map +1 -0
  57. package/lib/localResolver.d.ts +26 -0
  58. package/lib/localResolver.d.ts.map +1 -0
  59. package/lib/localResolver.js +70 -0
  60. package/lib/localResolver.js.map +1 -0
  61. package/lib/localSessionStorageDb.d.ts +10 -0
  62. package/lib/localSessionStorageDb.d.ts.map +1 -0
  63. package/lib/localSessionStorageDb.js +295 -0
  64. package/lib/localSessionStorageDb.js.map +1 -0
  65. package/lib/packageVersion.d.ts +9 -0
  66. package/lib/packageVersion.d.ts.map +1 -0
  67. package/lib/packageVersion.js +9 -0
  68. package/lib/packageVersion.js.map +1 -0
  69. package/package.json +57 -49
  70. package/src/localCreateDocument.ts +49 -0
  71. package/src/localDocumentService.ts +2 -0
  72. package/src/localDocumentServiceFactory.ts +6 -43
  73. package/src/localDocumentStorageService.ts +19 -1
  74. package/src/localSessionStorageDb.ts +3 -0
  75. package/src/packageVersion.ts +1 -1
  76. package/tsconfig.esnext.json +7 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/local-driver",
3
- "version": "2.0.0-dev.3.1.0.125672",
3
+ "version": "2.0.0-dev.4.2.0.153917",
4
4
  "description": "Fluid local driver",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -15,27 +15,6 @@
15
15
  "moniker": "@fluidframework/server-services-client/dist/generateNames.js"
16
16
  },
17
17
  "types": "dist/index.d.ts",
18
- "scripts": {
19
- "build": "npm run build:genver && concurrently npm:build:compile npm:lint",
20
- "build:compile": "npm run tsc && npm run build:test",
21
- "build:full": "npm run build",
22
- "build:full:compile": "npm run build:compile",
23
- "build:genver": "gen-version",
24
- "build:test": "tsc --project ./src/test/tsconfig.json",
25
- "clean": "rimraf dist lib *.tsbuildinfo *.build.log",
26
- "eslint": "eslint --format stylish src",
27
- "eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
28
- "format": "npm run prettier:fix",
29
- "lint": "npm run prettier && npm run eslint",
30
- "lint:fix": "npm run prettier:fix && npm run eslint:fix",
31
- "prettier": "prettier --check . --ignore-path ../../../.prettierignore",
32
- "prettier:fix": "prettier --write . --ignore-path ../../../.prettierignore",
33
- "test": "npm run test:mocha",
34
- "test:coverage": "nyc npm test -- --reporter xunit --reporter-option output=nyc/junit-report.xml",
35
- "test:mocha": "mocha --ignore 'dist/test/types/*' --recursive dist/test -r node_modules/@fluidframework/mocha-test-setup --unhandled-rejections=strict",
36
- "test:mocha:verbose": "cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha",
37
- "tsc": "tsc"
38
- },
39
18
  "nyc": {
40
19
  "all": true,
41
20
  "cache-dir": "nyc/.cache",
@@ -58,49 +37,78 @@
58
37
  },
59
38
  "dependencies": {
60
39
  "@fluidframework/common-definitions": "^0.20.1",
61
- "@fluidframework/common-utils": "^1.0.0",
62
- "@fluidframework/core-interfaces": ">=2.0.0-dev.3.1.0.125672 <2.0.0-dev.4.0.0",
63
- "@fluidframework/driver-base": ">=2.0.0-dev.3.1.0.125672 <2.0.0-dev.4.0.0",
64
- "@fluidframework/driver-definitions": ">=2.0.0-dev.3.1.0.125672 <2.0.0-dev.4.0.0",
65
- "@fluidframework/driver-utils": ">=2.0.0-dev.3.1.0.125672 <2.0.0-dev.4.0.0",
66
- "@fluidframework/protocol-base": "^0.1038.2000",
40
+ "@fluidframework/common-utils": "^1.1.1",
41
+ "@fluidframework/core-interfaces": "2.0.0-dev.4.2.0.153917",
42
+ "@fluidframework/driver-base": "2.0.0-dev.4.2.0.153917",
43
+ "@fluidframework/driver-definitions": "2.0.0-dev.4.2.0.153917",
44
+ "@fluidframework/driver-utils": "2.0.0-dev.4.2.0.153917",
45
+ "@fluidframework/protocol-base": "^0.1039.1000",
67
46
  "@fluidframework/protocol-definitions": "^1.1.0",
68
- "@fluidframework/routerlicious-driver": ">=2.0.0-dev.3.1.0.125672 <2.0.0-dev.4.0.0",
69
- "@fluidframework/server-local-server": "^0.1038.2000",
70
- "@fluidframework/server-services-client": "^0.1038.2000",
71
- "@fluidframework/server-services-core": "^0.1038.2000",
72
- "@fluidframework/server-test-utils": "^0.1038.2000",
73
- "@fluidframework/telemetry-utils": ">=2.0.0-dev.3.1.0.125672 <2.0.0-dev.4.0.0",
47
+ "@fluidframework/routerlicious-driver": "2.0.0-dev.4.2.0.153917",
48
+ "@fluidframework/server-local-server": "^0.1039.1000",
49
+ "@fluidframework/server-services-client": "^0.1039.1000",
50
+ "@fluidframework/server-services-core": "^0.1039.1000",
51
+ "@fluidframework/server-test-utils": "^0.1039.1000",
52
+ "@fluidframework/telemetry-utils": "2.0.0-dev.4.2.0.153917",
74
53
  "events": "^3.1.0",
75
54
  "jsrsasign": "^10.5.25",
76
55
  "url": "^0.11.0",
77
56
  "uuid": "^8.3.1"
78
57
  },
79
58
  "devDependencies": {
80
- "@fluid-tools/build-cli": "^0.8.0",
59
+ "@fluid-tools/build-cli": "^0.15.0",
81
60
  "@fluidframework/build-common": "^1.1.0",
61
+ "@fluidframework/build-tools": "^0.15.0",
82
62
  "@fluidframework/eslint-config-fluid": "^2.0.0",
83
- "@fluidframework/local-driver-previous": "npm:@fluidframework/local-driver@2.0.0-internal.3.0.0",
84
- "@fluidframework/mocha-test-setup": ">=2.0.0-dev.3.1.0.125672 <2.0.0-dev.4.0.0",
85
- "@rushstack/eslint-config": "^2.5.1",
63
+ "@fluidframework/local-driver-previous": "npm:@fluidframework/local-driver@2.0.0-internal.4.0.0",
64
+ "@fluidframework/mocha-test-setup": "2.0.0-dev.4.2.0.153917",
65
+ "@microsoft/api-extractor": "^7.34.4",
86
66
  "@types/jsrsasign": "^8.0.8",
87
67
  "@types/mocha": "^9.1.1",
88
- "@types/node": "^14.18.36",
89
- "concurrently": "^6.2.0",
90
- "cross-env": "^7.0.2",
68
+ "@types/node": "^14.18.38",
69
+ "concurrently": "^7.6.0",
70
+ "copyfiles": "^2.4.1",
71
+ "cross-env": "^7.0.3",
91
72
  "eslint": "~8.6.0",
92
- "mocha": "^10.0.0",
93
- "nyc": "^15.0.0",
73
+ "mocha": "^10.2.0",
74
+ "mocha-json-output-reporter": "^2.0.1",
75
+ "mocha-multi-reporters": "^1.5.1",
76
+ "moment": "^2.21.0",
77
+ "nyc": "^15.1.0",
94
78
  "prettier": "~2.6.2",
95
- "rimraf": "^2.6.2",
79
+ "rimraf": "^4.4.0",
96
80
  "socket.io-client": "^4.4.1",
97
81
  "typescript": "~4.5.5"
98
82
  },
99
83
  "typeValidation": {
100
- "version": "2.0.0-internal.3.1.0",
101
- "previousVersionStyle": "~previousMinor",
102
- "baselineRange": ">=2.0.0-internal.3.0.0 <2.0.0-internal.3.1.0",
103
- "baselineVersion": "2.0.0-internal.3.0.0",
104
84
  "broken": {}
85
+ },
86
+ "scripts": {
87
+ "build": "npm run build:genver && concurrently npm:build:compile npm:lint && npm run build:docs",
88
+ "build:commonjs": "npm run tsc && npm run typetests:gen && npm run build:test",
89
+ "build:compile": "concurrently npm:build:commonjs npm:build:esnext",
90
+ "build:docs": "api-extractor run --local --typescript-compiler-folder ../../../node_modules/typescript && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/",
91
+ "build:esnext": "tsc --project ./tsconfig.esnext.json",
92
+ "build:full": "npm run build",
93
+ "build:full:compile": "npm run build:compile",
94
+ "build:genver": "gen-version",
95
+ "build:test": "tsc --project ./src/test/tsconfig.json",
96
+ "ci:build:docs": "api-extractor run --typescript-compiler-folder ../../../node_modules/typescript && copyfiles -u 1 ./_api-extractor-temp/* ../../../_api-extractor-temp/",
97
+ "clean": "rimraf dist lib *.tsbuildinfo *.build.log",
98
+ "eslint": "eslint --format stylish src",
99
+ "eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
100
+ "format": "npm run prettier:fix",
101
+ "lint": "npm run prettier && npm run eslint",
102
+ "lint:fix": "npm run prettier:fix && npm run eslint:fix",
103
+ "prettier": "prettier --check . --ignore-path ../../../.prettierignore",
104
+ "prettier:fix": "prettier --write . --ignore-path ../../../.prettierignore",
105
+ "test": "npm run test:mocha",
106
+ "test:coverage": "nyc npm test -- --reporter xunit --reporter-option output=nyc/junit-report.xml",
107
+ "test:mocha": "mocha --ignore 'dist/test/types/*' --recursive dist/test -r node_modules/@fluidframework/mocha-test-setup --unhandled-rejections=strict",
108
+ "test:mocha:multireport": "cross-env FLUID_TEST_MULTIREPORT=1 npm run test:mocha",
109
+ "test:mocha:verbose": "cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha",
110
+ "tsc": "tsc",
111
+ "typetests:gen": "fluid-type-test-generator",
112
+ "typetests:prepare": "flub generate typetests --prepare --dir . --pin"
105
113
  }
106
- }
114
+ }
@@ -0,0 +1,49 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ import { IFluidResolvedUrl } from "@fluidframework/driver-definitions";
7
+ import {
8
+ getDocAttributesFromProtocolSummary,
9
+ getQuorumValuesFromProtocolSummary,
10
+ isCombinedAppAndProtocolSummary,
11
+ } from "@fluidframework/driver-utils";
12
+ import { ISummaryTree } from "@fluidframework/protocol-definitions";
13
+ import { LocalDeltaConnectionServer } from "@fluidframework/server-local-server";
14
+ import { defaultHash } from "@fluidframework/server-services-client";
15
+
16
+ export async function createDocument(
17
+ localDeltaConnectionServer,
18
+ resolvedUrl: IFluidResolvedUrl,
19
+ summary: ISummaryTree,
20
+ ) {
21
+ const pathName = new URL(resolvedUrl.url).pathname;
22
+ const pathArr = pathName.split("/");
23
+ const tenantId = pathArr[pathArr.length - 2];
24
+ const id = pathArr[pathArr.length - 1];
25
+ const documentStorage = (localDeltaConnectionServer as LocalDeltaConnectionServer)
26
+ .documentStorage;
27
+ if (!isCombinedAppAndProtocolSummary(summary)) {
28
+ throw new Error("Protocol and App Summary required in the full summary");
29
+ }
30
+ const protocolSummary = summary.tree[".protocol"];
31
+ const appSummary = summary.tree[".app"];
32
+ const documentAttributes = getDocAttributesFromProtocolSummary(protocolSummary);
33
+ const quorumValues = getQuorumValuesFromProtocolSummary(protocolSummary);
34
+ const sequenceNumber = documentAttributes.sequenceNumber;
35
+ await documentStorage.createDocument(
36
+ tenantId,
37
+ id,
38
+ appSummary,
39
+ sequenceNumber,
40
+ // "term" was an experimental feature that is being removed. The only safe value to use is 1.
41
+ 1, // term
42
+ defaultHash,
43
+ resolvedUrl.endpoints.ordererUrl ?? "",
44
+ resolvedUrl.endpoints.storageUrl ?? "",
45
+ resolvedUrl.endpoints.deltaStorageUrl ?? "",
46
+ quorumValues,
47
+ false /* enableDiscovery */,
48
+ );
49
+ }
@@ -57,6 +57,8 @@ export class LocalDocumentService implements IDocumentService {
57
57
  minBlobSize: 2048, // Test blob aggregation
58
58
  maximumCacheDurationMs: 432_000_000, // 5 days in ms. Not actually enforced but shouldn't matter for any local driver scenario
59
59
  },
60
+ this.localDeltaConnectionServer,
61
+ this.resolvedUrl,
60
62
  );
61
63
  }
62
64
 
@@ -12,26 +12,17 @@ import {
12
12
  } from "@fluidframework/driver-definitions";
13
13
  import { ITelemetryBaseLogger } from "@fluidframework/common-definitions";
14
14
  import { DefaultTokenProvider } from "@fluidframework/routerlicious-driver";
15
- import {
16
- ILocalDeltaConnectionServer,
17
- LocalDeltaConnectionServer,
18
- } from "@fluidframework/server-local-server";
19
- import {
20
- ensureFluidResolvedUrl,
21
- getDocAttributesFromProtocolSummary,
22
- getQuorumValuesFromProtocolSummary,
23
- } from "@fluidframework/driver-utils";
15
+ import { ILocalDeltaConnectionServer } from "@fluidframework/server-local-server";
16
+ import { ensureFluidResolvedUrl } from "@fluidframework/driver-utils";
24
17
  import { ISummaryTree, NackErrorType } from "@fluidframework/protocol-definitions";
25
- import { defaultHash } from "@fluidframework/server-services-client";
26
18
  import { LocalDocumentDeltaConnection } from "./localDocumentDeltaConnection";
27
19
  import { createLocalDocumentService } from "./localDocumentService";
20
+ import { createDocument } from "./localCreateDocument";
28
21
 
29
22
  /**
30
23
  * Implementation of document service factory for local use.
31
24
  */
32
25
  export class LocalDocumentServiceFactory implements IDocumentServiceFactory {
33
- public readonly protocolName = "fluid-test:";
34
-
35
26
  // A map of clientId to LocalDocumentService.
36
27
  private readonly documentDeltaConnectionsMap: Map<string, LocalDocumentDeltaConnection> =
37
28
  new Map();
@@ -51,41 +42,13 @@ export class LocalDocumentServiceFactory implements IDocumentServiceFactory {
51
42
  logger?: ITelemetryBaseLogger,
52
43
  clientIsSummarizer?: boolean,
53
44
  ): Promise<IDocumentService> {
54
- ensureFluidResolvedUrl(resolvedUrl);
55
- if (createNewSummary === undefined) {
56
- throw new Error("Empty file summary creation isn't supported in this driver.");
57
- }
58
- const pathName = new URL(resolvedUrl.url).pathname;
59
- const pathArr = pathName.split("/");
60
- const tenantId = pathArr[pathArr.length - 2];
61
- const id = pathArr[pathArr.length - 1];
62
45
  if (!this.localDeltaConnectionServer) {
63
46
  throw new Error("Provide the localDeltaConnectionServer!!");
64
47
  }
65
- const documentStorage = (this.localDeltaConnectionServer as LocalDeltaConnectionServer)
66
- .documentStorage;
67
-
68
- const protocolSummary = createNewSummary.tree[".protocol"] as ISummaryTree;
69
- const appSummary = createNewSummary.tree[".app"] as ISummaryTree;
70
- if (!(protocolSummary && appSummary)) {
71
- throw new Error("Protocol and App Summary required in the full summary");
48
+ if (createNewSummary !== undefined) {
49
+ ensureFluidResolvedUrl(resolvedUrl);
50
+ await createDocument(this.localDeltaConnectionServer, resolvedUrl, createNewSummary);
72
51
  }
73
- const documentAttributes = getDocAttributesFromProtocolSummary(protocolSummary);
74
- const quorumValues = getQuorumValuesFromProtocolSummary(protocolSummary);
75
- const sequenceNumber = documentAttributes.sequenceNumber;
76
- await documentStorage.createDocument(
77
- tenantId,
78
- id,
79
- appSummary,
80
- sequenceNumber,
81
- documentAttributes.term ?? 1,
82
- defaultHash,
83
- resolvedUrl.endpoints.ordererUrl ?? "",
84
- resolvedUrl.endpoints.storageUrl ?? "",
85
- resolvedUrl.endpoints.deltaStorageUrl ?? "",
86
- quorumValues,
87
- false /* enableDiscovery */,
88
- );
89
52
  return this.createDocumentService(resolvedUrl, logger, clientIsSummarizer);
90
53
  }
91
54
 
@@ -7,6 +7,7 @@ import { stringToBuffer, Uint8ArrayToString } from "@fluidframework/common-utils
7
7
  import {
8
8
  IDocumentStorageService,
9
9
  IDocumentStorageServicePolicies,
10
+ IResolvedUrl,
10
11
  ISummaryContext,
11
12
  } from "@fluidframework/driver-definitions";
12
13
  import {
@@ -22,7 +23,11 @@ import {
22
23
  ISummaryUploadManager,
23
24
  SummaryTreeUploadManager,
24
25
  } from "@fluidframework/server-services-client";
26
+ import { ILocalDeltaConnectionServer } from "@fluidframework/server-local-server";
27
+ import { ensureFluidResolvedUrl } from "@fluidframework/driver-utils";
28
+ import { createDocument } from "./localCreateDocument";
25
29
 
30
+ const minTTLInSeconds = 24 * 60 * 60; // Same TTL as ODSP
26
31
  export class LocalDocumentStorageService implements IDocumentStorageService {
27
32
  // The values of this cache is useless. We only need the keys. So we are always putting
28
33
  // empty strings as values.
@@ -37,6 +42,8 @@ export class LocalDocumentStorageService implements IDocumentStorageService {
37
42
  private readonly id: string,
38
43
  private readonly manager: GitManager,
39
44
  public readonly policies: IDocumentStorageServicePolicies,
45
+ private readonly localDeltaConnectionServer?: ILocalDeltaConnectionServer,
46
+ private readonly resolvedUrl?: IResolvedUrl,
40
47
  ) {
41
48
  this.summaryTreeUploadManager = new SummaryTreeUploadManager(
42
49
  manager,
@@ -82,6 +89,17 @@ export class LocalDocumentStorageService implements IDocumentStorageService {
82
89
  summary: ISummaryTree,
83
90
  context: ISummaryContext,
84
91
  ): Promise<string> {
92
+ if (context.referenceSequenceNumber === 0) {
93
+ if (this.localDeltaConnectionServer === undefined || this.resolvedUrl === undefined) {
94
+ throw new Error(
95
+ "Insufficient constructor parameters. An ILocalDeltaConnectionServer and IResolvedUrl required",
96
+ );
97
+ }
98
+ ensureFluidResolvedUrl(this.resolvedUrl);
99
+ await createDocument(this.localDeltaConnectionServer, this.resolvedUrl, summary);
100
+ const version = await this.getVersions(this.id, 1);
101
+ return version[0].id;
102
+ }
85
103
  return this.summaryTreeUploadManager.writeSummaryTree(
86
104
  summary,
87
105
  context.ackHandle ?? "",
@@ -93,7 +111,7 @@ export class LocalDocumentStorageService implements IDocumentStorageService {
93
111
  const uint8ArrayFile = new Uint8Array(file);
94
112
  return this.manager
95
113
  .createBlob(Uint8ArrayToString(uint8ArrayFile, "base64"), "base64")
96
- .then((r) => ({ id: r.sha, url: r.url }));
114
+ .then((r) => ({ id: r.sha, url: r.url, minTTLInSeconds }));
97
115
  }
98
116
 
99
117
  public async downloadSummary(handle: ISummaryHandle): Promise<ISummaryTree> {
@@ -27,6 +27,9 @@ class LocalSessionStorageCollection<T> implements ICollection<T> {
27
27
  public async distinct(key: any, query: any): Promise<any> {
28
28
  throw new Error("Method Not Implemented");
29
29
  }
30
+ public async findAndUpdate(query: any, value: T): Promise<{ value: T; existing: boolean }> {
31
+ throw new Error("Method not implemented.");
32
+ }
30
33
 
31
34
  /**
32
35
  * {@inheritDoc @fluidframework/server-services-core#ICollection.find}
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/local-driver";
9
- export const pkgVersion = "2.0.0-dev.3.1.0.125672";
9
+ export const pkgVersion = "2.0.0-dev.4.2.0.153917";
@@ -0,0 +1,7 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "./lib",
5
+ "module": "esnext",
6
+ },
7
+ }