@genesislcap/foundation-auth 15.0.0 → 15.1.0-FUI-2567.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../../src/machine/machine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEf,YAAY,EACZ,iBAAiB,EAMjB,OAAO,EACR,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EACL,IAAI,EAQL,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAEL,iBAAiB,EAIlB,MAAM,eAAe,CAAC;AAIvB,OAAO,EACL,iBAAiB,EAQlB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAEV,kBAAkB,EAClB,gBAAgB,EAGhB,WAAW,EACX,WAAW,EAEZ,MAAM,SAAS,CAAC;AAGjB;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;CAAG;AAErF;;;GAGG;AACH,qBAAa,kBACX,SAAQ,eAAe,CAAC,kBAAkB,EAAE,gBAAgB,CAC5D,YAAW,WAAW;IAGd,OAAO,CAAC,IAAI;IACJ,OAAO,CAAC,YAAY;IACf,OAAO,CAAC,EAAE;IACvB,OAAO,CAAC,IAAI;IACC,OAAO,CAAC,aAAa;IAC5B,OAAO,CAAC,MAAM;IACb,OAAO,CAAC,OAAO;gBANd,IAAI,EAAE,IAAI,EACF,YAAY,EAAE,YAAY,EACrB,EAAE,EAAE,iBAAiB,EAClC,IAAI,EAAE,IAAI,EACG,aAAa,EAAE,iBAAiB,EACvC,MAAM,EAAE,UAAU,EACjB,OAAO,EAAE,WAAW;IAqmB3C,KAAK,CACH,OAAO,GAAE,kBAAkB,CAAC,OAAO,IAAI,CAAC,OAAO,CAM9C;IAKH;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAIxB,SAAS,CAAC,sBAAsB,IAAI,WAAW;IAQ/C,SAAS,CAAC,+BAA+B,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW;IAuB3E,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,iBAAiB;IAgB3E,SAAS,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;MAwBpB;IAEF,SAAS,CAAC,aAAa;;;MAGpB;CACJ;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,mEAA0E,CAAC;AAEnG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAE5C"}
1
+ {"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../../src/machine/machine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEf,YAAY,EACZ,iBAAiB,EAMjB,OAAO,EACR,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EACL,IAAI,EAQL,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAEL,iBAAiB,EAIlB,MAAM,eAAe,CAAC;AAIvB,OAAO,EACL,iBAAiB,EAQlB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAEV,kBAAkB,EAClB,gBAAgB,EAGhB,WAAW,EACX,WAAW,EAEZ,MAAM,SAAS,CAAC;AAGjB;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;CAAG;AAErF;;;GAGG;AACH,qBAAa,kBACX,SAAQ,eAAe,CAAC,kBAAkB,EAAE,gBAAgB,CAC5D,YAAW,WAAW;IAGd,OAAO,CAAC,IAAI;IACJ,OAAO,CAAC,YAAY;IACf,OAAO,CAAC,EAAE;IACvB,OAAO,CAAC,IAAI;IACC,OAAO,CAAC,aAAa;IAC5B,OAAO,CAAC,MAAM;IACb,OAAO,CAAC,OAAO;gBANd,IAAI,EAAE,IAAI,EACF,YAAY,EAAE,YAAY,EACrB,EAAE,EAAE,iBAAiB,EAClC,IAAI,EAAE,IAAI,EACG,aAAa,EAAE,iBAAiB,EACvC,MAAM,EAAE,UAAU,EACjB,OAAO,EAAE,WAAW;IA4oB3C,KAAK,CACH,OAAO,GAAE,kBAAkB,CAAC,OAAO,IAAI,CAAC,OAAO,CAM9C;IAKH;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAIxB,SAAS,CAAC,sBAAsB,IAAI,WAAW;IAQ/C,SAAS,CAAC,+BAA+B,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW;IAuB3E,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,iBAAiB;IAgB3E,SAAS,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;MAwBpB;IAEF,SAAS,CAAC,aAAa;;;MAGpB;CACJ;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,mEAA0E,CAAC;AAEnG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAE5C"}
@@ -97,6 +97,8 @@ export type AuthMachineEvent = {
97
97
  params: LoginParams;
98
98
  } | {
99
99
  type: 'logout';
100
+ } | {
101
+ type: 'cancel-mfa';
100
102
  } | {
101
103
  type: 'change-password';
102
104
  params: ChangePasswordParams;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/machine/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/machine/types.ts"],"names":[],"mappings":"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"}
@@ -188,6 +188,7 @@ export declare const Verify: React.ForwardRefExoticComponent<
188
188
  React.PropsWithChildren<
189
189
  Omit<PublicOf<VerifyWC>, 'children' | 'style'> &
190
190
  HTMLWCProps & {
191
+ onAuthLogin?: (event: CustomEvent<LoginParams>) => void;
191
192
  onAuthShowPasswordChanged?: (event: CustomEvent<boolean>) => void;
192
193
  }
193
194
  > & React.RefAttributes<VerifyWC>
@@ -1,10 +1,25 @@
1
+ import { CredentialManager } from '../../credential';
2
+ import { LoginParams } from '../../machine/types';
1
3
  import { BaseRoute } from '../base';
2
4
  /**
3
5
  * Verify
6
+ *
7
+ * @fires auth-login - Fires a custom 'auth-login' event. detail: `LoginParams`
8
+ *
4
9
  * @public
5
10
  */
6
11
  export declare class Verify extends BaseRoute {
12
+ credentialManager: CredentialManager;
7
13
  code: string;
8
- onSubmit(): Promise<void>;
14
+ connectedCallback(): void;
15
+ /**
16
+ * True while AuthMachine is in the awaitingMfa state (or its feedback return path still tagged).
17
+ */
18
+ get isAwaitingMfa(): boolean;
19
+ get submitDisabled(): boolean;
20
+ onBack: () => void;
21
+ onSubmit(event: Event): void;
22
+ private attemptMfaLogin;
23
+ login(params: LoginParams): void;
9
24
  }
10
25
  //# sourceMappingURL=verify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../../src/routes/verify/verify.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC;;;GAGG;AACH,qBAKa,MAAO,SAAQ,SAAS;IACvB,IAAI,EAAE,MAAM,CAAM;IAExB,QAAQ;CAIf"}
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../../src/routes/verify/verify.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAkC,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC;;;;;;GAMG;AACH,qBAKa,MAAO,SAAQ,SAAS;IAChB,iBAAiB,EAAE,iBAAiB,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAM;IAE9B,iBAAiB;IAUjB;;OAEG;IACH,IAAI,aAAa,YAIhB;IAED,IAAI,cAAc,YAEjB;IAED,MAAM,aAGJ;IAEF,QAAQ,CAAC,KAAK,EAAE,KAAK;IAerB,OAAO,CAAC,eAAe;IAevB,KAAK,CAAC,MAAM,EAAE,WAAW;CAG1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"verify.template.d.ts","sourceRoot":"","sources":["../../../../src/routes/verify/verify.template.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,cAAc,6DAiC1B,CAAC"}
1
+ {"version":3,"file":"verify.template.d.ts","sourceRoot":"","sources":["../../../../src/routes/verify/verify.template.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,cAAc,6DAwC1B,CAAC"}
@@ -170,6 +170,30 @@ let DefaultAuthMachine = class DefaultAuthMachine extends AbstractMachine {
170
170
  },
171
171
  },
172
172
  },
173
+ /**
174
+ * Awaiting MFA verification after LOGIN_NACK MFA_REQUIRED.
175
+ * Source of truth that a verify challenge is in progress (Verify route guards on this).
176
+ */
177
+ awaitingMfa: {
178
+ tags: ['awaitingMfa'],
179
+ meta: {
180
+ content: 'MESSAGE_MFA_REQUIRED',
181
+ },
182
+ entry: ['verifyRedirect'],
183
+ on: {
184
+ login: {
185
+ actions: ['setParams'],
186
+ target: '#authMachine.loggingIn',
187
+ },
188
+ 'cancel-mfa': {
189
+ actions: ['resetContext'],
190
+ target: '#authMachine.idle',
191
+ },
192
+ logout: {
193
+ target: '#authMachine.loggingOut',
194
+ },
195
+ },
196
+ },
173
197
  /**
174
198
  * Logout
175
199
  */
@@ -384,6 +408,10 @@ let DefaultAuthMachine = class DefaultAuthMachine extends AbstractMachine {
384
408
  actions: 'storeBasicCredentials',
385
409
  target: '#authMachine.feedback.termsAndConditions',
386
410
  },
411
+ {
412
+ guard: and(['isLoginNackEntity', 'isMfaLoginParams']),
413
+ target: '#authMachine.feedback.incorrectCredentials',
414
+ },
387
415
  {
388
416
  guard: 'isLoginNackEntity',
389
417
  target: '#authMachine.error.login',
@@ -463,7 +491,15 @@ let DefaultAuthMachine = class DefaultAuthMachine extends AbstractMachine {
463
491
  content: 'MESSAGE_INCORRECT_CREDENTIALS',
464
492
  },
465
493
  after: {
466
- feedbackDelay: '#authMachine.idle',
494
+ feedbackDelay: [
495
+ {
496
+ guard: 'isMfaLoginParams',
497
+ target: '#authMachine.awaitingMfa',
498
+ },
499
+ {
500
+ target: '#authMachine.idle',
501
+ },
502
+ ],
467
503
  },
468
504
  },
469
505
  mfaRequired: {
@@ -471,8 +507,8 @@ let DefaultAuthMachine = class DefaultAuthMachine extends AbstractMachine {
471
507
  meta: {
472
508
  content: 'MESSAGE_MFA_REQUIRED',
473
509
  },
474
- after: {
475
- feedbackDelay: '#authMachine.idle',
510
+ always: {
511
+ target: '#authMachine.awaitingMfa',
476
512
  },
477
513
  },
478
514
  passwordExpired: {
@@ -598,6 +634,7 @@ let DefaultAuthMachine = class DefaultAuthMachine extends AbstractMachine {
598
634
  postLogoutRedirect: this.config.postLogoutRedirect,
599
635
  resetPasswordRedirect: () => this.routing.navigateTo('reset-password?expired'),
600
636
  termsAndConditionsRedirect: () => this.routing.navigateTo('terms-and-conditions'),
637
+ verifyRedirect: () => this.routing.navigateTo('verify'),
601
638
  refreshLogin: () => this.send({ type: 'login', params: { type: CredentialType.REFRESH } }),
602
639
  loggedInCallback: () => logger.debug('AuthMachine.loggedInCallback invoked.'),
603
640
  loggedOutCallback: () => logger.debug('AuthMachine.loggedOutCallback invoked.'),
@@ -622,6 +659,7 @@ let DefaultAuthMachine = class DefaultAuthMachine extends AbstractMachine {
622
659
  isMFARequired: ({ event }) => isDoneInvokeEvent(event)
623
660
  ? isLoginNackEntity(event.output) && event.output.isMFARequired
624
661
  : false,
662
+ isMfaLoginParams: ({ context }) => isLoginParams(context.params) && context.params.type === CredentialType.MFA,
625
663
  hasPasswordExpired: ({ event }) => isDoneInvokeEvent(event)
626
664
  ? isLoginNackEntity(event.output) && event.output.hasPasswordExpired
627
665
  : false,
@@ -1,25 +1,73 @@
1
- import { __awaiter, __decorate } from "tslib";
1
+ import { __decorate } from "tslib";
2
2
  import { customElement, observable } from '@microsoft/fast-element';
3
+ import { CredentialManager, CredentialType } from '../../credential';
3
4
  import { commonStyles } from '../../styles';
4
5
  import { logger } from '../../utils';
5
6
  import { BaseRoute } from '../base';
6
7
  import { VerifyTemplate as template } from './verify.template';
7
8
  /**
8
9
  * Verify
10
+ *
11
+ * @fires auth-login - Fires a custom 'auth-login' event. detail: `LoginParams`
12
+ *
9
13
  * @public
10
14
  */
11
15
  let Verify = class Verify extends BaseRoute {
12
16
  constructor() {
13
17
  super(...arguments);
14
18
  this.code = '';
19
+ this.onBack = () => {
20
+ this.store.authMachine.send({ type: 'cancel-mfa' });
21
+ this.routing.navigateTo('');
22
+ };
15
23
  }
16
- onSubmit() {
17
- return __awaiter(this, void 0, void 0, function* () {
18
- logger.debug('2FA verify code submission');
19
- logger.warn('2FA verify code implementation is pending. Use email based MFA instead.');
20
- });
24
+ connectedCallback() {
25
+ super.connectedCallback();
26
+ if (!this.isAwaitingMfa) {
27
+ logger.debug('Verify route accessed without an MFA challenge; redirecting to login.');
28
+ this.routing.navigateTo('');
29
+ return;
30
+ }
31
+ }
32
+ /**
33
+ * True while AuthMachine is in the awaitingMfa state (or its feedback return path still tagged).
34
+ */
35
+ get isAwaitingMfa() {
36
+ return (this.store.authMachine.matches('awaitingMfa') || this.store.authMachine.hasTag('awaitingMfa'));
37
+ }
38
+ get submitDisabled() {
39
+ return this.store.authMachine.hasTag('pending');
40
+ }
41
+ onSubmit(event) {
42
+ event.preventDefault();
43
+ if (this.submitDisabled) {
44
+ return;
45
+ }
46
+ const form = event.target;
47
+ if (!form.reportValidity()) {
48
+ return;
49
+ }
50
+ this.attemptMfaLogin();
51
+ }
52
+ attemptMfaLogin() {
53
+ const mfaCredentials = {
54
+ type: CredentialType.MFA,
55
+ mfaToken: this.code,
56
+ };
57
+ if (!this.credentialManager.validateMFACredentials(mfaCredentials)) {
58
+ logger.debug(`MFA credentials appear invalid, aborting login attempt.`);
59
+ return;
60
+ }
61
+ logger.debug(`Attempting to login with MFA credentials.`);
62
+ this.login(mfaCredentials);
63
+ }
64
+ login(params) {
65
+ this.$emit('auth-login', params);
21
66
  }
22
67
  };
68
+ __decorate([
69
+ CredentialManager
70
+ ], Verify.prototype, "credentialManager", void 0);
23
71
  __decorate([
24
72
  observable
25
73
  ], Verify.prototype, "code", void 0);
@@ -17,19 +17,21 @@ export const VerifyTemplate = html `
17
17
  </div>
18
18
  <div class="heading3">${(x) => x.toLocalisedText('VERIFY_SUBTITLE')}</div>
19
19
  </div>
20
- <form @submit=${(x) => x.onSubmit()} data-test-id="form">
21
- <rapid-text-field
22
- type="text"
20
+ <form @submit=${(x, c) => x.onSubmit(c.event)} data-test-id="form">
21
+ <rapid-verification-code-input
23
22
  name="code"
24
- autocomplete="one-time-code"
23
+ id="code"
25
24
  :value=${sync((x) => x.code)}
26
25
  autofocus
26
+ required
27
+ ?readonly=${(x) => x.submitDisabled}
28
+ ?disabled=${(x) => x.submitDisabled}
27
29
  data-test-id="code"
28
30
  >
29
31
  <span class="form-title">${(x) => x.toLocalisedText('VERIFY_FORM_TITLE')}</span>
30
- </rapid-text-field>
32
+ </rapid-verification-code-input>
31
33
  <div class="form-buttons">
32
- ${(x) => submitButton(x.toLocalisedText('VERIFY_SUBMIT_BUTTON_LABEL'))}
34
+ ${(x) => submitButton(x.toLocalisedText('VERIFY_SUBMIT_BUTTON_LABEL'), 'submit', x.submitDisabled)}
33
35
  ${(x) => backButton(() => x.onBack(), x.toLocalisedText('VERIFY_BACK_BUTTON'))}
34
36
  </div>
35
37
  <submitting-indicator is-submitting="${(x) => x.store.isPending}"></submitting-indicator>
@@ -2075,7 +2075,7 @@
2075
2075
  },
2076
2076
  {
2077
2077
  "kind": "Content",
2078
- "text": ";\n} | {\n type: 'logout';\n} | {\n type: 'change-password';\n params: "
2078
+ "text": ";\n} | {\n type: 'logout';\n} | {\n type: 'cancel-mfa';\n} | {\n type: 'change-password';\n params: "
2079
2079
  },
2080
2080
  {
2081
2081
  "kind": "Reference",
@@ -422,6 +422,8 @@ export declare type AuthMachineEvent = {
422
422
  params: LoginParams;
423
423
  } | {
424
424
  type: 'logout';
425
+ } | {
426
+ type: 'cancel-mfa';
425
427
  } | {
426
428
  type: 'change-password';
427
429
  params: ChangePasswordParams;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/foundation-auth",
3
3
  "description": "Genesis Foundation Auth",
4
- "version": "15.0.0",
4
+ "version": "15.1.0-FUI-2567.3",
5
5
  "license": "SEE LICENSE IN license.txt",
6
6
  "main": "dist/esm/index.js",
7
7
  "types": "dist/foundation-auth.d.ts",
@@ -134,25 +134,25 @@
134
134
  }
135
135
  },
136
136
  "devDependencies": {
137
- "@genesislcap/foundation-testing": "15.0.0",
138
- "@genesislcap/genx": "15.0.0",
139
- "@genesislcap/rollup-builder": "15.0.0",
140
- "@genesislcap/ts-builder": "15.0.0",
141
- "@genesislcap/uvu-playwright-builder": "15.0.0",
142
- "@genesislcap/vite-builder": "15.0.0",
143
- "@genesislcap/webpack-builder": "15.0.0"
137
+ "@genesislcap/foundation-testing": "15.1.0-FUI-2567.3",
138
+ "@genesislcap/genx": "15.1.0-FUI-2567.3",
139
+ "@genesislcap/rollup-builder": "15.1.0-FUI-2567.3",
140
+ "@genesislcap/ts-builder": "15.1.0-FUI-2567.3",
141
+ "@genesislcap/uvu-playwright-builder": "15.1.0-FUI-2567.3",
142
+ "@genesislcap/vite-builder": "15.1.0-FUI-2567.3",
143
+ "@genesislcap/webpack-builder": "15.1.0-FUI-2567.3"
144
144
  },
145
145
  "dependencies": {
146
- "@genesislcap/foundation-comms": "15.0.0",
147
- "@genesislcap/foundation-events": "15.0.0",
148
- "@genesislcap/foundation-i18n": "15.0.0",
149
- "@genesislcap/foundation-logger": "15.0.0",
150
- "@genesislcap/foundation-state-machine": "15.0.0",
151
- "@genesislcap/foundation-store": "15.0.0",
152
- "@genesislcap/foundation-ui": "15.0.0",
153
- "@genesislcap/foundation-user": "15.0.0",
154
- "@genesislcap/foundation-utils": "15.0.0",
155
- "@genesislcap/foundation-zero": "15.0.0",
146
+ "@genesislcap/foundation-comms": "15.1.0-FUI-2567.3",
147
+ "@genesislcap/foundation-events": "15.1.0-FUI-2567.3",
148
+ "@genesislcap/foundation-i18n": "15.1.0-FUI-2567.3",
149
+ "@genesislcap/foundation-logger": "15.1.0-FUI-2567.3",
150
+ "@genesislcap/foundation-state-machine": "15.1.0-FUI-2567.3",
151
+ "@genesislcap/foundation-store": "15.1.0-FUI-2567.3",
152
+ "@genesislcap/foundation-ui": "15.1.0-FUI-2567.3",
153
+ "@genesislcap/foundation-user": "15.1.0-FUI-2567.3",
154
+ "@genesislcap/foundation-utils": "15.1.0-FUI-2567.3",
155
+ "@genesislcap/foundation-zero": "15.1.0-FUI-2567.3",
156
156
  "@microsoft/fast-components": "2.30.6",
157
157
  "@microsoft/fast-element": "1.14.0",
158
158
  "@microsoft/fast-foundation": "2.50.0",
@@ -173,5 +173,5 @@
173
173
  "access": "public"
174
174
  },
175
175
  "customElements": "dist/custom-elements.json",
176
- "gitHead": "035852ede9f26ea4434f1b3dfaff98db41490246"
176
+ "gitHead": "7ca16e74cbe5ce3f8503756bb708162eb7246897"
177
177
  }