podlite 0.0.45 → 0.0.47
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/CHANGELOG.podlite +105 -0
- package/bin/podlite.js +2 -0
- package/esm/cli.d.ts +1 -0
- package/esm/cli.js +127 -0
- package/esm/cli.js.map +1 -0
- package/lib/cli.d.ts +1 -0
- package/lib/cli.js +148 -0
- package/lib/cli.js.map +1 -0
- package/package.json +9 -7
- package/CHANGELOG.md +0 -101
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
=TITLE CHANGES
|
|
2
|
+
|
|
3
|
+
=head1 Upcoming
|
|
4
|
+
|
|
5
|
+
=head1 0.0.47
|
|
6
|
+
|
|
7
|
+
=item added CLI entrypoint C<bin/podlite.js>
|
|
8
|
+
|
|
9
|
+
=head1 0.0.33
|
|
10
|
+
|
|
11
|
+
=item fix api types
|
|
12
|
+
|
|
13
|
+
=head1 0.0.32
|
|
14
|
+
|
|
15
|
+
=item add `=formula`, `F<>` support
|
|
16
|
+
|
|
17
|
+
=head1 0.0.27
|
|
18
|
+
|
|
19
|
+
=item update deps
|
|
20
|
+
|
|
21
|
+
=head1 0.0.26
|
|
22
|
+
|
|
23
|
+
=item move plugins object to @podlite/schema package
|
|
24
|
+
|
|
25
|
+
=head1 0.0.25
|
|
26
|
+
|
|
27
|
+
=item improve blocks linking
|
|
28
|
+
|
|
29
|
+
=head1 0.0.24
|
|
30
|
+
|
|
31
|
+
=item clean source
|
|
32
|
+
|
|
33
|
+
=head1 0.0.23
|
|
34
|
+
|
|
35
|
+
=item update deps
|
|
36
|
+
|
|
37
|
+
=head1 0.0.22
|
|
38
|
+
|
|
39
|
+
=item update deps
|
|
40
|
+
|
|
41
|
+
=head1 0.0.21
|
|
42
|
+
|
|
43
|
+
=item add =Markdown plugin
|
|
44
|
+
|
|
45
|
+
=head1 0.0.20
|
|
46
|
+
|
|
47
|
+
=item update deps
|
|
48
|
+
|
|
49
|
+
=head1 0.0.19
|
|
50
|
+
|
|
51
|
+
=item update depends
|
|
52
|
+
|
|
53
|
+
=head1 0.0.18
|
|
54
|
+
|
|
55
|
+
=item update depends
|
|
56
|
+
|
|
57
|
+
=head1 0.0.17
|
|
58
|
+
|
|
59
|
+
=item update depends
|
|
60
|
+
|
|
61
|
+
=head1 0.0.16
|
|
62
|
+
|
|
63
|
+
=item update depends
|
|
64
|
+
|
|
65
|
+
=head1 0.0.15
|
|
66
|
+
|
|
67
|
+
=item update depends
|
|
68
|
+
|
|
69
|
+
=head1 0.0.14
|
|
70
|
+
|
|
71
|
+
=item update depends
|
|
72
|
+
|
|
73
|
+
=head1 0.0.13
|
|
74
|
+
|
|
75
|
+
=item fix npm
|
|
76
|
+
|
|
77
|
+
=head1 0.0.12
|
|
78
|
+
|
|
79
|
+
=item add id prop to AST Schema
|
|
80
|
+
=item add =Toc plugin
|
|
81
|
+
|
|
82
|
+
=head1 0.0.10
|
|
83
|
+
|
|
84
|
+
=item update deps
|
|
85
|
+
|
|
86
|
+
=head1 0.0.9
|
|
87
|
+
|
|
88
|
+
=item fix md transforms
|
|
89
|
+
|
|
90
|
+
=head1 0.0.8
|
|
91
|
+
|
|
92
|
+
=item update deps
|
|
93
|
+
|
|
94
|
+
=head1 0.0.7
|
|
95
|
+
|
|
96
|
+
=item update deps
|
|
97
|
+
|
|
98
|
+
=head1 0.0.6
|
|
99
|
+
|
|
100
|
+
=item enable tests
|
|
101
|
+
=item update deps
|
|
102
|
+
|
|
103
|
+
=head1 0.0.5
|
|
104
|
+
|
|
105
|
+
=item import from original repo
|
package/bin/podlite.js
ADDED
package/esm/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/esm/cli.js
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { parse, toMarkdown, toHtml } from '@podlite/schema';
|
|
4
|
+
const FORMATS = {
|
|
5
|
+
md: '.md',
|
|
6
|
+
markdown: '.md',
|
|
7
|
+
html: '.html',
|
|
8
|
+
};
|
|
9
|
+
function usage() {
|
|
10
|
+
console.log(`Usage: podlite convert <files...> --to <format> [-o <output>]
|
|
11
|
+
|
|
12
|
+
Commands:
|
|
13
|
+
convert Convert Podlite files to another format
|
|
14
|
+
|
|
15
|
+
Options:
|
|
16
|
+
--to Output format: md (markdown), html
|
|
17
|
+
-o Output file or directory (default: same dir, new extension)
|
|
18
|
+
--help Show this help
|
|
19
|
+
|
|
20
|
+
Examples:
|
|
21
|
+
podlite convert doc.pod6 --to md
|
|
22
|
+
podlite convert *.pod6 --to md -o output/
|
|
23
|
+
podlite convert README.pod6 --to md -o README.md`);
|
|
24
|
+
}
|
|
25
|
+
function parseArgs(argv) {
|
|
26
|
+
const args = {
|
|
27
|
+
command: '',
|
|
28
|
+
files: [],
|
|
29
|
+
to: '',
|
|
30
|
+
output: '',
|
|
31
|
+
};
|
|
32
|
+
let i = 0;
|
|
33
|
+
if (argv.length === 0 || argv[0] === '--help' || argv[0] === '-h') {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
args.command = argv[i++];
|
|
37
|
+
while (i < argv.length) {
|
|
38
|
+
const arg = argv[i];
|
|
39
|
+
if (arg === '--to') {
|
|
40
|
+
args.to = argv[++i] || '';
|
|
41
|
+
}
|
|
42
|
+
else if (arg === '-o') {
|
|
43
|
+
args.output = argv[++i] || '';
|
|
44
|
+
}
|
|
45
|
+
else if (arg === '--help' || arg === '-h') {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
else if (!arg.startsWith('-')) {
|
|
49
|
+
args.files.push(arg);
|
|
50
|
+
}
|
|
51
|
+
i++;
|
|
52
|
+
}
|
|
53
|
+
return args;
|
|
54
|
+
}
|
|
55
|
+
function convertFile(inputPath, format, outputPath) {
|
|
56
|
+
const ext = FORMATS[format];
|
|
57
|
+
if (!ext) {
|
|
58
|
+
console.error(`Unknown format: ${format}. Supported: ${Object.keys(FORMATS).join(', ')}`);
|
|
59
|
+
process.exit(1);
|
|
60
|
+
}
|
|
61
|
+
const content = fs.readFileSync(inputPath, 'utf-8');
|
|
62
|
+
const tree = parse(content);
|
|
63
|
+
let result;
|
|
64
|
+
if (format === 'md' || format === 'markdown') {
|
|
65
|
+
result = toMarkdown({}).run(tree).toString();
|
|
66
|
+
}
|
|
67
|
+
else if (format === 'html') {
|
|
68
|
+
result = toHtml({}).run(tree).toString();
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
console.error(`Format "${format}" not implemented yet`);
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
if (outputPath) {
|
|
75
|
+
if (fs.existsSync(outputPath) && fs.statSync(outputPath).isDirectory()) {
|
|
76
|
+
const basename = path.basename(inputPath, path.extname(inputPath));
|
|
77
|
+
const outFile = path.join(outputPath, basename + ext);
|
|
78
|
+
fs.writeFileSync(outFile, result);
|
|
79
|
+
console.log(`${inputPath} → ${outFile}`);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
fs.writeFileSync(outputPath, result);
|
|
83
|
+
console.log(`${inputPath} → ${outputPath}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
const dir = path.dirname(inputPath);
|
|
88
|
+
const basename = path.basename(inputPath, path.extname(inputPath));
|
|
89
|
+
const outFile = path.join(dir, basename + ext);
|
|
90
|
+
fs.writeFileSync(outFile, result);
|
|
91
|
+
console.log(`${inputPath} → ${outFile}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function main() {
|
|
95
|
+
const args = parseArgs(process.argv.slice(2));
|
|
96
|
+
if (!args) {
|
|
97
|
+
usage();
|
|
98
|
+
process.exit(0);
|
|
99
|
+
}
|
|
100
|
+
if (args.command !== 'convert') {
|
|
101
|
+
console.error(`Unknown command: ${args.command}`);
|
|
102
|
+
usage();
|
|
103
|
+
process.exit(1);
|
|
104
|
+
}
|
|
105
|
+
if (args.files.length === 0) {
|
|
106
|
+
console.error('No input files specified');
|
|
107
|
+
usage();
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
if (!args.to) {
|
|
111
|
+
console.error('Missing --to <format>');
|
|
112
|
+
usage();
|
|
113
|
+
process.exit(1);
|
|
114
|
+
}
|
|
115
|
+
if (args.files.length > 1 && args.output && !fs.existsSync(args.output)) {
|
|
116
|
+
fs.mkdirSync(args.output, { recursive: true });
|
|
117
|
+
}
|
|
118
|
+
for (const file of args.files) {
|
|
119
|
+
if (!fs.existsSync(file)) {
|
|
120
|
+
console.error(`File not found: ${file}`);
|
|
121
|
+
process.exit(1);
|
|
122
|
+
}
|
|
123
|
+
convertFile(file, args.to, args.output || undefined);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
main();
|
|
127
|
+
//# sourceMappingURL=cli.js.map
|
package/esm/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/lib/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/lib/cli.js
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
const fs = __importStar(require("fs"));
|
|
23
|
+
const path = __importStar(require("path"));
|
|
24
|
+
const schema_1 = require("@podlite/schema");
|
|
25
|
+
const FORMATS = {
|
|
26
|
+
md: '.md',
|
|
27
|
+
markdown: '.md',
|
|
28
|
+
html: '.html',
|
|
29
|
+
};
|
|
30
|
+
function usage() {
|
|
31
|
+
console.log(`Usage: podlite convert <files...> --to <format> [-o <output>]
|
|
32
|
+
|
|
33
|
+
Commands:
|
|
34
|
+
convert Convert Podlite files to another format
|
|
35
|
+
|
|
36
|
+
Options:
|
|
37
|
+
--to Output format: md (markdown), html
|
|
38
|
+
-o Output file or directory (default: same dir, new extension)
|
|
39
|
+
--help Show this help
|
|
40
|
+
|
|
41
|
+
Examples:
|
|
42
|
+
podlite convert doc.pod6 --to md
|
|
43
|
+
podlite convert *.pod6 --to md -o output/
|
|
44
|
+
podlite convert README.pod6 --to md -o README.md`);
|
|
45
|
+
}
|
|
46
|
+
function parseArgs(argv) {
|
|
47
|
+
const args = {
|
|
48
|
+
command: '',
|
|
49
|
+
files: [],
|
|
50
|
+
to: '',
|
|
51
|
+
output: '',
|
|
52
|
+
};
|
|
53
|
+
let i = 0;
|
|
54
|
+
if (argv.length === 0 || argv[0] === '--help' || argv[0] === '-h') {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
args.command = argv[i++];
|
|
58
|
+
while (i < argv.length) {
|
|
59
|
+
const arg = argv[i];
|
|
60
|
+
if (arg === '--to') {
|
|
61
|
+
args.to = argv[++i] || '';
|
|
62
|
+
}
|
|
63
|
+
else if (arg === '-o') {
|
|
64
|
+
args.output = argv[++i] || '';
|
|
65
|
+
}
|
|
66
|
+
else if (arg === '--help' || arg === '-h') {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
else if (!arg.startsWith('-')) {
|
|
70
|
+
args.files.push(arg);
|
|
71
|
+
}
|
|
72
|
+
i++;
|
|
73
|
+
}
|
|
74
|
+
return args;
|
|
75
|
+
}
|
|
76
|
+
function convertFile(inputPath, format, outputPath) {
|
|
77
|
+
const ext = FORMATS[format];
|
|
78
|
+
if (!ext) {
|
|
79
|
+
console.error(`Unknown format: ${format}. Supported: ${Object.keys(FORMATS).join(', ')}`);
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
const content = fs.readFileSync(inputPath, 'utf-8');
|
|
83
|
+
const tree = (0, schema_1.parse)(content);
|
|
84
|
+
let result;
|
|
85
|
+
if (format === 'md' || format === 'markdown') {
|
|
86
|
+
result = (0, schema_1.toMarkdown)({}).run(tree).toString();
|
|
87
|
+
}
|
|
88
|
+
else if (format === 'html') {
|
|
89
|
+
result = (0, schema_1.toHtml)({}).run(tree).toString();
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
console.error(`Format "${format}" not implemented yet`);
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
if (outputPath) {
|
|
96
|
+
if (fs.existsSync(outputPath) && fs.statSync(outputPath).isDirectory()) {
|
|
97
|
+
const basename = path.basename(inputPath, path.extname(inputPath));
|
|
98
|
+
const outFile = path.join(outputPath, basename + ext);
|
|
99
|
+
fs.writeFileSync(outFile, result);
|
|
100
|
+
console.log(`${inputPath} → ${outFile}`);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
fs.writeFileSync(outputPath, result);
|
|
104
|
+
console.log(`${inputPath} → ${outputPath}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
const dir = path.dirname(inputPath);
|
|
109
|
+
const basename = path.basename(inputPath, path.extname(inputPath));
|
|
110
|
+
const outFile = path.join(dir, basename + ext);
|
|
111
|
+
fs.writeFileSync(outFile, result);
|
|
112
|
+
console.log(`${inputPath} → ${outFile}`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function main() {
|
|
116
|
+
const args = parseArgs(process.argv.slice(2));
|
|
117
|
+
if (!args) {
|
|
118
|
+
usage();
|
|
119
|
+
process.exit(0);
|
|
120
|
+
}
|
|
121
|
+
if (args.command !== 'convert') {
|
|
122
|
+
console.error(`Unknown command: ${args.command}`);
|
|
123
|
+
usage();
|
|
124
|
+
process.exit(1);
|
|
125
|
+
}
|
|
126
|
+
if (args.files.length === 0) {
|
|
127
|
+
console.error('No input files specified');
|
|
128
|
+
usage();
|
|
129
|
+
process.exit(1);
|
|
130
|
+
}
|
|
131
|
+
if (!args.to) {
|
|
132
|
+
console.error('Missing --to <format>');
|
|
133
|
+
usage();
|
|
134
|
+
process.exit(1);
|
|
135
|
+
}
|
|
136
|
+
if (args.files.length > 1 && args.output && !fs.existsSync(args.output)) {
|
|
137
|
+
fs.mkdirSync(args.output, { recursive: true });
|
|
138
|
+
}
|
|
139
|
+
for (const file of args.files) {
|
|
140
|
+
if (!fs.existsSync(file)) {
|
|
141
|
+
console.error(`File not found: ${file}`);
|
|
142
|
+
process.exit(1);
|
|
143
|
+
}
|
|
144
|
+
convertFile(file, args.to, args.output || undefined);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
main();
|
|
148
|
+
//# sourceMappingURL=cli.js.map
|
package/lib/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "podlite",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.47",
|
|
4
4
|
"description": "Podlite - a lightweight block-based markup language",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"funding": {
|
|
@@ -14,7 +14,9 @@
|
|
|
14
14
|
"watch:ts": "tsc -w --pretty",
|
|
15
15
|
"watch:tests": "jest --watch -t \"test\""
|
|
16
16
|
},
|
|
17
|
+
"bin": "./bin/podlite.js",
|
|
17
18
|
"files": [
|
|
19
|
+
"bin",
|
|
18
20
|
"lib",
|
|
19
21
|
"esm",
|
|
20
22
|
"README.md",
|
|
@@ -34,12 +36,12 @@
|
|
|
34
36
|
"url": "https://github.com/podlite/podlite/issues"
|
|
35
37
|
},
|
|
36
38
|
"dependencies": {
|
|
37
|
-
"@podlite/diagram": "^0.0.
|
|
38
|
-
"@podlite/formula": "0.0.
|
|
39
|
-
"@podlite/image": "^0.0.
|
|
40
|
-
"@podlite/markdown": "0.0.
|
|
41
|
-
"@podlite/schema": "^0.0.
|
|
42
|
-
"@podlite/toc": "0.0.
|
|
39
|
+
"@podlite/diagram": "^0.0.38",
|
|
40
|
+
"@podlite/formula": "0.0.16",
|
|
41
|
+
"@podlite/image": "^0.0.33",
|
|
42
|
+
"@podlite/markdown": "0.0.27",
|
|
43
|
+
"@podlite/schema": "^0.0.34",
|
|
44
|
+
"@podlite/toc": "0.0.27",
|
|
43
45
|
"nanoid": "3.1.30"
|
|
44
46
|
},
|
|
45
47
|
"devDependencies": {
|
package/CHANGELOG.md
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
# @podlite
|
|
2
|
-
|
|
3
|
-
## Upcoming
|
|
4
|
-
|
|
5
|
-
## 0.0.33
|
|
6
|
-
|
|
7
|
-
- fix api types
|
|
8
|
-
|
|
9
|
-
## 0.0.32
|
|
10
|
-
|
|
11
|
-
- add `=formula`, `F<>` support
|
|
12
|
-
|
|
13
|
-
## 0.0.27
|
|
14
|
-
|
|
15
|
-
- update deps
|
|
16
|
-
|
|
17
|
-
## 0.0.26
|
|
18
|
-
|
|
19
|
-
- move plugins object to @podlite/schema package
|
|
20
|
-
|
|
21
|
-
## 0.0.25
|
|
22
|
-
|
|
23
|
-
- improve blocks linking
|
|
24
|
-
|
|
25
|
-
## 0.0.24
|
|
26
|
-
|
|
27
|
-
- clean source
|
|
28
|
-
|
|
29
|
-
## 0.0.23
|
|
30
|
-
|
|
31
|
-
- update deps
|
|
32
|
-
|
|
33
|
-
## 0.0.22
|
|
34
|
-
|
|
35
|
-
- update deps
|
|
36
|
-
|
|
37
|
-
## 0.0.21
|
|
38
|
-
|
|
39
|
-
- add =Markdown plugin
|
|
40
|
-
|
|
41
|
-
## 0.0.20
|
|
42
|
-
|
|
43
|
-
- update deps
|
|
44
|
-
|
|
45
|
-
## 0.0.19
|
|
46
|
-
|
|
47
|
-
- update depends
|
|
48
|
-
|
|
49
|
-
## 0.0.18
|
|
50
|
-
|
|
51
|
-
- update depends
|
|
52
|
-
|
|
53
|
-
## 0.0.17
|
|
54
|
-
|
|
55
|
-
- update depends
|
|
56
|
-
|
|
57
|
-
## 0.0.16
|
|
58
|
-
|
|
59
|
-
- update depends
|
|
60
|
-
|
|
61
|
-
## 0.0.15
|
|
62
|
-
|
|
63
|
-
- update depends
|
|
64
|
-
|
|
65
|
-
## 0.0.14
|
|
66
|
-
|
|
67
|
-
- update depends
|
|
68
|
-
|
|
69
|
-
## 0.0.13
|
|
70
|
-
|
|
71
|
-
- fix npm
|
|
72
|
-
|
|
73
|
-
## 0.0.12
|
|
74
|
-
|
|
75
|
-
- add id prop to AST Schema
|
|
76
|
-
- add =Toc plugin
|
|
77
|
-
|
|
78
|
-
## 0.0.10
|
|
79
|
-
|
|
80
|
-
- update deps
|
|
81
|
-
|
|
82
|
-
## 0.0.9
|
|
83
|
-
|
|
84
|
-
- fix md transforms
|
|
85
|
-
|
|
86
|
-
## 0.0.8
|
|
87
|
-
|
|
88
|
-
- update deps
|
|
89
|
-
|
|
90
|
-
## 0.0.7
|
|
91
|
-
|
|
92
|
-
- update deps
|
|
93
|
-
|
|
94
|
-
## 0.0.6
|
|
95
|
-
|
|
96
|
-
- enable tests
|
|
97
|
-
- update deps
|
|
98
|
-
|
|
99
|
-
## 0.0.5
|
|
100
|
-
|
|
101
|
-
- import from original repo
|