@haibun/parse-md 0.1.1 → 1.8.2

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.
@@ -0,0 +1,19 @@
1
+ import { TNamed, AStepper } from '@haibun/core/build/lib/defs';
2
+ declare const ParseMD: {
3
+ new (): {
4
+ steps: {
5
+ conformance: {
6
+ gwta: string;
7
+ action: ({ where }: TNamed) => Promise<import("@haibun/core/build/lib/defs").TOKActionResult | import("@haibun/core/build/lib/defs").TNotOKActionResult>;
8
+ };
9
+ };
10
+ world?: import("@haibun/core/build/lib/defs").TWorld | undefined;
11
+ close?(): void;
12
+ endFeature?(): void;
13
+ onFailure?(result: import("@haibun/core/build/lib/defs").TStepResult): void;
14
+ setWorld(world: import("@haibun/core/build/lib/defs").TWorld, steppers: AStepper[]): void;
15
+ getWorld(): import("@haibun/core/build/lib/defs").TWorld;
16
+ };
17
+ };
18
+ export default ParseMD;
19
+ //# sourceMappingURL=parse-md.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-md.d.ts","sourceRoot":"","sources":["../src/parse-md.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,MAAM,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAMnE,QAAA,MAAM,OAAO;;;;;oCAImB,MAAM;;;;;;;;;;CAUrC,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const defs_1 = require("@haibun/core/build/lib/defs");
4
+ const util_1 = require("@haibun/core/build/lib/util");
5
+ const parse_1 = require("./parse");
6
+ const conformance = /(?!\n|. )\b([A-Z].*? must .*?\.)/;
7
+ const ParseMD = class ParseMD extends defs_1.AStepper {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.steps = {
11
+ conformance: {
12
+ gwta: `has annotated conformance doc from {where: string}`,
13
+ action: async ({ where }) => {
14
+ try {
15
+ (0, parse_1.parseMatches)({ where: undefined }, this.getWorld().options.base, [conformance]);
16
+ }
17
+ catch (e) {
18
+ return (0, util_1.actionNotOK)(e.message);
19
+ }
20
+ return defs_1.OK;
21
+ },
22
+ },
23
+ };
24
+ }
25
+ };
26
+ exports.default = ParseMD;
27
+ //# sourceMappingURL=parse-md.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-md.js","sourceRoot":"","sources":["../src/parse-md.ts"],"names":[],"mappings":";;AAAA,sDAAmE;AACnE,sDAA0D;AAC1D,mCAAuC;AAEvC,MAAM,WAAW,GAAG,kCAAkC,CAAC;AAEvD,MAAM,OAAO,GAAG,MAAM,OAAQ,SAAQ,eAAQ;IAA9B;;QACd,UAAK,GAAG;YACN,WAAW,EAAE;gBACX,IAAI,EAAE,oDAAoD;gBAC1D,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAU,EAAE,EAAE;oBAClC,IAAI;wBACF,IAAA,oBAAY,EAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAc,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;qBAC3F;oBAAC,OAAO,CAAM,EAAE;wBACf,OAAO,IAAA,kBAAW,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC;qBAC/B;oBACD,OAAO,SAAE,CAAC;gBACZ,CAAC;aACF;SACF,CAAC;IACJ,CAAC;CAAA,CAAC;AAEF,kBAAe,OAAO,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=parse-md.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-md.test.d.ts","sourceRoot":"","sources":["../src/parse-md.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const lib_1 = require("@haibun/core/build/lib/test/lib");
7
+ const parse_md_1 = __importDefault(require("./parse-md"));
8
+ describe('parseMD', async () => {
9
+ const { world } = (0, lib_1.getDefaultWorld)(0);
10
+ const base = process.cwd() + '/test/conformance/';
11
+ world.options.base = base;
12
+ const pmd = new parse_md_1.default(world);
13
+ const res = pmd.steps.conformance;
14
+ const ret = await res.action({ where: `/${base}/input/input.html` }, {});
15
+ expect(ret.ok).toBe(true);
16
+ });
17
+ //# sourceMappingURL=parse-md.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-md.test.js","sourceRoot":"","sources":["../src/parse-md.test.ts"],"names":[],"mappings":";;;;;AACA,yDAAkE;AAClE,0DAAiC;AAEjC,QAAQ,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,qBAAe,EAAC,CAAC,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,oBAAoB,CAAC;IAClD,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAC1B,MAAM,GAAG,GAAG,IAAI,kBAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;IAElC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,IAAI,mBAAmB,EAAE,EAAE,EAAY,CAAC,CAAC;IACnF,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC"}
package/build/parse.d.ts CHANGED
@@ -1,3 +1,4 @@
1
- import { TSpecl, IStepper } from "@haibun/core/build/lib/defs";
2
- export declare function parse(specl: TSpecl, base: string, steppers: IStepper[]): Promise<void>;
1
+ export declare function parseMatches(docs: {
2
+ [name: string]: string | undefined;
3
+ }, base: string, matches: RegExp[]): Promise<void>;
3
4
  //# sourceMappingURL=parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE/D,wBAAsB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAmC5E"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAIA,wBAAsB,YAAY,CAAC,IAAI,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,iBAgC/G"}
package/build/parse.js CHANGED
@@ -3,44 +3,48 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.parse = void 0;
6
+ exports.parseMatches = void 0;
7
7
  const fs_1 = require("fs");
8
8
  const node_fetch_1 = __importDefault(require("node-fetch"));
9
9
  const turndown_1 = __importDefault(require("turndown"));
10
- async function parse(specl, base, steppers) {
11
- const { refs } = specl;
12
- const { docs } = refs;
10
+ async function parseMatches(docs, base, matches) {
13
11
  let conditions = [];
14
- for (const stepper of steppers) {
15
- for (const doc in docs) {
16
- let content;
17
- const loc = `${base}/refs/${doc}.md`;
12
+ for (const doc of Object.keys(docs)) {
13
+ let markdown = docs[doc];
14
+ const loc = `${base}/refs/${doc}.md`;
15
+ if (!markdown) {
18
16
  try {
19
- content = fs_1.readFileSync(loc, "utf-8");
17
+ markdown = (0, fs_1.readFileSync)(loc, 'utf-8');
20
18
  }
21
19
  catch (e) {
22
- console.info(`fetching ${loc} from ${docs[doc].src}`);
23
- const response = await node_fetch_1.default(docs[doc].src);
24
- content = await response.text();
20
+ const content = await fetchFileOrUri(doc);
25
21
  const turndownService = new turndown_1.default();
26
- const markdown = turndownService.turndown(content);
27
- fs_1.writeFileSync(loc, markdown);
22
+ markdown = turndownService.turndown(content);
23
+ (0, fs_1.writeFileSync)(loc, markdown);
28
24
  }
29
- for (const [name, step] of Object.entries(stepper.steps)) {
30
- const matches = content.matchAll(step.match);
31
- for (const match of matches) {
32
- const [m] = match;
33
- conditions.push({
34
- doc,
35
- condition: m,
36
- index: match.index,
37
- });
38
- }
25
+ }
26
+ for (const match of matches) {
27
+ const matches = markdown.matchAll(match);
28
+ for (const match of matches) {
29
+ const [m] = match;
30
+ conditions.push({
31
+ doc,
32
+ condition: m,
33
+ index: match.index,
34
+ });
39
35
  }
40
- fs_1.writeFileSync(`${base}/features/${doc}.md`, conditions.map(c => c.condition).join('\n'));
36
+ (0, fs_1.writeFileSync)(`${base}/features/${doc}.md`, conditions.map((c) => c.condition).join('\n'));
41
37
  }
42
38
  console.info('wrote', Object.keys(docs));
43
39
  }
44
40
  }
45
- exports.parse = parse;
41
+ exports.parseMatches = parseMatches;
42
+ async function fetchFileOrUri(doc) {
43
+ console.info(`fetching ${doc}`);
44
+ if (doc.includes('://')) {
45
+ const response = await (0, node_fetch_1.default)(doc);
46
+ return await response.text();
47
+ }
48
+ return (0, fs_1.readFileSync)(doc, 'utf-8');
49
+ }
46
50
  //# sourceMappingURL=parse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAiD;AACjD,4DAA+B;AAC/B,wDAAuC;AAGhC,KAAK,UAAU,KAAK,CAAC,KAAa,EAAE,IAAY,EAAE,QAAoB;IAC3E,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAK,CAAC;IACvB,IAAI,UAAU,GAAG,EAAE,CAAC;IAEpB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,IAAI,OAAe,CAAC;YACpB,MAAM,GAAG,GAAG,GAAG,IAAI,SAAS,GAAG,KAAK,CAAC;YACrC,IAAI;gBACF,OAAO,GAAG,iBAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;aACtC;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBACtD,MAAM,QAAQ,GAAG,MAAM,oBAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC5C,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAChC,MAAM,eAAe,GAAG,IAAI,kBAAe,EAAE,CAAC;gBAC9C,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACnD,kBAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;aAC9B;YAED,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACxD,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC;gBAC9C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;oBAC3B,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;oBAClB,UAAU,CAAC,IAAI,CAAC;wBACd,GAAG;wBACH,SAAS,EAAE,CAAC;wBACZ,KAAK,EAAE,KAAK,CAAC,KAAK;qBACnB,CAAC,CAAC;iBACJ;aACF;YACD,kBAAa,CAAC,GAAG,IAAI,aAAa,GAAG,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC1F;QACD,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KAC1C;AACH,CAAC;AAnCD,sBAmCC"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAiD;AACjD,4DAA+B;AAC/B,wDAAuC;AAEhC,KAAK,UAAU,YAAY,CAAC,IAA4C,EAAE,IAAY,EAAE,OAAiB;IAE9G,IAAI,UAAU,GAAG,EAAE,CAAC;IAEpB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACnC,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,GAAG,GAAG,GAAG,IAAI,SAAS,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI;gBACF,QAAQ,GAAG,IAAA,iBAAY,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;aACvC;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;gBAC1C,MAAM,eAAe,GAAG,IAAI,kBAAe,EAAE,CAAC;gBAC9C,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC7C,IAAA,kBAAa,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;aAC9B;SACF;QAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;YAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACzC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBAC3B,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAClB,UAAU,CAAC,IAAI,CAAC;oBACd,GAAG;oBACH,SAAS,EAAE,CAAC;oBACZ,KAAK,EAAE,KAAK,CAAC,KAAK;iBACnB,CAAC,CAAC;aACJ;YACD,IAAA,kBAAa,EAAC,GAAG,IAAI,aAAa,GAAG,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC5F;QACD,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KAC1C;AACH,CAAC;AAhCD,oCAgCC;AAED,KAAK,UAAU,cAAc,CAAC,GAAW;IACvC,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;IAChC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,CAAC,CAAC;QAClC,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;KAC9B;IACD,OAAO,IAAA,iBAAY,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=parse.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.test.d.ts","sourceRoot":"","sources":["../src/parse.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const parse = __importStar(require("./parse"));
27
+ describe('out-review', () => {
28
+ it('exists', () => {
29
+ expect(parse).toBeDefined();
30
+ });
31
+ });
32
+ //# sourceMappingURL=parse.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.test.js","sourceRoot":"","sources":["../src/parse.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AAEjC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QAChB,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,14 +1,15 @@
1
1
  {
2
2
  "name": "@haibun/parse-md",
3
- "version": "0.1.1",
3
+ "version": "1.8.2",
4
4
  "description": "",
5
- "files": [
5
+ "files": [
6
6
  "build/**"
7
7
  ],
8
8
  "main": "index.js",
9
9
  "scripts": {
10
10
  "prepublishOnly": "tsc -b .",
11
- "test": "echo \"Error: no test specified\" && exit 0"
11
+ "test": "jest --config jest.config.ts",
12
+ "test-watch": "jest --config jest.config.ts --watch"
12
13
  },
13
14
  "keywords": [],
14
15
  "author": "",
@@ -32,9 +33,8 @@
32
33
  "eslint-plugin-prettier": "^3.3.1",
33
34
  "jest": "^27.0.4",
34
35
  "prettier": "^2.3.1",
35
- "ts-jest": "^27.0.3",
36
36
  "ts-node": "^10.0.0",
37
37
  "tslint": "^6.1.3",
38
38
  "typescript": "^4.1.3"
39
39
  }
40
- }
40
+ }