{"_id":"@fluidframework/last-edited-experimental","_rev":"124-4687fcccef45c72717326922f87524b3","name":"@fluidframework/last-edited-experimental","dist-tags":{"next":"0.41.0-25957","latest":"0.40.2","canary":"0.39.8"},"versions":{"0.26.0-3177":{"name":"@fluidframework/last-edited-experimental","version":"0.26.0-3177","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.26.0-3177","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"bf0f3bce92288d1828cfb2b4e641d4c91562463b","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.26.0-3177.tgz","fileCount":61,"integrity":"sha512-JzR1N8oJnGdx7nZqEYFxJRCINXWwqzHITQN9ZAHJ1akYxFwqm+SvWaI/S8/LNM8ogWzBSxwhem+C7aadpCf5gA==","signatures":[{"sig":"MEQCICSZ5SnYmaHYlJkkHAcg3ub3ZaqA5tteWirX35hILymzAiBvqusnAcWdG2KpfkISeONfHfV3inonVT3k7zwtT2D7hQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72839,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTc2+CRA9TVsSAnZWagAA3u8P/37g9Q0gw97OflRgyN04\ni1GvhqIGEM/SQ7zajfg11AGH74cTLmnURgwx5gspjx4qghIYw1CFvENOF1Au\n62qUZlabvm1Vyol2I4EBco75mkFecWHtwBZlNL/NdaxYjq5PFVPwlWrD3tcr\nvVRvcDjCzirh7NdPdFUCl5FprMIpkGHIxAYUglJAUlZMKR4f7OmEFVGIqdLC\nq1obGTG/MTkmdvShRTb9Er2oco2OT+6fz05Z9LM6+tjXpR2wOXwZPnvBAqXu\nZ+6hmX7EpfmJx1s13vJcJRIw6JRZQd+x/NExPYHcGUmT7TSsAN1qcoQ2ZZ/u\nzhxlO50bzY8tgayqKAc/gsMjumZzHVutnDs1rUTMqaPlDVr2pUoR8GO92k6Q\nLV7l+5nl9/qXPvB5Pn+mAflMC6v71/f1lJTTLvtwo+P/3YL1T49TfR3CO6QZ\n9rsX8uQhLfbM8WLTptWotjKywO4YWHAeJPiigTBa/yR4sXiRWMK85ZseGkJj\nkmqy+hLsW2+j6y+E+ekMvUyKSnWMeyC3y+C3Ifs/S7+wXriMeX9Vomk2dQ2A\nAuR4S3kdgAdVZO15YNwzx5B7P/L/8MRAuhQaXv5/YNjm80Ha+HQ5zHoTEIQW\nabqOeoxVX3kza3/qBrzxop//pAIX5ulKYwZs83NDvMXfruPMwJTuqwjOm5Nw\n5trl\r\n=FeUC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.26.0-3177.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.6","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.18.3","dependencies":{"@fluidframework/aqueduct":"^0.26.0-3177","@fluidframework/runtime-utils":"^0.26.0-3177","@fluidframework/core-interfaces":"^0.26.0-3177","@fluidframework/container-runtime":"^0.26.0-3177","@fluidframework/protocol-definitions":"^0.1012.0-0","@fluidframework/shared-summary-block":"^0.26.0-3177","@fluidframework/container-runtime-definitions":"^0.26.0-3177"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2-0","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.26.0-3177","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1-0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.26.0-3177_1598934461982_0.4122616775193877","host":"s3://npm-registry-packages"}},"0.26.0":{"name":"@fluidframework/last-edited-experimental","version":"0.26.0","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.26.0","maintainers":[{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"d1f5948443033a0653c4b9a2f604450e0ff2ec23","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.26.0.tgz","fileCount":61,"integrity":"sha512-d0wRhdvcY0grqCVzAwhj7yXDtzWI/+xtPlJlH35P2EcOokLl6410Wzzvl9nvuxymllj80CxVS8+Elq9jVgi3UQ==","signatures":[{"sig":"MEYCIQDQZfpG4HEdHDiDgI6fp2tkldzwjUjmixVObTZ/7eyvTQIhAPUpHZQFcACH6zZEZr/6vPZIXWmJCy7ZaXCJ8DvR/tXK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72754,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUXZQCRA9TVsSAnZWagAAiGEP/RHjXAInf8QDIDsW9vf0\n3iRCDlPBeg6oWssRUmFcHxHIBWK1MhWZ4Deb40kmLKFY+59tKbZC7Kaxyh3t\nXX/pNd+nlWSvhDw5Xdgq0L4jcaOeiie5+8cC6B+CATyI0WgMs3y1CtK0XpOV\nbM0QOqJd5LLRqF+PMMmX5O0MoJocoAxf0PBCG5DoQNbLB/mDFqrsV18+1SHQ\nA2yKamNzdKk4rrfCFhZpLQajs+kZEg4PrZ+/9ORoG2VMvwHCLY8+i/pcfwYo\nzpunaVbpYoQf/PNKFpFYRpjjyn9B2/t7ybPDSHlZdLFNSl/qVMJhH3ngPkKi\nxThRZiuSzN+IuHMZ7Ywc57S0vNco3tmb2a/0xOhLbIL5LRLUIPYNLgAdxWRa\nJYbn08YVEWe8Se9T2kR6PdEwrPlJX/bxxK8xuDDEwoOw1HBkh8D64achk+0o\nedEUStsdWMqllNMEIPHQ7r4ikKibZwY0rP+tL57oKxqVzkh6VcDW4u9HTA9A\nRB/vT4XTH1EwpC/N0QHcMn9i7g/7D6GNIVxYLiH0xnSoxjf1eL6TsAhfMwo3\n6FTK/OrTiEX3HVl1Ftc+E4GS6wx75pzwK+HCNN/94Ispnysy1xI8GrowrX+1\nwdWOAzXNE71pzpFv09XlkQ/qDGhOEP3goULdeomhyRaqCJbeYY9VenyAnrw1\nkF5Y\r\n=/qq9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.26.0.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.6","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.18.3","dependencies":{"@fluidframework/aqueduct":"^0.26.0","@fluidframework/runtime-utils":"^0.26.0","@fluidframework/core-interfaces":"^0.26.0","@fluidframework/container-runtime":"^0.26.0","@fluidframework/protocol-definitions":"^0.1012.0","@fluidframework/shared-summary-block":"^0.26.0","@fluidframework/container-runtime-definitions":"^0.26.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.26.0","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.26.0_1599174223821_0.07419367117951903","host":"s3://npm-registry-packages"}},"0.26.1":{"name":"@fluidframework/last-edited-experimental","version":"0.26.1","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.26.1","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"9bc663b18aa225d79ec6412b1e05d599fa36c0a5","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.26.1.tgz","fileCount":61,"integrity":"sha512-eFZ9qqxcVRIx2Txa65sCvbOweuzY3gXZ0/Tyi6PsuazEHFOmS8bT0d/jQzHv30RCT/zOKPAQDhLuoGVS4iVIfg==","signatures":[{"sig":"MEYCIQCDF96hrj5ZDGasHKzhMnX1kBRmWaRlkQ5lmmNryD5fHQIhALtBoFuINFFJWYhPFXAloR8k7pDUBBcVl6DPwAU9HI6F","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72754,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZoQSCRA9TVsSAnZWagAA3FEP/0nKttCp0uD5yptUD6w4\nirIH6zEZEBsDACSsfyNVXhk4DxAsLRGFoARu79wRq+bcbbuUYg7zxf4tYWlW\nYXcgKxwS04fjaSCYNXGLZ7xnjcR800sBwCwkapOzOl/JXYGixMuAwuQDXS1l\nK0iECEHiaWGV/BX+w5LyNM+zqEl8xetOY62vaGMelulCAxWXXuDw0Gu8pPkM\nhek4QmzKpAf7x+LtJXHjSzzvshhS6K9XtedGHNOKMWw7cy9OzWtzdlZP79Cd\nJRUTBigeg0T6B5s5/xoE+jqhurupfraNP20MZ3IRBV7V7YoYs6skw6t+7vMb\nXxXKD0Ok32Tz2VW+E9fCPPfhU5QrVCPBm3DyqxBijAtGVvo5p0UF4G4jcPZz\nXFR2RqsS1uHG+J8+Vew8xXQcbpAJa8/vqtPaRmQEQHSNeB4XdHKcUlKKDqd0\n7aL7ZwNIBXaZneAgYVQWJ+Z8eW0y5wJH6/Q3p2Nw4aKxR0+fOoUbYH8jYtMy\nQoMrWgWyMNPj66Fz7eylKIV4RmdZUW39WvZPni14yd7P3djvx0Qaq3P1cQGV\ny5VsCRfSB4ER3o5XJqLUpOIyv0AmGDzQ2lHBJxxi6jwDS3tFtE8rfsuYeJ7e\naKirbhmMEF9o5uv0NOnW6l7IDiX77JvY+OwJOMH0Hm8yOxGMsHGp3+LOX4hT\nEijV\r\n=6Xpl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.26.1.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.6","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.18.4","dependencies":{"@fluidframework/aqueduct":"^0.26.1","@fluidframework/runtime-utils":"^0.26.1","@fluidframework/core-interfaces":"^0.26.1","@fluidframework/container-runtime":"^0.26.1","@fluidframework/protocol-definitions":"^0.1012.0","@fluidframework/shared-summary-block":"^0.26.1","@fluidframework/container-runtime-definitions":"^0.26.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.26.1","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.26.1_1600554002075_0.5095839002583475","host":"s3://npm-registry-packages"}},"0.27.0":{"name":"@fluidframework/last-edited-experimental","version":"0.27.0","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.27.0","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"69e7b7dd4932389ccfdafbd7c1a94df5c2edc712","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.27.0.tgz","fileCount":61,"integrity":"sha512-c47XYdV3XdfuruQMdFb2mBQ2A3PQre+0MondkfHdqvFZp3d4MRLsBH7ZczdsBXx6KDeUfMm2Gg8xFcQJ9HJxUg==","signatures":[{"sig":"MEUCIE9Mhjjpq39XYzzI5/x7hHVbKpHfdGd3ezlqTqWkbOUwAiEAs1xbo/gP/NYfzHLNBCKos5sAjFc1RaM0SMrBSFYSwSM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfa83pCRA9TVsSAnZWagAAiC0QAIFy6/UBe4ADND+CE7IN\nEXqxxYN/tsg3eYKPpr3vOhA7QQX6cuow/Rwn7z4oOvy+fNOmMrGaM9tOmZfV\nAjiQjz/W83W0LYwFO8f3spOTjRZsGj5oN1oe/O7zi2oFDc7W8bRQZ/MbFqaf\nFMIpme7KOqzhckYBX4sNHxLAfjTelp4YmZ0c88q9bndHkGaHo6WKBTIKyq2U\n908rBEmHVFPMU49+Yh23UW1tKGPH92sMeN4nJnYksBfLgtqBc9xm/c06T6nM\nDS+jRqGae+HBP4NcAq+qufjVIkW1Os0y4KGN5mOJqT4EdN0D3Jn00VpOVOUL\njVuXPHTK/Npb7xQBS3r5UVxnwzcMYErdAEvYwxoGF261kc1lg9e5DExaFyiZ\nvOfyxzsJjCq3utSGvItT9KNeIEAFFE02bZMCbUd2JBGOO2jTNNxSaJHW34lf\nqw+sIppyihW+YirAAfZGLIKGSQYIKvbM03zBmdzf66RQ1RLV8gT5FXADGe6r\nuUE5CfsbsDieH3XtHufm2/DT+t5no1N5amKpK8EiDbPm39ctEW8hxCShAyPH\nXjWz0SQBwEmhfevzZtrjjswhpdXGpJCARGpmenz6qhUZ4Fl2wgDqvsQgaLoc\nYAwAtYQPhjjQ2kAOtq8OAkTIU4h8bcQ1tF8S4sJK7kBkJKcJIwqVRUypiegd\nv1+U\r\n=37z6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.27.0.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.6","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.18.4","dependencies":{"@fluidframework/aqueduct":"^0.27.0","@fluidframework/runtime-utils":"^0.27.0","@fluidframework/core-interfaces":"^0.27.0","@fluidframework/container-runtime":"^0.27.0","@fluidframework/protocol-definitions":"^0.1013.0","@fluidframework/shared-summary-block":"^0.27.0","@fluidframework/container-runtime-definitions":"^0.27.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.27.0","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.27.0_1600900585244_0.2459537303020316","host":"s3://npm-registry-packages"}},"0.26.2":{"name":"@fluidframework/last-edited-experimental","version":"0.26.2","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.26.2","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"dacc6e8f545263768d11735b447db21918b5b706","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.26.2.tgz","fileCount":61,"integrity":"sha512-qxCMN/m+VqGAcWpBMKiqwG4ZJivfMDxXevr0PR4YE1mIsqOTOs5onIdAirTwOpa3w01klfV79PDiL2Vr5Ik2AQ==","signatures":[{"sig":"MEYCIQCojv5fxe4fKqF0V4yp8915bR6L/xGC1s602BniyzyR/QIhAMWUiyaTzIrPWDMWzrdiKgocWrWAjndGaivZ9M5w4PBt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72754,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfc6mqCRA9TVsSAnZWagAAQogP+wRmqoMk+/E3NORd6Oxv\n6lTSlTbL0yMtLyP8RIm9sPxRhsgK3+lBZ54ycXEnV/pLQ65kwqwTiK2/Sad7\nexcAklHgte8NOm1BvR1RELlTSR4vj236hp9jTXTF6K3CeaTgehipjICCLCOh\nS4vPe1DG8G8tGPsZvy6EFiO5EeHWJXDW1LngT4BxUzF6rdMvJBKHzOVOIS1X\nt7T7J9Y8gVYDTM559Z2zI2s03cZiKhB2lhvPioi1qQvcl3k7yzAhgtER+hzs\nLkAX93nXvvTxhDnC52S0G+0LyEpxDS3mn189ws58WyU9dLimSziWicaJr2Uw\n1c5qCU17ShE3dA7zypbbPV7hhrTj/jk+K3yqnlSWHkDuiMVYnavQT5ISE2jI\nnfQKyodT9UFDX/aCrg9UbtuqKREQ73wQBGPi6fEYrKWrECwR7YPyOLtK3cny\nFkLi0d8H5J+7P9E/oDahB6AZ9ForKXGCkjk84tOKitpV81gVxtowDO3Br12D\nUqqgUr0L9KknR/T18n5JA1HLpEIqFp3SeKcChYKub0G9LdAGvE8XyHNLYqiS\nD1hf/XC4YlpmH3ZWFBfwmFmOVg0ZJxJLTDOZb9mXwUxBpcmeVPR/DjaBGUsh\nJ7Q6EYTvOpYOqX1P9fAlGfrtlunP7E/ycX/gubI/EPnIJlfALUDbARzZ/aKF\n1yhD\r\n=KwZ/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.26.2.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.6","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.18.4","dependencies":{"@fluidframework/aqueduct":"^0.26.2","@fluidframework/runtime-utils":"^0.26.2","@fluidframework/core-interfaces":"^0.26.2","@fluidframework/container-runtime":"^0.26.2","@fluidframework/protocol-definitions":"^0.1012.0","@fluidframework/shared-summary-block":"^0.26.2","@fluidframework/container-runtime-definitions":"^0.26.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.26.2","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.26.2_1601415594394_0.24823168395399042","host":"s3://npm-registry-packages"}},"0.26.3":{"name":"@fluidframework/last-edited-experimental","version":"0.26.3","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.26.3","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"a66667842738e5ac9b51e5203d682c1dfb2853cd","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.26.3.tgz","fileCount":61,"integrity":"sha512-Q1icBVtPz/tpD0I7WFslqFlbU2bRGzMh3TMsbdnysN3Ul3Mpl9YFiBw3QSO5WfJkLozjHW7vRqqLy4DxA96O/Q==","signatures":[{"sig":"MEYCIQCQbkhgGa7gP/zK9EVlcO0Nro7Q3frbQ3WuRhUYgtlWdgIhAOGD33e//ShzJT7MFYyQUR2e9HiWxezipQCLnUIAC/cj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72754,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffKZOCRA9TVsSAnZWagAAiH4QAI3TrxmFopRhReTymk8x\n1T3eIZrYEl0ypUjTKkkFBo8R3BG/v+xbwPH4nrzMvAFMYzm8sc8A/5ZVGRoD\nw97U2tEvtvlH+emsKjuyb6mQkdZLiJY/TCX1WXgvETVEzNqPSpXazHmzAW87\nwnlqIHqQ7rwzohTaGF3w7AfRfOJXazF7OXic0YwgYKh65fyYn3wsDG88Vl7X\nBadHytVVJFTBMrBtKjWbe6+6hWYF/pdDRstZiM2IrojIf3QWchrVyAwsp2Rp\nmQkP2oepk3/xUSdPU34fnduTzfwRk1jF54vZ6C2dqHGMBQolszgN6POLqYsF\n3+TGP8HGnJtH9+hNum3BdgmGWdae4dBUgAM26y+XAUTYLyHZxxY6MAs0TACJ\nyO05Y2lMy/FY9JZgewD782q9td+z/YezLziR1rtsU+GqEtydEmH64xdZBPqp\nNt+v9tH8A2tFOzWDL0f1Ng8toVBqMxhQsKc2AggmbVQbForITqp1+XaJPCTl\naUtpRGAiA66ZyDyN3klx8NgyEiWkw1Uv0qhFfrdyd0IyG0bNT1AjcLebFdi1\nM0GKx9bk0lQKjjta8WXfFMisM+s2d0PAdy4vExpc230Q6R+CrsKNqtnRIPc2\nfXJnzTW3+DhZS1LuUTW8Be6KyzcVgs/NqAKe1gqES61EiEzcyP2ZiPfZPUTK\nnrvM\r\n=VClp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.26.3.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.6","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.18.4","dependencies":{"@fluidframework/aqueduct":"^0.26.3","@fluidframework/runtime-utils":"^0.26.3","@fluidframework/core-interfaces":"^0.26.3","@fluidframework/container-runtime":"^0.26.3","@fluidframework/protocol-definitions":"^0.1012.0","@fluidframework/shared-summary-block":"^0.26.3","@fluidframework/container-runtime-definitions":"^0.26.3"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.26.3","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.26.3_1602004558422_0.5139797323286663","host":"s3://npm-registry-packages"}},"0.27.1":{"name":"@fluidframework/last-edited-experimental","version":"0.27.1","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.27.1","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"d5487bb1fefda8c26318c9f955e9a9d7c0712fec","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.27.1.tgz","fileCount":61,"integrity":"sha512-Q4fycyTCaYYsjIr6KERcQhEaAXzqqprPLeh7+SzJI3YXMAE1sCyzKAmyY29r4T4A7sKKMrUhTrL7uB5DWkgp9Q==","signatures":[{"sig":"MEQCIBmoMqjyRRudmOgW7Q/A6hCkMUeVE9ekicq3loC+mCRgAiAmo37LxFv7aqFa7fQEGtrK0mTwip0q8clKdNp0abOP+A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfic0xCRA9TVsSAnZWagAAvG8QAJ9rGSzwErFm0shOX2Oc\nfTw02mtnmRfogR51RxOglhZtBXPuqdTRxZy5OpbS4Hv/HQKnc2/j1qMOmQJK\niGjxKne9rYyUFl75+Ct0Gjz7ZVPOVhx9bIcbYPkGVFoUpv/bjIFVVVV+FHVv\nqLL5uagubVSNccHVTlM/HoV3dAJpsY23iAxB3RCjU3I0zhA0jKOq0ZV5N6Dh\ntmV8erYW89R8reJlwf5umusruRBXPZEJebjBo1NfKMTewGHiabw9Z4vgK73d\nAz+rE5PZUI2AbAIizDRA2F1sq6cIVF7zm/w975EouuuQX9SwnIK1fDwcac6q\n1W8LtOaRbXRecfdjufp9VYKuxmAGTmbByX82WvyZc1J5GQCtX/0C/sAk9GnV\nbt1AULtp9I1nGqb7gXAK+IoQPDf8C+kl35TAH6Eo9ltFw97c9gRD5bpyuD8o\neEbrIkNvx6fYVIiktphPX0ADwOB5qN7T3/RFUFsQPwdLYyOiwxZ7hthzgA/2\njbVvpR/oo0imEt5JdATo5iuvNhNNmpzdnVuOX3twhmCsBCSGdSVZCUKiXzpW\ntMCkeJ6EZK6Z0WZqbA3575fX3wWhyr5FXePBFwlUe+yCCZO985C3Q++G3mAl\n+3KMj+cWrXLd/IBRSrRsYfaqxz7q8Hw/fjbKJJP6WScmYCyqr9KVmk72VS4G\nQth9\r\n=5E6i\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.27.1.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.27.1","@fluidframework/runtime-utils":"^0.27.1","@fluidframework/core-interfaces":"^0.27.1","@fluidframework/container-runtime":"^0.27.1","@fluidframework/protocol-definitions":"^0.1013.0","@fluidframework/shared-summary-block":"^0.27.1","@fluidframework/container-runtime-definitions":"^0.27.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.27.1","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.27.1_1602866481480_0.49055327020934736","host":"s3://npm-registry-packages"}},"0.27.2":{"name":"@fluidframework/last-edited-experimental","version":"0.27.2","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.27.2","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"04dd89d6e9940805861d9143fb0cfd2903e8e2c3","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.27.2.tgz","fileCount":61,"integrity":"sha512-IjcEPt0BLj2lSVlDbKJBnLM9dt0k0J4KIg3YTalwkMIH0FEaZn4et+ISzrYqAxX4gPAleGlN2kT/G+h2wgKVbQ==","signatures":[{"sig":"MEYCIQC4nFChC6372M3dJO6PhuxQX1siKk2fT4ub8nEzhW22YAIhALRKAyx+s3uLO/9zABwqFPMQkjiANPSPQqhS6Ot5jvZW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjiV6CRA9TVsSAnZWagAAOvAP/R2qxLMNy/ahrlzU3Jf3\nPfALcUJi5GJ12Y3nXGP1Ksu5A8LlxRt2G5ntDOopd42idhcYRtXUy7LNqGIs\n+DTrjDNsC2HQk8TuglCwuw8fmKFEb4s8bBegG8SCJ0lciqDxex6CAt7hglbN\nE1sXDVQg2Py49ywKJZ6H9vUZu0g88CeP+WopFfYLTSTH7mOrC/JjN3SYgKv0\nLrEYtxMy0kIOyDUoxODpuB2iKvM74AcGNNuoPSQXLV65+wl/GonQPVkrElGF\nNuZIz9AWEceB3bDy9beL64n5eTe08f0Dffrsqu2FHnJKGDkItkSQH68EhIUa\nx5iYicZ/PNMRrhQNBb3xNUDh4Ee0BQ0vJr2sL32Egzj+uxu3RLWFUet7rcg8\nHJeN1+gQJHxCFjxGBLNEPxvu77gE3u9VkGFPe8RuUHGcb/GoP9AeAFoYsnCR\nXdYref7uAZKeiHBbwynxfuqjagOYEW2/AftLh1//YiYXQJgM5HywudjVj4+P\n65Hv/Y4Ag8LFoyscyty5U7DyfCnmbVRq7zUo4zS5yzNOETlloDgzqkela3E8\ntNc1F17P9mXs5Jf+kYsWmq9Oj2A0GAVuHS1UAB5vGReLAEV3AIabNcvKKcjX\nqyRTu8y1JaNy951bmIsabtZjxIqb4cWyXOWES8+nVnoIvHUUZVhQ/RB/c9TO\nlKrT\r\n=aJRp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.27.2.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.27.2","@fluidframework/runtime-utils":"^0.27.2","@fluidframework/core-interfaces":"^0.27.2","@fluidframework/container-runtime":"^0.27.2","@fluidframework/protocol-definitions":"^0.1013.0","@fluidframework/shared-summary-block":"^0.27.2","@fluidframework/container-runtime-definitions":"^0.27.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.27.2","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.27.2_1603151225741_0.957283315342925","host":"s3://npm-registry-packages"}},"0.26.4":{"name":"@fluidframework/last-edited-experimental","version":"0.26.4","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.26.4","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"df13c4f4bb95ca85c1cc43a1daf2ca53dd0fcf2f","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.26.4.tgz","fileCount":61,"integrity":"sha512-+ijWybSTGFik9Xv26mQ0SjQpLEHCqt0uCeapVdK05DQDLHqjOmZ5MsIWgrokZioHgHtJwDFFic3sw9aU7wBFgA==","signatures":[{"sig":"MEYCIQCk/azZxXUW12V+Z4JUfnQv8TL7w63BlTDyJEvR9B3iWwIhAKJsDUTohtMAB68aFYiCNpxqWmMo7bgFcBhvTygWuf+Q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72754,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkIb5CRA9TVsSAnZWagAApZ0P/jEoSR1utQWIoGqx7U8F\njRA3j4JkcRtkFId1ex51gvdin+wGIQMqOywROrEbRJGhEYNrfvIGbZM6SLv5\ncR39DjcCc9hrkefpAMzxYPNSPyRB8oG+kMBR/66KUXMwnqNU0WoLXVmkP6HZ\nk17Uv1NUkxpANHgIo6SEypO9WMBvVaURy6lO4y90JZng3+4cA+QDEnGeJQej\nWHxr8Hrix+I/T+vQM+db10rwsw61BIo49qs/yymmyufDfeDOZwTKFgZYeP+P\nGKeiipMPpQBlLt3Xt4ElaTkFKDTaRFksfNSFRhrA8ocMtIqufRxtCe5eHBSh\nIn6dZmW8ZuTekkDZwrRy5ugrH2wySWwy/RzJ9kvbUEwFnRrmcwelG4fvhkrD\nT18AdYk0+35I6hgccxaAd3xQaCrk8Jp0VcfbvF9l0AoynwS6bLwcb4UdM0yl\nV+vXiDf4VyBE8O0WyRQfjS9QpflqToYPZenuSUnZY/wtxrKu+U9vNHsVsv0h\nbiw9HHOoR/a47ie6EMYWNy2L386l+K/sQxD2wEstwyzTWTkPGWdNHfs8C8Nk\nUIQiWX6jhNVlCDsnLSvBt4Q00ozELqLok/VPCzLMmMgaWvijUMc/rwgdK8ja\nGfGBvORW6hzvbOB0UOnccjrL82ovHBVirtDqrS6NRcBw3rtG5Nf13JGQuveH\neibT\r\n=hom8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.26.4.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.26.4","@fluidframework/runtime-utils":"^0.26.4","@fluidframework/core-interfaces":"^0.26.4","@fluidframework/container-runtime":"^0.26.4","@fluidframework/protocol-definitions":"^0.1012.0","@fluidframework/shared-summary-block":"^0.26.4","@fluidframework/container-runtime-definitions":"^0.26.4"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.26.4","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.26.4_1603307257307_0.5119336399344758","host":"s3://npm-registry-packages"}},"0.26.5":{"name":"@fluidframework/last-edited-experimental","version":"0.26.5","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.26.5","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"1102cf89bd0c53855fc1d0a772152318bbce3a71","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.26.5.tgz","fileCount":61,"integrity":"sha512-h39P65zscUIM7oQDVqaKimglcVQUeDsaOLgIKStwMzokRb1i0hgnpp6H13fbk1Lr/6wW/FK1rQHc1fN7G7lHjA==","signatures":[{"sig":"MEQCIGVM3oJ2DtcpFvgRnp/XZNx8klxvtMA+o7J8uedRQKO9AiAJju71OC9HOuTNQAMobBlPKiQ3fNTUWB0qlLLWKeJVww==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72754,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkNybCRA9TVsSAnZWagAApC0P/iFH6IMDxun1w1gB2fMJ\nnF0C3+2z2KmSXzIbIYHch6m7fIuOFXrovENvX6If95KTGR6gIcwuj+0Op3rz\nSF6P71bIwxxe1r0keE+Dzi68lcvODP5VF5FonMub8x94aAnk61BO0LoPPRmr\nTCLRVd5xbCBKvuHcDYhrua08716vSi3TB3L/b2BCUygCZPl+qb7i6LZdy7+O\nemMDi4wgxrDIF06ey5i5R4Zi08d9OKNObUJGL7JspZBY+rWfK/Eg3Zt1SRiX\nwfFDQUqdJ4Qc8eSr3rgs2G6sFLKX1MJRpEOqnlflFZbo7ka8dkSnTjyNwcIQ\nrOGnjK5n7cXYJ4bgklG/9ntm5Y2mOzYQkcIaHMFr1Q4+BtWmoD43sZwmhgM+\nzXmG2UI0R5zZKxSzsB9HWfxUNtKlKFuDDalHRzKpghX6mtzrPVWfAtNK9LIn\n/MnPF8jxxEnYi+s9XB1Mo/SkWge2lu6nLwSAC2M80juzG+ETotqdqU5sf7aQ\nR/U15ewk9LhIyPlo+8KLs0PewecrgyBwrEB42iLr74YFiZUjM49zoXixNNZJ\nczDiPpPzN6qTYSTdxsXE2qj48Th5olokqrNWu+LzG3VlX/16FxQbBVJGiwIU\nTW4US4rx1sJBC85JYeKXj363YjhYz6Cl7fMk5gh34+KjuKF1us2ryTyVDYM0\n054g\r\n=peMi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.26.5.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.26.5","@fluidframework/runtime-utils":"^0.26.5","@fluidframework/core-interfaces":"^0.26.5","@fluidframework/container-runtime":"^0.26.5","@fluidframework/protocol-definitions":"^0.1012.0","@fluidframework/shared-summary-block":"^0.26.5","@fluidframework/container-runtime-definitions":"^0.26.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.26.5","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.26.5_1603329179386_0.40549409073983456","host":"s3://npm-registry-packages"}},"0.27.3":{"name":"@fluidframework/last-edited-experimental","version":"0.27.3","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.27.3","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"b853df6d911491c295893f9abe7669ac0b9371c1","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.27.3.tgz","fileCount":61,"integrity":"sha512-a5RMrADWMsxDeVVSl4ok7CnyjZNrA5Ui59bJXIL8CiZ06xEuDxi6sHKb+XkkwxdJgtMLghiOsIx34AS9IiZrpg==","signatures":[{"sig":"MEUCICbhkA2xfIwBB0VxtBUnXwjJWsYMioSrmWXCf40jQ9fsAiEAuNnZSBh1JBUDgqKMM/9MmEeamXSl3Lc826tzYiVsQa8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkNzcCRA9TVsSAnZWagAAhW0P/3Hvy0WwXaYAkhnVvnnz\nIiZVucDQ2jILv7YrAXSnLIqTT1coe9M3HbFbpW/fi3bWIBhd0Zv9SoIU3vHq\n8l7KcolLkC09GEidBGhrIcGhOAXth0usS5SEiKPIpDQJSiPJ4AU3dW6ufx0V\nLF1+OxLwLC82ulxYW0Ci6jdPRdL8wImX3zS4ZomeLEZrD6qNM9xHy7iwDedw\nbSPF5wcjVtPi0xNyJMm53mFXUsR0fJB1TnGHIcgMP46KnO4Fw/RtQvV6XiDy\nvuDTAtjgDue8YLrLtH3PuByA//U46sf3ZcgliJfNR1yVCvWbo9C16mQrNFLY\nEYQDW961c8+dR/u+kFDSklwQI94OlP01nt+G0cNzd/NinImQEiWCOK7Wu21X\nXb7bKzI0kMBu7sMbVAAOKhDxWmRX0pOHn0wa94EvpHj+zWaLK5X9JtpN8tzG\nphh3TLriNAM72hyJzDdKLURaHYzvSgxubWHmNbq7tcIuqh47XCHfLOeQv9k/\nWhHoClkpGk1+8x8Ur3ISdBKINBroqpQmjkqZTeTxZgoA4MNsSLVDc5fLjvRu\njF/4pMOfOrm9aNdO0Km4XKbDDm9JC2ZJ+JL6cS7NfdGFFPtgGm1deWOpbC7d\nBFcCHYSGIcv3pyn6vlOEJ0NESpW6n9r3sPe50QbpA5Crl+f11gta3HUBfj1T\ngzQK\r\n=KPN1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.27.3.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.27.3","@fluidframework/runtime-utils":"^0.27.3","@fluidframework/core-interfaces":"^0.27.3","@fluidframework/container-runtime":"^0.27.3","@fluidframework/protocol-definitions":"^0.1013.0","@fluidframework/shared-summary-block":"^0.27.3","@fluidframework/container-runtime-definitions":"^0.27.3"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.27.3","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.27.3_1603329244323_0.749635955378849","host":"s3://npm-registry-packages"}},"0.26.6":{"name":"@fluidframework/last-edited-experimental","version":"0.26.6","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.26.6","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"29b1bae67dec02f114e7f3357615f11424dea257","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.26.6.tgz","fileCount":61,"integrity":"sha512-xxbtxMWSBfEHXjurtDSSnAAxU4g07A/w6n1Jl+10sUbIkJ415qUl+7QLtYl7Fa65kuJPVPkOeNTlS04yH4xQ+A==","signatures":[{"sig":"MEUCIGekYzRrtubELU/EIay2+NixGVTxRPlZurIBy5iwkSuQAiEA603fposKRJGISlqVddT/l1j+fED7kQW+/ojWOw9SPRE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72754,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkY49CRA9TVsSAnZWagAAoZoP/1VU2zCRSYeHUzWJtvmi\nUfOrm6RELVOhvbY/Ba+qEKzpVrYXJlvHkb1bIK3xSYuHJB89cVwjc8Y+Vf21\nUX7Mqkv5Ban8hJ+cBEJO1m77q65pVSFCkm51RLRHcb6UkEWLlQevkpsB1zjr\n41D1xIFAr/epYyyRukXD2vu2aTVj6WKh37k4yHzHL/NufEIla2cTIZlbDd0i\nug7Ktp68njuHqcDn8pzksLBp/BaH1C/m/WINA5UMfnQUEun9LFWt3vkaOWec\nhmZdXIfz1vDlN+BqoCZpTfJB0X7IawXYyzrjzBJMC1co1iErfZHydFujqxRq\nPRQ8cPZuIm0JnGOROPw1Irs+EwIEvrkARV3XmzQYhDsfjKsDygsTdklBMPl5\n05DKjec7nVDKvqgK1K6ScDS/sFKBa2DkKf8cH4iE6EezT0OZ91Y7b+q5TtSD\nR/kBpQkCps6p6cBCMIszSPpe1l4KOAgx08vEi+5sbUzxdtlUhlzjKOmJnoQz\nYy88L8EUk2WQUDpzwAw+yQLq/m8oNtnSVm7Sw0P4eeEzQXoYXPRH3A/r4LL2\ni9UcV+qhZCLUne1x63UGgYupOXYzHhsF7Jbo3u11gKUFBzB9xUkBdjeOFXmL\nZP2tYjgv0tNx6iZ8lYFIRMvGJOL7Nd5/vGfAih1/fkUopBNjGkx0jeal3YQ2\n4MWN\r\n=5eaI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.26.6.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.26.6","@fluidframework/runtime-utils":"^0.26.6","@fluidframework/core-interfaces":"^0.26.6","@fluidframework/container-runtime":"^0.26.6","@fluidframework/protocol-definitions":"^0.1012.0","@fluidframework/shared-summary-block":"^0.26.6","@fluidframework/container-runtime-definitions":"^0.26.6"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.26.6","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.26.6_1603374653215_0.6488499296667376","host":"s3://npm-registry-packages"}},"0.27.4":{"name":"@fluidframework/last-edited-experimental","version":"0.27.4","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.27.4","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"a0f47fd94aabdb1424ee4d4f6c0de932b283f126","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.27.4.tgz","fileCount":61,"integrity":"sha512-edxjPKm7E3E1gpt+Fz+lxeRnPealERw2A5CHQew30r5sZgoaAUelcH2m9fWo9nVTLkGSOcxqlPrBDgL9qLKpFg==","signatures":[{"sig":"MEYCIQDrsBTv4YLYpZlEaDa4VUpDq1iHYXJtx40awQ5IzAdzggIhAI5fOgbfNkfjdeNQUjxTha6I48V/8XkqyMp1Clpeo5Yo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkY5OCRA9TVsSAnZWagAAG0UP/0lE7+ZRSNu5NPBlSkWL\nG6jHLotBKOh68ddfriAaB3TXgkHTqRIAl1nnMpNPUBJPkoOlRFmeX7hw5ior\nTDwQWYfbphrxN8NxzU/lwLIm8u98tfTsEJYdbehqpk+27cYfrLcdVxaXtWSc\niyUfd6Z78xfIHSJWIck0AvB/a+YRTFKIIq9wacpvGi27PF/0EhCI8QJ/6Df5\nD0PWNM069BIGlUPjwrGNaMsSv6h9UBB3hWnO6fibzMGbzMrAC9rQpEpRtm0L\nGKOoX7gBY0WyLC3L7X3XxwTtc08jARExoea9mNQqMLLTQuk6dIsbsbmWvnk2\nUo/fzuY6J1FmHluS0rGOM1Mgwv3lATYlvgykAZIcYjbM9/knwKNzd43q7kZf\nUClN3lyEVYJGuNwUdC4lxMD2r6yhCPyNap62U+DesCo8nEGoeCWZV1yDVI6p\nxjNDnJjgQCXaLZPyTxLNauyZHPQn67NWa7MvEGeUwxfEaMnz8i5CZ4AGEvhZ\naM7gEUHyS9ge61LGvsJqn6lFSx+mSHg3nwVmGve8G7CgJe3Hq20pmGFyNtww\nZtrYHiAli9JyXyvsG/zLkQxG4m9hX8Sd7qkVtwgM+d19wTRFntgVEWIYoCva\ncHD8O9I/5WtNZDBYqc5D4fO8yegWn/LaQIKuzW1tNtUOn+lrDOtp2GFNHgQk\n1Ikj\r\n=5RUx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.27.4.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.27.4","@fluidframework/runtime-utils":"^0.27.4","@fluidframework/core-interfaces":"^0.27.4","@fluidframework/container-runtime":"^0.27.4","@fluidframework/protocol-definitions":"^0.1013.0","@fluidframework/shared-summary-block":"^0.27.4","@fluidframework/container-runtime-definitions":"^0.27.4"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.27.4","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.27.4_1603374669838_0.35498263928010143","host":"s3://npm-registry-packages"}},"0.26.7":{"name":"@fluidframework/last-edited-experimental","version":"0.26.7","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.26.7","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"348effb641f2d1b6ec107bc8db96cc58f344afe6","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.26.7.tgz","fileCount":61,"integrity":"sha512-AOX8LmqH7HwLCTDkL9w7YXvhGPzqC5eGGBWA6xExBXGNqof7R87rzYHbH9KRL1kdhFBwwwvYm0N4JLsn/e38Pw==","signatures":[{"sig":"MEYCIQDCRvb4DtJ7RBdSZ02kgOv2dpMUuCUd7YflhCRIBrvkOwIhAPdj7pfUK/GUfDBWV5cu17yk9S6nJR0dnHGwNltdiNr0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72754,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkdNoCRA9TVsSAnZWagAAX4AP/i8EwOuVT3rydFzUyLeh\n7hfD/HwFpYOL7uTkml9Gkl7Lpofckfk2A9aDpax1WSaZLQvS89FSq6hxlTTm\nnlazFHxYlblV74EgMjpn1/yRJx6dN5JhyhVe6CMf/YcwZNffrjaztTt/CxE5\nFnvhK7yTwa5S90NntujLRB11/F4jA8gVp/BueipY7ClFe+ab1Yf5yW8HXWZW\nwMrb73/4uQZDSvRipKSUh4uIZZmnFIdNAEqP+dZaJj1FhyAwt7+5JIhrhZm4\nkmWt1zJoS4EsToXvnGsOAI+KLp8GrHKx7UZr9MOmLCQaggPRfjfvnraDB/RA\nF0RPvcNRwcD8GrNIU4D/1driWEf8K4CY0dSF2fgnJRob2EmoCn52x9wAaufh\nWvaouZ/FRY6XXtGG+UPxL5TxqFGm3eAZb6AD6mpclFgrnROYKOrILYrvb+Xa\nEAaQguIFEBJHRrf+YJjWctOD7IQc671exHWIXP8zfAdltnMP6y2QeDn7ncJY\n4ZXqZVYE5kC/wKnbf85GE1OMIQo2z00x3N+zH1Gvn64PVjRaNx4MlI3dc+aX\nPfIs/1gZC6jyCBgEebyjfqPqdnWx6Y6UUT0cUOdBgU8Ge+x1+c6UmIDvJ336\n+sMLR1EZCAhw9dNereczfr8Aa5uon6otqe9gTnQ0b2O32BJx0pd8k0Y79k8t\nKszD\r\n=ehnb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.26.7.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.26.7","@fluidframework/runtime-utils":"^0.26.7","@fluidframework/core-interfaces":"^0.26.7","@fluidframework/container-runtime":"^0.26.7","@fluidframework/protocol-definitions":"^0.1012.0","@fluidframework/shared-summary-block":"^0.26.7","@fluidframework/container-runtime-definitions":"^0.26.7"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.26.7","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.26.7_1603392359833_0.4386223588999565","host":"s3://npm-registry-packages"}},"0.27.5":{"name":"@fluidframework/last-edited-experimental","version":"0.27.5","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.27.5","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"7c3d356add516ed0da7d40e54f67e1b4084cfb1e","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.27.5.tgz","fileCount":61,"integrity":"sha512-WacuhxrEZOHXsXJLTy1uNomP9MwcqKdM9AtULj59TYzGYSnBv8DzsBHj4S7biJVxm4STiIePIMTYd1qs4bjAWg==","signatures":[{"sig":"MEUCIQCNtKgiHtxRJCirzqNHWyQvwTkWl+r2bdJzDeKWuZxBMgIgI0h2GO+d5E5LADxcI4oxV/hKe42DLV7LB6r9i+VXukU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkdOICRA9TVsSAnZWagAA5+AP/jbxp2NSvOUShjrOjyFk\n4NzE3GWQHwweYF70sO2SJ9zdwpaH1WbabsFuU/r3TkV0Fk45GxjodVdO0vUY\n1pVQqWWmhCRveD3Pol/Petd5PRjIKT4Dq849QmjLMNRUm4i7sM7aeXbKY7Ag\n3DXnyOe4G6B1tLcyqEzSampVqAPi+BRtSVOf6CVvj/SvSCne/CdoqPdLmSiW\nacJejc9BaTwyqZGsB7Yg1qfjfkbHJAzquxeEKqlBIZQkUlyjL1yKKbhFpccw\ncEvBvrGo/lbaFdS3KbxI3KocWTEWc7+IkaqxLW/YyppLyhzN2H2q+4ydZVlu\nCPjXtuylDnAfLTNHqowgl6AiQ8ousQxoxBfYl8YuKDte20EsGIe3bj3KWJmk\nICxdH/AMbui+m5zMs63ztpqUSOsLRMqMljGCtPCTmHKByuCxcpzKgvhjI9U+\nMnyp+QcqQa0C08AX8dIEUUBKJZdRwhBH8Ei35iK4PmX6G5WOd+oKToBKSt6Q\nSIxYxH2VugodBk3LznZ7w7oipI4fJUisKVj7X/gDvV94TEDlk0cKLllHR3W2\nSItG5IS6FuQfQuca7SSG2717wJSTtKEIapJdjZ0u1pGpnkqi2sOWWEMmdqEv\nCHvbMlfAtC/TcxSP+XmT3W/wikcnyh/V29LiKfK7r9cPFbk2YQjfr0UVC9cf\nF6Gr\r\n=xqHf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.27.5.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.27.5","@fluidframework/runtime-utils":"^0.27.5","@fluidframework/core-interfaces":"^0.27.5","@fluidframework/container-runtime":"^0.27.5","@fluidframework/protocol-definitions":"^0.1013.0","@fluidframework/shared-summary-block":"^0.27.5","@fluidframework/container-runtime-definitions":"^0.27.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.27.5","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.27.5_1603392392129_0.7777828760430572","host":"s3://npm-registry-packages"}},"0.26.8":{"name":"@fluidframework/last-edited-experimental","version":"0.26.8","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.26.8","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"5421ee4d61c6f318cb724a91a836ab25c99c2571","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.26.8.tgz","fileCount":61,"integrity":"sha512-NgRxeWZpMUQX3H+DUp93nQ+dwV461Q1AunCeofLVyVtPjUumw+d1juZYoavs5VizV+jMssV/sNPg6Ub/iFhvrw==","signatures":[{"sig":"MEYCIQDv/9NL/Cj2axMxInxg+FZlYLNm8PSdjSIhCjnifCMQhwIhANN8sA11K/f9Ixx4rL/xIBviGs11x+7ZHKNbFwOfnmji","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72754,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkiJICRA9TVsSAnZWagAAq/QP/jhp9ZLpZML/JHW7Ef7V\n+Cw4dL4xCUKlfmbRfqxCrAP1UdLYxZ4Jm05mF698Jt/Azc8FnmApsjoFIvwl\nQQN0GSm9O3s40707JT3Ij7Sr8ZiaqY3yrtM8y16eKNkhZX0EgnS2Fa2rkboT\ntcqOyvOFm6qifFTxrYq6KdzdPxDMPvORFT9XLQWMBDAeSeHuMa6mAyH+h4Ib\nCiRSLR+sZBi6LyPGEW0HMviqBXMZeOzlJD1Cm0R8sltdy+iLVdqlbn+mDTTh\nN9TV0X9AeafUu2dlgYcpRKjxVd4B1uNuaZtCHheMh0okAYevTxnznY2sNGZ0\nx1R2hConr7gnsjDnzYhYIiFUKwT7wJM9lQamUTV9+A7bu8xDcMF6mdMNysTB\nLh1pH++iIdzMJKfT91TitstbNqN+2CINSQfjx71bnsFLNQrZErKqUAw4xUV4\n0WQTMOoeZo92txl9Tqp+GzN/UyRwGFMyDo2b3ALMasSfGy+qogrJ0imeTSay\nt1/5DQ4vVsXgUWvJ9c5XZxP4e0YeBrUuZ9auRroYqXQWicyCNUcsWYf0pCaB\nwaGvzb5PqwcQwNew4PoxiazG6lhxJShIcym1GMPEDomhhpAf6mATsmEhQnIy\nqZSvdZOdzyu7+Mrp9dHhAgQY1HDJ7gNuW/k9d6H388v8iGEuvM6M+YgS52xc\nfFGj\r\n=4bx1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.26.8.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.26.8","@fluidframework/runtime-utils":"^0.26.8","@fluidframework/core-interfaces":"^0.26.8","@fluidframework/container-runtime":"^0.26.8","@fluidframework/protocol-definitions":"^0.1012.0","@fluidframework/shared-summary-block":"^0.26.8","@fluidframework/container-runtime-definitions":"^0.26.8"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.26.8","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.26.8_1603412551641_0.2491767944916643","host":"s3://npm-registry-packages"}},"0.27.6":{"name":"@fluidframework/last-edited-experimental","version":"0.27.6","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.27.6","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"976b070905e63baf0a147d6bb9544f3cc92e2ee9","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.27.6.tgz","fileCount":61,"integrity":"sha512-iQPFqnkTIve0gf7K4DWF0YoiNeanHenMAxN4TX2ZDCUdnGiIzDPFCjbTmi8/7PPqaE+ZM7XpO+9fRyWlaFGedA==","signatures":[{"sig":"MEUCIH3xUyS33EYtzZDMuWO4QmNFE89OkCeQQx1IpWnhPxTAAiEAz8SJHy46nj/aPvi/2X8Z3GaBThPDv5GPezH5EbDkRjQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkxx8CRA9TVsSAnZWagAAqdUP/RIVHPkXhP33uxXwygeB\nCq3DK4O3coAyvF8oNYjfPMAvBr/BZkfdHe+GQALIAagMNVl0F4GroHMym/Dz\nkkqNpstKUjD6UVRVKhnCXTPNgOdAA64dzuqYqzGXeiLMCo8/P/GfI3YD8jky\npwf0zDBtAyZXgZGPuZDaJv36ECMV4ozU8VESK5O1esb9IfDTglVnVXoycA4u\n///hrtpLV1C1wOfuk8k+yQEVwK3GAhh81Eg/COp8TO4pS/8OL+EnhuoLQCKo\nC7+c7dYXXTEfobpy1q02vno4TuevffeHkjO014tqmuguK6wOBFEBRzf34rYZ\nmfTR5yk5Btiw1vQofxvb2VDCabxvWtlnsKgw8k6NjAzfEczIlpMGLPowzGNG\n7k2snrwkG6BN9hM+OPy2L3GChv9mEG59gxlXIOD+wOdV4q7FMr5w57VN/9MU\n86mw3XztUVTDtg2sIcpMlORS3RlNEPvIf6UwrVXUzZcPUswivGesqUAIBOCk\nhgrfISBa4fJ8DKvoyeTmrITD/rucziP4aA+9+dEjoUfuUPDrv8xRyNHSG3UD\nK8U43Af8gihtCXhpvK3hITxcqvjgEGAgDNQNvvgfeS1xb/SSG2lZW9XwZYvZ\nDDtix52iQaOcbZkeezd0ZyKKAzehAaWDWhXBni8Tcni3ku3vLxCyj7pTx8UF\nNQkg\r\n=OX54\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.27.6.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.27.6","@fluidframework/runtime-utils":"^0.27.6","@fluidframework/core-interfaces":"^0.27.6","@fluidframework/container-runtime":"^0.27.6","@fluidframework/protocol-definitions":"^0.1013.0","@fluidframework/shared-summary-block":"^0.27.6","@fluidframework/container-runtime-definitions":"^0.27.6"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.27.6","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.27.6_1603476603695_0.8583043814201412","host":"s3://npm-registry-packages"}},"0.26.9":{"name":"@fluidframework/last-edited-experimental","version":"0.26.9","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.26.9","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"ca299103376f3073ecbf9feb8a4bc46c102ed2dc","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.26.9.tgz","fileCount":61,"integrity":"sha512-9+Crt+aUtpOng6rCY9By9e4wxDSvG8Q3n27i0F0lWW0EmQgf12M8DfFkppGeoBjmrjdv9HtpPG2jGQSnqqfwAA==","signatures":[{"sig":"MEYCIQDJEvuRuSRMX+FKuAPsRnzgo9l151bSLe2jxrmpPCEwhAIhAL9Sn/DSX6/nYvW0qpAFmbXG+Wim50TfCBmNzCiXuwwE","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72754,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfk1+VCRA9TVsSAnZWagAAGuwP/iM6jCFK45oxpXBY11yT\nDR8EjxN+Jj2YmxIv80M2wadB/f1j60lUnmPlKBVNan/uPiZw/oycyNa7gDy3\nYORBxRfTTa7dvJ3e3pfRbLTQnI6AK/9FqHBqtfGuU5PJIEs9PvRE6Vu4GwCo\nLruBkGjnmf/3eiQ4szbqDNpa3y1ihf73aokQkxexOSMeHDnn2yF39DmHplEQ\nNWXOKi0jfZtoxjQEuN34sTOS/HFDdklMNhpJY8HzTyqO/dXaNHOR/YigIs3o\nE8bGNWeGR8NWd7DjagreLDfly3hQhCzP/IuAa4FWhRn4i3bwMdk6pAHfZQRU\nKP31ypgzH17HhjsZLI8mXVaEWFKy9Iep10RFUSU4gY4bfPrkcxL3Tehcd4sj\nMaHZvLXREggE+TvJZYOIBgbv94aXkMHAbb4kM2dJGT4Q8JPCfQVGhwa22FX7\naQsek60ms/GPmGUHsZRRPEy51BXJXMzFjr8CVpODek4RVBpuRSCNkCQQdBaK\n/5YM7P52ufZYu78qY3qgfibZgyZITSdX6wwY23JwEIhhGEtmHFExaI7wUx9+\npWoDrLZ4O6Kn8BewDm+lrCuE8Shyr+gzCDwlAkE28BGR5ydGxAkuwmscUiUz\nk4JJJ2BKInsd+B9Au/z2vKhG7Ncpl2V80fm802hrijE4AAsBnZ98WiZASeOo\nuRgm\r\n=MByE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.26.9.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.26.9","@fluidframework/runtime-utils":"^0.26.9","@fluidframework/core-interfaces":"^0.26.9","@fluidframework/container-runtime":"^0.26.9","@fluidframework/protocol-definitions":"^0.1012.0","@fluidframework/shared-summary-block":"^0.26.9","@fluidframework/container-runtime-definitions":"^0.26.9"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.26.9","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.26.9_1603493781381_0.3125809882721253","host":"s3://npm-registry-packages"}},"0.27.7":{"name":"@fluidframework/last-edited-experimental","version":"0.27.7","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.27.7","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"7876603eea0e38ed5030ad30b3e69a97cca43e27","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.27.7.tgz","fileCount":61,"integrity":"sha512-AZzxypqtaOyB2QU7ZpnJSkdbjMgu9uLDEa0e0fKwh6QAB0KnwXlJqVeQIffBSSigu1PzpgzxwW8mkcUNgE6V1Q==","signatures":[{"sig":"MEUCIBOqhzAEy8TkQypfDxu8v/4/YjSafgNfFtE8IDna4qzqAiEAnXJUhYx1FUV4OL+FWERY726lQZmtoWeLC6VPa5TIXFk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfly6cCRA9TVsSAnZWagAAG5cP/inuA8uXR0xHvL57Fp9C\nr/brwM/+EPo+SqwmUE3aR+tEV6nkdrzblwGc9NNu1V12LddcD2VWqg77Rf9a\nONNZKtGoKGle5/Q9bxxrEcuOaJasJuxvG51SdewTuKQFdug64I9dIRw2kFoS\nJXquFKSirJH3MpaNP13L4CDmun/CAxqPGJgcDQ0ON6QtxkqsCbkHGJU5H84f\n2dGRTMhzt3S0XUYYCxQPzc3998K3Phk9gmQK2bOMI7ZeO+liwVMRZWFxBNZZ\nDccWuTLTjj9kSvtqNER0Dr4BcLReJvZm4o30jzcPkG71m/U3pnlbxvIRw/Fa\nVjJQeKYijE5F4eSfbhCfkBqKfYlOkHywmnuJXuxxG7YJGNE0GllxweJWOVCb\nSIoz6VA1bU03tyMsYbaiKL4t38g+Wr5SAIJg6mzvJmfZANVAP9DAHc29SC3q\nsIF+deBM3HqJku584IlVQQ/gbIcHfDG3ylsYkV6JB2RVw/ywdOpcS5h8M0FQ\njyakeEJEFduH5d4MmD+AnyV6YzWxyuV0xmJbEShKOvBMi31c2CQNFP9oTI5Z\nOgwKaOsN+dDCjz5fTs5CtxXKXu8+wTajj+PuuSSmN1/TvcNOO0uBRUhMZtFk\nHbzJXkcodxcJuwsMm5Z+DeIS99ul2mA9wXGqFDurtn7F1YIPOKdjtcO7am+n\nspWm\r\n=FIpE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.27.7.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.27.7","@fluidframework/runtime-utils":"^0.27.7","@fluidframework/core-interfaces":"^0.27.7","@fluidframework/container-runtime":"^0.27.7","@fluidframework/protocol-definitions":"^0.1013.0","@fluidframework/shared-summary-block":"^0.27.7","@fluidframework/container-runtime-definitions":"^0.27.7"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.27.7","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.27.7_1603743387526_0.6224414297998682","host":"s3://npm-registry-packages"}},"0.27.8":{"name":"@fluidframework/last-edited-experimental","version":"0.27.8","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.27.8","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"e6ab3dae8f003b6124270b41bf72c2e0c83eb0cd","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.27.8.tgz","fileCount":61,"integrity":"sha512-v9ypZ7m+jvycYscC0b4g/xuPJlHFvaDcmNBEJ+xD39txpcekOqtfMYTYEPnK5eRUMNhc/mbE6V8DqnSd2sCdSw==","signatures":[{"sig":"MEUCIFvIfinaAtTU84cTxF8NlzzY6SG8lt8WJg9vmvTnNn9YAiEAm3Q6ucNgTy7g/lOOiCZqddvcbwL3GJTv6UrzBI1xoGI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmJs8CRA9TVsSAnZWagAA55gP/RVkGTLnoSXFbUHkHbKk\nKiAF8gLex0IQysxhs//kkA7YtyaHwc0uMWdhqmO9HjNsja4jdEazSvZdVnCd\nb3AgBDG7f3gauMxltzWZIVJSnV1V5S8Cc61/ueREdWyKAXmYIREkhxkHnJ2A\n1CvT221myFxLCGBRq1NZmd7GXD7+3Q/bwmhlHNpig58fzMVVVQIifKkxJhHN\n+fBcX1w5lpPhK01M66SYsNvy6qJ/sBiXHsVi5OFN6FxFoh0eeX3z6l7dy6S4\nxUz+j5V6FruQLXLkS/ksqebAr7uTLFIdztAPag9P+s7lc4YgF9kUrSFRq0PI\ncBdU3bguqgSclOU2DeHzQbrS5I1jr44L3ezAJIWVTrncxRTXA8YV6uitmXnf\nRe5d4lrKkQFrO/LWONQVgRqRE2HyY8vwdk1+is7jgJ7IWogGtblCoMKSkzUY\nU1uHORIf7U+bXZ6koRIEyXRrhIN7fJz5GuR2MGnqihDVgxcHvpUKZRiAvFZZ\nXhEi64fMSJ/MnX4Z3ubl1MTIihMTdBCPj0rfrZb/0pGglmm2gXwQJzz/Di1P\nLD95MTS+j4/UfUiXvt/vWIFdcjXyTzutJBYCkKLrjPHluJv0dtZJJ92zka8W\nDDF5MAmCIAtgdsnmgCkHHkFWMvs4hNYx/rPn6fb+0yiczSFdJMrqWkvHeDwq\nXjNu\r\n=IjF8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.27.8.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.27.8","@fluidframework/runtime-utils":"^0.27.8","@fluidframework/core-interfaces":"^0.27.8","@fluidframework/container-runtime":"^0.27.8","@fluidframework/protocol-definitions":"^0.1013.0","@fluidframework/shared-summary-block":"^0.27.8","@fluidframework/container-runtime-definitions":"^0.27.8"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.27.8","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.27.8_1603836731724_0.17311787020849922","host":"s3://npm-registry-packages"}},"0.26.10":{"name":"@fluidframework/last-edited-experimental","version":"0.26.10","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.26.10","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"c1405931ee5758fd153ddeef6a553be24ec174d0","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.26.10.tgz","fileCount":61,"integrity":"sha512-9JqlLdakJxC7wyZAe66TTXdW0jh7q9jR6qdhZ//1ou2kN1VT2Ko8FaRd8Z0yBaS/uEi7lwBCFfgSYHZil+YUFg==","signatures":[{"sig":"MEUCIBi56v0FaCztLfIkeg14Io2nUjKNwclpLl8bdtzrQowKAiEA2gsca4dl2FCJhQVAipZCJrnXOwkbgAjpoh3TFp5T2G8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72769,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmM1YCRA9TVsSAnZWagAA6TQP/jDc0zHY74iw/6D8lrdt\nCSXyneZ+nD2bzFuZPgJ3RUogcNONYoZHuWpKjYPtB6Ihq+yzcYiBy5KkdQd6\nYatOXV10twOGLKVQi40QroEweGITh6/TJeBwwn1gy1LQUPx+B5Dh7/VPb5wB\nF3fwWFT3anoxr9EpVGYUphppIPJ/6TjjTZElNn5EugdBhQtqyr7HZGaXKDz9\nReDpKDQunwwoWba4zEST2CiZ91T20ba+HSudKR6Quih7ALdtkbMIJnXVor5B\n30qOGB/8clK1cD04vG023/NvQYDxYVn2RkZBKRgKXK/NPNhbJGSxqtCRe5Hi\nvor7o8Cnb8IYvcoeDCXAXBKAnH0IxAFKfKAtmAai+zvJ3DKJZNEFxp+URWX1\newL+2eUiSb/56k1oMPXSh/rb9CP4eCfJLB/CnA+G1SXdXv/gL0IFF+F9awBU\nvBEwCAfAmYBlv8LMCC0JrPPtxt+gWIV1F6+zoGPNxgkri090S/CAp7kpywoF\niStJHozpRB6kV2bHq64qfZ5CuVqldh+xNeiV/TtZ8xzg7acELV4QJNbRDJE/\nIEex5Pl/BtoUWpRVVqf/KKolALzSUbFT//Qj6uprX6UwJJhYTOidjsJJB03Y\nepxKStMiDRU+MpXTpSDpZklvWPKtveD+S1FAmWqBKTMD7IDBuB+0M7lAKtZW\n1svI\r\n=+5w9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.26.10.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.26.10","@fluidframework/runtime-utils":"^0.26.10","@fluidframework/core-interfaces":"^0.26.10","@fluidframework/container-runtime":"^0.26.10","@fluidframework/protocol-definitions":"^0.1012.0","@fluidframework/shared-summary-block":"^0.26.10","@fluidframework/container-runtime-definitions":"^0.26.10"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.26.10","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.26.10_1603849559877_0.49509553993829014","host":"s3://npm-registry-packages"}},"0.27.9":{"name":"@fluidframework/last-edited-experimental","version":"0.27.9","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.27.9","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"9a504d37febf684a68e9a073a4fd470afcefa1e8","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.27.9.tgz","fileCount":61,"integrity":"sha512-ImEMziuWvVxV97mzIZpkz7sz6ZyjhQ92qwZ6y2PB5iKvrVAnpGDdfnEUw22T5pFKMib+XU+HOJ8btv0TvaWKUQ==","signatures":[{"sig":"MEQCID/jLsp4wt80PUlqmOySpx9Mzd3IgrWityvml8iMKCJzAiA5xsI5Dfjt6YtyA9u/e04TrTbrnMoCS5JC8iMzeENrCQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmyyICRA9TVsSAnZWagAAWTIP/R8NurJ9Iv/up3LRuZ2m\nraymoHdjZA/Eu2QsnxY4r4NRturvSC5aGK1PfDG485zt9akyzYQtHQuIMEA+\n0f45qD/3H78cnKvZj/no+LrhlMigRhZHWANeizli6/0poGeVpqfXB5FAdaLC\npKOCjqFVhjMcoznRnE5ZUIdkZkZoCR8rGQjr0jxiEM1NpKZW8Nljg9l2pRmI\nLq8v73eN3pa0hFdI22PqwlLwAnnI5FB3EOHDVzfPeqdF+K5fxV6pYHY5J6vJ\nkIYFG5AicT9BH5ONcD1RZWW2nEec9VFVCN+aGgUVm4kqR6QZHAoBzsZOzTj0\nTmHP0h6FcJwWChcdsS4PQqV8RGO5/AXo9038QZkXBFoAUUXiLb6iWFdPWtWi\nRuDIqlgaZDC/tmNIgyNcTJFskkiUHarseF4vAfz40ZORdNjIm2xuJYs7FheC\nvHeBOV8JioSO8fQ1yfY0TxDyja3+81dtHo17ZgdWZfRvZdB1TeCojnFyM7pm\nVhMwAighKAz3/g4/3vsTdgLcpeH6jWsn+ZY+n9yNT0wqzWU5/WvS2o2pHh+j\nJ1rUk9pLSqZs+xCI9gYEhhs6ltUFGwUVF0j6ximftKFMBYnYcJPeDsBsZ/Bb\namsWOKJksDkvSJUGt8nAD7JHUMs30lMHZYKMkZeQeRVjZUMd9rfuk7MuuHcg\nraBl\r\n=Fzet\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.27.9.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.27.9","@fluidframework/runtime-utils":"^0.27.9","@fluidframework/core-interfaces":"^0.27.9","@fluidframework/container-runtime":"^0.27.9","@fluidframework/protocol-definitions":"^0.1013.0","@fluidframework/shared-summary-block":"^0.27.9","@fluidframework/container-runtime-definitions":"^0.27.9"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.27.9","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.27.9_1604005000423_0.08323466616007269","host":"s3://npm-registry-packages"}},"0.28.0":{"name":"@fluidframework/last-edited-experimental","version":"0.28.0","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.28.0","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"36bfb2b4f93953db86d1e4cb4c2b53e3b383611f","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.28.0.tgz","fileCount":61,"integrity":"sha512-QWQb5yRILrHc/5FwjtEoTTaXvkkMjpru5uBSAEF0L8cAuTUr/gkHTfWK3W3sa2ousPmfVDXzTQFekl3tZEuoFw==","signatures":[{"sig":"MEUCIFjcNm3PpqNUd/xJFvpCvJLgnxAE5IGnhfvl+fpZrkKLAiEAlyrwUuSRd0MhhXMi3EtwAi7TglGDdXjQDYcO/mJOZRY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfnDduCRA9TVsSAnZWagAAulIP/02Y5ImBzk8qTQyyCBT6\novDd/aShHeZWqld9frEeaPnNsb93zf+a1ITTydEpyun8hWrbKFfOilPEA8IC\nan9+CQanKRe22V+tAZdWum1orRz+/Dk0WAW8kYa1ZXs79JsF29kp/5eYjGvy\ntvsyT4RuHowKFfcOUH2ynnRDKHVi1rF12KYKH4bEVsnxPwdtUgtvB2MlR8xV\nu1XgxBiygPmM4+5gUrLB+Hrw3oMgbJLnZM0O9DHj5TjdK3lBQ0bIGlubzkKd\nV+pkcHECADP8eHlbd36/o02exfX6/1a0p5Zx+ozHsvv69npkzyHLw8U+SXjj\nMpagIPKq+uQO78v4ycirxWpOizIap30wxNd70bpNUx291HXwAnIqUk6DhXVL\n/syhm1Ppef5a+qWXdFp2URC5kwhUk/L4/KdTLj4HdH/+Sqh4ORa2L6YiqfT8\nM0z3uygwc0X4YtSDC8U0B0WIsn4vkwNud6Es+o8ffObuu2DDK1xStAJ7YbUB\nT+naASULahXMl8P4fgtv1BNBBl8wH8F/Ypp1a+0k1VwTJ6bpimEDXuIet+BD\nk9kBzTQnIsZ9idOk+/YKYEBx6RLLzK2VMcd4aIH4uRLhnajRd5om1cQIbVvB\nXokiccHZR3NHs+MXR1tYAMVC7CuNYc7uSYvdXx+8fCvUd6cMFTaTQcR9HCdW\nQa80\r\n=XKU4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.28.0.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.28.0","@fluidframework/runtime-utils":"^0.28.0","@fluidframework/core-interfaces":"^0.28.0","@fluidframework/container-runtime":"^0.28.0","@fluidframework/protocol-definitions":"^0.1014.0","@fluidframework/shared-summary-block":"^0.28.0","@fluidframework/container-runtime-definitions":"^0.28.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.28.0","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.28.0_1604073326078_0.002631848966336614","host":"s3://npm-registry-packages"}},"0.27.10":{"name":"@fluidframework/last-edited-experimental","version":"0.27.10","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.27.10","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"ff4c3b59792fa13e6a1adcd23146b3a907c381c4","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.27.10.tgz","fileCount":61,"integrity":"sha512-dad7K/2Cb5/RclCDdIrg6N1gRcQ/snoHlOLahM2520AgAY6FYaQS1ad8hueB2FsQ00ygRl0qtDB8h21ARN/+FA==","signatures":[{"sig":"MEQCIDNEN8n2noc+A7F+hRY2hqnEyNVhJBVIyNdhqcqJJg9EAiANlCdETopjZmvXeJxW4DYklMesQNu8eSyXPT4icKXCrQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72757,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfnE33CRA9TVsSAnZWagAArk4P/A9nR9Fi2ohicDeUEIMN\neHc+bctr3904njTVPrw3e0R9hdYvjncALwV6sDnf4mERiJYqb1rw6vkRdSXV\n7uAxz22XPHRqyA7C+KA2HJvqylFLh7iTSKXYmnJ2qhp6i7InGJ2pZFGksdwB\nRB28gR+qSUW5m7jxKIdulxtheQCkPm8MQVypVKHPHHDQcMaTSOPBwT0U54v0\n9wQO/rNMaMMbBzKzM7Dg6OJoY6TJ84jFZGIcD1H+BzQhh+L+GI3YUBrYLxSy\nojH/uEmHkeySWE4ZEE6ON6eWaSfVJWy99ch6k3rdmHa+EhAWSIoTeRpr+Omn\nblR0Brvunr02eONgaUdZ+UkwYxyePF6xNlZ4F6vpRJGII9ntrYu8Q5X1u+i7\n7YbC3JUCcSr0Oz8QXbOKiVNX3GwK6LBuv6Eg/EBu1ccyN4EFVPuDsLVhNIyq\nunJVyT87xH+OxeE/B9oR/TlF2XOk3LpCThp4D6Eokz4YX0+seyXh7PXMmBYi\n5nr+eceF9oq11J8kLEI73pGyyh4/3+UevTjjnESgAZ+Beyvy+gTsrpCp73Uy\nNGMfWmlCd9FmU72v9x4X6Pf1Cvc5lk8n0v/zDGBd8iCJ7UtL2MQK30eADJdJ\n9NdZfmmO3Lq1254DArp3uK+S7MSz9AwznjbkeexilC4U+yK5jWXLNQfGkACh\n/5rg\r\n=WyR/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.27.10.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.27.10","@fluidframework/runtime-utils":"^0.27.10","@fluidframework/core-interfaces":"^0.27.10","@fluidframework/container-runtime":"^0.27.10","@fluidframework/protocol-definitions":"^0.1013.0","@fluidframework/shared-summary-block":"^0.27.10","@fluidframework/container-runtime-definitions":"^0.27.10"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.27.10","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.27.10_1604079095365_0.7167618577589487","host":"s3://npm-registry-packages"}},"0.28.1":{"name":"@fluidframework/last-edited-experimental","version":"0.28.1","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.28.1","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"2cd68b7c4ea2141078d8985ee79011b926d2dde2","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.28.1.tgz","fileCount":61,"integrity":"sha512-xsQqv6oMTzcxalp9QxPnh1JlKtEdEScqPy2PTu8R2JymErOr2KA46W0iJW7/oAUDSoWlnK2ueI8uWzhzVtsyRQ==","signatures":[{"sig":"MEYCIQDLgPESRcZLOYy3fUegs8wE9t8F3dyW8D560PjmuJeSHQIhAIa9/z3l/uIcxlb/Nkv4qYXAiVqDdjUlCybEZo975w7a","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfnJWICRA9TVsSAnZWagAAQLAP/0up/4rhEtCxhvNsNhp3\nr+3eA8GfR5JNuDB/jKb5oVf1HeKVboZ2Tda338Z83maXcgKSIs4mu9JSnM/R\n6/A5AdBoy/0TE1yC4sEXC7WuwgN2A5fN8eZMYpHqKtcmx/NptCJy3gyulBAz\nu8v/IWKyx5CMQa3wX54+NtuEcWsEnWMS2ztg63vWThWKnTtmetEdNr6Ha3dW\nnbR+JVDZAr+EBtC9hyGMCjW//VNnEjoKhCOAeQlt6ZQkyLeeZmegHqTaVH5G\nFAD5hrpJ+RW6PqRd0Wifg9osnt/A+f2UQUVFRkarnmvkvwbQvz41/gdaPA93\ngvOxuhmRf1ha/UiGKtp1CJlhToM+g0YCCFXCpvC3cC1rd9AAAe4PMPIK0AQr\ntrdUk8hb5bg52sINg2m0iu+8rXLHpas9UtGrsASiLIURpoDftJOpimx/oKO3\nKH2Wck5HbCMImCPGIRqsG1YwcDeIXtRQC0xpUxy5kiqJUx6GIEcEjupSdgLR\nPvrLp8Lcf2v8Lee/qu1ohR8TPz8fVM0mKXTycKWgzqCmbDWj4VteLAYy+Sph\n7C2YuYzW5KmWUmyw0pBwzfMVP2r3pYsNMt4JwaknwGjsjIQzyk/5mML4UX4p\nbyndA+DOCW7KRYNtAO0tDJssBO5XlhevJJsXRLjs7FasAv8agq731UG1tIna\n+rxw\r\n=m6mR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.28.1.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.28.1","@fluidframework/runtime-utils":"^0.28.1","@fluidframework/core-interfaces":"^0.28.1","@fluidframework/container-runtime":"^0.28.1","@fluidframework/protocol-definitions":"^0.1014.0","@fluidframework/shared-summary-block":"^0.28.1","@fluidframework/container-runtime-definitions":"^0.28.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.28.1","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.28.1_1604097415678_0.23046513299174665","host":"s3://npm-registry-packages"}},"0.28.2":{"name":"@fluidframework/last-edited-experimental","version":"0.28.2","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.28.2","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"981c702dd837f90183c8c53e09f6a229a1749fff","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.28.2.tgz","fileCount":61,"integrity":"sha512-2VYi8RGgUzk29bFJVZqctQ61EID8/KQN4iogi3zZBEVnu/UKayqN8Pmjj+NnY4jkLMu1eQ7r5w0kn2vU8A+rTw==","signatures":[{"sig":"MEUCIQCibWt2SOPdtoC0ewqQlqPMsPhmzt3pCh0Eyz0PrNGkZgIgCvA94vcF+PfZkEvqr558TQ6/5x08AKeOtU+gcRt/w44=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfnLP4CRA9TVsSAnZWagAA46cP/3nQi869I5W7noenbgV6\npcaevrUEDNqAXvIbuSTS358y/bO3xswxhJPthgTwtal4YAkG1lORvaLPF5Fw\nzzfFQrMDQiLZVXiFEtWoEBy+r/FKsnNYt/D/5/CQyApa1nBMN13GZzE3YLDm\nmXL3ejIxejZIKU84UL6VDNPgKwwqSPCduQpIaVBKSbEc8aRf83l/aAZxAHWX\nP3q6LH2fu8JN4BgyzHU6WC4e3Qq05HKx6juh6457PfiB3NJrU3zGOyt2euB8\nUyocPwj0UDkQanmkSs5ltXfsrTWGxi0NSUH6GOTKBpkhXBDTNZCDdSGbDyZ+\nuSRgfqbqIWIQiGUN7YE3Ky+E2V063kpe0f5CvUmAX/bapOrr5LneS+M01V2d\ntrqWPXe9+FKYT/mCm3XwcXP4GtA5zrJVt3jGqFBiyOoo7P9DrwD8YVEYNH1R\nolUBT1sYFskwFjzjtXC0DPxW5a8ytJ0fq5li9KbycjTCN9Vw69r+6HN+fiGv\nFOmfthaecIAuykEk8gFBErYiFLTTkXfzp7LXiF7HduaRiFIyyzjo2EGlYBvm\nUnzJmFd1EIWKZMdQxS2aQQrr387geFWLtbjisJBQnTZrB6teD/ijjmOogmGt\nPJZkNxpvBodg72RvNFq+XAORrn/ZuvqVN2O2hWe1uyf7FNgG+4oh1nOqW/2+\n3yIg\r\n=VgEA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.28.2.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.28.2","@fluidframework/runtime-utils":"^0.28.2","@fluidframework/core-interfaces":"^0.28.2","@fluidframework/container-runtime":"^0.28.2","@fluidframework/protocol-definitions":"^0.1014.1","@fluidframework/shared-summary-block":"^0.28.2","@fluidframework/container-runtime-definitions":"^0.28.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.28.2","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.28.2_1604105208199_0.38719366264829946","host":"s3://npm-registry-packages"}},"0.27.11":{"name":"@fluidframework/last-edited-experimental","version":"0.27.11","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.27.11","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"9cc9ea1a9869a18f59f5d39ad988468fd688a8a2","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.27.11.tgz","fileCount":61,"integrity":"sha512-H1ntSK5+CRcyfgahzNncNzXsJtUMYkjmHoknOQjYtItLjS4rDw1Mw0is5dMu+W4NHe9VyOtAAV7upff35b6IHA==","signatures":[{"sig":"MEUCIQCmytHDrUapL5DJgKm0nuOSncE5XkOHuWt4froDWuSJYAIgAKzhc9tIsAG2ny1ToUSIF6haZ7hH0i+VZFDBFk3CM54=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72757,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoIQoCRA9TVsSAnZWagAAJ78P/1TuTLOYfIFqRxZ5sxpt\n7QZbSSz4lSQjP4YINZ9RhuM5vbk4UtCw7UJakP6+W+PuPjjkOOcrS9Q3eO+o\nBeNPpcpiXVGCNmddtftCSCEdPAWPXrNfrphw5GaB3u93GJKgAauYK4CIg/bd\nKpvA2uCrdCCT7pK9fh2mgYzlkIH62qhFXnshUrLDNxZyQQeNPwp9A3qBmk6S\nJ9l0ZfP7lKLo9qXXwe7sLIfladxNJenBaTC9t5UIlPITlU03tJjrBUk3tz8B\nEQX26ErJoLqo00zM30+yIIBAPlGZxqT9LccLV7DxTu7RNl7wTLs3+KA2NHR5\nEMiJjjt1Iq8HT0LfKBQzehXyA5eW9sgBxRNFlJCWZcmJwTDjwKyNDgAQS+IK\nMCV5cUWK+ssN3PTYHe07fy0a0t84pIs1j2H+non6LIY9pDQAoh753qLwkm7H\nAeMGh4ypUB6mrf5kptnjw1ZfC411Ix8zZo0RKqbjh4N9yr9Z0QXtKv+villI\n1avgQTdVPYRpARNZSJ19Nxk0QgG7ofrVMVFRhBksuVWOkg6H2c++/PFBJco7\nVoufcR389ZMNWNw+MW1k6fD5MduBIn/Qi0zRjeN5p14p0NXwXBsq3yZHLOyZ\nKq4OdRXkWSznaXBMYJJo7ON3dBX+8DJexCtUiUSOqD162HUZ5e9Wh/6j5vBd\njPvG\r\n=kcvs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.27.11.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.27.11","@fluidframework/runtime-utils":"^0.27.11","@fluidframework/core-interfaces":"^0.27.11","@fluidframework/container-runtime":"^0.27.11","@fluidframework/protocol-definitions":"^0.1013.0","@fluidframework/shared-summary-block":"^0.27.11","@fluidframework/container-runtime-definitions":"^0.27.11"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.27.11","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.27.11_1604355112517_0.1582457404897044","host":"s3://npm-registry-packages"}},"0.28.3":{"name":"@fluidframework/last-edited-experimental","version":"0.28.3","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.28.3","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"4934bf9c0836967c96a25f5e49c880dca85466fd","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.28.3.tgz","fileCount":61,"integrity":"sha512-9mpFB8hcuNXyl/UkSB1IIHuUQsemiXV8eddZgzOvflA1uUf4AbDtsMUCeaXZ1Ot54IUhEkMVWlHQw+sqirG/5w==","signatures":[{"sig":"MEUCIC8lYzI7TDHKf/9haE9p9x7NI2nROb8HrpdswV5k30EWAiEAiHssJAHO2n6C4WgdE7G8R3LORThY1T3Gi0NbRSftZv0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfotF8CRA9TVsSAnZWagAA0NQP/3jZ5gVw5mnDw/dDj0Et\nlEs8q2BrHcOOcwznGo2qh/9KRd+BNOKGzhjIsaEBcq4H4URzQ6Q42nQlCNcH\nAwHxi77YFrHnYolF/gaLUyADDb0xBlFJ5Z38266d0B7S3l0zebITGgwPcKbf\nH2x6R0kg6lsxQgYINjDimwCCY/nFNCekboXjPSaE191UVPbesFLdf+L4u4FA\n72L/falqvBw7SXmf5oE+gCyDOyaVKznU+uIzntfGgpG0nX9GYcT9D/9Sf0Hl\nlKkCGKoDqglYMMo0r/XqK68uv80KsaoYJsxxdJZVthrKTJIsm7Z/2kNACuAk\nYxMSzso6b1NsQJN2ckjDBf3Etx5kalGAoiHecLp7p9788KQwC9gc0SNd5dX8\nqKukgMR4OGFJymc6pQmwVJxbPdJJg77EEeY4A1jnmvsxmxnQNYZjSPXOZFkD\nlFlpSkSI3lE0yy2E8mrenPvQp8ndSIuKdQkkVnITayQFyxYSWXk4t6Ln06PN\n8d7ObqNCyzyyKkRb2RuxyblEuA9pkpJ+hH5CM2OjPp8KuRya4dgQVG9vIx7T\nCel3004XJI7xRTAOcuJYVfyojje/y5oOVSXGAp7P3woLzPqTcnCuAl1+UOaV\ngWkMPpwu5hzLCWs0YHq7AKF0/4fcjc2MoWv0eHsLcIyv1elZj5gwhionU5A0\nnFo9\r\n=S7si\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.28.3.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.28.3","@fluidframework/runtime-utils":"^0.28.3","@fluidframework/core-interfaces":"^0.28.3","@fluidframework/container-runtime":"^0.28.3","@fluidframework/protocol-definitions":"^0.1014.1","@fluidframework/shared-summary-block":"^0.28.3","@fluidframework/container-runtime-definitions":"^0.28.3"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.28.3","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.28.3_1604505980095_0.9214368959884938","host":"s3://npm-registry-packages"}},"0.28.4":{"name":"@fluidframework/last-edited-experimental","version":"0.28.4","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.28.4","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"ece95252bfe3c79029507f888bdd5757e0af64aa","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.28.4.tgz","fileCount":61,"integrity":"sha512-d05+NO/UV/57bkmqhMZuU596clGkaL62zqID/sX+w2z5FmzAZl2E2K5qiKdnGcg1yG+1npe32eR69lSlSAq4HQ==","signatures":[{"sig":"MEUCIE2IhA1S/jQsBTEsoUrCjAdghL3uSxVHbvIMHGE/f+2DAiEA6ZPZ/LKvwJOxz/Uedshn0soWfn4rtWgUU4ms3/oZ9kk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfozZmCRA9TVsSAnZWagAA9HQP/2+msUUIO2te4hfRI2Lv\nAvvDpRFFuy+pq33t0+KMIt6e2041bcbfZxgfFyvFING/Gu7J1SJAnnSGLLn7\nprYagj+MuFznQTojOwAcBCYTaqDzaMLUeKJcnWnDUyjvZ1FO/Rg3MNmLsiYS\noNWKsdL0MbE4uWFPt0haeKY2dbvuxTYnuf8Opljnl6tSrjtDIGStxTtIaIYF\nXJkor0H6a3wIw2L5SKHowGWxVM73hmbcIZuL50u4Ac3taBjwR4qFBF6nYvb3\nJAvL09UfSuu5P0L7dbOFaGKCOD/klkFl/pvRjmxarL04udwv5ZyCcljdkrAy\nfUIld9+XWajgPtuvU68bzQ+peT586tstfaKCnQiFlR4ZyiihVzDBjJ6GwIrK\nqtiZmGv+CM5d0uRVQLUEGpm69M018vCy1tdUHxfU1R7YpjWkZs3gvpG57RN0\nWoHvYJXxycwDimxfyfet7DAri/12d5wkeIYXbDWmSNByK3/uFZCiorlkYSQB\nWFC75fGwYoCySi5xwubGqqguhs3U2Ru1E+cIV38gOEWaq9qNxnKWhD7PILOU\nfHAJP+tdgMBuJ2EFq0nFZ2/6Ams6nFER8d1pRTkWuJ/r0iqT5SXnrmQRCG5a\neod3BYsqWniINXF6+tlOynCBZAq1FiYJZj8e5Zq+HWjNCJhX+36FCs0CNUxC\nCwpa\r\n=GRMZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.28.4.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.28.4","@fluidframework/runtime-utils":"^0.28.4","@fluidframework/core-interfaces":"^0.28.4","@fluidframework/container-runtime":"^0.28.4","@fluidframework/protocol-definitions":"^0.1014.1","@fluidframework/shared-summary-block":"^0.28.4","@fluidframework/container-runtime-definitions":"^0.28.4"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.28.4","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.28.4_1604531814247_0.8405341345480408","host":"s3://npm-registry-packages"}},"0.27.12":{"name":"@fluidframework/last-edited-experimental","version":"0.27.12","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.27.12","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"78367ab712132debdbd4a20b634c24b7aaa7187c","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.27.12.tgz","fileCount":61,"integrity":"sha512-yPExnaMyHGGNlWTJKTD5N3lXDFHY07QEtfd9iRUtruDcX8bpsXIU1bcDYajXn7jtRxCoxM5v8jkWsNRCFpXUtw==","signatures":[{"sig":"MEQCIC0rlJ2kYjwthUlQ5uB2XcygpJzSGlPsuq2G1fCnuh7fAiBc4TUpLznL9/9lYGtNzfGzu/i4K/s5rtOp/w3hoa5wkw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72757,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfozdXCRA9TVsSAnZWagAAHGQQAKFVA4XbucG+WEkpGcNx\nKTfF4w+ynrvmFOpdkVoAs3uaaK7Uvf0Hc9XexE2UAAKhnq06ghbWaEaNQ+45\nEHXO2vZqI9soha7SQPcoxrnpuj0X5mMdJ2+HzptIi2i/38K+nUq6ptBpSNrW\nEwjqIGwz/6uuCEQyY0UDzzpaEvNlR46TZO1/nXBqlyN7LOfJnZau25zZ+lws\neQulEe+kzd3k9hfFtpaNRlNQCFanQKqn2Elv+dChEVEMswMCTLKmCDDmS1Nl\nu8U1lIoNwnJLCKqCb4S2/0quS8xzGeefOlm818TBbOEEBXbKrhjx8YwyF4ES\nm3fOvj8HUYvDGJTt0D/x5gV6omlSfy2Yx1YEBZPYW6nuqjkaS1BG3lrJ86jO\nnGUuL8KzX9Jve8zz4N+b+/kmlcXj8dvArF38bnWP9KsYdEzWA56xCv1Felmr\nZW+uzFtWiBDGC0Fq4pJ1HQKxpVS9f5RZnfARAE1I8VQmMGJ4fYomRDndJR2F\nJYvvMfwNQnkbb+WR8zQ7lmVeiajrmwf70MbypUehOD5x4wPFaSngftCh9HBv\noOz/WD5hy5BZXgSPLsOu6G90kBsqyCXMjqnnzu9LOb/Gc3BAqu99l7YaF0xe\nwNbQ2dCouh5vGcc7CJfwtu2DpnLwkrEO5p91cdhqCq/kLlkNKKqeaLC+1PyE\nIHLf\r\n=9vvZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.27.12.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.27.12","@fluidframework/runtime-utils":"^0.27.12","@fluidframework/core-interfaces":"^0.27.12","@fluidframework/container-runtime":"^0.27.12","@fluidframework/protocol-definitions":"^0.1013.0","@fluidframework/shared-summary-block":"^0.27.12","@fluidframework/container-runtime-definitions":"^0.27.12"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.27.12","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.27.12_1604532054986_0.9775624743169169","host":"s3://npm-registry-packages"}},"0.28.5":{"name":"@fluidframework/last-edited-experimental","version":"0.28.5","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.28.5","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"1b1b2afce4f654b75c5657ffccdad5498bee156d","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.28.5.tgz","fileCount":61,"integrity":"sha512-QF1GeqdgPowlA2c3tieTqO4OXp6Cg/BxW00royZG6QKslRCD+a4p1se0G6fjfaB/6ls8gYgOWrONIACr62Hj8Q==","signatures":[{"sig":"MEYCIQDYs7HBudikdKQ/sAIMpf2HMTy5WA7SZSLY8gih4DKV2AIhALrOw8fL7Zshe+oBt/9I/LiEg5GzdvWMyGv7cm1aEnoL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpH3bCRA9TVsSAnZWagAAOEQP/049xJCjmMH3wUKY43yh\nkyztEc/wLrWmjH8piFMMoR/PDq6wvWll/JtJXEP27OghBMdxJ9GBlH3pGJvM\nHB7+pYJg2aQsfFhtBJImCXscBBmZFlUeAG5ZkDPiaoFDh7QHEQngJVPgcJGs\nORfwmvOZP5rvGl6oqYEcF9+BWjA7vhIAB20njJH7W3dfAoruKTFhKOTk3oCd\nWSxuLZsIXxPJhBnmQcFsIWbPj3N1MkZ5Wa2FXvapd2PN/WiTo3oZJpvL3fj4\n0Nk4RT4KpitzN401pZvlZiSdyUMiQW3iUvvpkN1VXoUm5IVJJAcwJkPwUFoL\nxq17yk6g27OWrXIfh2gT9wGzX6y+azC5c7KelEvHsctxlanKioH2q1bvqlxY\n8FOQyot5HDv6+EI0LZ3cF+7bCJDvu4N+xiiVd/c9WwJrf1LvNXA8M3v155we\nKbpuPW0EyrhUnntrOHgtlwau8USUPYqGn3fxtZicwr/SHwWYzINHvr4Kjo2e\nTmnps2CQV5XVEuGy2c4JCXtRT3vYMGVBQjgiOnlwZ6c/+/2rjwybQK7fJvsU\n3+gyWGypin0l9lAojp0nnaJbeiuq1IRxRNnTeCoXK83NeCrM3FmxG4Nc6p0l\nPzRn3tsRfsgECQWF+3wVJs8Qyt6ykOXWJFfNh7s2etlcbD+gLI40PSsnxa03\nJSSI\r\n=jUVW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.28.5.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.28.5","@fluidframework/runtime-utils":"^0.28.5","@fluidframework/core-interfaces":"^0.28.5","@fluidframework/container-runtime":"^0.28.5","@fluidframework/protocol-definitions":"^0.1014.1","@fluidframework/shared-summary-block":"^0.28.5","@fluidframework/container-runtime-definitions":"^0.28.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.28.5","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.28.5_1604615642577_0.9405753026168615","host":"s3://npm-registry-packages"}},"0.27.13":{"name":"@fluidframework/last-edited-experimental","version":"0.27.13","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.27.13","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"6beb33a5d110510c8b824261f71a9389b66ca522","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.27.13.tgz","fileCount":61,"integrity":"sha512-kS/8kP5Rl0xrD1IHJ8r7PoYwE/XXvRAIzZqMCCNVTYrxT1POznj5ICXI4wkL2S7U1i7gmjZjYKsiFAPF3CmIAw==","signatures":[{"sig":"MEYCIQDcs0qpC2nnKEs28lgiJB9fj12rslxrMuOldfP7ruGREQIhAKp6860rX5D9QnhyMxbcltGXtpNv8GkZdDQvUyVBpPgp","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72757,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpH3qCRA9TVsSAnZWagAAjFgP/Ar5+6EdHSSY8776kamP\n9bq4kA26T5jMFtqyaDvW2q5kYQ2jgb+gZ81RuiQXmKcAXRtOC+A6v7IJqWBf\nMxyMJbcPA/vemPArkH8jQWqPzRYxxqDYFyXHgCODL4TRJ+JUCzbSygm8TitS\n26Ox7i6OM9KeUQriNvWPm5l0rTpuNB8BEQMTykzkpArGuqwTndS1I77stCPu\nmJUhRVMkLTVkpOwbeR9hu0h8Ds1TgbNqN5G7UC7/IChLbmkOlw0q6XTvFCV3\nvVA9lWTKa9VW0AxfxGK+M+c0gUMuh2vzEybmcMSpR7aGryYajOFwzV/Dbjv1\n1GuewDSIegDjHFpVJHH2DDh8y1relo1HULy/s8ngPSgzjBJ3Fcq2pqhplNlZ\nBvU8bzg93ceQEHPTngYCHn847T19ZFhxnuNK8ES25XMJath9PmqAvaey1Cn2\nfNQz5iYickPcbo5z2drjCjpNJnrNIciIF3w8R6fkM6flhrPnKeq6PYYxIq0h\nbj3E8QfIY5RitIOoiMHL58nyYL4xvy4gUKvnmgJtPfyW7f/w8+saLVfOxWgE\nVaTFx/fXeW4UHcU85l1MxHlZK/mXpelPab49hJv4Uaz/Zg4ovaY7Z4Ky4mDr\no/2r+RCQrLNRxCir3QMvRQkkUbRxHjKcj3uLwWlzntUh5Xl7+9HMpIiTnqeJ\nKvYR\r\n=Mf4F\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.27.13.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.27.13","@fluidframework/runtime-utils":"^0.27.13","@fluidframework/core-interfaces":"^0.27.13","@fluidframework/container-runtime":"^0.27.13","@fluidframework/protocol-definitions":"^0.1013.0","@fluidframework/shared-summary-block":"^0.27.13","@fluidframework/container-runtime-definitions":"^0.27.13"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.27.13","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.27.13_1604615657742_0.4383421900708917","host":"s3://npm-registry-packages"}},"0.28.6":{"name":"@fluidframework/last-edited-experimental","version":"0.28.6","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.28.6","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"f9eb5ba70c1400febec247fa7a360390b21709ac","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.28.6.tgz","fileCount":61,"integrity":"sha512-kLN1PpRajT7/I91VmYE5XOwRctPHxD9w2WtO32fJb09VO/7ac7HujC7me1ZieNQo+Meb1fmr06IJGYYnokOlzQ==","signatures":[{"sig":"MEUCIQD5q7rNnI331niBS/xQGzN7tzoUc8KUlII+L8agw9e9bQIgHIbpKjmXtgD0J2i/VsW4mw5mooax1xSa7ZfMyhPit58=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqsoiCRA9TVsSAnZWagAArogP/0cUj6v9KDLs1z8iw9KT\n0cMA2xK3njhXdtH1qE3cc2ey5BpR+2yW2Lld9VHhh9i8fXAOwYtS3GaSkGbB\nm6ds8dx95XfmWI5U4ut4eDyQ6ivZl+1EFQ4/iBmucgrykaWxHOali9AARL+h\nCI/s/vM3jQasgv2yqgWkg9g3ahU1TecoMP4hs12l0pQ5WeahseLebR6bqTgS\n/0wrN5xZVjjH89IEDnSP5R80GyVYNCIE01o/zvaQJvNWkrAaZIHEEW7nlplt\nPT5+TtzpzVVp0/XxXvzGxiCAX3KBtSA9E1bL85duR84z6+RnVsgNs4jRew7A\nUFRvx1v+tez+kG5cYnD2cWQ9NC8MQWGVGRdaVVnJnEX3CxRs1OIiqHiMTZNn\nAmdmd6L9qFVmSmWIBoufsWtg8y6aVB9pm1v6YFW5nS7F45eUiKKCqSLPaimz\nl8eFZO3GsQG39R6wf/92SvD0EjlSXWcs8blH1y10BnKLzd9bDYLl8beSWkuD\nIhp9pZjr8RQZ7qRQTq/TriLnte337mQrTbLGmYTwXbcYGPBSLJ9gMuMjqTvm\np+TFZ/pikDNRtbOgyAuO1hPCAM0ADAZ7vMgcQmd1/WgS/sIO3K9C8J2Xm+L+\n1gcXN97kwEDlPM1HvvE8MLhjL+9niTKhRjJffyCCoIyUN28xDz/Bl/3+VShb\n8zgH\r\n=Ck7p\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.28.6.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.28.6","@fluidframework/runtime-utils":"^0.28.6","@fluidframework/core-interfaces":"^0.28.6","@fluidframework/container-runtime":"^0.28.6","@fluidframework/protocol-definitions":"^0.1014.1","@fluidframework/shared-summary-block":"^0.28.6","@fluidframework/container-runtime-definitions":"^0.28.6"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.28.6","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.28.6_1605028385992_0.04186673351857628","host":"s3://npm-registry-packages"}},"0.27.14":{"name":"@fluidframework/last-edited-experimental","version":"0.27.14","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.27.14","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"9e49388000a164d2d62b82937caf573ee95fb80e","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.27.14.tgz","fileCount":61,"integrity":"sha512-F0uKdc8YH0D9f7j1GUFkVRTQDpDcXbNZIcWL/f8DrleAiX08sdJMUohWVrjQ9dziEGu6S05sYNsSLIuHTb3ENQ==","signatures":[{"sig":"MEYCIQDwVsR6ElzLu6/ufH4EAdHxrW13guzjglXCur8JAaNjZAIhAIKjTm9A5Qs4bU+xkooJxQWc5pxddYj0vYfLM0wkb4u4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72757,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqt/oCRA9TVsSAnZWagAAxzkQAIlEzs3KW039P+D/CG+b\nJr5qkt6YxXIlP2Ikod46PkD8rfPePhwn01ATqqrfsYZLiKWyuQBAiLUu0tab\n4O9kzGEdO4SyoWm1SBiW8P3oJf+mu6C5RUGi9SEBTo+kODU0UDnKXWScDNjj\n600kiALtls1LiyEvhqCQrdhGHzqLVFqCguiAXY+5asDWkXHWls/PRJ+wDMyk\nRMvE48t/YwnKcInw+9DT33j6FQnWoVk+Osrf7U9tm9UNA7/DvOpzNPR0Uo/c\nyLE4bMjbwdygne4p+Met/uJonu0+BiHCs0ciGGgVtJexN9P9ftv3Z5gYn3we\nPPi3FPyOL923JAfjVWtoEGzlhjlXsuTpypOHr3dCKEl1X06ljp7MkKVQydMf\ntuxodwjM5SW29VxSJXSbsO6Xa2SGJdTpIwe6+m0UwuOrSVkw6F8K3CLU/qzk\ngemqll2hpmDzwc2nF+i6t4M9PMH9Xvwk60daXhJg4OpNKPT8WRGNf4ckOzrl\nCzCuZmanviy4slkdNsObliwdQLOU79atDMsI1K+dd1d+ChRaFvoKnHCjNg3y\nQWcX5IPC/La94OKz0F0aVnNYtZ56XLHjUUG6/MuvVJ8VEfpEn8wCG3zIa6Ny\nmhx4ZPzb+L0Dpufgv/XXz6bte0la+dBOx/W2zcHm2z1JKy1hcZ1J+QXeyGNW\nZDGC\r\n=2JnI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.27.14.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.27.14","@fluidframework/runtime-utils":"^0.27.14","@fluidframework/core-interfaces":"^0.27.14","@fluidframework/container-runtime":"^0.27.14","@fluidframework/protocol-definitions":"^0.1013.0","@fluidframework/shared-summary-block":"^0.27.14","@fluidframework/container-runtime-definitions":"^0.27.14"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.27.14","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.27.14_1605033960443_0.9632792190289887","host":"s3://npm-registry-packages"}},"0.27.15":{"name":"@fluidframework/last-edited-experimental","version":"0.27.15","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.27.15","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"af503c2e0c283392b45a486c4a9d1b23a2d909f4","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.27.15.tgz","fileCount":61,"integrity":"sha512-C8tB5YzUG7R3paEOraNsBPAqV8JZMR13xW0pSCQiNtF9YelngX8z9VP/qxlpjB9fy6eiRANDZ+nfnDDPGRa74A==","signatures":[{"sig":"MEUCIE4TRAzeVZOaOtP7YmStoFQfyGLhBs5RSvqjkmexwEshAiEAr74t40reROkkk0AjkXrhqGsLEUNMRDlIc2MbDT/3Ce0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72757,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrHKOCRA9TVsSAnZWagAAAvwP/Aw3zx67Eo6rd0CDRzdo\n9BTALMsEa8a8ne6ErZNtWWIJdZXTkmYXzbSihUAw5hlJQtyFIxFR56v+Ne1d\nVgUe2yrXuPLe/juPUGlnXB56yK7EhMGilBdrP58s1id1Yqi5yPucx3ovvi5O\nz84BiKFd7NulPwP323LUL42HeJKOhMok548LgoHpVgceQ+KWkI94RVR7/Mrt\nDek5GVghgLN+pNrFwoikTfvUePzHKH8SX8RXWGh+hZ5Joh/AstfXKvDRFN/u\nIkdbcUTcCwU3krRUwLmx/yaNRF2q2OZMlC+GJY9W8nd7hjOZtD/b1heXTzjU\nHs4l7IamzkUDOz2yA1jaW0s4kuHIWJQof69KmdgPtzoNfUne0dtcrbgLGuBB\nDm4Q0a4D38FAHL7ZBXlkeFMDQxEa3rV7iQTThPFh/NNZDo+XebSGOeFgfGgP\nyqodhzCqtGGsuXhaVUCee/wcetFihXy9Jc74gbFMZ66mFdheFZk6TZBu0mT6\nDCRk9QvefCvA1om8EK7pkkfdmlDRkMUiuzRIG29XrUCORtvioF1g5WBccI2Q\nxo0Rpbm3W29z+f00oc/HyGHqZemjdoGdg2sptWbWJAECHvG5d8d1wnR3RtKf\nK+pxb0FM/bevmiwbr5qiNxCy2YSte1RapHKQl08xNECCJp39eVDuSVwD5BL1\nHuhx\r\n=JU/6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.27.15.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --ext=ts,tsx --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.27.15","@fluidframework/runtime-utils":"^0.27.15","@fluidframework/core-interfaces":"^0.27.15","@fluidframework/container-runtime":"^0.27.15","@fluidframework/protocol-definitions":"^0.1013.0","@fluidframework/shared-summary-block":"^0.27.15","@fluidframework/container-runtime-definitions":"^0.27.15"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~6.8.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.18.0","eslint-plugin-import":"2.20.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~15.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~2.17.0","eslint-plugin-prefer-arrow":"~1.1.7","@fluidframework/build-common":"^0.19.2","eslint-plugin-optimize-regex":"~1.1.7","eslint-plugin-eslint-comments":"~3.1.2","@fluidframework/mocha-test-setup":"^0.27.15","@typescript-eslint/eslint-plugin":"~2.17.0","@fluidframework/eslint-config-fluid":"^0.19.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.27.15_1605137037685_0.9431780550195084","host":"s3://npm-registry-packages"}},"0.28.7":{"name":"@fluidframework/last-edited-experimental","version":"0.28.7","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.28.7","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"be78c37538320d3ce58e661abe6f7d174427cd84","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.28.7.tgz","fileCount":61,"integrity":"sha512-ybn4wH22koqjc7FmojpMhlOVSPg/qvnTASqFW1R2OLyeTQEXOjMBIFGA02PSa87Ucs9ViiX06ON+98f76xwSQw==","signatures":[{"sig":"MEQCIDnp7uq8Q39SslOwxtoHEVr5pz9mmH7eg0nnMfQJ5P/4AiApP2nOiMPP3L4J4wh1Hw8PSJ5MZOkvNtdzz7+aRYr4jw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrH6VCRA9TVsSAnZWagAA6b8QAJ474jnB1EGpW1vttUQt\nnfPoVcsAk6pLwSDNshqs7kn7B9NnUaWLOD5ekg8qJtBGFEug54au7kTxUvRL\nyoekJvT50YU9/efRaQ7BUOklI/eMjeav2cXOPhZ914D4xgAoG8jRH1DNxu7p\nFtJCQKSTyioWJnXtSmwRK/UTbEAHQNIz3C4LSvzz30YedstGLWQv0qF2JkHj\nlf/lm4lTkFXNymt0z+p3/tdjzHE5dpiByoXhKEDDIC0Hm8jK7L2AnGMWfFVX\nXF7MaMulZ2YJ4pz5FxXwAv/8lMbZLW6lcjbcFmGUf48G3EVKVRSmrZH+IMNw\nMvRlfcjwRvefORvjARdV5kDCRr4VzvGbb6UCXH3Nus1D0Iuvv+p+oCzCMb+e\nUWj0Vq4f4v70Gfb0MPf0sbiyaJ2wciR5TLL5pdMed4svGVutvxjAalUFEGhU\nhIdFxQODcYApIz5f6ZgWtwfuGTCUNA7mQvCfdT2mIlqf1kQ85Ciq1oRoaBsH\n1Ahzdy2MWGEYAH6NGWa/AYJtFvB79nHUJZSelsOoUXlpuEhThw3NLyGDHLez\n9MOHb7NOf2Ihwhx4FRM+tjbkOKmOq6sT6aW1Y2gY1K2Ve8he0NhvsTGOnpkE\nFjQ0rOGts9KjbQtuWbQEkAG8KkQZ3aNhvPaeqt9j5D9zh4Y11rH8p6Ewja7I\nkX8o\r\n=7nqp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.28.7.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.0","dependencies":{"@fluidframework/aqueduct":"^0.28.7","@fluidframework/runtime-utils":"^0.28.7","@fluidframework/core-interfaces":"^0.28.7","@fluidframework/container-runtime":"^0.28.7","@fluidframework/protocol-definitions":"^0.1014.1","@fluidframework/shared-summary-block":"^0.28.7","@fluidframework/container-runtime-definitions":"^0.28.7"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.28.7","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.28.7_1605140116734_0.4803441116857463","host":"s3://npm-registry-packages"}},"0.29.0":{"name":"@fluidframework/last-edited-experimental","version":"0.29.0","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.29.0","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"d3340f68c86e1f309820e053a2a53b67a3546799","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.29.0.tgz","fileCount":61,"integrity":"sha512-aeYVx7xUt/VqlMBqHy/+6n0VY0GvdIxWGpnos3eZfoz0ii3kJFdz0my7lBKJJJAEpUj8GCwBoDcjD/Saj3HXoQ==","signatures":[{"sig":"MEUCIBslqHz+IMGoFgogh+hXn4muYw2ecsvobNF5e5YkjuN7AiEAuDeom/qo5Aqo/RJ25IrBxyC6ywGArEKOHBSyaApMVNA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72919,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfswaICRA9TVsSAnZWagAAOG4P/0HqgojvfO3w/zinQ4db\ndr5ZIwnPUdp6pGL46Hn+i1Zs8WMoFwgbdnbQRUoQJMthwdWe9X1ilih4r6ee\nNxxrcbHFhgU78y5HaPL77YAMGcQo8H79F7VW9VVBFly6Dz0uFP8l7bHkaUkC\n9+6SYtuAx9jVWq+5IvPf+6SrOFl678kfTcn90BOHj3DWnTJXpHqOdVEdu8Hl\noT15Vid8H7pTYohtn7WZOhcb3BP/jWJ0j5zAGJQvQIPICDzFKqBSv0MqsTgW\naLRNtX1edHlka4i7s418WAmzLPXByp9mRk9hivcLvAYoV6NlliD4qtBUwtQ/\n9PcZAqDjJS0/jJxCoF/d1s3V84oOdtv5sgqffpWKY4APU+Iyhiu+ODrvM98h\nJLg5ybUOf9P2QmKEme2q00nPb3zqcHdQyOZ4wY3iqEQEmj2Zc+LCKGJ1i3co\n3IOkb9wMMz2WHkBJSQUNZSDXAcA/95EEEjbtMVfEcNnHa+oKdRp/iy4y83rc\ndLkm6Cq6qGxcyjnZ7yHJ+7QCFtjw+S/9X6YobiIs1LEn+MrkXHsCZIR1KM3e\nSuZkXUl7k9ZdT0oB7rXYyUSjuR9p+QMAGjRTINr4j4SUh9HSBBW5vJRy9xpo\nPeF/Em4UiZ3hSPI+9gML1GS97iWK6gzv90AxbHjpnlhcxHE7367pyAPjbNIV\nHBMX\r\n=L9lJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.29.0.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.19.1","dependencies":{"@fluidframework/aqueduct":"^0.29.0","@fluidframework/runtime-utils":"^0.29.0","@fluidframework/core-interfaces":"^0.29.0","@fluidframework/container-runtime":"^0.29.0","@fluidframework/protocol-definitions":"^0.1015.0","@fluidframework/shared-summary-block":"^0.29.0","@fluidframework/container-runtime-definitions":"^0.29.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.29.0","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.29.0_1605568136371_0.7931747886522402","host":"s3://npm-registry-packages"}},"0.28.8":{"name":"@fluidframework/last-edited-experimental","version":"0.28.8","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.28.8","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"d4ddd4cff63543cc87fe19368a5b85a52c8ddc1c","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.28.8.tgz","fileCount":61,"integrity":"sha512-0kaSm5355N791XSGhZkb314lq2i9ZbDNJoRVYsvSGRNY/TI9I/kIhJiDriBM12C5sqDwnLNi5bMVrbMsUHvF8A==","signatures":[{"sig":"MEQCIHvuUxAOQe6Nz4ZfHevUyizbuKmWNC87jmcvuRvTV7CYAiBr1ei8RVd1FCzoEOnz5Lm5bWYQOE5hH37XbEjTM+YgnA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftHNyCRA9TVsSAnZWagAAiO4P/RWmM5AjBlT7R4XLMblj\nNysbXXvBe/7/PMqlJL9TnYYl3IGegCawkRsdojuiJApriPJ/MvEL8GYTQEsU\nYGicgbercz1udfYt2f6Fznb8dGt+bfwF5fOt4MXk4m2VJUex/JpVz0aDnp/X\n4qyg64fO8WZCCrGdAKBHHUSZMxhJCmdhT30aVowSKmJKwpikApqwKgwJIQT6\nkEblhN5nStGH5PDXjNYSZ2dPOP8t9EmK2MmnIaJUN0wrp5auuPPlUTsq7WGo\nvj3BEFfbyNN+7xU5acqM5WixEYlduXpjFIkq+Zs9jmgAi9lGYg8rLQRjQ2Hq\nICx38kFqluRI4QFFZGC0OPHje3TV80+4WdugRXplWwgTPv97aL3e9891eM/o\nJSAXthzsfXcvakoBrDVo9WTiCFYuqymECfn6MTZyx8747dbXYRBTchi5Qrco\ni5Jdsk0PGchmPm+Q0ESlkcxLah6L5R8VS7Sxtfgi0oKXl3i9LsGi19S1FgN+\naxn3hlEipHLYvSyrWpGw501/FK4UkRc8mfOBFBbXOWik+/YGVpP/6b7oxyiA\nmU0o6AJI7qoR7jS1I+EsRnXfVRVU/6eWV/zQFjh0IijL8zgKfGBkE2Tm2L5p\nMcfv9Ye5VXQW+AuEB2SCHIIUtvBuIF4epYVhqs2E4VqXx4F3XrBA2CzWCVfv\n4ftu\r\n=803e\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.28.8.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.1","dependencies":{"@fluidframework/aqueduct":"^0.28.8","@fluidframework/runtime-utils":"^0.28.8","@fluidframework/core-interfaces":"^0.28.8","@fluidframework/container-runtime":"^0.28.8","@fluidframework/protocol-definitions":"^0.1014.1","@fluidframework/shared-summary-block":"^0.28.8","@fluidframework/container-runtime-definitions":"^0.28.8"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.28.8","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.28.8_1605661553677_0.8444062039376947","host":"s3://npm-registry-packages"}},"0.29.1":{"name":"@fluidframework/last-edited-experimental","version":"0.29.1","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.29.1","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"64f0fb85dbf6cbe54e51a59d2f76b9e588abb215","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.29.1.tgz","fileCount":61,"integrity":"sha512-UlafUjWWp1xd/zc+3P3AAJTBPFnQH2u2xRgxjhf3DWv0mHXGgtNydSXisec6AMbqpoHi47JfNZv+6F2Gg7p22A==","signatures":[{"sig":"MEQCIAX6ZFbSFB8QsUxiYN0UEk7Fv8tDn82oAJkruJuRT3ZtAiBMV437qHHLwDsm2Loq5QTZHUqbd1fG5JU3vdClwp+ymQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72919,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftHltCRA9TVsSAnZWagAA9ckP/jRiopWqTv4pUQDkkq3n\nY604E8yIxbkg8izyxJPcxslFKwWlg3KzFUgeJyiNAE9NBgR1pghTuv0ts/oC\nMP5a6WZHfcA706zmPH04+kQ/lluF4pE057QNmaOyD6enzRTnX3gG8yX7BvdC\nq+AuLy2npQC5/jdO3EqMuxf8BbFgf/DbFsUhhPYloaXIecsVxtk6yZhXtMP+\nHfOChkiTZR6UhVa1+O/avjMZEob0/R8QLR7SgoJDETmozgncSPN0aEDiATW4\nWpmOpx7A7mqa1a11GC2xu0Yh5RSFdiYUdn0/bf92rTDAZeyd+TwKbhAK0eat\nc18H6LUuWuRJc+0yxNiehz9+e0iddz2d7u8LIqrjKnKFFg37Bcv4+5MDUsoB\nP4/lYwCz6JIYSltpRWmlzjGT2CLnDwlJfxatDwKj3P6DIKhhRIl3iUvU8SZT\nBOGz5HkvekSMf1SMPljS+tq89UyfWff+EhBgfmaSBhbNkPxIMAlq6oUzNZs0\nGM0VVD/r5yqG9E3AQT0IpnJozWQ6lZ0cdiBe03VL3oH/cvcqZ74LeXXJQo0r\n/UXB+KBeuLD2DTaGXsOStLHBoQxHrItIoFGSNmqGk1WQrUEQioKffLmXesUr\nbxOBfNDx6vMkMGeBMVTlp0IaVnNTXMJw31KEznwn5bo9mxArG/FqPrgfl8QL\n93BC\r\n=U0s7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.29.1.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.19.1","dependencies":{"@fluidframework/aqueduct":"^0.29.1","@fluidframework/runtime-utils":"^0.29.1","@fluidframework/core-interfaces":"^0.29.1","@fluidframework/container-runtime":"^0.29.1","@fluidframework/protocol-definitions":"^0.1015.0","@fluidframework/shared-summary-block":"^0.29.1","@fluidframework/container-runtime-definitions":"^0.29.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.29.1","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.29.1_1605663084558_0.15164017907443927","host":"s3://npm-registry-packages"}},"0.29.2":{"name":"@fluidframework/last-edited-experimental","version":"0.29.2","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.29.2","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"0b222ebf8df605a368d1ff3d83d34912fee9b805","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.29.2.tgz","fileCount":61,"integrity":"sha512-/81WMcjAhnvmhpHYTUmIVdOpNxdN/T6TBRlljpWb8V8aM+iTnBusxo2jF4KArbZTU988/+WkCcmttn/alEQA+w==","signatures":[{"sig":"MEUCIFQCpVtbWZvHQVRhqZJA8nfJVZBbdYAty7IZbPJ5aXpCAiEAoP+i8hdO1PUnmR90TBiz5ybmj/K4xcUqFv7vjjmDyvc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72919,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftLliCRA9TVsSAnZWagAAFwoP/jO2NU9KuYsoryOtzkqN\nPHjQ4bXPvfZjCITBypYj5mtvWPvLhzhk4B0uFOrSAWb/FK+YngbGSJRMTbh0\nBXnim8tJ3I0C2LJE/qYiiYlhQCbThHu+US7+N/zbPMNILZU3MZUNJ54mqWiB\njRHYXLxowbMDA+AnjIo5u2JZc1COTq9DfZJxWfI7TTbFRbvqbSDsqBtX8Nd2\nt4/4iBfQgUFizfT2N03sr3cGBbO2jV9Ll8pGepRSvbEl1xWNHw1gayirvCBa\nQkp6HjFByMerSjC0wHQYzGpxq6Ly3T+j/kYDmI4IT2qUrhDnVR8usVlOD4DI\nW3MtquxzSjPJNckqQz7QiEE90kSjy+L33NpC6JM95dSkpoMBVEOc+bwRM1zk\nJ2zzQgzC6rOflpkoWwt5qtOangE9SGQsub3rVjRa3jo1Q73OI6lgMZv+h9BB\n94JlHnHLfGs31ziDdGamRlUq+X6FCSudaX4MYdsdJSf9w4XdPVOJbfyGYzIh\ncSPp2CS2boToYxcKiiQ7piAO/abzAcJUPIiM1l4Iwj69FthD11K4zt/q7PNU\n1MkQjj6uzEhpXu7DmxbL/rP5a8Cio4pkFS6KoPT6zItsaJYCvS/W4icVD4jP\nPIm27Sr/V1W7mUjRk22YPkPIGuGGPGq7PLN145h3ARLHtW8GMB3KAEkqSUCN\nm1ow\r\n=zMQ5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.29.2.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.19.1","dependencies":{"@fluidframework/aqueduct":"^0.29.2","@fluidframework/runtime-utils":"^0.29.2","@fluidframework/core-interfaces":"^0.29.2","@fluidframework/container-runtime":"^0.29.2","@fluidframework/protocol-definitions":"^0.1015.0","@fluidframework/shared-summary-block":"^0.29.2","@fluidframework/container-runtime-definitions":"^0.29.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.29.2","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.29.2_1605679457876_0.1923477051817244","host":"s3://npm-registry-packages"}},"0.28.9":{"name":"@fluidframework/last-edited-experimental","version":"0.28.9","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.28.9","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"58bb8a565a4ed75e244bb37f3596c94d7d62901e","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.28.9.tgz","fileCount":61,"integrity":"sha512-if8S5mg1XxbeQZv2WlTaHKkX4UwG2uANEOSAPx2HJd5sDK2iZu8Y7drNpznIejGxqcjWg8HpEplngYlbtE6Q4A==","signatures":[{"sig":"MEQCIELQmvozOR/9/+qhI+MK7kxoEy2+5BizSf43tIUGojSZAiB77vc1MYaumVBMBx77CGc5NDFMg7t2c5bj2+2zwpxKxA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftLzoCRA9TVsSAnZWagAAocEP/1IJ8xDnVjx2qbl/aVAy\nmIMac+qY1gLGd8OpsqDPVFsjPngfsnjRch0TxksK96svQmNejkLVEjXN7N2X\noXwr/gxe2NoAki9mwUmbHcNuUThHbjxgJ9KqDqJikaLpysaiNfpAnxRQlTU5\nUQGb7CKajmELx6t2y4NiKT9XnGPAjMbQGCTuGu85iSkKbyRHKdJ48zB7WQEq\nG/vx9k2fMyqa8XVvOjZdyqnb9Z+xHnFhj8k6Bg635YLuZBq1hy+IvlUIdHwt\nNXwv03eP6DQM+0Nlr4uYVpB9IWEZP/OWGy05t3EJSTvyypu8py2npUU9GrnB\nNHNm7z7YsQdWYg8O2Kknhq5uuUhfBSIylGkGR7N4wo0oifDjbJ7BZO7ZcUoz\ngyUquYDJrIZGTTJcaLxNNi88emUoIb2fK0Aro5+A9XRFEgsu7o+ivzn6tGOP\nWBvn07Mo0MOgIRgoZiqVtFg5euLplCkoZU0GjUWQzRj4lxS356x2mFDvmh1r\nX/jFPfiSk8Wd/bGaFzZW1B/rEXyEshy32roRJWOpkqB8NA1VbKQSkbMIX1ht\nhVPKwUvrb6HlxKls8xLlQsoG7N+yVFa48FaNAemThd0I5b/dEsBDHbxEjMOT\nNEg53qSSx6VtKWuYgbo1rZ7TyP3P95HAnnQsQ7RJYVEgt05zWibY2WbMZlGa\nc3+D\r\n=DU+J\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.28.9.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":"false","_nodeVersion":"12.19.1","dependencies":{"@fluidframework/aqueduct":"^0.28.9","@fluidframework/runtime-utils":"^0.28.9","@fluidframework/core-interfaces":"^0.28.9","@fluidframework/container-runtime":"^0.28.9","@fluidframework/protocol-definitions":"^0.1014.1","@fluidframework/shared-summary-block":"^0.28.9","@fluidframework/container-runtime-definitions":"^0.28.9"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.28.9","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.28.9_1605680359760_0.5218321455387858","host":"s3://npm-registry-packages"}},"0.29.3":{"name":"@fluidframework/last-edited-experimental","version":"0.29.3","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.29.3","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"e720554e5fe54423b0b4cad75703d70c7fbc257b","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.29.3.tgz","fileCount":61,"integrity":"sha512-lTsjQyKBjY9NHW//ZtPqAaqToUvDAmOKjUgtOQ61Xa77wnjS6bMqAGVCiXGgAV+vc1YmyxfxTr7Y4Lr0wjkt5A==","signatures":[{"sig":"MEQCIHZMRvlvOe7ewyCZIMa/MQycQhuU0mZ+zoH4emmw9AitAiBrp9QJDjEtSZmZslY9TKU50iiH6/p6vM3bspk0yDEgmw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72919,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftuzNCRA9TVsSAnZWagAAEbEP/RoB6HacBB1mvGnyTsj4\nV/+ZLRQlmJDM2q0JSGIW7L1sSC954dVDTiivA52rAyRteYFjgMbNZSKwDLFb\nWmFor0X9RNMQgrIA03wSJdCldkJRK3QObONPFWQ5afbcPJA/vZLWYRemJJfN\nhZPuGNJwtWS27VGlHulh7wCOpXetUSKlhjFUrxvDbG6ySdeLOP0+c5Rb5LVu\nEP+Fz5ZPi60Twgsn75JQMnoCuGnZCibIFRth1Q9MWdMuz9FXkQ37gli5yGYU\nD/URkqdW4jskbHtwUEpmYporhqvqa4w96JGxoWNnSTOur45jvpG0kyxXqd5W\nxBEGboJFuSY5XvdBMV4yHeNPrvjIxyVs67HUyG16l3iukM9G9AH8TBQdgfFg\nZ3K4OfIIL2z98hXO6GfQ2NYWHZh8S8n0OWqC6bBJ9c2HJT0QexlN7FFPlU9e\nJhmIyfhiqkwzqaT0xRUYGaXSRaFgDZJgP6XFrfTbQoii4ILUh9+fGpOypMgX\ne4bOKg+lGsV8jUDxoAONlPPczP/y/fpnm9MeR8mRKyMLc4H8EHm8pQT3WDJ2\nS33G4U/unNO78ypE3wsNFzV5gh8yyj04T1zAll/Xj4AiAdSk/knnSUuvDp+M\nnoWkwZvZxGUsdqh7Pqjd0CbqX0NLwdXjdoBvuDogXgTBJ6HtRowFnBWSNTo2\n5FSn\r\n=drno\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.29.3.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.19.1","dependencies":{"@fluidframework/aqueduct":"^0.29.3","@fluidframework/runtime-utils":"^0.29.3","@fluidframework/core-interfaces":"^0.29.3","@fluidframework/container-runtime":"^0.29.3","@fluidframework/protocol-definitions":"^0.1015.0","@fluidframework/shared-summary-block":"^0.29.3","@fluidframework/container-runtime-definitions":"^0.29.3"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.29.3","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.29.3_1605823693226_0.9465891777819582","host":"s3://npm-registry-packages"}},"0.29.4":{"name":"@fluidframework/last-edited-experimental","version":"0.29.4","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.29.4","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"d1cb04f5efe50188b7e1ea00f20b5f563d1ff551","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.29.4.tgz","fileCount":61,"integrity":"sha512-dE4Vi8Q+qJd8xW6Zb55rOpFdS1f4tvR6+85X6ND9PSwhpO6DPP4NHNJ9MyyLqglMlgm4NT6zKZmZHyjEkEtuMw==","signatures":[{"sig":"MEUCIQC70VXwqFp7xJXTDk9UM/DFAwjqdq37eaxxg4xy6GFl+QIgBFRT0m3TQXUxU0wgMsbYeOqwUkcqw2bwkpmX4nGQwQw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72919,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvBBkCRA9TVsSAnZWagAANEwP/0g65OB+fP92SVdsIx/5\nM4ePhdcM2Nh4uYJvSbtvxwvuxmFFtkEei/pm+YvdP2B7HTdNBfumtI21OS9o\nPIQ/yWbEdPvqPUDrveReyzwd7qqTo/lW2athkvspF0kJekN9Q3MojMkR+a/E\ntLxpkpqmOZQZknyyQDZlTZsGpJGBMQ55sLliAc0YoIeZgnBY13K960liJ1pj\niRnm7QrrLmWQrKe3ewMnKDeXaD4BkmpziFc+Gl+AwVleHEE3nuqYlCjG3zzv\nXaoeHyLpOCyFxtMlNejmNpLEDUM+8UpnKKl1Ol0CGY+rQQe/7TfewvRS3LNw\na19GPNNgwNnp2eQFa1t0NhAt8Knhyr4GcgNRt0nCVmkLjfX/4pqugN6G/UJN\n7+yE7udHFuHi50qVVuy2TA7U7C3FCU9t+XiggWJZgHc2q6RH0Yl8zLz5at4B\neMMXzTFJFgi1wLyP8/+MUVdfSBUupgM19ty5dhfG6dT+zE/XBMFZGqfz+fZU\nL5lCXD1YBYGr9ltt62+klXlowNGX/6Wkvuz9jWAYv+ja7p9hzzz64qxPiM4N\nm/wctPvqAaOUQOQCVCYfw56Rc8+BU9QPYpauZG0cq0+pQZ0kA0SN87sqglTB\n33IlYoKQ5juH5+64LWYnnad6fEyPEGKCsUWDbLDFw1ejdlLc3gIgevSD/Mx/\n6Eyg\r\n=JCfA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.29.4.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.19.1","dependencies":{"@fluidframework/aqueduct":"^0.29.4","@fluidframework/runtime-utils":"^0.29.4","@fluidframework/core-interfaces":"^0.29.4","@fluidframework/container-runtime":"^0.29.4","@fluidframework/protocol-definitions":"^0.1015.0","@fluidframework/shared-summary-block":"^0.29.4","@fluidframework/container-runtime-definitions":"^0.29.4"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.29.4","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.29.4_1606160484040_0.8932050773776696","host":"s3://npm-registry-packages"}},"0.30.0":{"name":"@fluidframework/last-edited-experimental","version":"0.30.0","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.30.0","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"c4c82809b90a7a30367964b6c86d40f4303d54bb","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.30.0.tgz","fileCount":61,"integrity":"sha512-XmG1Hhae+ViVqkA77cVpvA/orOddx+FheYMqil2y+Z8Qy1y80R1ajcEy4isJBUlgo93NA7fTix7sAmm/4ycNWg==","signatures":[{"sig":"MEUCIDfoGo1SaRc5hBW/vMVSWWVReo7Me/FRN603OzwaP4J3AiEAzdKdrTLTGvfXQg5djzbn6UQOCpgEzcwCgYlLnCpIEvc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72919,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfxvFvCRA9TVsSAnZWagAAWrQP/2fczuuWsyBhlgEFKZTz\nLLmiOFBvETD8IdVWeMDZVF5PNxEXUFF1Ug3KV9aHxJTCHTUWP2mKckdnwg3z\nRlPpH6NxapraoJtvV3Qcl94vOzcW/HV8N75mwH5080S32oTRc4zVjElkHbND\nI3LjOE9NkgyyDHFUKfD3vffLk6VMYlk3W0XdDKek2Vs1lY+yR89IfGXl6QY5\na1nZOtw8wXHeojVzi+2SGBwWnLfnnYlGVCxKmVzBSE54ZkWGzKxSK6VUs3V0\nAhf5eRO7RjXA6z7pf9BKNvegBN9jto7O8wQxBAHZwBBntn/S9+7h1Gh1Kafz\n/5ljtxBvu1bGP4x+fR9eb9Kxt3fjdrttA1dd4IU2zktfm95XxPENiBGz0gaU\n7msuG/DSM3N4EZz4FX5ZSxvQ5bWc6p5AOY+yc0erEON97aRiKfXbFplMEyA7\nb21NgD06PIxrdndddjBUq4OO2EO0vqN7M9mGaf53UZHvBsQuzvM/chkizTsx\nucob3/QZD6Y/wmhKsRY8tv4BHgN3n887VSA/94fJmbZI2v+bHp+lJqhVQB3K\nlnfU9nMz3HHWy9NdYLr3T45+S6mZ97ATPsVBcqykqt96+9arZT2NrayqQka/\ns5XYsvcbYiXksmF8epkuQRfiIOE8mAhcwBuBvor/TyulqGU1J7Dj5oLupl65\nkQLk\r\n=Fakd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.30.0.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.0","dependencies":{"@fluidframework/aqueduct":"^0.30.0","@fluidframework/runtime-utils":"^0.30.0","@fluidframework/core-interfaces":"^0.30.0","@fluidframework/container-runtime":"^0.30.0","@fluidframework/protocol-definitions":"^0.1015.0","@fluidframework/shared-summary-block":"^0.30.0","@fluidframework/container-runtime-definitions":"^0.30.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.30.0","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.30.0_1606873454649_0.7076413764598324","host":"s3://npm-registry-packages"}},"0.30.1":{"name":"@fluidframework/last-edited-experimental","version":"0.30.1","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.30.1","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"85453b9a77a8594a9b31253b5073faf917cab663","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.30.1.tgz","fileCount":61,"integrity":"sha512-67oTQr7Jp0d4+Y8efVEJlLo0lqXM8yMj5twq5TAGP6JpTpMzWHKOXwGzTQq21Kei7StmZCeUFAy4RFAoE862Qw==","signatures":[{"sig":"MEQCIDnZ0qy5PLblh6u/f3jIuWnNKrtx3S8YJ2pxzAyAd682AiBVXCeKPhATW86j4tqsOmZ8Egmvr/4fpKUHEwltkwS5kA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72919,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyrUwCRA9TVsSAnZWagAAdMIP/3SDmeDsWnPWkmfKVvLO\n9CCwUGfqwAeyT5Gn1TMYTwihf0qNTeqsiqhSkRZpOQiFhh3EsS1O2c0s0qsC\nyGP/qiS9qJFPIfwv9eglSC0H8YHb60IX8WrO/af3OENPXoHzcgZWI6V6kari\nLJCbP437NhWsi+w74uF8nBldpx7CatxrnIdDXYNWMzsgPm14p+HoK2MEDiyT\nKOhvHxOXhX2JccwDWtjtieyT2O/K2LmhbjSttAb3n0ZTLJN9WOR2ldKW06qT\nTt49fk6oLcdWFBy/HKURcUUBV0JLTG2yf+joRLMIfU+ICRfJW6SU+fVLurWY\nHGcwVxE9VswZKF9bfBlEYbihnu0oiwoQdLPcX/y9Y75p4VDsfYJ+FOtQYaHp\nHNxne3lIy7+xFnydMFGZlrZVl8XY5dj4/b0XRBfDLfanwKECksr6DvTOEACi\ncWpMpGR0yZC5b5VXU2dCUoBAJTTonNgI6hm4QUYIdom2Go1qeucvzPxY4m1i\na3edMBcxvA4g68exoohudZInh90UpfCMBIzNRyzokrkzn646XO5CNTJfgXwV\nmXYpBiQQ0jAlR/8lgZVMlDuZZQpLAsxRdC+b6Q7CsymhrhyXIZrf1SpNElHp\nVb+DTKvvVkI7Togdt6cJU2nN3tCUfxs8h0jgT2WxiwEIBDE9zMKeeRK4UC5P\nXJtn\r\n=FQ7L\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.30.1.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.0","dependencies":{"@fluidframework/aqueduct":"^0.30.1","@fluidframework/runtime-utils":"^0.30.1","@fluidframework/core-interfaces":"^0.30.1","@fluidframework/container-runtime":"^0.30.1","@fluidframework/protocol-definitions":"^0.1015.0","@fluidframework/shared-summary-block":"^0.30.1","@fluidframework/container-runtime-definitions":"^0.30.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.30.1","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.30.1_1607120175578_0.36199838881563373","host":"s3://npm-registry-packages"}},"0.30.2":{"name":"@fluidframework/last-edited-experimental","version":"0.30.2","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.30.2","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"9a85039d5f28c61ff9d018add7c76cfe13d21654","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.30.2.tgz","fileCount":61,"integrity":"sha512-sGphCtu/gRjJSt/q01xDwIaji4PrlNzjjTg0Ubx/qGG4NbPsvAFRNSnNhFHem8rEwOGCYZtb15lvR5cAHwByww==","signatures":[{"sig":"MEYCIQC7fnlbgfAxhkb3Orkum7/NoZiOjq7XSH9xgNg2aGHKbQIhAMRpIiK8/UgZcM8hwKsiaIJsAM07uTj8lYUmPsYB49gM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72919,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf0l/PCRA9TVsSAnZWagAAM0IP/RftWW3EeJE4+oms0A6/\nfq0jorSavAAgmXLQpRClHJbWuzpmxVNSwYzjERN07/SFMjhYN9R6Kn7CKmsy\nQ4lVDWUnw/kS6Lmy+HdNKZAWAJdXtBjl2bKxOFLs38m7FBbhCPT+h8SYU6hp\nzrD4eJkYPvmuCE5nfUZcOqaiEpF3L/2BI3ehh4a39xeFUBf0H13P23IRU+Ib\nLYKVsa60V+O1wYG/HU1Poq9mNgQEK500PtEhfmxBioEN/il60uJmAbD6HXf9\nJ6cOG5/NdffbQ0BCky7oRURsZRaqVZ60fAwgLcwYXaPupB3DwN1Bfd1M7Mv4\n0d5yLgHH6kAe0V1RVGub+8KZP53gZ/rTTKgmjBMpjXiFtpPB2+1yNx0iXaN2\nxh5h1gqv5xRPcOB82iP5OXNPY6xie/cYOeArCm7u6HQIG5FS8Ag+rgzNPkDs\nz0laV/2vKOYZFT5ASaC2j1ExapK2hA7qz79LzcnhnY5mBwRzszdOO4QKKs4U\nnlVapqO/IxPeD9ACSiajXsbagNpOBXVh1DL90xtTn32qHaYyoI3yJjWje9Ca\nKJb7njDbet0mSmc0akaVRbQxV0OmtlbcUOiDnKdzOf7UHx/g8+s1W6xOP00r\nI9kKga4zoyTeueCSHq8EOYQVP1+z7onYmFmil7Q2s5Zk3e77vKH1JABLooli\nk+R5\r\n=VPUN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.30.2.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.0","dependencies":{"@fluidframework/aqueduct":"^0.30.2","@fluidframework/runtime-utils":"^0.30.2","@fluidframework/core-interfaces":"^0.30.2","@fluidframework/container-runtime":"^0.30.2","@fluidframework/protocol-definitions":"^0.1015.0","@fluidframework/shared-summary-block":"^0.30.2","@fluidframework/container-runtime-definitions":"^0.30.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.30.2","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.30.2_1607622607474_0.93720287023521","host":"s3://npm-registry-packages"}},"0.30.3":{"name":"@fluidframework/last-edited-experimental","version":"0.30.3","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.30.3","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"f93f6215cca57023fb63e5c890d4bd1c2b26a4c3","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.30.3.tgz","fileCount":61,"integrity":"sha512-HPShF5rCZPzMkU7x7PfFgD8201Cdo16qTzV+OvQRh2lfUkJJJfYJ7wh4dVDEFl99OzL7XdnH/jeYFkAP03lPow==","signatures":[{"sig":"MEUCIQDZfE0wA2gaI+QhbcTHONx3FAAbzlkFju9I2V2oB5zwuAIgQYKGlCRNvmRu+8xEhTdpbip+sQFqAgxQngiD/qa8XfA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72919,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf0rv0CRA9TVsSAnZWagAA7wgP/2Li2vZRySduTOBgYmFh\nHQpw0vKAsUJoluMxogSvaszotmEjwdg9aNaB9FDPuok/oAyW9ALer+9JyH2D\nuxVMtHepllI5nvtodGmTAn+ckFdjpOG0TqE5kOCb+IW4EaKqtvf0tB/44FVx\nXdoblDJ4Kr5457t3G9SaDtSXxAhvCwDMXdS6RwslXRJYF51gnIlqVk4Yee5x\nokePLDM37fqXWevLltaj4dUz8cfm32O9Pd7YwxKxdQc201YF5J5IwGLd9tVh\ndGKewJL6KWktb3PlVvmobr6KsagQEKpzxjXxZV3uSgeLbNUYYJyh3r2NVjU/\nEb1eZs+aM9fgCTVigNflPEY/ZVC3Irqa6x3jNRZQfJ4WhEAoKi7B40S9GOWb\nzDCDaTzHN6BeCXphtzDDjeTzjXg0oA0qi5LQF3sLDimsYnaCWdfOL0WqdmWX\nwCmsSZrA3ap2m5EjytLGz4yLEh0g/bZ8X+EWPutX5HU+OPpjotC9NGZ5QFkW\nkikLDEwspXuFS5uQ7qAgy3EaDkacw2BmriMCxcispblTU5ComfZ4FJDUXPIT\nPFfphiideWa1T0fEBeIS2wHVR2E5dd8nQyN3e7luumZrt4Q6wRkdzzF8s2Jt\nZMNyyDCiktUHDCRsPK4H6Oz6/UoTsW/8a212wWyDeuLd4ITLsPjWBwvMVttn\nkaAQ\r\n=HXlq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.30.3.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.0","dependencies":{"@fluidframework/aqueduct":"^0.30.3","@fluidframework/runtime-utils":"^0.30.3","@fluidframework/core-interfaces":"^0.30.3","@fluidframework/container-runtime":"^0.30.3","@fluidframework/protocol-definitions":"^0.1015.0","@fluidframework/shared-summary-block":"^0.30.3","@fluidframework/container-runtime-definitions":"^0.30.3"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.30.3","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.30.3_1607646196499_0.6946343614919566","host":"s3://npm-registry-packages"}},"0.30.4":{"name":"@fluidframework/last-edited-experimental","version":"0.30.4","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.30.4","maintainers":[{"name":"danroney","email":"daroney@microsoft.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"9537d6379229772e5fdeab89c1f950fe64728ece","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.30.4.tgz","fileCount":61,"integrity":"sha512-UAGsLBLz6b4zUL/n5TTKeeC+v07iaKmXF6kHBQ1oqnBq9K/Zyj/M5UhD2np/5OGfxkEKrXZGEwMg8zT+m3oRQg==","signatures":[{"sig":"MEUCIQDmG7LDBpvxbjytRSX0HTq5pwSMArVHLtLvPM1YSjaHkwIga6Lw8+vAhQd2Czmb2bYhT8og4uBjiL0N3KAKIP7vYI0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72919,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf1B0sCRA9TVsSAnZWagAAmYEP/21JTe5BYJZ/kFW04bMa\nPuF7fv7ch8h/pcWmnGlgiuipb0eqLSe2INUgZSbX6bv9VxI52cI3txfe7mzR\nYHVUDy2hMdhQoh6+z5sYegvHPiwN/R8NHdR2hT6Qa2UYfaS2KAAQOZIupg7/\nP7p2YElLFPblvAvx+HjfPgFSDGCqJbgGwENFGRna1AZ95lVruD8Jwd4j+plZ\njjqBACJKIcFueVczApPoMtyPUe/Kq5jptFDTwlTvvb7qdwOn83+jMTURZFP0\npWAp0+QDVwi0oIn/D5biyXHA/+/5TFHVzG/5MOD/ZQtg/88SOCdoLRaAOwaw\ncILmdcc7LKo8K6Wg43zzYeHw9/pgESgOwlOE1PAxYUGPYfRFdxofgAW6XSL8\nPrz68hb7RTzho4mYjeaBKSmitFfLfW1KpyqlCmDLcgHGVH8XtSJ0egI/R2g5\nKcm3f2FaryS1kqAb6Qqu5ZvO5iBHs3szgdAzZ4N3De6KCn4xbydP9Ieqs8qQ\nS7k/uKAH3qS2Ss2pwkH2x45cEEDRGjOVDPfecn2LPg9Wdf0eCCYxDXIm7LoX\nrz+JdM6kjShm+tMu010tNogEyoQ8y4Voa+TVhb5lC0L3UNaRciXTftS8hnIf\nLMmgFmnMQmeP1f5UiuOXP2U/mwYyWib0Ti6fAf26y0BUJ7a/omJlzXaZAKVY\nWbHu\r\n=PbGQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.30.4.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --ext=ts,tsx --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.0","dependencies":{"@fluidframework/aqueduct":"^0.30.4","@fluidframework/runtime-utils":"^0.30.4","@fluidframework/core-interfaces":"^0.30.4","@fluidframework/container-runtime":"^0.30.4","@fluidframework/protocol-definitions":"^0.1015.0","@fluidframework/shared-summary-block":"^0.30.4","@fluidframework/container-runtime-definitions":"^0.30.4"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.30.4","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.30.4_1607736619806_0.770244103657242","host":"s3://npm-registry-packages"}},"0.31.0":{"name":"@fluidframework/last-edited-experimental","version":"0.31.0","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.31.0","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"b197affb90d6d203e2dfc8f94ff1ce8b315dbbab","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.31.0.tgz","fileCount":61,"integrity":"sha512-0urivKsNa5gId3+LqMxp61VzyMyZxx8kN8Z8S8dUmiKi6jbau9bIDmhpIFzI9Cs/ge5a0XU3Qao9MNvemVZzKg==","signatures":[{"sig":"MEQCIDQP3SmcSLq20m6dwQ5HpB5HFlFYJSbocpZCZUk30h70AiBF2dbvh1a0hTIjUYe+WAB+1b6LW2V+hopLvHcqPIHxVg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf20E/CRA9TVsSAnZWagAAz4AP/iqKBJVbwZXMqdJes/Q2\nmtFaX6kT5xnR1y6Vc8f+g3JQdi1hnX2jj2lIhLZcVp3ALF4Vt4pxYl9bOV5q\n7f9ljPiOWnuOZSrG7BROF6GJaGAqLii3R6vzXNfyXG6gMhLSnZRjRBqFPuVW\nLnsjXA5nJWrq5HTJfyBy0ePxOiXcYw0CFuCjlnLn4577+HGFf3TLrmSOZp3u\nHt/sh4PBKuucU29ZTCGR8Lc6e250dN5I04OTeDzaFjzD64SWYHCmjZomL2dp\n7En47onjs+hO7jlHUSNvLdzmMU19yLOuPOWX6//DiwlOm5MBJ0V/ozIzGGHe\nTtvwds/AipLWbaFGd1vHF9kfbGpjWaOyEkE8BnOK8qwEGm6XwOWCH/ktHeUN\nfeXizq5EGAAWeCYkG3jmdApssgSKPq/t2OrPCo/kCuNZqLLG5uTEtwXUxj4F\nQu6ST6tfIbIPwMXPbVALT0OoOZ2ZMTQxcAJdTjXuuuRIOHZ4+W1EAI2XToRq\nmZ4zbmboLD7S5/7HVFFF0yEm8ap5F4vAx/T1ye8nNiHKtKTeBdFoqKpaY0te\nByKnAlphERaav7LtO4HzIUfT3ppGr64UGh+tFykateYw134RnLMHu/QWqOw2\nDdUkFU6faFw71oTG7cq5HOGJhzqjJdTs8g2nGI63NmVBCL0OWqCewqhguEg5\nE13E\r\n=50BG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.31.0.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.0","dependencies":{"@fluidframework/aqueduct":"^0.31.0","@fluidframework/runtime-utils":"^0.31.0","@fluidframework/core-interfaces":"^0.31.0","@fluidframework/container-runtime":"^0.31.0","@fluidframework/protocol-definitions":"^0.1016.1","@fluidframework/shared-summary-block":"^0.31.0","@fluidframework/container-runtime-definitions":"^0.31.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.31.0","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.31.0_1608204606670_0.3265921021320952","host":"s3://npm-registry-packages"}},"0.31.1":{"name":"@fluidframework/last-edited-experimental","version":"0.31.1","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.31.1","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"f07a5031e32418d57b35e5dd0cda7c217c7ad8ff","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.31.1.tgz","fileCount":61,"integrity":"sha512-LOfCaRLeFfvk+a7kKbNceLZbRJgX/YKH0L/GqTN1TPnCCSeENju9NWWuXR2l2pjiqZSAEfuOTisjKrEoj7cS/Q==","signatures":[{"sig":"MEUCIQDYLSh9+j5jLXRmEMVd2l/h5y8DK86W2v5urWynHIrAvgIgOM5Ua6MA+jN07hMEXfThOBBNVSh+tQqp0uQW/jRKGcY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4ojqCRA9TVsSAnZWagAAA3gQAJnnql+k8Sk9LilVLc6q\niVwxu4vVSx/I86rAOdcRYA9mBiMwk/tcrdMUbCJVAjXBLJNFT7iuXTOKUokg\ngMnkSkTTL8PFP2VctRMPyWJ4HpVrv8R9sraxeaqtIokPRLx5njCDbuLqmf33\nFP362jDH8i6YeezUhJX+fiVx22j+yL7GCAY6T374ZxF5uaRNj6KwedAFeRoA\nn9iZFGfM/HgNP4MzTr0cA48C2B1SlR3QGnjog4WLwyeFlnnuYqEcK4JLz0mC\niCU1UxYKrTv5iET4Tu2j6J4zsn0Y9qpnwylmqehlVLlowOK/7k0RwKCw3u0M\nbaTucmatPuaX46UVMEofTxPmOSwjVJtU/VpB4eSauCATe8wOl2sF5f5wk1qm\nb15B6yo7ohIVzTuQRHGJ4bMzLe0f9HNqz1GEujWQHKUuVeqoOuf8GVLydE4D\n0i0bv+cC6gJI9QUuEzBSRV+EBsKigFgWBxHfXvo69F24ay/q444kHnR6Mp1t\nDdl/H0OabbulM/yh8IRcVpgmDK1r88UXUQJre/T8ix0oEJWnIG58jus1Qk4E\nVVRzMCywH5ODIX9YI9iH0oA1/TE4fjU57ZvnCvvFTpQypjWeUrXV+ec9Gy1O\njDC8880Pr/cyyqAthrYt41BkNrCXAUEaeHBwJFVz8i/roFfwygvYPu0SyXx+\n4Bgq\r\n=GhSU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.31.1.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.8","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.0","dependencies":{"@fluidframework/aqueduct":"^0.31.1","@fluidframework/runtime-utils":"^0.31.1","@fluidframework/core-interfaces":"^0.31.1","@fluidframework/container-runtime":"^0.31.1","@fluidframework/protocol-definitions":"^0.1016.1","@fluidframework/shared-summary-block":"^0.31.1","@fluidframework/container-runtime-definitions":"^0.31.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.31.1","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.31.1_1608681705608_0.23631156958296495","host":"s3://npm-registry-packages"}},"0.32.0":{"name":"@fluidframework/last-edited-experimental","version":"0.32.0","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.32.0","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"94cb2d667169dc2824a119db6ea97c10b28141f3","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.32.0.tgz","fileCount":61,"integrity":"sha512-N5OlMmDlqHJEmlb8SRamPv4EaDTZs98ybgzrOjghOk8zZgGdT/DT0iTFHlK/0nKTBe+GZcGGmiQHHngUMr57eQ==","signatures":[{"sig":"MEQCIDHqBL9VdC48Z87sWZpx6A+8G9aAzW7GKJEJdl2S5xCsAiAkw5tn9k1CsruF/ZMBP5KSAZS/87ZIZiMiNbN/zUhgFg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9lT/CRA9TVsSAnZWagAAF9sP/0ZwWTZkbDXVcRUJUptH\n0Y2nb92AVTvS/xIsYwItrreJNhdd1XT7rSD6D7NVkUci89yce77w5yH+uaBi\nnHnorqZbybPYFksA84k1CglLKbbw9QycAR8MMiFu8PG/zIYVSUACi8jN1g1l\nCNUSEmu1Wwvbg4jgcfG4Tl0af3JYcWvmPxzvWZY7AACXLdigEoXBzIeP9o1K\nmocy/YeaTTz/YaXvTfz4FAp8Q1gOyXNB8QrxCt4qo7/Ddg1UdTdHOC33wNL+\npw+rC9XyXjIrCrj91AbIKDIYzqrZ8IJeobe/9UCxJVpeb0IwHw0XTNQpJ6Yo\nzwAFkoTNxnwOnVL2aorhNYRFziKrB6NuF5CYxixfKgUbZ93UGl9vp9Avf/BJ\n9Uc9rL2F0l16Fje3gYz9qeFYYB26XEAr5o3+Bxi8VHRu1Ue+onyU20X3Qghd\nkDzmYVyAnc7VPoXVLJrMr/iJEyjM67dNsDtX1xK1Uxpr0arLeQ5H2eco2xHK\n6lUq2V1MiRIeKIeXt8aHPYHwsNGN3fsC1tP2jJgAOpqAThy3M7Y3I0UpXGZ1\nzMnaPM5Gck/1ZACX2amRLuRZpXye6BW3BHhGJjJIL/PsiFMtxQ8ul1WQTmuq\n5+h6fDSAv8jJChKNByn3fmXnpOmxEDOu6qb1KTJJPeOHvJ2ab7Y7dk2cU4r3\nao8x\r\n=YXRq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.32.0.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.10","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.1","dependencies":{"@fluidframework/aqueduct":"^0.32.0","@fluidframework/runtime-utils":"^0.32.0","@fluidframework/core-interfaces":"^0.32.0","@fluidframework/container-runtime":"^0.32.0","@fluidframework/protocol-definitions":"^0.1017.0","@fluidframework/shared-summary-block":"^0.32.0","@fluidframework/container-runtime-definitions":"^0.32.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.32.0","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.32.0_1609979135307_0.22834035505110184","host":"s3://npm-registry-packages"}},"0.32.1":{"name":"@fluidframework/last-edited-experimental","version":"0.32.1","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.32.1","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"5298a824a4ad08fac31eda1daf0fa07500216aac","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.32.1.tgz","fileCount":61,"integrity":"sha512-OwrCWKn+8LjzlL0Pdd443UOFS3GX4F2WoHkA/1ZglEujgFUaTmEWXFIMDnzQPrAir7Zbgh3a3XDux25+i1z6+A==","signatures":[{"sig":"MEQCIEjxWxNpEP4o/TIGnD7gv9dcIHLF7PcZOmvSE01+rSIiAiA9MV7eaUZPsUevL5a7z4eI9oavvngBd+Zfd05zKx96LA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9n6oCRA9TVsSAnZWagAAzSYQAIaBS23mzlLxWYGwI2MS\nDlTYU6gwQKQsDbStUMkDL8N5Mzq/a//fUn5SylSn/ulDK5Hxt7M/5jOTeuZX\ngUE9a9GVBED+Lk3DV5PHFKV0z4p0bbvbn9A6lSNY3uPWzMnqAtmpHA3E4IDr\nU42JkTdKwjNqM1t49K+jGorN4tnqtQ8XRL9S5r/lUCf2y4++dhFhS45v/BvM\nEdl2SrXkEFdTrNVY/ypLXaU55LtM3XC76qgSpnONzyKWIf5HN2h1HGCYy/HR\nePllU8k2oLB82FqUyBL6ZWH2O/tDzQk2RruWYIuRcHO72g7oWpoM3VpewiDV\nA70MImTYt74Zs7Z20lv3kMdzTKx4x7/ysJXdji/1YmfVW0ZWSjxK/JcXioaB\ndaOmFWtR1Aix40OreHvrQ3cxlUnJcvDKKApyj04eJ82IyQT4dwuEvgQN4XdH\n2ZVvJ89LDVYfjeqG6ey8rI+coli9l8w/jyJ8rbpYiRsrGnIuCZYMIn9P8xLo\nnCSgWQKRPO7ER0ZsTFn1gftYRBEvANCVbc/bxTZfHHkihYQyNcLquBuCCCZk\nl4dWuMOSRH2cWaxwUDjlZDhl4OEPW3qL59qDUoy8TNrNi57BG9jux1tkK5Ze\n/skgKdl8OV64hIM3HO1CVTn80dbOfGIo2Ntr+MTyX8R61uuZ2ApaFWl5QxCu\nkSk9\r\n=M7Mr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.32.1.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.10","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.1","dependencies":{"@fluidframework/aqueduct":"^0.32.1","@fluidframework/runtime-utils":"^0.32.1","@fluidframework/core-interfaces":"^0.32.1","@fluidframework/container-runtime":"^0.32.1","@fluidframework/protocol-definitions":"^0.1017.1","@fluidframework/shared-summary-block":"^0.32.1","@fluidframework/container-runtime-definitions":"^0.32.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.32.1","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.32.1_1609989799449_0.1262889820298947","host":"s3://npm-registry-packages"}},"0.32.2":{"name":"@fluidframework/last-edited-experimental","version":"0.32.2","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.32.2","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"66600fc3eb4e83a4c6a8fcb4cd5512cd01151b21","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.32.2.tgz","fileCount":61,"integrity":"sha512-JwLsAyexsYn6VyWRMs64QG0yJXtIdWwf1KwaO4Y1fx/GOGoqi/MguLn+XgTX5uymqhrHECESyz0ph2hBTH2ngg==","signatures":[{"sig":"MEYCIQDm28EqO5bZxSBGc9j9nFkIzHXNAL9F19xhnhIzQUDUYQIhAOskLwufHA0IaH55larq6L/KnbiJKLn6GR8re6sPr0Uu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCOr6CRA9TVsSAnZWagAA1bsP/3pz+tuILFfU4EmNvr2I\nQkJSv0lgv8uHH+5Sr71FlSKv1HDD2ySyHeRS1SEV5zCuesu6Umk5xzCxzsGC\nU0TuduhFe5ELExPZO1GMHAbS+UqKYO7EDppMWL6oCrCzn781N1OCGcdJ/V4i\nNciD/KOt0QS8yi3lFR5pW5FviwCXhqLt0QE5Zrmziqwj6N6orGPRwqC/YppZ\ncpK4bidQcCf7A3jBOweKYgrMWWolWJ7PLmMyPBktMeHMlvCZTRW+zuBRd9yT\nQpUzrkttaX75jzcthU/9SiBXq5FY7ngAcQe+1lPeBQYtT4ndfgOR2nZtlwFW\ntZkz/8Egwdis87CHKFl6CdAHPjw62Yh81cNbM6XewZX0S+FoyI30sAN+Lk1N\njqU6zfxrZUTqkhN6d8YcJE1nvAUPTvv7sOh39PMGQH0selj9AQWLctMP9FsE\nRMys5uqmjvtB954j/qJfncnP72CUn+w+DmSfpqQFwk8/djwDLmnU8UjUnyR7\nTgsXa/6EpDw2DBZMHpDGM7B0LqwJP01wnEqIfgVikoko7fRtDJu0mvbOUjMb\nM/v0Lq7tftO2+oe1HESGpVL8fLR21+Hc0joYcqUF597vFnDS7+i7iF/dQJ8i\nJsHgpHeA/tAC80hmLZIjF79IFak2OQA2A/yvgHBy/Wj4FEooVv9QwTILDS9e\nerPH\r\n=I/wN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.32.2.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.10","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.1","dependencies":{"@fluidframework/aqueduct":"^0.32.2","@fluidframework/runtime-utils":"^0.32.2","@fluidframework/core-interfaces":"^0.32.2","@fluidframework/container-runtime":"^0.32.2","@fluidframework/protocol-definitions":"^0.1017.1","@fluidframework/shared-summary-block":"^0.32.2","@fluidframework/container-runtime-definitions":"^0.32.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.32.2","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.32.2_1611197177985_0.47179773200880915","host":"s3://npm-registry-packages"}},"0.32.3":{"name":"@fluidframework/last-edited-experimental","version":"0.32.3","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.32.3","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"c14843c81ccca5a29e9ac9556991d29139145bde","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.32.3.tgz","fileCount":61,"integrity":"sha512-YVjW95BnE9W8zjaAxCJ9TRSzmlCh7HjFnfbgQGpFu1uisgg+Mk1OpTX0HBt/I0ESGLSO5BK5Rmzu8viEA95RSA==","signatures":[{"sig":"MEUCIA2BTDgK5HJYzQFDR2zcvIZodtUjsVCvLV2eX3Vpf3ZnAiEA2wWCEKxybdwFxRUPWYT4AXZhD7Mg30ytA9K00vZ35sM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCgj4CRA9TVsSAnZWagAAkLcP/1eGj9ON0Lq4yuKjOEcU\n/UeIEslc+aRLsrot7/UIAnjIOF10PSmBFQz33VU7YvkYyBO8VAP15JZ41Ome\nQnUqdKdyKS1KX8qsiPkB9srIerdduIwaqpqdcX9m7zT3f7wqsF7Ua99ALsD+\nfoULkBsBKTa1EDpabVwnMc7mcv/jEhVk4Dk2kLLdZP04bF3JL6d258CVJhgC\nN9KS7+wuEm6XNAAcOq6ke5s7+F4G3uGQeSvTt8/PFzEEzP4wkyl3PL7FpgG7\njJM+cJlTRZoiRNnAOCcasKEPMe7ODTJM+Qlde4PuGM1Sko/nrR/nUbhtIf1c\nNgk+t/1VHcso5hwwflQmtFMb1pXIJhhHz4qanx8yfbgjccFtsWx8k92r+3m7\n2k2WQ9zU3+8A14+JZ6uhTsoJk1WO+9/4occmtjSEjsEa84AmIRm8I3/9Uyr9\nUM0G3bVrJPKIugX8pUmey0hIKSvRhBWcZPkkzMzmP7YREjIUUuI91dDYDOxA\nepNdpNdoAIndTXIjjW2QC4LZIgrBxsQpjNb4A77TWwkg4ubm8kAMwgMmwUtI\nd9J9F84ojWag0Y8B7bQWthIw0Ra6G3+BoqjGgelK6mG/gE7vNhw5p0OvE8x3\ns+cjelnx90Md6ACD35u6xF4Aa/BX2phvi+sxZi/YCa7ZsTh08crrEdn1GPue\nDg5F\r\n=eLFH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.32.3.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.10","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.1","dependencies":{"@fluidframework/aqueduct":"^0.32.3","@fluidframework/runtime-utils":"^0.32.3","@fluidframework/core-interfaces":"^0.32.3","@fluidframework/container-runtime":"^0.32.3","@fluidframework/protocol-definitions":"^0.1017.1","@fluidframework/shared-summary-block":"^0.32.3","@fluidframework/container-runtime-definitions":"^0.32.3"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.32.3","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.32.3_1611270392188_0.8612541398492175","host":"s3://npm-registry-packages"}},"0.31.2":{"name":"@fluidframework/last-edited-experimental","version":"0.31.2","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.31.2","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"cd095810eb4eb4b032c38bca62b50f9288a80168","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.31.2.tgz","fileCount":61,"integrity":"sha512-BHuVT0YG9DJByTAOtzTeDvxFmT4xjwuHvI1XQPf4pq08nN6vd1CwJ0HjHJaGGxY5Od8CfZJngHCKu+6fDpe26A==","signatures":[{"sig":"MEUCICqCLtJmEFCesXhVPTMoX7TMc9lTUprOeMS5ufgVJqYmAiEA+bZz623gwub0urq7lB3Q4qyKBxHXFMucX+DnNLqkPUE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCizoCRA9TVsSAnZWagAAPJIP/0+DQBdvuR4tahZNLf2a\nzO3ZCXSIJwWu29o/UkzUiNV4NENHsB74jJtECTq+BSUl8UMzPNM7u61oBlIm\nNEVRKKDxCuY/kpK08T+FXDGoapslh8+iJbMgf/oCf5kj+x9OGLvp0OXMwGoo\npmfitNDjbFBXtSqkSapvO7GRBYudVNkJHh/6iv+nqRBj4xCKpoPsnpkMh2ZB\nbNlc5eoeVCfGYMTm9/lcvKBoknkW2ZuwslpJRuWCDQ+ESpVmHrpAyPtHrF6h\nC427dZscMHuJJVDfIaFs5/R29iHR6HSLtawmcJ9e1fOhEpJDhU2o4sS/ZbVG\nRbb2s3WGK4yZmIPgyKQ4jJrP64GGiQp5gXpqJC/jaQ5BqZRvGR6bOEFvca+l\n9dNiaUA+LkDqN1/X8V9BkInu2FbVowiOONhLzR0I81fSDjK9bgyYrT+zCrf5\nTqsa2k+3XObpefFAQIgcXh26fqAUsMIpsdAij9Mq7gurgorTw2hpv8jvPfTM\nEWe375pTkFmJZTEGzmTZY2pJxiVqk4qnnCCfsT9sZimUUGaRk0CviEX+woye\nriSPcvx7jgi1b58zwDvK/4MZQOmDeH6KUJ6MS/oFkRPHuGvjGTq0vE+zAE6R\njZqudRTiNhfpYXNzFn5+09IM4qOSZdyLpAY56U73W1+b/ikuTCJ/VswXxe5E\nXMuI\r\n=PxZx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.31.2.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.10","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.1","dependencies":{"@fluidframework/aqueduct":"^0.31.2","@fluidframework/runtime-utils":"^0.31.2","@fluidframework/core-interfaces":"^0.31.2","@fluidframework/container-runtime":"^0.31.2","@fluidframework/protocol-definitions":"^0.1016.1","@fluidframework/shared-summary-block":"^0.31.2","@fluidframework/container-runtime-definitions":"^0.31.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.31.2","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.31.2_1611279591901_0.6895294237053076","host":"s3://npm-registry-packages"}},"0.33.0-13708":{"name":"@fluidframework/last-edited-experimental","version":"0.33.0-13708","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.33.0-13708","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"0a8fef91e43f7dd27a9c5c0c483437c40e5db934","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.33.0-13708.tgz","fileCount":61,"integrity":"sha512-7iNndl6QUQoyj1NcH6LaO307j/TLCLhHAyJ219qNp07n3vMtPkCrKwigFbj+/ul1BOr8DVGEDWabg7IK64kRug==","signatures":[{"sig":"MEQCID7Apqtpf2D9TlnCrThsYZi9qm1KyzMCyWth6+476fBkAiAfLs/g0Zb691eRJd1ax6xfrb7V/NZM+/yXq+vx9uRgOA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73441,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCzPuCRA9TVsSAnZWagAAiYkQAIhEaFW5mVYCy7jppX1q\ng2m8XJx3qXi5mrkCI39PEwsR719oIug4xpK33Ok+E8XKvWHkH340f9iYE6C6\nC7Iyv0vDQEFUUTL6QZADQVEA1RHU54qYVZ1YkqzV6jnTKZAOZ5h1fS1ZKix8\nJY9vumon8sbpFefMg3tvGZbvqgXovb4rY6ZDghKUXnPyFuj6SZwDS4Rud+bk\nJ7cfRCXNFDIIcXjwNgKKdlg9DKedw8TFFWOV0LnJxiuMP9Qrqm67mv9pezAO\n2PuryCd6fyNDAS6ksXONR+bOcxncrhgU0XnYHqCTEVgY/lIms/GF80NtLyLQ\nKPSO0hl43XT5fcA51F+Ne8ovWvAUd2tOSB49NgwZRqQ/cTi46f6Ug6BMOc71\nKf45KZ47PmIkKs6Se42dyL6EAi0Jn336u59CE5w8S3qooEEMqzSvP5k/1UsV\nCKnX0/uj8Km6lgbGecorWX0ICsj0VAta0YTydXmQmwP8D5W4Be4Xr7NOQLWO\nAg7pI+vy3YvWoH7TmtE+21dU1gkL5i4ASMC7Nm7IHh/eEwRgiCjrMcZ7caTR\nGA1Uvtp0X9I8AQYqC/YwzGmtYH6P8Pfph4ZeJGoFKFfS2rtAj4xsri/VcMkz\ncVYqOJlvo5XUgiESCbZoIihvDoYiXMulsTfBsIedeCtDBPUJJqtoLwO3hvHh\nDpC5\r\n=X2kx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.33.0-13708.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.10","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.1","dependencies":{"@fluidframework/aqueduct":"0.33.0-13708","@fluidframework/runtime-utils":"0.33.0-13708","@fluidframework/core-interfaces":"0.33.0-13708","@fluidframework/container-runtime":"0.33.0-13708","@fluidframework/protocol-definitions":"^0.1018.0-0","@fluidframework/shared-summary-block":"0.33.0-13708","@fluidframework/container-runtime-definitions":"0.33.0-13708"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"0.33.0-13708","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.33.0-13708_1611346926361_0.2664958461428857","host":"s3://npm-registry-packages"}},"0.33.0":{"name":"@fluidframework/last-edited-experimental","version":"0.33.0","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.33.0","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"c25cfb3faf8b81e0e37c4507a5fcf1852cf4053e","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.33.0.tgz","fileCount":61,"integrity":"sha512-vbaE0Y4gVoWvfyUmkMNAFj5UQoUHZYT/SM0eC558dd7COtKU0VEfLyRJ7mLQn6N4bDxCtoBDI6er+z4R8Tf9bg==","signatures":[{"sig":"MEUCIG3MQ0GY4xbMEdwPNeRwl6r+ONItTRbQMmb/SGQxKRRNAiEA/rIYDosIgoa40TVylmPewTchvHt/G3oa3PMsjDV5NJ4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73352,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgC3fvCRA9TVsSAnZWagAA7zgP/16nM7+UBI+CZvu4ou+S\nJYqaYUdd8IbngoTs6efV17V/VgipuGj3fEIkNwidShmsTflTkLfenP3wJmBK\nCb6URgGFtPFCSoUUqpZ3IkTLTxmJgTV5vVCgTdUPn2yqqjOTtcGqFjW/meHu\nUFlRSx1gQ3wifRrL1tIBoSviwOtlxhnIwOTrIOwQTpMsFWqXSZoojOyPlcFs\n5ZNToIVolicXpKyBrhsztR26ksVIVW2aXg261FVib2uk58UVgPPoboY3zHFg\nXYarLrywajs+m81neJeGiF7knPc9tbULYz3USzMY2SdoWW6bMZKYcZEgshUb\nVcHy069WMQR2pMmfttke0BuTDedM0B5eBOkYcaCbVEZ8wpxygdPshtbi9Yth\n8QfCK+dyFJxpfNa7x1gnKoT/tGeE+PmnWdEgiXL95g7Pf69cxRhQz4kxE0Bo\nhJAB0lLV5xA6tqIQ8+I9Kli0DRgTLbeKZ1dstW2JPz/56hk0B3F+u9Xvl4GZ\nKGXYsXwbVJQpUFOnmnVKkNXm49JmyL3xTX/veKDJh4mio8sM2ylNgqhUvPai\n8YTkBoIy/6dL/W0+HiD7wjiLBJYW8FAc4ntAeUKq3p0P7o16+z/M1FItqoYM\nOg/rFk0VMVG4aAAQe0X9JZsUwbEQbhznUY6HUBFje5SeqyUedZ86FAxqFfXe\nq7MT\r\n=Bvm1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.33.0.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.10","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.1","dependencies":{"@fluidframework/aqueduct":"^0.33.0","@fluidframework/runtime-utils":"^0.33.0","@fluidframework/core-interfaces":"^0.33.0","@fluidframework/container-runtime":"^0.33.0","@fluidframework/protocol-definitions":"^0.1018.0","@fluidframework/shared-summary-block":"^0.33.0","@fluidframework/container-runtime-definitions":"^0.33.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.33.0","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.33.0_1611364335244_0.23960605290516157","host":"s3://npm-registry-packages"}},"0.33.1":{"name":"@fluidframework/last-edited-experimental","version":"0.33.1","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.33.1","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"a465b460f8a3be9346fe6eacbc77c73c326f84b6","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.33.1.tgz","fileCount":61,"integrity":"sha512-raZfHf9P7rw2XDUjMWAhryvM/ni5UAML0a6EyLEGA+Uheg3lSu5fmqblc5Iq7/llAj0LQaqOxaW7IO74OSZgtw==","signatures":[{"sig":"MEUCIQDXzn0cp6LRrhPUk6gOqbk1qb+/kNBvDRFGoteHrTTbTwIgMOf6L6YHOikqOFw9YpjE6JMxPUWyhQKV2XKP/Xh1x2Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73352,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEdq0CRA9TVsSAnZWagAApWcQAKMJ3ltp286cx+vZ/GV8\nW1JD61QUoUPGK87QGIDYu5RADXZmlBVTnrQeBiWpJWSmiAr8lUKBo390Q6by\n/PnBVrOfWd0vxJbkTJOsq3J2tLDmZWFXUJEP7+tHbxkuE3BEDTzf4mJ2v3HM\nz9ntYRuYmqZvrbY/v7Hj4lrKr/tnnWD7djF5GTesRYLtyscfUTJ4GHNeZ7Yt\nA/LpVJCnVZCkGu7M3iUf6Vd3+NFxcqm0/8ViAZCQDmXn/prjhaFlj09uV8xG\niCMOGQSyBMA1zAd1J4YPeC43bPa59W1tgwYxajt8KJabU6KiPNepkOXCTerK\nsbo8+JTtUYud4kET6vOZqIdsUnDMwJq2G26EPcsfohz5ufyIz6dAp/UwWVmJ\naC0TvlvfP9BaNsSrEevDskNLZfE8CoXkABCI0X5Q09ArUfiR+IuTcyYbocKD\nvE2ie2GloZ80Fxj+ULQ0NVlp5DY+tP4ZkpSCVnoT6G4teW9g+JCGq6wnhntv\nGvGcbVKeIyqQVg2kVoC2FHirez7C7hc3jYoYHki4eJnyg8YEQ0clraaEWs8R\nqvZ/qSBK+ZoPEi0+7wYaMgU22+0z6H+TVk9TTv6rpTZgemxLk5cTVFoIUwWu\nx1NYfUFjyWvk0eX5FTmELY1D8jn2gp75ma4m99UIvfY4uVzeFH8M6pGKMN0a\nTQVx\r\n=H/OC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.33.1.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.10","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.1","dependencies":{"@fluidframework/aqueduct":"^0.33.1","@fluidframework/runtime-utils":"^0.33.1","@fluidframework/core-interfaces":"^0.33.1","@fluidframework/container-runtime":"^0.33.1","@fluidframework/protocol-definitions":"^0.1018.0","@fluidframework/shared-summary-block":"^0.33.1","@fluidframework/container-runtime-definitions":"^0.33.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.33.1","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.33.1_1611782835669_0.09060109953695061","host":"s3://npm-registry-packages"}},"0.33.2":{"name":"@fluidframework/last-edited-experimental","version":"0.33.2","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.33.2","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"bd9ff69decddb57da5a63bc483c5fd45a70822ae","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.33.2.tgz","fileCount":61,"integrity":"sha512-7M4QP1E9nUryXpqEdd+gICMF2DItXIrhlNmWqIpl+4WR5UTPeKUBrhQlbz9qtczgB+uWy8bOsggOUR++sFUxhA==","signatures":[{"sig":"MEUCIQC+clLnTufb5udnY/PSyRSSOj1H73Gfp4oWn8YfowlUwwIgA7bsilEPwgjQwLu79Rhd0nNgvpBrlxHFhLQwhCAoqpE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73352,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEvlaCRA9TVsSAnZWagAAQU8P/03IZemaqQoNRhB5ZJNf\n7XKncgEju9gV4BveNL+p4bIJQbVjANQYppgyoWjTKyyZp6Sb9wRGoFC2haOh\nq9H9H3mrFlJ3ZZb0TbB/xXpwYpg/hj5RvNr+y0uX3TPZLw06FvvLTlqKToLO\n527HmjsJ+ESCB9rLmh5X3TYo9MJle9ryS16DG/7pAEmViqcCvVS0CuNPNY7P\nVMUl0x57CfLKCJ/8Fe6/bIt0gkOtikat80TXq9hsSoJdVhYj5Uaa98VbxNtj\nQbZ8S3hZNqmc0HLtV15mCxIeMCJAVqED5vVW0qnA64aa5j6+sHiTuOD26+BZ\n/6e5ZtjPEwE50qb+S6/HJWe4cAcB33J15OKDjJUEqkU2ibxCLpaSBJxAseRu\n1bBSkfSCOPfniabATfjxq5WKcCJcpaTydC6ZKLTjcr0hRtEeZfjCMLelZH0R\nptqmxTbqNFkn8g13ngoC/DwKMgDsYa6T/WrDWtU9vdPhP2EPPfKG0NdAfkvu\nz/a5aXurUFN4JbfKaPVkhBxw7U4wuDOxuXA3ZJOaEDijWE11ZQzn2KBInVQz\nEUk/lYwZZZhN+RMfjgbcLZHWOs8zzjAVAR4UaDI6lgmFvpJ8rjLL4US6xAv9\nk9DYvSPjPTrVwHtZeSMpdWxneAJU3W8vFxm8wt1vY/ARigATqPR436YA2ofJ\nQxGE\r\n=xYb9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.33.2.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.10","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.1","dependencies":{"@fluidframework/aqueduct":"^0.33.2","@fluidframework/runtime-utils":"^0.33.2","@fluidframework/core-interfaces":"^0.33.2","@fluidframework/container-runtime":"^0.33.2","@fluidframework/protocol-definitions":"^0.1018.0","@fluidframework/shared-summary-block":"^0.33.2","@fluidframework/container-runtime-definitions":"^0.33.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.33.2","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.33.2_1611856218056_0.003950030463600207","host":"s3://npm-registry-packages"}},"0.32.4":{"name":"@fluidframework/last-edited-experimental","version":"0.32.4","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.32.4","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"d64c23a880faa3607b5c7e464c31e4a4b58ed48e","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.32.4.tgz","fileCount":61,"integrity":"sha512-BS+zWjrMNuYpGfbEzl0Jl1eSL7RGWQSQTZrT8BiaE0KjlouXFspmkuBv3jw6FQDHKXCC7CPRRWJ+vq4uGKKrfw==","signatures":[{"sig":"MEQCIAzK0w/o3nNcyCgY5WuNLfwjbFddsNP21AFkUma88+o3AiBGcD+Py30I8GClHjaUO5U8D/Xugdl/ApUW9hZomeZvBA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEv5YCRA9TVsSAnZWagAA9TUP/07/SlCdrPmyDJ6dlED0\nC7R3RXygGyLFAbl0EZ7kzbsfuBbcwwe61/nvRjhunc3PUfky9n4Euaooxr7/\nFpdETMOFt26IfbBAVfPKWfo6XdfKjda7THWMnfQVRWMmuVvwhkDhkvBpeRVr\nDS/HT03TUjkUV1k5Yf/U3yPBCmZJHEt9iDdJXIkbnZJpHFf4LNZRfnyPmPs6\nf7ZRGnSYlMX4WIzFu5eWMJm3tMsJ+/OvTy8SwB0xjmu57PN/Wq/phUEb8pMC\nyZF1oUQOWbU93bHGJrcTjoy72AKo4/pvRlfO8OJGjKQcG8jgsz8bKzj3X0ty\n0vjpi1C6DSd/4iyWk+nZaXl3pIFsIew5SDblsMo1Ps3iUh/mOHsa89LBt9ZK\nQQmIqo/IE38B8LRTo4UeeUePaOrDuALsbagI83nAj9Tr9z2qciQHPVTi583b\ny3l7gUhNnSNJXRa7/0fxr1ibfZNCcLllTe5uynsHFMqJC1paAmxRPU0nU48m\nvBIaRQa+RDr9L2X4Lp2AQxtEhxcU3k68+hlbezsXK4WlMb2Xd3eCkVsuS0iW\n47WVCXJR4RbotnhKLOzlSEbwfuiK3DSruAGW5xMqqAbzqeKoDXExqAOojcwC\no5XFIFzxkO+0Jcx82GUauPsrAKq/hjbo+MmgMalM5AKPBHJydTMRfyWlGV4Z\nonwD\r\n=v3vj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.32.4.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.10","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.1","dependencies":{"@fluidframework/aqueduct":"^0.32.4","@fluidframework/runtime-utils":"^0.32.4","@fluidframework/core-interfaces":"^0.32.4","@fluidframework/container-runtime":"^0.32.4","@fluidframework/protocol-definitions":"^0.1017.1","@fluidframework/shared-summary-block":"^0.32.4","@fluidframework/container-runtime-definitions":"^0.32.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.32.4","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.32.4_1611857495925_0.8467069695149887","host":"s3://npm-registry-packages"}},"0.32.5":{"name":"@fluidframework/last-edited-experimental","version":"0.32.5","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.32.5","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"f473b6ee4d2a8e72da4408742845e0a7e051dc79","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.32.5.tgz","fileCount":61,"integrity":"sha512-3AQX0JXCMGR2koRWDqx6vkRbo/Ot7+2WD8GL2Pb6iB522AhyRxNU5M0An94xMop90yx18ZmNWeZKhQ2zT29Qzg==","signatures":[{"sig":"MEUCIQCORoibUZMHUaGR/JohIvVOoq8dNvwPj+q8k/j82qY4/AIgBh7N+P50L9Nk7pOJ76T6R/tjDBXmoQ8rrPXKJYEYDGQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":72906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgE2RpCRA9TVsSAnZWagAATrQP/iIpx4ViRsNfgbgR7KN+\nhtgeTytBscdChvTvOWawiAmtj2oESeWygaZnZNoZQAtfPcQKLmQHS4A+kn7z\nYmlrTbUFsEpwmefJ+7mAjsSPWgA1ue1dE+p3yg0hAntPfFkuXU5h22iPFj3f\nDIiSun2ri+cJ17snCgNDzGsPNmQvFRsRLBt0R2s+anSw7Km3hKnDBZtwmP5O\nQoHv9K+i6fFxixlUVNCAwwkSO/Ujfv7dq8Sz8kGQ5P+iVH5LE4KUMf+5HBjw\nM0QNRIAztOHgbXO6kEjsQV0n66xlMnfMtJ37Rm689YPpng98NVHSPwLHuR1K\nGap+Tm9ixJFRSdZKlWnEHq8jAsFdRjIl+Q0g3eXWH1up2jMys0aJgXO68wjn\nC6dXrhsWkVRNdZ6EaoGll9sG/lnguI88LBKlU8GASwXIjRXZJL51QMC5H+uX\nX5ZcL2Bq2uLztgevtL0Lops7dJvuWU1Tmc2PhtoVlTA3SgUfj3bu45EQLkyb\nooIpuREhuHsg9qKsTJh9bWgF7AsoHg5crP5quyz3T/iv03umUpClmI8+mmhC\nppV2xxHa29TcoYodYyqXAIjDW7tcRlbQ78OWe+3vjcqBF/KMKJAAyst1GET5\nye9QDPOSgdHbTtCIG8MbpRQuYbRLhdQP2xMLV0aWV/wqiBbt6fkQa4djg5Xa\nIlHF\r\n=Q55X\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.32.5.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.10","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.1","dependencies":{"@fluidframework/aqueduct":"^0.32.5","@fluidframework/runtime-utils":"^0.32.5","@fluidframework/core-interfaces":"^0.32.5","@fluidframework/container-runtime":"^0.32.5","@fluidframework/protocol-definitions":"^0.1017.1","@fluidframework/shared-summary-block":"^0.32.5","@fluidframework/container-runtime-definitions":"^0.32.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.32.5","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.32.5_1611883624626_0.709255169337971","host":"s3://npm-registry-packages"}},"0.33.3":{"name":"@fluidframework/last-edited-experimental","version":"0.33.3","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.33.3","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"525cb5587d6b71230235f8699a8fb6b7d409c757","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.33.3.tgz","fileCount":61,"integrity":"sha512-hxaO2fs3Tz2zkUj8zBQbSSrXLdqjiw9gT+vm7hIgFaxxPpF9ak6fdfYqq5MyUid8Aq91RNVAIb3fLRtM2Pbnfw==","signatures":[{"sig":"MEQCID5Nm38MYh1uH3S6qLDkWQsn53S8SSCpiC5NJDRQk4lPAiA+zv10kl2Ouzg9GgIYKdylxxAWTSyNj9BL+ggswkrVww==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73352,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgE2gZCRA9TVsSAnZWagAAPtUP+gPrL1V88+bynxcP/n93\njmkgpipmySSzDv4RwDRwXi3v3MuxRGUTypngN6yydvKh+s11FjCbQa64HmcX\nnKqtfBBVJIb5N2cltmfHvBGNg3284P9ulswDoIKNiiskqkat0EKtG7cK9Jjj\nEjZm0wm8AyY60Un9iGtlVdFE4OxKW7odsmCexEd4ABcQVdWHxmI+T0u1/VA/\nD+2ubX7BXKJx9nnzeWCtyA2amMHWwV510ZSZYKkqg0/yIPTbgb0wDH3sUVx0\nnP9nqP7BzWcmodD5rjVfvfgrmdK5NfgzLfvcC8ARuQFoK2T+uplR+Da/P1lO\nnlwKLlxzRx+Ax78SL7eDt3ETiNGTrzDKRNixrx+Fdy7FDLBqVP0wJdHdo53p\nsUmYNHDsQbcIZ5XKlfkqYk+/GGvUYd0ib6qwZB8g3GJlt7xbMzYBv44u6Jm3\nn1j00Tff/t3JiC2Q7zESfx8B7CQzeh+Yo11lgt3dN4qvU1M/mBFeu7RcBTtS\ntM6M64csurlnOX6q+FsFOkekASZXvwJhwBJOJQJMAz8nYwpoym2eIBeytXXq\nROa77UxlI3l+zyEj2aXaZQ2R3I/wctWPAlwlrgJ0rtkDozW9hLniXjodxxya\nQtLh+vLzl2Okbyeq7HUCNGVvUDZ76Gqgb/sIpkSiDIsWlTePj/UNwfovv58j\nXrc1\r\n=6yUf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.33.3.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.10","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.1","dependencies":{"@fluidframework/aqueduct":"^0.33.3","@fluidframework/runtime-utils":"^0.33.3","@fluidframework/core-interfaces":"^0.33.3","@fluidframework/container-runtime":"^0.33.3","@fluidframework/protocol-definitions":"^0.1018.0","@fluidframework/shared-summary-block":"^0.33.3","@fluidframework/container-runtime-definitions":"^0.33.3"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.33.3","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.33.3_1611884568837_0.6500933048238413","host":"s3://npm-registry-packages"}},"0.34.0-14942":{"name":"@fluidframework/last-edited-experimental","version":"0.34.0-14942","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.34.0-14942","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"88f5d83b57304f2cb2151a5350a6ea6d8197f482","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.34.0-14942.tgz","fileCount":61,"integrity":"sha512-9vBeX7DXJbH7RmyWbVfKNOsIkAekKb35qxbJ1KqVCBNCeNsnQjD0RnSjUe1cXvf1+9TMln6Djk3kjsU8g232+Q==","signatures":[{"sig":"MEYCIQCdoRBl3aasIkeXLLm2TNkI/lm3TA9tscCEB89g3Aw2TQIhAJ0EgtA7RBYdXLC50yBriq5C/T1wFoTKRHPEEDwgeGen","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74203,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGZI6CRA9TVsSAnZWagAA7TcP/RvroffSLhdhPEChA/X1\niM7D6owqq/iY4xOU71cM+epj1QSrZEbFEELiRYHIK1oknVrJ/QNXF/YIHIP3\ntIfzWL7VJdQoQ+2db8F5HkcoQVrn4GEiU0wLgIOcZGNBaoCnzCcfkHviAy91\nnf/oyB6j24nBY1pR3oDCA82iwfO2rZqhDxXPFiaYw1AVduZ9zlaJvEv7wJNj\nYC3/aTt63gwFuKXvXcZR1+U7nIc5JRJqggQNUVN9hBjRAp4WtTDr9NHtcLzl\nFuFHp1ZrkO2vX3t5naLjSO4FH+9DsAvowAAb0M5Mf/oUArICkNMIlnXcgRbN\n+EsuE+FPuqr7GAEXVC56AxYyMF5Xzj16OQKVF7VWTZ6Bbzg30V4MDU1WhxnA\nyHbxbkMRFZBbueD0ZPyK242Nz5JGkV6V0anqgoiupPlK3BqvTKq3p3IS6fc6\nAzzwPuAwgdATkPoh12irn2J+fV2WWpKyoMXVra4s2Au03gx37BchBdoNG9Y4\noTy8V705PVpfIcAnMyp3hlVvOLKWbF69ot4J1SjLgmaVkJlPTUcuBUuunAKC\nxkxTuJhaSp4VGB645XawRSwj2XJ6UUkvbAijpwhxJs12v/UKSfwoXoaer+HE\n0RNkYcELMooIx+uefczMhyPkhUeBHsuX6P3swajiAw2xviBMl2MjEWRvMGgT\na3mY\r\n=uOkt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.34.0-14942.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.10","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.1","dependencies":{"@fluidframework/aqueduct":"0.34.0-14942","@fluidframework/runtime-utils":"0.34.0-14942","@fluidframework/core-interfaces":"0.34.0-14942","@fluidframework/container-runtime":"0.34.0-14942","@fluidframework/protocol-definitions":"^0.1019.0-0","@fluidframework/shared-summary-block":"0.34.0-14942","@fluidframework/container-runtime-definitions":"0.34.0-14942"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0-0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"0.34.0-14942","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.22.1-0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.34.0-14942_1612288570232_0.04387266664179479","host":"s3://npm-registry-packages"}},"0.34.0":{"name":"@fluidframework/last-edited-experimental","version":"0.34.0","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.34.0","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"753c11880ddda85c9d09e883d04f6e9276145cae","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.34.0.tgz","fileCount":61,"integrity":"sha512-zDA86WWPZHiybm0U3JEgYJy7KaWseHHkSuo45WWzPWkzGypQgVf9RCIb3vhFHIChlwWv1uDYP+co7ONZoKVQ+g==","signatures":[{"sig":"MEUCIQC/ZdscYjUE5BlyaYySJQbevzR/VtUS8QX1YtpE+WVJbgIgWgHk4CUqgkRy/ak25wz2UZOZRFKYk8S8RfpQt0/+6tM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGxVdCRA9TVsSAnZWagAAH1EP/jVKiJ4xAO6jEEKfCj6k\ndGwFaUmq608DyXYX6JsntUjJYdRbwyYdD9r41oEZmYutPHLo+/BuTG3IhNKb\nJ1TiPLFQQUHBNyQdEpI2j9bRdf3dvb48nG/C5VPAbdFl4JdMuoDwza46nOgS\nnu6GwGq5NFpjaz8M3/ykcCk7kpHjkXvWsDrrEki8L25r6CyY0NSu5JFk+97D\nZYJQnEvcQ0y9GcvTMBQSUW5gsrayNShGGgen8qGxeWKTa7Wwsb3YrrL4lHhC\nM9Z3wz8J2C+s6fRb7alqrpmJnqAn9zvo2i896SbMgwnkMl1cWmA36dm8XFRJ\n2WOZuloiO2JWo/vuZ0pt6SxdBT7MAZo0SDEz2BV4GYV4aDLB3UAv2CjghrNm\nbPPl1g/pQbgFh4V2vl+zYaGneQZHlQZmLDO3Gh3485S2A0ldRs5yNxp10MV7\nYsp8ArKq6Tgc4OSh8O9wQlzr4wkTfZ8GFJ8C0KIlq/HY9ZX0hC4xwvNJi0UC\ns8g4gfmcVNVojWLzgdtJLw/xhmusu3NiannqRJAGOxGIz2YfByboP9WuccI2\nsbQD9fPe6vCGQPRb71rSPCFyuFm5aON4XqDlpPSnPsQ5M7NFMO5X3VKr2Qwb\n825qguXZFwrQi51en4+F7UJkzUNa9XmmwChNjhzIY//zahlxXkEXI3O8LHmM\nmSKy\r\n=Nnb2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.34.0.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.10","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.1","dependencies":{"@fluidframework/aqueduct":"^0.34.0","@fluidframework/runtime-utils":"^0.34.0","@fluidframework/core-interfaces":"^0.34.0","@fluidframework/container-runtime":"^0.34.0","@fluidframework/protocol-definitions":"^0.1019.0","@fluidframework/shared-summary-block":"^0.34.0","@fluidframework/container-runtime-definitions":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.34.0","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.22.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.34.0_1612387676974_0.767824722494143","host":"s3://npm-registry-packages"}},"0.34.1":{"name":"@fluidframework/last-edited-experimental","version":"0.34.1","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.34.1","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"e75b419ac757e4ea7360f2f9d776683c7309ee4e","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.34.1.tgz","fileCount":61,"integrity":"sha512-T3LsQD3r+ESPTyPL3dE7PU8wplfrwO5VsjelSPMj1ssd5LWvrz1GEhXgnMjU9wF5Zd2uIFDIjOG83k273+jcTQ==","signatures":[{"sig":"MEYCIQC70eDa59XZ5FzpL6WarY2nb2z2NZGejJFjezQbcte2TAIhANZWin/tJUfYAi2kz+kmuWYZWLqYtC17HrRJy3K5zVJ/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIagwCRA9TVsSAnZWagAAh6MP/064eCAir3rpPnOr4SdG\nBjHc61bkDpPnuJiBYGGaz7x4Pt/fGnasojD0+WDqQtOBeld7dBZibNJMQr0X\n3wKCcBhsi+2pIa1s5LMaUanjek0fHGzKtfu3h3HIr8byZJPK1RlCSroYG/T3\nIdovrVi448/MXyN9/eSp4199ARMS8TXp9YpbkTgf21cMk54YLUe0CjJsJeEk\n0/28IdHxVrtSstpdAka433ubsuq+xliN78YxZJJGxt6MTrdeXRXTGdYsw76h\nSVBHarUS+kZtBBw8/JidNsSyMb2J3DmBZvMBR6P4a2x+jMMk1sBxpJLoRgry\nhQhUszBJ9lKycCbCubUSYCp+yHknOk13PaLc/PD3982flSCNa4vd8OqqCyC0\nMXfNobuZD56nIptyIIOEyz7ssGXYHjIkdd3LMcbthQfwdKUg2KqXZ3TNGklF\nXM6mLYyFTpMFDKBrLVlGOQuXZGhF9PbDrHJNogcaP34qTG/FYmxgCwcxxZdd\n1oEfGADiK8H27kzlV+HnRQw+0SqFg+49tkLB7QKVSI0XaZFZqBiPakKETPBz\nTEGaAkjacfCk2QdpWS7qQnA8XS/+WUlRcjFfn1uBK8U+OIrQ8wJ0k+j3V8bl\nO44Qm3Mtn31KtQ7DCpxJscqxt12x4n/qDW0uj1zY9l3RuuCt0eHWaRfSS0lG\nHWgc\r\n=OZkr\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.34.1.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.10","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.1","dependencies":{"@fluidframework/aqueduct":"^0.34.1","@fluidframework/runtime-utils":"^0.34.1","@fluidframework/core-interfaces":"^0.34.1","@fluidframework/container-runtime":"^0.34.1","@fluidframework/protocol-definitions":"^0.1019.0","@fluidframework/shared-summary-block":"^0.34.1","@fluidframework/container-runtime-definitions":"^0.34.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.34.1","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.22.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.34.1_1612818480426_0.7824151088514639","host":"s3://npm-registry-packages"}},"0.35.0-16170":{"name":"@fluidframework/last-edited-experimental","version":"0.35.0-16170","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.35.0-16170","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"00feb34e2b4ae04efd558f1c3b4ad2612d8500a0","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.35.0-16170.tgz","fileCount":61,"integrity":"sha512-8j2z7ahQSzgYc7yOCa0tyyoqorZWkq0MkIEA/91o5kp1gH+RAGR/0u+nGL7tMeBO4hVuUXPktsBv4e/AgiwykA==","signatures":[{"sig":"MEUCIFQbUYt3GPQ4cTRCw8UkhDwe0ETRG8DjNqFpHmSX1pfaAiEA4OvsOPV8Y1lWCKT/Bx1l1jaB6BZK8yoQfXNcar3YOm4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74203,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLBU5CRA9TVsSAnZWagAAPxYP/0XWprBwNV4fwKnZKEoy\nD5KkBDTHHsRdDC8MCZEltYZkQI9jIOfxmT7PMcBPF++ppyA5Lg4zoDbSOoWt\nd9rHCm8EI3M7zCvJCTTytcOwutX1rl0BpiNDGPlep++t+W/oSHQlcvcCQpeu\nieZM0G6Y6pST1rTvNJzffXAVYZ9rQJwOuqQCoZF4b40c25C5NdRf9mkkQfcF\n0TgHArDBJ1LLQvzb9JOgEbQZOBtASkFQJ8m4hWHJdRqQYqHMSQdAgrOJXzAh\naPWs2qTNMCAWDq4j9FuoCbkevEaPJ9zvr+MXxqct2B4GSMQag/1DgjejvT9j\noqjF1e/aRY+/nt8n1tnIvGUFCXDG9lKfOdHwDaFArwKFLAZdAeAyoXmn63F0\n2qAyo5py7PCFe8MoEhdnSahySg0IienjeIOosND/dofnTRSMLijFKxmRga4j\nbwxyoONBWqw8c7gAVhT4HCynKf2H1uwA+gRHvIImBYUHQ/0O8La/ICRZPi2N\nN6uyfMyJJnwcyj1sY77BFvmV5Pn3EphjF5KoMONx3uDdIkLN+g2x97zSmeU7\n2yW2pzGSfJjVEoEF1K0LRaTsBvPsfAm2ThWK2TYzi6NP7zL7DlDArS4MGlgX\nbx3u4m1tAHKnfvmksuTYoSm8KxHcaY/SMy8pVh87dK8b9cPP/FWKoXJGmgky\nTLcA\r\n=RT8n\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.35.0-16170.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.2","dependencies":{"@fluidframework/aqueduct":"0.35.0-16170","@fluidframework/runtime-utils":"0.35.0-16170","@fluidframework/core-interfaces":"0.35.0-16170","@fluidframework/container-runtime":"0.35.0-16170","@fluidframework/protocol-definitions":"^0.1019.0-0","@fluidframework/shared-summary-block":"0.35.0-16170","@fluidframework/container-runtime-definitions":"0.35.0-16170"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0-0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"0.35.0-16170","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.22.1-0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.35.0-16170_1613501753120_0.3004880150012983","host":"s3://npm-registry-packages"}},"0.35.0-16887":{"name":"@fluidframework/last-edited-experimental","version":"0.35.0-16887","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.35.0-16887","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"574c520976146a37a7842b60ebf8a199398894af","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.35.0-16887.tgz","fileCount":61,"integrity":"sha512-DEGaYiM1Kp41X9xAowCmYAkhj4fIspARXGBU8S5k/KhwE4arAlpvZaJwJ0lF0b7gRe3kvGebx+8W5xokS93tuA==","signatures":[{"sig":"MEUCIQC9VnsCEz6/+o5OKtX4Auaor7ZJ1aqqXHdMlZvsqHiOWwIgOG+sF8fwADgIqodBzi/Cr0Azv+5nGrYxbBe08o/nHeg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74203,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNAR7CRA9TVsSAnZWagAAwBAP/ixmbP7ao0+YfbwrU0XN\nLpzsZTH6TFZvXLyjudllgXU6oyrwNUjBZVNVs1TMkf7p6Y11PPZig0oke+hl\nnEOEvR0Ug0/7i6/7GM1mAN5caiSvfJX1U7Ghx+jtAcoglz7pYV15zVzJKcXN\nZ+IaRe+OJWY/GrTQWaJhD85aQq8kmK12hYztc/cjRMGJCx28J5r5HPgHGxEy\nU829zQTkAFBwwWK4+o0PdwCSq6EaqpzNDsIIZlkibjUW21eZtT+kydAph/cG\nYhLut7oEg+QcJyv3S/v/qrAg+BYD36xXQDKiyJuChGVnn0SZe9d05d4Sa+xX\nTqaKSHpmTsSIBRpxxuVnIMK2RB+CvJ4BCCgkaqvSMhTyrVHPYd6fpUJzThCb\ngcd6A5vju68YJpedumcO2K2GXjm0CR2IhSv7CLoMAuG7cRY3r2r0YS/QQlPy\n5MMgvXDt8sYXq5mH9PavKSJxoPT+aO7S5937nP3i0WpBfry1OiyOKuniPcXh\nY+pDWNXi7Lxu/bovCgpDDgAW37fWJKwzwPeupJGgl7IR5KV7vkijgXSci4Sm\nYSwyGcL25LoQHWN7/LZBn+ZzdmXKzRtspe1GBtSwBRvQq7Hpuy+ZdEjkyetP\nG/26LUYsIrxfkqof9wYse1glPW5YDxXFV9fF3jt4Vq5C8T6/kZv6nkJGeR5R\nWcyH\r\n=IWzn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.35.0-16887.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.2","dependencies":{"@fluidframework/aqueduct":"0.35.0-16887","@fluidframework/runtime-utils":"0.35.0-16887","@fluidframework/core-interfaces":"0.35.0-16887","@fluidframework/container-runtime":"0.35.0-16887","@fluidframework/protocol-definitions":"^0.1019.0-0","@fluidframework/shared-summary-block":"0.35.0-16887","@fluidframework/container-runtime-definitions":"0.35.0-16887"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0-0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"0.35.0-16887","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0-0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.35.0-16887_1614021754556_0.6717208012740163","host":"s3://npm-registry-packages"}},"0.35.0":{"name":"@fluidframework/last-edited-experimental","version":"0.35.0","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.35.0","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"c9f5c60f29ac5b76a3a7d4780dcab2ae445fbbb0","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.35.0.tgz","fileCount":61,"integrity":"sha512-1NNPrJ7eLaw04Y02vzDKV8jQ3D/WkfteVIsN50BNMKiM9JmqjfAyrvVu0uuz5m7bioIFOC96KVnirZ0EmEyaQA==","signatures":[{"sig":"MEYCIQDeewuAVXqMSEN4I6a7S9oEgpHGBHbSjMguJO7up8xsFgIhAJ6x5Wqw+H6FcxMLciBnwIi6c8xtB9xd8//5Ddd4jId2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNICaCRA9TVsSAnZWagAAHlsP/3jHm/OpcQckSnlP8wT0\nKAcme9ntT/GNpu+9CidqfJNipPZ1eJNuBt/n8KfAcwyqt59ecBwdDBhqnaeq\nyyfXGFDzfG212pbD0Ow+yx2Eat92Z5BohYAfiuTMpHXvxYKn2HP/yD46uvzV\nVRpILtGZfbpTyJHzj0AQZijoknfS6qhnIRTmOO/vQt21C7jTwALiJ6vV43XV\nWv10TJQcKJF9OvvZq593MVCl+xMdBPnFUhXFV2ykrfCxTjvl4LurtSSlhhD3\nqZfeW0tizoIKFokias96rfsazkiu4rQmZWU7xkfN3KigN4h/K5n4Ops1usYu\no2AzzpfqGgNSiaoa+DxsaAPMlg4wEtIPF1/hQBJHR2hHjoNbOXtI6MKILW6V\n+KBID42PhsRUecfjWcoMpILa+ORhPA4hITW1faB/qFpsENXGaLWC1JIQ1pH9\nXwvSE/z6HNV+dsA+PSlLMAn6M50FkVVVWI3g7qMDgUUbuDMyRrw/t6iXJBjp\nAQJyFifCeUkk78rsl1WuncjsqrodGtHb+IcS/NiuyHQrI44iePOa1Q6LtHBM\n2R9ASVUvHz8cr+4IacQyiQ8375TwKITvLMD/e0dFgz1ggZzpWDsnEx0OvsoB\n5tc316BOyUwYa20x/vR0z/KKwaTwNTYhB0pklvYgLATfBYFyW9pcDO2FbzSY\n/Ms5\r\n=TSew\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.35.0.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.20.2","dependencies":{"@fluidframework/aqueduct":"^0.35.0","@fluidframework/runtime-utils":"^0.35.0","@fluidframework/core-interfaces":"^0.35.0","@fluidframework/container-runtime":"^0.35.0","@fluidframework/protocol-definitions":"^0.1019.0","@fluidframework/shared-summary-block":"^0.35.0","@fluidframework/container-runtime-definitions":"^0.35.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.35.0","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.35.0_1614053529984_0.013801684816320492","host":"s3://npm-registry-packages"}},"0.35.1":{"name":"@fluidframework/last-edited-experimental","version":"0.35.1","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.35.1","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"b956a9f7c9547154ec5f710b08af2da391bb88ee","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.35.1.tgz","fileCount":61,"integrity":"sha512-jtVVx1jIc1SXHinfpIDLOz8xYTTc8GvG8L/D80ZLSsiuv61q25iR03jak6YKT46s7fucW2hbqCbKp5rvGZDXSQ==","signatures":[{"sig":"MEYCIQD5PMvSQznbcNionhCNpaKYmzIbyxUdBgfwIfM91tek5wIhAK7HeEa7Sueb+38MaYZxfRpczOpKQviWVH61l342yGpt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNtWcCRA9TVsSAnZWagAAOSEP/0BaeQEK+jrqqqBf0PhM\nkYedcomVK9rDr1Cno6WThrl7Bn/yIOup2FQJlJ5BKlYGjwR+sMRnM/xf8kub\n7+l9VK7tvOopX0NYED0x/Bq8jBUmWtUMmJOD1Q6cBQRAMwZ7OSKUDRBmZ744\nLWIDJFDISwwj6S2vh5ffznzdTFljzifisrQpZKI4GFTkV9oE6ltDsIv3VtUj\nCjLExwLt7Qy4OZkoIz8hlMAr6xUTjblfkEKSBx2KiQ6fi+fSOvnqn9q0ZWTN\nm0Hv/vmDEiNskEyZKLnEa0HNTw1KTTL4bHE2HA9SWClCk8wn/6qdjZHQXtg3\nlu6fsTyrMHUkCMW+wsRysIJXe66UlGgInOU5ZhAMPDaZnnWJI990rV4CN8hN\nHW89x+DXbXnl+qp4OcN3T1QeRllv8AjpdT9LoVedCPLUkGcnwH9iJKVSfDy3\nChWi9diGlpcEjm0SjRmH9Wenw6TcHWT1CS0nNaf3F49IOwChho5p8+h1ptdd\nQlcU6QIrYkWP5U3EypENqRSaJIWa8aIr1juJJ1EvfZ086epKRueY3dDmE2cV\nojMMa2XeJGQM6UplEBdTFRhu2i/XvZ9T4dPqg2wOojIXIf6TpiWbssqMaj0e\n+Xl2q6T8qx8KCqRi9zptLRFpH7j58eEvrZercfPANvt3xbzdhQAWNRXMkMxV\ntdkE\r\n=aBre\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.35.1.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"^0.35.1","@fluidframework/runtime-utils":"^0.35.1","@fluidframework/core-interfaces":"^0.35.1","@fluidframework/container-runtime":"^0.35.1","@fluidframework/protocol-definitions":"^0.1019.0","@fluidframework/shared-summary-block":"^0.35.1","@fluidframework/container-runtime-definitions":"^0.35.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.35.1","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.35.1_1614206363990_0.9999692327176279","host":"s3://npm-registry-packages"}},"0.35.2":{"name":"@fluidframework/last-edited-experimental","version":"0.35.2","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.35.2","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"d1f5ca3561e19047529b7e04c5f826b4a41ad893","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.35.2.tgz","fileCount":61,"integrity":"sha512-BdNbfx1s3IC1D6EoWkfb2mH24g2NYynWv0R28l5TB0iFMZbVnaiQJUHLHZ0I7Z7VlID98RWC0SXwpvbL0oa7XA==","signatures":[{"sig":"MEYCIQDrwzNsVU1qXaSzuhI8iWp7Wjp27gEFV9E+SSpfq0maUAIhAIYwkIrbxS7j+WQ51SKHgV7LnyVaqtwV43HDkPN9Wo3U","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPXiuCRA9TVsSAnZWagAAr/UP/0WFYs1wgDS5wwmQwaEF\n9PoOgL5MVSHXqhxG0TF94FZZqLbim6DHPytkVR2s+RqSPcaXSADUsWohFGiG\nX389vRyCs537cXXT+JLeUu19o5Qkn+2IjrEsGUwFY+v5CRtveuvH4boTh/Mt\nk/wGC/DW2I+VuyQUUC6+p3D0IZV+r+dGzGJNmoHCa8uVzHNkJEUoIFWcWHqz\nHesL5KLihuc8KL49+XTQfHQrMhKBqvLI5PyqmFhEOYTnTjKNqA3IOiAZEBLc\n9mZpfSOG5y+6KSxw2iQLYdg80+RFRF4I4JAVfafnNPd8j+M1TRATcxsS/8rM\nDqX7X/+pq30MOxux1YxlE8desadp7yG3UC5puGEL9FwI39NeiqCz27sB/k6D\nb+R6PdpyIdHlnlMl9nrIvukeb4oDlYpEuIoBQm6KilThgVknQKUceKTml28U\n4hMP/1DstnXfpM+9i+fma+wI8n6u3B+/SwyH1wFk3SJL5jt7cviUh0ADJiZM\nMsGnR0cmzpXPANVnNgO5AgoE5RPPALmwe7deJYGhNTeeLAPguOmCKW5bS61O\nVrbpPfug/kHLT+VKiH7gvQ9jOdSTvhsTi2ChJOCxM/oEK2Yw1m4Y/PI+oYWl\naHOYgv+eyDbDLOvfxn0+o/11NRwZPKirGf9PKZ4NBlDHgQicaMm1pd9bf2pn\n1B4L\r\n=V3G3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.35.2.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"^0.35.2","@fluidframework/runtime-utils":"^0.35.2","@fluidframework/core-interfaces":"^0.35.2","@fluidframework/container-runtime":"^0.35.2","@fluidframework/protocol-definitions":"^0.1019.0","@fluidframework/shared-summary-block":"^0.35.2","@fluidframework/container-runtime-definitions":"^0.35.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.35.2","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.35.2_1614641325600_0.7037871738149084","host":"s3://npm-registry-packages"}},"0.33.4":{"name":"@fluidframework/last-edited-experimental","version":"0.33.4","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.33.4","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"4066446f277d02d72fcb4a656f8d14f924a321b2","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.33.4.tgz","fileCount":61,"integrity":"sha512-iYrjYrxD6KGknK3t/1SBtIvblpxmqpPEVsLeVFN55rBVb43MdU0VCzOmyhYO9aX2Kc1ANxZcqodE4pSdKJOweg==","signatures":[{"sig":"MEUCIF7pf9F0LIuURNDjZvujC71xonJSNWzH4Dyl9naQ0wDFAiEAltPQwOPq2jfk6ZEDzzEua7Iz0zllSKXQ8arFYxcwqF8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73352,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPrJUCRA9TVsSAnZWagAASwwP/1SDmmN2UMbt+TtoDDap\nfo7VUgf/ECHOhtSAerBjt8pKkrz8HblGm0zpSGa6voSYJz9gJhyGyGEgxshm\nkpI/8EqmNRSfmf8UUZHI6I0AlDquj2H8GxOqEDKJ8a5mHZ6xMkLrWnxdOdqm\nc+43GuNIQrCL7uUGtfAaHEugiuGr5m6WqBrdHWU1cZKDuzo47l42HgbbTZkT\nsz6/aNTu2IxUrreiArPcMsqgw4p8NbLBjOmMIMF/bhiUzSyc79o8x05lXoZE\nxlpykWnfH++1pMkOBY5fZfFoG2D8A2zbdGHXI9qaGBNCaWHml6M8NA/W+/I4\n5ah94+4Lz3o1R6BHuYNIYz60yC8LT+7vOEtqkwjqBOmYJ5U+DKDLpAeqhRiX\nTrqay1gGWIkin00rykwTwvWxzeEe1cy9CpsIULOhnQCfmbS36Okfl8EmtTNS\nOFqfdOrtv1GLCeArP2I0R1CAM6/vQTqQeCZlisl5nWSfwDydvp5CVTXB0eip\nlFuvoYaP4l7SOZhmyZ/9s9V2S6YMU62tcBzWvzkck8JbegHALZG54QMYjBQT\n87PubZ4nfoxmR899KJkGxkw28vlalkwNChKpfDRr3VrJyaWPGnxm4mOPIlsB\ne/qBJF4D+7zphcZ0hcGeRv9FTA7G15S1M76RaEc4T16onUr/J4FSfhfkBLBA\nvqxq\r\n=gKU/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.33.4.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"^0.33.4","@fluidframework/runtime-utils":"^0.33.4","@fluidframework/core-interfaces":"^0.33.4","@fluidframework/container-runtime":"^0.33.4","@fluidframework/protocol-definitions":"^0.1018.0","@fluidframework/shared-summary-block":"^0.33.4","@fluidframework/container-runtime-definitions":"^0.33.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.33.4","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.33.4_1614721619962_0.9197009407742942","host":"s3://npm-registry-packages"}},"0.34.2":{"name":"@fluidframework/last-edited-experimental","version":"0.34.2","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.34.2","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"06944dd78845c503b8973c8e5c4c19d10772e314","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.34.2.tgz","fileCount":61,"integrity":"sha512-6bLd/FpzfH8bhehzOUdV9sc0fx7+3o6ByQMCnfvCHypiHXSiGuIST1Sy7R9yJRiU74ooyACbzCDidlTUVl6N1A==","signatures":[{"sig":"MEYCIQDIavNUlZwT4IFWZ2FEn9xlMskRVOVu/MO5fObnX8dbtAIhAL6PGixlWlgLk0g/lon8+ipFWyZxocAI4CuO1VAAbHmm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPrJdCRA9TVsSAnZWagAA9uoP/07z/82MejCUXVUo8D1E\ns4cvISSm2R8POewxwTdWZf3hhVk2ywu0bdaO2xWg8wyka8bffsNxbsV7RPc+\nqOzE8mONO4nRKZBWTbBEEwLbAoV8z3irpem7xzSMV/oWfXor9iT4XGOWpeYa\nTgK24unYvkVfL5/DCcl6qCrmC1tVYMPmgBesWxVg487AZtegcmzc9+QioD/t\njO5m6s5hdH15k+oqaOwZgniL4HAQ0986kL0+b7OVa/N8GfC5BC8I/lW+RxkI\nk10T4USD36FEYohuwGXlVxfXJA7EO8ehB7vQwJp1uuFtrSbDxHHqykepZL+n\nNNRhNhj0jWIrR0GPg90kiTB9s1gPOd3UeXalhNbTiAnsJaIOIb0Rt1DX43w/\nFHYlQvYt2twW7KURk7SqZx5VlMcffMBSwcdB8Nz5GX3RAcS7r6aBR4l9GMfN\n8jC1AxpTsDvy8dQcqMdj9vqRuEidGgZaz0ZlbrbfXuSv6pkylgpMLV+YsSSc\n+Up6//w84n1erEl3TbUKE7hO3egW4Z16GYT4RQX/9Q2rxR2y2lGkWktjJApT\nnzYAoKc3WYABXujcp9ri2Fru1VFm4ZLEX7Hxjp/cXcAy9Ud+l3cDwiUde4rU\n+146VWF/Z5yYDsjmr4LvmCkF/4bq3lJhgCli1cb69R9vtHjTXVXf2vbbrquT\njlSs\r\n=MBxo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.34.2.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"^0.34.2","@fluidframework/runtime-utils":"^0.34.2","@fluidframework/core-interfaces":"^0.34.2","@fluidframework/container-runtime":"^0.34.2","@fluidframework/protocol-definitions":"^0.1019.0","@fluidframework/shared-summary-block":"^0.34.2","@fluidframework/container-runtime-definitions":"^0.34.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.34.2","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.22.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.34.2_1614721629121_0.8021268061130133","host":"s3://npm-registry-packages"}},"0.35.3":{"name":"@fluidframework/last-edited-experimental","version":"0.35.3","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.35.3","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"f620047e6c5deaccf5fba8e219f9fca48da824d4","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.35.3.tgz","fileCount":61,"integrity":"sha512-BOyU5pdCEAhTZeShcEfiPkyLkaohM692vY2EOvyIb5jjctM3py/P8FSf0Qo+Rvw5f1xbUHMGkihJz7pp85rhnQ==","signatures":[{"sig":"MEUCIQDJ4/I1s2U4lTHf/JUWUoXQiiJU3XDPVXEAWTgWdOHGvAIgEaPFEbKHoeNtDjawkDknb8WZzIYha+nz7c0OsZMh6f0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgP9PvCRA9TVsSAnZWagAAp0AP/j3WefYZOl+5fXygCIeh\nqOPU75DOLoJNUFUym06P2FJ0aq8xIHpZwncZisHzaqRKlSnwneRe3Pk1wG2N\ngx8OkkTTRuZDTqrP0giDrtnxhZB/ZZBuyo5UToRgaqWvCUbk81MHnbAtNKzw\n53ml6qqdoeSlKBlBr+WJ1nzd6/qk731fZEdflfguhJG7Av0E9fW9XI9veshi\nMfmq7nXCXyV9vos9QVQyKKJDjam7icMWT3joy7eXnzTnhZPfwZCf1XT7/SDE\nUUCmM+gstVvLV2/5dd7H94dFp8Vq1iGBIdwZ4dwSZlc5FYMMIItq9PpGsMIG\nGRFZdIjm+wfvJwm3ERsPbKpz1bvet9rzXvnfvhR43WAk+tRiFe3PpHsHuy3g\n3+h/KZ88d7KixGrXqWwTKbho3jRJ4W44q3LvX5cqCdxVfXRMWR+UFSZUG7tz\nDck+OzulMVSJUVcK7RTgbLYzP6F2Fg5DeDZW3nTTTsvUaUwp5ykdCLxAzc49\npEMWb+c8TLJc3DqbKsEya5uSQYO5EZ94BDqx8nC4IDLA8nwrM31PzwDiciQp\nqJR8rgsMLHRGsx/9IAvPXdGhtw4d7PrID954av1JuKt6IpNHXJzq5aM5huOu\nzDMvdEwKNw5rqFgaai7YLEh3nWeibZcVDwAslfdVdFbLOYraR/Ve/atzhmOk\n1sqZ\r\n=XSG/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.35.3.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"^0.35.3","@fluidframework/runtime-utils":"^0.35.3","@fluidframework/core-interfaces":"^0.35.3","@fluidframework/container-runtime":"^0.35.3","@fluidframework/protocol-definitions":"^0.1019.0","@fluidframework/shared-summary-block":"^0.35.3","@fluidframework/container-runtime-definitions":"^0.35.3"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.35.3","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.35.3_1614795759431_0.12800682762335658","host":"s3://npm-registry-packages"}},"0.34.3":{"name":"@fluidframework/last-edited-experimental","version":"0.34.3","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.34.3","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"3948567aeb7be039978f1ff1a90218329fee51c5","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.34.3.tgz","fileCount":61,"integrity":"sha512-7j84RX81ttBI7cNX+wGm38qNBhuOQ4FSeBfsfX/rocuDZoSsOLvhUoKv4A5/cwV9ceuDDuRw9DKNe0gH6B+rYw==","signatures":[{"sig":"MEUCICch1aN4wLx/jOG+eAFOgktF14TWZ81surNzcYNf/Z8wAiEA6xgIdkiPMZKg+utgavG9b8O+SkBcmAhF1np3kdsi1Zo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgP/gBCRA9TVsSAnZWagAAbMoP/Aj6QMddKz+DhVBqIYlU\nuyHf+K3V3e0KXZomV/oxfF72HkO4lhVUNCdyawNab9I61/IMzptabcfNhMpv\nr93aUL/c1Jo9KarZ5LgF7K6Br/gjH5umkAyGuPzPbDkM76AbtqDA1ABDjtTF\nDHscZnLTHvQujDTRJROrIx2UvbfnGjjDpFMOdOga32SsGMll/E3eCa7Q+Jw8\nTIKABNJhy2eKWGbh069kl2KE4eZXZPgWUAfoAZiLTXOH26L5IjqMdhN5UfZn\nn8IfG/ESOZGSZkWhOiPfKxw8x7iRY3UIlgai3ljnvvqPEMf4GCJ0iCn8ofK2\nJfOXhYoW/5z6o62k3tyrZS4BcFOSicLBBqYj6gGHaDFiZ3G9zAXoK59lqnfO\nYaxm3sgNrWjtSI2VObeKvIZiv+ORZIkLqh4uCPCVDCemXyFhXTHiowE7FNPK\ngu79n+5XlRM+b1hczzcQjuNqj3cB37ZLyKqtkTgOSaA1/IS3gBFiSouC2h8n\nixPBnfvQKkYDIEX/KcKlENenOFzEHlh43oFWKX03fl9Y8UvLVK1reolM9D2R\npgqmBpnKOWFnSVygiuIEu/0vhCxfboT0XJpzOiRc2lb0JY5M7EuS+zs00arV\nxJPKXMtxk4G7dbB9I7hfKbHiqREQuA2JpBJRAK57HMC6BZmlEsGBIs4y9QHK\ngSnn\r\n=lWtu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.34.3.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"^0.34.3","@fluidframework/runtime-utils":"^0.34.3","@fluidframework/core-interfaces":"^0.34.3","@fluidframework/container-runtime":"^0.34.3","@fluidframework/protocol-definitions":"^0.1019.0","@fluidframework/shared-summary-block":"^0.34.3","@fluidframework/container-runtime-definitions":"^0.34.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.34.3","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.22.1"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.34.3_1614804993316_0.6507852001935588","host":"s3://npm-registry-packages"}},"0.33.5":{"name":"@fluidframework/last-edited-experimental","version":"0.33.5","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.33.5","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"23de3787606daa89bf354e41062d71f71f06753f","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.33.5.tgz","fileCount":61,"integrity":"sha512-jTFvrFayLg0FOFrIQ3onEqztlR5sRQ8E/PxTHszCG/PxDWfoA8th2wqHTR4u0PFyoEuIzJP5ZkcIEQx6XLkK1A==","signatures":[{"sig":"MEYCIQCnf1v1ywfh12k4opZzisZ8/o/WvAvK/1+2X5XRVWGCOwIhAJPGQXnYijzpCNO7D9/nhX/m1p5QrEgRXmIjItxI+uMd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73352,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQSKNCRA9TVsSAnZWagAAP7IP/08VNAl4xikT7pw23Bdm\n+A5lEeC0fnyYm1M7PgpG4pKXRN90nfPqrlYrtrujWRpKZFQTrVIDZqHryU6P\n2WYvd8xuqpIq9+3VIAffTNUxONkqKYbfBU1NZFAk66Qsy2uA2qMTvuiTI1Un\nNfu9GWeyoG08MPZpAL3Ulz9MiJpTAfh6WGBNLNUQJQOuGXv1+WYevSKS3WvK\nxDELlAEr+3yKiq6Ty79i+sPqo1mrLSabvRKVZSFSPfjurDHvNG8Cpjv9nV2y\nsiK+bLo5HdCJe4v6AJxrxGKT+n3MXtcM5toLKXjZStjc2+vi3pTmGD+s2bUv\nE2DOHqpdmQrF7hQtt4DE+tl76cboPjToAOO+eqFIOOQh81xMy50OEe9ehR2e\nmWVJR3/KZXgFMGZp54a6jNvdjTu0sldFHhlagxl6S/NdptuFBVlz9+fsfEIA\n1AQh2LyzJGhhhRDEtucaVLPm4th6qJsKkaV22nZiL1TfEZ7uPNnB3j6j8FyR\ngBwpkfZR+uVcD//X85YBtIryhtBXIf3O/8BDrJypkp94/OwXxhuVuRsu2qb9\ncOeVUF7pNeCyfwdsH+mVLWweY5YyWhGi58CHGcpiGkp77QdDNe1HbVvlTytJ\nxdEWd2JEIc4KXkD2UBynLl0OeP+9vieGJaiw1GnRKG/QLu+1TvFDge0DC44q\nMnKr\r\n=Jnon\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.33.5.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"^0.33.5","@fluidframework/runtime-utils":"^0.33.5","@fluidframework/core-interfaces":"^0.33.5","@fluidframework/container-runtime":"^0.33.5","@fluidframework/protocol-definitions":"^0.1018.0","@fluidframework/shared-summary-block":"^0.33.5","@fluidframework/container-runtime-definitions":"^0.33.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.9.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~3.7.4","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.21.2","eslint-plugin-import":"~2.22.0","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~22.0.0","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.2.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.19.2","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.33.5","@typescript-eslint/eslint-plugin":"~4.2.0","@fluidframework/eslint-config-fluid":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.33.5_1614881421435_0.18309836554354764","host":"s3://npm-registry-packages"}},"0.35.4":{"name":"@fluidframework/last-edited-experimental","version":"0.35.4","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.35.4","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"9049be2d079bcb9a6ed0304c790e9fcf2fbf9598","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.35.4.tgz","fileCount":61,"integrity":"sha512-G4h+OEsavgyAnPkjoSUV65MuQJqCotwA49DgujcQVsr6tRhi9doCSaTS4oHeUrthMXHVbnrdq8oZi0w9J5BsiQ==","signatures":[{"sig":"MEUCIEz7bU9BE05/BiJy9Um2rkkZSzYY5R1eIKn3NW+2LGT/AiEAlSlg6LZIDADgMa1FDYpBFwB0MQXNhQdtscVGolczvtw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQnf5CRA9TVsSAnZWagAAc/8P/3bVmbZdHH7U6H10E4D+\n+6x9lNJCYJ/rxKM1jfKoKjERql4v6wNU2M/JYkcH7GEhyOWL+lcZrpy4myuI\nAtxWoGyCm/FwSbwav1+KZvi8OPaxRPbdeW9Iz/O4ts8cOfU8THh58/YRLf7b\nOG4V1VRyoSgxVIFVOyUUBCpvWssz0AuwT1E7xaIKw6uJcxaLRwtAeRTJP921\n0y6xf+nW60VzKFpNlYIZ5P7PZvz9TEE0Ecfqut6fv3o0Wm38agVDsFQho49k\nMaOsNIMQw1KJhtAy5Hvv/kHgijzJAGMirvI52bnxQUwW3mvFsOkFad11yssE\nvUHf+NZ1Mpqhili0OQ2FgIXUsD7/6ush+RelYxyc1oiGJJBgejipBFUXVdbC\nCUkqtxY50phFZOfL0WyIjj31kHYObEssbWl0moVJzP6ZHcqud6rjO3+dyE/f\nfjax89yDSpWA5nx5Yo6RFZhpfp73XSIRGtKWdJJ39dgGkvQEtp3sA+nH+fkL\nOXA8kQEBe1zdgqRYmdmFb4WpNiHlS3tdI7OADJw+2IN35x/FhwyXEQoIuZoT\njMwRngXgOr4G+NbEQlL/5rhJ3td/0IL3CCSc604bwlDmq15rDgaJfuM1NDai\n+bhUpQhXmscaVVbHUMeHa9yD+lP2p4eqO2GotaVV0U9v0dQLqHPm8YZRHOUV\nNm7f\r\n=+4UH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.35.4.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"^0.35.4","@fluidframework/runtime-utils":"^0.35.4","@fluidframework/core-interfaces":"^0.35.4","@fluidframework/container-runtime":"^0.35.4","@fluidframework/protocol-definitions":"^0.1019.0","@fluidframework/shared-summary-block":"^0.35.4","@fluidframework/container-runtime-definitions":"^0.35.4"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.35.4","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.35.4_1614968825079_0.91484985017806","host":"s3://npm-registry-packages"}},"0.36.0-18883":{"name":"@fluidframework/last-edited-experimental","version":"0.36.0-18883","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.36.0-18883","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"ec13447d8e311e776805913c39727ae69b3468ab","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.36.0-18883.tgz","fileCount":61,"integrity":"sha512-CaKhP68sw1lllmzeCDoHQkBp6djW/yIW1Gx4h2DRiIvwzsWaStEJxBst/57u3d81UNUNEtq70PWhuPYFd4tERw==","signatures":[{"sig":"MEYCIQCXSjF1Vwu5C/U/f4SEX/d/1zFdpJGojfje38xdsKdqJAIhAMY5lCc5rOhh6AK63ebxsbguVhTUFpG9sR7aLPmErnIc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75979,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgR/pTCRA9TVsSAnZWagAAPuYQAIMdWOHMkXDgN2aupeNp\nTsHFgTg0+SHw/I1ypyGuRVcsUXxMralj+IEO0AkaeHeUbLK0nF+kBeaj3UdC\nRN6kpUcxQKnoiJuaOYYx2PdXm4ObNdF78iWKj5xjaRmmsAgKP8/yI8hDjWWy\n7czu9C4jefL8fFEMKJB7/0tHNy0zkYrtnlXu/CoSftU/kIrsg09t04GIfebL\nDbMW9np7ddkHgSIXhxjRfp6bjOz1RWaioC8RJVkcHhjvdJFmXX6Uha9L9CV9\nOz+uGP5UwUDp5Tdlz4FsNZtLfVWexKemaWcYU7LT+LJ+YQvTitbL8hL1jTGG\nj3ZMyTlXdxTWj9NvGaSIQFATzyC2tpPcS7e/LBs1A/9lJ6khT8HRrzwjWY2p\nvXpXe57dqxFR/ylhU3LkCGaQlIV3J+OdGJEX+IR/dpzdZSjyWbz70v3Z4Yf7\nllx9N9si+hbccFhbKS+lzCkYQMgn8yo3XFDEXJwdTjxg4ky5KdhksHcYSjY2\nOINUDKlVWIlUmL+uYpaWBlCnBLajBbxpn8hDC+sed3TxM/0eS4ckVAGqaHVO\nT+HSTunR+rN2UyY0zBAe6HjkRYyJEMi5pI2ZADug4Myv0cqya8C5TV7pv993\na76xG7al0JfB6b40/xOrzP0t/TGIKLaQPcCJFOqbng3lNkZsfpif+4r3VW3s\nnsG1\r\n=PfbQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.36.0-18883.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"0.36.0-18883","@fluidframework/runtime-utils":"0.36.0-18883","@fluidframework/core-interfaces":"0.36.0-18883","@fluidframework/container-runtime":"0.36.0-18883","@fluidframework/protocol-definitions":"^0.1021.0-0","@fluidframework/shared-summary-block":"0.36.0-18883","@fluidframework/container-runtime-definitions":"0.36.0-18883"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"0.36.0-18883","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.36.0-18883_1615329874738_0.6001938749308724","host":"s3://npm-registry-packages"}},"0.36.0":{"name":"@fluidframework/last-edited-experimental","version":"0.36.0","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.36.0","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"6ac8a8043804464bef0cc53e7860e56af27461d8","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.36.0.tgz","fileCount":61,"integrity":"sha512-WDgaey2gsicwFP5D6S7u7tNgBWio5xEabGB/sy5yXlTLJbK8iRc2GMTgFlA+tFiegSfhM6vdW9FWR0frdXbqQQ==","signatures":[{"sig":"MEQCIAl4y0325DAWxaeVHyfQcX6WtClgsjQn9BEeafGMmYPHAiBUT3AQpuoiAwFODB6bmqzakYcuGHwLQLCmJF1OvcfNEA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75890,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSDthCRA9TVsSAnZWagAAqrgP/22pBdsrrXAFVkcPYxlz\ntcEw7YS1niNJOvLVfPHvBaF4VYdIubpPIk5BXtC36vGXq7tsvarL8UUz500o\nfGIKy/1ObOgcfkEt9J9dQhuDtWY0ZNyiKyKF7kVVOKCTAnP18VmhY1tzPeQB\nJaIlUE0T6fAnC3W+PaG/Bj/oKomdrOSrKdStb7Uu+R3RtRxpo9+TmmddFX2X\n8v2ddSS+YSzdjRYTjoQGZYJftcVngjfLzhJI9miUxIGYSiK9FpLPXO2MelUJ\nxPxsO6KevG4nQbfxpzT3ZUqyh2D9zaas0JcYyaXfzpXkvpl0JIdTWioRpmxa\nc8jBT4Raie83GgPDNyaVeQFPuklB1kavJst0mOlzWDmJTABrWyGPd8Um+/za\nKRlucEYs8oBSk/QcsnJW7bIK6eoD28POsH6sMHMiWoSVGTkHVEL9VTGfIWbM\nUmccC3Mp/gSzId9ggNz0Z7+FxnZZLdPbUg1/yLSGhCVSVDYGfTwbPcyBBEx6\nRgh59MwuoY3k82HUaMqea7kdacnNp4OM4afYft2Yj/1DPacLUXP+8Wmhstk/\n95IGISMTrjIrc2u/iNdWbUQgPWirss3qX91FF8C/Th+WhGTp4LkpFecHGPoq\nSa+4/CyYQxPRea6mtu9z73PxhEK7LGMuR/LUiT83psLzJWCX8Cu/Xo/awE5D\n/wn3\r\n=VBpP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.36.0.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"^0.36.0","@fluidframework/runtime-utils":"^0.36.0","@fluidframework/core-interfaces":"^0.36.0","@fluidframework/container-runtime":"^0.36.0","@fluidframework/protocol-definitions":"^0.1021.0","@fluidframework/shared-summary-block":"^0.36.0","@fluidframework/container-runtime-definitions":"^0.36.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.36.0","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.36.0_1615346529326_0.11127233537365688","host":"s3://npm-registry-packages"}},"0.35.5":{"name":"@fluidframework/last-edited-experimental","version":"0.35.5","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.35.5","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"ac27a6bbc9df40fe0287feaac553e90c429d8b97","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.35.5.tgz","fileCount":61,"integrity":"sha512-IC1tcZYvc3HcrKSC4l+LcQXdqYtrWjvA4YIuLUGAKhq1rxl7PFX5iSAh4wQONT/zqDdlxgHLXgQJRksnaBZy0Q==","signatures":[{"sig":"MEQCICtFwPyi7qGPPn1GXV00pHYD3D0ztH+qJs4uegLkwkviAiAXSvHSW8i9Hv0W76wOJZQfgL7bQpTovbP2x8knWFdTWg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVN1RCRA9TVsSAnZWagAAnZcQAI1u4NscWFlBggWH95F1\nL5YD+bafPHLKLJoYQqjaAQfD6z1H0ZqTQbA1siECOtiWHG6yTo54YgnprFdH\nXszlKxhAvVgQIOvifUga+JLg0KBcfu/delqBEwP7bYMRTd+sJA3aXqqgxMsM\nLNg5foEUp5268S3vZvsCVZzVFpBYpuoStvdusOinK8Kpv8qNZPOtBRGgrBUO\nRoHJsgDodL2cetig8m0G/41l+Lc2TtcrRjdK3Fr/t1RzD2TRyunkaLxzM6v1\nXZnBQEklwVWZvFy+ZrqQeykD3IMbEHBeEx0kf3sEz/87qzmGAI+ApSewgNy2\n9d8YXVHhN9Dsqnl2QyBiyZkpDxuy/rrR7LXNgasiyHJ9SU1VDT9J7JkZL/YZ\nafvn54KJ1STT3sInDUmv4P8P0c4H3qODHAkYkCj8RHK/lEqt1Y0xvxLiE4hr\ncY3momOzHmAP6Mj5zT4m3UNN21X+EggyRnaOfc8Y3TB8uztZ9rqrt+PICP/O\nw+OSee/Nnc65RfyOCRPVgzIIbcIYvrZ/cagbZXQKYFUPj94AgUV/7Zpb33LE\nT4yK4P2t2j1diHOQC7lFKj+af+X2gS085Vay17Kc9k2GwGfqGLyiTNLqCzll\nJlmAHkux7cT5xdsn0uMXnQxgLtG4eHafi4VzDDyjbVV7QK4GdlEMsLehPo4m\nTF9f\r\n=x86F\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.35.5.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"^0.35.5","@fluidframework/runtime-utils":"^0.35.5","@fluidframework/core-interfaces":"^0.35.5","@fluidframework/container-runtime":"^0.35.5","@fluidframework/protocol-definitions":"^0.1019.0","@fluidframework/shared-summary-block":"^0.35.5","@fluidframework/container-runtime-definitions":"^0.35.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.35.5","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.35.5_1616174416614_0.37993309732502434","host":"s3://npm-registry-packages"}},"0.36.1":{"name":"@fluidframework/last-edited-experimental","version":"0.36.1","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.36.1","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"46e23b6006e0e9042a82e844e2455d528f44071a","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.36.1.tgz","fileCount":61,"integrity":"sha512-CCP5oHRn9fcXnXrS4ukzw5xFGFO5gDeaErxp5L4jDXZwMW/hfMOlH8QZ6uY26oi9pokouucUiu6lMIBQA/IK8w==","signatures":[{"sig":"MEQCICWpMuIPeFpmeSEINPTTFZmc0Mwi5KmjJLWeGLEOygwFAiASL7tFYntKNK8ACivAm0NOR9X2RMH7Zty/ERBZ3pHPjw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75890,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVPtUCRA9TVsSAnZWagAAGoMP/2VbWvkT/387LyosdTNj\nxUCHPAVlQKa4v7QJuXmGc+wVPwwJXNiQrbr37AhDVSidem361/N0jW874isK\nCNJ+wegyPkoAuyl1DNlSdIwPCweMYkJ/psqfv/Xt9XuebNfFCSu4OTWnrZGP\ny8+2XE7GtoYkCs8BViCnUJ3RiOSeS9bWYyYvEdwt4P9ga4CknVvaFF3pwYJ/\n3vbqSfh11xd3lNZIeULYWtAvz+oEPEBFwlvXNPXx5YFpxNUckeaIwOHOhcl7\n8lb0tZ2S+feJdjL1o3bThg4g6d6D1BRrONWjjbLB8LJ7NFCsokblX2Qigqz8\nxmUfmqewW3yQw2OfGFbNABV/fjQzgCgXfhTKealwX4VEpbn8YsqPEAop6iiW\nAjNSpM8QpuIl9FCWY7JpdkmfITypnELSXD6Ok+vt/lM0vfF9KWpjNsHJlPY/\n/pUY8qc0nuWdM5Kk0nzfioQYXKcKiQzy6HlippqUCiMb3oVW4SP1LqssXpa8\negAYA+NhEyblL3XniJm9MR5vvjSX/uM54WO60SHHkwJrc/LJ9cVBSOUFbmw6\nELKS7Ijq8spyzaw6pZFC8B7mNqf2tIV01hFzwPNyM7eFkzPsinC0LI98BRP/\nsX/tZajWrRdhbEjaC8aKHzK2JI8ijWlUKcYQypMQMVaangKmWQ/t48k9Ty6d\nCkgb\r\n=WE3v\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.36.1.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"^0.36.1","@fluidframework/runtime-utils":"^0.36.1","@fluidframework/core-interfaces":"^0.36.1","@fluidframework/container-runtime":"^0.36.1","@fluidframework/protocol-definitions":"^0.1021.0","@fluidframework/shared-summary-block":"^0.36.1","@fluidframework/container-runtime-definitions":"^0.36.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.36.1","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.36.1_1616182097672_0.4812697079265993","host":"s3://npm-registry-packages"}},"0.35.6":{"name":"@fluidframework/last-edited-experimental","version":"0.35.6","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.35.6","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"9153ad9500528b368a58a01f375960dc4f150244","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.35.6.tgz","fileCount":61,"integrity":"sha512-YA3u3hUpDR2CqVXkbSHPWUA6lmF8KDjKFbpysYHa/movDYx5Xj/eW2EvMaEMY1s8D7SKqM3zgqq1Z6m6KI4iug==","signatures":[{"sig":"MEYCIQCpp+RH05Ip9KweAgzR8+tbylt103zexM1gMqLziShhPQIhANtGh4F86R/42Fr/NHy18u8gMUpAN/m5eY862Q3prXVi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVP9qCRA9TVsSAnZWagAAl/UQAJ0e8T0ImA8dUX9hXnhE\niEqnCB99qk364jb0FJaKvyCM9UL8Sd74zXQVnghCoTfr/N1hzJo7Rcdl7BZS\npm7kEm9OmGGkNvOwqdSK+PPs4RphkSarmqoVDHMANPpzqAxex35+JtUaoWlb\n4zidFxpjyeBM+7KPFagd5oEpCGgHGoeqdQvz7v44whCSkFHy60jbLOF/t+k6\n7bYmAu7z76yVHPke93tGqEAecsdK1WHTg/5CRA1rNg3016OraeUr+AB3Q6de\nv87Geg02mJbuSl+WhtCN5pSRXVQq0cXWUJgl7HyJ8e5YwREueP59hEKycv5b\neh3kz58BPuuVas+iB9mRB/k1zXC6NTYNxBanYTfd/m6/8MJzwMn7Yk0yjRLc\nl6vHsR43xYTZw9FkPtt/A/rAZJTipnned+0EeSmWps1/RYtVeU24XKwuCbYi\n/gVkOTL54uN+Y+6/mizOsZlD/T1uUxWDPXAtUMkkq5KRt0l4S0eS4kIvpIoA\ntzXrifpfIbh97gwwbnuJeg38s4YLJ5Xc95Xsnn7xngs/FZlPofJfTF7imfT4\nU7WZMupU/LUEJeqaUD9eDUwqMeQ21RGtvGZxehcAycjb1K6KcybTIGhs8IA7\noFgpU9cDfWR7wVZqM6J+ICxBy9/YfxI3Krj06sinY5zSg5Cw8NYF5NXheguV\n6z5Y\r\n=0SkN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.35.6.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"^0.35.6","@fluidframework/runtime-utils":"^0.35.6","@fluidframework/core-interfaces":"^0.35.6","@fluidframework/container-runtime":"^0.35.6","@fluidframework/protocol-definitions":"^0.1019.0","@fluidframework/shared-summary-block":"^0.35.6","@fluidframework/container-runtime-definitions":"^0.35.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.35.6","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.35.6_1616183146462_0.8228359065387252","host":"s3://npm-registry-packages"}},"0.35.7-20343":{"name":"@fluidframework/last-edited-experimental","version":"0.35.7-20343","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.35.7-20343","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"0ae0c9619cae8cc1af7ca8df782d00e49cbc1162","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.35.7-20343.tgz","fileCount":61,"integrity":"sha512-xOXmv0aEFFTNcllrWJw9xaTlNHNhOuBQfgRRZo9mcL5ISwZ2kLahCDRtgWpqYIz0DOaal24pAP6mYAYPTI2JNQ==","signatures":[{"sig":"MEQCIE2qy8JFwKNV6Eb+hRFJkM9/f+44hfKQsPiTcLtK1a3yAiA0eZ/PdNIt7VUFIQY/VR+nk5V2+o/LwyLZUOED8ZFSMQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74197,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWU+ICRA9TVsSAnZWagAAnDQP/AnR4nWhXg82hB1HYXXz\nCqADss+zDiwc3/YAspjV0Bevml/pgRbhdCcPg1pKVVQBmmG2eSvz4Sv+/XT9\n1KJXcfhLH3AzUpeseT9yneBxF/fHTn5qGDyGFr10eCE6gO12q0eZ+dQoMKI9\nfGDRDRhZJ6vbvKmpZbGToU25iK9NatKtIJKh6uCdKqBFIPSpx4RwUYXQoc7d\n+R0Ux74LQM9FfJVJCONKMKWY6KrDEzHsqpxFi7uj7yhHQXnFw9CduEyC5tFc\nuPK8tiBeBAs1yGPk96UduezF+yqCbk2PkVq9OWARJcSjdYxK7mCjoCdtZhE5\nvxq6moRFn1wSTadUT+uv09REeRJprRjsaATpPyLjNKLIwtVeajwXkiLt+BFx\n2tbx6urtnc0hZbCwY7v6O0Ka3X0k7XaR+zAZPNA+gyT/croAirWeInnVAZcM\nJvGwNQoc9NcX9fGTqsj5RaK45VzTKa6oXAFY/RyO/lwNhl6BbOhxdR9mqAIs\nGgHVAxeNXyUl+xxqNkol/iCLANnlCpFV83j6QUnI17xNc/Dq3swJhklhjMwp\nJc8x7Ag8fWFxQEXTvSBfV2CmWvriAsj9ofS0Cp4Y4AvW8sk0a1cKc8vYJcMg\nNOSmcBiHkI297OBBaB4keBs80etwSOBM8KxJ5SLu/v15LTL7IGYVtcKl7xBl\nRZgQ\r\n=fbaH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.35.7-20343.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"0.35.7-20343","@fluidframework/runtime-utils":"0.35.7-20343","@fluidframework/core-interfaces":"0.35.7-20343","@fluidframework/container-runtime":"0.35.7-20343","@fluidframework/protocol-definitions":"^0.1019.0","@fluidframework/shared-summary-block":"0.35.7-20343","@fluidframework/container-runtime-definitions":"0.35.7-20343"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","mocha-junit-reporter":"^1.18.0","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.7.2","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"0.35.7-20343","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.35.7-20343_1616465799774_0.31049369274298666","host":"s3://npm-registry-packages"}},"0.36.2-20364":{"name":"@fluidframework/last-edited-experimental","version":"0.36.2-20364","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.36.2-20364","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"e799140fbe44a94b054a670f4098b136251edb22","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.36.2-20364.tgz","fileCount":61,"integrity":"sha512-PErahRNDJE1hIR+AcTSsuGHw+eAX72DNsST1BT+QpIVWWcw+R+TbEgLbrpDDjg1jYZUK2tgx3lHPhOF+stRzGQ==","signatures":[{"sig":"MEUCIQCQUpkfTgdgFWKi+i4ceoo/iqI0k+/F7XUhtDgBGy+9QwIgZWzqBcaKRjzCtIoAiSqtdbzfROwe0dYagdG8wcf/dtw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75977,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWjewCRA9TVsSAnZWagAAG9IP/ibUjJC8i9Qs0URnh1ig\njNuCLMc2nXkaUx9JIAOoIwGg4JErngawHxKqXgSUVWdGjdOVhnz1GEcBade0\nPiMz2QPOGwwHLDrbJ87vM5fk8ZLT0Gv5Kde3tPCzBjU6938/ftW8PrjkPUQT\nt4MhHdJclWy7AV/6ptx4QJwezfWPMmYD7/fYsxW2Sdzv+zJX5IC0JGzzoSnO\nksR6wNGvyas9TRJFRWk62uXPcWV4sL0swwRsNhAvyzxuTg2gTbRZ9jtHLpZT\nST9TJK8zxRGQDVu0qLEcrw7s0DuzmNf8ZDfUu0k73iw0mPZVKxrVqm8G2yXS\nBbv8M0Nd/VDcEbOHAoO2O7a6hN0oPflppY6SqTjNgiEWsPBBV1afyJkC7Lwv\nl15mK05dNFhntSPhkoMKfC84dn9848g8xna/88CwLvMVQACmKLpQ+iJjnxF0\nUsF7zIyWwQjsmxTpUAqd7VMpzRU207dLzC2TqhKJQLCVXMW9HZPgiMtEb/xq\n7SpXsmTh76g0M0ytWO6XuKwqzS2gPAKc+yz2GEqorrRHh6NqOrRwGMmCSbxP\n3fnH9FD1NreUjg5Dzzd503u2DlBL+sp/J8UGjC1gCFbGc0ktC2eOgbB68CL/\nUxUTEpowUAv9wW+7vDTG+vqX9NHIMm9zn8y4tzeWu1ryYSpWkQ67UNZkCCwn\ncAm0\r\n=sG55\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.36.2-20364.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"0.36.2-20364","@fluidframework/runtime-utils":"0.36.2-20364","@fluidframework/core-interfaces":"0.36.2-20364","@fluidframework/container-runtime":"0.36.2-20364","@fluidframework/protocol-definitions":"^0.1021.0","@fluidframework/shared-summary-block":"0.36.2-20364","@fluidframework/container-runtime-definitions":"0.36.2-20364"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"0.36.2-20364","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.36.2-20364_1616525232551_0.6287772399580109","host":"s3://npm-registry-packages"}},"0.37.0-20427":{"name":"@fluidframework/last-edited-experimental","version":"0.37.0-20427","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.37.0-20427","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"3851e906b1c0b425f47d9da2a1b9c9bf0dbbd26f","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.37.0-20427.tgz","fileCount":61,"integrity":"sha512-lV1mk+o5t01ThLe8NRricAjT6BkM6XSTENYmV8FcnU7FFuteKVm99aZOe1GCbIahb1bHRer1gWBQiXIUPuLyKQ==","signatures":[{"sig":"MEQCIGSHbtyv5U71rtkRIioqFztIWnWUxqaIURRuCuaCleCZAiB82hgjOcSR0HomxZciJWqqApE2NkcsaP68NldjXfWHCw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75145,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgW5oKCRA9TVsSAnZWagAA//cP/iwlG1u2p8QrRklNI6Ph\nFmvcBT8QVGoNuBlpqTYa6lnkUjQII8u/Q5neYZCKMPVKKoXW2AilsXfjdDuA\nI5iijP+OggD/V1jDYcDWLSr/vjWjoWCSYOe3STwaCXDzWla/VknrUg1i6XCk\nW+chnBLYte4KUmrTtylYM+oG4j7HdK01U7627FBGsfYGhWjqlm2/UqxgCTfC\nKmuwtiGPYYgZwEzXRhYDR9I5fUNX5W5p7MQ2hXkYS73ez7Jx+7alwx07ZGXi\nLAF/L8pw0otHtm7uol24lC5CNCJY61DU/fk6gn7w8qxTfeO7WIPfyTI4nO0O\nVnL991ngKypMytbxOEsebzKh9eM8S4PbUf47PhfRQypTSzzIIVdaJjz/AveV\nHi+PQxhasg5oL76fhKKa8Nz5NvrCVnCbPrX5M5PQyfXzJBFiDL4r1zApRynI\n9Cg/jQl3vX0VZSsJkhoXhj3sxAx6C7IZTwrjd71dno7uJfb3PbDq8Wu+zCHo\niOfFODZWQX43HpsS6B/nmRVUJ464INeNzZpcc4lvFMIcABzuWberjxfzG+CP\niDA1io0p5iVrL0720ReBhruCSIvf40tfZLHoiGyQybl21qg+zmp/H9LpOqCT\nq9ef21biEp9DMJUsAHwof8N2h29153CoQDiHmb5ZjwG1ZlXJabbB1Iokn7yu\nVhz7\r\n=TUSF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.37.0-20427.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"0.37.0-20427","@fluidframework/runtime-utils":"0.37.0-20427","@fluidframework/core-interfaces":"0.37.0-20427","@fluidframework/container-runtime":"0.37.0-20427","@fluidframework/common-definitions":"^0.19.1","@fluidframework/protocol-definitions":"^0.1022.0-0","@fluidframework/shared-summary-block":"0.37.0-20427","@fluidframework/container-runtime-definitions":"0.37.0-20427"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"0.37.0-20427","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.37.0-20427_1616615946430_0.0668662621959697","host":"s3://npm-registry-packages"}},"0.37.0-20517":{"name":"@fluidframework/last-edited-experimental","version":"0.37.0-20517","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.37.0-20517","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"f2abf416c3f4480379afe33589c59b36729e2e86","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.37.0-20517.tgz","fileCount":61,"integrity":"sha512-ivpA6oB5atBGPXOc3coxIVC3hITtruHXiqEbspfG0okVewJCpVvUkhN0GhUplg2az5hvsdhikhGMHXLE/E/qvw==","signatures":[{"sig":"MEQCIDlq2Vh407J45gR6HvCi9C0bNlSS1L3t75/fAmVTwj6xAiAHx0uOWKgfzFKncLKkVNzZly9Zz5oFhjlkkgexNTg1/Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75145,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgXPh0CRA9TVsSAnZWagAAOgYP/0OYBL32i7avVncTDsjW\ndtOSyCDIHLJyv+QBGXGqLudkeTJa0Qt08F399XoNFS8opU1bozRWk2szQcgK\n23EEO4QxSPVkmrt60G562r4w6xR7GTZoGJTwEUnAiVxAnReY6TYH/98G3QMA\n9AThGt/5kLFSx6h0GGDJLHVzP1+5Vt3MRqutoABqjbrVSAe6g/RuhdCqSb/U\nb2rmepm9DowMFaodQ/LyrMygmaw2TEMKsIT0QqIjdaBzZtSX+dxm2QdsXnd8\nRKCrrMnVQpU2YvACdmFkkvISwMu7wWd3YwfAai9GGmAGmh9XlrWy0Za8itGg\n4GQq9MUpynECkuqkhTS0O4LR5XRzL5L0qJnv1bDhrUQ0dQ3LkfL53dyKWZLe\nq96xlA1og/hHGvjxLNdsmCCykbwd4KqqYeTdle4zQ7KHbKePv43x1br2IJGX\nwrrwHak8nQqn5aCKvZqyQxjGoYnJ6HN3lYGc0cvVY0ja4tDRpg1W0EAvDX0u\nVDRNlStGQDBLn8shoMyuxBIhzZP/ql9jowkWjVUzy3uaGjCvSCZLQjI3CzwV\nve8GTSFJGR1XZAXOL5DE+PxM9uE358S4SJfLc0ha3TkxABRxDgiIKelAXJso\n79k42pvKOhmpCxBXuVl0nrCtzPZOQIBmJxCqK+RdIh3G84lQreOnmvdLHYdy\nmt8t\r\n=h2AN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.37.0-20517.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"0.37.0-20517","@fluidframework/runtime-utils":"0.37.0-20517","@fluidframework/core-interfaces":"0.37.0-20517","@fluidframework/container-runtime":"0.37.0-20517","@fluidframework/common-definitions":"^0.19.1","@fluidframework/protocol-definitions":"^0.1022.0-0","@fluidframework/shared-summary-block":"0.37.0-20517","@fluidframework/container-runtime-definitions":"0.37.0-20517"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"0.37.0-20517","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.37.0-20517_1616705651862_0.7097390023726471","host":"s3://npm-registry-packages"}},"0.37.0":{"name":"@fluidframework/last-edited-experimental","version":"0.37.0","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.37.0","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"2764b4cbbe7f218f057446e511764fabc7d8f9bf","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.37.0.tgz","fileCount":61,"integrity":"sha512-XOvttU3GwYPsO4zUQYARAYwPLo72khkBmS5NdXZiJhx9rgAY48boYrmowIM6AE2LZbzFEgKoJ0sEPpm6dAUozg==","signatures":[{"sig":"MEUCIQDwDcEnIbqHHoWs7X2W6gVmwWw9/8m00MnS/1T6HCOtZwIgZtKiy4+5onlXjTbm1OiPuVbXt/wqx718lydMbM46ujI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75056,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgXYdsCRA9TVsSAnZWagAAzdgP/3oSfnqvXl6KrXrC4M5D\ndRWqA9hNEWfgZ9/sqJzjhAWrnCpLiQromU+5OQZvS9SuqKZRV+VRVm3VHBMz\n/EFFzkVdkN8MtLvfs2VrYB8o7qrr3VTVbrm+Q9Hk7dLbV+l3TOKb78VH1cef\nSO0mLXGg0R9erMi1ibCxGAbtT+Hn5qAjHrcHC0VR4YYXVVPgpSXxDvrJVqLn\nYLUPPk9DJzD8xRijb/t4cJqWV/2wUHA1fRKxHmxs2FYW0PjQt5k367FqKrPA\nIwga4BI8tF95WjxIxPHPXs0ek5xf0CMezALzKifjyKzsMieukOG+Dt+QfgJg\nDnvXJSfOmmqm6ljfC7M4EVafnrOB8IK80AYSBzMpnEH/iYoEsbbKjkJpy/my\nfsFee8CGVE0t7EwHWjLl6bdGACljVsnEi6T12Gk9N+tYWJqbH2XSZOwAYBTE\ncp/dF9xyWc91cHWJWdKESsrkSkmA6YN+3RDfcuhU5iowOTGLlCjQop+1fMwn\nkOoy6xvHxvsm44UXg25puM6jKekk65asVyxRPOVCrn8H5KZI8S6ozWcL6uK4\nuzLqkkt0yDDN5/6uuptznFRbXvPLoD4DvzEQeDfFNSHIotPS+CoHpt3Bu3bS\nyaNpWDNp3D2chDLNaC+2axll0Wqi8qmtqCLfbieq+QadIJCYcvErLghaqaqg\na81p\r\n=Adye\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.37.0.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"^0.37.0","@fluidframework/runtime-utils":"^0.37.0","@fluidframework/core-interfaces":"^0.37.0","@fluidframework/container-runtime":"^0.37.0","@fluidframework/common-definitions":"^0.19.1","@fluidframework/protocol-definitions":"^0.1022.0","@fluidframework/shared-summary-block":"^0.37.0","@fluidframework/container-runtime-definitions":"^0.37.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.37.0","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.37.0_1616742252361_0.13840481725511666","host":"s3://npm-registry-packages"}},"0.37.1":{"name":"@fluidframework/last-edited-experimental","version":"0.37.1","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.37.1","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"ac799591cbd0128be9256b494a8947e0f73ca0ed","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.37.1.tgz","fileCount":61,"integrity":"sha512-xk94S5u6XcXMmW/jsLUN9pfIsso8FCG4GLodn0jSE3wTQf95/1yYvOlAm2yLTgm2WKt9yAV1bLtDstFKMF77RA==","signatures":[{"sig":"MEUCIQCOKnUft9Ly30fGfssmsJ5ScXC3yzDST0xJ3xCh4Vt+FAIgHoyYP3/5/ccWBjY0csGttBAAeyjRBxifKy53V8oQ2Fc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75056,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYiD0CRA9TVsSAnZWagAAfQkP/0qhn+y0vcbycSLbBv0M\nn9qcqNeyHMsg/+/5bAG28SzKLk996gMBX0Ayo7eEpPUvw2DrCqm74y+hnEP2\nFKqJEfHQhhxGGh7T7hOg9kx85c7hHewUnDE2Qym5Hr6yP4qu8rbRoRFiWait\nFE0MUGkmI79wYMs5/tERRKicwjEtIawY5dd3ZdKkB0WqmlR3CRneITGA9cNO\nEpv1vSw/RDsVULzLQWsBuF0AZN0Tg8L91HkNLUPt4ywlRXPXcD65U8VzYWRq\nIH+M7aDSqWhbXozHr/f5KRd/uaADcyYF7ev1WDC8gBEu5up7qfExoA63XN6C\nLtFJsxaxGakoaQ+YxTEZhaoe8CRxAM6Ol7wrwEkKi/N3Z8mxTBFGfh1Q1uki\nuZYkGwIrxdY+pfVTqgCLs71Gwf3WX2fJhaZxubwnaS7JAakdaO41QPzfUZMP\nsf2rEXmhjMu+E32w4FShknKvTUbsJJM3Z5k6kXKoo3d3QbV7XDXJEBO2vcHl\nisYlshQhY9FRXmTa1lL437qinVaEWC0l4m+kzDXChVHNTh79sbb/F0pFAyhN\nWmATEqtbTaJ641LMdUAdaEiNX1+khhNUev49BioKbsjsAwX/79cUizAGSdgm\nbhUqUmpzh4u0Ckh4s7ikeTsTJ5Om72FT383aD/wtO7rpCvJbGBo8SIcakrYv\nAsUc\r\n=7xfu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.37.1.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"^0.37.1","@fluidframework/runtime-utils":"^0.37.1","@fluidframework/core-interfaces":"^0.37.1","@fluidframework/container-runtime":"^0.37.1","@fluidframework/common-definitions":"^0.19.1","@fluidframework/protocol-definitions":"^0.1022.0","@fluidframework/shared-summary-block":"^0.37.1","@fluidframework/container-runtime-definitions":"^0.37.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.37.1","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.37.1_1617043699639_0.13561372338295663","host":"s3://npm-registry-packages"}},"0.37.2":{"name":"@fluidframework/last-edited-experimental","version":"0.37.2","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.37.2","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"1dfc0926c23cadb507a38779b82bb237f686d266","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.37.2.tgz","fileCount":61,"integrity":"sha512-rXTHdEp9CPpzcHhIccfAGmbqBPrfp+1Z6Vx0cJQX+T6CLFluJmujQPpzzuEBufdTA3A3Q6S8oUa10z52+afwAA==","signatures":[{"sig":"MEYCIQCvNeDdCncJNDu5zTPN3X3V8cQbzxA9LNUeOkTAEOOe0gIhALUhd5GXPFtTRAAxUifTAg/g7GeHhVUw9RrFoZDcJKer","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75056,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgYmXDCRA9TVsSAnZWagAA/3MP/1EuvSoCfz4vLdjORLXo\nWQx79fyFKZ1nUDQy++RDA1Tyxet98Sy+jU1CVmMAJcd6dhXNtXWo0xq44AB+\n27Z+1XjmBZd+wZ1R6bbQ3jCLHHN4Zte1+Znf10kly8/V2CX9wcHD4sfZvS8e\nnByS12RFxsnIGPtEFZygvik2IgdYBi8BQhyTPK01vHqhdqIMI9m0cxPLvqz2\nE8tFXBbaKn8TJfybtEON4IifZgVvCar94a4+fpgqbTVV/stvhgUlHNjLJSwP\njFgN+xtljvJqaxiGcvP30oEE0s6QI5Lwkv5j1nEXo11Z7teyF2bC/T0Pc+fL\nqaOz37EIQNakOIkqZSrDpLL6v4vpIYc4N6hO5Ds0s+2rGv7oqahRv+rB77mz\n02E86ygsSj7SDeThPO6RPRFei8xh7y+TsSYF6XMST/HcsY41SiFeObv1ekQC\nVuRnYcFe05T7J+ipYqeXlUWEu1uz6SG8ZOOrlZRnP6rEwPPhTXErvp5TJtia\n+6j58YSCdOYjjinONMMVEKG+s1YJXjj7rHu+LpgvILuF/Rz7eRyXTBrSlu13\noQlBSQo9n5HhR7zi7JK2IgzPixxZ1320gFyTkoFEtwQS8QCqcpWMadMMf5m3\nCV6qqhorfnIj0g8ss/dN7aS9hULTzbI4cDoqjFdUY1LmwoCZPZ9VMq3043yT\nN2E9\r\n=B1BR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.37.2.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.21.0","dependencies":{"@fluidframework/aqueduct":"^0.37.2","@fluidframework/runtime-utils":"^0.37.2","@fluidframework/core-interfaces":"^0.37.2","@fluidframework/container-runtime":"^0.37.2","@fluidframework/common-definitions":"^0.19.1","@fluidframework/protocol-definitions":"^0.1022.0","@fluidframework/shared-summary-block":"^0.37.2","@fluidframework/container-runtime-definitions":"^0.37.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.37.2","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.37.2_1617061315149_0.6840991808861165","host":"s3://npm-registry-packages"}},"0.37.3":{"name":"@fluidframework/last-edited-experimental","version":"0.37.3","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.37.3","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"a3ed83471bdee6f131d49dc67286dfbe505d76c9","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.37.3.tgz","fileCount":61,"integrity":"sha512-XJtohtnETVPr4JgGTdEiWviltfi6H0XOeYRLbgPxJx4hS1uUOsuxSEBB+CTswInC+tZBP9lyQikxWve3l8uDYg==","signatures":[{"sig":"MEUCIQDg/IgD5aBUQ1xYG+Ruo2kA/0XuzR9VDkvXC+mF4Sr5mAIgSL3DNFibXR7IMmMS6seUn9GghStYC2T1U+VCoPeGfok=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75056,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbKbYCRA9TVsSAnZWagAAKjsP/2OJ3BJihAQY9YgiAM/4\nD3bXAtDqooX3dle77XkDVZ1lV2pe4v4wAXL2Bt2mEWn7oalOCn4Unf34z0/d\n82sNTreWb0i8i/oBnwiJ8HZaiHyLYi7kQjXWY2MPunKkWC9sZECov1TYYA5c\nRLPlDPpJhQpxM/ItaoSKy+VYMzM09pIuebxf0cuB2kmiyU5Qb82n1cgdkdI9\nVcQaxA9dWGICr8Rryfr7R4N2cLtznfipBSJ8x6rNy1mjOs61dX32E+GFIMay\n+9QvxMvAhDubfIIj3+msXQXqM4p/UM7YNUq8sNehw1UCXs2UOnZeo6Y8ostB\nRODiw++uznRcSVX8twvv7rANhdavhEoXN1lkhvpteh3WdtHmea0I+tQxer1r\nY/2QlIg5GUhVgL9DJsgHjFezFzAqUu99PJWxzNBUG/ApMG6kGgpgfMPzDgBb\neI+XBEZBhuXCwHzxqT1GgxiDrX/feCO3Bs8JDPR564mRo46JSz4mKx4lfdLP\n0WrLkvp34jUMMm0eGpib2g66N1AX8z3EX1VLesI9bxnCv3p3vLzsGL43+U2d\nGSyOIYdPgbRMTQQvsDhWzJJnGJfomRalW67Szb3UrGnMzu4bSsBg0yW3r/6x\nnP2HAG2amWtDBKcI7aAo+s8S+40uTYe82RrJBv0htJpI/7NgezhZEAh+JGw4\nz08n\r\n=fuxp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.37.3.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.11","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.0","dependencies":{"@fluidframework/aqueduct":"^0.37.3","@fluidframework/runtime-utils":"^0.37.3","@fluidframework/core-interfaces":"^0.37.3","@fluidframework/container-runtime":"^0.37.3","@fluidframework/common-definitions":"^0.19.1","@fluidframework/protocol-definitions":"^0.1022.0","@fluidframework/shared-summary-block":"^0.37.3","@fluidframework/container-runtime-definitions":"^0.37.3"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.37.3","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.37.3_1617733335676_0.7673450688376722","host":"s3://npm-registry-packages"}},"0.37.3-21287":{"name":"@fluidframework/last-edited-experimental","version":"0.37.3-21287","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.37.3-21287","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"613c64dda1f84208daa8a35d63563e1315297cb9","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.37.3-21287.tgz","fileCount":61,"integrity":"sha512-gw4WvQhWQQ+JKy9gqjbhlyHa3ayt4DW6C4YjTD1/1esexugjwI+uHEzSVDl55SVPCzHsmN/DZt02Rp2tY2dwoQ==","signatures":[{"sig":"MEQCIGnsPSxkPpsc4JPIw7jqfeR1lca4v1n0HrN1N6jBVrwGAiAEcxeRs8csfx55a2Zo1Ot/DPz7k14qHd/0Ex91NIStVw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75143,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbiw9CRA9TVsSAnZWagAATyAQAJrRt3RMQZzPINu9CWB7\nMod/SVBabC2/4AlwauIZSERqAvFyxTepYsoBn/pGMxYIzE/OlxgcnD0V+6Wj\noQprz+mbqpGzZOjZuql+94yy9s9yrUpyKMtwu60j0LTyM7c9XoONaU/HvlZf\n1llV0isNvmJZ8KL3/170AMOBQSxNazy/3VUMAemKT35dSVVrU+ihtaLrJVuF\nFkyXJuel8mbDef1ll6PR3L32Cvflo7eFl7XSUWBVTKgU5os43joDrzRRxQbE\n+wHTYSuZoCHrMlieiSrHSdqpGDwKEXR/awWEOyb7g63dCemWiS7mZvtWCRVz\nnr39VN+vFGrvMjowNIiqj4hxcVgei3eK9x4mtWR0AzoRhEQDTQlqYNCj3G7f\nNEaGfFAAWetq3s11zD5+J/Kbu0hAGSdf4ZVLKhd/PpAZx05nrlGJN47DGgQY\nFr7JnHRtdLAlw435Qq0FUvSVEkVkMZOFhvlJRBPnI33qWXqP4CBczdoSSlCs\nOUfieVNga6LNJLEMK1UYKldraixXZMdZi36NWpkMHG8SBO5L7xmuRa8/nntj\nDideTypsBpqOGDKkxVNWY5asrukvQrEoC5UbwwvpmX43lrG3VSy4IVDhjzF4\n4TFxWmT1yS06xKnxrV2Jeim8/GnBqTyn+CPhiEpgeM4mavXIZrMysyL2nmOe\n/QZY\r\n=/NDc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.37.3-21287.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"0.37.3-21287","@fluidframework/runtime-utils":"0.37.3-21287","@fluidframework/core-interfaces":"0.37.3-21287","@fluidframework/container-runtime":"0.37.3-21287","@fluidframework/common-definitions":"^0.19.1","@fluidframework/protocol-definitions":"^0.1022.0","@fluidframework/shared-summary-block":"0.37.3-21287","@fluidframework/container-runtime-definitions":"0.37.3-21287"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"0.37.3-21287","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.37.3-21287_1617833020892_0.9038294990892164","host":"s3://npm-registry-packages"}},"0.37.4":{"name":"@fluidframework/last-edited-experimental","version":"0.37.4","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.37.4","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"371838eb21d7af067a1874762fd30879ba59d1ab","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.37.4.tgz","fileCount":61,"integrity":"sha512-pLLjlGRRFinX6KkYGzSbYW5ElrZOpx2uPLN4lBYDydlCeTR0H6rHj1eCiQN5kM/msl1HsrVrKWhHNzQ4kk1nbg==","signatures":[{"sig":"MEQCIAzqxCXju4f+tx//CtEx0w7jhGyNrD2atuyZhvFYw5JEAiAiDD4FtH0UFjRCgwTsNBAAfaBsQmbcxIT2WA7jnB/2ww==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75056,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgb2yaCRA9TVsSAnZWagAAw8gP+waGZBWBvBAjV1LuItnJ\n2cTZ2SCIggLh/LzxS3e0hNKDGmIYMRmnaF7Sr2NzCCunB9pFx/tphC7DnyOl\nKDQdoPdOJ+n5eC2Jgy5FU5Q0LHD4l0ipbjduh/08NfxewOzcOTxgscKbUFbf\nboO/Nb+kcvGmXMY/bBUQioDK1l8qnvllqHFtbq1V1YWtgOyEudxQzsSZGzSG\nM1dTwSTWaWCdVSTLTdXVGsXUnrOPVb/PAh9m+dy9mVHoJ/JKtrjXPr1tXuAz\nkcpz1/tgqa9TWFI5UuaRMFM65vzc35zUPk92j0gtrJ9a7OqSJyiyujb+mDpH\n5lQaTtlDxYxwd4CAnrWpt1vjmQ6jrrnqxc7l76dtdNEMN6DpW08/1OER2WbT\neqmYwyob5l3AHp26RcaN1RLlH5HwGEgTt3o5svvgYNzYkGwiZ79nIuumc6Rk\njVe96skBeVr7fnnGLkAn9RtiyBr2Rw7FtTm/w52bFlPDWBXtSsFbJZVIk71p\ns4RNk928pBNtktZqXCSnCwUNgdG8r83vcpmRwko9SzooBbXgC5k4HduN4pDx\n9yeKoCajrmkiTp5av3iR5aazHZxD3vDl7ll4OwxkUxFbLgj+4SMg58LOBprG\nBvXckTNEmcvsnQMuA7Wke42/FhBX1569zeUoBVBhSZnzzoEKhNyRCsSld8oK\nVsPP\r\n=0CZx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.37.4.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"^0.37.4","@fluidframework/runtime-utils":"^0.37.4","@fluidframework/core-interfaces":"^0.37.4","@fluidframework/container-runtime":"^0.37.4","@fluidframework/common-definitions":"^0.19.1","@fluidframework/protocol-definitions":"^0.1022.0","@fluidframework/shared-summary-block":"^0.37.4","@fluidframework/container-runtime-definitions":"^0.37.4"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^10.17.24","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.20.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.37.4","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.37.4_1617915034136_0.26852864524099895","host":"s3://npm-registry-packages"}},"0.38.0-21934":{"name":"@fluidframework/last-edited-experimental","version":"0.38.0-21934","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.38.0-21934","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"6edb1e9a61cf8dec119b96167ceec24c96a20108","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.38.0-21934.tgz","fileCount":61,"integrity":"sha512-jpPBcLcRNrGIpIdeRqCD93owWu8T4Xa82GxeneND1EpoL4OmGLYqAWc2nunt/QLgo1uCLy3U9ypMyHdlo4Wq/A==","signatures":[{"sig":"MEUCIFsLdb4CnO36l1DDJfcD2j/tt64TOIGCWUHfE08DQ46tAiEAtiOYvmrIQ7ZjO7ZDv72kODugduDV363uw+ZyCKkgjeM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75146,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdzOiCRA9TVsSAnZWagAAylkP/2tAD0sylPMHZgOJMPWo\nLHgg+ki3d+Wv7NWh+ux25mC9AsodyQb1cV/i4ko7u9TVwRW3HLO/zJo6T+sN\nSFwcaQzIeTuYziaFxrgjYfHLA4Lw52m/ffJLEWF4vB+Lx7GUth2/or9CkHqm\nXbqF8UrsD1V/UcxAyOi6YejlHTBuUibW0u61/asEuGQ6sOVAuulN0GMHGYue\nUMMjrtgnXKSdLOV7bnV/7J8zCEBG4CKJHynCdGtdQvLuuhTCi8WKiw8ztzmC\neyHNiENFU6GTidjqBA30SFGg2+36YmeZkI5ZOwlO+oW3tH6c7TDdL78czjeD\nMjTfALTs9UazuvJgT1ixqCjL7LAoSItqOdOB9Zo/jtCBPZXOCCwcV7dbySnf\n9LH0pdN/EdqQTHETGqsk6GYAFD+jECICtLjsKvpwnln9pCRrvYz6FGItMCya\n/mxQxysvqDuRGuv10xY85RAjZgxlG79keZdnI6jnMbMT9yXapNUPDaFMDhzh\nzJONSvoxhu8nARkpC3KsLfxkj0xEh50s5dx2To2D0CQbP/YdJxZUdk4ThRt4\n3lC0qZaQUYoHBgQYMi98y2zBOym82m5mLZSFgVOld3Q8pbVW0gsVMg+EQdBz\n9ONbFThO5h/3PPqL73s34AzFOxoRtsl+I2jNBiVdyYnFWwrCcD97Q2sQv6z/\nsw50\r\n=BdsX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.38.0-21934.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"0.38.0-21934","@fluidframework/runtime-utils":"0.38.0-21934","@fluidframework/core-interfaces":"0.38.0-21934","@fluidframework/container-runtime":"0.38.0-21934","@fluidframework/common-definitions":"^0.19.1","@fluidframework/protocol-definitions":"^0.1022.0-0","@fluidframework/shared-summary-block":"0.38.0-21934","@fluidframework/container-runtime-definitions":"0.38.0-21934"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.21.0-0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"0.38.0-21934","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.38.0-21934_1618424737565_0.2636894150597935","host":"s3://npm-registry-packages"}},"0.38.0-22000":{"name":"@fluidframework/last-edited-experimental","version":"0.38.0-22000","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.38.0-22000","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"bfeee9949e5110fe44e90f93781512a9dcbc2bf6","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.38.0-22000.tgz","fileCount":61,"integrity":"sha512-YSKbz39BS8qqoljTl61jsV65IuGp59V20DlrsxmwUomlAvL8Ov7/eqWXhNVGZ9PJYXA1HURgfR1VCpond3shlg==","signatures":[{"sig":"MEUCIHTY6vHmF40PMlOsRkyzgC+DCFEuGwrP95fNtkwgQE3tAiEAvF162/xto4ESKtn6lH+0lCbR5EFMKtXKU0PXmymK8ho=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75146,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgd4g7CRA9TVsSAnZWagAA2DgP/AnhgIJCJ6BPMtUULBgl\nJLrAls8k+THPldIUqQsOZOyZ+tqOdqDf3uS5vR/5avndKN7Od8pH6/dSlIVL\nRJS+ahI9MmBqvFaLFC+jifBoRphLi5eV3kAuZqpHmj0Ah34FfIY2ZpDCrr+5\nxJrYIezFKIlbrfuNHLXuczcFVgmjhuNF4lTtYtIh47tDDCqkZwyuXLaagL0b\nJ9RVZRFAfLOhc8v7UNscJ5FkgQGX4u5Vd0cfG5jXvC0CGHFIOyDFVEcFNiWV\n55MTjAIErAs8x7cfwmLDuBg/ytsS2IsLHAvstjU38pSNM073/pxqHVQoVLSL\nRIPEafkgoIPnZnm445+nEB6sniyPQxIIrtVVKOA2Iv8KOS6G1j9CA7vjTnTl\niqfylvltyh2btxulMVklLfIKoeP4XtWoSxqqyzcoNNC9s/jAJNEu1qG7yZr8\nBQdT4PTRNvRWlmiY0w1Y1rQQm7QdnAQe4JjqbwOVYQEBzyd7B2ttynKIRCh1\n+rEYsqWLO4Y4hAtkdOC70ExOtn0sEJX8W5uYJJToPoNzYjhcdgVHS6AnAZbd\nQG59FaZzSvpsHD66i0PH4o7Caa6QGtIslSTk6vaf1KMulhFK0H04k3TeN+pf\nq6mBpOBfAtEtc+QNGE54gsSohRp404cCZ+blll7Pr47wrBfnj0ACzcOh44GM\n+d5f\r\n=D6Ej\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.38.0-22000.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"0.38.0-22000","@fluidframework/runtime-utils":"0.38.0-22000","@fluidframework/core-interfaces":"0.38.0-22000","@fluidframework/container-runtime":"0.38.0-22000","@fluidframework/common-definitions":"^0.19.1","@fluidframework/protocol-definitions":"^0.1022.0-0","@fluidframework/shared-summary-block":"0.38.0-22000","@fluidframework/container-runtime-definitions":"0.38.0-22000"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.21.0-0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"0.38.0-22000","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.38.0-22000_1618446394830_0.8970919460641422","host":"s3://npm-registry-packages"}},"0.38.0-22040":{"name":"@fluidframework/last-edited-experimental","version":"0.38.0-22040","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.38.0-22040","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"00d8c0d3b46f6f1051176aa33501b26c201084ed","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.38.0-22040.tgz","fileCount":61,"integrity":"sha512-UmmligNAVafovZHQB/Y1QbQGnJqIgHJGyIfIvXxBOabsk+S2UwPElAsKhHGfQncluJAQ3MrqAKiwzHdjra3CYA==","signatures":[{"sig":"MEUCIEh7W+aEmlSm33uEP4MBcbQDY4XNyF+24vrIEqBUEz/+AiEAzgd/y6OJT82IyZxrG7uVZwWW3FrvtEV6HCqNO3tpZKA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75146,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeHCwCRA9TVsSAnZWagAANZsP/iMIGXTOEiDMiVPSa65s\nnykiB0gckyJ9PIdyxHkKsc0f/XZS7BhnG6m6SDW38V6I5CKYEgrJmUCqfSPb\nCG/aDHM221qV9aSEI4aTseMJGaJh24UlZKyttCGeHtxOctdWoM5+3+XrZrFL\nH26j5H4rbb8053HJhtX10m5o4JUbFmsvgo1eWpFHYmT5l25lwubiyqE28XXH\nkq0cIG7mrnZylZnldsyezQfYT5NHsypYW/+/DnqtCYzbZKBMWAZ00fejw4Dw\n+If8DBdVQBntZl0pVvMovhpSnq07Rn84GO8PFBiwC2cE6y7/A1joQrggx8iU\nSRIcWFgrfB5CEdyi/EbK9gN8T+fdPBWKHmT3+11rOpoOu30z9reZ3szk8VBK\nBDQTzlqVdmAdmM6ix8jHXX/pt1BtldzD3H9XgJNiPCA7A4Gd6Ye7f+OqXhbb\nqitaERAU2nbVIAdUw1shRtnpwy+M5Z+9UpL54k+e7P1hCu/M9DOihEp0A9ig\ni8FV1i4spo3g7CwXbeWU3mgUfeVNr3hyV4VQo+Ua1Oz7xABIEWY6/jjZCcie\n0ofJuLAQESZrKhDaKFhra7ecElvgs3JAjB+ItSiyWilS5bn/K0sqYqd1vrBY\nGlvJf5aSMq3ecZR6JfDvRYG2tXbu0k6c1OZt/9wBNZTikJ1pb23xhemeJazl\nNiNk\r\n=Jlhe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.38.0-22040.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"0.38.0-22040","@fluidframework/runtime-utils":"0.38.0-22040","@fluidframework/core-interfaces":"0.38.0-22040","@fluidframework/container-runtime":"0.38.0-22040","@fluidframework/common-definitions":"^0.19.1","@fluidframework/protocol-definitions":"^0.1022.0-0","@fluidframework/shared-summary-block":"0.38.0-22040","@fluidframework/container-runtime-definitions":"0.38.0-22040"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.21.0-0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"0.38.0-22040","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.38.0-22040_1618505903728_0.22472192937641577","host":"s3://npm-registry-packages"}},"0.38.0":{"name":"@fluidframework/last-edited-experimental","version":"0.38.0","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.38.0","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"bb3bcfddb0de8839e11452eff75a4386acdabe61","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.38.0.tgz","fileCount":61,"integrity":"sha512-xoQjDM6FQjMkFCOm80WhKdz/CJQieA+8ctx82/a1MD/IBalY5lhZzcc3IP4lk+e2T3yymSARUWDe65CowrTTVA==","signatures":[{"sig":"MEYCIQC1EDKFFGbhZlJWjlGAcqd0qhNc4uRVg4iitqv3/9VucwIhALjDvIFpqtklImZyCT0nlDOEOxtpZcQo/a2wDkaNDU9q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75055,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeNCACRA9TVsSAnZWagAAuPwP/i7WHLLVQdTfzjY2jI7L\nS7Go0K8J4GIagzSeLThM4hmV1GaX0O9x0ryglcdec9DoFDWxi69yTltr7a9x\nYLgA7vCd6aOx5I/yI/EQYdn7zjKOFMGYvDGSTeZUh3RbiFl1JFOBTvTKiRIn\n/i/iU9JF+Uw9l4nQlWL35XzOSZ1WTTwOt1s6miEgkiuBwP6U+dvwVC/wsWLN\nqll/0dwUhGjCGIMBvu24j9Pki2iDLXyr+FdK5c5H63KNPw/VDSQl7I03K/wS\ncs/FDB9Np71O8uL7/EDVNCIpzNeIwhP+MvDKXxocI/FAOv4zAQTTOh+PNIul\nktwb1ZryWz5UBU4il7KskSeBLmon2Q62coqzBZ/WHeA03p68X+CU3nNHyEKJ\nJ64PNEQI1wli9Y9FGU9U8CMXgn4yM3x/Lk6HmKGNvmWBXt2Btpm8sVAk2CRh\nFlaIysvZMaKXt2VWBfvtb9Vnpy8oe/qZt6I5N0lA+Q9Rqlv/qY2h4KaXrEEA\nshL4t1GR5G433WJYg5mY6uwdbYOp6OlfMzrhDRBSDBFcD8iTCuJvJ79keHWe\nWdrbdPVFXV6X3uRPOy9qI7tqrXaGCvzfg25Qnl/Pr829eI3dT/BDSlvqRxo/\nbMZdqREpqb53/l/Xpp5DovKPmiSRSYY+/1cqCg/BZpDHyVDYJ9TxkHpIT530\nZbrY\r\n=tIgu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.38.0.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"^0.38.0","@fluidframework/runtime-utils":"^0.38.0","@fluidframework/core-interfaces":"^0.38.0","@fluidframework/container-runtime":"^0.38.0","@fluidframework/common-definitions":"^0.19.1","@fluidframework/protocol-definitions":"^0.1022.0","@fluidframework/shared-summary-block":"^0.38.0","@fluidframework/container-runtime-definitions":"^0.38.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.21.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.38.0","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.38.0_1618530431989_0.49637929316739093","host":"s3://npm-registry-packages"}},"0.38.1":{"name":"@fluidframework/last-edited-experimental","version":"0.38.1","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.38.1","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"b8a6cca606f37488db26808eeceff6bcc26ab05d","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.38.1.tgz","fileCount":61,"integrity":"sha512-g56q308t47bWACp1cpEKDz/GHr7uvNDySZUcMHLIOy5M7sOIOlaHK4GFUpEKbg07EzC0+dmvMamWSXIxqEFEcQ==","signatures":[{"sig":"MEYCIQCXcrDs7TBB6ZMq0UWvSQOMk6Ys1cZ+n2e0wp2DMoJJdAIhAOj87BJF+FItDD0Trzyz2od8y7senYA3g+G86B9Z69a0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75055,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgf2/6CRA9TVsSAnZWagAAy6QP/1Fak9cxh2y3A7B+oP7t\nsyM8OPFIwirjBLqxFG3R67/Oft9/IFxQYwMgtLNmCNi6QPXTIbrrzMrBoC7Y\nnZsWmpuyut+WKlJh49LywWKQvkPyH8rkfYGXY8Y0/HjZAyjJasoxM3IJCNFN\nDwuha3KZVbfsATsHENSEQFd1LNhV3Kx07AeFAHS6Mi4PJYE1o93SerHNXHbg\ncns0mk6rrk1lDHK/yc4fD7GyvWWN2/NaZzsvWeWqDTiBb5KLfYIpGmEnL/rg\nC4DpPgWSaWnsQ77QSLr0rtHwOMp6UP+hj/fiCucinKXmW2NqH++9uUIDt2Ka\nbdyt+/lHELMMH/8cI27WcJZRj7kBQT7T9R3NxRIvnm5B8kApQuVBJ5nrtlpt\nO0Ms4w7IMDSIWNT1jBNGpZW29FPcnRelTvLzZYjMWHLLJa1fLTBFRaOj7I4H\nZoIh7RaiinxB0XIGENB25pV6CcN0yreePbEpJH9KBMZz2TJBlrgH+pN94kGU\nqcXi+PyLkw3k6DVhaAD0VIOFvFoUZJ36efyb/iRTA41UFezj2a3V2HlB+zk/\n/EmCYKrss0zsEdCoMGyQ2sUaHG7ntWANr40/SajyHQ1faMN/qREfhf23kcbO\nYQ+wqhF0T0sXxVkqynejAPuRDNyquIBisJxcHh95yTxHsIUHoqUxNA15hXQA\nAt2W\r\n=dxE1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.38.1.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"^0.38.1","@fluidframework/runtime-utils":"^0.38.1","@fluidframework/core-interfaces":"^0.38.1","@fluidframework/container-runtime":"^0.38.1","@fluidframework/common-definitions":"^0.19.1","@fluidframework/protocol-definitions":"^0.1022.0","@fluidframework/shared-summary-block":"^0.38.1","@fluidframework/container-runtime-definitions":"^0.38.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.21.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.38.1","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.38.1_1618964473685_0.6762263480699497","host":"s3://npm-registry-packages"}},"0.38.2":{"name":"@fluidframework/last-edited-experimental","version":"0.38.2","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.38.2","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"88ef50ef4933e9de6ffdd09b168fd5cee8f3c6bd","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.38.2.tgz","fileCount":61,"integrity":"sha512-X2XLaqiS6WjUatBpBMm89c1m789HQHjMapBYgyuFFKIjSqbSl+dtbQHnryP18oRbxPCp+qTst0J2nMtN9mbGMg==","signatures":[{"sig":"MEQCIAyraPG/KjrT1KqxCKBDrNw3fg+/55A9MklBwi/HZkaaAiBpoEqmkowGfXkHnIprtoFvjArvaUl0ZO1p+deLjLyCkQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75055,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggJ/wCRA9TVsSAnZWagAAkjwP/RxS/lDgJ2p3kA5sffE9\nnWzt0beIoWF68NEutHmT/K3oOjXbYUAq/47ZuEhH/+iB2VaNvNn82SQXrtQq\n8Gq+d+iq3XQGHHRG27VKdnYNhvGQ1QwuQHu64fmb0DEnFaKmfCDZDSR17zA3\nz2NGTY7V1faF1EHLbiTZr6BpPIa8+wJSVXSmNgivrfy84g7GSd77Ot60cObn\n1wekqYn5tZ1yCG2/v1cYrMuD/r516pd+QZIeiBCijFw5295f4DPdXQcv/y2W\n1yrZD53TUCMf78cdI6ccYj5o4Ph5hSx52TdOvPLbAUpAxsUTGga3AOFHmsLy\nqpCRqvleBUa8yYGf9bCJo1QTTvsZ2UzYS7mfDBqNlSZoxI5V7Sq4t5efdsIR\nzntDFQ6Fkq6NRs8N3LuQ+h7J0wLPqgN7dpBYs4csCabRgAKedzorzgS8IE4/\nlEYjbfonTGzg+PfEm3zpHwoCFD5/NkXU5pzhaYGPyuQ3JomUWXczQv1HTbnU\nlvAgMH2cE7xrrOZfJnG03V2dJj/11eUOryKvTSdHRbn2ofc4xyfPeazer2iz\nGS87DIXzWBmnzNtW/4IIAZ7CNRzgpIVKHkXa+mk1rZ4RCFdE5GlGxTlCUsO1\nKn3oUbuZGxXBtkHP7TyxJwGFi5hb0QrACTXdwD+VYjE1f/SV3hipRJYj0Uk5\nfoYT\r\n=lerQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.38.2.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"^0.38.2","@fluidframework/runtime-utils":"^0.38.2","@fluidframework/core-interfaces":"^0.38.2","@fluidframework/container-runtime":"^0.38.2","@fluidframework/common-definitions":"^0.19.1","@fluidframework/protocol-definitions":"^0.1022.0","@fluidframework/shared-summary-block":"^0.38.2","@fluidframework/container-runtime-definitions":"^0.38.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.21.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.38.2","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.38.2_1619042288272_0.593715502995529","host":"s3://npm-registry-packages"}},"0.38.3":{"name":"@fluidframework/last-edited-experimental","version":"0.38.3","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.38.3","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"34533e26654cc4f614925a6040a1cb04629c8586","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.38.3.tgz","fileCount":61,"integrity":"sha512-vT6PWYq5ss4QHbLygIre9kXb1GSIkvTu5w6Oa6ipC3uNfUSIG3xrInrl6TTpybU4B8YHEO5stvDJy3R2eA1qdw==","signatures":[{"sig":"MEQCIEXsNBmnw8HljN4r8rqkSySpjSe2OkcLsZgMkiIW8Lo8AiAa6ctR4tWX88XZMz3F5VbSv7Bf6YImxuk5zc0xpfqGuw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75055,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggxq8CRA9TVsSAnZWagAAwTEP/AoNV68jVWxVuFdz9fZX\nR6TZ9ZntxO63JVYEkiGmod9T0J21fpLSMrVOUTIE5MSW7XKD4wXaIqOnJ7rI\nXBVyjTOZrtDfwRwwtCgaS5HWObvYFatVfCM5142izzxptliSaCr4Wdjn9Xvy\n7DFEIKYKXoMdYtd5V1d+3Y9396Dla04Ykcu7royT3Ybk8jC8hsjy0+mgPwv+\n39eWwyka89T4RKLoeGDXhkDLlwrWWEVqGhcpBUvAEhCNKGwHef53il4nDhAs\nzb8m3Jq1QYPk9DsG06zUwIanStXS/CqMdwEbZvi0e5IJ+NBaYDJqB5uvOqpI\nevoXAn52Mqjse7rIkGgTNzLY48jUp7I5GLBld3RM5qM6hM97Ic/oQzCGBY/Q\nO1xLJkO/t42R8p+X/VVnSDPlTV+W5PUX6H95O/cmW7uTSHMBTMIcoZUOGQF9\ncCQLLskLqIftPCwuLa0ofG2ME4s4Vsyno7DmpQ7fqCV8g1nAwJGSxzvEUc4I\niPxn7OVdQl7FG549oAfS1jsEe6VInIdwqfGKbKQ659HoOiX5ZXN7gvWl23dX\nyKsy7V3I4LyQZ0bchCZgUgX93403Pm1V8I+m2/BgGoNiBM/dBLZnHaD6Gd7q\n3XUu69doOhoGTuG4PGrVZPs0mzGzN4utHwaE41VVjDnmpMaElZhH9tFxQ0rv\nWWWR\r\n=u+SO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.38.3.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"^0.38.3","@fluidframework/runtime-utils":"^0.38.3","@fluidframework/core-interfaces":"^0.38.3","@fluidframework/container-runtime":"^0.38.3","@fluidframework/common-definitions":"^0.19.1","@fluidframework/protocol-definitions":"^0.1022.0","@fluidframework/shared-summary-block":"^0.38.3","@fluidframework/container-runtime-definitions":"^0.38.3"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.21.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.38.3","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.38.3_1619204795960_0.198325773141659","host":"s3://npm-registry-packages"}},"0.38.4":{"name":"@fluidframework/last-edited-experimental","version":"0.38.4","author":{"name":"Microsoft"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.38.4","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"2813e5a37b481542a0499e292f562eb4cf29bf0a","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.38.4.tgz","fileCount":61,"integrity":"sha512-KIT6CfkhEwE5lVXkguPbqC80NQCG/MqabhrULAPtYIFLh8Vls1AJdvJk6CSdC4Ye3IYqZ/fz//kds9G7/kvVSw==","signatures":[{"sig":"MEQCIHNzLxQDnYkd6BPz5qJ5xgCwrQZMWAEGtALMk/ZffadkAiB2x4hj9AarKC8/d9K71al8O55Dvru9hdnVjwppQsGPHA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75055,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgg1VSCRA9TVsSAnZWagAAK98P/jO07dOS5Iuzr615QmJP\nt8u+YS/jxAAXuF83BVj+9jApQ5L3qTbFNmMlwvRfQDnDQJkVCIzzkSDojmND\ni3Y823/2CAYrCxQ8Y86lBblfC9fSUqbExfWF0U/xWYN0vdl3A6uavJpIaNuF\nGg9Hl0Z/PpzF7UJQZPmtBkqlmPXQ7vsOEaIwgTEGU4zsmkMa71PxzijI0SkL\nnBoSuBFU1HLPY0PUL2rZ9k6JS0FGbtbQnabYvTAV9r/Yay1yKMHdPpbTCSrG\nPF47XAsckbhUagA6JGxyhqlrA/YUjk+F1pNDdtAXyZTlaB1ukOOsbB4EV76F\ncb4Q2cOV7P//V2iOQM+yLmetM1B5qO2NDmAbL0KckXXzyD5t/otySOFDdU94\nNqEmXkR8qXYMGZKL/cYwkLNa6IqdRh7Qrd3Lkz3yORL+znaX/0uMdJ+wOHhm\nIrpc6y2fdCAjv/kdDVABGkCdXjxom+a6EHw8BI6GOJ7yIdXHF/C28pMZTq8w\nfMjwI0BqehETgVbfFjFxRvCSobRC+klhvrHmKus/1LfI1i1unWUkn1j9jnZE\noZTdPnEDKlkkFR6FVl51QqAgvDfMk+7kJqfhl3+eSkLfH/RIRz28jawFEh56\nmjqwxQ/vHWQgNPp3CVvxj6d4D8v9Fk2DaItokoynpqkbFe2ZgbswND6uXJ5z\n7wto\r\n=SZLy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.38.4.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"^0.38.4","@fluidframework/runtime-utils":"^0.38.4","@fluidframework/core-interfaces":"^0.38.4","@fluidframework/container-runtime":"^0.38.4","@fluidframework/common-definitions":"^0.19.1","@fluidframework/protocol-definitions":"^0.1022.0","@fluidframework/shared-summary-block":"^0.38.4","@fluidframework/container-runtime-definitions":"^0.38.4"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.21.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.38.4","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.38.4_1619219793952_0.447842918055227","host":"s3://npm-registry-packages"}},"0.39.0-23254":{"name":"@fluidframework/last-edited-experimental","version":"0.39.0-23254","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.39.0-23254","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"3ca78605a98c18b353d29187a51aaa3aa321beb0","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.39.0-23254.tgz","fileCount":61,"integrity":"sha512-AE/f6BGvv6IOygaVJAGm0GXwfXA1AKESd52rMhgpDRPDwgN3wcihSH1GT8mh66TbujbA4JzDWzh+4ctUi2WPow==","signatures":[{"sig":"MEQCICBfvJPt9VO1Ey5iwvuXK9ma+iX7ZkEYIxx2e9RJhDOUAiBrM/op4LCtbn+g+LyogeJwRs47q7s2oFOf12n6ygDQ0Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75913,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiEaTCRA9TVsSAnZWagAALlAP/i8jLObJmh3tFEMIFUis\nXFw6ub7cEp2phT2ekOA4ONhGYCOtTLj3e4RnvAduo4p1Bj2vhxgQUOFvQE/B\nwRAELmakaP8IcTU6eN5rQrqxx9Ce6URNeNJMWDOz9mNBC8aokIFxGZdmMBoX\n3WjaQ7iVqm4PSWajIi6V3rWZYYZynI0ViRN0nxGr7NGHXHbqSLTBXxUJ2TKq\nPmgP1IibCVvdqfuj5F0eFdVNUf1smv8I+tpokRqBxH2AwCOFjGGvF8uT5DES\nnF/4XklFdcTgnowKvQqKHMCkksB5E3wBonZO/fOtCwYi5YsDv6hqNHkB7xwi\nlV6Dvtez+N/h8qBgl+47r4Cyu2ldFWwHINMqCFviMUXtFoJYVPuprk8qmG40\nQDMRhSFEexKBzZFlj/X9p1dW7Pgm3qnzLoJ3+8fmj0PNI3TWqFPRHrb7URn1\nbbTx+Xprx1jq8/ado0kaQ/gIi5y0IodWD1/neRO3zPnWPv4F4KacarkUkmuq\nsB+tiB0igxfdP3WFRjH055O8GaGcsvTfyBwQbcsrV2xwj5Pbs2Kru/OPxZ/O\nyM6h1m+UpulrcocZAKQOEbu5tdht0xqzngr0s2nAzopuTsLsfC01NgveDp+E\nT1ClE/6iDqeRuKbADAYwtdxICVxvHFqJvUtTvaeMXD6501byy9A/XMnhDLct\nVpGW\r\n=fNww\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.39.0-23254.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"0.39.0-23254","@fluidframework/runtime-utils":"0.39.0-23254","@fluidframework/core-interfaces":"0.39.0-23254","@fluidframework/container-runtime":"0.39.0-23254","@fluidframework/common-definitions":"^0.20.0-0","@fluidframework/protocol-definitions":"^0.1024.0-0","@fluidframework/shared-summary-block":"0.39.0-23254","@fluidframework/container-runtime-definitions":"0.39.0-23254"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.22.0-0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"0.39.0-23254","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.39.0-23254_1619543698487_0.7020952821913442","host":"s3://npm-registry-packages"}},"0.39.0-23272":{"name":"@fluidframework/last-edited-experimental","version":"0.39.0-23272","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.39.0-23272","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"9831ad7633fc6da521e25372f4e07ffaae3326e6","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.39.0-23272.tgz","fileCount":61,"integrity":"sha512-KMBdGKVWHj8HHwnOtxTh9gFyuVYo5Hqm8W7SA4+2s1bGBEvX2GUeZ50s2qqey4KAocqOWJpipIhb3bqHWf2uDQ==","signatures":[{"sig":"MEUCIE2qx6ogjmDw7T/eVxIOeRJWOtZh6/dWCL8ueOravm31AiEAp2CzDa3h7Cld5Ue6pAyy5RBE9Dmb7D9mZxXoKhE/NEg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75913,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiFVXCRA9TVsSAnZWagAAqi4P/2kElqeJKM8CBkjzHOwj\nrg/7/x1DP4XQVuBWivwDSzcujxBVGkciYLlEEfVZUxEHBpwyveJxK41igBxS\nAQ1DZIUcUh9YjiJaBJPXjX5MrmWZiTFQfVwakPlV2OW9TlJnbbTUBGysk3tQ\n6fpl8Vnoi7IiLwTEHja9tcxMIgAyc7lY5LVG1iL1NnRYbLnJgNXmXTYtfUtq\n71kUr9jCvppZ6iYjPQWZRJyFPgrq/KsgT7JUw89b+6TQVUx4lIrNYEKmA2z/\nK/5nA56bS8mGLSq/vh+LvxiWW+Db2zfVRAj1dIj16oocoahlm/CbTK9RVOLZ\n+kHHmD/JwEyfjJMv6SKLqDCd9eZIMW3JwtvZR3FtL6Uu1hzZUzrSQdLWrAZw\nY6nxxFIODy7DLyg0C5G0hVv3O1XqUZcPLNDGC3ZBSctsluqt6nP/Pu4Qzia7\nKrkjEiqmCOhTlOfDEtyTo6sCACtsL03pB/vYC2WZHv6Ihy/fiEGYPItrQTmf\n5a0bd80kYehjzDsEdl30XeIkvrZxJwnQW8arlCknpt3Oy/p1jwTFo3vJKcGV\nU1L1Z0SLWs6ba9xsb1yhJpBLDGRQML1a810sjWeeycqCjMgsaMa0HbX83LTC\n7YxcsuJBrkqXQMiMWIxlHsM+mewZ8iHIDYxNHoO5AfuXc2CCYPkBRErZSxzC\nHRJ6\r\n=HeGy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.39.0-23272.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"0.39.0-23272","@fluidframework/runtime-utils":"0.39.0-23272","@fluidframework/core-interfaces":"0.39.0-23272","@fluidframework/container-runtime":"0.39.0-23272","@fluidframework/common-definitions":"^0.20.0-0","@fluidframework/protocol-definitions":"^0.1024.0-0","@fluidframework/shared-summary-block":"0.39.0-23272","@fluidframework/container-runtime-definitions":"0.39.0-23272"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.22.0-0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"0.39.0-23272","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.39.0-23272_1619547479051_0.14699721301947632","host":"s3://npm-registry-packages"}},"0.39.0":{"name":"@fluidframework/last-edited-experimental","version":"0.39.0","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.39.0","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"63581b30d9129350203034b02439b364eb622f76","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.39.0.tgz","fileCount":61,"integrity":"sha512-utBaOzhwg0NSWooAvslAIfQH658C/7HsCnzO0dUr2UiRUrjYkdH6v649PfyOX29kA5QsPQyzUtR97/e+K3xJjQ==","signatures":[{"sig":"MEYCIQCycatkKeiZ8U9NQnkG/3pXDHw4gRZZ+s2qHElZiBDzNAIhAKK5tTm5uFR7cS5Hf9zT4d/2c7d5Fs89IJk8Q5bpATnb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75820,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiKfcCRA9TVsSAnZWagAASFQP/iAip4jq2ae8Fc5NZshE\ntkRUkoxmvPMNQmj4rut/2AKlrGap2V+Ur/AcF/RtDWinbQT7Ufyl/Y0PfjIK\n74VqKsdJ6UJdwpxwNq34d/0PsC7ba3JGu6dULYW/ulFUzOVy4hpPpEt4euBh\nIB5VPxZnYm3Z0Kn5XXPnpK66tesM3cfrscd1JEspoxcRBUgnC62EhHpdhgG1\nUvhUuxVB4yIAVKcKqVTwxPGSIjnd+fWOop5yooqZ4rF3j9q/Il8wSUcTD8qu\njl/qkbiJtFpjyCv0U68VKlK6H+Tn9LCl0WAvJAauWkn2n+OAWLgpHYlqVQhY\nVcsYkL2ojMYtqqJaYY4fjf6qHPpHogKruyw6RyWEpB+eqBpuElJxif6elKCg\nZ9XgJGaODVHhyzPWIqtrfnI23sS/yITlZ5Bd6MirUhNZIfZ236zwwzcza2bk\nEv6IGiNh7p0R/6BD8ck2nNCSWK9+/mPNAmSijhUzIq+oW+Bp/b47+YS8Gf8u\n5djaHKfN1h7Py0uFqDNqbihSSWeZi0oOaS+XvMH7tC3ctwtb6Imlql/9+3hu\nxAnO83YdG7vTk1mTkqVytpl+fiGTVU5udeQePdF9cERpFPbDfd2E7eTLQKI+\n5zmmW4YLQkYJAkBqaLjHzIrR9Ihx4wLlADe9j3f4fJjOHEfqIg9QUnJVEECQ\nv9KO\r\n=H6ZI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.39.0.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"^0.39.0","@fluidframework/runtime-utils":"^0.39.0","@fluidframework/core-interfaces":"^0.39.0","@fluidframework/container-runtime":"^0.39.0","@fluidframework/common-definitions":"^0.20.0","@fluidframework/protocol-definitions":"^0.1024.0","@fluidframework/shared-summary-block":"^0.39.0","@fluidframework/container-runtime-definitions":"^0.39.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.22.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.39.0","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.39.0_1619568604430_0.5086057081178756","host":"s3://npm-registry-packages"}},"0.39.1":{"name":"@fluidframework/last-edited-experimental","version":"0.39.1","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.39.1","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"40f6b042b99f4359128bba26337e046467d2bb9c","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.39.1.tgz","fileCount":61,"integrity":"sha512-RavpKUYn3jDmJa8UpDg8YN5J7T3WvZjON0cLijqxUbo7kGagooPpWYOe3O5Kjpj6QB0b9nrTSsA9zL5MYg1FaA==","signatures":[{"sig":"MEYCIQCznbTOJJz0Vaz4rfIzHHTv6dDymGI3ty9ZtxGcHfGVZAIhAJTFBf4eE3TJWpT/Y/7bWIh96uGacU3KdAqtqjiun1qZ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75820,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgk0YECRA9TVsSAnZWagAAKmsP/01w7Spx3c1xTT+3Ewg4\nEQ3BM2zoZWhNmBc8sMs+iNDLsZyqLt4w3ZTUfpzhDuS5azzmWz10tImpD4em\nlXSRvD5AxjJd0if/ih8E4K7LwUcQqfnzuptXmZHF2dkexNNB7EaCQ9R3y0D2\nN7reYzw6oEfrlfOG6D/kXICnN8qQPG0mE6XBeXf0/dttGsLIqeqgUQO49Bfa\nbEEQ5R/eRUfD7cgTMsZKfFtk63p98cAthLXKHRI8aBpobY+NrLCqfKIBLIUS\nyXXs8fDe2Y0zEihXpVlx+BYU8e1xv8ZHpBhRj1EXo9JQjUWPDwYNw1nn1O2X\nC4vTLIoceDQA0RYkrJG4YipW2NGXjyjQNun9UdGvYIDupK9KbZbixPhe6gp5\nuuppM9GdONVfU4a4svvPoxZ42YZQYwoP6me125PYgT9DPc+3BR2O/Eq58UmE\nMcryt4Q8HCIZQUq6iib1fIeQgV0xsnPbh29cSNexQb0TfbsCyX5awnE+503H\nf/ZZ1vB37MWRs+XxHtp+D8EFxqMxQkitKjBkcbQpcBH8Z5fr/Oh+uqSPLqX7\nv99nAPI3271jIZxk8mrwr3ZeveEW6fL2UThv7aKgnEN15zKsEQz37zfALt8J\ncMywrW3/fLrnQGEDqKiSrHnDmny4CQkCJH0kra+v5KulVK5kmpq/eRDnLbpO\nEv3+\r\n=zf+j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.39.1.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"^0.39.1","@fluidframework/runtime-utils":"^0.39.1","@fluidframework/core-interfaces":"^0.39.1","@fluidframework/container-runtime":"^0.39.1","@fluidframework/common-definitions":"^0.20.0","@fluidframework/protocol-definitions":"^0.1024.0","@fluidframework/shared-summary-block":"^0.39.1","@fluidframework/container-runtime-definitions":"^0.39.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.22.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.39.1","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.39.1_1620264451804_0.9569528782731336","host":"s3://npm-registry-packages"}},"0.39.2":{"name":"@fluidframework/last-edited-experimental","version":"0.39.2","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.39.2","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"264c36e84ff66bda3dfb5a00e849712230e4f4dd","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.39.2.tgz","fileCount":61,"integrity":"sha512-2wHr0x7HnXm+4fZ6Yhgn1kdDRprD0Uo6tE1utaMaMNhSNXnpkJb22YYdFcdD3TeukpwEyufsSKqy1zmPVD1msA==","signatures":[{"sig":"MEYCIQCoScoTWVko2MIYHHPcg/H6bPQioeDYe9EDeYfZoSm2KAIhAJP4+qJ+2Qict6jKmSJygci5tDHIf3E9+y7pWl7+8ttY","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75820,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmwZnCRA9TVsSAnZWagAAU2wP/iF9LRxsZsWexVshzdUQ\nwHhP8UBVVYWFCY4gvUItvh/DnvOiAMDOY/OgWPQpJ+DvAnHHvF1BFTyYXzTY\nf8OomduYGcOXQfzUeOU8jNT89WkSXBxkJVv5mVSbJRaW7bODjfB7lBcxVayW\nOF6pVIekHbwDbgW5okJDcBewBOvw0Eu7N011forRFFPe+Z7xSx81y03Wvl5s\nL3L5W+7KgkRb13CQIjShSX0dDtgTeQJ+KpBsUgeBKzi5IPX+dCDkRrelZBJ8\n7XAa2yCM7PDOTkdVnLNc3JsQQog9/KvG6aHXXJ/hdFqVdVUICVa1+BoylUOj\nPbLhZ1xLjjNr1EVJMuWEOLP9rXvyrCQpbOHqlV+HBL94za5jSgcYmZpOKIbq\njoBk0NGk/2ky7wlaRU0LSRVpKmn0Oc78MJplVFVTugb3HCtEaW4MM9rNP3qC\ncTRhDf7e2gM2c2jApMQA6I03n17jB5vrGdAKwIiLse+bGHLPqEzAS1lDZOPe\n8XW4/L6eBiCja5hlh6n5CoaQ6tdOFawqW7LJsoYxY00t+lRyZrl2hcVQQ20t\nwkGT1zzvudLdDeRckhO0pPbLTJ29451ygIz4tdABHH/0VtwACZAxcJkrylsf\nLyjMWB4BIEpeKGqmdxfBhk2h122eevuC/Akw8R35pzWCkmsRV9YTRqurUg4Y\nJKVj\r\n=nxZ6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.39.2.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"^0.39.2","@fluidframework/runtime-utils":"^0.39.2","@fluidframework/core-interfaces":"^0.39.2","@fluidframework/container-runtime":"^0.39.2","@fluidframework/common-definitions":"^0.20.0","@fluidframework/protocol-definitions":"^0.1024.0","@fluidframework/shared-summary-block":"^0.39.2","@fluidframework/container-runtime-definitions":"^0.39.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.22.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.39.2","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.39.2_1620772454769_0.764822227314162","host":"s3://npm-registry-packages"}},"0.39.3":{"name":"@fluidframework/last-edited-experimental","version":"0.39.3","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.39.3","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"0ac872568912ce378c25113462a4efd154350120","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.39.3.tgz","fileCount":61,"integrity":"sha512-GHyuNmJe90KB8Nwq1MiputRgn5ncw4OMKp2tqqoD5A+Tz2/Eg6EFlDQcLV//FoTMdVtPM9iwduyfitX55/oxJA==","signatures":[{"sig":"MEUCIFlrNhB0nCYGgm2RoWLxjBoyrjmLLh2O/RTVx+HmChyqAiEAvBBKG38RrFdHm7Ys8McXXkfOkhwtUQEA6Zv04Ta+LUM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75820,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnWFlCRA9TVsSAnZWagAA/E4P/R9qqcgh1FeJE+bFq9xW\nImy5mr2HKrPKsGdYi/NkeXISlN0Aw2/IyjuFSCjfrDTfx+Kfctn3fZ3X8urC\nMZEpMo6sk4rITh3bOy9KiLyOWh+gDQj6kZxAhuafj0u9G9pBJUs6y6ktI9tL\neSOhULKWdfGBY/Ppn+cmma6/9zBHrmPAnsYCWsbdmYK6sNPGCQm2lWJ+3Pvb\nLVFjEqQeR6Ca2DVkN9xAZr69dtoxmPgzbizyfHoRc6uvftCp2dfOlk7Bdgrt\nr8Rz8vOV/NUGkQxcnlwLpP+AeyYkiVbT14YJD8XqtBKsDQmrbiDBgPiSETrZ\nUaC9PEcOGOM+j6fJwe8tkfOBj+trci91COfbPuYSd5WvDw8XJjQ7/5WlKL7U\nvgVhWqnti2wJbtPAzIwldvvX8G4ABb17VM+jwpjflgfLItMBt2y3emQcsUoL\nb20KgzAbyHYWQ4CxC0lkss+Byf4MTwMbvxUJBVGGY71AoOTnSRqsfVTjYJlK\noqOWqP96MGEgs9o6VuhmCCVv0Tm0KL9MJL8KvhzSu2LKp/5HLhLFR8w9P+q9\nU/ruMphHfTxNBlxvMd5dqpeSiushaHe+VRKTMkL0mW+Nwc9ZiNP60rl9sk28\nfNUFE6nEjG9uaASnmc1E7AO8O1HUFTCHfF4AeDj3T4EN0rkkVfiFeuoHWOrG\nIkWU\r\n=f7mA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.39.3.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"^0.39.3","@fluidframework/runtime-utils":"^0.39.3","@fluidframework/core-interfaces":"^0.39.3","@fluidframework/container-runtime":"^0.39.3","@fluidframework/common-definitions":"^0.20.0","@fluidframework/protocol-definitions":"^0.1024.0","@fluidframework/shared-summary-block":"^0.39.3","@fluidframework/container-runtime-definitions":"^0.39.3"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.22.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.39.3","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.39.3_1620926820896_0.6823397303805041","host":"s3://npm-registry-packages"}},"0.40.0-25719":{"name":"@fluidframework/last-edited-experimental","version":"0.40.0-25719","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.40.0-25719","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"3e8e9b2a6ffec85ede15126916c621085f3927df","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.40.0-25719.tgz","fileCount":61,"integrity":"sha512-5e6fGwu3yYALRsFdpRN7gHsvpaVdDuyaZmfsIaXgMfDEGcQM+u4NF6P3xWQwim/xySNCHOTMdE3kUwjbBWPmAQ==","signatures":[{"sig":"MEUCIHDB1vR6zFpnn2t8edJBMd07yY9xT6o3g51z2LaV1VRuAiEAqH/qx4dVH+WpnKiduwJkPypubfy/agnAU0GhPezmCq4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73887,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgq/e3CRA9TVsSAnZWagAAxVYP/3fL/GYjsIxa+T4btMrW\nKy+ZItn+hb11hHVciqU6wXNd0beiZr/F+6rn97DKXZs5JyGBenvtWpyaeguD\nOmOMqC7KfeVwk6EC9IgRVVomt30lbI6gTHzGY1+ze0fbLVjfRA21rTQ3kO7S\ni8jkOt5zn/xT/0eb2729ksM6bVAKbXw/ZAr8OI323p+drRMxBM7La2A17lhu\n4ejQ6+6P9b10YMs78PV9vMXb7WIPDUen9fyazNXQxJ/F7JX/YjnHhFSSFVx+\nNwVGjBtAszW6ZasxVdM2dtkK2n1byfmeC1tYFzwxWJT55LkB4vWJrKzvxOyP\nkcmHfkoYeRdQ17Q+QhqTv/nzoM+HO69hh7xHn6xhwEN9cQzuvSrvVYtLl6G6\n7W12v8t/FTk4aekW0SI6lC//XrX01WE3zTem3NNRIJ0V69Lo+6nMYGiT9zvv\nWdTmQi7hHvaekynpAXUbWfMbjJP60snajUM7tBepX4816UW7zgkwP3QNlaiP\n4TADRFF0Oh6K54AFdSSk+8PqVQgeh/1oMPIW5tqah7MMnta0RqqbU4wIYYGl\nFK9LFtMQx67sGPnlCmtcMQxyCKGntNc30qv35ymR2Q74gTQRQ9so5YSMpZR6\nuuYfiPOIQ4FYAr/j0xH2ft6W107t8Zf10xoSOvpN+81nqWSA/+AGF+FWjgyd\nzEOZ\r\n=y1eZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.40.0-25719.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint && npm run build:docs","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","ci:build:docs":"api-extractor run && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"0.40.0-25719","@fluidframework/runtime-utils":"0.40.0-25719","@fluidframework/core-interfaces":"^0.39.0","@fluidframework/container-runtime":"0.40.0-25719","@fluidframework/common-definitions":"^0.20.0-0","@fluidframework/protocol-definitions":"^0.1024.0","@fluidframework/shared-summary-block":"0.40.0-25719","@fluidframework/container-runtime-definitions":"0.40.0-25719"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.4.0","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^8.2.2","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.22.0-0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"0.40.0-25719","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.40.0-25719_1621882807425_0.9077174774767978","host":"s3://npm-registry-packages"}},"0.40.0-25851":{"name":"@fluidframework/last-edited-experimental","version":"0.40.0-25851","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.40.0-25851","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"2efe4318d7f5c53f51ff6430faaba88c7c5ada1b","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.40.0-25851.tgz","fileCount":61,"integrity":"sha512-XQE3CKDytYK7Doz/IKMDqgER7D01xWBTxzt7zElFXW4fw3jONh0+18gay+hQ9SZHK4tTk6P504RfeBlvAemm2g==","signatures":[{"sig":"MEYCIQD6zzYOhI/IT4Q6+iFQz7ozY3T9NW355XfhKX8+wYnt6wIhAKwi4Dlx0sCMGGffhZwBxn2ATuS1szM4EYBpKXMMQ/cN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73887,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrXwcCRA9TVsSAnZWagAAHRkP/2ZZ4+5jhnLUhU61QwIN\nFU5Tfo+PfMDSsTdLFPQYwnMaYMiWIXSjFQC5Fc0dAbqP/Cgxv1nBMJyq1NFr\nKNqiU+8q5LDl9q9L1bqWXh/3ivmFfhXiVG2OWhuO6+Zd9QNpbIfM/EBwUMu4\nF9qDNgs0ruBaTkKZRBvo+6E4kV6eencNu+ASCtrvM+1vlV2wNr1tsYnAUXts\nJdlGHw+GjFmtIHWm1fAnZEBnf4xW/7fDyREHCqA2v1w7viwO0nA0UcgsCX9C\nIJeUU6Xz39E+bUS6NXw5WquC6rxuyV6awN4EaOtrcDRHpMzloUHXDgpxoE6h\n/Pu+B6DGXxD06mnWYXScjjuFJoN+pv6Bh+7436RCHkPgPBqeLYrqUDjBBLm0\nmjpAnlXHxrQYAgK/VwMabWjvH9w88y+PdU5xLVln3rwXDXCrnMwuVjKwHP16\n5EV6yOfdYSKC0zmjLSxwKKaxq3HR4mwGK4ibgsV2gZY6wC+KpxP371YYF6L8\n6kFQxS3MT11xcvOO+XpwReXGhMj4fKotf/ps9MTT6lcIv8Vdqi/yErP1MFjK\naVF1YMOroSBqO8J2Jy1Gk2Yj+s8kgPuOwh15yrxXJeGZcbPYRWPLPc63JKG+\nhI2LHwdj+dBTHwJ3uUMQKZvPY4eyq/TYWKIuGncwlP2g7A3Ubi9JHMbnOCB/\ngFW+\r\n=dZif\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.40.0-25851.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint && npm run build:docs","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","ci:build:docs":"api-extractor run && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"0.40.0-25851","@fluidframework/runtime-utils":"0.40.0-25851","@fluidframework/core-interfaces":"^0.39.0","@fluidframework/container-runtime":"0.40.0-25851","@fluidframework/common-definitions":"^0.20.0-0","@fluidframework/protocol-definitions":"^0.1024.0","@fluidframework/shared-summary-block":"0.40.0-25851","@fluidframework/container-runtime-definitions":"0.40.0-25851"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.4.0","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^8.2.2","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.22.0-0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"0.40.0-25851","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.40.0-25851_1621982236489_0.9229378918580724","host":"s3://npm-registry-packages"}},"0.41.0-25957":{"name":"@fluidframework/last-edited-experimental","version":"0.41.0-25957","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.41.0-25957","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"3c9b93d280ace4b3ce9a86d1cd6f61e6afa65fd1","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.41.0-25957.tgz","fileCount":61,"integrity":"sha512-n2zv1u+cBjNah9nDphsTUeLD7khKcp8XYFKf6Z6cDxek5oOYe8vIB64mboRbLVl+ch9+ZxVlgk9X6hBhIAQ3wg==","signatures":[{"sig":"MEQCIFfiOb8twlUp2xoo+UzBsFMFXfZVuO+oB0s/QK0Ni674AiA3h82SaSPCBoWCnEUko1XJv0NR6dVa5UfhoAEFyP4tWw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73883,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrrI7CRA9TVsSAnZWagAAUwkP/272Mo4Xe47NN7qausDh\nfbKCmIVplrzFZ5ZT/mf1VSEgCMBX+JRaRp1b6kmIIjw7j8MOO9BL0acEFDGQ\n/y7QekPphPrFSNhTllnWnTQKxP6Sukmsz5Os0iSNLC+VksHlYMD+5L7Y9czj\nfCviOcJexEfkI9MzBHaEbRlnyQJopdWZYJob8isCpidoXAxpV9SEXn1Chhfg\neUWzxUI+Ul859ScIMBkxrD9ZJEg+QapnrpNh9ptoqd3170RxfLtLhdNXmvdv\n3fMk+UIYR58iwObO0ZjsO6i12nAAVlYmHSITiFN2MTu8bdOASzzXa0Pw8Iv6\nRTM6k7QnX+vsoBe19OAQxuMD4vHrJX+jfVDVzzouOaRtMtqz34yWhzw24C5P\nU2T7bMaKZVBUw2YZdO9whH7n5fhr/Sda+60lPNokkUZFqd/Iri1mVZRHdoSu\nnhhO2CQvejwnOx2t9ESfsyU0ZL3oWDl68kMNgtBfP1zssplrO/r643KJrXzQ\ndHcik1J/tBypQvjPpe/8kCHbsgc32RHajYjPf+9V+rkRvxuSzjSKw+PYAg4o\nVY2t/L9/md3aKfElBIwoEy2RKSDjxbduePFVC5u7BXLLj57vn0tLWfhQGpt5\nj92Gby5pNdK3q88S952m5gYDHpCyBFlUfapRnZB086+D8YphTtk90p5ZlqE7\nQ291\r\n=y8Jv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.41.0-25957.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint && npm run build:docs","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","ci:build:docs":"api-extractor run && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"0.41.0-25957","@fluidframework/runtime-utils":"0.41.0-25957","@fluidframework/core-interfaces":"^0.39.0","@fluidframework/container-runtime":"0.41.0-25957","@fluidframework/common-definitions":"^0.20.0","@fluidframework/protocol-definitions":"^0.1024.0","@fluidframework/shared-summary-block":"0.41.0-25957","@fluidframework/container-runtime-definitions":"0.41.0-25957"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.4.0","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^8.2.2","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.22.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"0.41.0-25957","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.41.0-25957_1622061626805_0.5540516880086945","host":"s3://npm-registry-packages"}},"0.39.4":{"name":"@fluidframework/last-edited-experimental","version":"0.39.4","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.39.4","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"ada7d6689c5fec4972684213183f8c61457e79b6","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.39.4.tgz","fileCount":61,"integrity":"sha512-oOT3QVbZFEm3Yn+AGodcGagMP/5DfByu63ExjPfjwd2qeSG+yFYtQGLb/ZoyeMaN01CTVR0xikiEUgx8JLG11w==","signatures":[{"sig":"MEUCIQCGZ1yLRFy1EMSgSy9j+9Ps0Hqo3qdYqWifgDKTmOsZLgIgbOkH+3QZTxlF/WX1VugeUheoSSVrQXCQTlMRW8qKQ6w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75820,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgr8xKCRA9TVsSAnZWagAAlCQP/AoSyyYhXGMYCjlIvSsC\nSYZUUkherJQmpllDw1qqBa0Q1VhuaRaN2wOmnTELnAQ2gFStBQ0Y2y4gadqN\n1A0gZOBIcdrCVnyuCeiKXQkhFdT4JzAtns+E2W68FnwZIi0YtZzLoPGM1XAT\nxMzvtS9W7cy1sarYRPUJX5Xp5zjiZFfpPzyirsC7ySWsNo5Oru3ocALOF5zO\nbqCaIPmsCcAg6RMtvO4JYqridX1s+wy01XIIcHj1oFT5cv9nFa1/U2UMW4FO\nBj3IOiqkVHQXiY2kfDsuin/rliGBYtSwB9GrN9TtXxbec9ifrfgJHiFcflUQ\n8UB3VBjNFoqvuvpoPtuy5W1vEfB3pEMyVmZIGCUWcuMruebhvq3HTTvus28k\ncPsmnUCA1olEFp6ffF55YHIK4vfsCkeIWx13lRQgm0LTYLNRMR/s+56Pw3pD\no6bbx/lV73+Zq+aEX8lSLyLeQJt+YSGaTIxvD6ycGjaWiuQN0MWY0lZ/bR1H\nLbbqoh0BcLYxZb9f1bHjcR6RHsTxwAmmRIHmD/RWThxFl/qlGbJ801uv979P\nf/+ZDzCiEZ4b78Z28ZZSS4/IkZSWi9Bx5iiDHlhyiC8luhq91HZ3gk1d1znh\nPFsajy5QzE/EMLu+5UWpnPK7umt+hkww7mFM2Cx9ZXLEZ4fhC+8kT3nI+225\nIpvY\r\n=QBs9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.39.4.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"^0.39.4","@fluidframework/runtime-utils":"^0.39.4","@fluidframework/core-interfaces":"^0.39.4","@fluidframework/container-runtime":"^0.39.4","@fluidframework/common-definitions":"^0.20.0","@fluidframework/protocol-definitions":"^0.1024.0","@fluidframework/shared-summary-block":"^0.39.4","@fluidframework/container-runtime-definitions":"^0.39.4"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.22.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.39.4","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.39.4_1622133834016_0.10696025613293769","host":"s3://npm-registry-packages"}},"0.40.0":{"name":"@fluidframework/last-edited-experimental","version":"0.40.0","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.40.0","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"7330417d2c33c857d3fed6537099652ae45662e9","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.40.0.tgz","fileCount":61,"integrity":"sha512-l9NlhHQrOHytrm2imps8iaHpTYMjoOEiT/zQxbHbELEdC0OFJVJY2hfQOeZJxdpjtdmDuga+uKrFtB5g++sSUA==","signatures":[{"sig":"MEQCIBlkYmMj4vCgEtq+XGPRAHA3BoWDL6UzX6UF0whH7ES6AiBlhlrbb83nKpuxdzKzky1WWTxCe5rS5j7SVsevenD8nA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73801,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgr99vCRA9TVsSAnZWagAAJm0QAIp09kfMsHWnUlgGhvdD\nPZtyDdNw63MwFhsvgTGJHL+UBveg2fwTDhxgPLT0LXOFXGBWoQW67hRu/iH4\novsod2zzNuWWB3leh6rZA1PM/WmYawXrGSV2YbNGTGY5OqahhBW0g0bcNWwV\nCU3jixwtnricfKxQt6qHvSKorYg6GObn3rRxrOi7SrSOhJv0Xs7E0laL3Pdb\nC3tKZpG+DNHe3Cik3OrgYETyhtkf9sSbgdTM+VosYTMQ40iuhy+8/NbsHJpM\nVmomIx2xI2q9COpXEILlFZ8yM6xngEvHKRQw2fpG/CQn5BnK7k1VmuyXkTAO\nPJ2mMX6yGbdhid3z0N8VchGjJRFXpFEtFBCouq4Ainvg6Nog/cEJMVaKnDMu\nOxqN56fjMs3FScH39784sg5yRPd0hCbcDkGXAUHog5nbk01TKH4ceMMK6iQ0\n7cTimoHGTueEKA5Tia2oenppj5woo67HZ2EqmRrT/6nNqWZa4BwJKpvt1Ocj\nFOpz/OMTMvL8hkSHY2W30cTrRweVTYM+dM0+dJF0LiMW83AI0Dyz1EjOp02+\n6dlAQN6wAuWcq/KnwyFMAj82+++lKxFymRsq2kNQQHsCfQWh6qCNUqgFmVmg\nOasix65fOmCWFhQ5g4sSphkFf0lH8FnHlHKGSg01ONEeoeuYao1RmPDRpStK\nKoew\r\n=aP+I\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.40.0.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint && npm run build:docs","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","ci:build:docs":"api-extractor run && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"^0.40.0","@fluidframework/runtime-utils":"^0.40.0","@fluidframework/core-interfaces":"^0.39.0","@fluidframework/container-runtime":"^0.40.0","@fluidframework/common-definitions":"^0.20.0","@fluidframework/protocol-definitions":"^0.1024.0","@fluidframework/shared-summary-block":"^0.40.0","@fluidframework/container-runtime-definitions":"^0.40.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.4.0","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^8.2.2","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.22.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.40.0","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.40.0_1622138735126_0.6708475491276744","host":"s3://npm-registry-packages"}},"0.40.1":{"name":"@fluidframework/last-edited-experimental","version":"0.40.1","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.40.1","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"1e708bae7a05c030cf7b76b56622fe45f091aae4","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.40.1.tgz","fileCount":61,"integrity":"sha512-9fdvOVNTfPCDJRSiRqkDF3LuMJzXLF3ojYOZKyniML3zTGh5oKI/EV/Nf408Qq5TT/swFLKADUhZR/TuyBRSNw==","signatures":[{"sig":"MEYCIQDvefvyKJ36KKjQ6BpSP61uEDjw1XtfqxsXX1uq7kYe3gIhAIIRv19+8woT3cSg3yQj5ZvPBIevNdnbXhPvx4Yw93hG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73801,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguXTUCRA9TVsSAnZWagAAwHAP/RsMudSL6+QaWTNrg1DZ\nEGbx0X6MclKEgE96bxFzu51VoFZUYxMU1sGtXDzN8lY2uW+UvDR4yTk5xY6/\nDWnh6HF9HUbWrZq0TWUWbZwKttazyk8Aks/gDS/VMNYEwsL4H6IGotCxo/K1\ngeaL0y/rtQMB2h0K2xdUq0xr1fUnZ+LFvAj33YJFSEkkfS5SgmEPtwUR2h7I\n3L7eQjZjaNFYl7N9CW837ATUoPq3Roxxd/l3BQxTcRu9KrYDdbq+73rc1jlu\nBopmxBRkqT18iNXChtrrlE5Ufgz6YXa4PHTf68QCLlBXyhnFw6YJuxVwPJTm\nGAP7c6UClP0+qUXgyQQc9Cl/AcbQ0PtcyGHeo4r41Ldlt0Un0/ykA4YJMPvR\nckDG2adEuN2A9id3JVp6mMr/Txj8DauvY7mKKA3jdN0t7sj8lStCeieRsKdS\nNucyIAV0ZgI9rNc1IUBq8f+NyhFEOIQKOE6KWj5azSx7Mg+VgXvmfJiqLNVz\nUaqD7SxO7O96UvHLW/+4yeBI8/lDahBJA65XhezxCzlXjmq8yzelqlLhytpH\n/HJhca7YZ2LHJ3u4IEgAjBsipqNjHyk8KtsGQJ3VtXi4beMc9PVGkQQdgES0\nxLcL2LWtAdCFJIXBCHFGR5QXX0weIQoPokZ/xcDHgAE+v/XPYr8/ykyZYbII\nrLax\r\n=0SuO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.40.1.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint && npm run build:docs","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","ci:build:docs":"api-extractor run && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"^0.40.1","@fluidframework/runtime-utils":"^0.40.1","@fluidframework/core-interfaces":"^0.39.0","@fluidframework/container-runtime":"^0.40.1","@fluidframework/common-definitions":"^0.20.0","@fluidframework/protocol-definitions":"^0.1024.0","@fluidframework/shared-summary-block":"^0.40.1","@fluidframework/container-runtime-definitions":"^0.40.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.4.0","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^8.2.2","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.22.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.40.1","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.40.1_1622766803910_0.7514169731555269","host":"s3://npm-registry-packages"}},"0.40.2":{"name":"@fluidframework/last-edited-experimental","version":"0.40.2","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.40.2","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"e0374e7e210ddea19a2046866c41badf3cddaa10","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.40.2.tgz","fileCount":61,"integrity":"sha512-tlbW7JF5PNBt3OZYfx4nULSfJ95CudTMACS4natqCFGyPoSuB6xUPvFpJrqG+BuEN7cVVjbLGFQo7FqWsPpEiA==","signatures":[{"sig":"MEYCIQDstTI26yxrdN5r03rZAY0KykS9QDKcPRQjmaoXIALb2AIhANUY2SjnWKiE30onED1aUianLGc5pYdPQwWwbq9l19vn","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73801,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvnejCRA9TVsSAnZWagAAzh0QAI4QIjfwcu76k8+6l5TM\nR+bxoogJppIF/VjRdnFVjpZ/DKhr5Yk8QSvs8XR9qwJxcl4hWRxnGIfDu7Ct\nItZ3W2s2cSPBPCDo0uXsV3EHCL9suanH7oEcNcA/oi5zrIcGf/2gARbIPWpm\n7Sp4ujnYKAbZ5X4QH7cPFJY+MuL7TKDfSGTaZCLXhJ7SD0b5hAHZbAu633MM\nepd9QaSqLkMrigZIC18t2e1daGkm2lacjOpwHEJjm3OieSDQd7xpaxdfabMZ\nWm8ut8DLhFq2FQov4ejBfavdK+AU8WWFq36YgXSq9lqb6ZAo8edseR2B8Exn\nV6kAmI/UtVqwMuznTxO3BQbK1CV4uW/gQDxq/VA9aOvg9FfVeax6RXJ36CLC\nnfQoMvuY4eFYELtiIAVPaXg5xv0Rw39m/wqi01p9XQO9aUjReXy4sgaHvgkk\nZFo0YVb3s2Zqm/AcTP6TSvd59sPRn8mWKemebQchPVFIgAi3FbzqCPDxXjLM\n2BBpRz0Ana9sKzJa/0qbXjGgSJV9GrrcSqkDpmIKwbgM+vnNrK6aa7MprdoD\niUlZKtpLkGmdAd+ceokSxvUeq7eZw7/u0qgmgLE65/JNPDtQdkN92yvrSQOs\n98GbrP4Cls+IGDBV0hjjRMhddJdViFdj2zNlOOdOyV5mi4ssMEUEA3lgc4BJ\nU2iT\r\n=RIo6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.40.2.tgz","types":"dist/index.d.ts","module":"lib/index.js","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint && npm run build:docs","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","ci:build:docs":"api-extractor run && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"^0.40.2","@fluidframework/runtime-utils":"^0.40.2","@fluidframework/core-interfaces":"^0.39.0","@fluidframework/container-runtime":"^0.40.2","@fluidframework/common-definitions":"^0.20.0","@fluidframework/protocol-definitions":"^0.1024.0","@fluidframework/shared-summary-block":"^0.40.2","@fluidframework/container-runtime-definitions":"^0.40.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.0","mocha":"^8.4.0","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^8.2.2","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.22.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.40.2","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.40.2_1623095203127_0.7411097830475255","host":"s3://npm-registry-packages"}},"0.40.3":{"name":"@fluidframework/last-edited-experimental","version":"0.40.3","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.40.3","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"96d599beb96ba59ff2f00ac692a3924904b7033a","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.40.3.tgz","fileCount":61,"integrity":"sha512-fyO2gHJQgmMa6YMDy2McnSDp0ILzUUDvgEvRAsU8t0AR86bbJHZhDcWbmUevebdXRTFk/D7dBE7dn5bAs4oxdA==","signatures":[{"sig":"MEUCIQChcBYbUGURWmKw+dm3GLSgEemQROQ2xnb+K9NwQEWCUQIgbKaL2+EP3qWzuWF28OjC8ro8ppVyp/KLQddkGpYYXzA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":73801,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgyP9YCRA9TVsSAnZWagAAcG4P/RYS/DY8IT8TKt6r7U+e\niBTmiKXBSsDcgJ7nJ49O9PDcqM2T1dxSpq/oTEV97Oyoj9p2GbRSu2xvz7xy\nfhf7w4+fU0Php+wnsriR+9fk6TMIsWysD70kq7YiB+8uz1xr9tF6XyRpfMRW\n3ABkHSAbDVssF0+zDvrVbYrJpohGVwmXV1Fe+sLTEhQ16vSE1ZQCufnnnXoL\nQSG9FibBi/4gymKCxVj+7ovy+cVgpFYkfhVbzo338JHh6SMTDVSUz3m89bSd\nNoGg0Fp1JaY+3HYuyeFq5+UodEMUhxxq+KO2eWYGgn+9UT9RCqlqTUr6I8GL\nFyy30QQB+vL+dw62haLHuFgF0uz4wsdtEzFJpa4gHXi+IyW9Ve40n3I0XKF3\njRG57baKF8EZQmt+4tP4WS4pDQM3s/WYFa/WAb4MQxKTwD6OB7uYF+d6jphh\nPwYvvy5P6awtIRsmrJFRK47U5U6NTNBgjJ06uVHPId8/D2sD9rCwdXyr+efS\nAjkAKN2S/gLm7e+bx8SC/57UNyMsAZ6at0quh4nNv7nRsfiEEn/5uMiQCuTv\nn2HPKrijcDo7wbIV2fIArVkaAIp/gicedIDYciVc3mY1jo9DsKpSttZSKhzL\n5/C5FtrDHCZtDJOJw2EtkLf9z6zGbsIZ1ea1IdaQ092WhAaSz50CHTVy8jgU\nbdYY\r\n=JqhI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.40.3.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint && npm run build:docs","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","ci:build:docs":"api-extractor run && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.12","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.1","dependencies":{"@fluidframework/aqueduct":"^0.40.3","@fluidframework/runtime-utils":"^0.40.3","@fluidframework/core-interfaces":"^0.39.0","@fluidframework/container-runtime":"^0.40.3","@fluidframework/common-definitions":"^0.20.0","@fluidframework/protocol-definitions":"^0.1024.0","@fluidframework/shared-summary-block":"^0.40.3","@fluidframework/container-runtime-definitions":"^0.40.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.4.0","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^8.2.2","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.22.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.40.3","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.40.3_1623785304235_0.3659908641595735","host":"s3://npm-registry-packages"}},"0.39.5":{"name":"@fluidframework/last-edited-experimental","version":"0.39.5","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.39.5","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"d35cc39124b0f766a61205be98a6287ef9f0f6f1","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.39.5.tgz","fileCount":61,"integrity":"sha512-5qJ/MC1jbC+IspuqAZAB/GK0AlYCpGuT9CucI14o9XNCUHGZiN/ZoHLJnJX4t3HIUn3p8MD85jqqTUEV7sZ4rA==","signatures":[{"sig":"MEUCIQC0SkCAzbbE64SjUTP3d543hOMdVrHOd87JGG+r1N8qswIgG65y7EkCSWESxPSepRsCFfahAlVVIioZ7ilDfO3elLM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75820,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5iOsCRA9TVsSAnZWagAAQFYP/32eyn8CE0o0zFDUwFs6\nAelKB+eh3qjHxIKzZA01dcMhAuRoC/md0J/6dvcUKsIOQ7FasTW6Mnwmp8Nq\nnA02xap92fKQLm7n6q5xQwsRaaPjaxC7ZznYg6afeEZH+g8Rj1g/IKG15J7u\nRYHCDmsOvpi3ftCrhph9Rr6ZNt0HJK0DxBNPW42tlv5+irEfAM1g8tr1eZK0\niavd8JEdxM3Gj5hbp/GGBLBUFrHk0okqloi6+LNIcXgDreWtMtY55eTGbq6b\ndD7bOXf82zZ+PL5/v1nvE1kiMEtr51LHzRffKBDmcWEdFvYaQaGXmCAOYSQ7\nP2pSUipm/kWUh2j9v+kC4V6JxBW4lkK0zB5ZByEyyuT7KFke+qqWB02z5+Y3\n6LI0FQrNvA5q0is3Ljb0Q7zYBaBbjMF9kSzlm5E5IzWSwN3OgVikeuwDiMmo\nUoBEqPXJ+JIeGmjkppCJz4ZVY917aZR2GcmIcEtgcNAwKSJVna2QCtkhU/5m\nJEx5TqjKfTe6YbdcpOt55J5dQYLAqmIuF1WQsIpD91plBo/qwCu33g6WPuPg\nL9oEla67/hFuSrfsWTXHGgvKNTaZ7JCP8HAIL3ImTBJq6Xx3YgZhKfagSRap\nqasuygYi20d3V5+MXLPxhATE/Bd7Wyb8erAzeSvvE8TDz10WLsNkkD1ryXEn\nr1W+\r\n=J6/W\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.39.5.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.13","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.3","dependencies":{"@fluidframework/aqueduct":"^0.39.5","@fluidframework/runtime-utils":"^0.39.5","@fluidframework/core-interfaces":"^0.39.5","@fluidframework/container-runtime":"^0.39.5","@fluidframework/common-definitions":"^0.20.0","@fluidframework/protocol-definitions":"^0.1024.0","@fluidframework/shared-summary-block":"^0.39.5","@fluidframework/container-runtime-definitions":"^0.39.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.22.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.39.5","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.39.5_1625695147703_0.34409461007509434","host":"s3://npm-registry-packages"}},"0.39.6":{"name":"@fluidframework/last-edited-experimental","version":"0.39.6","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.39.6","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"4b8eb215552ce7909c256ff978bfaa013137968f","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.39.6.tgz","fileCount":61,"integrity":"sha512-/1NMDEOUM5jOXyqhjSkCRT5PNidGrCiDupP8i+tsu4iuSqRRcJK08NyPGTh4JsUE2oaLzb9KXOf2cvtd7jFZZQ==","signatures":[{"sig":"MEYCIQDEixEPbbFiLJ6xnmBRJi24zDP/yOi1txmp/7x0ctc6jgIhAIAqzto8xLoE2q39KOT4wQ6bg1PCoqmYxM9cRS569VKD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75820,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg52VcCRA9TVsSAnZWagAAvJgP/2TTJYm9iSrDjyKoWhJI\nmDaE7J2iKrM7IhNGUk2/3B4osR3bUWEbbLEgb90e+MWY16YQWvnnmj1H2PWk\n0s65jlmQ6McMujH8jBCAXmFDgf1gA1qYraa6Xm3S9/QPiHr0Iz8Nw2BJMzAK\nEdSVUMXJbNBIIf1TqL0iUNyOfn7imRBNUaSWT2ASYnm77KZGHBdahBUV96yK\nSiASCX6D8HSQkpiT1aowd4s0VX1SW6KAWmvyW0HKbqDmGtNRGO4LgKgpE7H6\ns/BemI44CoWeIjz3CJ2NC4/CSkbMlVwK8wqWsXIEsuuG6Ad9V2FehWrww1t/\nriypxryBxtKtQArc/iYNjhAg7FmoqBt6ZSXxkCEuEgN2mRBMoj172CAxWfem\nEFNrgILh7Ua104MvTAuKETXjaBlJ+xDnsKm09ntf/zfbIc4+ODzxSGMcz6Cu\nx0I//R4TFuIHWlceokUOmi6QEsIpiaIgdeoM2IZmZhpLOKvjbAweFDPKHX4V\nKvy+2V804cUGVNZIZ3+A2FjgMwoBTc+LdA95uuR1YqRaObJFaKu1n2/VE4+0\nqurblO0Qlynos9R015woS9SjHfz8L/RMyDQpEshFoKT3nA0qazH7FNvwiSvZ\nVAveKLVeVkcKiJnwHOo9RMHKCU/UcLkTm6TG7w1rSRLM1x9plRjQ8XuCffeX\nip6n\r\n=4X1r\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.39.6.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.13","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.3","dependencies":{"@fluidframework/aqueduct":"^0.39.6","@fluidframework/runtime-utils":"^0.39.6","@fluidframework/core-interfaces":"^0.39.6","@fluidframework/container-runtime":"^0.39.6","@fluidframework/common-definitions":"^0.20.0","@fluidframework/protocol-definitions":"^0.1024.0","@fluidframework/shared-summary-block":"^0.39.6","@fluidframework/container-runtime-definitions":"^0.39.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.22.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.39.6","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.39.6_1625777500558_0.1698707163527684","host":"s3://npm-registry-packages"}},"0.39.7":{"name":"@fluidframework/last-edited-experimental","version":"0.39.7","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.39.7","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"b3daf592355c80ba7fe30e70c2fa535de6a4e01a","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.39.7.tgz","fileCount":61,"integrity":"sha512-zlH1R4JSA/2vvVMrQ+9IqIJUbEWFyQLhFKREIIuSQwEP+mT3iFcz7sFam2lmg2jgIyTNKWAsWmfu8wAPsw/WLw==","signatures":[{"sig":"MEYCIQDG7epecxkDekfKD27ZfpWbuoLdWGJHdIy7w/eddpE96gIhAOJ1CbWOetsw9lhPhx9RaCT6kyYpkbfrkyFAVF7uOP2u","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75820,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+dB0CRA9TVsSAnZWagAA5o4QAKTawdJhUXI/yU/zTK55\nJHa81qNYgT/bq3dkjnuraB5g7x/ev+CvSzex62Hrgif7nKP/MEaY4PTikdg1\n4dQvmcAiUscYG9qK21TFsqitZAzvnRm2E6nYBrJpOP40WWah9Tm/yD5/hSJK\nJfqxK5PnpxdgX6W3QlimWPVObKwY9vWIVe8xsWzvuw0W9jMVOL73zJutYYyV\nu+lbrsD3BwFIT2fSw7RFuhwbsoAEEgyXgDi/GA4jbsIHbuaSmfx+2c+sMsJF\n9q0Ek+h9ujyFt2Ms2+yEFNR6aMqsumkRNLUhSt98U7BC84BfojAcf9cVNv6d\nbQClJh/nCPtlzsAT4ByCypYvO/qoXMwxOw37P+pY4f+P2/9akQ1B/N9jyPe7\no6ryDnzyV+0nQoCfOKt4G6mZoUtsBBKDj398sbu+wn3yvzA3d6VC9hpthvLW\n+do9ZYLoMSDZv1V96ctdqbktBkoNC6Vvpa1S15phxbS5zLC5fSlR67tTTc5o\naRtVC18EUehA89NsFC5UFynXWc68h/APhd5xOKMLpiXXhAGP5VjoClRxZfba\nCuZ8UMqCAe4/O+Haq8wm745p9Cz6wFMHHWkAjXXYX4Rvd7feCoD/pJ+XT04m\nzImENbG97XZh11RJxJ6wgt9NhFrgDKaiTFA76eOdtXCQDEmkBzDN7Mr2I5HZ\nhge9\r\n=gH25\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.39.7.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.13","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.3","dependencies":{"@fluidframework/aqueduct":"^0.39.7","@fluidframework/runtime-utils":"^0.39.7","@fluidframework/core-interfaces":"^0.39.7","@fluidframework/container-runtime":"^0.39.7","@fluidframework/common-definitions":"^0.20.0","@fluidframework/protocol-definitions":"^0.1024.0","@fluidframework/shared-summary-block":"^0.39.7","@fluidframework/container-runtime-definitions":"^0.39.7"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.22.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.39.7","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.39.7_1626984564051_0.5942976677507599","host":"s3://npm-registry-packages"}},"0.39.8":{"name":"@fluidframework/last-edited-experimental","version":"0.39.8","author":{"name":"Microsoft and contributors"},"license":"MIT","_id":"@fluidframework/last-edited-experimental@0.39.8","maintainers":[{"name":"sky.jokiel","email":"sky.jokiel@outlook.com"},{"name":"curtisman","email":"curtism@microsoft.com"},{"name":"danroney","email":"daroney@microsoft.com"}],"homepage":"https://fluidframework.com","bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"nyc":{"all":true,"exclude":["src/test/**/*.ts","dist/test/**/*.js"],"include":["src/**/*.ts","dist/**/*.js"],"reporter":["cobertura","html","text"],"cache-dir":"nyc/.cache","report-dir":"nyc/report","temp-directory":"nyc/.nyc_output","exclude-after-remap":false},"dist":{"shasum":"390b8280db4e2f4e2bcd9bb8b1e4029c4bd968bf","tarball":"https://registry.npmjs.org/@fluidframework/last-edited-experimental/-/last-edited-experimental-0.39.8.tgz","fileCount":61,"integrity":"sha512-f3XSVVyyDyetg8DMgltNcYLGsz+0eWyf9ldViEnydzLxhG/gz38ihgjqzpkBzBWmS1R44sGI7uICKXs7UKlH2A==","signatures":[{"sig":"MEYCIQC2ZiStxCtAz2dUv7BEg06mTEzdwU6/rrYvdw5pmGaiqwIhAKKB6a96NGHEcRS1YUcXVZUQzNxPnud9TdAB5XVhCzSk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":75820,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/y5QCRA9TVsSAnZWagAAbuQQAJhlYLl6EJS/5p6yjfty\n/MmHvsl1bRJjEqLJY4Ynw296KUK0sScYtzSYL4B79JhDIU+LFoXoLWh73+xa\nhF96Ju9z3FbwQ0GBkTCT7ak2x0l8BOG0/RI1gV/U9C/Nm5fl5Brxmv+tO8XO\nrKl2eRMUM+jDBhqpGQmLo6H5421aRE1CZMjD+vHLVmy0xoIJXw7pMsyR8Ejk\noaC0kp9Phzcr2vztduZg7JxrZqYSimnoDgjYgwEFcmFZie5CUbcPoiIgKtSC\nju6b29apsz0Pw5NlPULnvp9nquRd3VwtT9sEPYatZNHp6FDVouCYoBwvb8Bx\naO/Lrg0gWNOAx37YyZcXoH29PQmNwENe459qRH7d7jRfkTCPeD5MlGhCKJ4Q\nfb0VBc4h328KvICNl9bF4g5Hg26XI4XIXBc4oRqEL8UOPBwqxhqTFeGQ9EV9\noa5yLApuTlRcuGX7qp6NgTgeDk9M4h1h5I0OPbtUfLRsdEqTLiDOnX3NH7Gy\nxWIqarPXaukHqyEu4vAzVFXp9wtH7uuZXEvoB+eT1OxFLJdY7dpcRWZCTiAc\nMkjxP2VRTYpUgmjUCarEmNBeldFwXLfqXR9y1XHsgA7jBxHDpJGhVe3Cvx9D\nV/X3oTbgdVmIbYAY0PwsUtJ/q9tFLZDpeQIkbFSj2IALAAXGhOP19yqkAfG8\ngbv+\r\n=yEdy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","_from":"file:fluidframework-last-edited-experimental-0.39.8.tgz","types":"dist/index.d.ts","module":"lib/index.js","readme":"# @fluidframework/last-edited-experimental\n\nLastEditedTracker tracks the last edit to a document, such as the client who last edited the document and the time it happened.\n\nIt is created by passing a `SharedSummaryBlock`:\n```\nconstructor(private readonly sharedSummaryBlock: SharedSummaryBlock);\n```\nIt uses the SharedSummaryBlock to store the last edit details.\n\n## API\n\nIt provides the following APIs to get and update the last edit details:\n\n```\npublic getLastEditDetails(): ILastEditDetails | undefined;\npublic updateLastEditDetails(message: ISequencedDocumentMessage);\n```\n\nThe update should always be called in response to a remote op because:\n1. It updates its state from the remote op.\n2. It uses a SharedSummaryBlock as storage which must be set in response to a remote op.\n\nThe details returned in getLastEditDetails contain the `IUser` object and the `timestamp` of the last edit.\n\n# Last Edited Tracker Data Store\n\nLastEditedTrackerDataObject is a runtime data store built on top of the LastEditedTracker. It creates and manages the SharedSummaryBlock so that the developer doesn't have to know about it or manage it.\n\nIt implements IProvideFluidLastEditedTracker and returns an IFluidLastEditedTracker which is an instance of LastEditedTracker above.\n\n# Setup\n\nThis package also provides a `setupLastEditedTrackerForContainer` method that can be used to set up a data store that provides IFluidLastEditedTracker to track last edited in a Container:\n- This setup function should be called during container instantiation so that ops are not missed.\n- Registers an \"op\" listener on the runtime. On each message, it calls the shouldDiscardMessageFn to check if the message should be discarded. It also discards all scheduler message. If a message is not discarded, it passes the last edited information from the message to the last edited tracker in the data store.\n\nNote:\n- By default, message that are not of `\"Attach\"` and `\"Operation\"` type are discarded as per the `shouldDiscardMessageDefault` function:\n```\nfunction shouldDiscardMessageDefault(message: ISequencedDocumentMessage) {\n    if (message.type === MessageType.Attach || message.type === MessageType.Operation) {\n        return false;\n    }\n    return true;\n}.\n```\n- To discard specific ops, provide the `shouldDiscardMessageFn` funtion that takes in the message and returns a boolean indicating if the message should be discarded.\n\n# Usage\n\n## For tracking the last edit on a Container:\n\nIn instantiateRuntime, create a data store that implements IFluidLastEditedTracker. Then call `setupLastEditedTrackerForContainer` with the id of the data store:\n```\npublic async instantiateRuntime(context: IContainerContext): Promise<IRuntime> {\n    const dataStoreId = \"root\";\n\n    // Create the ContainerRuntime\n    const runtime = await ContainerRuntime.load(...);\n\n    if (!runtime.existing) {\n        // On first boot create the root data store with id `dataStoreId`.\n        await runtime.createDataStore(dataStoreId, \"lastEditedTracker\");\n    }\n\n    setupLastEditedTrackerForContainer(dataStoreId, runtime);\n\n    return runtime;\n}\n```\n\nThis will make sure that the root data store loads before any other data store and it tracks every op in the Container.\n\nThe IFluidLastEditedTracker can be retrieved from the root data store:\n```\nconst response = await containerRuntime.request({ url: \"/\" });\nconst root = response.value;\nconst lastEditedTracker = root.IFluidLastEditedTracker;\n```\n","scripts":{"tsc":"tsc","lint":"npm run eslint","build":"npm run build:genver && concurrently npm:build:compile npm:lint","clean":"rimraf dist lib *.tsbuildinfo *.build.log","tsfmt":"tsfmt --verify","eslint":"eslint --format stylish src","lint:fix":"npm run eslint:fix","tsfmt:fix":"tsfmt --replace","build:docs":"api-extractor run --local && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/","build:full":"npm run build","eslint:fix":"eslint --format stylish src --fix","build:esnext":"tsc --project ./tsconfig.esnext.json","build:genver":"gen-version","build:compile":"concurrently npm:tsc npm:build:esnext","build:compile:min":"npm run build:compile","build:full:compile":"npm run build:compile"},"_npmUser":{"name":"curtisman","email":"curtism@microsoft.com"},"_resolved":"","_integrity":"","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"_npmVersion":"6.14.13","description":"Tracks the last edited information in the Container.","directories":{},"sideEffects":false,"_nodeVersion":"12.22.3","dependencies":{"@fluidframework/aqueduct":"^0.39.8","@fluidframework/runtime-utils":"^0.39.8","@fluidframework/core-interfaces":"^0.39.8","@fluidframework/container-runtime":"^0.39.8","@fluidframework/common-definitions":"^0.20.0","@fluidframework/protocol-definitions":"^0.1024.0","@fluidframework/shared-summary-block":"^0.39.8","@fluidframework/container-runtime-definitions":"^0.39.8"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"nyc":"^15.0.0","mocha":"^8.1.1","eslint":"~7.18.0","rimraf":"^2.6.2","copyfiles":"^2.1.0","typescript":"~4.1.3","@types/node":"^12.19.0","@types/mocha":"^5.2.5","concurrently":"^5.2.0","eslint-plugin-react":"~7.22.0","eslint-plugin-import":"~2.22.1","typescript-formatter":"7.1.0","eslint-plugin-no-null":"~1.0.2","eslint-plugin-unicorn":"~26.0.1","@microsoft/api-extractor":"^7.13.1","@typescript-eslint/parser":"~4.14.0","eslint-plugin-prefer-arrow":"~1.2.2","@fluidframework/build-common":"^0.22.0","eslint-plugin-eslint-comments":"~3.2.0","@fluidframework/mocha-test-setup":"^0.39.8","@typescript-eslint/eslint-plugin":"~4.14.0","@fluidframework/eslint-config-fluid":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/last-edited-experimental_0.39.8_1627336272519_0.7954154858589046","host":"s3://npm-registry-packages"}}},"time":{"created":"2020-09-01T04:27:41.733Z","modified":"2026-07-29T21:15:27.984Z","0.26.0-3177":"2020-09-01T04:27:42.129Z","0.26.0":"2020-09-03T23:03:43.934Z","0.26.1":"2020-09-19T22:20:02.298Z","0.27.0":"2020-09-23T22:36:25.378Z","0.26.2":"2020-09-29T21:39:54.526Z","0.26.3":"2020-10-06T17:15:58.557Z","0.27.1":"2020-10-16T16:41:21.622Z","0.27.2":"2020-10-19T23:47:05.870Z","0.26.4":"2020-10-21T19:07:37.464Z","0.26.5":"2020-10-22T01:12:59.543Z","0.27.3":"2020-10-22T01:14:04.504Z","0.26.6":"2020-10-22T13:50:53.375Z","0.27.4":"2020-10-22T13:51:10.031Z","0.26.7":"2020-10-22T18:45:59.953Z","0.27.5":"2020-10-22T18:46:32.295Z","0.26.8":"2020-10-23T00:22:31.802Z","0.27.6":"2020-10-23T18:10:03.851Z","0.26.9":"2020-10-23T22:56:21.538Z","0.27.7":"2020-10-26T20:16:27.876Z","0.27.8":"2020-10-27T22:12:11.882Z","0.26.10":"2020-10-28T01:46:00.004Z","0.27.9":"2020-10-29T20:56:40.603Z","0.28.0":"2020-10-30T15:55:26.257Z","0.27.10":"2020-10-30T17:31:35.571Z","0.28.1":"2020-10-30T22:36:55.813Z","0.28.2":"2020-10-31T00:46:48.360Z","0.27.11":"2020-11-02T22:11:52.659Z","0.28.3":"2020-11-04T16:06:20.238Z","0.28.4":"2020-11-04T23:16:54.401Z","0.27.12":"2020-11-04T23:20:55.169Z","0.28.5":"2020-11-05T22:34:02.705Z","0.27.13":"2020-11-05T22:34:17.879Z","0.28.6":"2020-11-10T17:13:06.186Z","0.27.14":"2020-11-10T18:46:00.616Z","0.27.15":"2020-11-11T23:23:57.810Z","0.28.7":"2020-11-12T00:15:16.873Z","0.29.0":"2020-11-16T23:08:56.531Z","0.28.8":"2020-11-18T01:05:53.781Z","0.29.1":"2020-11-18T01:31:24.717Z","0.29.2":"2020-11-18T06:04:18.000Z","0.28.9":"2020-11-18T06:19:19.947Z","0.29.3":"2020-11-19T22:08:13.360Z","0.29.4":"2020-11-23T19:41:24.263Z","0.30.0":"2020-12-02T01:44:14.879Z","0.30.1":"2020-12-04T22:16:15.767Z","0.30.2":"2020-12-10T17:50:07.623Z","0.30.3":"2020-12-11T00:23:16.689Z","0.30.4":"2020-12-12T01:30:19.975Z","0.31.0":"2020-12-17T11:30:06.893Z","0.31.1":"2020-12-23T00:01:45.724Z","0.32.0":"2021-01-07T00:25:35.426Z","0.32.1":"2021-01-07T03:23:19.790Z","0.32.2":"2021-01-21T02:46:18.109Z","0.32.3":"2021-01-21T23:06:32.316Z","0.31.2":"2021-01-22T01:39:52.023Z","0.33.0-13708":"2021-01-22T20:22:06.496Z","0.33.0":"2021-01-23T01:12:15.399Z","0.33.1":"2021-01-27T21:27:15.843Z","0.33.2":"2021-01-28T17:50:18.198Z","0.32.4":"2021-01-28T18:11:36.047Z","0.32.5":"2021-01-29T01:27:04.799Z","0.33.3":"2021-01-29T01:42:49.006Z","0.34.0-14942":"2021-02-02T17:56:10.344Z","0.34.0":"2021-02-03T21:27:57.100Z","0.34.1":"2021-02-08T21:08:00.632Z","0.35.0-16170":"2021-02-16T18:55:53.292Z","0.35.0-16887":"2021-02-22T19:22:34.750Z","0.35.0":"2021-02-23T04:12:10.147Z","0.35.1":"2021-02-24T22:39:24.215Z","0.35.2":"2021-03-01T23:28:45.772Z","0.33.4":"2021-03-02T21:47:00.140Z","0.34.2":"2021-03-02T21:47:09.278Z","0.35.3":"2021-03-03T18:22:39.591Z","0.34.3":"2021-03-03T20:56:33.523Z","0.33.5":"2021-03-04T18:10:21.645Z","0.35.4":"2021-03-05T18:27:05.429Z","0.36.0-18883":"2021-03-09T22:44:34.887Z","0.36.0":"2021-03-10T03:22:09.458Z","0.35.5":"2021-03-19T17:20:16.747Z","0.36.1":"2021-03-19T19:28:17.859Z","0.35.6":"2021-03-19T19:45:46.644Z","0.35.7-20343":"2021-03-23T02:16:39.952Z","0.36.2-20364":"2021-03-23T18:47:12.689Z","0.37.0-20427":"2021-03-24T19:59:06.592Z","0.37.0-20517":"2021-03-25T20:54:12.040Z","0.37.0":"2021-03-26T07:04:12.585Z","0.37.1":"2021-03-29T18:48:19.844Z","0.37.2":"2021-03-29T23:41:55.291Z","0.37.3":"2021-04-06T18:22:15.797Z","0.37.3-21287":"2021-04-07T22:03:41.056Z","0.37.4":"2021-04-08T20:50:34.282Z","0.38.0-21934":"2021-04-14T18:25:37.824Z","0.38.0-22000":"2021-04-15T00:26:34.995Z","0.38.0-22040":"2021-04-15T16:58:23.870Z","0.38.0":"2021-04-15T23:47:12.391Z","0.38.1":"2021-04-21T00:21:13.795Z","0.38.2":"2021-04-21T21:58:08.465Z","0.38.3":"2021-04-23T19:06:36.073Z","0.38.4":"2021-04-23T23:16:34.103Z","0.39.0-23254":"2021-04-27T17:14:58.739Z","0.39.0-23272":"2021-04-27T18:17:59.251Z","0.39.0":"2021-04-28T00:10:04.573Z","0.39.1":"2021-05-06T01:27:31.952Z","0.39.2":"2021-05-11T22:34:14.974Z","0.39.3":"2021-05-13T17:27:01.013Z","0.40.0-25719":"2021-05-24T19:00:07.587Z","0.40.0-25851":"2021-05-25T22:37:16.625Z","0.41.0-25957":"2021-05-26T20:40:26.981Z","0.39.4":"2021-05-27T16:43:54.232Z","0.40.0":"2021-05-27T18:05:35.281Z","0.40.1":"2021-06-04T00:33:24.040Z","0.40.2":"2021-06-07T19:46:43.299Z","0.40.3":"2021-06-15T19:28:24.387Z","0.39.5":"2021-07-07T21:59:07.844Z","0.39.6":"2021-07-08T20:51:40.683Z","0.39.7":"2021-07-22T20:09:24.213Z","0.39.8":"2021-07-26T21:51:12.649Z"},"bugs":{"url":"https://github.com/microsoft/FluidFramework/issues"},"author":{"name":"Microsoft and contributors"},"license":"MIT","homepage":"https://fluidframework.com","repository":{"url":"git+https://github.com/microsoft/FluidFramework.git","type":"git"},"description":"Tracks the last edited information in the Container.","maintainers":[{"email":"ffsa@microsoft.com","name":"ms-fluid-bot"},{"email":"microsoft-oss-publishing@microsoft.com","name":"microsoft-oss-releases"},{"email":"npmjs@microsoft.com","name":"microsoft1es"}],"readme":"","readmeFilename":""}