@mjhls/mjh-framework 1.0.779-beta.0 → 1.0.779-beta.1

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.
Files changed (107) hide show
  1. package/dist/cjs/AD300x250.js +2 -1
  2. package/dist/cjs/AD300x250x600.js +2 -1
  3. package/dist/cjs/AD728x90.js +2 -1
  4. package/dist/cjs/ADFloatingFooter.js +2 -1
  5. package/dist/cjs/ADGutter.js +2 -1
  6. package/dist/cjs/ADSkyscraper.js +2 -1
  7. package/dist/cjs/ADSponsoredResources.js +2 -1
  8. package/dist/cjs/ADWebcast.js +2 -1
  9. package/dist/cjs/ADWelcome.js +2 -1
  10. package/dist/cjs/AdSlot.js +2 -1
  11. package/dist/cjs/AdSlotsProvider.js +2 -1
  12. package/dist/cjs/ArticleProgramLandingPage.js +3 -2
  13. package/dist/cjs/ArticleSeriesLandingPage.js +4 -3
  14. package/dist/cjs/Auth.js +2 -1
  15. package/dist/cjs/Beam.js +2 -1
  16. package/dist/cjs/CMEDeck.js +2 -1
  17. package/dist/cjs/Column2.js +2 -1
  18. package/dist/cjs/Column3.js +2 -1
  19. package/dist/cjs/DeckContent.js +3 -2
  20. package/dist/cjs/ExternalResources.js +3 -2
  21. package/dist/cjs/GridContent.js +4 -3
  22. package/dist/cjs/HamMagazine.js +2 -1
  23. package/dist/cjs/HorizontalArticleListing.js +3 -2
  24. package/dist/cjs/IssueLanding.js +4 -3
  25. package/dist/cjs/LeftNav.js +2 -1
  26. package/dist/cjs/MasterDeck.js +4 -3
  27. package/dist/cjs/MediaSeriesLanding.js +2 -1
  28. package/dist/cjs/NavDvm.js +2 -1
  29. package/dist/cjs/NavMagazine.js +2 -1
  30. package/dist/cjs/NavNative.js +2 -1
  31. package/dist/cjs/NavNormal.js +2 -1
  32. package/dist/cjs/PartnerDetailListing.js +5 -4
  33. package/dist/cjs/PubSection.js +4 -3
  34. package/dist/cjs/PubToc.js +2 -1
  35. package/dist/cjs/PublicationLanding.js +26 -100
  36. package/dist/cjs/QueueDeckExpanded.js +4 -3
  37. package/dist/cjs/Segment.js +2 -1
  38. package/dist/cjs/SideFooter.js +2 -1
  39. package/dist/cjs/TaxonomyDescription.js +3 -2
  40. package/dist/cjs/TemplateNormal.js +2 -1
  41. package/dist/cjs/VideoProgramLandingPage.js +3 -2
  42. package/dist/cjs/VideoSeriesFilter.js +2 -1
  43. package/dist/cjs/VideoSeriesLandingPage.js +4 -3
  44. package/dist/cjs/View.js +3 -2
  45. package/dist/cjs/_set-species-f92c67c5.js +57 -0
  46. package/dist/cjs/{asyncToGenerator-140e5f89.js → asyncToGenerator-533d476a.js} +6 -54
  47. package/dist/cjs/getRelatedArticle.js +2 -1
  48. package/dist/cjs/getRootDocGroup.js +2 -1
  49. package/dist/cjs/getSerializers.js +3 -2
  50. package/dist/cjs/index.js +5 -4
  51. package/dist/esm/AD300x250.js +2 -1
  52. package/dist/esm/AD300x250x600.js +2 -1
  53. package/dist/esm/AD728x90.js +2 -1
  54. package/dist/esm/ADFloatingFooter.js +2 -1
  55. package/dist/esm/ADGutter.js +2 -1
  56. package/dist/esm/ADSkyscraper.js +2 -1
  57. package/dist/esm/ADSponsoredResources.js +2 -1
  58. package/dist/esm/ADWebcast.js +2 -1
  59. package/dist/esm/ADWelcome.js +2 -1
  60. package/dist/esm/AdSlot.js +2 -1
  61. package/dist/esm/AdSlotsProvider.js +2 -1
  62. package/dist/esm/ArticleProgramLandingPage.js +3 -2
  63. package/dist/esm/ArticleSeriesLandingPage.js +4 -3
  64. package/dist/esm/Auth.js +2 -1
  65. package/dist/esm/Beam.js +2 -1
  66. package/dist/esm/CMEDeck.js +2 -1
  67. package/dist/esm/Column2.js +2 -1
  68. package/dist/esm/Column3.js +2 -1
  69. package/dist/esm/DeckContent.js +3 -2
  70. package/dist/esm/ExternalResources.js +3 -2
  71. package/dist/esm/GridContent.js +4 -3
  72. package/dist/esm/HamMagazine.js +2 -1
  73. package/dist/esm/HorizontalArticleListing.js +3 -2
  74. package/dist/esm/IssueLanding.js +4 -3
  75. package/dist/esm/LeftNav.js +2 -1
  76. package/dist/esm/MasterDeck.js +4 -3
  77. package/dist/esm/MediaSeriesLanding.js +2 -1
  78. package/dist/esm/NavDvm.js +2 -1
  79. package/dist/esm/NavMagazine.js +2 -1
  80. package/dist/esm/NavNative.js +2 -1
  81. package/dist/esm/NavNormal.js +2 -1
  82. package/dist/esm/PartnerDetailListing.js +5 -4
  83. package/dist/esm/PubSection.js +4 -3
  84. package/dist/esm/PubToc.js +2 -1
  85. package/dist/esm/PublicationLanding.js +15 -89
  86. package/dist/esm/QueueDeckExpanded.js +4 -3
  87. package/dist/esm/Segment.js +2 -1
  88. package/dist/esm/SideFooter.js +2 -1
  89. package/dist/esm/TaxonomyDescription.js +3 -2
  90. package/dist/esm/TemplateNormal.js +2 -1
  91. package/dist/esm/VideoProgramLandingPage.js +3 -2
  92. package/dist/esm/VideoSeriesFilter.js +2 -1
  93. package/dist/esm/VideoSeriesLandingPage.js +4 -3
  94. package/dist/esm/View.js +3 -2
  95. package/dist/esm/_set-species-3f8319f5.js +52 -0
  96. package/dist/esm/{asyncToGenerator-fc1c2e29.js → asyncToGenerator-502f13b4.js} +5 -49
  97. package/dist/esm/getRelatedArticle.js +2 -1
  98. package/dist/esm/getRootDocGroup.js +2 -1
  99. package/dist/esm/getSerializers.js +3 -2
  100. package/dist/esm/index.js +5 -4
  101. package/package.json +1 -1
  102. /package/dist/cjs/{ADInfeed-5b042ade.js → ADInfeed-89761278.js} +0 -0
  103. /package/dist/cjs/{ADlgInfeed-e92b6f9f.js → ADlgInfeed-853ddc3d.js} +0 -0
  104. /package/dist/cjs/{index-76417d82.js → index-a8fbfd22.js} +0 -0
  105. /package/dist/esm/{ADInfeed-eb7bdd41.js → ADInfeed-1e0d374f.js} +0 -0
  106. /package/dist/esm/{ADlgInfeed-f2ac31d1.js → ADlgInfeed-c089deab.js} +0 -0
  107. /package/dist/esm/{index-c1374f98.js → index-18307045.js} +0 -0
@@ -30,7 +30,8 @@ import './main-e4a934b2.js';
30
30
  import './entities-7cc3bf45.js';
31
31
  import './slicedToArray-641f241f.js';
32
32
  import './stringify-4330ccdc.js';
33
- import { a as _asyncToGenerator, r as regenerator } from './asyncToGenerator-fc1c2e29.js';
33
+ import { a as _asyncToGenerator, r as regenerator } from './asyncToGenerator-502f13b4.js';
34
+ import './_set-species-3f8319f5.js';
34
35
  import './Segment.js';
35
36
  import './Beam.js';
36
37
  import './AdSlot.js';
@@ -41,7 +42,7 @@ import './GroupDeck.js';
41
42
  import 'react-bootstrap';
42
43
  import './iconBase-602d52fe.js';
43
44
  import './index.esm-29e48d38.js';
44
- import { g as getSerializers } from './index-c1374f98.js';
45
+ import { g as getSerializers } from './index-18307045.js';
45
46
  import './util-7700fc59.js';
46
47
  import './brightcove-react-player-loader.es-83f53e4e.js';
47
48
  import Head from 'next/head';
@@ -21,7 +21,8 @@ import './toNumber-2f7a84cd.js';
21
21
  import './main-e4a934b2.js';
22
22
  import { _ as _slicedToArray } from './slicedToArray-641f241f.js';
23
23
  import './stringify-4330ccdc.js';
24
- import './asyncToGenerator-fc1c2e29.js';
24
+ import './asyncToGenerator-502f13b4.js';
25
+ import './_set-species-3f8319f5.js';
25
26
  import './Segment.js';
26
27
  import './Beam.js';
27
28
  import './AdSlot.js';
@@ -33,7 +33,8 @@ import './main-e4a934b2.js';
33
33
  import './entities-7cc3bf45.js';
34
34
  import './slicedToArray-641f241f.js';
35
35
  import './stringify-4330ccdc.js';
36
- import { a as _asyncToGenerator, r as regenerator } from './asyncToGenerator-fc1c2e29.js';
36
+ import { a as _asyncToGenerator, r as regenerator } from './asyncToGenerator-502f13b4.js';
37
+ import './_set-species-3f8319f5.js';
37
38
  import './Segment.js';
38
39
  import './Beam.js';
39
40
  import './AdSlot.js';
@@ -46,7 +47,7 @@ import 'react-bootstrap';
46
47
  import './iconBase-602d52fe.js';
47
48
  import './index.esm-29e48d38.js';
48
49
  import VideoSeriesListing from './VideoSeriesListing.js';
49
- import { g as getSerializers } from './index-c1374f98.js';
50
+ import { g as getSerializers } from './index-18307045.js';
50
51
  import './util-7700fc59.js';
51
52
  import './brightcove-react-player-loader.es-83f53e4e.js';
52
53
  import 'next/head';
@@ -8,7 +8,8 @@ import './web.dom.iterable-4439f05a.js';
8
8
  import React__default, { useState, useEffect } from 'react';
9
9
  import { withRouter } from 'next/router';
10
10
  import { _ as _slicedToArray } from './slicedToArray-641f241f.js';
11
- import { a as _asyncToGenerator, r as regenerator } from './asyncToGenerator-fc1c2e29.js';
11
+ import { a as _asyncToGenerator, r as regenerator } from './asyncToGenerator-502f13b4.js';
12
+ import './_set-species-3f8319f5.js';
12
13
  import { DropdownButton, Dropdown } from 'react-bootstrap';
13
14
 
14
15
  var _this = undefined;
@@ -33,13 +33,14 @@ import './index-5f9f807a.js';
33
33
  import './main-e4a934b2.js';
34
34
  import './slicedToArray-641f241f.js';
35
35
  import './stringify-4330ccdc.js';
36
- import { a as _asyncToGenerator, r as regenerator } from './asyncToGenerator-fc1c2e29.js';
36
+ import { a as _asyncToGenerator, r as regenerator } from './asyncToGenerator-502f13b4.js';
37
+ import './_set-species-3f8319f5.js';
37
38
  import './Segment.js';
38
39
  import './Beam.js';
39
40
  import './AdSlot.js';
40
- import './ADInfeed-eb7bdd41.js';
41
+ import './ADInfeed-1e0d374f.js';
41
42
  import './lodash-17fdfebb.js';
42
- import './ADlgInfeed-f2ac31d1.js';
43
+ import './ADlgInfeed-c089deab.js';
43
44
  import { g as getYoutubeId } from './index-c7e2ac95.js';
44
45
  import MasterDeck from './MasterDeck.js';
45
46
  import 'react-bootstrap/Breadcrumb';
package/dist/esm/View.js CHANGED
@@ -32,7 +32,8 @@ import { m as main_36 } from './main-e4a934b2.js';
32
32
  import './entities-7cc3bf45.js';
33
33
  import { a as _getIterator, _ as _slicedToArray } from './slicedToArray-641f241f.js';
34
34
  import { _ as _JSON$stringify } from './stringify-4330ccdc.js';
35
- import { a as _asyncToGenerator, r as regenerator } from './asyncToGenerator-fc1c2e29.js';
35
+ import { a as _asyncToGenerator, r as regenerator } from './asyncToGenerator-502f13b4.js';
36
+ import './_set-species-3f8319f5.js';
36
37
  import './Segment.js';
37
38
  import './Beam.js';
38
39
  import DFPAdSlot from './AdSlot.js';
@@ -43,7 +44,7 @@ import './GroupDeck.js';
43
44
  import 'react-bootstrap';
44
45
  import './iconBase-602d52fe.js';
45
46
  import './index.esm-29e48d38.js';
46
- import { r as renderAuthor, g as getSerializers } from './index-c1374f98.js';
47
+ import { r as renderAuthor, g as getSerializers } from './index-18307045.js';
47
48
  import './util-7700fc59.js';
48
49
  import './brightcove-react-player-loader.es-83f53e4e.js';
49
50
  import Head from 'next/head';
@@ -0,0 +1,52 @@
1
+ import { c as createCommonjsModule } from './_commonjsHelpers-0c4b6f40.js';
2
+ import { c as _ctx, h as _toLength, m as _anObject, k as _hide, a as _core, i as _global, d as _descriptors, e as _objectDp } from './_to-object-a4107da3.js';
3
+ import { b as _wks } from './es6.string.iterator-c990c18c.js';
4
+ import { a as _isArrayIter, b as _iterCall } from './_iter-detect-5d49a330.js';
5
+ import { c as core_getIteratorMethod } from './core.get-iterator-method-e1de7503.js';
6
+
7
+ var _anInstance = function (it, Constructor, name, forbiddenField) {
8
+ if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
9
+ throw TypeError(name + ': incorrect invocation!');
10
+ } return it;
11
+ };
12
+
13
+ var _forOf = createCommonjsModule(function (module) {
14
+ var BREAK = {};
15
+ var RETURN = {};
16
+ var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
17
+ var iterFn = ITERATOR ? function () { return iterable; } : core_getIteratorMethod(iterable);
18
+ var f = _ctx(fn, that, entries ? 2 : 1);
19
+ var index = 0;
20
+ var length, step, iterator, result;
21
+ if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
22
+ // fast case for arrays with default iterator
23
+ if (_isArrayIter(iterFn)) for (length = _toLength(iterable.length); length > index; index++) {
24
+ result = entries ? f(_anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
25
+ if (result === BREAK || result === RETURN) return result;
26
+ } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
27
+ result = _iterCall(iterator, f, step.value, entries);
28
+ if (result === BREAK || result === RETURN) return result;
29
+ }
30
+ };
31
+ exports.BREAK = BREAK;
32
+ exports.RETURN = RETURN;
33
+ });
34
+
35
+ var _redefineAll = function (target, src, safe) {
36
+ for (var key in src) {
37
+ if (safe && target[key]) target[key] = src[key];
38
+ else _hide(target, key, src[key]);
39
+ } return target;
40
+ };
41
+
42
+ var SPECIES = _wks('species');
43
+
44
+ var _setSpecies = function (KEY) {
45
+ var C = typeof _core[KEY] == 'function' ? _core[KEY] : _global[KEY];
46
+ if (_descriptors && C && !C[SPECIES]) _objectDp.f(C, SPECIES, {
47
+ configurable: true,
48
+ get: function () { return this; }
49
+ });
50
+ };
51
+
52
+ export { _anInstance as _, _forOf as a, _redefineAll as b, _setSpecies as c };
@@ -1,10 +1,11 @@
1
1
  import { c as createCommonjsModule, u as unwrapExports } from './_commonjsHelpers-0c4b6f40.js';
2
- import { c as _ctx, h as _toLength, m as _anObject, l as _aFunction, i as _global, x as _cof, y as _domCreate, b as _isObject, k as _hide, a as _core, d as _descriptors, e as _objectDp, _ as _export } from './_to-object-a4107da3.js';
2
+ import { m as _anObject, l as _aFunction, i as _global, x as _cof, c as _ctx, y as _domCreate, b as _isObject, _ as _export, a as _core } from './_to-object-a4107da3.js';
3
3
  import { b as _wks, g as _html, c as _setToStringTag } from './es6.string.iterator-c990c18c.js';
4
4
  import { _ as _library } from './_library-528f1934.js';
5
- import { a as _isArrayIter, b as _iterCall, _ as _iterDetect } from './_iter-detect-5d49a330.js';
6
- import { c as core_getIteratorMethod, _ as _classof } from './core.get-iterator-method-e1de7503.js';
5
+ import { _ as _iterDetect } from './_iter-detect-5d49a330.js';
6
+ import { _ as _classof } from './core.get-iterator-method-e1de7503.js';
7
7
  import './web.dom.iterable-4439f05a.js';
8
+ import { _ as _anInstance, b as _redefineAll, c as _setSpecies, a as _forOf } from './_set-species-3f8319f5.js';
8
9
 
9
10
  var runtime = createCommonjsModule(function (module) {
10
11
  /**
@@ -771,34 +772,6 @@ if (hadRuntime) {
771
772
 
772
773
  var regenerator = runtimeModule;
773
774
 
774
- var _anInstance = function (it, Constructor, name, forbiddenField) {
775
- if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
776
- throw TypeError(name + ': incorrect invocation!');
777
- } return it;
778
- };
779
-
780
- var _forOf = createCommonjsModule(function (module) {
781
- var BREAK = {};
782
- var RETURN = {};
783
- var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
784
- var iterFn = ITERATOR ? function () { return iterable; } : core_getIteratorMethod(iterable);
785
- var f = _ctx(fn, that, entries ? 2 : 1);
786
- var index = 0;
787
- var length, step, iterator, result;
788
- if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
789
- // fast case for arrays with default iterator
790
- if (_isArrayIter(iterFn)) for (length = _toLength(iterable.length); length > index; index++) {
791
- result = entries ? f(_anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
792
- if (result === BREAK || result === RETURN) return result;
793
- } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
794
- result = _iterCall(iterator, f, step.value, entries);
795
- if (result === BREAK || result === RETURN) return result;
796
- }
797
- };
798
- exports.BREAK = BREAK;
799
- exports.RETURN = RETURN;
800
- });
801
-
802
775
  // 7.3.20 SpeciesConstructor(O, defaultConstructor)
803
776
 
804
777
 
@@ -1018,23 +991,6 @@ var _promiseResolve = function (C, x) {
1018
991
  return promiseCapability.promise;
1019
992
  };
1020
993
 
1021
- var _redefineAll = function (target, src, safe) {
1022
- for (var key in src) {
1023
- if (safe && target[key]) target[key] = src[key];
1024
- else _hide(target, key, src[key]);
1025
- } return target;
1026
- };
1027
-
1028
- var SPECIES$1 = _wks('species');
1029
-
1030
- var _setSpecies = function (KEY) {
1031
- var C = typeof _core[KEY] == 'function' ? _core[KEY] : _global[KEY];
1032
- if (_descriptors && C && !C[SPECIES$1]) _objectDp.f(C, SPECIES$1, {
1033
- configurable: true,
1034
- get: function () { return this; }
1035
- });
1036
- };
1037
-
1038
994
  var task = _task.set;
1039
995
  var microtask = _microtask();
1040
996
 
@@ -1386,4 +1342,4 @@ exports.default = function (fn) {
1386
1342
 
1387
1343
  var _asyncToGenerator = unwrapExports(asyncToGenerator);
1388
1344
 
1389
- export { _Promise as _, _asyncToGenerator as a, _anInstance as b, _forOf as c, _redefineAll as d, _setSpecies as e, regenerator as r };
1345
+ export { _Promise as _, _asyncToGenerator as a, regenerator as r };
@@ -5,7 +5,8 @@ import './_library-528f1934.js';
5
5
  import './_iter-detect-5d49a330.js';
6
6
  import './core.get-iterator-method-e1de7503.js';
7
7
  import './web.dom.iterable-4439f05a.js';
8
- import { a as _asyncToGenerator, r as regenerator } from './asyncToGenerator-fc1c2e29.js';
8
+ import { a as _asyncToGenerator, r as regenerator } from './asyncToGenerator-502f13b4.js';
9
+ import './_set-species-3f8319f5.js';
9
10
  import { c as cookie } from './index-db3bb315.js';
10
11
  import getQuery from './getQuery.js';
11
12
 
@@ -5,7 +5,8 @@ import './_library-528f1934.js';
5
5
  import './_iter-detect-5d49a330.js';
6
6
  import './core.get-iterator-method-e1de7503.js';
7
7
  import './web.dom.iterable-4439f05a.js';
8
- import { a as _asyncToGenerator, r as regenerator } from './asyncToGenerator-fc1c2e29.js';
8
+ import { a as _asyncToGenerator, r as regenerator } from './asyncToGenerator-502f13b4.js';
9
+ import './_set-species-3f8319f5.js';
9
10
 
10
11
  var _this = undefined;
11
12
 
@@ -30,7 +30,8 @@ import './main-e4a934b2.js';
30
30
  import './entities-7cc3bf45.js';
31
31
  import './slicedToArray-641f241f.js';
32
32
  import './stringify-4330ccdc.js';
33
- import './asyncToGenerator-fc1c2e29.js';
33
+ import './asyncToGenerator-502f13b4.js';
34
+ import './_set-species-3f8319f5.js';
34
35
  import './Segment.js';
35
36
  import './Beam.js';
36
37
  import './AdSlot.js';
@@ -41,7 +42,7 @@ import './GroupDeck.js';
41
42
  import 'react-bootstrap';
42
43
  import './iconBase-602d52fe.js';
43
44
  import './index.esm-29e48d38.js';
44
- export { g as default } from './index-c1374f98.js';
45
+ export { g as default } from './index-18307045.js';
45
46
  import './util-7700fc59.js';
46
47
  import './brightcove-react-player-loader.es-83f53e4e.js';
47
48
  import 'next/head';
package/dist/esm/index.js CHANGED
@@ -34,14 +34,15 @@ import './main-e4a934b2.js';
34
34
  import './entities-7cc3bf45.js';
35
35
  import './slicedToArray-641f241f.js';
36
36
  import './stringify-4330ccdc.js';
37
- import './asyncToGenerator-fc1c2e29.js';
37
+ import './asyncToGenerator-502f13b4.js';
38
+ import './_set-species-3f8319f5.js';
38
39
  export { default as Segment } from './Segment.js';
39
40
  export { default as Beam } from './Beam.js';
40
41
  export { default as AdSlot } from './AdSlot.js';
41
- import './ADInfeed-eb7bdd41.js';
42
+ import './ADInfeed-1e0d374f.js';
42
43
  export { default as DeckContent } from './DeckContent.js';
43
44
  import './lodash-17fdfebb.js';
44
- import './ADlgInfeed-f2ac31d1.js';
45
+ import './ADlgInfeed-c089deab.js';
45
46
  import './getContentCategory-15dcc413.js';
46
47
  import './get-1e515072.js';
47
48
  import './eq-b470f743.js';
@@ -67,7 +68,7 @@ import './index.esm-29e48d38.js';
67
68
  export { default as VideoSeriesListing } from './VideoSeriesListing.js';
68
69
  export { default as ArticleSeriesListing } from './ArticleSeriesListing.js';
69
70
  export { default as ArticleCarousel } from './ArticleCarousel.js';
70
- export { g as getSerializers } from './index-c1374f98.js';
71
+ export { g as getSerializers } from './index-18307045.js';
71
72
  import './util-7700fc59.js';
72
73
  import './brightcove-react-player-loader.es-83f53e4e.js';
73
74
  import 'next/head';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mjhls/mjh-framework",
3
- "version": "1.0.779-beta.0",
3
+ "version": "1.0.779-beta.1",
4
4
  "description": "Foundation Framework",
5
5
  "author": "mjh-framework",
6
6
  "license": "MIT",