@qubit-ltd/jsdoc-theme 1.3.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.
Files changed (64) hide show
  1. package/CHANGELOG.md +260 -0
  2. package/LICENSE +21 -0
  3. package/README.md +798 -0
  4. package/clean-jsdoc-theme-defaults.js +37 -0
  5. package/clean-jsdoc-theme-helper.js +186 -0
  6. package/helpers/Environment.html +3 -0
  7. package/helpers/down-arrow.js +9 -0
  8. package/helpers/i18n.js +106 -0
  9. package/i18n/en.json +76 -0
  10. package/i18n/zh.json +76 -0
  11. package/package.json +83 -0
  12. package/publish.js +1133 -0
  13. package/static/fonts/Inconsolata-Regular.ttf +0 -0
  14. package/static/fonts/OpenSans-Regular.ttf +0 -0
  15. package/static/fonts/WorkSans-Bold.ttf +0 -0
  16. package/static/scripts/core.js +720 -0
  17. package/static/scripts/core.min.js +23 -0
  18. package/static/scripts/resize.js +90 -0
  19. package/static/scripts/search.js +269 -0
  20. package/static/scripts/search.min.js +6 -0
  21. package/static/scripts/third-party/Apache-License-2.0.txt +202 -0
  22. package/static/scripts/third-party/fuse.js +1749 -0
  23. package/static/scripts/third-party/hljs-line-num-original.js +367 -0
  24. package/static/scripts/third-party/hljs-line-num.js +1 -0
  25. package/static/scripts/third-party/hljs-original.js +5260 -0
  26. package/static/scripts/third-party/hljs.js +1 -0
  27. package/static/scripts/third-party/popper.js +1287 -0
  28. package/static/scripts/third-party/tippy.js +1499 -0
  29. package/static/scripts/third-party/tocbot.js +757 -0
  30. package/static/scripts/third-party/tocbot.min.js +1 -0
  31. package/static/styles/clean-jsdoc-theme-base.css +1257 -0
  32. package/static/styles/clean-jsdoc-theme-dark.css +412 -0
  33. package/static/styles/clean-jsdoc-theme-light.css +482 -0
  34. package/static/styles/clean-jsdoc-theme-scrollbar.css +30 -0
  35. package/static/styles/clean-jsdoc-theme-without-scrollbar.min.css +1 -0
  36. package/static/styles/clean-jsdoc-theme.min.css +1 -0
  37. package/tmpl/augments.tmpl +10 -0
  38. package/tmpl/container.tmpl +261 -0
  39. package/tmpl/details.tmpl +207 -0
  40. package/tmpl/example.tmpl +3 -0
  41. package/tmpl/examples.tmpl +48 -0
  42. package/tmpl/exceptions.tmpl +32 -0
  43. package/tmpl/i18n-tooltips.tmpl +30 -0
  44. package/tmpl/icons.tmpl +77 -0
  45. package/tmpl/include-target-script-and-styles.tmpl +43 -0
  46. package/tmpl/layout.tmpl +169 -0
  47. package/tmpl/mainpage.tmpl +10 -0
  48. package/tmpl/members.tmpl +42 -0
  49. package/tmpl/method.tmpl +190 -0
  50. package/tmpl/mobile-sidebar.tmpl +21 -0
  51. package/tmpl/navbar-actions.tmpl +25 -0
  52. package/tmpl/navbar-menu.tmpl +25 -0
  53. package/tmpl/navbar.tmpl +14 -0
  54. package/tmpl/params.tmpl +131 -0
  55. package/tmpl/properties.tmpl +109 -0
  56. package/tmpl/returns.tmpl +19 -0
  57. package/tmpl/search.tmpl +17 -0
  58. package/tmpl/sidebar-items.tmpl +33 -0
  59. package/tmpl/sidebar-title.tmpl +8 -0
  60. package/tmpl/sidebar.tmpl +9 -0
  61. package/tmpl/source.tmpl +13 -0
  62. package/tmpl/toc.tmpl +4 -0
  63. package/tmpl/tutorial.tmpl +32 -0
  64. package/tmpl/type.tmpl +13 -0
@@ -0,0 +1,37 @@
1
+ const SECTION_TYPE = {
2
+ Classes: "Classes",
3
+ Modules: "Modules",
4
+ Externals: "Externals",
5
+ Events: "Events",
6
+ Namespaces: "Namespaces",
7
+ Mixins: "Mixins",
8
+ Tutorials: "Tutorials",
9
+ Interfaces: "Interfaces",
10
+ Global: "Global",
11
+ };
12
+
13
+ const defaultSections = [
14
+ SECTION_TYPE.Modules,
15
+ SECTION_TYPE.Classes,
16
+ SECTION_TYPE.Externals,
17
+ SECTION_TYPE.Events,
18
+ SECTION_TYPE.Namespaces,
19
+ SECTION_TYPE.Mixins,
20
+ SECTION_TYPE.Tutorials,
21
+ SECTION_TYPE.Interfaces,
22
+ SECTION_TYPE.Global,
23
+ ];
24
+
25
+ const HTML_MINIFY_OPTIONS = {
26
+ collapseWhitespace: true,
27
+ removeComments: true,
28
+ html5: true,
29
+ minifyJS: true,
30
+ minifyCSS: true,
31
+ };
32
+
33
+ module.exports = {
34
+ HTML_MINIFY_OPTIONS,
35
+ SECTION_TYPE,
36
+ defaultSections,
37
+ };
@@ -0,0 +1,186 @@
1
+ const has = require("lodash/has");
2
+ const klawSync = require("klaw-sync");
3
+ const path = require("path");
4
+ const fse = require("fs-extra");
5
+ const showdown = require("showdown");
6
+
7
+ const mdToHTMLConverter = new showdown.Converter();
8
+
9
+ function lsSync(dir, opts = {}) {
10
+ const depth = has(opts, "depth") ? opts.depth : -1;
11
+
12
+ const files = klawSync(dir, {
13
+ depthLimit: depth,
14
+ filter: (f) => !path.basename(f.path).startsWith("."),
15
+ nodir: true,
16
+ });
17
+
18
+ return files.map((f) => f.path);
19
+ }
20
+
21
+ function copyToOutputFolder(filePath, outdir) {
22
+ const resolvedPath = path.resolve(filePath);
23
+ const filename = path.basename(resolvedPath);
24
+ const out = path.join(outdir, filename);
25
+
26
+ fse.copyFileSync(resolvedPath, out);
27
+ }
28
+
29
+ function copyToOutputFolderFromArray(filePathArray, outdir) {
30
+ const outputList = [];
31
+
32
+ if (Array.isArray(filePathArray)) {
33
+ for (const filePath of filePathArray) {
34
+ if (typeof filePath === "string") {
35
+ copyToOutputFolder(filePath, outdir);
36
+ outputList.push(path.basename(filePath));
37
+ } else if (typeof filePath === "object") {
38
+ const { filepath, targets } = filePath;
39
+
40
+ copyToOutputFolder(filepath, outdir);
41
+ outputList.push({ filepath: path.basename(filepath), targets });
42
+ }
43
+ }
44
+ }
45
+
46
+ return outputList;
47
+ }
48
+
49
+ function buildFooter(themeOpts) {
50
+ var footer = themeOpts.footer;
51
+
52
+ return footer;
53
+ }
54
+
55
+ function moduleHeader(themeOpts) {
56
+ var displayModuleHeader = themeOpts.displayModuleHeader || false;
57
+
58
+ return displayModuleHeader;
59
+ }
60
+
61
+ function getFavicon(themeOpts) {
62
+ var favicon = themeOpts.favicon || undefined;
63
+
64
+ return favicon;
65
+ }
66
+
67
+ // function copy
68
+ function createDynamicStyleSheet(themeOpts) {
69
+ var styleClass = themeOpts.create_style || undefined;
70
+ /* prettier-ignore-start */
71
+
72
+ return styleClass;
73
+ }
74
+
75
+ function createDynamicsScripts(themeOpts) {
76
+ var scripts = themeOpts.add_scripts || undefined;
77
+
78
+ return scripts;
79
+ }
80
+
81
+ function returnPathOfScriptScr(themeOpts) {
82
+ var scriptPath = themeOpts.add_script_path || undefined;
83
+
84
+ return scriptPath;
85
+ }
86
+
87
+ function returnPathOfStyleSrc(themeOpts) {
88
+ var stylePath = themeOpts.add_style_path || undefined;
89
+
90
+ return stylePath;
91
+ }
92
+
93
+ function includeCss(themeOpts, outdir) {
94
+ var stylePath = themeOpts.include_css || undefined;
95
+
96
+ if (stylePath) {
97
+ stylePath = copyToOutputFolderFromArray(stylePath, outdir);
98
+ }
99
+
100
+ return stylePath;
101
+ }
102
+
103
+ function resizeable(themeOpts) {
104
+ var resizeOpts = themeOpts.resizeable || {};
105
+
106
+ return resizeOpts;
107
+ }
108
+
109
+ function codepen(themeOpts) {
110
+ var codepenOpts = themeOpts.codepen || {};
111
+
112
+ return codepenOpts;
113
+ }
114
+
115
+ function includeScript(themeOpts, outdir) {
116
+ var scriptPath = themeOpts.include_js || undefined;
117
+
118
+ if (scriptPath) {
119
+ scriptPath = copyToOutputFolderFromArray(scriptPath, outdir);
120
+ }
121
+
122
+ return scriptPath;
123
+ }
124
+
125
+ function getMetaTagData(themeOpts) {
126
+ var meta = themeOpts.meta || undefined;
127
+
128
+ return meta;
129
+ }
130
+
131
+ function getTheme(themeOpts) {
132
+ var theme = themeOpts.default_theme || "dark";
133
+
134
+ return theme;
135
+ }
136
+
137
+ function getBaseURL(themeOpts) {
138
+ return themeOpts.base_url;
139
+ }
140
+
141
+ function copyStaticFolder(themeOpts, outdir) {
142
+ const staticDir = themeOpts.static_dir || undefined;
143
+
144
+ if (staticDir) {
145
+ for (const dir of staticDir) {
146
+ const output = path.join(outdir, dir);
147
+
148
+ fse.copySync(dir, output);
149
+ }
150
+ }
151
+ }
152
+
153
+ /**
154
+ * Currently for some reason yields markdown is
155
+ * not processed by jsdoc. So, we are processing it here
156
+ *
157
+ * @param {Array<{type: string, description: string}>} yields
158
+ */
159
+ function getProcessedYield(yields) {
160
+ if (!Array.isArray(yields)) return [];
161
+
162
+ return yields.map((y) => ({
163
+ ...y,
164
+ description: mdToHTMLConverter.makeHtml(y.description),
165
+ }));
166
+ }
167
+
168
+ module.exports = {
169
+ buildFooter,
170
+ moduleHeader,
171
+ codepen,
172
+ createDynamicStyleSheet,
173
+ createDynamicsScripts,
174
+ getBaseURL,
175
+ getFavicon,
176
+ getMetaTagData,
177
+ getTheme,
178
+ includeCss,
179
+ includeScript,
180
+ resizeable,
181
+ returnPathOfScriptScr,
182
+ returnPathOfStyleSrc,
183
+ copyStaticFolder,
184
+ getProcessedYield,
185
+ lsSync,
186
+ };
@@ -0,0 +1,3 @@
1
+ <!DOCTYPE html><html lang="en" style="font-size:16px"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="Author" content="Ankit Kumar"><meta name="Description" content="A beautifully crafted theme for jsdoc"><script src="script.js"></script><link type="text/css" rel="stylesheet" href="style.css"><title>Class: Environment</title><!--[if lt IE 9]>
2
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
3
+ <![endif]--><script src="scripts/third-party/hljs.js" defer="defer"></script><script src="scripts/third-party/hljs-line-num.js" defer="defer"></script><script src="scripts/third-party/popper.js" defer="defer"></script><script src="scripts/third-party/tippy.js" defer="defer"></script><script src="scripts/third-party/tocbot.min.js"></script><script>var baseURL="/",locationPathname="";baseURL=(locationPathname=document.location.pathname).substr(0,locationPathname.lastIndexOf("/")+1)</script><link rel="stylesheet" href="styles/clean-jsdoc-theme.min.css"><style>.test-create-style{background:red}</style><svg aria-hidden="true" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="display:none"><defs><symbol id="copy-icon" viewbox="0 0 488.3 488.3"><g><path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124 C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124 c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z"/><path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227 c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6 V38.6C439.65,17.3,422.35,0,401.05,0z"/></g></symbol><symbol id="search-icon" viewBox="0 0 512 512"><g><g><path d="M225.474,0C101.151,0,0,101.151,0,225.474c0,124.33,101.151,225.474,225.474,225.474 c124.33,0,225.474-101.144,225.474-225.474C450.948,101.151,349.804,0,225.474,0z M225.474,409.323 c-101.373,0-183.848-82.475-183.848-183.848S124.101,41.626,225.474,41.626s183.848,82.475,183.848,183.848 S326.847,409.323,225.474,409.323z"/></g></g><g><g><path d="M505.902,476.472L386.574,357.144c-8.131-8.131-21.299-8.131-29.43,0c-8.131,8.124-8.131,21.306,0,29.43l119.328,119.328 c4.065,4.065,9.387,6.098,14.715,6.098c5.321,0,10.649-2.033,14.715-6.098C514.033,497.778,514.033,484.596,505.902,476.472z"/></g></g></symbol><symbol id="font-size-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11.246 15H4.754l-2 5H.6L7 4h2l6.4 16h-2.154l-2-5zm-.8-2L8 6.885 5.554 13h4.892zM21 12.535V12h2v8h-2v-.535a4 4 0 1 1 0-6.93zM19 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></symbol><symbol id="add-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"/></symbol><symbol id="minus-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M5 11h14v2H5z"/></symbol><symbol id="dark-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.979 6.979 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"/></symbol><symbol id="light-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></symbol><symbol id="reset-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M18.537 19.567A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3a8 8 0 1 0-2.46 5.772l.997 1.795z"/></symbol><symbol id="down-icon" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z"></path></symbol><symbol id="codepen-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M16.5 13.202L13 15.535v3.596L19.197 15 16.5 13.202zM14.697 12L12 10.202 9.303 12 12 13.798 14.697 12zM20 10.869L18.303 12 20 13.131V10.87zM19.197 9L13 4.869v3.596l3.5 2.333L19.197 9zM7.5 10.798L11 8.465V4.869L4.803 9 7.5 10.798zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zM4 13.131L5.697 12 4 10.869v2.262zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"/></symbol><symbol id="close-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/></symbol><symbol id="menu-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"/></symbol></defs></svg></head><body class="dark" data-theme="dark"><div class="sidebar-container"><div class="sidebar" id="sidebar"><a href="/" class="sidebar-title sidebar-title-anchor">clean-jsdoc-theme</a><div class="sidebar-items-container"><div class="sidebar-section-title with-arrow" data-isopen="false" id="lUrjRXtWbw7TgUHpOpeIs"><div>Modules</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="module-SqlJs.html">SqlJs</a></div><div class="sidebar-section-children"><a href="module-bookshelf.html">bookshelf</a></div><div class="sidebar-section-children"><a href="module-color_mixer.html">color/mixer</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="axG7kDgeAPeZ5DHapLq1d"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Alive.html">Alive</a></div><div class="sidebar-section-children"><a href="Apple.html">Apple</a></div><div class="sidebar-section-children"><a href="Database.html">Database</a></div><div class="sidebar-section-children"><a href="Energy.html">Energy</a></div><div class="sidebar-section-children"><a href="Environment.html">Environment</a></div><div class="sidebar-section-children"><a href="Statement.html">Statement</a></div><div class="sidebar-section-children"><a href="StatementIterator.html">StatementIterator</a></div><div class="sidebar-section-children"><a href="Test.html">Test</a></div><div class="sidebar-section-children"><a href="Tree.html">Tree</a></div><div class="sidebar-section-children"><a href="World.html">World</a></div><div class="sidebar-section-children"><a href="module-bookshelf.Book.html" class="has-anchor"><span class="ancestors">bookshelf~ </span>Book</a></div><div class="sidebar-section-children"><a href="module-color_mixer-Colour.html" class="has-anchor"><span class="ancestors">color_mixer~ </span>Colour</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="BWZtTwBCXCWgbevKSQKPL"><div>Events</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Apple.html#event:beEaten">beEaten</a></div><div class="sidebar-section-children"><a href="Environment.html#event:beforeDestroy">beforeDestroy</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="6udUSs5-PJoqnSItnJHu5"><div>Namespaces</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="obj.map.html">map</a></div><div class="sidebar-section-children"><a href="pieOptions.html">pieOptions</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="FTgL4gY1UQX8gtVdugX3V"><div>Tutorials</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="tutorial-Alive_.html">Alive</a></div><div class="sidebar-section-children"><a href="tutorial-Apple_.html">Apple</a></div><div class="sidebar-section-children"><a href="tutorial-Environment_.html">Environment</a></div><div class="sidebar-section-children"><a href="tutorial-new.html">new</a></div><div class="sidebar-section-children"><a href="tutorial-Other.html">Other</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="E4zOAQLXxH4qLBVcwgklg"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#AliveEnergy">AliveEnergy</a></div><div class="sidebar-section-children"><a href="global.html#EnergyUnit">EnergyUnit</a></div><div class="sidebar-section-children"><a href="global.html#EnvironmentConfiguration">EnvironmentConfiguration</a></div><div class="sidebar-section-children"><a href="global.html#PhotoSize">PhotoSize</a></div><div class="sidebar-section-children"><a href="global.html#SqlJs">SqlJs</a></div><div class="sidebar-section-children"><a href="global.html#SqlJsConfig">SqlJsConfig</a></div><div class="sidebar-section-children"><a href="global.html#fibonacci">fibonacci</a></div><div class="sidebar-section-children"><a href="global.html#initSqlJs">initSqlJs</a></div></div></div></div></div><div class="navbar-container" id="VuAckcnZhf"><nav class="navbar"><div class="navbar-left-items"><div class="navbar-item"><a id="github" href="https://github.com/ankitskvmdam/clean-jsdoc-theme" target="">Github</a></div><div class="navbar-item"><a id="npm" href="https://www.npmjs.com/package/clean-jsdoc-theme" target="">npm</a></div></div><div class="navbar-right-items"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div><nav></nav></nav></div><div class="toc-container"><div class="toc-content"><span class="bold">On this page</span><div id="eed4d2a0bfd64539bb9df78095dec881"></div></div></div><div class="body-wrapper"><div class="main-content"><div class="main-wrapper"><section><header><h1 id="Environment-title" class="has-anchor">Environment</h1><div class="class-description"><p>Lorem ipsum dolor sit amet, {@link Energy} consectetur adipiscing elit. Vestibulum condimentum tempus diam. Ut eget ultricies metus, vitae ornare turpis. Vivamus lectus metus, euismod quis tortor quis, pretium semper massa. Nulla mauris sapien, faucibus vitae metus et, ultrices fringilla sem. Sed laoreet tempor odio, elementum scelerisque nunc aliquet quis.</p></div></header><article><div class="container-overview"><h2 id="constructor" class="has-anchor">Constructor</h2><h3 class="name has-anchor" id="Environment"><span class="type-signature"></span>new Environment<span class="signature">()</span></h3><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="Environment.js.html">Environment.js</a>, <a href="Environment.js.html#line6">line 6</a></li></ul></dd></div></dl></div><h2 id="members" class="subsection-title has-anchor">Members</h2><h3 class="name has-anchor" id="livingThings"><span class="type-signature"></span>livingThings<span class="type-signature"> :Array.&lt;<a href="Alive.html">Alive</a>></span></h3><div class="description"><p>All the living things in this environment</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Array.&lt;<a href="Alive.html">Alive</a>></span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="Environment.js.html">Environment.js</a>, <a href="Environment.js.html#line12">line 12</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="name"><span class="type-signature"></span>name<span class="type-signature"> :String</span></h3><div class="description"><p>The name of this environment</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">String</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="Environment.js.html">Environment.js</a>, <a href="Environment.js.html#line18">line 18</a></li></ul></dd></div></dl><h2 id="methods" class="subsection-title has-anchor">Methods</h2><h3 class="name has-anchor" id="start"><span class="type-signature"></span>start<span class="signature">(config)</span></h3><div class="description"><p>Vestibulum condimentum tempus {@link Alive} diam.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>config</code></td><td class="type"><span class="param-type"><a href="global.html#EnvironmentConfiguration">EnvironmentConfiguration</a></span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="Environment.js.html">Environment.js</a>, <a href="Environment.js.html#line25">line 25</a></li></ul></dd></div></dl><h2 id="events" class="subsection-title has-anchor">Events</h2><h3 class="name has-anchor" id="event:beforeDestroy">beforeDestroy</h3><div class="description"><p>Lorem ipsum dolor sit amet, {@link Energy} consectetur adipiscing el</p></div><div class="method-member-container mt-20"><strong>Type:</strong><ul><li><span class="param-type"><a href="Energy.html">Energy</a></span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>foo</code></td><td class="type"><span class="param-type">boolean</span></td><td class="description last"><p>aalks djlas</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="Environment.js.html">Environment.js</a>, <a href="Environment.js.html#line36">line 36</a></li></ul></dd></div></dl></article></section><footer class="footer" id="PeOAagUepe"><div class="wrapper"><div style="margin-bottom:.5rem">clean-jsdoc-theme</div>Fork: <a href="https://github.com/ankitskvmdam/clean-jsdoc-theme">https://github.com/ankitskvmdam/clean-jsdoc-theme</a></div></footer></div></div></div><div class="search-container" id="PkfLWpAbet" style="display:none"><div class="wrapper" id="iCxFxjkHbP"><button class="icon-button search-close-button" id="VjLlGakifb" aria-label="close search"><svg><use xlink:href="#close-icon"></use></svg></button><div class="search-box-c"><svg><use xlink:href="#search-icon"></use></svg> <input type="text" id="vpcKVYIppa" class="search-input" placeholder="Search..." autofocus></div><div class="search-result-c" id="fWwVHRuDuN"><span class="search-result-c-text">Type anything to view search result</span></div></div></div><div class="mobile-menu-icon-container"><button class="icon-button" id="mobile-menu" data-isopen="false" aria-label="menu"><svg><use xlink:href="#menu-icon"></use></svg></button></div><div id="mobile-sidebar" class="mobile-sidebar-container"><div class="mobile-sidebar-wrapper"><a href="/" class="sidebar-title sidebar-title-anchor">clean-jsdoc-theme</a><div class="mobile-nav-links"><div class="navbar-item"><a id="github-mobile" href="https://github.com/ankitskvmdam/clean-jsdoc-theme" target="">Github</a></div><div class="navbar-item"><a id="npm-mobile" href="https://www.npmjs.com/package/clean-jsdoc-theme" target="">npm</a></div></div><div class="mobile-sidebar-items-c"><div class="sidebar-section-title with-arrow" data-isopen="false" id="lUrjRXtWbw7TgUHpOpeIs"><div>Modules</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="module-SqlJs.html">SqlJs</a></div><div class="sidebar-section-children"><a href="module-bookshelf.html">bookshelf</a></div><div class="sidebar-section-children"><a href="module-color_mixer.html">color/mixer</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="axG7kDgeAPeZ5DHapLq1d"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Alive.html">Alive</a></div><div class="sidebar-section-children"><a href="Apple.html">Apple</a></div><div class="sidebar-section-children"><a href="Database.html">Database</a></div><div class="sidebar-section-children"><a href="Energy.html">Energy</a></div><div class="sidebar-section-children"><a href="Environment.html">Environment</a></div><div class="sidebar-section-children"><a href="Statement.html">Statement</a></div><div class="sidebar-section-children"><a href="StatementIterator.html">StatementIterator</a></div><div class="sidebar-section-children"><a href="Test.html">Test</a></div><div class="sidebar-section-children"><a href="Tree.html">Tree</a></div><div class="sidebar-section-children"><a href="World.html">World</a></div><div class="sidebar-section-children"><a href="module-bookshelf.Book.html" class="has-anchor"><span class="ancestors">bookshelf~ </span>Book</a></div><div class="sidebar-section-children"><a href="module-color_mixer-Colour.html" class="has-anchor"><span class="ancestors">color_mixer~ </span>Colour</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="BWZtTwBCXCWgbevKSQKPL"><div>Events</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Apple.html#event:beEaten">beEaten</a></div><div class="sidebar-section-children"><a href="Environment.html#event:beforeDestroy">beforeDestroy</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="6udUSs5-PJoqnSItnJHu5"><div>Namespaces</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="obj.map.html">map</a></div><div class="sidebar-section-children"><a href="pieOptions.html">pieOptions</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="FTgL4gY1UQX8gtVdugX3V"><div>Tutorials</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="tutorial-Alive_.html">Alive</a></div><div class="sidebar-section-children"><a href="tutorial-Apple_.html">Apple</a></div><div class="sidebar-section-children"><a href="tutorial-Environment_.html">Environment</a></div><div class="sidebar-section-children"><a href="tutorial-new.html">new</a></div><div class="sidebar-section-children"><a href="tutorial-Other.html">Other</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="E4zOAQLXxH4qLBVcwgklg"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#AliveEnergy">AliveEnergy</a></div><div class="sidebar-section-children"><a href="global.html#EnergyUnit">EnergyUnit</a></div><div class="sidebar-section-children"><a href="global.html#EnvironmentConfiguration">EnvironmentConfiguration</a></div><div class="sidebar-section-children"><a href="global.html#PhotoSize">PhotoSize</a></div><div class="sidebar-section-children"><a href="global.html#SqlJs">SqlJs</a></div><div class="sidebar-section-children"><a href="global.html#SqlJsConfig">SqlJsConfig</a></div><div class="sidebar-section-children"><a href="global.html#fibonacci">fibonacci</a></div><div class="sidebar-section-children"><a href="global.html#initSqlJs">initSqlJs</a></div></div></div><div class="mobile-navbar-actions"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div></div></div><script type="text/javascript" src="scripts/core.min.js"></script><script src="scripts/search.min.js" defer="defer"></script><script src="scripts/third-party/fuse.js" defer="defer"></script><script type="text/javascript">function foo(){console.log("foo")}function bar(){console.log("bar")}bar(),foo()</script><script type="text/javascript">var tocbotInstance=tocbot.init({tocSelector:"#eed4d2a0bfd64539bb9df78095dec881",contentSelector:".main-content",headingSelector:"h1, h2, h3",hasInnerContainers:!0,scrollContainer:".main-content",headingsOffset:130,onClick:bringLinkToView})</script></body></html>
@@ -0,0 +1,9 @@
1
+ const upIcon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16">
2
+ <path
3
+ fill-rule="evenodd"
4
+ clip-rule="evenodd"
5
+ d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z">
6
+ </path>
7
+ </svg>`;
8
+
9
+ module.exports = upIcon;
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Internationalization helper for JSDoc templates
3
+ */
4
+
5
+ const fs = require("fs");
6
+ const path = require("path");
7
+
8
+ let currentLanguage = "en";
9
+ let translations = {};
10
+
11
+ /**
12
+ * Load translation files
13
+ * @param {string} language - Language code (en, zh)
14
+ */
15
+ function loadTranslations(language) {
16
+ const translationPath = path.join(
17
+ __dirname,
18
+ "..",
19
+ "i18n",
20
+ `${language}.json`
21
+ );
22
+
23
+ try {
24
+ if (fs.existsSync(translationPath)) {
25
+ const content = fs.readFileSync(translationPath, "utf8");
26
+ translations[language] = JSON.parse(content);
27
+ return true;
28
+ }
29
+ } catch (error) {
30
+ console.warn(
31
+ `Failed to load translations for language: ${language}`,
32
+ error.message
33
+ );
34
+ }
35
+
36
+ return false;
37
+ }
38
+
39
+ /**
40
+ * Set current language
41
+ * @param {string} language - Language code
42
+ */
43
+ function setLanguage(language) {
44
+ currentLanguage = language;
45
+
46
+ // Load translations if not already loaded
47
+ if (!translations[language]) {
48
+ loadTranslations(language);
49
+ }
50
+ }
51
+
52
+ /**
53
+ * Get translated text
54
+ * @param {string} key - Translation key
55
+ * @param {string} [fallback] - Fallback text if translation not found
56
+ * @returns {string} Translated text
57
+ */
58
+ function t(key, fallback) {
59
+ const langTranslations = translations[currentLanguage];
60
+
61
+ if (langTranslations && langTranslations[key]) {
62
+ return langTranslations[key];
63
+ }
64
+
65
+ // Try English as fallback
66
+ if (currentLanguage !== "en" && translations.en && translations.en[key]) {
67
+ return translations.en[key];
68
+ }
69
+
70
+ // Return fallback or key itself
71
+ return fallback || key;
72
+ }
73
+
74
+ /**
75
+ * Get current language
76
+ * @returns {string} Current language code
77
+ */
78
+ function getCurrentLanguage() {
79
+ return currentLanguage;
80
+ }
81
+
82
+ /**
83
+ * Initialize i18n system
84
+ * @param {Object} options - Configuration options
85
+ * @param {string} [options.language='en'] - Default language
86
+ */
87
+ function init(options = {}) {
88
+ const language = options.language || "en";
89
+
90
+ // Load English translations (always available as fallback)
91
+ loadTranslations("en");
92
+
93
+ // Load requested language if different
94
+ if (language !== "en") {
95
+ loadTranslations(language);
96
+ }
97
+
98
+ setLanguage(language);
99
+ }
100
+
101
+ module.exports = {
102
+ init,
103
+ setLanguage,
104
+ getCurrentLanguage,
105
+ t,
106
+ };
package/i18n/en.json ADDED
@@ -0,0 +1,76 @@
1
+ {
2
+ "constructor": "Constructor",
3
+ "properties": "Properties",
4
+ "members": "Members",
5
+ "methods": "Methods",
6
+ "parameters": "Parameters",
7
+ "returns": "Returns",
8
+ "type": "Type",
9
+ "name": "Name",
10
+ "description": "Description",
11
+ "default": "Default",
12
+ "attributes": "Attributes",
13
+ "examples": "Examples",
14
+ "example": "Example",
15
+ "extends": "Extends",
16
+ "source": "Source",
17
+ "version": "Version",
18
+ "since": "Since",
19
+ "author": "Author",
20
+ "see": "See",
21
+ "throws": "Throws",
22
+ "fires": "Fires",
23
+ "listens": "Listens",
24
+ "mixes": "Mixes",
25
+ "namespace": "Namespace",
26
+ "namespaces": "Namespaces",
27
+ "class": "Class",
28
+ "classes": "Classes",
29
+ "function": "Function",
30
+ "method": "Method",
31
+ "event": "Event",
32
+ "events": "Events",
33
+ "typedef": "Typedef",
34
+ "global": "Global",
35
+ "module": "Module",
36
+ "requires": "Requires",
37
+ "interfaces": "Interfaces",
38
+ "mixins": "Mixins",
39
+ "type_definitions": "Type Definitions",
40
+ "optional": "optional",
41
+ "nullable": "nullable",
42
+ "repeatable": "repeatable",
43
+ "this": "This",
44
+ "yields": "Yields",
45
+ "listeners_of_this_event": "Listeners of This Event",
46
+ "listens_to_events": "Listens to Events",
47
+ "modifies": "Modifies",
48
+ "inherited_from": "Inherited From",
49
+ "overrides": "Overrides",
50
+ "deprecated": "Deprecated",
51
+ "implementations": "Implementations",
52
+ "implements": "Implements",
53
+ "mixes_in": "Mixes In",
54
+ "copyright": "Copyright",
55
+ "license": "License",
56
+ "default_value": "Default Value",
57
+ "todo": "To Do",
58
+ "yes": "Yes",
59
+ "tutorial": "Tutorial",
60
+ "tutorials": "Tutorials",
61
+ "home": "Home",
62
+ "search": "Search",
63
+ "toggle_theme": "Toggle Theme",
64
+ "change_font_size": "Change Font Size",
65
+ "go_to_homepage": "Go to Homepage",
66
+ "open_search": "Open Search",
67
+ "close_search": "Close Search",
68
+ "toggle_theme_tooltip": "Toggle Theme",
69
+ "search_tooltip": "Search",
70
+ "font_size_tooltip": "Change font size",
71
+ "home_tooltip": "Go to Homepage",
72
+ "on_this_page": "On this page",
73
+ "search_placeholder": "Search...",
74
+ "search_hint": "Type anything to view search result",
75
+ "open_in_codepen": "Open in CodePen"
76
+ }
package/i18n/zh.json ADDED
@@ -0,0 +1,76 @@
1
+ {
2
+ "constructor": "构造函数",
3
+ "properties": "属性",
4
+ "members": "成员",
5
+ "methods": "方法",
6
+ "parameters": "参数",
7
+ "returns": "返回值",
8
+ "type": "类型",
9
+ "name": "名称",
10
+ "description": "描述",
11
+ "default": "默认值",
12
+ "attributes": "特性",
13
+ "examples": "示例",
14
+ "example": "示例",
15
+ "extends": "继承",
16
+ "source": "源码",
17
+ "version": "版本",
18
+ "since": "起始版本",
19
+ "author": "作者",
20
+ "see": "参见",
21
+ "throws": "抛出异常",
22
+ "fires": "触发事件",
23
+ "listens": "监听事件",
24
+ "mixes": "混入",
25
+ "namespace": "命名空间",
26
+ "namespaces": "命名空间",
27
+ "class": "类",
28
+ "classes": "类",
29
+ "function": "函数",
30
+ "method": "方法",
31
+ "event": "事件",
32
+ "events": "事件",
33
+ "typedef": "类型定义",
34
+ "global": "全局",
35
+ "module": "模块",
36
+ "requires": "依赖",
37
+ "interfaces": "接口",
38
+ "mixins": "混入",
39
+ "type_definitions": "类型定义",
40
+ "optional": "可选",
41
+ "nullable": "可为空",
42
+ "repeatable": "可重复",
43
+ "this": "上下文",
44
+ "yields": "产出",
45
+ "listeners_of_this_event": "此事件的监听器",
46
+ "listens_to_events": "监听事件",
47
+ "modifies": "修改",
48
+ "inherited_from": "继承自",
49
+ "overrides": "重写",
50
+ "deprecated": "已废弃",
51
+ "implementations": "实现",
52
+ "implements": "实现接口",
53
+ "mixes_in": "混入",
54
+ "copyright": "版权",
55
+ "license": "许可证",
56
+ "default_value": "默认值",
57
+ "todo": "待办",
58
+ "yes": "是",
59
+ "tutorial": "教程",
60
+ "tutorials": "教程",
61
+ "home": "首页",
62
+ "search": "搜索",
63
+ "toggle_theme": "切换主题",
64
+ "change_font_size": "更改字体大小",
65
+ "go_to_homepage": "回到首页",
66
+ "open_search": "打开搜索",
67
+ "close_search": "关闭搜索",
68
+ "toggle_theme_tooltip": "切换主题",
69
+ "search_tooltip": "搜索",
70
+ "font_size_tooltip": "更改字体大小",
71
+ "home_tooltip": "回到首页",
72
+ "on_this_page": "本页内容",
73
+ "search_placeholder": "搜索...",
74
+ "search_hint": "输入任何内容查看搜索结果",
75
+ "open_in_codepen": "在 CodePen 中打开"
76
+ }
package/package.json ADDED
@@ -0,0 +1,83 @@
1
+ {
2
+ "name": "@qubit-ltd/jsdoc-theme",
3
+ "version": "1.3.3",
4
+ "description": "A customized JSDoc theme based on clean-jsdoc-theme, enhanced with properties table and constructor detection features for Qubit projects.",
5
+ "main": "publish.js",
6
+ "author": "Haixing Hu (starfish.hu@gmail.com)",
7
+ "license": "Apache-2.0",
8
+ "scripts": {
9
+ "build": "node minify.js",
10
+ "build:demo": "node minify.js && node node_modules/jsdoc/jsdoc.js -c jsdoc-config.json",
11
+ "lint:js": "eslint . --ext .js --fix",
12
+ "lint:style": "stylelint-config-prettier-check && stylelint static/styles/",
13
+ "lint": "npm run lint:js && npm run lint:style",
14
+ "prepublishOnly": "npm run lint && npm run build",
15
+ "deploy": "npm run lint && npm run build && npm publish --registry='https://npm.qubit.ltd/' --access public",
16
+ "deploy:public": "npm run lint && npm run build && npm publish --registry='https://registry.npmjs.org/' --access public",
17
+ "deploy:all": "npm run deploy && npm publish --registry='https://registry.npmjs.org/' --access public"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/Haixing-Hu/qubit-jsdoc-theme.git"
22
+ },
23
+ "bugs": {
24
+ "url": "https://github.com/Haixing-Hu/qubit-jsdoc-theme/issues"
25
+ },
26
+ "homepage": "https://github.com/Haixing-Hu/qubit-jsdoc-theme",
27
+ "files": [
28
+ "publish.js",
29
+ "tmpl/**/*",
30
+ "static/**/*",
31
+ "helpers/**/*",
32
+ "i18n/**/*",
33
+ "clean-jsdoc-theme-defaults.js",
34
+ "clean-jsdoc-theme-helper.js",
35
+ "LICENSE",
36
+ "README.md",
37
+ "CHANGELOG.md"
38
+ ],
39
+ "peerDependencies": {
40
+ "jsdoc": ">=3.x <=4.x"
41
+ },
42
+ "keywords": [
43
+ "jsdoc",
44
+ "template",
45
+ "jsdoc-template",
46
+ "javascript documentation",
47
+ "qubit",
48
+ "properties table",
49
+ "constructor detection",
50
+ "customizable jsdoc theme"
51
+ ],
52
+ "devDependencies": {
53
+ "@babel/core": "^7.28.3",
54
+ "@babel/eslint-parser": "^7.28.0",
55
+ "@jsdoc/eslint-config": "^1.1.6",
56
+ "concurrently": "^7.2.2",
57
+ "csso": "^5.0.3",
58
+ "eslint": "^8.19.0",
59
+ "eslint-config-prettier": "^8.5.0",
60
+ "eslint-plugin-prettier": "^5.5.4",
61
+ "eslint-plugin-simple-import-sort": "^12.1.1",
62
+ "jsdoc": "^4.0.4",
63
+ "postcss": "^8.5.6",
64
+ "postcss-scss": "^4.0.9",
65
+ "prettier": "^2.2.1",
66
+ "stylelint": "^14.9.1",
67
+ "stylelint-config-prettier": "^9.0.3",
68
+ "stylelint-config-sass-guidelines": "^9.0.0",
69
+ "stylelint-config-standard": "^26.0.0",
70
+ "stylelint-order": "^5.0.0",
71
+ "stylelint-scss": "^4.2.0",
72
+ "uglify-js": "^3.16.0"
73
+ },
74
+ "dependencies": {
75
+ "@jsdoc/salty": "^0.2.4",
76
+ "fs-extra": "^10.1.0",
77
+ "html-minifier-terser": "^7.2.0",
78
+ "klaw-sync": "^6.0.0",
79
+ "lodash": "^4.17.21",
80
+ "showdown": "^2.1.0"
81
+ },
82
+ "packageManager": "yarn@4.9.3"
83
+ }