@fluidframework/tinylicious-driver 2.0.0-internal.2.2.1 → 2.0.0-internal.2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"insecureTinyliciousTokenProvider.d.ts","sourceRoot":"","sources":["../src/insecureTinyliciousTokenProvider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAgB,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EACH,cAAc,EACd,cAAc,EACjB,MAAM,sCAAsC,CAAC;AAK9C;;;GAGG;AACH,qBAAa,gCAAiC,YAAW,cAAc;IAE/D;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;;IARxB;;;;;;;OAOG;IACc,MAAM,CAAC,yBAAa;IAG5B,iBAAiB,CAC1B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,CAAC;IAOb,iBAAiB,CAC1B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,CAAC;IAO1B,OAAO,CAAC,cAAc;CAgCzB"}
1
+ {"version":3,"file":"insecureTinyliciousTokenProvider.d.ts","sourceRoot":"","sources":["../src/insecureTinyliciousTokenProvider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAgB,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EACH,cAAc,EACd,cAAc,EACjB,MAAM,sCAAsC,CAAC;AAK9C;;;GAGG;AACH,qBAAa,gCAAiC,YAAW,cAAc;IAE/D;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;;IARxB;;;;;;;OAOG;IACc,MAAM,CAAC,yBAAa;IAG5B,iBAAiB,CAC1B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,CAAC;IAOb,iBAAiB,CAC1B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,CAAC;IAO1B,OAAO,CAAC,cAAc;CAkCzB"}
@@ -41,7 +41,7 @@ class InsecureTinyliciousTokenProvider {
41
41
  getSignedToken(tenantId, documentId, lifetime = 60 * 60, ver = "1.0") {
42
42
  var _a;
43
43
  // Current time in seconds
44
- const now = Math.round(new Date().getTime() / 1000);
44
+ const now = Math.round(Date.now() / 1000);
45
45
  const user = { id: (0, uuid_1.v4)(), name: (0, server_services_client_1.getRandomName)() };
46
46
  const claims = {
47
47
  documentId: documentId !== null && documentId !== void 0 ? documentId : "",
@@ -57,7 +57,10 @@ class InsecureTinyliciousTokenProvider {
57
57
  ver,
58
58
  };
59
59
  const utf8Key = { utf8: "12345" };
60
- return jsrsasign_1.KJUR.jws.JWS.sign(null, JSON.stringify({ alg: "HS256", typ: "JWT" }), claims, utf8Key);
60
+ return jsrsasign_1.KJUR.jws.JWS.sign(
61
+ // External API uses `null`
62
+ // eslint-disable-next-line unicorn/no-null
63
+ null, JSON.stringify({ alg: "HS256", typ: "JWT" }), claims, utf8Key);
61
64
  }
62
65
  }
63
66
  exports.InsecureTinyliciousTokenProvider = InsecureTinyliciousTokenProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"insecureTinyliciousTokenProvider.js","sourceRoot":"","sources":["../src/insecureTinyliciousTokenProvider.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+EAA+E;AAK/E,mFAAuE;AACvE,yCAA8C;AAC9C,+BAAkC;AAElC;;;GAGG;AACH,MAAa,gCAAgC;IACzC;IACI;;;;;;;OAOG;IACc,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IACtC,CAAC;IAEG,KAAK,CAAC,iBAAiB,CAC1B,QAAgB,EAChB,UAAmB;QAEnB,OAAO;YACH,SAAS,EAAE,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;SACjD,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC1B,QAAgB,EAChB,UAAkB;QAElB,OAAO;YACH,SAAS,EAAE,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;SACjD,CAAC;IACN,CAAC;IAEO,cAAc,CAClB,QAAgB,EAChB,UAA8B,EAC9B,WAAmB,EAAE,GAAG,EAAE,EAC1B,MAAc,KAAK;;QAEnB,0BAA0B;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,IAAA,SAAI,GAAE,EAAE,IAAI,EAAE,IAAA,sCAAa,GAAE,EAAE,CAAC;QAEnD,MAAM,MAAM,GAAiB;YACzB,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE;YAC5B,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI;gBACnB,gCAAS,CAAC,OAAO;gBACjB,gCAAS,CAAC,QAAQ;gBAClB,gCAAS,CAAC,YAAY;aACzB;YACD,QAAQ;YACR,IAAI;YACJ,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG,GAAG,QAAQ;YACnB,GAAG;SACN,CAAC;QAEF,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAClC,OAAO,gBAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CACzB,IAAI,EACJ,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAC5C,MAAM,EACN,OAAO,CACV,CAAC;IACN,CAAC;CACJ;AAjED,4EAiEC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ScopeType, ITokenClaims } from \"@fluidframework/protocol-definitions\";\nimport {\n ITokenProvider,\n ITokenResponse,\n} from \"@fluidframework/routerlicious-driver\";\nimport { getRandomName } from \"@fluidframework/server-services-client\";\nimport { KJUR as jsrsasign } from \"jsrsasign\";\nimport { v4 as uuid } from \"uuid\";\n\n/**\n * As the name implies this is not secure and should not be used in production. It simply makes the example easier\n * to get up and running.\n */\nexport class InsecureTinyliciousTokenProvider implements ITokenProvider {\n constructor(\n /**\n * Optional. Override of scopes. If a param is not provided, InsecureTinyliciousTokenProvider\n * will use the default scopes which are document read, write and summarizer write.\n *\n * @param scopes - See {@link @fluidframework/protocol-definitions#ITokenClaims.scopes}\n *\n * @defaultValue - [ ScopeType.DocRead, ScopeType.DocWrite, ScopeType.SummaryWrite ]\n */\n private readonly scopes?: ScopeType[],\n ) {}\n\n public async fetchOrdererToken(\n tenantId: string,\n documentId?: string,\n ): Promise<ITokenResponse> {\n return {\n fromCache: true,\n jwt: this.getSignedToken(tenantId, documentId),\n };\n }\n\n public async fetchStorageToken(\n tenantId: string,\n documentId: string,\n ): Promise<ITokenResponse> {\n return {\n fromCache: true,\n jwt: this.getSignedToken(tenantId, documentId),\n };\n }\n\n private getSignedToken(\n tenantId: string,\n documentId: string | undefined,\n lifetime: number = 60 * 60,\n ver: string = \"1.0\"\n ): string {\n // Current time in seconds\n const now = Math.round(new Date().getTime() / 1000);\n const user = { id: uuid(), name: getRandomName() };\n\n const claims: ITokenClaims = {\n documentId: documentId ?? \"\",\n scopes: this.scopes ?? [\n ScopeType.DocRead,\n ScopeType.DocWrite,\n ScopeType.SummaryWrite,\n ],\n tenantId,\n user,\n iat: now,\n exp: now + lifetime,\n ver,\n };\n\n const utf8Key = { utf8: \"12345\" };\n return jsrsasign.jws.JWS.sign(\n null,\n JSON.stringify({ alg: \"HS256\", typ: \"JWT\" }),\n claims,\n utf8Key,\n );\n }\n}\n"]}
1
+ {"version":3,"file":"insecureTinyliciousTokenProvider.js","sourceRoot":"","sources":["../src/insecureTinyliciousTokenProvider.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+EAA+E;AAK/E,mFAAuE;AACvE,yCAA8C;AAC9C,+BAAkC;AAElC;;;GAGG;AACH,MAAa,gCAAgC;IACzC;IACI;;;;;;;OAOG;IACc,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IACtC,CAAC;IAEG,KAAK,CAAC,iBAAiB,CAC1B,QAAgB,EAChB,UAAmB;QAEnB,OAAO;YACH,SAAS,EAAE,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;SACjD,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC1B,QAAgB,EAChB,UAAkB;QAElB,OAAO;YACH,SAAS,EAAE,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;SACjD,CAAC;IACN,CAAC;IAEO,cAAc,CAClB,QAAgB,EAChB,UAA8B,EAC9B,WAAmB,EAAE,GAAG,EAAE,EAC1B,MAAc,KAAK;;QAEnB,0BAA0B;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,IAAA,SAAI,GAAE,EAAE,IAAI,EAAE,IAAA,sCAAa,GAAE,EAAE,CAAC;QAEnD,MAAM,MAAM,GAAiB;YACzB,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE;YAC5B,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI;gBACnB,gCAAS,CAAC,OAAO;gBACjB,gCAAS,CAAC,QAAQ;gBAClB,gCAAS,CAAC,YAAY;aACzB;YACD,QAAQ;YACR,IAAI;YACJ,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG,GAAG,QAAQ;YACnB,GAAG;SACN,CAAC;QAEF,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAClC,OAAO,gBAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;QACzB,2BAA2B;QAC3B,2CAA2C;QAC3C,IAAI,EACJ,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAC5C,MAAM,EACN,OAAO,CACV,CAAC;IACN,CAAC;CACJ;AAnED,4EAmEC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ScopeType, ITokenClaims } from \"@fluidframework/protocol-definitions\";\nimport {\n ITokenProvider,\n ITokenResponse,\n} from \"@fluidframework/routerlicious-driver\";\nimport { getRandomName } from \"@fluidframework/server-services-client\";\nimport { KJUR as jsrsasign } from \"jsrsasign\";\nimport { v4 as uuid } from \"uuid\";\n\n/**\n * As the name implies this is not secure and should not be used in production. It simply makes the example easier\n * to get up and running.\n */\nexport class InsecureTinyliciousTokenProvider implements ITokenProvider {\n constructor(\n /**\n * Optional. Override of scopes. If a param is not provided, InsecureTinyliciousTokenProvider\n * will use the default scopes which are document read, write and summarizer write.\n *\n * @param scopes - See {@link @fluidframework/protocol-definitions#ITokenClaims.scopes}\n *\n * @defaultValue - [ ScopeType.DocRead, ScopeType.DocWrite, ScopeType.SummaryWrite ]\n */\n private readonly scopes?: ScopeType[],\n ) {}\n\n public async fetchOrdererToken(\n tenantId: string,\n documentId?: string,\n ): Promise<ITokenResponse> {\n return {\n fromCache: true,\n jwt: this.getSignedToken(tenantId, documentId),\n };\n }\n\n public async fetchStorageToken(\n tenantId: string,\n documentId: string,\n ): Promise<ITokenResponse> {\n return {\n fromCache: true,\n jwt: this.getSignedToken(tenantId, documentId),\n };\n }\n\n private getSignedToken(\n tenantId: string,\n documentId: string | undefined,\n lifetime: number = 60 * 60,\n ver: string = \"1.0\"\n ): string {\n // Current time in seconds\n const now = Math.round(Date.now() / 1000);\n const user = { id: uuid(), name: getRandomName() };\n\n const claims: ITokenClaims = {\n documentId: documentId ?? \"\",\n scopes: this.scopes ?? [\n ScopeType.DocRead,\n ScopeType.DocWrite,\n ScopeType.SummaryWrite,\n ],\n tenantId,\n user,\n iat: now,\n exp: now + lifetime,\n ver,\n };\n\n const utf8Key = { utf8: \"12345\" };\n return jsrsasign.jws.JWS.sign(\n // External API uses `null`\n // eslint-disable-next-line unicorn/no-null\n null,\n JSON.stringify({ alg: \"HS256\", typ: \"JWT\" }),\n claims,\n utf8Key,\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"insecureTinyliciousTokenProvider.d.ts","sourceRoot":"","sources":["../src/insecureTinyliciousTokenProvider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAgB,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EACH,cAAc,EACd,cAAc,EACjB,MAAM,sCAAsC,CAAC;AAK9C;;;GAGG;AACH,qBAAa,gCAAiC,YAAW,cAAc;IAE/D;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;;IARxB;;;;;;;OAOG;IACc,MAAM,CAAC,yBAAa;IAG5B,iBAAiB,CAC1B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,CAAC;IAOb,iBAAiB,CAC1B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,CAAC;IAO1B,OAAO,CAAC,cAAc;CAgCzB"}
1
+ {"version":3,"file":"insecureTinyliciousTokenProvider.d.ts","sourceRoot":"","sources":["../src/insecureTinyliciousTokenProvider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAgB,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EACH,cAAc,EACd,cAAc,EACjB,MAAM,sCAAsC,CAAC;AAK9C;;;GAGG;AACH,qBAAa,gCAAiC,YAAW,cAAc;IAE/D;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;;IARxB;;;;;;;OAOG;IACc,MAAM,CAAC,yBAAa;IAG5B,iBAAiB,CAC1B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,CAAC;IAOb,iBAAiB,CAC1B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,CAAC;IAO1B,OAAO,CAAC,cAAc;CAkCzB"}
@@ -38,7 +38,7 @@ export class InsecureTinyliciousTokenProvider {
38
38
  getSignedToken(tenantId, documentId, lifetime = 60 * 60, ver = "1.0") {
39
39
  var _a;
40
40
  // Current time in seconds
41
- const now = Math.round(new Date().getTime() / 1000);
41
+ const now = Math.round(Date.now() / 1000);
42
42
  const user = { id: uuid(), name: getRandomName() };
43
43
  const claims = {
44
44
  documentId: documentId !== null && documentId !== void 0 ? documentId : "",
@@ -54,7 +54,10 @@ export class InsecureTinyliciousTokenProvider {
54
54
  ver,
55
55
  };
56
56
  const utf8Key = { utf8: "12345" };
57
- return jsrsasign.jws.JWS.sign(null, JSON.stringify({ alg: "HS256", typ: "JWT" }), claims, utf8Key);
57
+ return jsrsasign.jws.JWS.sign(
58
+ // External API uses `null`
59
+ // eslint-disable-next-line unicorn/no-null
60
+ null, JSON.stringify({ alg: "HS256", typ: "JWT" }), claims, utf8Key);
58
61
  }
59
62
  }
60
63
  //# sourceMappingURL=insecureTinyliciousTokenProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"insecureTinyliciousTokenProvider.js","sourceRoot":"","sources":["../src/insecureTinyliciousTokenProvider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAgB,MAAM,sCAAsC,CAAC;AAK/E,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC;;;GAGG;AACH,MAAM,OAAO,gCAAgC;IACzC;IACI;;;;;;;OAOG;IACc,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IACtC,CAAC;IAEG,KAAK,CAAC,iBAAiB,CAC1B,QAAgB,EAChB,UAAmB;QAEnB,OAAO;YACH,SAAS,EAAE,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;SACjD,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC1B,QAAgB,EAChB,UAAkB;QAElB,OAAO;YACH,SAAS,EAAE,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;SACjD,CAAC;IACN,CAAC;IAEO,cAAc,CAClB,QAAgB,EAChB,UAA8B,EAC9B,WAAmB,EAAE,GAAG,EAAE,EAC1B,MAAc,KAAK;;QAEnB,0BAA0B;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC;QAEnD,MAAM,MAAM,GAAiB;YACzB,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE;YAC5B,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI;gBACnB,SAAS,CAAC,OAAO;gBACjB,SAAS,CAAC,QAAQ;gBAClB,SAAS,CAAC,YAAY;aACzB;YACD,QAAQ;YACR,IAAI;YACJ,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG,GAAG,QAAQ;YACnB,GAAG;SACN,CAAC;QAEF,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CACzB,IAAI,EACJ,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAC5C,MAAM,EACN,OAAO,CACV,CAAC;IACN,CAAC;CACJ","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ScopeType, ITokenClaims } from \"@fluidframework/protocol-definitions\";\nimport {\n ITokenProvider,\n ITokenResponse,\n} from \"@fluidframework/routerlicious-driver\";\nimport { getRandomName } from \"@fluidframework/server-services-client\";\nimport { KJUR as jsrsasign } from \"jsrsasign\";\nimport { v4 as uuid } from \"uuid\";\n\n/**\n * As the name implies this is not secure and should not be used in production. It simply makes the example easier\n * to get up and running.\n */\nexport class InsecureTinyliciousTokenProvider implements ITokenProvider {\n constructor(\n /**\n * Optional. Override of scopes. If a param is not provided, InsecureTinyliciousTokenProvider\n * will use the default scopes which are document read, write and summarizer write.\n *\n * @param scopes - See {@link @fluidframework/protocol-definitions#ITokenClaims.scopes}\n *\n * @defaultValue - [ ScopeType.DocRead, ScopeType.DocWrite, ScopeType.SummaryWrite ]\n */\n private readonly scopes?: ScopeType[],\n ) {}\n\n public async fetchOrdererToken(\n tenantId: string,\n documentId?: string,\n ): Promise<ITokenResponse> {\n return {\n fromCache: true,\n jwt: this.getSignedToken(tenantId, documentId),\n };\n }\n\n public async fetchStorageToken(\n tenantId: string,\n documentId: string,\n ): Promise<ITokenResponse> {\n return {\n fromCache: true,\n jwt: this.getSignedToken(tenantId, documentId),\n };\n }\n\n private getSignedToken(\n tenantId: string,\n documentId: string | undefined,\n lifetime: number = 60 * 60,\n ver: string = \"1.0\"\n ): string {\n // Current time in seconds\n const now = Math.round(new Date().getTime() / 1000);\n const user = { id: uuid(), name: getRandomName() };\n\n const claims: ITokenClaims = {\n documentId: documentId ?? \"\",\n scopes: this.scopes ?? [\n ScopeType.DocRead,\n ScopeType.DocWrite,\n ScopeType.SummaryWrite,\n ],\n tenantId,\n user,\n iat: now,\n exp: now + lifetime,\n ver,\n };\n\n const utf8Key = { utf8: \"12345\" };\n return jsrsasign.jws.JWS.sign(\n null,\n JSON.stringify({ alg: \"HS256\", typ: \"JWT\" }),\n claims,\n utf8Key,\n );\n }\n}\n"]}
1
+ {"version":3,"file":"insecureTinyliciousTokenProvider.js","sourceRoot":"","sources":["../src/insecureTinyliciousTokenProvider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAgB,MAAM,sCAAsC,CAAC;AAK/E,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC;;;GAGG;AACH,MAAM,OAAO,gCAAgC;IACzC;IACI;;;;;;;OAOG;IACc,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IACtC,CAAC;IAEG,KAAK,CAAC,iBAAiB,CAC1B,QAAgB,EAChB,UAAmB;QAEnB,OAAO;YACH,SAAS,EAAE,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;SACjD,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC1B,QAAgB,EAChB,UAAkB;QAElB,OAAO;YACH,SAAS,EAAE,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;SACjD,CAAC;IACN,CAAC;IAEO,cAAc,CAClB,QAAgB,EAChB,UAA8B,EAC9B,WAAmB,EAAE,GAAG,EAAE,EAC1B,MAAc,KAAK;;QAEnB,0BAA0B;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC;QAEnD,MAAM,MAAM,GAAiB;YACzB,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE;YAC5B,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI;gBACnB,SAAS,CAAC,OAAO;gBACjB,SAAS,CAAC,QAAQ;gBAClB,SAAS,CAAC,YAAY;aACzB;YACD,QAAQ;YACR,IAAI;YACJ,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG,GAAG,QAAQ;YACnB,GAAG;SACN,CAAC;QAEF,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;QACzB,2BAA2B;QAC3B,2CAA2C;QAC3C,IAAI,EACJ,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAC5C,MAAM,EACN,OAAO,CACV,CAAC;IACN,CAAC;CACJ","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ScopeType, ITokenClaims } from \"@fluidframework/protocol-definitions\";\nimport {\n ITokenProvider,\n ITokenResponse,\n} from \"@fluidframework/routerlicious-driver\";\nimport { getRandomName } from \"@fluidframework/server-services-client\";\nimport { KJUR as jsrsasign } from \"jsrsasign\";\nimport { v4 as uuid } from \"uuid\";\n\n/**\n * As the name implies this is not secure and should not be used in production. It simply makes the example easier\n * to get up and running.\n */\nexport class InsecureTinyliciousTokenProvider implements ITokenProvider {\n constructor(\n /**\n * Optional. Override of scopes. If a param is not provided, InsecureTinyliciousTokenProvider\n * will use the default scopes which are document read, write and summarizer write.\n *\n * @param scopes - See {@link @fluidframework/protocol-definitions#ITokenClaims.scopes}\n *\n * @defaultValue - [ ScopeType.DocRead, ScopeType.DocWrite, ScopeType.SummaryWrite ]\n */\n private readonly scopes?: ScopeType[],\n ) {}\n\n public async fetchOrdererToken(\n tenantId: string,\n documentId?: string,\n ): Promise<ITokenResponse> {\n return {\n fromCache: true,\n jwt: this.getSignedToken(tenantId, documentId),\n };\n }\n\n public async fetchStorageToken(\n tenantId: string,\n documentId: string,\n ): Promise<ITokenResponse> {\n return {\n fromCache: true,\n jwt: this.getSignedToken(tenantId, documentId),\n };\n }\n\n private getSignedToken(\n tenantId: string,\n documentId: string | undefined,\n lifetime: number = 60 * 60,\n ver: string = \"1.0\"\n ): string {\n // Current time in seconds\n const now = Math.round(Date.now() / 1000);\n const user = { id: uuid(), name: getRandomName() };\n\n const claims: ITokenClaims = {\n documentId: documentId ?? \"\",\n scopes: this.scopes ?? [\n ScopeType.DocRead,\n ScopeType.DocWrite,\n ScopeType.SummaryWrite,\n ],\n tenantId,\n user,\n iat: now,\n exp: now + lifetime,\n ver,\n };\n\n const utf8Key = { utf8: \"12345\" };\n return jsrsasign.jws.JWS.sign(\n // External API uses `null`\n // eslint-disable-next-line unicorn/no-null\n null,\n JSON.stringify({ alg: \"HS256\", typ: \"JWT\" }),\n claims,\n utf8Key,\n );\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/tinylicious-driver",
3
- "version": "2.0.0-internal.2.2.1",
3
+ "version": "2.0.0-internal.2.3.0",
4
4
  "description": "Driver for tinylicious",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -34,11 +34,11 @@
34
34
  "typetests:prepare": "flub generate typetests --prepare --dir . --pin"
35
35
  },
36
36
  "dependencies": {
37
- "@fluidframework/core-interfaces": ">=2.0.0-internal.2.2.1 <2.0.0-internal.3.0.0",
38
- "@fluidframework/driver-definitions": ">=2.0.0-internal.2.2.1 <2.0.0-internal.3.0.0",
39
- "@fluidframework/driver-utils": ">=2.0.0-internal.2.2.1 <2.0.0-internal.3.0.0",
37
+ "@fluidframework/core-interfaces": ">=2.0.0-internal.2.3.0 <2.0.0-internal.3.0.0",
38
+ "@fluidframework/driver-definitions": ">=2.0.0-internal.2.3.0 <2.0.0-internal.3.0.0",
39
+ "@fluidframework/driver-utils": ">=2.0.0-internal.2.3.0 <2.0.0-internal.3.0.0",
40
40
  "@fluidframework/protocol-definitions": "^1.1.0",
41
- "@fluidframework/routerlicious-driver": ">=2.0.0-internal.2.2.1 <2.0.0-internal.3.0.0",
41
+ "@fluidframework/routerlicious-driver": ">=2.0.0-internal.2.3.0 <2.0.0-internal.3.0.0",
42
42
  "@fluidframework/server-services-client": "^0.1038.2000",
43
43
  "jsrsasign": "^10.5.25",
44
44
  "uuid": "^8.3.1"
@@ -47,7 +47,7 @@
47
47
  "@fluid-tools/build-cli": "^0.7.0",
48
48
  "@fluidframework/build-common": "^1.1.0",
49
49
  "@fluidframework/build-tools": "^0.7.0",
50
- "@fluidframework/eslint-config-fluid": "^1.2.0",
50
+ "@fluidframework/eslint-config-fluid": "^2.0.0",
51
51
  "@fluidframework/test-tools": "^0.2.3074",
52
52
  "@fluidframework/tinylicious-driver-previous": "npm:@fluidframework/tinylicious-driver@2.0.0-internal.2.2.0",
53
53
  "@rushstack/eslint-config": "^2.5.1",
@@ -62,8 +62,9 @@
62
62
  "typescript": "~4.5.5"
63
63
  },
64
64
  "typeValidation": {
65
- "version": "2.0.0-internal.2.2.0",
66
- "baselineRange": "2.0.0-internal.2.2.0",
65
+ "version": "2.0.0-internal.2.3.0",
66
+ "baselineRange": ">=2.0.0-internal.2.2.0 <2.0.0-internal.2.3.0",
67
+ "baselineVersion": "2.0.0-internal.2.2.0",
67
68
  "broken": {}
68
69
  }
69
70
  }
@@ -56,7 +56,7 @@ export class InsecureTinyliciousTokenProvider implements ITokenProvider {
56
56
  ver: string = "1.0"
57
57
  ): string {
58
58
  // Current time in seconds
59
- const now = Math.round(new Date().getTime() / 1000);
59
+ const now = Math.round(Date.now() / 1000);
60
60
  const user = { id: uuid(), name: getRandomName() };
61
61
 
62
62
  const claims: ITokenClaims = {
@@ -75,6 +75,8 @@ export class InsecureTinyliciousTokenProvider implements ITokenProvider {
75
75
 
76
76
  const utf8Key = { utf8: "12345" };
77
77
  return jsrsasign.jws.JWS.sign(
78
+ // External API uses `null`
79
+ // eslint-disable-next-line unicorn/no-null
78
80
  null,
79
81
  JSON.stringify({ alg: "HS256", typ: "JWT" }),
80
82
  claims,