@oila/0account 3.4.6 → 3.4.7

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.
@@ -17,7 +17,7 @@ const patchBrowser = () => {
17
17
  };
18
18
 
19
19
  patchBrowser().then(options => {
20
- return index.bootstrapLazy([["qr-code_2.cjs",[[1,"zero-account",{"appId":[1,"app-id"],"updateInterval":[2,"update-interval"],"callbackURL":[1,"callback-u-r-l"],"modal":[4],"selector":[1],"level":[1],"primaryColor":[1,"primary-color"],"secondaryColor":[1,"secondary-color"],"instructionsText":[1,"instructions-text"],"hideInstructions":[4,"hide-instructions"],"environment":[1],"enableWithCredentials":[4,"enable-with-credentials"],"themePreset":[1,"theme-preset"],"autoStartApp":[4,"auto-start-app"],"modalOpen":[32],"isAnimating":[32],"url":[32]},[[4,"0account-toggle-modal","toggleModal"],[4,"0account-close-modal","_closeModal"],[4,"0account-authenticated","_closeModal"],[4,"0account-open-app","openApp"]]],[0,"qr-code",{"url":[1],"level":[1],"class":[1],"color":[1]}]]]], options);
20
+ return index.bootstrapLazy([["qr-code_2.cjs",[[1,"zero-account",{"appId":[1,"app-id"],"updateInterval":[2,"update-interval"],"callbackURL":[1,"callback-url"],"modal":[4],"level":[1],"primaryColor":[1,"primary-color"],"secondaryColor":[1,"secondary-color"],"environment":[1],"enableWithCredentials":[4,"enable-with-credentials"],"themePreset":[1,"theme-preset"],"autoStartApp":[4,"auto-start-app"],"modalOpen":[32],"isAnimating":[32],"url":[32]},[[4,"0account-toggle-modal","toggleModal"],[4,"0account-close-modal","_closeModal"],[4,"0account-authenticated","_closeModal"],[4,"0account-open-app","openApp"]]],[0,"qr-code",{"url":[1],"level":[1],"class":[1],"color":[1]}]]]], options);
21
21
  });
22
22
 
23
23
  exports.setNonce = index.setNonce;
@@ -35,12 +35,9 @@ export class ZeroAccount {
35
35
  this.updateInterval = 3 * 60 * 1000;
36
36
  this.callbackURL = DEFAULT_CALLBACK_URL;
37
37
  this.modal = true;
38
- this.selector = null;
39
38
  this.level = ErrorCorrectionLevel.M;
40
39
  this.primaryColor = '#3C444F';
41
40
  this.secondaryColor = undefined;
42
- this.instructionsText = undefined;
43
- this.hideInstructions = false;
44
41
  this.environment = Environment.production;
45
42
  this.enableWithCredentials = false;
46
43
  this.themePreset = ThemePreset.light;
@@ -198,7 +195,7 @@ export class ZeroAccount {
198
195
  "tags": [],
199
196
  "text": ""
200
197
  },
201
- "attribute": "callback-u-r-l",
198
+ "attribute": "callback-url",
202
199
  "reflect": false,
203
200
  "defaultValue": "DEFAULT_CALLBACK_URL"
204
201
  },
@@ -220,24 +217,6 @@ export class ZeroAccount {
220
217
  "reflect": false,
221
218
  "defaultValue": "true"
222
219
  },
223
- "selector": {
224
- "type": "string",
225
- "mutable": false,
226
- "complexType": {
227
- "original": "string",
228
- "resolved": "string",
229
- "references": {}
230
- },
231
- "required": false,
232
- "optional": true,
233
- "docs": {
234
- "tags": [],
235
- "text": ""
236
- },
237
- "attribute": "selector",
238
- "reflect": false,
239
- "defaultValue": "null"
240
- },
241
220
  "level": {
242
221
  "type": "string",
243
222
  "mutable": false,
@@ -297,41 +276,6 @@ export class ZeroAccount {
297
276
  "attribute": "secondary-color",
298
277
  "reflect": false
299
278
  },
300
- "instructionsText": {
301
- "type": "string",
302
- "mutable": false,
303
- "complexType": {
304
- "original": "string",
305
- "resolved": "string",
306
- "references": {}
307
- },
308
- "required": false,
309
- "optional": false,
310
- "docs": {
311
- "tags": [],
312
- "text": ""
313
- },
314
- "attribute": "instructions-text",
315
- "reflect": false
316
- },
317
- "hideInstructions": {
318
- "type": "boolean",
319
- "mutable": false,
320
- "complexType": {
321
- "original": "boolean",
322
- "resolved": "boolean",
323
- "references": {}
324
- },
325
- "required": false,
326
- "optional": false,
327
- "docs": {
328
- "tags": [],
329
- "text": ""
330
- },
331
- "attribute": "hide-instructions",
332
- "reflect": false,
333
- "defaultValue": "false"
334
- },
335
279
  "environment": {
336
280
  "type": "string",
337
281
  "mutable": false,
@@ -1 +1 @@
1
- {"version":3,"file":"zero-account.js","sourceRoot":"","sources":["../../../src/components/zero-account/zero-account.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Element, Component, h, Host, Prop, Listen, State } from '@stencil/core';\nimport { UAParser } from 'ua-parser-js';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { Environment, ErrorCorrectionLevel, ThemePreset } from './enums';\nimport { Logger } from '../../utils/utils';\nimport * as utilsURL from '../../utils/url';\nimport Logo from './logo';\nimport { WS } from './websocket';\n\nconst maxInterval = 59 * 60 * 1000;\nconst minInterval = 10 * 1000;\n\nconst DEFAULT_CALLBACK_URL = window.location.origin + '/zero/auth';\nconst ANIMATION_DURATION = 3000\n\n@Component({\n tag: 'zero-account',\n styleUrl: 'zero-account.css',\n shadow: true,\n})\nexport class ZeroAccount {\n @Prop() appId!: string;\n @Prop() updateInterval?: number = 3 * 60 * 1000;\n @Prop() callbackURL: string = DEFAULT_CALLBACK_URL;\n @Prop() modal?: boolean = true;\n @Prop() selector?: string = null;\n @Prop() level?: ErrorCorrectionLevel = ErrorCorrectionLevel.M;\n @Prop() primaryColor: string = '#3C444F';\n @Prop() secondaryColor: string;\n @Prop() instructionsText: string;\n @Prop() hideInstructions: boolean = false;\n @Prop() environment?: Environment = Environment.production;\n @Prop() enableWithCredentials?: boolean = false;\n @Prop() themePreset?: ThemePreset = ThemePreset.light;\n @Prop() autoStartApp? = true;\n\n private logger: Logger;\n private uaParser: UAParser;\n private ws: WS;\n\n private timer: number;\n private animationTimer: number;\n\n @Element() host: HTMLElement;\n private modalEl: HTMLDivElement;\n private closeButtonEl: HTMLDivElement;\n\n @State() modalOpen = false;\n @State() isAnimating = false;\n @State() url = '';\n\n private getUpdateInterval() {\n // make sure the provided value is within bounds\n return Math.min(Math.max(this.updateInterval, minInterval), maxInterval);\n }\n private refreshQR = (ignoreAnimate = false)=> {\n const update = () => {\n this.restartTimer();\n this.updateURL()\n }\n if (ignoreAnimate) return update();\n\n this.isAnimating = true\n this.animationTimer = window.setTimeout(()=>{\n update()\n this.isAnimating = false\n }, ANIMATION_DURATION)\n }\n\n @Listen('0account-toggle-modal', { target: 'document' })\n toggleModal() {\n this.modalOpen = !this.modalOpen;\n if (this.modalOpen) this.refreshQR(true)\n if ((this.modalOpen && this.autoStartApp) || this.isMobile()) this.openApp()\n }\n\n @Listen('0account-close-modal', { target: 'document' })\n @Listen('0account-authenticated', { target: 'document' })\n private _closeModal() {\n this.modalOpen = false;\n this.stopTimer()\n }\n\n private closeModal(e: MouseEvent) {\n if (e.target !== this.modalEl && e.target !== this.closeButtonEl) {\n return e.stopPropagation();\n }\n this._closeModal()\n }\n\n @Listen('0account-open-app', { target: 'document' })\n openApp() {\n if (this.modalOpen) {\n window.location.href = this.url\n }\n }\n\n render() {\n const logoColor = this.themePreset === ThemePreset.light ? '#7263FA': '#FFFFF9'\n const qrColor = this.themePreset === ThemePreset.light ? '#000': '#FFFFF9'\n return (\n <Host>\n <slot />\n {this.host.childNodes.length === 0 &&\n <button class={`button ${this.themePreset}`} onClick={()=>this.toggleModal()}>\n <Logo className='button__logo' color={logoColor} />\n use 0account\n </button>\n }\n <div\n ref={el => this.modalEl = el}\n onClick={(e) => this.closeModal(e)}\n class={`modal ${this.themePreset} ${this.isAnimating ? 'modal-animated': ''} ${this.modalOpen ? '' : 'modal--hidden'}`}>\n <div class='modal__content'>\n <div ref={el => this.closeButtonEl = el} class='modal__close-button'></div>\n <div class='modal__qrcode__container'>\n <qr-code url={this.url} class={`modal__qrcode`} level={this.level} color={qrColor}/>\n <div class='circle__overlay'>\n <div class='circle'></div>\n <div class='circle circle--medium'></div>\n <div class='circle circle--large'></div>\n </div>\n <Logo className='modal__logo' color={logoColor} />\n </div>\n <div class='modal__buttons'>\n <button onClick={()=>this.openApp()} class='modal__button'>Open the desktop app</button>\n <a href='#' class='modal__link'>Download the app</a>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n\n private hideOnEsc = (e) => {\n if ((e.key === 'Escape' || e.key === 'Esc')) {\n this.modalOpen = false;\n }\n };\n\n // called only once\n componentWillLoad() {\n this.logger = new Logger(this.environment);\n this.uaParser = new UAParser();\n this.ws = new WS(this.appId, {\n updateInterval: this.getUpdateInterval(),\n callbackURL: this.callbackURL,\n uaParser: this.uaParser,\n env: this.environment,\n log: this.log,\n })\n\n // make sure we initQR\n this.refreshQR(true)\n document.addEventListener('keydown', this.hideOnEsc);\n }\n\n private updateURL() {\n const expires = new Date().getTime() + this.getUpdateInterval();\n const uuid = uuidv4();\n this.ws.updateUUID(uuid);\n const params = utilsURL.appendToParams('', {\n appId: this.appId,\n uuid: uuid,\n expires: expires,\n })\n\n if (this.isMobile()) {\n this.url = 'https://launch.0account.com/auth?' + params;\n } else {\n this.url = 'zero-account://auth?' + params;\n }\n }\n\n isMobile() {\n const device = this.uaParser.getDevice()\n return device.type === 'tablet' || device.type === 'mobile'\n }\n\n connectedCallback() {\n this.startTimer()\n }\n\n disconnectedCallback() {\n this.stopTimer()\n document.removeEventListener('keydown', this.hideOnEsc);\n }\n\n private restartTimer() {\n this.stopTimer()\n this.startTimer()\n }\n\n private startTimer() {\n this.timer = window.setInterval(this.refreshQR, this.getUpdateInterval());\n }\n\n private stopTimer() {\n window.clearInterval(this.timer);\n window.clearTimeout(this.animationTimer);\n this.isAnimating = false\n }\n\n private log = (...args) => this.logger.log(...args);\n}\n"]}
1
+ {"version":3,"file":"zero-account.js","sourceRoot":"","sources":["../../../src/components/zero-account/zero-account.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Element, Component, h, Host, Prop, Listen, State } from '@stencil/core';\nimport { UAParser } from 'ua-parser-js';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { Environment, ErrorCorrectionLevel, ThemePreset } from './enums';\nimport { Logger } from '../../utils/utils';\nimport * as utilsURL from '../../utils/url';\nimport Logo from './logo';\nimport { WS } from './websocket';\n\nconst maxInterval = 59 * 60 * 1000;\nconst minInterval = 10 * 1000;\n\nconst DEFAULT_CALLBACK_URL = window.location.origin + '/zero/auth';\nconst ANIMATION_DURATION = 3000\n\n@Component({\n tag: 'zero-account',\n styleUrl: 'zero-account.css',\n shadow: true,\n})\nexport class ZeroAccount {\n @Prop() appId!: string;\n @Prop() updateInterval?: number = 3 * 60 * 1000;\n @Prop({attribute: 'callback-url'}) callbackURL: string = DEFAULT_CALLBACK_URL;\n @Prop() modal?: boolean = true;\n @Prop() level?: ErrorCorrectionLevel = ErrorCorrectionLevel.M;\n @Prop() primaryColor: string = '#3C444F';\n @Prop() secondaryColor: string;\n @Prop() environment?: Environment = Environment.production;\n @Prop() enableWithCredentials?: boolean = false;\n @Prop() themePreset?: ThemePreset = ThemePreset.light;\n @Prop() autoStartApp? = true;\n\n private logger: Logger;\n private uaParser: UAParser;\n private ws: WS;\n\n private timer: number;\n private animationTimer: number;\n\n @Element() host: HTMLElement;\n private modalEl: HTMLDivElement;\n private closeButtonEl: HTMLDivElement;\n\n @State() modalOpen = false;\n @State() isAnimating = false;\n @State() url = '';\n\n private getUpdateInterval() {\n // make sure the provided value is within bounds\n return Math.min(Math.max(this.updateInterval, minInterval), maxInterval);\n }\n private refreshQR = (ignoreAnimate = false)=> {\n const update = () => {\n this.restartTimer();\n this.updateURL()\n }\n if (ignoreAnimate) return update();\n\n this.isAnimating = true\n this.animationTimer = window.setTimeout(()=>{\n update()\n this.isAnimating = false\n }, ANIMATION_DURATION)\n }\n\n @Listen('0account-toggle-modal', { target: 'document' })\n toggleModal() {\n this.modalOpen = !this.modalOpen;\n if (this.modalOpen) this.refreshQR(true)\n if ((this.modalOpen && this.autoStartApp) || this.isMobile()) this.openApp()\n }\n\n @Listen('0account-close-modal', { target: 'document' })\n @Listen('0account-authenticated', { target: 'document' })\n private _closeModal() {\n this.modalOpen = false;\n this.stopTimer()\n }\n\n private closeModal(e: MouseEvent) {\n if (e.target !== this.modalEl && e.target !== this.closeButtonEl) {\n return e.stopPropagation();\n }\n this._closeModal()\n }\n\n @Listen('0account-open-app', { target: 'document' })\n openApp() {\n if (this.modalOpen) {\n window.location.href = this.url\n }\n }\n\n render() {\n const logoColor = this.themePreset === ThemePreset.light ? '#7263FA': '#FFFFF9'\n const qrColor = this.themePreset === ThemePreset.light ? '#000': '#FFFFF9'\n return (\n <Host>\n <slot />\n {this.host.childNodes.length === 0 &&\n <button class={`button ${this.themePreset}`} onClick={()=>this.toggleModal()}>\n <Logo className='button__logo' color={logoColor} />\n use 0account\n </button>\n }\n <div\n ref={el => this.modalEl = el}\n onClick={(e) => this.closeModal(e)}\n class={`modal ${this.themePreset} ${this.isAnimating ? 'modal-animated': ''} ${this.modalOpen ? '' : 'modal--hidden'}`}>\n <div class='modal__content'>\n <div ref={el => this.closeButtonEl = el} class='modal__close-button'></div>\n <div class='modal__qrcode__container'>\n <qr-code url={this.url} class={`modal__qrcode`} level={this.level} color={qrColor}/>\n <div class='circle__overlay'>\n <div class='circle'></div>\n <div class='circle circle--medium'></div>\n <div class='circle circle--large'></div>\n </div>\n <Logo className='modal__logo' color={logoColor} />\n </div>\n <div class='modal__buttons'>\n <button onClick={()=>this.openApp()} class='modal__button'>Open the desktop app</button>\n <a href='#' class='modal__link'>Download the app</a>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n\n private hideOnEsc = (e) => {\n if ((e.key === 'Escape' || e.key === 'Esc')) {\n this.modalOpen = false;\n }\n };\n\n // called only once\n componentWillLoad() {\n this.logger = new Logger(this.environment);\n this.uaParser = new UAParser();\n this.ws = new WS(this.appId, {\n updateInterval: this.getUpdateInterval(),\n callbackURL: this.callbackURL,\n uaParser: this.uaParser,\n env: this.environment,\n log: this.log,\n })\n\n // make sure we initQR\n this.refreshQR(true)\n document.addEventListener('keydown', this.hideOnEsc);\n }\n\n private updateURL() {\n const expires = new Date().getTime() + this.getUpdateInterval();\n const uuid = uuidv4();\n this.ws.updateUUID(uuid);\n const params = utilsURL.appendToParams('', {\n appId: this.appId,\n uuid: uuid,\n expires: expires,\n })\n\n if (this.isMobile()) {\n this.url = 'https://launch.0account.com/auth?' + params;\n } else {\n this.url = 'zero-account://auth?' + params;\n }\n }\n\n isMobile() {\n const device = this.uaParser.getDevice()\n return device.type === 'tablet' || device.type === 'mobile'\n }\n\n connectedCallback() {\n this.startTimer()\n }\n\n disconnectedCallback() {\n this.stopTimer()\n document.removeEventListener('keydown', this.hideOnEsc);\n }\n\n private restartTimer() {\n this.stopTimer()\n this.startTimer()\n }\n\n private startTimer() {\n this.timer = window.setInterval(this.refreshQR, this.getUpdateInterval());\n }\n\n private stopTimer() {\n window.clearInterval(this.timer);\n window.clearTimeout(this.animationTimer);\n this.isAnimating = false\n }\n\n private log = (...args) => this.logger.log(...args);\n}\n"]}
@@ -1313,12 +1313,9 @@ const ZeroAccount$1 = /*@__PURE__*/ proxyCustomElement(class ZeroAccount extends
1313
1313
  this.updateInterval = 3 * 60 * 1000;
1314
1314
  this.callbackURL = DEFAULT_CALLBACK_URL;
1315
1315
  this.modal = true;
1316
- this.selector = null;
1317
1316
  this.level = ErrorCorrectionLevel.M;
1318
1317
  this.primaryColor = '#3C444F';
1319
1318
  this.secondaryColor = undefined;
1320
- this.instructionsText = undefined;
1321
- this.hideInstructions = false;
1322
1319
  this.environment = Environment.production;
1323
1320
  this.enableWithCredentials = false;
1324
1321
  this.themePreset = ThemePreset.light;
@@ -1418,14 +1415,11 @@ const ZeroAccount$1 = /*@__PURE__*/ proxyCustomElement(class ZeroAccount extends
1418
1415
  }, [1, "zero-account", {
1419
1416
  "appId": [1, "app-id"],
1420
1417
  "updateInterval": [2, "update-interval"],
1421
- "callbackURL": [1, "callback-u-r-l"],
1418
+ "callbackURL": [1, "callback-url"],
1422
1419
  "modal": [4],
1423
- "selector": [1],
1424
1420
  "level": [1],
1425
1421
  "primaryColor": [1, "primary-color"],
1426
1422
  "secondaryColor": [1, "secondary-color"],
1427
- "instructionsText": [1, "instructions-text"],
1428
- "hideInstructions": [4, "hide-instructions"],
1429
1423
  "environment": [1],
1430
1424
  "enableWithCredentials": [4, "enable-with-credentials"],
1431
1425
  "themePreset": [1, "theme-preset"],