@atproto/oauth-scopes 0.0.1 → 0.0.2

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atproto/oauth-scopes
2
2
 
3
+ ## 0.0.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#4097](https://github.com/bluesky-social/atproto/pull/4097) [`c274bd1b3`](https://github.com/bluesky-social/atproto/commit/c274bd1b38813abd5b287f1c94dca1fd62854918) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Fix permission bug with `transition:email` scope
8
+
3
9
  ## 0.0.1
4
10
 
5
11
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"permission-set-transition.d.ts","sourceRoot":"","sources":["../src/permission-set-transition.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACd,MAAM,qBAAqB,CAAA;AAE5B;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,IAAI,oBAAoB,IAAI,OAAO,CAElC;IAED,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAED,IAAI,qBAAqB,IAAI,OAAO,CAEnC;IAEQ,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO;IAQlD,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;IAQ5C,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;IAQ5C,SAAS,CAAC,OAAO,EAAE,aAAa;CAiB1C"}
1
+ {"version":3,"file":"permission-set-transition.d.ts","sourceRoot":"","sources":["../src/permission-set-transition.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACd,MAAM,qBAAqB,CAAA;AAE5B;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,IAAI,oBAAoB,IAAI,OAAO,CAElC;IAED,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAED,IAAI,qBAAqB,IAAI,OAAO,CAEnC;IAEQ,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO;IAYlD,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;IAQ5C,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;IAQ5C,SAAS,CAAC,OAAO,EAAE,aAAa;CAiB1C"}
@@ -17,7 +17,9 @@ class PermissionSetTransition extends permission_set_js_1.PermissionSet {
17
17
  return this.scopes.has('transition:chat.bsky');
18
18
  }
19
19
  allowsAccount(options) {
20
- if (options.attr === 'email' && this.hasTransitionEmail) {
20
+ if (options.attr === 'email' &&
21
+ options.action === 'read' &&
22
+ this.hasTransitionEmail) {
21
23
  return true;
22
24
  }
23
25
  return super.allowsAccount(options);
@@ -1 +1 @@
1
- {"version":3,"file":"permission-set-transition.js","sourceRoot":"","sources":["../src/permission-set-transition.ts"],"names":[],"mappings":";;;AAAA,2DAM4B;AAE5B;;;GAGG;AACH,MAAa,uBAAwB,SAAQ,iCAAa;IACxD,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;IAC9C,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;IAC5C,CAAC;IAED,IAAI,qBAAqB;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;IAChD,CAAC;IAEQ,aAAa,CAAC,OAA0B;QAC/C,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IACrC,CAAC;IAEQ,UAAU,CAAC,OAAuB;QACzC,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IAEQ,UAAU,CAAC,OAAuB;QACzC,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IAEQ,SAAS,CAAC,OAAsB;QACvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;QAEvB,IAAI,IAAI,CAAC,oBAAoB,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/D,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,IAAI,CAAC,qBAAqB,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/D,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;CACF;AAtDD,0DAsDC"}
1
+ {"version":3,"file":"permission-set-transition.js","sourceRoot":"","sources":["../src/permission-set-transition.ts"],"names":[],"mappings":";;;AAAA,2DAM4B;AAE5B;;;GAGG;AACH,MAAa,uBAAwB,SAAQ,iCAAa;IACxD,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;IAC9C,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;IAC5C,CAAC;IAED,IAAI,qBAAqB;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;IAChD,CAAC;IAEQ,aAAa,CAAC,OAA0B;QAC/C,IACE,OAAO,CAAC,IAAI,KAAK,OAAO;YACxB,OAAO,CAAC,MAAM,KAAK,MAAM;YACzB,IAAI,CAAC,kBAAkB,EACvB,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IACrC,CAAC;IAEQ,UAAU,CAAC,OAAuB;QACzC,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IAEQ,UAAU,CAAC,OAAuB;QACzC,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IAEQ,SAAS,CAAC,OAAsB;QACvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;QAEvB,IAAI,IAAI,CAAC,oBAAoB,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/D,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,IAAI,CAAC,qBAAqB,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/D,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;CACF;AA1DD,0DA0DC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/oauth-scopes",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "license": "MIT",
5
5
  "description": "A library for manipulating and validating ATproto OAuth scopes in TypeScript.",
6
6
  "keywords": [
@@ -5,7 +5,7 @@ describe('PermissionSetTransition', () => {
5
5
  it('should allow account:email with transition:email', () => {
6
6
  const set = new PermissionSetTransition('transition:email account:repo')
7
7
  expect(set.allowsAccount({ attr: 'email', action: 'read' })).toBe(true)
8
- expect(set.allowsAccount({ attr: 'email', action: 'manage' })).toBe(true)
8
+ expect(set.allowsAccount({ attr: 'email', action: 'manage' })).toBe(false)
9
9
 
10
10
  expect(set.allowsAccount({ attr: 'repo', action: 'read' })).toBe(true)
11
11
  expect(set.allowsAccount({ attr: 'repo', action: 'manage' })).toBe(false)
@@ -24,7 +24,11 @@ export class PermissionSetTransition extends PermissionSet {
24
24
  }
25
25
 
26
26
  override allowsAccount(options: AccountScopeMatch): boolean {
27
- if (options.attr === 'email' && this.hasTransitionEmail) {
27
+ if (
28
+ options.attr === 'email' &&
29
+ options.action === 'read' &&
30
+ this.hasTransitionEmail
31
+ ) {
28
32
  return true
29
33
  }
30
34