@nymphjs/tilmeld-client 1.0.0-alpha.4 → 1.0.0-alpha.40

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
@@ -3,6 +3,170 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.0.0-alpha.40](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.39...v1.0.0-alpha.40) (2022-03-05)
7
+
8
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
9
+
10
+ # [1.0.0-alpha.39](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.38...v1.0.0-alpha.39) (2022-03-05)
11
+
12
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
13
+
14
+ # [1.0.0-alpha.38](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.37...v1.0.0-alpha.38) (2022-02-10)
15
+
16
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
17
+
18
+ # [1.0.0-alpha.37](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.36...v1.0.0-alpha.37) (2022-02-02)
19
+
20
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
21
+
22
+ # [1.0.0-alpha.36](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.35...v1.0.0-alpha.36) (2022-01-26)
23
+
24
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
25
+
26
+ # [1.0.0-alpha.35](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.34...v1.0.0-alpha.35) (2022-01-19)
27
+
28
+ ### Bug Fixes
29
+
30
+ - remove getClientConfig helper, which didn't support multiple nymph instances ([5a4b898](https://github.com/sciactive/nymphjs/commit/5a4b898ac2bf37dbd2a2dd4d32f2f1f805704739))
31
+
32
+ # [1.0.0-alpha.34](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.33...v1.0.0-alpha.34) (2022-01-08)
33
+
34
+ ### Bug Fixes
35
+
36
+ - packaging issue ([a61120c](https://github.com/sciactive/nymphjs/commit/a61120ca240e2758136e6b57c3f897bd32519984))
37
+
38
+ # [1.0.0-alpha.33](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.32...v1.0.0-alpha.33) (2022-01-08)
39
+
40
+ ### Bug Fixes
41
+
42
+ - require passing the user class to tilmeld components ([5b8d07e](https://github.com/sciactive/nymphjs/commit/5b8d07eba15318bf6046a5cb4a64fb550a3a4545))
43
+
44
+ # [1.0.0-alpha.32](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.31...v1.0.0-alpha.32) (2022-01-08)
45
+
46
+ ### Bug Fixes
47
+
48
+ - add nymph getter and setter to user clone ([aa72399](https://github.com/sciactive/nymphjs/commit/aa723998d75c72f3d9cd00b3a735607e99390cde))
49
+
50
+ # [1.0.0-alpha.31](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.30...v1.0.0-alpha.31) (2022-01-08)
51
+
52
+ ### Features
53
+
54
+ - tilmeld client user can now be cloned ([c360fd3](https://github.com/sciactive/nymphjs/commit/c360fd312839aef221c2562dc45797cd270fa936))
55
+
56
+ # [1.0.0-alpha.30](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.29...v1.0.0-alpha.30) (2022-01-07)
57
+
58
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
59
+
60
+ # [1.0.0-alpha.29](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.28...v1.0.0-alpha.29) (2022-01-07)
61
+
62
+ ### Features
63
+
64
+ - add additionalData in register and login data ([b906cd6](https://github.com/sciactive/nymphjs/commit/b906cd66715098019ca55c3562de72cbf7669ca7))
65
+
66
+ # [1.0.0-alpha.28](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.27...v1.0.0-alpha.28) (2022-01-07)
67
+
68
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
69
+
70
+ # [1.0.0-alpha.27](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.26...v1.0.0-alpha.27) (2022-01-05)
71
+
72
+ ### Features
73
+
74
+ - update smui to latest versions ([7ed7bd3](https://github.com/sciactive/nymphjs/commit/7ed7bd34d01a155c7001a2671de25ef2f3363682))
75
+
76
+ # [1.0.0-alpha.26](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.25...v1.0.0-alpha.26) (2021-12-30)
77
+
78
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
79
+
80
+ # [1.0.0-alpha.25](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.24...v1.0.0-alpha.25) (2021-12-30)
81
+
82
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
83
+
84
+ # [1.0.0-alpha.24](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.23...v1.0.0-alpha.24) (2021-12-30)
85
+
86
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
87
+
88
+ # [1.0.0-alpha.23](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.22...v1.0.0-alpha.23) (2021-12-30)
89
+
90
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
91
+
92
+ # [1.0.0-alpha.22](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.21...v1.0.0-alpha.22) (2021-12-14)
93
+
94
+ ### Features
95
+
96
+ - update smui to latest versions ([912873b](https://github.com/sciactive/nymphjs/commit/912873b863d1ae5d51c359a3c0558bff38ce85cd))
97
+
98
+ # [1.0.0-alpha.21](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.20...v1.0.0-alpha.21) (2021-11-29)
99
+
100
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
101
+
102
+ # [1.0.0-alpha.20](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.19...v1.0.0-alpha.20) (2021-11-24)
103
+
104
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
105
+
106
+ # [1.0.0-alpha.19](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.18...v1.0.0-alpha.19) (2021-11-18)
107
+
108
+ ### Features
109
+
110
+ - update smui and other packages to latest versions ([2465340](https://github.com/sciactive/nymphjs/commit/24653400d887bc04c41c3c4ee0c73ce2f2289e0d))
111
+
112
+ # [1.0.0-alpha.18](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.17...v1.0.0-alpha.18) (2021-11-09)
113
+
114
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
115
+
116
+ # [1.0.0-alpha.17](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.16...v1.0.0-alpha.17) (2021-10-14)
117
+
118
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
119
+
120
+ # [1.0.0-alpha.16](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.15...v1.0.0-alpha.16) (2021-10-14)
121
+
122
+ ### Bug Fixes
123
+
124
+ - don't ignore built files in npm packages ([7d688db](https://github.com/sciactive/nymphjs/commit/7d688dbec362f1f71fb451a1d0dbcaecc15d99fc))
125
+
126
+ # [1.0.0-alpha.15](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.14...v1.0.0-alpha.15) (2021-10-14)
127
+
128
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
129
+
130
+ # [1.0.0-alpha.14](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.13...v1.0.0-alpha.14) (2021-10-14)
131
+
132
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
133
+
134
+ # [1.0.0-alpha.13](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.12...v1.0.0-alpha.13) (2021-10-14)
135
+
136
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
137
+
138
+ # [1.0.0-alpha.12](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.11...v1.0.0-alpha.12) (2021-10-13)
139
+
140
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
141
+
142
+ # [1.0.0-alpha.11](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.10...v1.0.0-alpha.11) (2021-10-13)
143
+
144
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
145
+
146
+ # [1.0.0-alpha.10](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.9...v1.0.0-alpha.10) (2021-10-12)
147
+
148
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
149
+
150
+ # [1.0.0-alpha.9](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.8...v1.0.0-alpha.9) (2021-10-12)
151
+
152
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
153
+
154
+ # [1.0.0-alpha.8](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.7...v1.0.0-alpha.8) (2021-10-12)
155
+
156
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
157
+
158
+ # [1.0.0-alpha.7](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.6...v1.0.0-alpha.7) (2021-10-05)
159
+
160
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
161
+
162
+ # [1.0.0-alpha.6](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.5...v1.0.0-alpha.6) (2021-10-05)
163
+
164
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
165
+
166
+ # [1.0.0-alpha.5](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.4...v1.0.0-alpha.5) (2021-09-30)
167
+
168
+ **Note:** Version bump only for package @nymphjs/tilmeld-client
169
+
6
170
  # [1.0.0-alpha.4](https://github.com/sciactive/nymphjs/compare/v1.0.0-alpha.3...v1.0.0-alpha.4) (2021-09-27)
7
171
 
8
172
  ### Features
package/README.md CHANGED
@@ -14,7 +14,7 @@ You can find UMD in `dist`, or TS source in `src`.
14
14
 
15
15
  ## Usage
16
16
 
17
- The Tilmeld client contains the client versions of the `User` and `Group` entities. It also contains helpers, `getClientConfig`, `login`, `register`, and `checkUsername`.
17
+ The Tilmeld client contains the client versions of the `User` and `Group` entities. It also contains helpers, `login`, `register`, and `checkUsername`.
18
18
 
19
19
  Once you've initialized Nymph Client, set the User and Group classes on it.
20
20
 
@@ -29,6 +29,21 @@ nymph.addEntityClass(User);
29
29
  nymph.addEntityClass(Group);
30
30
  ```
31
31
 
32
+ If you're running more than one instance of Nymph client, you can clone the classes and add those instead. This will keep event listeners and Tilmeld client config separated.
33
+
34
+ ```ts
35
+ import { Nymph } from '@nymphjs/client';
36
+ import { User, Group } from '@nymphjs/tilmeld-client';
37
+
38
+ const nymph = new Nymph({
39
+ restUrl: 'https://yournymphrestserver/path/to/your/endpoint',
40
+ });
41
+ const UserClone = User.clone();
42
+ nymph.addEntityClass(UserClone);
43
+ const GroupClone = Group.clone();
44
+ nymph.addEntityClass(GroupClone);
45
+ ```
46
+
32
47
  # License
33
48
 
34
49
  Copyright 2021 SciActive Inc
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@nymphjs/client")):"function"==typeof define&&define.amd?define(["@nymphjs/client"],t):"object"==typeof exports?exports["@nymphjs/tilmeld-client"]=t(require("@nymphjs/client")):e["@nymphjs/tilmeld-client"]=t(e["@nymphjs/client"])}(this,(function(e){return(()=>{"use strict";var t={848:function(e,t,r){var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,s){function o(e){try{a(n.next(e))}catch(e){s(e)}}function l(e){try{a(n.throw(e))}catch(e){s(e)}}function a(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,l)}a((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const i=r(196);class s extends i.Entity{constructor(e){super(e),null==e&&(this.$data.enabled=!0,this.$data.abilities=[])}static factory(e){const t=Object.create(null,{factory:{get:()=>super.factory}});return n(this,void 0,void 0,(function*(){return yield t.factory.call(this,e)}))}static factorySync(e){return super.factorySync(e)}$checkGroupname(){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$checkGroupname",[],!0)}))}$checkEmail(){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$checkEmail",[],!0)}))}$getAvatar(){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$getAvatar",[],!0)}))}$getChildren(){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$getChildren",[],!0)}))}$getDescendants(e=!1){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$getDescendants",[e],!0)}))}$getLevel(){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$getLevel",[],!0)}))}$isDescendant(e){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$isDescendant",[e],!0)}))}static getPrimaryGroups(e,t){return n(this,void 0,void 0,(function*(){return yield this.serverCallStatic("getPrimaryGroups",[{options:e,class:this.class},t])}))}static getSecondaryGroups(e,t){return n(this,void 0,void 0,(function*(){return yield this.serverCallStatic("getSecondaryGroups",[{options:e,class:this.class},t])}))}}t.default=s,s.class="Group"},178:function(e,t,r){var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,s){function o(e){try{a(n.next(e))}catch(e){s(e)}}function l(e){try{a(n.throw(e))}catch(e){s(e)}}function a(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,l)}a((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const i=r(196);let s=null;class o extends i.Entity{constructor(e){super(e),null==e&&(this.$data.enabled=!0,this.$data.abilities=[],this.$data.groups=[],this.$data.inheritAbilities=!0)}static set nymph(e){this.nymphValue=e,this.removeNymphResponseListener&&this.removeNymphResponseListener(),this.removeNymphResponseListener=this.nymph.on("response",(e=>this.handleToken(e))),this.handleToken()}static get nymph(){return this.nymphValue}static factory(e){const t=Object.create(null,{factory:{get:()=>super.factory}});return n(this,void 0,void 0,(function*(){return yield t.factory.call(this,e)}))}static factoryUsername(e){return n(this,void 0,void 0,(function*(){const t=new this;if(null!=e){const t=yield this.nymph.getEntity({class:this},{type:"&",ilike:["username",e.replace(/([\\%_])/g,(e=>`\\${e}`))]});if(null!=t)return t}return t}))}static factorySync(e){return super.factorySync(e)}$checkUsername(){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$checkUsername",[],!0)}))}$checkEmail(){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$checkEmail",[],!0)}))}$checkPhone(){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$checkPhone",[],!0)}))}$getAvatar(){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$getAvatar",[],!0)}))}$register(e){return n(this,void 0,void 0,(function*(){const t=this.constructor,r=yield this.$serverCall("$register",[e]);if(r.result)for(let e=0;e<t.registerCallbacks.length;e++)t.registerCallbacks[e]&&t.registerCallbacks[e](this);if(r.loggedin){t.currentUser=this,t.handleToken();for(let e=0;e<t.loginCallbacks.length;e++)t.loginCallbacks[e]&&t.loginCallbacks[e](this)}return r}))}$logout(){return n(this,void 0,void 0,(function*(){const e=this.constructor,t=yield this.$serverCall("$logout",[]);if(t.result){e.currentUser=void 0,e.handleToken();for(let t=0;t<e.logoutCallbacks.length;t++)e.logoutCallbacks[t]&&e.logoutCallbacks[t](this)}return t}))}$gatekeeper(e){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$gatekeeper",[e],!0)}))}$changePassword(e){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$changePassword",[e])}))}static current(e){return n(this,void 0,void 0,(function*(){return void 0!==this.currentUser?this.currentUser:(this.currentUserPromise||(this.currentUserPromise=this.serverCallStatic("current",[!1]).then((e=>(this.currentUser=null!=e?e:void 0,this.currentUserPromise=void 0,e)))),yield this.currentUserPromise,null==this.currentUser?e?this.factorySync():null:this.currentUser)}))}static loginUser(e){return n(this,void 0,void 0,(function*(){const t=yield this.serverCallStatic("loginUser",[e]);if(t.result){this.currentUser=t.user,this.handleToken();for(let e=0;e<this.loginCallbacks.length;e++)this.loginCallbacks[e]&&this.loginCallbacks[e](t.user)}return t}))}static sendRecovery(e){return n(this,void 0,void 0,(function*(){return yield this.serverCallStatic("sendRecovery",[e])}))}static recover(e){return n(this,void 0,void 0,(function*(){return yield this.serverCallStatic("recover",[e])}))}static getClientConfig(){return n(this,void 0,void 0,(function*(){return this.clientConfig?this.clientConfig:(this.clientConfigPromise||(this.clientConfigPromise=this.serverCallStatic("getClientConfig",[]).then((e=>(this.clientConfig=e,this.clientConfigPromise=void 0,e)))),yield this.clientConfigPromise)}))}static handleToken(e){let t=null;const r=/(?:(?:^|.*;\s*)TILMELDAUTH\s*=\s*([^;]*).*$)|^.*$/;if(e&&e.headers.has("X-TILMELDAUTH"))t=e.headers.get("X-TILMELDAUTH");else{if("undefined"==typeof document||!document.cookie.match(r))return;t=document.cookie.replace(r,"$1")}if(s!==t)if(null==t||""===t)null!=s&&(this.nymph.setXsrfToken(null),this.nymph.pubsub&&this.nymph.pubsub.setToken(null),s=null);else{const e=t.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),r="undefined"==typeof atob?Buffer.from(e,"base64").toString("binary"):atob(e),n=JSON.parse(r);this.nymph.setXsrfToken(n.xsrfToken),this.nymph.pubsub&&this.nymph.pubsub.setToken(t),s=t}}static on(e,t){const r=e+"Callbacks";if(!this.hasOwnProperty(r))throw new Error("Invalid event type.");return this[r].push(t),()=>this.off(e,t)}static off(e,t){const r=e+"Callbacks";if(!this.hasOwnProperty(r))return!1;const n=this[r].indexOf(t);return n>-1&&this[r].splice(n,1),!0}}t.default=o,o.class="User",o.registerCallbacks=[],o.loginCallbacks=[],o.logoutCallbacks=[]},13:function(e,t,r){var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,s){function o(e){try{a(n.next(e))}catch(e){s(e)}}function l(e){try{a(n.throw(e))}catch(e){s(e)}}function a(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,l)}a((n=n.apply(e,t||[])).next())}))},i=this&&this.__rest||function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]])}return r},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.checkUsername=t.register=t.login=t.getClientConfig=void 0;const o=s(r(178));let l=null,a=null;function c(){return n(this,void 0,void 0,(function*(){return l||(a||(a=o.default.getClientConfig().then((e=>l=e))),yield a)}))}t.getClientConfig=c,t.login=function(e,t){var r;return n(this,void 0,void 0,(function*(){if(""===e)throw new Error("You need to enter a username.");if(""===t)throw new Error("You need to enter a password");try{const r=yield o.default.loginUser({username:e,password:t}),{result:n}=r,s=i(r,["result"]);if(!n)throw new Error(s.message);return s}catch(e){throw new Error(null!==(r=null==e?void 0:e.message)&&void 0!==r?r:"An error occurred.")}}))},t.register=function(e){var t;return n(this,void 0,void 0,(function*(){if(""===e.username)throw new Error("You need to enter a username.");if(!e.usernameVerified)throw new Error("The username you entered is not valid.");if(e.password!==e.password2)throw new Error("Your passwords do not match.");if(""===e.password)throw new Error("You need to enter a password");let r=o.default.factorySync();r.username=e.username;const n=yield c();n.emailUsernames?r.email=e.username:-1!==n.regFields.indexOf("email")&&(r.email=e.email),-1!==n.regFields.indexOf("name")&&(r.nameFirst=e.nameFirst,r.nameLast=e.nameLast),-1!==n.regFields.indexOf("phone")&&(r.phone=e.phone);try{const t=yield r.$register({password:e.password}),{result:n}=t,s=i(t,["result"]);if(!n)throw new Error(s.message);return Object.assign(Object.assign({},s),{user:r})}catch(e){throw new Error(null!==(t=null==e?void 0:e.message)&&void 0!==t?t:"An error occurred.")}}))},t.checkUsername=function(e){var t;return n(this,void 0,void 0,(function*(){let r=o.default.factorySync();r.username=e,(yield c()).emailUsernames&&(r.email=e);try{const e=yield r.$checkUsername(),{result:t}=e,n=i(e,["result"]);if(!t)throw new Error(n.message);return n}catch(e){throw new Error(null!==(t=null==e?void 0:e.message)&&void 0!==t?t:"An error occurred.")}}))}},568:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.User=t.Group=void 0,i(r(848),t);const o=s(r(848));t.Group=o.default,i(r(13),t),i(r(178),t);const l=s(r(178));t.User=l.default},196:t=>{t.exports=e}},r={};return function e(n){var i=r[n];if(void 0!==i)return i.exports;var s=r[n]={exports:{}};return t[n].call(s.exports,s,s.exports,e),s.exports}(568)})()}));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@nymphjs/client")):"function"==typeof define&&define.amd?define(["@nymphjs/client"],t):"object"==typeof exports?exports["@nymphjs/tilmeld-client"]=t(require("@nymphjs/client")):e["@nymphjs/tilmeld-client"]=t(e["@nymphjs/client"])}(this,(function(e){return(()=>{"use strict";var t={848:function(e,t,r){var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,s){function o(e){try{l(n.next(e))}catch(e){s(e)}}function a(e){try{l(n.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}l((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const i=r(778);class s extends i.Entity{constructor(e){super(e),null==e&&(this.$data.enabled=!0,this.$data.abilities=[])}static clone(){return class extends s{}}static factory(e){const t=Object.create(null,{factory:{get:()=>super.factory}});return n(this,void 0,void 0,(function*(){return yield t.factory.call(this,e)}))}static factorySync(e){return super.factorySync(e)}$checkGroupname(){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$checkGroupname",[],!0)}))}$checkEmail(){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$checkEmail",[],!0)}))}$getAvatar(){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$getAvatar",[],!0)}))}$getChildren(){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$getChildren",[],!0)}))}$getDescendants(e=!1){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$getDescendants",[e],!0)}))}$getLevel(){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$getLevel",[],!0)}))}$isDescendant(e){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$isDescendant",[e],!0)}))}static getPrimaryGroups(e,t){return n(this,void 0,void 0,(function*(){return yield this.serverCallStatic("getPrimaryGroups",[{options:e,class:this.class},t])}))}static getSecondaryGroups(e,t){return n(this,void 0,void 0,(function*(){return yield this.serverCallStatic("getSecondaryGroups",[{options:e,class:this.class},t])}))}}t.default=s,s.class="Group"},178:function(e,t,r){var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,s){function o(e){try{l(n.next(e))}catch(e){s(e)}}function a(e){try{l(n.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}l((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const i=r(778);let s=null;class o extends i.Entity{constructor(e){super(e),null==e&&(this.$data.enabled=!0,this.$data.abilities=[],this.$data.groups=[],this.$data.inheritAbilities=!0)}static set nymph(e){this.nymphValue=e,this.removeNymphResponseListener&&this.removeNymphResponseListener(),this.removeNymphResponseListener=this.nymph.on("response",(e=>this.handleToken(e))),this.handleToken()}static get nymph(){return this.nymphValue}static clone(){class e extends o{}return e.registerCallbacks=[],e.loginCallbacks=[],e.logoutCallbacks=[],e}static factory(e){const t=Object.create(null,{factory:{get:()=>super.factory}});return n(this,void 0,void 0,(function*(){return yield t.factory.call(this,e)}))}static factoryUsername(e){return n(this,void 0,void 0,(function*(){const t=new this;if(null!=e){const t=yield this.nymph.getEntity({class:this},{type:"&",ilike:["username",e.replace(/([\\%_])/g,(e=>`\\${e}`))]});if(null!=t)return t}return t}))}static factorySync(e){return super.factorySync(e)}$checkUsername(){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$checkUsername",[],!0)}))}$checkEmail(){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$checkEmail",[],!0)}))}$checkPhone(){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$checkPhone",[],!0)}))}$getAvatar(){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$getAvatar",[],!0)}))}$register(e){return n(this,void 0,void 0,(function*(){const t=this.constructor,r=yield this.$serverCall("$register",[e]);if(r.result)for(let e=0;e<t.registerCallbacks.length;e++)t.registerCallbacks[e]&&t.registerCallbacks[e](this);if(r.loggedin){t.handleToken();for(let e=0;e<t.loginCallbacks.length;e++)t.loginCallbacks[e]&&t.loginCallbacks[e](this)}return r}))}$logout(){return n(this,void 0,void 0,(function*(){const e=this.constructor,t=yield this.$serverCall("$logout",[]);if(t.result){e.handleToken();for(let t=0;t<e.logoutCallbacks.length;t++)e.logoutCallbacks[t]&&e.logoutCallbacks[t](this)}return t}))}$gatekeeper(e){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$gatekeeper",[e],!0)}))}$changePassword(e){return n(this,void 0,void 0,(function*(){return yield this.$serverCall("$changePassword",[e])}))}static current(e){return n(this,void 0,void 0,(function*(){const t=yield this.serverCallStatic("current",[!1]);return null==t?e?this.factorySync():null:t}))}static loginUser(e){return n(this,void 0,void 0,(function*(){const t=yield this.serverCallStatic("loginUser",[e]);if(t.result){this.handleToken();for(let e=0;e<this.loginCallbacks.length;e++)this.loginCallbacks[e]&&this.loginCallbacks[e](t.user)}return t}))}static sendRecovery(e){return n(this,void 0,void 0,(function*(){return yield this.serverCallStatic("sendRecovery",[e])}))}static recover(e){return n(this,void 0,void 0,(function*(){return yield this.serverCallStatic("recover",[e])}))}static getClientConfig(){return n(this,void 0,void 0,(function*(){return this.clientConfig?this.clientConfig:(this.clientConfigPromise||(this.clientConfigPromise=this.serverCallStatic("getClientConfig",[]).then((e=>(this.clientConfig=e,this.clientConfigPromise=void 0,e)))),yield this.clientConfigPromise)}))}static handleToken(e){let t=null;const r=/(?:(?:^|.*;\s*)TILMELDAUTH\s*=\s*([^;]*).*$)|^.*$/;if(e&&e.headers.has("X-TILMELDAUTH"))t=e.headers.get("X-TILMELDAUTH");else{if("undefined"==typeof document||!document.cookie.match(r))return;t=document.cookie.replace(r,"$1")}if(s!==t)if(null==t||""===t)null!=s&&(this.nymph.setXsrfToken(null),this.nymph.pubsub&&this.nymph.pubsub.setToken(null),s=null);else{const e=t.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),r="undefined"==typeof atob?Buffer.from(e,"base64").toString("binary"):atob(e),n=JSON.parse(r);this.nymph.setXsrfToken(n.xsrfToken),this.nymph.pubsub&&this.nymph.pubsub.setToken(t),s=t}}static on(e,t){const r=e+"Callbacks";if(!(r in this))throw new Error("Invalid event type.");return this[r].push(t),()=>this.off(e,t)}static off(e,t){const r=e+"Callbacks";if(!(r in this))return!1;const n=this[r].indexOf(t);return n>-1&&this[r].splice(n,1),!0}}t.default=o,o.class="User",o.registerCallbacks=[],o.loginCallbacks=[],o.logoutCallbacks=[]},13:function(e,t){var r=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,s){function o(e){try{l(n.next(e))}catch(e){s(e)}}function a(e){try{l(n.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}l((n=n.apply(e,t||[])).next())}))},n=this&&this.__rest||function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i<n.length;i++)t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(r[n[i]]=e[n[i]])}return r};Object.defineProperty(t,"__esModule",{value:!0}),t.checkUsername=t.register=t.login=void 0,t.login=function(e,t,i,s){var o;return r(this,void 0,void 0,(function*(){if(""===t)throw new Error("You need to enter a username.");if(""===i)throw new Error("You need to enter a password");try{const r=yield e.loginUser(Object.assign({username:t,password:i},s?{additionalData:s}:{})),{result:o}=r,a=n(r,["result"]);if(!o)throw new Error(a.message);return a}catch(e){throw new Error(null!==(o=null==e?void 0:e.message)&&void 0!==o?o:"An error occurred.")}}))},t.register=function(e,t,i){var s;return r(this,void 0,void 0,(function*(){if(""===t.username)throw new Error("You need to enter a username.");if(!t.usernameVerified)throw new Error("The username you entered is not valid.");if(t.password!==t.password2)throw new Error("Your passwords do not match.");if(""===t.password)throw new Error("You need to enter a password");let r=e.factorySync();r.username=t.username;const o=i||(yield e.getClientConfig());o.emailUsernames?r.email=t.username:-1!==o.regFields.indexOf("email")&&(r.email=t.email),-1!==o.regFields.indexOf("name")&&(r.nameFirst=t.nameFirst,r.nameLast=t.nameLast),-1!==o.regFields.indexOf("phone")&&(r.phone=t.phone);try{const e=yield r.$register(Object.assign({password:t.password},t.additionalData?{additionalData:t.additionalData}:{})),{result:i}=e,s=n(e,["result"]);if(!i)throw new Error(s.message);return Object.assign(Object.assign({},s),{user:r})}catch(e){throw new Error(null!==(s=null==e?void 0:e.message)&&void 0!==s?s:"An error occurred.")}}))},t.checkUsername=function(e,t,i){var s;return r(this,void 0,void 0,(function*(){let r=e.factorySync();r.username=t,(i||(yield e.getClientConfig())).emailUsernames&&(r.email=t);try{const e=yield r.$checkUsername(),{result:t}=e,i=n(e,["result"]);if(!t)throw new Error(i.message);return i}catch(e){throw new Error(null!==(s=null==e?void 0:e.message)&&void 0!==s?s:"An error occurred.")}}))}},568:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.User=t.Group=void 0,i(r(848),t);const o=s(r(848));t.Group=o.default,i(r(13),t),i(r(178),t);const a=s(r(178));t.User=a.default},778:t=>{t.exports=e}},r={};return function e(n){var i=r[n];if(void 0!==i)return i.exports;var s=r[n]={exports:{}};return t[n].call(s.exports,s,s.exports,e),s.exports}(568)})()}));
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","mappings":"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","sources":["webpack://@nymphjs/tilmeld-client/webpack/universalModuleDefinition","webpack://@nymphjs/tilmeld-client/./lib/Group.js","webpack://@nymphjs/tilmeld-client/./lib/User.js","webpack://@nymphjs/tilmeld-client/./lib/helpers.js","webpack://@nymphjs/tilmeld-client/./lib/index.js","webpack://@nymphjs/tilmeld-client/external \"@nymphjs/client\"","webpack://@nymphjs/tilmeld-client/webpack/bootstrap","webpack://@nymphjs/tilmeld-client/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@nymphjs/client\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@nymphjs/client\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"@nymphjs/tilmeld-client\"] = factory(require(\"@nymphjs/client\"));\n\telse\n\t\troot[\"@nymphjs/tilmeld-client\"] = factory(root[\"@nymphjs/client\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__196__) {\nreturn ","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst client_1 = require(\"@nymphjs/client\");\nclass Group extends client_1.Entity {\n constructor(guid) {\n super(guid);\n if (guid == null) {\n this.$data.enabled = true;\n this.$data.abilities = [];\n }\n }\n static factory(guid) {\n const _super = Object.create(null, {\n factory: { get: () => super.factory }\n });\n return __awaiter(this, void 0, void 0, function* () {\n return (yield _super.factory.call(this, guid));\n });\n }\n static factorySync(guid) {\n return super.factorySync(guid);\n }\n $checkGroupname() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$checkGroupname', [], true);\n });\n }\n $checkEmail() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$checkEmail', [], true);\n });\n }\n $getAvatar() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$getAvatar', [], true);\n });\n }\n $getChildren() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$getChildren', [], true);\n });\n }\n $getDescendants(andSelf = false) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$getDescendants', [andSelf], true);\n });\n }\n $getLevel() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$getLevel', [], true);\n });\n }\n $isDescendant(givenGroup) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$isDescendant', [givenGroup], true);\n });\n }\n static getPrimaryGroups(options, selectors) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.serverCallStatic('getPrimaryGroups', [\n { options, class: this.class },\n selectors,\n ]);\n });\n }\n static getSecondaryGroups(options, selectors) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.serverCallStatic('getSecondaryGroups', [\n { options, class: this.class },\n selectors,\n ]);\n });\n }\n}\nexports.default = Group;\nGroup.class = 'Group';\n//# sourceMappingURL=Group.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst client_1 = require(\"@nymphjs/client\");\nlet currentToken = null;\nclass User extends client_1.Entity {\n constructor(guid) {\n super(guid);\n if (guid == null) {\n this.$data.enabled = true;\n this.$data.abilities = [];\n this.$data.groups = [];\n this.$data.inheritAbilities = true;\n }\n }\n static set nymph(value) {\n this.nymphValue = value;\n if (this.removeNymphResponseListener) {\n this.removeNymphResponseListener();\n }\n this.removeNymphResponseListener = this.nymph.on('response', (response) => this.handleToken(response));\n this.handleToken();\n }\n static get nymph() {\n return this.nymphValue;\n }\n static factory(guid) {\n const _super = Object.create(null, {\n factory: { get: () => super.factory }\n });\n return __awaiter(this, void 0, void 0, function* () {\n return (yield _super.factory.call(this, guid));\n });\n }\n static factoryUsername(username) {\n return __awaiter(this, void 0, void 0, function* () {\n const entity = new this();\n if (username != null) {\n const entity = yield this.nymph.getEntity({\n class: this,\n }, {\n type: '&',\n ilike: ['username', username.replace(/([\\\\%_])/g, (s) => `\\\\${s}`)],\n });\n if (entity != null) {\n return entity;\n }\n }\n return entity;\n });\n }\n static factorySync(guid) {\n return super.factorySync(guid);\n }\n $checkUsername() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$checkUsername', [], true);\n });\n }\n $checkEmail() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$checkEmail', [], true);\n });\n }\n $checkPhone() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$checkPhone', [], true);\n });\n }\n $getAvatar() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$getAvatar', [], true);\n });\n }\n $register(data) {\n return __awaiter(this, void 0, void 0, function* () {\n const UserClass = this.constructor;\n const response = yield this.$serverCall('$register', [data]);\n if (response.result) {\n for (let i = 0; i < UserClass.registerCallbacks.length; i++) {\n UserClass.registerCallbacks[i] && UserClass.registerCallbacks[i](this);\n }\n }\n if (response.loggedin) {\n UserClass.currentUser = this;\n UserClass.handleToken();\n for (let i = 0; i < UserClass.loginCallbacks.length; i++) {\n UserClass.loginCallbacks[i] && UserClass.loginCallbacks[i](this);\n }\n }\n return response;\n });\n }\n $logout() {\n return __awaiter(this, void 0, void 0, function* () {\n const UserClass = this.constructor;\n const response = yield this.$serverCall('$logout', []);\n if (response.result) {\n UserClass.currentUser = undefined;\n UserClass.handleToken();\n for (let i = 0; i < UserClass.logoutCallbacks.length; i++) {\n UserClass.logoutCallbacks[i] && UserClass.logoutCallbacks[i](this);\n }\n }\n return response;\n });\n }\n $gatekeeper(ability) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$gatekeeper', [ability], true);\n });\n }\n $changePassword(data) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$changePassword', [data]);\n });\n }\n static current(returnObjectIfNotExist) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.currentUser !== undefined) {\n return this.currentUser;\n }\n if (!this.currentUserPromise) {\n this.currentUserPromise = this.serverCallStatic('current', [false]).then((user) => {\n this.currentUser = user !== null && user !== void 0 ? user : undefined;\n this.currentUserPromise = undefined;\n return user;\n });\n }\n yield this.currentUserPromise;\n if (this.currentUser == null) {\n return returnObjectIfNotExist ? this.factorySync() : null;\n }\n return this.currentUser;\n });\n }\n static loginUser(data) {\n return __awaiter(this, void 0, void 0, function* () {\n const response = yield this.serverCallStatic('loginUser', [data]);\n if (response.result) {\n this.currentUser = response.user;\n this.handleToken();\n for (let i = 0; i < this.loginCallbacks.length; i++) {\n this.loginCallbacks[i] && this.loginCallbacks[i](response.user);\n }\n }\n return response;\n });\n }\n static sendRecovery(data) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.serverCallStatic('sendRecovery', [data]);\n });\n }\n static recover(data) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.serverCallStatic('recover', [data]);\n });\n }\n static getClientConfig() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.clientConfig) {\n return this.clientConfig;\n }\n if (!this.clientConfigPromise) {\n this.clientConfigPromise = this.serverCallStatic('getClientConfig', []).then((config) => {\n this.clientConfig = config;\n this.clientConfigPromise = undefined;\n return config;\n });\n }\n return yield this.clientConfigPromise;\n });\n }\n static handleToken(response) {\n let token = null;\n const authCookiePattern = /(?:(?:^|.*;\\s*)TILMELDAUTH\\s*=\\s*([^;]*).*$)|^.*$/;\n if (response && response.headers.has('X-TILMELDAUTH')) {\n token = response.headers.get('X-TILMELDAUTH');\n }\n else if (typeof document !== 'undefined' &&\n document.cookie.match(authCookiePattern)) {\n token = document.cookie.replace(authCookiePattern, '$1');\n }\n else {\n return;\n }\n if (currentToken !== token) {\n if (token == null || token === '') {\n if (currentToken != null) {\n this.nymph.setXsrfToken(null);\n if (this.nymph.pubsub) {\n this.nymph.pubsub.setToken(null);\n }\n currentToken = null;\n }\n }\n else {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const json = typeof atob === 'undefined'\n ? Buffer.from(base64, 'base64').toString('binary')\n : atob(base64);\n const jwt = JSON.parse(json);\n this.nymph.setXsrfToken(jwt.xsrfToken);\n if (this.nymph.pubsub) {\n this.nymph.pubsub.setToken(token);\n }\n currentToken = token;\n }\n }\n }\n static on(event, callback) {\n const prop = (event + 'Callbacks');\n if (!this.hasOwnProperty(prop)) {\n throw new Error('Invalid event type.');\n }\n this[prop].push(callback);\n return () => this.off(event, callback);\n }\n static off(event, callback) {\n const prop = (event + 'Callbacks');\n if (!this.hasOwnProperty(prop)) {\n return false;\n }\n const i = this[prop].indexOf(callback);\n if (i > -1) {\n this[prop].splice(i, 1);\n }\n return true;\n }\n}\nexports.default = User;\nUser.class = 'User';\nUser.registerCallbacks = [];\nUser.loginCallbacks = [];\nUser.logoutCallbacks = [];\n//# sourceMappingURL=User.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkUsername = exports.register = exports.login = exports.getClientConfig = void 0;\nconst User_1 = __importDefault(require(\"./User\"));\nlet clientConfig = null;\nlet clientConfigPromise = null;\nfunction getClientConfig() {\n return __awaiter(this, void 0, void 0, function* () {\n if (clientConfig) {\n return clientConfig;\n }\n if (!clientConfigPromise) {\n clientConfigPromise = User_1.default.getClientConfig().then((config) => (clientConfig = config));\n }\n return yield clientConfigPromise;\n });\n}\nexports.getClientConfig = getClientConfig;\nfunction login(username, password) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n if (username === '') {\n throw new Error('You need to enter a username.');\n }\n if (password === '') {\n throw new Error('You need to enter a password');\n }\n try {\n const _b = yield User_1.default.loginUser({\n username,\n password,\n }), { result } = _b, response = __rest(_b, [\"result\"]);\n if (!result) {\n throw new Error(response.message);\n }\n return response;\n }\n catch (e) {\n throw new Error((_a = e === null || e === void 0 ? void 0 : e.message) !== null && _a !== void 0 ? _a : 'An error occurred.');\n }\n });\n}\nexports.login = login;\nfunction register(userDetails) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n if (userDetails.username === '') {\n throw new Error('You need to enter a username.');\n }\n if (!userDetails.usernameVerified) {\n throw new Error('The username you entered is not valid.');\n }\n if (userDetails.password !== userDetails.password2) {\n throw new Error('Your passwords do not match.');\n }\n if (userDetails.password === '') {\n throw new Error('You need to enter a password');\n }\n let user = User_1.default.factorySync();\n user.username = userDetails.username;\n const config = yield getClientConfig();\n if (config.emailUsernames) {\n user.email = userDetails.username;\n }\n else if (config.regFields.indexOf('email') !== -1) {\n user.email = userDetails.email;\n }\n if (config.regFields.indexOf('name') !== -1) {\n user.nameFirst = userDetails.nameFirst;\n user.nameLast = userDetails.nameLast;\n }\n if (config.regFields.indexOf('phone') !== -1) {\n user.phone = userDetails.phone;\n }\n try {\n const _b = yield user.$register({\n password: userDetails.password,\n }), { result } = _b, response = __rest(_b, [\"result\"]);\n if (!result) {\n throw new Error(response.message);\n }\n return Object.assign(Object.assign({}, response), { user });\n }\n catch (e) {\n throw new Error((_a = e === null || e === void 0 ? void 0 : e.message) !== null && _a !== void 0 ? _a : 'An error occurred.');\n }\n });\n}\nexports.register = register;\nfunction checkUsername(username) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n let user = User_1.default.factorySync();\n user.username = username;\n const config = yield getClientConfig();\n if (config.emailUsernames) {\n user.email = username;\n }\n try {\n const _b = yield user.$checkUsername(), { result } = _b, response = __rest(_b, [\"result\"]);\n if (!result) {\n throw new Error(response.message);\n }\n return response;\n }\n catch (e) {\n throw new Error((_a = e === null || e === void 0 ? void 0 : e.message) !== null && _a !== void 0 ? _a : 'An error occurred.');\n }\n });\n}\nexports.checkUsername = checkUsername;\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.User = exports.Group = void 0;\n__exportStar(require(\"./Group\"), exports);\nconst Group_1 = __importDefault(require(\"./Group\"));\nexports.Group = Group_1.default;\n__exportStar(require(\"./helpers\"), exports);\n__exportStar(require(\"./User\"), exports);\nconst User_1 = __importDefault(require(\"./User\"));\nexports.User = User_1.default;\n//# sourceMappingURL=index.js.map","module.exports = __WEBPACK_EXTERNAL_MODULE__196__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(568);\n"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE__196__","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","Object","defineProperty","client_1","Group","Entity","constructor","guid","super","$data","enabled","abilities","_super","create","get","call","factorySync","$checkGroupname","$serverCall","$checkEmail","$getAvatar","$getChildren","$getDescendants","andSelf","$getLevel","$isDescendant","givenGroup","options","selectors","serverCallStatic","class","default","currentToken","User","groups","inheritAbilities","nymphValue","removeNymphResponseListener","nymph","on","response","handleToken","username","entity","getEntity","type","ilike","replace","s","$checkUsername","$checkPhone","$register","data","UserClass","i","registerCallbacks","length","loggedin","currentUser","loginCallbacks","$logout","undefined","logoutCallbacks","$gatekeeper","ability","$changePassword","returnObjectIfNotExist","currentUserPromise","user","clientConfig","clientConfigPromise","config","token","authCookiePattern","headers","has","document","cookie","match","setXsrfToken","pubsub","setToken","base64","split","json","atob","Buffer","from","toString","jwt","JSON","parse","xsrfToken","event","callback","prop","hasOwnProperty","Error","push","off","indexOf","splice","__rest","t","p","prototype","getOwnPropertySymbols","propertyIsEnumerable","__importDefault","mod","__esModule","checkUsername","register","login","getClientConfig","User_1","password","_a","_b","loginUser","message","userDetails","usernameVerified","password2","emailUsernames","email","regFields","nameFirst","nameLast","phone","assign","__createBinding","o","m","k","k2","enumerable","__exportStar","Group_1","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"sourceRoot":""}
1
+ {"version":3,"file":"index.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,EAAQG,QAAQ,oBACR,mBAAXC,QAAyBA,OAAOC,IAC9CD,OAAO,CAAC,mBAAoBJ,GACF,iBAAZC,QACdA,QAAQ,2BAA6BD,EAAQG,QAAQ,oBAErDJ,EAAK,2BAA6BC,EAAQD,EAAK,oBARjD,CASGO,MAAM,SAASC,GAClB,M,8CCTA,IAAIC,EAAaF,MAAQA,KAAKE,WAAc,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOG,GAAKL,EAAOK,IACpF,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,IAAW,MAAOG,GAAKL,EAAOK,IACvF,SAASF,EAAKI,GAJlB,IAAeL,EAIaK,EAAOC,KAAOT,EAAQQ,EAAOL,QAJ1CA,EAIyDK,EAAOL,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITO,KAAKR,EAAWK,GAClGH,GAAMN,EAAYA,EAAUa,MAAMhB,EAASC,GAAc,KAAKS,YAGtEO,OAAOC,eAAe1B,EAAS,aAAc,CAAEgB,OAAO,IACtD,MAAMW,EAAW,EAAQ,KACzB,MAAMC,UAAcD,EAASE,OACzBC,YAAYC,GACRC,MAAMD,GACM,MAARA,IACA1B,KAAK4B,MAAMC,SAAU,EACrB7B,KAAK4B,MAAME,UAAY,IAG/B,eAGI,OAFA,cAAyBP,IAI7B,eAAeG,GACX,MAAMK,EAASX,OAAOY,OAAO,KAAM,CAC/BtC,QAAS,CAAEuC,IAAK,IAAMN,MAAMjC,WAEhC,OAAOQ,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAc+B,EAAOrC,QAAQwC,KAAKlC,KAAM0B,MAGhD,mBAAmBA,GACf,OAAOC,MAAMQ,YAAYT,GAE7BU,kBACI,OAAOlC,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAaA,KAAKqC,YAAY,kBAAmB,IAAI,MAG7DC,cACI,OAAOpC,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAaA,KAAKqC,YAAY,cAAe,IAAI,MAGzDE,aACI,OAAOrC,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAaA,KAAKqC,YAAY,aAAc,IAAI,MAGxDG,eACI,OAAOtC,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAaA,KAAKqC,YAAY,eAAgB,IAAI,MAG1DI,gBAAgBC,GAAU,GACtB,OAAOxC,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAaA,KAAKqC,YAAY,kBAAmB,CAACK,IAAU,MAGpEC,YACI,OAAOzC,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAaA,KAAKqC,YAAY,YAAa,IAAI,MAGvDO,cAAcC,GACV,OAAO3C,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAaA,KAAKqC,YAAY,gBAAiB,CAACQ,IAAa,MAGrE,wBAAwBC,EAASC,GAC7B,OAAO7C,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAaA,KAAKgD,iBAAiB,mBAAoB,CACnD,CAAEF,QAAAA,EAASG,MAAOjD,KAAKiD,OACvBF,OAIZ,0BAA0BD,EAASC,GAC/B,OAAO7C,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAaA,KAAKgD,iBAAiB,qBAAsB,CACrD,CAAEF,QAAAA,EAASG,MAAOjD,KAAKiD,OACvBF,QAKhBpD,EAAA,QAAkB4B,EAClBA,EAAM0B,MAAQ,S,oBCxFd,IAAI/C,EAAaF,MAAQA,KAAKE,WAAc,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOG,GAAKL,EAAOK,IACpF,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,IAAW,MAAOG,GAAKL,EAAOK,IACvF,SAASF,EAAKI,GAJlB,IAAeL,EAIaK,EAAOC,KAAOT,EAAQQ,EAAOL,QAJ1CA,EAIyDK,EAAOL,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITO,KAAKR,EAAWK,GAClGH,GAAMN,EAAYA,EAAUa,MAAMhB,EAASC,GAAc,KAAKS,YAGtEO,OAAOC,eAAe1B,EAAS,aAAc,CAAEgB,OAAO,IACtD,MAAMW,EAAW,EAAQ,KACzB,IAAI4B,EAAe,KACnB,MAAMC,UAAa7B,EAASE,OACxBC,YAAYC,GACRC,MAAMD,GACM,MAARA,IACA1B,KAAK4B,MAAMC,SAAU,EACrB7B,KAAK4B,MAAME,UAAY,GACvB9B,KAAK4B,MAAMwB,OAAS,GACpBpD,KAAK4B,MAAMyB,kBAAmB,GAGtC,iBAAiB1C,GACbX,KAAKsD,WAAa3C,EACdX,KAAKuD,6BACLvD,KAAKuD,8BAETvD,KAAKuD,4BAA8BvD,KAAKwD,MAAMC,GAAG,YAAaC,GAAa1D,KAAK2D,YAAYD,KAC5F1D,KAAK2D,cAET,mBACI,OAAO3D,KAAKsD,WAEhB,eACI,MAAMM,UAAkBT,GAKxB,OAHAS,EAAUC,kBAAoB,GAC9BD,EAAUE,eAAiB,GAC3BF,EAAUG,gBAAkB,GACrBH,EAEX,eAAelC,GACX,MAAMK,EAASX,OAAOY,OAAO,KAAM,CAC/BtC,QAAS,CAAEuC,IAAK,IAAMN,MAAMjC,WAEhC,OAAOQ,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAc+B,EAAOrC,QAAQwC,KAAKlC,KAAM0B,MAGhD,uBAAuBsC,GACnB,OAAO9D,EAAUF,UAAM,OAAQ,GAAQ,YACnC,MAAMiE,EAAS,IAAIjE,KACnB,GAAgB,MAAZgE,EAAkB,CAClB,MAAMC,QAAejE,KAAKwD,MAAMU,UAAU,CACtCjB,MAAOjD,MACR,CACCmE,KAAM,IACNC,MAAO,CAAC,WAAYJ,EAASK,QAAQ,aAAcC,GAAM,KAAKA,SAElE,GAAc,MAAVL,EACA,OAAOA,EAGf,OAAOA,KAGf,mBAAmBvC,GACf,OAAOC,MAAMQ,YAAYT,GAE7B6C,iBACI,OAAOrE,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAaA,KAAKqC,YAAY,iBAAkB,IAAI,MAG5DC,cACI,OAAOpC,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAaA,KAAKqC,YAAY,cAAe,IAAI,MAGzDmC,cACI,OAAOtE,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAaA,KAAKqC,YAAY,cAAe,IAAI,MAGzDE,aACI,OAAOrC,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAaA,KAAKqC,YAAY,aAAc,IAAI,MAGxDoC,UAAUC,GACN,OAAOxE,EAAUF,UAAM,OAAQ,GAAQ,YACnC,MAAM2E,EAAY3E,KAAKyB,YACjBiC,QAAiB1D,KAAKqC,YAAY,YAAa,CAACqC,IACtD,GAAIhB,EAAS1C,OACT,IAAK,IAAI4D,EAAI,EAAGA,EAAID,EAAUd,kBAAkBgB,OAAQD,IACpDD,EAAUd,kBAAkBe,IAAMD,EAAUd,kBAAkBe,GAAG5E,MAGzE,GAAI0D,EAASoB,SAAU,CACnBH,EAAUhB,cACV,IAAK,IAAIiB,EAAI,EAAGA,EAAID,EAAUb,eAAee,OAAQD,IACjDD,EAAUb,eAAec,IAAMD,EAAUb,eAAec,GAAG5E,MAGnE,OAAO0D,KAGfqB,UACI,OAAO7E,EAAUF,UAAM,OAAQ,GAAQ,YACnC,MAAM2E,EAAY3E,KAAKyB,YACjBiC,QAAiB1D,KAAKqC,YAAY,UAAW,IACnD,GAAIqB,EAAS1C,OAAQ,CACjB2D,EAAUhB,cACV,IAAK,IAAIiB,EAAI,EAAGA,EAAID,EAAUZ,gBAAgBc,OAAQD,IAClDD,EAAUZ,gBAAgBa,IAAMD,EAAUZ,gBAAgBa,GAAG5E,MAGrE,OAAO0D,KAGfsB,YAAYC,GACR,OAAO/E,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAaA,KAAKqC,YAAY,cAAe,CAAC4C,IAAU,MAGhEC,gBAAgBR,GACZ,OAAOxE,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAaA,KAAKqC,YAAY,kBAAmB,CAACqC,OAG1D,eAAeS,GACX,OAAOjF,EAAUF,UAAM,OAAQ,GAAQ,YACnC,MAAMoF,QAAoBpF,KAAKgD,iBAAiB,UAAW,EAAC,IAC5D,OAAmB,MAAfoC,EACOD,EAAyBnF,KAAKmC,cAAgB,KAElDiD,KAGf,iBAAiBV,GACb,OAAOxE,EAAUF,UAAM,OAAQ,GAAQ,YACnC,MAAM0D,QAAiB1D,KAAKgD,iBAAiB,YAAa,CAAC0B,IAC3D,GAAIhB,EAAS1C,OAAQ,CACjBhB,KAAK2D,cACL,IAAK,IAAIiB,EAAI,EAAGA,EAAI5E,KAAK8D,eAAee,OAAQD,IAC5C5E,KAAK8D,eAAec,IAAM5E,KAAK8D,eAAec,GAAGlB,EAAS2B,MAGlE,OAAO3B,KAGf,oBAAoBgB,GAChB,OAAOxE,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAaA,KAAKgD,iBAAiB,eAAgB,CAAC0B,OAG5D,eAAeA,GACX,OAAOxE,EAAUF,UAAM,OAAQ,GAAQ,YACnC,aAAaA,KAAKgD,iBAAiB,UAAW,CAAC0B,OAGvD,yBACI,OAAOxE,EAAUF,UAAM,OAAQ,GAAQ,YACnC,OAAIA,KAAKsF,aACEtF,KAAKsF,cAEXtF,KAAKuF,sBACNvF,KAAKuF,oBAAsBvF,KAAKgD,iBAAiB,kBAAmB,IAAI9B,MAAMsE,IAC1ExF,KAAKsF,aAAeE,EACpBxF,KAAKuF,yBAAsBE,EACpBD,YAGFxF,KAAKuF,wBAG1B,mBAAmB7B,GACf,IAAIgC,EAAQ,KACZ,MAAMC,EAAoB,oDAC1B,GAAIjC,GAAYA,EAASkC,QAAQC,IAAI,iBACjCH,EAAQhC,EAASkC,QAAQ3D,IAAI,qBAE5B,IAAwB,oBAAb6D,WACZA,SAASC,OAAOC,MAAML,GAItB,OAHAD,EAAQI,SAASC,OAAO1B,QAAQsB,EAAmB,MAKvD,GAAIzC,IAAiBwC,EACjB,GAAa,MAATA,GAA2B,KAAVA,EACG,MAAhBxC,IACAlD,KAAKwD,MAAMyC,aAAa,MACpBjG,KAAKwD,MAAM0C,QACXlG,KAAKwD,MAAM0C,OAAOC,SAAS,MAE/BjD,EAAe,UAGlB,CACD,MACMkD,EADYV,EAAMW,MAAM,KAAK,GACVhC,QAAQ,KAAM,KAAKA,QAAQ,KAAM,KACpDiC,EAAuB,oBAATC,KACdC,OAAOC,KAAKL,EAAQ,UAAUM,SAAS,UACvCH,KAAKH,GACLO,EAAMC,KAAKC,MAAMP,GACvBtG,KAAKwD,MAAMyC,aAAaU,EAAIG,WACxB9G,KAAKwD,MAAM0C,QACXlG,KAAKwD,MAAM0C,OAAOC,SAAST,GAE/BxC,EAAewC,GAI3B,UAAUqB,EAAOC,GACb,MAAMC,EAAQF,EAAQ,YACtB,KAAME,KAAQjH,MACV,MAAM,IAAIkH,MAAM,uBAGpB,OADAlH,KAAKiH,GAAME,KAAKH,GACT,IAAMhH,KAAKoH,IAAIL,EAAOC,GAEjC,WAAWD,EAAOC,GACd,MAAMC,EAAQF,EAAQ,YACtB,KAAME,KAAQjH,MACV,OAAO,EAEX,MAAM4E,EAAI5E,KAAKiH,GAAMI,QAAQL,GAI7B,OAHIpC,GAAK,GACL5E,KAAKiH,GAAMK,OAAO1C,EAAG,IAElB,GAGfjF,EAAA,QAAkBwD,EAClBA,EAAKF,MAAQ,OACbE,EAAKU,kBAAoB,GACzBV,EAAKW,eAAiB,GACtBX,EAAKY,gBAAkB,I,iBC9OvB,IAAI7D,EAAaF,MAAQA,KAAKE,WAAc,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOG,GAAKL,EAAOK,IACpF,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,IAAW,MAAOG,GAAKL,EAAOK,IACvF,SAASF,EAAKI,GAJlB,IAAeL,EAIaK,EAAOC,KAAOT,EAAQQ,EAAOL,QAJ1CA,EAIyDK,EAAOL,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITO,KAAKR,EAAWK,GAClGH,GAAMN,EAAYA,EAAUa,MAAMhB,EAASC,GAAc,KAAKS,YAGlE0G,EAAUvH,MAAQA,KAAKuH,QAAW,SAAUjD,EAAGxD,GAC/C,IAAI0G,EAAI,GACR,IAAK,IAAIC,KAAKnD,EAAOlD,OAAOsG,UAAUC,eAAezF,KAAKoC,EAAGmD,IAAM3G,EAAEuG,QAAQI,GAAK,IAC9ED,EAAEC,GAAKnD,EAAEmD,IACb,GAAS,MAALnD,GAAqD,mBAAjClD,OAAOwG,sBACtB,KAAIhD,EAAI,EAAb,IAAgB6C,EAAIrG,OAAOwG,sBAAsBtD,GAAIM,EAAI6C,EAAE5C,OAAQD,IAC3D9D,EAAEuG,QAAQI,EAAE7C,IAAM,GAAKxD,OAAOsG,UAAUG,qBAAqB3F,KAAKoC,EAAGmD,EAAE7C,MACvE4C,EAAEC,EAAE7C,IAAMN,EAAEmD,EAAE7C,KAE1B,OAAO4C,GAEXpG,OAAOC,eAAe1B,EAAS,aAAc,CAAEgB,OAAO,IACtDhB,EAAQmI,cAAgBnI,EAAQoI,SAAWpI,EAAQqI,WAAQ,EAuB3DrI,EAAQqI,MAtBR,SAAe7E,EAAMa,EAAUiE,EAAUC,GACrC,IAAIC,EACJ,OAAOjI,EAAUF,UAAM,OAAQ,GAAQ,YACnC,GAAiB,KAAbgE,EACA,MAAM,IAAIkD,MAAM,iCAEpB,GAAiB,KAAbe,EACA,MAAM,IAAIf,MAAM,gCAEpB,IACI,MAAMkB,QAAWjF,EAAKkF,UAAUjH,OAAOkH,OAAO,CAAEtE,SAAAA,EAC5CiE,SAAAA,GAAaC,EAAiB,CAAEA,eAAAA,GAAmB,MAAO,OAAElH,GAAWoH,EAAI1E,EAAW6D,EAAOa,EAAI,CAAC,WACtG,IAAKpH,EACD,MAAM,IAAIkG,MAAMxD,EAAS6E,SAE7B,OAAO7E,EAEX,MAAO5C,GACH,MAAM,IAAIoG,MAAiE,QAA1DiB,EAAKrH,MAAAA,OAA6B,EAASA,EAAEyH,eAA4B,IAAPJ,EAAgBA,EAAK,2BAkDpHxI,EAAQoI,SA7CR,SAAkB5E,EAAMqF,EAAalD,GACjC,IAAI6C,EACJ,OAAOjI,EAAUF,UAAM,OAAQ,GAAQ,YACnC,GAA6B,KAAzBwI,EAAYxE,SACZ,MAAM,IAAIkD,MAAM,iCAEpB,IAAKsB,EAAYC,iBACb,MAAM,IAAIvB,MAAM,0CAEpB,GAAIsB,EAAYP,WAAaO,EAAYE,UACrC,MAAM,IAAIxB,MAAM,gCAEpB,GAA6B,KAAzBsB,EAAYP,SACZ,MAAM,IAAIf,MAAM,gCAEpB,IAAI7B,EAAOlC,EAAKhB,cAChBkD,EAAKrB,SAAWwE,EAAYxE,SAC5B,MAAMwB,EAASF,UAAuBnC,EAAKwF,mBACvCnD,EAAOoD,eACPvD,EAAKwD,MAAQL,EAAYxE,UAEmB,IAAvCwB,EAAOsD,UAAUzB,QAAQ,WAC9BhC,EAAKwD,MAAQL,EAAYK,QAEa,IAAtCrD,EAAOsD,UAAUzB,QAAQ,UACzBhC,EAAK0D,UAAYP,EAAYO,UAC7B1D,EAAK2D,SAAWR,EAAYQ,WAEW,IAAvCxD,EAAOsD,UAAUzB,QAAQ,WACzBhC,EAAK4D,MAAQT,EAAYS,OAE7B,IACI,MAAMb,QAAW/C,EAAKZ,UAAUrD,OAAOkH,OAAO,CAAEL,SAAUO,EAAYP,UAAaO,EAAYN,eACzF,CAAEA,eAAgBM,EAAYN,gBAC9B,MAAO,OAAElH,GAAWoH,EAAI1E,EAAW6D,EAAOa,EAAI,CAAC,WACrD,IAAKpH,EACD,MAAM,IAAIkG,MAAMxD,EAAS6E,SAE7B,OAAOnH,OAAOkH,OAAOlH,OAAOkH,OAAO,GAAI5E,GAAW,CAAE2B,KAAAA,IAExD,MAAOvE,GACH,MAAM,IAAIoG,MAAiE,QAA1DiB,EAAKrH,MAAAA,OAA6B,EAASA,EAAEyH,eAA4B,IAAPJ,EAAgBA,EAAK,2BA0BpHxI,EAAQmI,cArBR,SAAuB3E,EAAMa,EAAUsB,GACnC,IAAI6C,EACJ,OAAOjI,EAAUF,UAAM,OAAQ,GAAQ,YACnC,IAAIqF,EAAOlC,EAAKhB,cAChBkD,EAAKrB,SAAWA,GACDsB,UAAuBnC,EAAKwF,oBAChCC,iBACPvD,EAAKwD,MAAQ7E,GAEjB,IACI,MAAMoE,QAAW/C,EAAKd,kBAAkB,OAAEvD,GAAWoH,EAAI1E,EAAW6D,EAAOa,EAAI,CAAC,WAChF,IAAKpH,EACD,MAAM,IAAIkG,MAAMxD,EAAS6E,SAE7B,OAAO7E,EAEX,MAAO5C,GACH,MAAM,IAAIoG,MAAiE,QAA1DiB,EAAKrH,MAAAA,OAA6B,EAASA,EAAEyH,eAA4B,IAAPJ,EAAgBA,EAAK,4B,oBC5GpH,IAAIe,EAAmBlJ,MAAQA,KAAKkJ,kBAAqB9H,OAAOY,OAAS,SAAUmH,EAAGC,EAAGC,EAAGC,QAC7E7D,IAAP6D,IAAkBA,EAAKD,GAC3BjI,OAAOC,eAAe8H,EAAGG,EAAI,CAAEC,YAAY,EAAMtH,IAAK,WAAa,OAAOmH,EAAEC,OAC3E,SAAUF,EAAGC,EAAGC,EAAGC,QACT7D,IAAP6D,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,KAEVG,EAAgBxJ,MAAQA,KAAKwJ,cAAiB,SAASJ,EAAGzJ,GAC1D,IAAK,IAAI8H,KAAK2B,EAAa,YAAN3B,GAAoBrG,OAAOsG,UAAUC,eAAezF,KAAKvC,EAAS8H,IAAIyB,EAAgBvJ,EAASyJ,EAAG3B,IAEvHgC,EAAmBzJ,MAAQA,KAAKyJ,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,IAExDtI,OAAOC,eAAe1B,EAAS,aAAc,CAAEgB,OAAO,IACtDhB,EAAQwD,KAAOxD,EAAQ4B,WAAQ,EAC/BiI,EAAa,EAAQ,KAAY7J,GACjC,MAAMiK,EAAUH,EAAgB,EAAQ,MACxC9J,EAAQ4B,MAAQqI,EAAQC,QACxBL,EAAa,EAAQ,IAAc7J,GACnC6J,EAAa,EAAQ,KAAW7J,GAChC,MAAMmK,EAASL,EAAgB,EAAQ,MACvC9J,EAAQwD,KAAO2G,EAAOD,S,QCtBtBjK,EAAOD,QAAUM,ICCb8J,EAA2B,G,OAG/B,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBxE,IAAjByE,EACH,OAAOA,EAAavK,QAGrB,IAAIC,EAASmK,EAAyBE,GAAY,CAGjDtK,QAAS,IAOV,OAHAwK,EAAoBF,GAAU/H,KAAKtC,EAAOD,QAASC,EAAQA,EAAOD,QAASqK,GAGpEpK,EAAOD,QClBWqK,CAAoB,M","sources":["webpack://@nymphjs/tilmeld-client/webpack/universalModuleDefinition","webpack://@nymphjs/tilmeld-client/./lib/Group.js","webpack://@nymphjs/tilmeld-client/./lib/User.js","webpack://@nymphjs/tilmeld-client/./lib/helpers.js","webpack://@nymphjs/tilmeld-client/./lib/index.js","webpack://@nymphjs/tilmeld-client/external umd \"@nymphjs/client\"","webpack://@nymphjs/tilmeld-client/webpack/bootstrap","webpack://@nymphjs/tilmeld-client/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@nymphjs/client\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@nymphjs/client\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"@nymphjs/tilmeld-client\"] = factory(require(\"@nymphjs/client\"));\n\telse\n\t\troot[\"@nymphjs/tilmeld-client\"] = factory(root[\"@nymphjs/client\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__778__) {\nreturn ","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst client_1 = require(\"@nymphjs/client\");\nclass Group extends client_1.Entity {\n constructor(guid) {\n super(guid);\n if (guid == null) {\n this.$data.enabled = true;\n this.$data.abilities = [];\n }\n }\n static clone() {\n class GroupClone extends Group {\n }\n return GroupClone;\n }\n static factory(guid) {\n const _super = Object.create(null, {\n factory: { get: () => super.factory }\n });\n return __awaiter(this, void 0, void 0, function* () {\n return (yield _super.factory.call(this, guid));\n });\n }\n static factorySync(guid) {\n return super.factorySync(guid);\n }\n $checkGroupname() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$checkGroupname', [], true);\n });\n }\n $checkEmail() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$checkEmail', [], true);\n });\n }\n $getAvatar() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$getAvatar', [], true);\n });\n }\n $getChildren() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$getChildren', [], true);\n });\n }\n $getDescendants(andSelf = false) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$getDescendants', [andSelf], true);\n });\n }\n $getLevel() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$getLevel', [], true);\n });\n }\n $isDescendant(givenGroup) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$isDescendant', [givenGroup], true);\n });\n }\n static getPrimaryGroups(options, selectors) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.serverCallStatic('getPrimaryGroups', [\n { options, class: this.class },\n selectors,\n ]);\n });\n }\n static getSecondaryGroups(options, selectors) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.serverCallStatic('getSecondaryGroups', [\n { options, class: this.class },\n selectors,\n ]);\n });\n }\n}\nexports.default = Group;\nGroup.class = 'Group';\n//# sourceMappingURL=Group.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst client_1 = require(\"@nymphjs/client\");\nlet currentToken = null;\nclass User extends client_1.Entity {\n constructor(guid) {\n super(guid);\n if (guid == null) {\n this.$data.enabled = true;\n this.$data.abilities = [];\n this.$data.groups = [];\n this.$data.inheritAbilities = true;\n }\n }\n static set nymph(value) {\n this.nymphValue = value;\n if (this.removeNymphResponseListener) {\n this.removeNymphResponseListener();\n }\n this.removeNymphResponseListener = this.nymph.on('response', (response) => this.handleToken(response));\n this.handleToken();\n }\n static get nymph() {\n return this.nymphValue;\n }\n static clone() {\n class UserClone extends User {\n }\n UserClone.registerCallbacks = [];\n UserClone.loginCallbacks = [];\n UserClone.logoutCallbacks = [];\n return UserClone;\n }\n static factory(guid) {\n const _super = Object.create(null, {\n factory: { get: () => super.factory }\n });\n return __awaiter(this, void 0, void 0, function* () {\n return (yield _super.factory.call(this, guid));\n });\n }\n static factoryUsername(username) {\n return __awaiter(this, void 0, void 0, function* () {\n const entity = new this();\n if (username != null) {\n const entity = yield this.nymph.getEntity({\n class: this,\n }, {\n type: '&',\n ilike: ['username', username.replace(/([\\\\%_])/g, (s) => `\\\\${s}`)],\n });\n if (entity != null) {\n return entity;\n }\n }\n return entity;\n });\n }\n static factorySync(guid) {\n return super.factorySync(guid);\n }\n $checkUsername() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$checkUsername', [], true);\n });\n }\n $checkEmail() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$checkEmail', [], true);\n });\n }\n $checkPhone() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$checkPhone', [], true);\n });\n }\n $getAvatar() {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$getAvatar', [], true);\n });\n }\n $register(data) {\n return __awaiter(this, void 0, void 0, function* () {\n const UserClass = this.constructor;\n const response = yield this.$serverCall('$register', [data]);\n if (response.result) {\n for (let i = 0; i < UserClass.registerCallbacks.length; i++) {\n UserClass.registerCallbacks[i] && UserClass.registerCallbacks[i](this);\n }\n }\n if (response.loggedin) {\n UserClass.handleToken();\n for (let i = 0; i < UserClass.loginCallbacks.length; i++) {\n UserClass.loginCallbacks[i] && UserClass.loginCallbacks[i](this);\n }\n }\n return response;\n });\n }\n $logout() {\n return __awaiter(this, void 0, void 0, function* () {\n const UserClass = this.constructor;\n const response = yield this.$serverCall('$logout', []);\n if (response.result) {\n UserClass.handleToken();\n for (let i = 0; i < UserClass.logoutCallbacks.length; i++) {\n UserClass.logoutCallbacks[i] && UserClass.logoutCallbacks[i](this);\n }\n }\n return response;\n });\n }\n $gatekeeper(ability) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$gatekeeper', [ability], true);\n });\n }\n $changePassword(data) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.$serverCall('$changePassword', [data]);\n });\n }\n static current(returnObjectIfNotExist) {\n return __awaiter(this, void 0, void 0, function* () {\n const currentUser = yield this.serverCallStatic('current', [false]);\n if (currentUser == null) {\n return returnObjectIfNotExist ? this.factorySync() : null;\n }\n return currentUser;\n });\n }\n static loginUser(data) {\n return __awaiter(this, void 0, void 0, function* () {\n const response = yield this.serverCallStatic('loginUser', [data]);\n if (response.result) {\n this.handleToken();\n for (let i = 0; i < this.loginCallbacks.length; i++) {\n this.loginCallbacks[i] && this.loginCallbacks[i](response.user);\n }\n }\n return response;\n });\n }\n static sendRecovery(data) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.serverCallStatic('sendRecovery', [data]);\n });\n }\n static recover(data) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield this.serverCallStatic('recover', [data]);\n });\n }\n static getClientConfig() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.clientConfig) {\n return this.clientConfig;\n }\n if (!this.clientConfigPromise) {\n this.clientConfigPromise = this.serverCallStatic('getClientConfig', []).then((config) => {\n this.clientConfig = config;\n this.clientConfigPromise = undefined;\n return config;\n });\n }\n return yield this.clientConfigPromise;\n });\n }\n static handleToken(response) {\n let token = null;\n const authCookiePattern = /(?:(?:^|.*;\\s*)TILMELDAUTH\\s*=\\s*([^;]*).*$)|^.*$/;\n if (response && response.headers.has('X-TILMELDAUTH')) {\n token = response.headers.get('X-TILMELDAUTH');\n }\n else if (typeof document !== 'undefined' &&\n document.cookie.match(authCookiePattern)) {\n token = document.cookie.replace(authCookiePattern, '$1');\n }\n else {\n return;\n }\n if (currentToken !== token) {\n if (token == null || token === '') {\n if (currentToken != null) {\n this.nymph.setXsrfToken(null);\n if (this.nymph.pubsub) {\n this.nymph.pubsub.setToken(null);\n }\n currentToken = null;\n }\n }\n else {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const json = typeof atob === 'undefined'\n ? Buffer.from(base64, 'base64').toString('binary')\n : atob(base64);\n const jwt = JSON.parse(json);\n this.nymph.setXsrfToken(jwt.xsrfToken);\n if (this.nymph.pubsub) {\n this.nymph.pubsub.setToken(token);\n }\n currentToken = token;\n }\n }\n }\n static on(event, callback) {\n const prop = (event + 'Callbacks');\n if (!(prop in this)) {\n throw new Error('Invalid event type.');\n }\n this[prop].push(callback);\n return () => this.off(event, callback);\n }\n static off(event, callback) {\n const prop = (event + 'Callbacks');\n if (!(prop in this)) {\n return false;\n }\n const i = this[prop].indexOf(callback);\n if (i > -1) {\n this[prop].splice(i, 1);\n }\n return true;\n }\n}\nexports.default = User;\nUser.class = 'User';\nUser.registerCallbacks = [];\nUser.loginCallbacks = [];\nUser.logoutCallbacks = [];\n//# sourceMappingURL=User.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkUsername = exports.register = exports.login = void 0;\nfunction login(User, username, password, additionalData) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n if (username === '') {\n throw new Error('You need to enter a username.');\n }\n if (password === '') {\n throw new Error('You need to enter a password');\n }\n try {\n const _b = yield User.loginUser(Object.assign({ username,\n password }, (additionalData ? { additionalData } : {}))), { result } = _b, response = __rest(_b, [\"result\"]);\n if (!result) {\n throw new Error(response.message);\n }\n return response;\n }\n catch (e) {\n throw new Error((_a = e === null || e === void 0 ? void 0 : e.message) !== null && _a !== void 0 ? _a : 'An error occurred.');\n }\n });\n}\nexports.login = login;\nfunction register(User, userDetails, clientConfig) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n if (userDetails.username === '') {\n throw new Error('You need to enter a username.');\n }\n if (!userDetails.usernameVerified) {\n throw new Error('The username you entered is not valid.');\n }\n if (userDetails.password !== userDetails.password2) {\n throw new Error('Your passwords do not match.');\n }\n if (userDetails.password === '') {\n throw new Error('You need to enter a password');\n }\n let user = User.factorySync();\n user.username = userDetails.username;\n const config = clientConfig || (yield User.getClientConfig());\n if (config.emailUsernames) {\n user.email = userDetails.username;\n }\n else if (config.regFields.indexOf('email') !== -1) {\n user.email = userDetails.email;\n }\n if (config.regFields.indexOf('name') !== -1) {\n user.nameFirst = userDetails.nameFirst;\n user.nameLast = userDetails.nameLast;\n }\n if (config.regFields.indexOf('phone') !== -1) {\n user.phone = userDetails.phone;\n }\n try {\n const _b = yield user.$register(Object.assign({ password: userDetails.password }, (userDetails.additionalData\n ? { additionalData: userDetails.additionalData }\n : {}))), { result } = _b, response = __rest(_b, [\"result\"]);\n if (!result) {\n throw new Error(response.message);\n }\n return Object.assign(Object.assign({}, response), { user });\n }\n catch (e) {\n throw new Error((_a = e === null || e === void 0 ? void 0 : e.message) !== null && _a !== void 0 ? _a : 'An error occurred.');\n }\n });\n}\nexports.register = register;\nfunction checkUsername(User, username, clientConfig) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n let user = User.factorySync();\n user.username = username;\n const config = clientConfig || (yield User.getClientConfig());\n if (config.emailUsernames) {\n user.email = username;\n }\n try {\n const _b = yield user.$checkUsername(), { result } = _b, response = __rest(_b, [\"result\"]);\n if (!result) {\n throw new Error(response.message);\n }\n return response;\n }\n catch (e) {\n throw new Error((_a = e === null || e === void 0 ? void 0 : e.message) !== null && _a !== void 0 ? _a : 'An error occurred.');\n }\n });\n}\nexports.checkUsername = checkUsername;\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.User = exports.Group = void 0;\n__exportStar(require(\"./Group\"), exports);\nconst Group_1 = __importDefault(require(\"./Group\"));\nexports.Group = Group_1.default;\n__exportStar(require(\"./helpers\"), exports);\n__exportStar(require(\"./User\"), exports);\nconst User_1 = __importDefault(require(\"./User\"));\nexports.User = User_1.default;\n//# sourceMappingURL=index.js.map","module.exports = __WEBPACK_EXTERNAL_MODULE__778__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(568);\n"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE__778__","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","Object","defineProperty","client_1","Group","Entity","constructor","guid","super","$data","enabled","abilities","_super","create","get","call","factorySync","$checkGroupname","$serverCall","$checkEmail","$getAvatar","$getChildren","$getDescendants","andSelf","$getLevel","$isDescendant","givenGroup","options","selectors","serverCallStatic","class","currentToken","User","groups","inheritAbilities","nymphValue","removeNymphResponseListener","nymph","on","response","handleToken","UserClone","registerCallbacks","loginCallbacks","logoutCallbacks","username","entity","getEntity","type","ilike","replace","s","$checkUsername","$checkPhone","$register","data","UserClass","i","length","loggedin","$logout","$gatekeeper","ability","$changePassword","returnObjectIfNotExist","currentUser","user","clientConfig","clientConfigPromise","config","undefined","token","authCookiePattern","headers","has","document","cookie","match","setXsrfToken","pubsub","setToken","base64","split","json","atob","Buffer","from","toString","jwt","JSON","parse","xsrfToken","event","callback","prop","Error","push","off","indexOf","splice","__rest","t","p","prototype","hasOwnProperty","getOwnPropertySymbols","propertyIsEnumerable","checkUsername","register","login","password","additionalData","_a","_b","loginUser","assign","message","userDetails","usernameVerified","password2","getClientConfig","emailUsernames","email","regFields","nameFirst","nameLast","phone","__createBinding","o","m","k","k2","enumerable","__exportStar","__importDefault","mod","__esModule","Group_1","default","User_1","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"sourceRoot":""}
package/lib/Group.d.ts CHANGED
@@ -20,6 +20,7 @@ export declare type CurrentGroupData = GroupData & {
20
20
  export declare type AdminGroupData = CurrentGroupData;
21
21
  export default class Group extends Entity<GroupData> {
22
22
  static class: string;
23
+ static clone(): typeof Group;
23
24
  constructor(guid?: string);
24
25
  static factory(guid?: string): Promise<Group & GroupData>;
25
26
  static factorySync(guid?: string): Group & GroupData;
package/lib/Group.js CHANGED
@@ -18,6 +18,11 @@ class Group extends client_1.Entity {
18
18
  this.$data.abilities = [];
19
19
  }
20
20
  }
21
+ static clone() {
22
+ class GroupClone extends Group {
23
+ }
24
+ return GroupClone;
25
+ }
21
26
  static factory(guid) {
22
27
  const _super = Object.create(null, {
23
28
  factory: { get: () => super.factory }
package/lib/Group.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Group.js","sourceRoot":"","sources":["../src/Group.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,4CAA4D;AA8D5D,MAAqB,KAAM,SAAQ,eAAiB;IAIlD,YAAY,IAAa;QACvB,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,KAA0B,CAAC,SAAS,GAAG,EAAE,CAAC;SACjD;IACH,CAAC;IAED,MAAM,CAAO,OAAO,CAAC,IAAa;;;;;YAChC,OAAO,CAAC,MAAM,OAAM,OAAO,YAAC,IAAI,CAAC,CAAsB,CAAC;QAC1D,CAAC;KAAA;IAED,MAAM,CAAC,WAAW,CAAC,IAAa;QAC9B,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAsB,CAAC;IACtD,CAAC;IAEY,eAAe;;YAI1B,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7D,CAAC;KAAA;IAEY,WAAW;;YACtB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACzD,CAAC;KAAA;IAEY,UAAU;;YACrB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC;KAAA;IAEY,YAAY;;YACvB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;KAAA;IAEY,eAAe,CAC1B,OAAO,GAAG,KAAK;;YAEf,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;QACpE,CAAC;KAAA;IAEY,SAAS;;YACpB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC;KAAA;IAEY,aAAa,CACxB,UAAwC;;YAExC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;QACrE,CAAC;KAAA;IAEM,MAAM,CAAO,gBAAgB,CAClC,OAAiB,EACjB,SAAsB;;YAEtB,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE;gBACrD,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;gBAC9B,SAAS;aACV,CAAC,CAAC;QACL,CAAC;KAAA;IAEM,MAAM,CAAO,kBAAkB,CACpC,OAAiB,EACjB,SAAsB;;YAEtB,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE;gBACvD,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;gBAC9B,SAAS;aACV,CAAC,CAAC;QACL,CAAC;KAAA;;AA1EH,wBA2EC;AAzEe,WAAK,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"Group.js","sourceRoot":"","sources":["../src/Group.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,4CAA4D;AA8D5D,MAAqB,KAAM,SAAQ,eAAiB;IAUlD,YAAY,IAAa;QACvB,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,KAA0B,CAAC,SAAS,GAAG,EAAE,CAAC;SACjD;IACH,CAAC;IAbM,MAAM,CAAC,KAAK;QACjB,MAAM,UAAW,SAAQ,KAAK;SAAG;QAEjC,OAAO,UAAU,CAAC;IACpB,CAAC;IAWD,MAAM,CAAO,OAAO,CAAC,IAAa;;;;;YAChC,OAAO,CAAC,MAAM,OAAM,OAAO,YAAC,IAAI,CAAC,CAAsB,CAAC;QAC1D,CAAC;KAAA;IAED,MAAM,CAAC,WAAW,CAAC,IAAa;QAC9B,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAsB,CAAC;IACtD,CAAC;IAEY,eAAe;;YAI1B,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7D,CAAC;KAAA;IAEY,WAAW;;YACtB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACzD,CAAC;KAAA;IAEY,UAAU;;YACrB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC;KAAA;IAEY,YAAY;;YACvB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;KAAA;IAEY,eAAe,CAC1B,OAAO,GAAG,KAAK;;YAEf,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;QACpE,CAAC;KAAA;IAEY,SAAS;;YACpB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACvD,CAAC;KAAA;IAEY,aAAa,CACxB,UAAwC;;YAExC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;QACrE,CAAC;KAAA;IAEM,MAAM,CAAO,gBAAgB,CAClC,OAAiB,EACjB,SAAsB;;YAEtB,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE;gBACrD,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;gBAC9B,SAAS;aACV,CAAC,CAAC;QACL,CAAC;KAAA;IAEM,MAAM,CAAO,kBAAkB,CACpC,OAAiB,EACjB,SAAsB;;YAEtB,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE;gBACvD,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;gBAC9B,SAAS;aACV,CAAC,CAAC;QACL,CAAC;KAAA;;AAhFH,wBAiFC;AA/Ee,WAAK,GAAG,OAAO,CAAC"}
package/lib/User.d.ts CHANGED
@@ -48,16 +48,15 @@ export declare type AdminUserData = CurrentUserData & {
48
48
  export default class User extends Entity<UserData> {
49
49
  static set nymph(value: Nymph);
50
50
  static get nymph(): Nymph;
51
- private static nymphValue;
51
+ protected static nymphValue: Nymph;
52
52
  static class: string;
53
- private static registerCallbacks;
54
- private static loginCallbacks;
55
- private static logoutCallbacks;
56
- private static clientConfig?;
57
- private static clientConfigPromise?;
58
- private static currentUser?;
59
- private static currentUserPromise?;
60
- private static removeNymphResponseListener?;
53
+ protected static registerCallbacks: RegisterCallback[];
54
+ protected static loginCallbacks: LoginCallback[];
55
+ protected static logoutCallbacks: LogoutCallback[];
56
+ protected static clientConfig?: ClientConfig;
57
+ protected static clientConfigPromise?: Promise<ClientConfig>;
58
+ protected static removeNymphResponseListener?: () => void;
59
+ static clone(): typeof User;
61
60
  constructor(guid?: string);
62
61
  static factory(guid?: string): Promise<User & UserData>;
63
62
  static factoryUsername(username?: string): Promise<User & UserData>;
@@ -77,6 +76,9 @@ export default class User extends Entity<UserData> {
77
76
  $getAvatar(): Promise<string>;
78
77
  $register(data: {
79
78
  password: string;
79
+ additionalData?: {
80
+ [k: string]: any;
81
+ };
80
82
  }): Promise<{
81
83
  result: boolean;
82
84
  loggedin: boolean;
@@ -99,6 +101,9 @@ export default class User extends Entity<UserData> {
99
101
  static loginUser(data: {
100
102
  username: string;
101
103
  password: string;
104
+ additionalData?: {
105
+ [k: string]: any;
106
+ };
102
107
  }): Promise<{
103
108
  result: boolean;
104
109
  message: string;
package/lib/User.js CHANGED
@@ -32,6 +32,14 @@ class User extends client_1.Entity {
32
32
  static get nymph() {
33
33
  return this.nymphValue;
34
34
  }
35
+ static clone() {
36
+ class UserClone extends User {
37
+ }
38
+ UserClone.registerCallbacks = [];
39
+ UserClone.loginCallbacks = [];
40
+ UserClone.logoutCallbacks = [];
41
+ return UserClone;
42
+ }
35
43
  static factory(guid) {
36
44
  const _super = Object.create(null, {
37
45
  factory: { get: () => super.factory }
@@ -90,7 +98,6 @@ class User extends client_1.Entity {
90
98
  }
91
99
  }
92
100
  if (response.loggedin) {
93
- UserClass.currentUser = this;
94
101
  UserClass.handleToken();
95
102
  for (let i = 0; i < UserClass.loginCallbacks.length; i++) {
96
103
  UserClass.loginCallbacks[i] && UserClass.loginCallbacks[i](this);
@@ -104,7 +111,6 @@ class User extends client_1.Entity {
104
111
  const UserClass = this.constructor;
105
112
  const response = yield this.$serverCall('$logout', []);
106
113
  if (response.result) {
107
- UserClass.currentUser = undefined;
108
114
  UserClass.handleToken();
109
115
  for (let i = 0; i < UserClass.logoutCallbacks.length; i++) {
110
116
  UserClass.logoutCallbacks[i] && UserClass.logoutCallbacks[i](this);
@@ -125,28 +131,17 @@ class User extends client_1.Entity {
125
131
  }
126
132
  static current(returnObjectIfNotExist) {
127
133
  return __awaiter(this, void 0, void 0, function* () {
128
- if (this.currentUser !== undefined) {
129
- return this.currentUser;
130
- }
131
- if (!this.currentUserPromise) {
132
- this.currentUserPromise = this.serverCallStatic('current', [false]).then((user) => {
133
- this.currentUser = user !== null && user !== void 0 ? user : undefined;
134
- this.currentUserPromise = undefined;
135
- return user;
136
- });
137
- }
138
- yield this.currentUserPromise;
139
- if (this.currentUser == null) {
134
+ const currentUser = yield this.serverCallStatic('current', [false]);
135
+ if (currentUser == null) {
140
136
  return returnObjectIfNotExist ? this.factorySync() : null;
141
137
  }
142
- return this.currentUser;
138
+ return currentUser;
143
139
  });
144
140
  }
145
141
  static loginUser(data) {
146
142
  return __awaiter(this, void 0, void 0, function* () {
147
143
  const response = yield this.serverCallStatic('loginUser', [data]);
148
144
  if (response.result) {
149
- this.currentUser = response.user;
150
145
  this.handleToken();
151
146
  for (let i = 0; i < this.loginCallbacks.length; i++) {
152
147
  this.loginCallbacks[i] && this.loginCallbacks[i](response.user);
@@ -220,7 +215,7 @@ class User extends client_1.Entity {
220
215
  }
221
216
  static on(event, callback) {
222
217
  const prop = (event + 'Callbacks');
223
- if (!this.hasOwnProperty(prop)) {
218
+ if (!(prop in this)) {
224
219
  throw new Error('Invalid event type.');
225
220
  }
226
221
  this[prop].push(callback);
@@ -228,7 +223,7 @@ class User extends client_1.Entity {
228
223
  }
229
224
  static off(event, callback) {
230
225
  const prop = (event + 'Callbacks');
231
- if (!this.hasOwnProperty(prop)) {
226
+ if (!(prop in this)) {
232
227
  return false;
233
228
  }
234
229
  const i = this[prop].indexOf(callback);
package/lib/User.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"User.js","sourceRoot":"","sources":["../src/User.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"User.js","sourceRoot":"","sources":["../src/User.ts"],"names":[],"mappings":"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"}
package/lib/helpers.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import User, { ClientConfig, CurrentUserData } from './User';
1
+ import type UserClass from './User';
2
+ import type { ClientConfig, CurrentUserData } from './User';
2
3
  export declare type RegistrationDetails = {
3
4
  username: string;
4
5
  password: string;
@@ -8,11 +9,15 @@ export declare type RegistrationDetails = {
8
9
  nameFirst?: string;
9
10
  nameLast?: string;
10
11
  phone?: string;
12
+ additionalData?: {
13
+ [k: string]: any;
14
+ };
11
15
  };
12
- export declare function getClientConfig(): Promise<ClientConfig>;
13
- export declare function login(username: string, password: string): Promise<{
16
+ export declare function login(User: typeof UserClass, username: string, password: string, additionalData?: {
17
+ [k: string]: any;
18
+ }): Promise<{
14
19
  message: string;
15
- user?: (User & import("./User").UserData & {
20
+ user?: (UserClass & import("./User").UserData & {
16
21
  abilities?: string[] | undefined;
17
22
  email?: string | undefined;
18
23
  phone?: string | undefined;
@@ -20,22 +25,22 @@ export declare function login(username: string, password: string): Promise<{
20
25
  abilities?: string[] | undefined;
21
26
  email?: string | undefined;
22
27
  phone?: string | undefined;
23
- user?: (User & import("./User").UserData & any) | null | undefined;
28
+ user?: (UserClass & import("./User").UserData & any) | null | undefined;
24
29
  }) | undefined;
25
30
  groups?: (import("./Group").default & import("./Group").GroupData & {
26
31
  abilities?: string[] | undefined;
27
32
  email?: string | undefined;
28
33
  phone?: string | undefined;
29
- user?: (User & import("./User").UserData & any) | null | undefined;
34
+ user?: (UserClass & import("./User").UserData & any) | null | undefined;
30
35
  })[] | undefined;
31
36
  inheritAbilities?: boolean | undefined;
32
37
  }) | undefined;
33
38
  }>;
34
- export declare function register(userDetails: RegistrationDetails): Promise<{
39
+ export declare function register(User: typeof UserClass, userDetails: RegistrationDetails, clientConfig?: ClientConfig): Promise<{
35
40
  loggedin: boolean;
36
41
  message: string;
37
- user?: User & CurrentUserData;
42
+ user?: UserClass & CurrentUserData;
38
43
  }>;
39
- export declare function checkUsername(username: string): Promise<{
44
+ export declare function checkUsername(User: typeof UserClass, username: string, clientConfig?: ClientConfig): Promise<{
40
45
  message: string;
41
46
  }>;
package/lib/helpers.js CHANGED
@@ -19,27 +19,9 @@ var __rest = (this && this.__rest) || function (s, e) {
19
19
  }
20
20
  return t;
21
21
  };
22
- var __importDefault = (this && this.__importDefault) || function (mod) {
23
- return (mod && mod.__esModule) ? mod : { "default": mod };
24
- };
25
22
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.checkUsername = exports.register = exports.login = exports.getClientConfig = void 0;
27
- const User_1 = __importDefault(require("./User"));
28
- let clientConfig = null;
29
- let clientConfigPromise = null;
30
- function getClientConfig() {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- if (clientConfig) {
33
- return clientConfig;
34
- }
35
- if (!clientConfigPromise) {
36
- clientConfigPromise = User_1.default.getClientConfig().then((config) => (clientConfig = config));
37
- }
38
- return yield clientConfigPromise;
39
- });
40
- }
41
- exports.getClientConfig = getClientConfig;
42
- function login(username, password) {
23
+ exports.checkUsername = exports.register = exports.login = void 0;
24
+ function login(User, username, password, additionalData) {
43
25
  var _a;
44
26
  return __awaiter(this, void 0, void 0, function* () {
45
27
  if (username === '') {
@@ -49,10 +31,8 @@ function login(username, password) {
49
31
  throw new Error('You need to enter a password');
50
32
  }
51
33
  try {
52
- const _b = yield User_1.default.loginUser({
53
- username,
54
- password,
55
- }), { result } = _b, response = __rest(_b, ["result"]);
34
+ const _b = yield User.loginUser(Object.assign({ username,
35
+ password }, (additionalData ? { additionalData } : {}))), { result } = _b, response = __rest(_b, ["result"]);
56
36
  if (!result) {
57
37
  throw new Error(response.message);
58
38
  }
@@ -64,7 +44,7 @@ function login(username, password) {
64
44
  });
65
45
  }
66
46
  exports.login = login;
67
- function register(userDetails) {
47
+ function register(User, userDetails, clientConfig) {
68
48
  var _a;
69
49
  return __awaiter(this, void 0, void 0, function* () {
70
50
  if (userDetails.username === '') {
@@ -79,9 +59,9 @@ function register(userDetails) {
79
59
  if (userDetails.password === '') {
80
60
  throw new Error('You need to enter a password');
81
61
  }
82
- let user = User_1.default.factorySync();
62
+ let user = User.factorySync();
83
63
  user.username = userDetails.username;
84
- const config = yield getClientConfig();
64
+ const config = clientConfig || (yield User.getClientConfig());
85
65
  if (config.emailUsernames) {
86
66
  user.email = userDetails.username;
87
67
  }
@@ -96,9 +76,9 @@ function register(userDetails) {
96
76
  user.phone = userDetails.phone;
97
77
  }
98
78
  try {
99
- const _b = yield user.$register({
100
- password: userDetails.password,
101
- }), { result } = _b, response = __rest(_b, ["result"]);
79
+ const _b = yield user.$register(Object.assign({ password: userDetails.password }, (userDetails.additionalData
80
+ ? { additionalData: userDetails.additionalData }
81
+ : {}))), { result } = _b, response = __rest(_b, ["result"]);
102
82
  if (!result) {
103
83
  throw new Error(response.message);
104
84
  }
@@ -110,12 +90,12 @@ function register(userDetails) {
110
90
  });
111
91
  }
112
92
  exports.register = register;
113
- function checkUsername(username) {
93
+ function checkUsername(User, username, clientConfig) {
114
94
  var _a;
115
95
  return __awaiter(this, void 0, void 0, function* () {
116
- let user = User_1.default.factorySync();
96
+ let user = User.factorySync();
117
97
  user.username = username;
118
- const config = yield getClientConfig();
98
+ const config = clientConfig || (yield User.getClientConfig());
119
99
  if (config.emailUsernames) {
120
100
  user.email = username;
121
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nymphjs/tilmeld-client",
3
- "version": "1.0.0-alpha.4",
3
+ "version": "1.0.0-alpha.40",
4
4
  "description": "NymphJS - Tilmeld Client",
5
5
  "browser": "dist/index.js",
6
6
  "main": "lib/index.js",
@@ -37,16 +37,16 @@
37
37
  "license": "Apache-2.0",
38
38
  "devDependencies": {
39
39
  "@tsconfig/recommended": "^1.0.1",
40
- "@types/jest": "^27.0.1",
41
- "jest": "^27.0.6",
42
- "ts-jest": "^27.0.5",
43
- "ts-loader": "^9.2.5",
44
- "typescript": "^4.3.5",
45
- "webpack": "^5.51.1",
46
- "webpack-cli": "^4.8.0"
40
+ "@types/jest": "^27.4.0",
41
+ "jest": "^27.4.7",
42
+ "ts-jest": "^27.1.2",
43
+ "ts-loader": "^9.2.6",
44
+ "typescript": "^4.5.4",
45
+ "webpack": "^5.65.0",
46
+ "webpack-cli": "^4.9.1"
47
47
  },
48
48
  "dependencies": {
49
- "@nymphjs/client": "^1.0.0-alpha.4"
49
+ "@nymphjs/client": "^1.0.0-alpha.40"
50
50
  },
51
- "gitHead": "6d0d344b357ab4080d31d84221456ab08d748194"
51
+ "gitHead": "adb06997bb35778bfc93f147098eca46b6c7690a"
52
52
  }
package/src/Group.ts CHANGED
@@ -64,6 +64,12 @@ export default class Group extends Entity<GroupData> {
64
64
  // The name of the server class
65
65
  public static class = 'Group';
66
66
 
67
+ public static clone(): typeof Group {
68
+ class GroupClone extends Group {}
69
+
70
+ return GroupClone;
71
+ }
72
+
67
73
  constructor(guid?: string) {
68
74
  super(guid);
69
75
 
package/src/User.ts CHANGED
@@ -145,17 +145,29 @@ export default class User extends Entity<UserData> {
145
145
  public static get nymph() {
146
146
  return this.nymphValue;
147
147
  }
148
- private static nymphValue: Nymph;
148
+ protected static nymphValue: Nymph;
149
149
  // The name of the server class
150
150
  public static class = 'User';
151
- private static registerCallbacks: RegisterCallback[] = [];
152
- private static loginCallbacks: LoginCallback[] = [];
153
- private static logoutCallbacks: LogoutCallback[] = [];
154
- private static clientConfig?: ClientConfig;
155
- private static clientConfigPromise?: Promise<ClientConfig>;
156
- private static currentUser?: User & CurrentUserData;
157
- private static currentUserPromise?: Promise<(User & CurrentUserData) | null>;
158
- private static removeNymphResponseListener?: () => void;
151
+ protected static registerCallbacks: RegisterCallback[] = [];
152
+ protected static loginCallbacks: LoginCallback[] = [];
153
+ protected static logoutCallbacks: LogoutCallback[] = [];
154
+ protected static clientConfig?: ClientConfig;
155
+ protected static clientConfigPromise?: Promise<ClientConfig>;
156
+ protected static removeNymphResponseListener?: () => void;
157
+
158
+ public static clone(): typeof User {
159
+ class UserClone extends User {
160
+ protected static nymphValue: Nymph;
161
+ protected static registerCallbacks: RegisterCallback[] = [];
162
+ protected static loginCallbacks: LoginCallback[] = [];
163
+ protected static logoutCallbacks: LogoutCallback[] = [];
164
+ protected static clientConfig?: ClientConfig;
165
+ protected static clientConfigPromise?: Promise<ClientConfig>;
166
+ protected static removeNymphResponseListener?: () => void;
167
+ }
168
+
169
+ return UserClone;
170
+ }
159
171
 
160
172
  constructor(guid?: string) {
161
173
  super(guid);
@@ -222,6 +234,7 @@ export default class User extends Entity<UserData> {
222
234
 
223
235
  public async $register(data: {
224
236
  password: string;
237
+ additionalData?: { [k: string]: any };
225
238
  }): Promise<{ result: boolean; loggedin: boolean; message: string }> {
226
239
  const UserClass = this.constructor as typeof User;
227
240
  const response = await this.$serverCall('$register', [data]);
@@ -231,7 +244,6 @@ export default class User extends Entity<UserData> {
231
244
  }
232
245
  }
233
246
  if (response.loggedin) {
234
- UserClass.currentUser = this;
235
247
  UserClass.handleToken();
236
248
  for (let i = 0; i < UserClass.loginCallbacks.length; i++) {
237
249
  UserClass.loginCallbacks[i] && UserClass.loginCallbacks[i](this);
@@ -244,7 +256,6 @@ export default class User extends Entity<UserData> {
244
256
  const UserClass = this.constructor as typeof User;
245
257
  const response = await this.$serverCall('$logout', []);
246
258
  if (response.result) {
247
- UserClass.currentUser = undefined;
248
259
  UserClass.handleToken();
249
260
  for (let i = 0; i < UserClass.logoutCallbacks.length; i++) {
250
261
  UserClass.logoutCallbacks[i] && UserClass.logoutCallbacks[i](this);
@@ -273,28 +284,17 @@ export default class User extends Entity<UserData> {
273
284
  public static async current(
274
285
  returnObjectIfNotExist?: boolean
275
286
  ): Promise<(User & CurrentUserData) | null> {
276
- if (this.currentUser !== undefined) {
277
- return this.currentUser;
278
- }
279
- if (!this.currentUserPromise) {
280
- this.currentUserPromise = this.serverCallStatic('current', [false]).then(
281
- (user: (User & CurrentUserData) | null) => {
282
- this.currentUser = user ?? undefined;
283
- this.currentUserPromise = undefined;
284
- return user;
285
- }
286
- );
287
- }
288
- await this.currentUserPromise;
289
- if (this.currentUser == null) {
287
+ const currentUser = await this.serverCallStatic('current', [false]);
288
+ if (currentUser == null) {
290
289
  return returnObjectIfNotExist ? this.factorySync() : null;
291
290
  }
292
- return this.currentUser;
291
+ return currentUser;
293
292
  }
294
293
 
295
294
  public static async loginUser(data: {
296
295
  username: string;
297
296
  password: string;
297
+ additionalData?: { [k: string]: any };
298
298
  }): Promise<{
299
299
  result: boolean;
300
300
  message: string;
@@ -302,7 +302,6 @@ export default class User extends Entity<UserData> {
302
302
  }> {
303
303
  const response = await this.serverCallStatic('loginUser', [data]);
304
304
  if (response.result) {
305
- this.currentUser = response.user;
306
305
  this.handleToken();
307
306
  for (let i = 0; i < this.loginCallbacks.length; i++) {
308
307
  this.loginCallbacks[i] && this.loginCallbacks[i](response.user);
@@ -400,7 +399,7 @@ export default class User extends Entity<UserData> {
400
399
  : T extends 'logout'
401
400
  ? 'logoutCallbacks'
402
401
  : never;
403
- if (!this.hasOwnProperty(prop)) {
402
+ if (!(prop in this)) {
404
403
  throw new Error('Invalid event type.');
405
404
  }
406
405
  // @ts-ignore: The callback should always be the right type here.
@@ -425,7 +424,7 @@ export default class User extends Entity<UserData> {
425
424
  : T extends 'logout'
426
425
  ? 'logoutCallbacks'
427
426
  : never;
428
- if (!this.hasOwnProperty(prop)) {
427
+ if (!(prop in this)) {
429
428
  return false;
430
429
  }
431
430
  // @ts-ignore: The callback should always be the right type here.
package/src/helpers.ts CHANGED
@@ -1,4 +1,5 @@
1
- import User, { ClientConfig, CurrentUserData } from './User';
1
+ import type UserClass from './User';
2
+ import type { ClientConfig, CurrentUserData } from './User';
2
3
 
3
4
  export type RegistrationDetails = {
4
5
  /**
@@ -33,24 +34,18 @@ export type RegistrationDetails = {
33
34
  * The new user's phone number.
34
35
  */
35
36
  phone?: string;
37
+ /**
38
+ * Additional data to be included in the request.
39
+ */
40
+ additionalData?: { [k: string]: any };
36
41
  };
37
42
 
38
- let clientConfig: ClientConfig | null = null;
39
- let clientConfigPromise: Promise<ClientConfig> | null = null;
40
-
41
- export async function getClientConfig() {
42
- if (clientConfig) {
43
- return clientConfig;
44
- }
45
- if (!clientConfigPromise) {
46
- clientConfigPromise = User.getClientConfig().then(
47
- (config) => (clientConfig = config)
48
- );
49
- }
50
- return await clientConfigPromise;
51
- }
52
-
53
- export async function login(username: string, password: string) {
43
+ export async function login(
44
+ User: typeof UserClass,
45
+ username: string,
46
+ password: string,
47
+ additionalData?: { [k: string]: any }
48
+ ) {
54
49
  if (username === '') {
55
50
  throw new Error('You need to enter a username.');
56
51
  }
@@ -62,6 +57,7 @@ export async function login(username: string, password: string) {
62
57
  const { result, ...response } = await User.loginUser({
63
58
  username,
64
59
  password,
60
+ ...(additionalData ? { additionalData } : {}),
65
61
  });
66
62
  if (!result) {
67
63
  throw new Error(response.message);
@@ -72,10 +68,14 @@ export async function login(username: string, password: string) {
72
68
  }
73
69
  }
74
70
 
75
- export async function register(userDetails: RegistrationDetails): Promise<{
71
+ export async function register(
72
+ User: typeof UserClass,
73
+ userDetails: RegistrationDetails,
74
+ clientConfig?: ClientConfig
75
+ ): Promise<{
76
76
  loggedin: boolean;
77
77
  message: string;
78
- user?: User & CurrentUserData;
78
+ user?: UserClass & CurrentUserData;
79
79
  }> {
80
80
  if (userDetails.username === '') {
81
81
  throw new Error('You need to enter a username.');
@@ -91,9 +91,9 @@ export async function register(userDetails: RegistrationDetails): Promise<{
91
91
  }
92
92
 
93
93
  // Create a new user.
94
- let user = User.factorySync() as User & CurrentUserData;
94
+ let user = User.factorySync() as UserClass & CurrentUserData;
95
95
  user.username = userDetails.username;
96
- const config = await getClientConfig();
96
+ const config = clientConfig || (await User.getClientConfig());
97
97
 
98
98
  if (config.emailUsernames) {
99
99
  user.email = userDetails.username;
@@ -111,6 +111,9 @@ export async function register(userDetails: RegistrationDetails): Promise<{
111
111
  try {
112
112
  const { result, ...response } = await user.$register({
113
113
  password: userDetails.password,
114
+ ...(userDetails.additionalData
115
+ ? { additionalData: userDetails.additionalData }
116
+ : {}),
114
117
  });
115
118
  if (!result) {
116
119
  throw new Error(response.message);
@@ -121,11 +124,15 @@ export async function register(userDetails: RegistrationDetails): Promise<{
121
124
  }
122
125
  }
123
126
 
124
- export async function checkUsername(username: string) {
125
- let user = User.factorySync() as User & CurrentUserData;
127
+ export async function checkUsername(
128
+ User: typeof UserClass,
129
+ username: string,
130
+ clientConfig?: ClientConfig
131
+ ) {
132
+ let user = User.factorySync() as UserClass & CurrentUserData;
126
133
  user.username = username;
127
134
 
128
- const config = await getClientConfig();
135
+ const config = clientConfig || (await User.getClientConfig());
129
136
  if (config.emailUsernames) {
130
137
  user.email = username;
131
138
  }