quackage 1.0.42 → 1.0.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.quackage-templates.json +24 -0
- package/debug/Harness.js +2 -2
- package/package.json +7 -6
- package/source/Quackage-CLIProgram.js +2 -8
- package/source/commands/Quackage-Command-GenerateDocumentation.js +52 -0
- package/debug/Platform.md +0 -3
- package/debug/documentation-definition.json +0 -53
- package/debug/html/About.html +0 -39
- package/debug/html/Legal.html +0 -34
- package/debug/model/MeadowModel-Extended.json +0 -1603
- package/debug/model/entity/animals/Author.md +0 -625
- package/debug/model/entity/animals/Cat.md +0 -3
- package/debug/model/entity/clinics/Book.md +0 -3
- package/debug/model/entity/clinics/Vet.md +0 -1
- package/debug/model/entity_abstractions/animals.md +0 -3
- package/debug/testdata/Airport-Entity-Mapping.json +0 -18
- package/debug/testdata/Fruit-Color.csv +0 -7
- package/debug/testdata/airports.csv +0 -3377
- package/gulp/Quackage-Gulpfile-Watch.js +0 -71
- package/source/Default-Documentation-Definition.json +0 -38
- package/source/commands/Quackage-Command-AssembleJSONMetaTemplates.js +0 -25
- package/source/commands/Quackage-Command-AssembleJSONTemplates.js +0 -25
- package/source/commands/Quackage-Command-BuildDocumentation.js +0 -102
- package/source/commands/Quackage-Command-CSVCheck.js +0 -149
- package/source/commands/Quackage-Command-CSVIntersect.js +0 -209
- package/source/commands/Quackage-Command-CSVTransform.js +0 -327
- package/source/commands/Quackage-Command-Watch.js +0 -145
- package/source/services/Quackage-Documentation-Compile.js +0 -419
- package/source/services/Quackage-Documentation-Deploy.js +0 -37
- package/source/services/Quackage-Documentation-Gather.js +0 -157
package/.quackage-templates.json
CHANGED
|
@@ -196,5 +196,29 @@
|
|
|
196
196
|
"Content": "#!/usr/bin/env node\n\nlet libCLIProgram = require('./CLI-Program.js');\n\nlibCLIProgram.run();"
|
|
197
197
|
}
|
|
198
198
|
]
|
|
199
|
+
},
|
|
200
|
+
"fableservice": {
|
|
201
|
+
"Hash": "fableservice",
|
|
202
|
+
"Name": "Fableservice",
|
|
203
|
+
"Description": "A template set for fableservice ...",
|
|
204
|
+
"Files": [
|
|
205
|
+
{
|
|
206
|
+
"Hash": "FableServicejs",
|
|
207
|
+
"Path": "Fable-Service.js",
|
|
208
|
+
"Content": "const FableServiceProviderBase = require('fable-serviceproviderbase');\n\nconst _DefaultOptions = (\n\t{\n\t});\n\nclass FableService extends FableServiceProviderBase\n{\n\t/**\n\t * @param {import('fable')} pFable - The fable instance.\n\t * @param {Object<String, any>} [pOptions] - The options for the client.\n\t * @param {String} [pServiceHash] - A service hash for the fable service.\n\t */\n\tconstructor(pFable, pOptions, pServiceHash)\n\t{\n\t\tlet tmpOptions = Object.assign({}, _DefaultOptions, pOptions);\n\t\tsuper(pFable, tmpOptions, pServiceHash);\n\t}\n\n\tdoSomething()\n\t{\n\t\treturn true;\n\t}\n}\n\nmodule.exports = FableService;\n\nmodule.exports.default_configuration = _DefaultOptions;\n"
|
|
209
|
+
}
|
|
210
|
+
]
|
|
211
|
+
},
|
|
212
|
+
"pictwebapp": {
|
|
213
|
+
"Hash": "pictwebapp",
|
|
214
|
+
"Name": "Pictwebapp",
|
|
215
|
+
"Description": "A template set for pictwebapp ...",
|
|
216
|
+
"Files": [
|
|
217
|
+
{
|
|
218
|
+
"Hash": "packagejson",
|
|
219
|
+
"Path": "package.json",
|
|
220
|
+
"Content": "{\n \"name\": \"pictwebapp\",\n \"version\": \"1.0.0\",\n \"main\": \"source/Pict-Web-Application.js\",\n \"scripts\": {\n \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\"\n },\n \"author\": \"\",\n \"license\": \"MIT\",\n \"description\": \"\"\n}\n"
|
|
221
|
+
}
|
|
222
|
+
]
|
|
199
223
|
}
|
|
200
224
|
}
|
package/debug/Harness.js
CHANGED
|
@@ -3,10 +3,10 @@ console.log('Fancy debug harness here. Shame if it would get quacked.');
|
|
|
3
3
|
let libQuackage = require('../source/Quackage-CLIProgram.js');
|
|
4
4
|
|
|
5
5
|
//libQuackage.run(['node', 'Harness.js', 'bp', 'pictunittest']);
|
|
6
|
-
|
|
6
|
+
libQuackage.run(['node', 'Harness.js', 'lint']);
|
|
7
7
|
|
|
8
8
|
//libQuackage.run(['node', 'Harness.js', 'csvcheck', 'testdata/airports.csv', '-c']);
|
|
9
|
-
libQuackage.run(['node', 'Harness.js', 'csvtransform', 'testdata/airports.csv', '-x', '-g', 'HDSS-BI-{~D:Record.iata~}-{~D:Record.name~}']);
|
|
9
|
+
//libQuackage.run(['node', 'Harness.js', 'csvtransform', 'testdata/airports.csv', '-x', '-g', 'HDSS-BI-{~D:Record.iata~}-{~D:Record.name~}']);
|
|
10
10
|
//libQuackage.run(['node', 'Harness.js', 'csvtransform', 'testdata/airports.csv', '-x']);
|
|
11
11
|
//libQuackage.run(['node', 'Harness.js', 'csvtransform', 'testdata/airports.csv', '-x', '-m', 'testdata/Airport-Entity-Mapping.json']);
|
|
12
12
|
//libQuackage.run(['node', 'Harness.js', 'csvtransform', 'testdata/airports.csv']);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "quackage",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.43",
|
|
4
4
|
"description": "Building. Testing. Quacking. Reloading.",
|
|
5
5
|
"main": "source/Quackage-CLIProgram.js",
|
|
6
6
|
"scripts": {
|
|
@@ -55,21 +55,22 @@
|
|
|
55
55
|
"browserify": "^17.0.0",
|
|
56
56
|
"chai": "4.3.10",
|
|
57
57
|
"copy-files-from-to": "^3.11.0",
|
|
58
|
-
"devextreme-showdown": "^1.0.1",
|
|
59
58
|
"docsify-cli": "^4.4.4",
|
|
60
59
|
"gulp": "^4.0.2",
|
|
61
60
|
"gulp-babel": "^8.0.0",
|
|
62
61
|
"gulp-env": "^0.4.0",
|
|
63
62
|
"gulp-sourcemaps": "^3.0.0",
|
|
64
63
|
"gulp-terser": "^2.1.0",
|
|
65
|
-
"marked": "~15.0.7",
|
|
66
|
-
"marked-tex-renderer": "^1.1.1",
|
|
67
64
|
"mocha": "10.4.0",
|
|
68
65
|
"npm-check-updates": "^18.0.1",
|
|
69
66
|
"nyc": "^15.1.0",
|
|
70
67
|
"pict-service-commandlineutility": "^1.0.15",
|
|
71
68
|
"vinyl-buffer": "^1.0.1",
|
|
72
|
-
"vinyl-source-stream": "^2.0.0"
|
|
73
|
-
|
|
69
|
+
"vinyl-source-stream": "^2.0.0"
|
|
70
|
+
},
|
|
71
|
+
"overrides": {
|
|
72
|
+
"copy-files-from-to": {
|
|
73
|
+
"yargs": "^16"
|
|
74
|
+
}
|
|
74
75
|
}
|
|
75
76
|
}
|
|
@@ -26,20 +26,14 @@ let _Pict = new libCLIProgram(
|
|
|
26
26
|
|
|
27
27
|
// Gulp build execution (for multiple build targets)
|
|
28
28
|
require('./commands/Quackage-Command-Build.js'),
|
|
29
|
-
require('./commands/Quackage-Command-Watch.js'),
|
|
30
29
|
require('./commands/Quackage-Command-CopyFilesFromTo.js'),
|
|
31
30
|
|
|
32
|
-
//
|
|
33
|
-
require('./commands/Quackage-Command-
|
|
31
|
+
// Generate documentation from a folder of code
|
|
32
|
+
require('./commands/Quackage-Command-GenerateDocumentation.js'),
|
|
34
33
|
|
|
35
34
|
// Template handling
|
|
36
35
|
require('./commands/Quackage-Command-AssembleJSONViews.js'),
|
|
37
36
|
|
|
38
|
-
// CSV file handling
|
|
39
|
-
require('./commands/Quackage-Command-CSVCheck.js'),
|
|
40
|
-
require('./commands/Quackage-Command-CSVTransform.js'),
|
|
41
|
-
require('./commands/Quackage-Command-CSVIntersect.js'),
|
|
42
|
-
|
|
43
37
|
// Boilerplate file management
|
|
44
38
|
require('./commands/Quackage-Command-Boilerplate.js'),
|
|
45
39
|
require('./commands/Quackage-Command-ListTemplates.js'),
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
const libCommandLineCommand = require('pict-service-commandlineutility').ServiceCommandLineCommand;
|
|
2
|
+
const libFS = require('fs');
|
|
3
|
+
const libPath = require('path');
|
|
4
|
+
|
|
5
|
+
class QuackageCommandGenerateDocumentation extends libCommandLineCommand
|
|
6
|
+
{
|
|
7
|
+
constructor(pFable, pManifest, pServiceHash)
|
|
8
|
+
{
|
|
9
|
+
super(pFable, pManifest, pServiceHash);
|
|
10
|
+
|
|
11
|
+
this.options.CommandKeyword = 'generate-documentation';
|
|
12
|
+
this.options.Description = 'Generate documentation from source files and markdown files';
|
|
13
|
+
|
|
14
|
+
this.options.CommandArguments.push({ Name: '<output_folder>', Description: 'The folder in which to generate content' });
|
|
15
|
+
|
|
16
|
+
this.options.CommandOptions.push({ Name: '-m, --markdown [markdown_documentation_folder]', Description: 'Folder with markdwon documentation; subfolders are okay.', Default: '' });
|
|
17
|
+
this.options.CommandOptions.push({ Name: '-s, --source [source_code_folder]', Description: 'Folder with javascript source to parse jsdoc from.', Default: false });
|
|
18
|
+
|
|
19
|
+
this.options.Aliases.push('dgen');
|
|
20
|
+
|
|
21
|
+
this.addCommand();
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
onRunAsync(fCallback)
|
|
25
|
+
{
|
|
26
|
+
const libFilePersistence = this.services.FilePersistence;
|
|
27
|
+
|
|
28
|
+
this.log.info(`Generating documentation...`);
|
|
29
|
+
|
|
30
|
+
let tmpAnticipate = this.fable.newAnticipate();
|
|
31
|
+
|
|
32
|
+
this.log.info(`Documentation Phase 0: Preparing configurations...`);
|
|
33
|
+
this.log.info(`Documentation Phase 1: Gathering documentation metadata...`);
|
|
34
|
+
this.log.info(`Documentation Phase 2: Gathering code metadata...`);
|
|
35
|
+
this.log.info(`Documentation Phase 3: Generating structured description...`);
|
|
36
|
+
|
|
37
|
+
return tmpAnticipate.wait(
|
|
38
|
+
function (pError)
|
|
39
|
+
{
|
|
40
|
+
if (pError)
|
|
41
|
+
{
|
|
42
|
+
return fCallback(pError);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
this.log.info(`Documentation generation complete.`);
|
|
46
|
+
|
|
47
|
+
return fCallback();
|
|
48
|
+
}.bind(this));
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
module.exports = QuackageCommandGenerateDocumentation;
|
package/debug/Platform.md
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"Title": "ACME Documentation",
|
|
3
|
-
|
|
4
|
-
"Parts": [
|
|
5
|
-
{
|
|
6
|
-
"Title": "Introduction",
|
|
7
|
-
"GeneratedContentFormatter": "BasicContent",
|
|
8
|
-
"SourceContentType": "RawMarkdown",
|
|
9
|
-
"RawMarkdownContent": "# The Introduction\n\n## Things are new?\n\nIt is a multi-line string, markdown. \n\n### Three are new?\n\nanything goes."
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
"Title": "Abstract Entities",
|
|
13
|
-
"GeneratedContentFormatter": "MeadowAbstractEntities",
|
|
14
|
-
"SourceContentType": "MeadowSchema",
|
|
15
|
-
"Filters": [
|
|
16
|
-
{
|
|
17
|
-
"ForwardLabelMatch": ["model", "entity"]
|
|
18
|
-
}]
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"Title": "Tables",
|
|
22
|
-
"GeneratedContentFormatter": "MeadowTableGroups",
|
|
23
|
-
"SourceContentType": "MeadowSchema",
|
|
24
|
-
"Filters": [
|
|
25
|
-
{
|
|
26
|
-
"ForwardLabelMatch": ["model", "entity"]
|
|
27
|
-
}]
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"Title": "Example Queries",
|
|
31
|
-
"GeneratedContentFormatter": "BasicContent",
|
|
32
|
-
"SourceContentType": "MarkdownContent",
|
|
33
|
-
"Filters": [
|
|
34
|
-
{
|
|
35
|
-
"ForwardLabelMatch": ["model", "example_queries"]
|
|
36
|
-
}]
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"Title": "All Model Documentation",
|
|
40
|
-
"GeneratedContentFormatter": "BasicContent",
|
|
41
|
-
"SourceContentType": "MarkdownContent",
|
|
42
|
-
"Filters": [
|
|
43
|
-
{
|
|
44
|
-
"ForwardLabelMatch": ["model"]
|
|
45
|
-
}]
|
|
46
|
-
}],
|
|
47
|
-
"MeadowEntityCategories":
|
|
48
|
-
{
|
|
49
|
-
"Book": { "Group": "Paper"},
|
|
50
|
-
"BookAuthorJoin": { "Group": "Paper"},
|
|
51
|
-
"Author": { "Group": "People"}
|
|
52
|
-
}
|
|
53
|
-
}
|
package/debug/html/About.html
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
<div class="header">
|
|
2
|
-
<h1>About Grademaster</h1>
|
|
3
|
-
<h2>Where understanding and mastery are a weighed on a graduated scale.</h2>
|
|
4
|
-
</div>
|
|
5
|
-
<div class="content">
|
|
6
|
-
<p>Welcome to GradeMaster, your straightforward solution for managing and tracking student grades. Our web application is designed with simplicity and efficiency in mind, making it the perfect tool for teachers, students, and parents who want to stay informed and organized.</p>
|
|
7
|
-
|
|
8
|
-
<h3>Our Mission</h3>
|
|
9
|
-
|
|
10
|
-
<p>At GradeMaster, our mission is to streamline the grading process and provide an intuitive platform that fosters transparency and communication between educators, students, and parents. We believe that managing grades should be hassle-free, so you can focus on what truly matters: education.</p>
|
|
11
|
-
|
|
12
|
-
<h4>Key Features</h4>
|
|
13
|
-
|
|
14
|
-
<ul>
|
|
15
|
-
<li>Easy Grade Entry: Inputting grades is quick and straightforward, saving teachers valuable time.</li>
|
|
16
|
-
<li>Real-Time Updates: Students and parents can access up-to-date grades and performance summaries anytime, anywhere.</li>
|
|
17
|
-
<li>Customizable Reports: Generate detailed reports to monitor progress and identify areas for improvement.</li>
|
|
18
|
-
<li>Secure and Private: We prioritize your data privacy and security, ensuring that all information is protected.</li>
|
|
19
|
-
</ul>
|
|
20
|
-
|
|
21
|
-
<h3>Who Can Benefit?</h3>
|
|
22
|
-
<ul>
|
|
23
|
-
<li>Teachers: Simplify the grading process, save time, and maintain organized records.</li>
|
|
24
|
-
<li>Students: Stay informed about your academic performance and track your progress.</li>
|
|
25
|
-
<li>Parents: Keep up-to-date with your child's grades and support their educational journey.</li>
|
|
26
|
-
</ul>
|
|
27
|
-
|
|
28
|
-
<h3>Why Choose GradeMaster?</h3>
|
|
29
|
-
</ul>
|
|
30
|
-
<li>User-Friendly Interface: Our clean and intuitive design ensures that you can navigate the application with ease, regardless of your tech-savviness.</li>
|
|
31
|
-
<li>Reliable Performance: Built with robust technology, GradeMaster is reliable and fast, ensuring a seamless experience.</li>
|
|
32
|
-
<li>Dedicated Support: Our support team is here to help with any questions or issues you might encounter, ensuring you get the most out of GradeMaster.</li>
|
|
33
|
-
</ul>
|
|
34
|
-
|
|
35
|
-
<h3>Get Started</h3>
|
|
36
|
-
<p>Ready to simplify your grading process? Sign up today and discover how GradeMaster can make managing grades easier and more efficient than ever.</p>
|
|
37
|
-
<p>For more information, feel free to contact us or explore our FAQs.</p>
|
|
38
|
-
<p>Thank you for choosing GradeMaster – where simplicity meets efficiency in grade management.</p>
|
|
39
|
-
</div>
|
package/debug/html/Legal.html
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
<h1>Legal Stuff (The Fun Version)</h1>
|
|
2
|
-
|
|
3
|
-
<p>Welcome to the GradeMaster Pro Legal Page! This is where we sprinkle a bit of humor on the otherwise dry and dusty legal stuff. Grab a cup of coffee, sit back, and enjoy our attempt to make legal jargon slightly less snooze-inducing.</p>
|
|
4
|
-
|
|
5
|
-
<h2>Terms of Use</h2>
|
|
6
|
-
<p>By using GradeMaster Pro, you agree to these terms. If you don’t agree, well, you probably shouldn’t be here. Seriously, we’ve put a lot of thought into this, so trust us, it’s worth agreeing to.</p>
|
|
7
|
-
<ol>
|
|
8
|
-
<li><strong>Don’t Be Evil</strong>: Stealing grades, hacking into accounts, or impersonating a teacher’s pet is strictly prohibited. Play nice!</li>
|
|
9
|
-
<li><strong>No Robots Allowed</strong>: Unless you’re a cool, teaching robot from the future, no automated systems or scripts here, folks. We like our users human.</li>
|
|
10
|
-
<li><strong>Use Responsibly</strong>: GradeMaster Pro is here to make your life easier, not to be used as a tool to procrastinate from actual grading. Use it wisely!</li>
|
|
11
|
-
</ol>
|
|
12
|
-
|
|
13
|
-
<h2>Privacy Policy</h2>
|
|
14
|
-
<p>We take your privacy very seriously. Like, top-secret, James Bond seriously. Here’s how we handle your info:</p>
|
|
15
|
-
<ul>
|
|
16
|
-
<li><strong>Data Collection</strong>: We collect only what we need to make your experience awesome. No more, no less.</li>
|
|
17
|
-
<li><strong>Cookies</strong>: Yes, we use cookies. Not the chocolate chip kind (sadly), but the digital kind to keep things running smoothly.</li>
|
|
18
|
-
<li><strong>Sharing Information</strong>: We don’t sell your data to third parties. We wouldn’t even know how to price it. Your secrets are safe with us.</li>
|
|
19
|
-
</ul>
|
|
20
|
-
|
|
21
|
-
<h2>Limitation of Liability</h2>
|
|
22
|
-
<p>Let’s keep this simple: if something goes wrong (like the internet breaking, your computer spontaneously combusting, or an alien invasion), GradeMaster Pro is not liable. We’re here to help, but some things are just out of our control.</p>
|
|
23
|
-
<ol>
|
|
24
|
-
<li><strong>No Guarantees</strong>: We strive for perfection, but we’re not perfect. If things go awry, we’ll do our best to fix them. No guarantees, but plenty of effort.</li>
|
|
25
|
-
<li><strong>Damages</strong>: In the rare event that GradeMaster Pro causes you any damages (physical, emotional, or psychological), our liability is limited to making funny jokes and sending good vibes your way.</li>
|
|
26
|
-
</ol>
|
|
27
|
-
|
|
28
|
-
<h2>Changes to This Agreement</h2>
|
|
29
|
-
<p>We might update these terms occasionally. When we do, we promise to give you a heads-up. No sneaky stuff. Check back here from time to time, or just trust that we’ll keep things reasonable.</p>
|
|
30
|
-
|
|
31
|
-
<h2>Contact Us</h2>
|
|
32
|
-
<p>Still awake? Impressive! If you have any questions, comments, or jokes to share, feel free to reach out to us at <a href="mailto:legal@grademasterpro.com">legal@grademasterpro.com</a>. We promise to respond faster than you can say “legal mumbo jumbo.”</p>
|
|
33
|
-
|
|
34
|
-
<p>Thanks for choosing GradeMaster Pro! Remember, with great grading power comes great responsibility. Use it wisely and keep on grading like a pro!</p>
|