mahabhuta 0.7.9 → 0.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.
- package/TODO.md +3 -1
- package/dist/CustomElement.d.ts +23 -0
- package/dist/CustomElement.d.ts.map +1 -0
- package/dist/CustomElement.js +74 -0
- package/dist/ElementTweaker.d.ts +5 -0
- package/dist/ElementTweaker.d.ts.map +1 -0
- package/dist/ElementTweaker.js +11 -0
- package/dist/Mahafunc.d.ts +61 -0
- package/dist/Mahafunc.d.ts.map +1 -0
- package/dist/Mahafunc.js +75 -0
- package/dist/MahafuncArray.d.ts +89 -0
- package/dist/MahafuncArray.d.ts.map +1 -0
- package/dist/MahafuncArray.js +276 -0
- package/dist/Munger.d.ts +19 -0
- package/dist/Munger.d.ts.map +1 -0
- package/dist/Munger.js +66 -0
- package/dist/PageProcessor.d.ts +5 -0
- package/dist/PageProcessor.d.ts.map +1 -0
- package/dist/PageProcessor.js +11 -0
- package/dist/index.d.ts +106 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +211 -0
- package/lib/CustomElement.ts +55 -0
- package/lib/ElementTweaker.ts +8 -0
- package/lib/Mahafunc.ts +81 -0
- package/lib/MahafuncArray.ts +254 -0
- package/lib/Munger.ts +44 -0
- package/lib/PageProcessor.ts +8 -0
- package/lib/index.ts +203 -0
- package/maha/metadata.js +1 -1
- package/maha/partial.js +1 -1
- package/package.json +17 -5
- package/tsconfig.json +18 -0
- package/built-in.js +0 -185
- package/index.js +0 -371
package/TODO.md
CHANGED
|
@@ -4,4 +4,6 @@
|
|
|
4
4
|
|
|
5
5
|
**Implement a command-line tool**: It would take a module name to load that will contain Mahafuncs, then take input file and output file names.
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**Convert guide to have documents/layouts/partials/etc directories?**
|
|
8
|
+
|
|
9
|
+
**Convert guide to have a `package.json` and ability to use TypeDoc to build API documentation subsite**
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Mahafunc } from "./Mahafunc";
|
|
2
|
+
/**
|
|
3
|
+
* Implements an HTML-ish element that is replaced with
|
|
4
|
+
* some other HTML. For example, <embed-video> might take
|
|
5
|
+
* an href= and other attributes to describe a video from
|
|
6
|
+
* a known service, the process function discerns the HTML code
|
|
7
|
+
* to use for the player, rendering that into the output.
|
|
8
|
+
*/
|
|
9
|
+
export declare class CustomElement extends Mahafunc {
|
|
10
|
+
/**
|
|
11
|
+
* The name of the element that is implemented by
|
|
12
|
+
* this function.
|
|
13
|
+
*/
|
|
14
|
+
get elementName(): string;
|
|
15
|
+
/**
|
|
16
|
+
* The selector for a _CustomElement_ implementation
|
|
17
|
+
* is simply the name of the element.
|
|
18
|
+
*/
|
|
19
|
+
get selector(): string;
|
|
20
|
+
process($element: any, metadata: any, setDirty: Function, done?: Function): Promise<void>;
|
|
21
|
+
processAll($: any, metadata: any, setDirty: Function): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=CustomElement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomElement.d.ts","sourceRoot":"","sources":["../lib/CustomElement.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC;;;;;;GAMG;AACF,qBAAa,aAAc,SAAQ,QAAQ;IAExC;;;OAGG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;OAGG;IACH,IAAI,QAAQ,IAAI,MAAM,CAA6B;IAE7C,OAAO,CAAC,QAAQ,KAAA,EAAE,QAAQ,KAAA,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,QAAQ;IAI/D,UAAU,CAAC,CAAC,KAAA,EAAE,QAAQ,KAAA,EAAE,QAAQ,EAAE,QAAQ;CAsBnD"}
|
|
@@ -0,0 +1,74 @@
|
|
|
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
|
+
exports.CustomElement = void 0;
|
|
23
|
+
const Mahafunc_1 = require("./Mahafunc");
|
|
24
|
+
const util = __importStar(require("util"));
|
|
25
|
+
const index_1 = require("./index");
|
|
26
|
+
/**
|
|
27
|
+
* Implements an HTML-ish element that is replaced with
|
|
28
|
+
* some other HTML. For example, <embed-video> might take
|
|
29
|
+
* an href= and other attributes to describe a video from
|
|
30
|
+
* a known service, the process function discerns the HTML code
|
|
31
|
+
* to use for the player, rendering that into the output.
|
|
32
|
+
*/
|
|
33
|
+
class CustomElement extends Mahafunc_1.Mahafunc {
|
|
34
|
+
/**
|
|
35
|
+
* The name of the element that is implemented by
|
|
36
|
+
* this function.
|
|
37
|
+
*/
|
|
38
|
+
get elementName() {
|
|
39
|
+
throw new Error("The 'elementName' getter must be overridden");
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The selector for a _CustomElement_ implementation
|
|
43
|
+
* is simply the name of the element.
|
|
44
|
+
*/
|
|
45
|
+
get selector() { return this.elementName; }
|
|
46
|
+
async process($element, metadata, setDirty, done) {
|
|
47
|
+
throw new Error("The 'process' function must be overridden");
|
|
48
|
+
}
|
|
49
|
+
async processAll($, metadata, setDirty) {
|
|
50
|
+
try {
|
|
51
|
+
let elements = this.findElements($);
|
|
52
|
+
if (elements.length <= 0)
|
|
53
|
+
return;
|
|
54
|
+
// Performance testing
|
|
55
|
+
const _start = new Date();
|
|
56
|
+
for (let element of elements) {
|
|
57
|
+
let replaceWith = await this.process($(element), metadata, setDirty);
|
|
58
|
+
// console.log(`CustomElement ${this.elementName} process returned ${replaceWith}`);
|
|
59
|
+
$(element).replaceWith(replaceWith);
|
|
60
|
+
}
|
|
61
|
+
/* if (this.elementName === "site-verification") {
|
|
62
|
+
console.log(`CustomElement ${this.elementName} `, $.html());
|
|
63
|
+
} */
|
|
64
|
+
// Performance testing
|
|
65
|
+
(0, index_1.logPerformance)(_start, `CustomElement ${this.array.name} ${this.elementName}`);
|
|
66
|
+
}
|
|
67
|
+
catch (e) {
|
|
68
|
+
console.error(`CustomElement ${this.elementName} Errored with ${util.inspect(e)}`);
|
|
69
|
+
throw e;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.CustomElement = CustomElement;
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3VzdG9tRWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9DdXN0b21FbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSx5Q0FBc0M7QUFDdEMsMkNBQTZCO0FBQzdCLG1DQUF3RDtBQUV4RDs7Ozs7O0dBTUc7QUFDRixNQUFhLGFBQWMsU0FBUSxtQkFBUTtJQUV4Qzs7O09BR0c7SUFDSCxJQUFJLFdBQVc7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksUUFBUSxLQUFhLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFFbkQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQWtCLEVBQUUsSUFBZTtRQUNqRSxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFrQjtRQUM1QyxJQUFJO1lBQ0EsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQztnQkFBRSxPQUFPO1lBQ2pDLHNCQUFzQjtZQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBRTFCLEtBQUssSUFBSSxPQUFPLElBQUksUUFBUSxFQUFFO2dCQUMxQixJQUFJLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDckUsb0ZBQW9GO2dCQUNwRixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3ZDO1lBQ0Q7O2dCQUVJO1lBQ0osc0JBQXNCO1lBQ3RCLElBQUEsc0JBQWMsRUFBQyxNQUFNLEVBQUUsaUJBQWlCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1NBQ2xGO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDUixPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixJQUFJLENBQUMsV0FBVyxpQkFBaUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkYsTUFBTSxDQUFDLENBQUM7U0FDWDtJQUNMLENBQUM7Q0FDSjtBQTFDQSxzQ0EwQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IE1haGFmdW5jIH0gZnJvbSBcIi4vTWFoYWZ1bmNcIjtcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgeyBsb2dQcm9jZXNzaW5nLCBsb2dQZXJmb3JtYW5jZSB9IGZyb20gJy4vaW5kZXgnO1xuXG4vKipcbiAqIEltcGxlbWVudHMgYW4gSFRNTC1pc2ggZWxlbWVudCB0aGF0IGlzIHJlcGxhY2VkIHdpdGhcbiAqIHNvbWUgb3RoZXIgSFRNTC4gIEZvciBleGFtcGxlLCA8ZW1iZWQtdmlkZW8+IG1pZ2h0IHRha2VcbiAqIGFuIGhyZWY9IGFuZCBvdGhlciBhdHRyaWJ1dGVzIHRvIGRlc2NyaWJlIGEgdmlkZW8gZnJvbVxuICogYSBrbm93biBzZXJ2aWNlLCB0aGUgcHJvY2VzcyBmdW5jdGlvbiBkaXNjZXJucyB0aGUgSFRNTCBjb2RlXG4gKiB0byB1c2UgZm9yIHRoZSBwbGF5ZXIsIHJlbmRlcmluZyB0aGF0IGludG8gdGhlIG91dHB1dC5cbiAqL1xuIGV4cG9ydCBjbGFzcyBDdXN0b21FbGVtZW50IGV4dGVuZHMgTWFoYWZ1bmMge1xuXG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGVsZW1lbnQgdGhhdCBpcyBpbXBsZW1lbnRlZCBieVxuICAgICAqIHRoaXMgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZ2V0IGVsZW1lbnROYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSAnZWxlbWVudE5hbWUnIGdldHRlciBtdXN0IGJlIG92ZXJyaWRkZW5cIik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIHNlbGVjdG9yIGZvciBhIF9DdXN0b21FbGVtZW50XyBpbXBsZW1lbnRhdGlvblxuICAgICAqIGlzIHNpbXBseSB0aGUgbmFtZSBvZiB0aGUgZWxlbWVudC5cbiAgICAgKi9cbiAgICBnZXQgc2VsZWN0b3IoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuZWxlbWVudE5hbWU7IH1cblxuICAgIGFzeW5jIHByb2Nlc3MoJGVsZW1lbnQsIG1ldGFkYXRhLCBzZXREaXJ0eTogRnVuY3Rpb24sIGRvbmU/OiBGdW5jdGlvbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgJ3Byb2Nlc3MnIGZ1bmN0aW9uIG11c3QgYmUgb3ZlcnJpZGRlblwiKTtcbiAgICB9XG5cbiAgICBhc3luYyBwcm9jZXNzQWxsKCQsIG1ldGFkYXRhLCBzZXREaXJ0eTogRnVuY3Rpb24pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBlbGVtZW50cyA9IHRoaXMuZmluZEVsZW1lbnRzKCQpO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRzLmxlbmd0aCA8PSAwKSByZXR1cm47XG4gICAgICAgICAgICAvLyBQZXJmb3JtYW5jZSB0ZXN0aW5nXG4gICAgICAgICAgICBjb25zdCBfc3RhcnQgPSBuZXcgRGF0ZSgpO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIGVsZW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgbGV0IHJlcGxhY2VXaXRoID0gYXdhaXQgdGhpcy5wcm9jZXNzKCQoZWxlbWVudCksIG1ldGFkYXRhLCBzZXREaXJ0eSk7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coYEN1c3RvbUVsZW1lbnQgJHt0aGlzLmVsZW1lbnROYW1lfSBwcm9jZXNzIHJldHVybmVkICR7cmVwbGFjZVdpdGh9YCk7XG4gICAgICAgICAgICAgICAgJChlbGVtZW50KS5yZXBsYWNlV2l0aChyZXBsYWNlV2l0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBpZiAodGhpcy5lbGVtZW50TmFtZSA9PT0gXCJzaXRlLXZlcmlmaWNhdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYEN1c3RvbUVsZW1lbnQgJHt0aGlzLmVsZW1lbnROYW1lfSBgLCAkLmh0bWwoKSk7XG4gICAgICAgICAgICB9ICovXG4gICAgICAgICAgICAvLyBQZXJmb3JtYW5jZSB0ZXN0aW5nXG4gICAgICAgICAgICBsb2dQZXJmb3JtYW5jZShfc3RhcnQsIGBDdXN0b21FbGVtZW50ICR7dGhpcy5hcnJheS5uYW1lfSAke3RoaXMuZWxlbWVudE5hbWV9YCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEN1c3RvbUVsZW1lbnQgJHt0aGlzLmVsZW1lbnROYW1lfSBFcnJvcmVkIHdpdGggJHt1dGlsLmluc3BlY3QoZSl9YCk7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ElementTweaker.d.ts","sourceRoot":"","sources":["../lib/ElementTweaker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,qBAAa,cAAe,SAAQ,QAAQ;IAClC,OAAO,CAAC,QAAQ,KAAA,EAAE,QAAQ,KAAA,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,QAAQ;CAGxE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ElementTweaker = void 0;
|
|
4
|
+
const Mahafunc_1 = require("./Mahafunc");
|
|
5
|
+
class ElementTweaker extends Mahafunc_1.Mahafunc {
|
|
6
|
+
async process($element, metadata, setDirty, done) {
|
|
7
|
+
throw new Error("The 'process' function must be overridden");
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.ElementTweaker = ElementTweaker;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxlbWVudFR3ZWFrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvRWxlbWVudFR3ZWFrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQXFDO0FBRXJDLE1BQWEsY0FBZSxTQUFRLG1CQUFRO0lBQ3hDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFrQixFQUFFLElBQWU7UUFDakUsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFBO0lBQ2hFLENBQUM7Q0FDSjtBQUpELHdDQUlDIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBNYWhhZnVuYyB9IGZyb20gXCIuL01haGFmdW5jXCJcblxuZXhwb3J0IGNsYXNzIEVsZW1lbnRUd2Vha2VyIGV4dGVuZHMgTWFoYWZ1bmMge1xuICAgIGFzeW5jIHByb2Nlc3MoJGVsZW1lbnQsIG1ldGFkYXRhLCBzZXREaXJ0eTogRnVuY3Rpb24sIGRvbmU/OiBGdW5jdGlvbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgJ3Byb2Nlc3MnIGZ1bmN0aW9uIG11c3QgYmUgb3ZlcnJpZGRlblwiKVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { MahafuncArray } from "./MahafuncArray";
|
|
2
|
+
/**
|
|
3
|
+
* A superclass for implementing processor functions
|
|
4
|
+
* for use with Mahabhuta. This class is not meant to
|
|
5
|
+
* be instantiated directly, but to be extended. Instead
|
|
6
|
+
* it is meant for applications to instantiate subclasses
|
|
7
|
+
* of this class.
|
|
8
|
+
*/
|
|
9
|
+
export declare class Mahafunc {
|
|
10
|
+
/**
|
|
11
|
+
* Store the {@link MahafuncArray} containing
|
|
12
|
+
* this function.
|
|
13
|
+
*/
|
|
14
|
+
set array(array: MahafuncArray);
|
|
15
|
+
/**
|
|
16
|
+
* Retrieve the {@link MahafuncArray} containing
|
|
17
|
+
* this function.
|
|
18
|
+
*/
|
|
19
|
+
get array(): MahafuncArray;
|
|
20
|
+
/**
|
|
21
|
+
* Retrieve the options/configuration object
|
|
22
|
+
* stored in the array containing this function.
|
|
23
|
+
*/
|
|
24
|
+
get options(): any;
|
|
25
|
+
/**
|
|
26
|
+
* Retrieve the jQuery-like _selector_ associated with
|
|
27
|
+
* a Mahafunc. When the containing {@link MahafuncArray}
|
|
28
|
+
* determines whether to execute this function, it uses
|
|
29
|
+
* the selector to determine if it matches any elements.
|
|
30
|
+
*
|
|
31
|
+
* @returns the selector to use
|
|
32
|
+
*/
|
|
33
|
+
get selector(): string;
|
|
34
|
+
/**
|
|
35
|
+
* Look for any elements matching the _selector_.
|
|
36
|
+
*
|
|
37
|
+
* @param $ The parsed HTML
|
|
38
|
+
* @returns An array of elements matching the selector. If none match, the array will have zero elements.
|
|
39
|
+
*/
|
|
40
|
+
findElements($: any): any[];
|
|
41
|
+
/**
|
|
42
|
+
* Run the function against an element.
|
|
43
|
+
*
|
|
44
|
+
* @param $element The element to process
|
|
45
|
+
* @param metadata The metadata object passed from the application
|
|
46
|
+
* @param setDirty The function to call if an element inserts code requiring further processing
|
|
47
|
+
* @param done Callback function if needed
|
|
48
|
+
*/
|
|
49
|
+
process($element: any, metadata: any, setDirty: Function, done?: Function): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Call {@link process} for every matching element.
|
|
52
|
+
* The {@link findElements} function is meant to be
|
|
53
|
+
* used to determine the matching elements.
|
|
54
|
+
*
|
|
55
|
+
* @param $ The parsed version of the HTML
|
|
56
|
+
* @param metadata The metadata object passed from the application
|
|
57
|
+
* @param setDirty The function to call if an element inserts code requiring further processing
|
|
58
|
+
*/
|
|
59
|
+
processAll($: any, metadata: any, setDirty: Function): Promise<void>;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=Mahafunc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Mahafunc.d.ts","sourceRoot":"","sources":["../lib/Mahafunc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD;;;;;;GAMG;AACH,qBAAa,QAAQ;IAEjB;;;OAGG;IACH,IAAI,KAAK,CAAC,KAAK,EAAE,aAAa,EAAoC;IAElE;;;OAGG;IACH,IAAI,KAAK,IANQ,aAAa,CAMe;IAE7C;;;OAGG;IACH,IAAI,OAAO,QAA4C;IAEvD;;;;;;;OAOG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;;;;OAKG;IACH,YAAY,CAAC,CAAC,KAAA;IAMd;;;;;;;OAOG;IACG,OAAO,CAAC,QAAQ,KAAA,EAAE,QAAQ,KAAA,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,QAAQ;IAIrE;;;;;;;;OAQG;IACG,UAAU,CAAC,CAAC,KAAA,EAAE,QAAQ,KAAA,EAAE,QAAQ,EAAE,QAAQ;CAGnD"}
|
package/dist/Mahafunc.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Mahafunc = void 0;
|
|
4
|
+
const _mahafunc_array = Symbol('array');
|
|
5
|
+
/**
|
|
6
|
+
* A superclass for implementing processor functions
|
|
7
|
+
* for use with Mahabhuta. This class is not meant to
|
|
8
|
+
* be instantiated directly, but to be extended. Instead
|
|
9
|
+
* it is meant for applications to instantiate subclasses
|
|
10
|
+
* of this class.
|
|
11
|
+
*/
|
|
12
|
+
class Mahafunc {
|
|
13
|
+
/**
|
|
14
|
+
* Store the {@link MahafuncArray} containing
|
|
15
|
+
* this function.
|
|
16
|
+
*/
|
|
17
|
+
set array(array) { this[_mahafunc_array] = array; }
|
|
18
|
+
/**
|
|
19
|
+
* Retrieve the {@link MahafuncArray} containing
|
|
20
|
+
* this function.
|
|
21
|
+
*/
|
|
22
|
+
get array() { return this[_mahafunc_array]; }
|
|
23
|
+
/**
|
|
24
|
+
* Retrieve the options/configuration object
|
|
25
|
+
* stored in the array containing this function.
|
|
26
|
+
*/
|
|
27
|
+
get options() { return this[_mahafunc_array].options; }
|
|
28
|
+
/**
|
|
29
|
+
* Retrieve the jQuery-like _selector_ associated with
|
|
30
|
+
* a Mahafunc. When the containing {@link MahafuncArray}
|
|
31
|
+
* determines whether to execute this function, it uses
|
|
32
|
+
* the selector to determine if it matches any elements.
|
|
33
|
+
*
|
|
34
|
+
* @returns the selector to use
|
|
35
|
+
*/
|
|
36
|
+
get selector() {
|
|
37
|
+
throw new Error("The 'selector' getter must be overridden");
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Look for any elements matching the _selector_.
|
|
41
|
+
*
|
|
42
|
+
* @param $ The parsed HTML
|
|
43
|
+
* @returns An array of elements matching the selector. If none match, the array will have zero elements.
|
|
44
|
+
*/
|
|
45
|
+
findElements($) {
|
|
46
|
+
var ret = [];
|
|
47
|
+
$(this.selector).each(function (i, elem) { ret.push(elem); });
|
|
48
|
+
return ret;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Run the function against an element.
|
|
52
|
+
*
|
|
53
|
+
* @param $element The element to process
|
|
54
|
+
* @param metadata The metadata object passed from the application
|
|
55
|
+
* @param setDirty The function to call if an element inserts code requiring further processing
|
|
56
|
+
* @param done Callback function if needed
|
|
57
|
+
*/
|
|
58
|
+
async process($element, metadata, setDirty, done) {
|
|
59
|
+
throw new Error("The 'process' function must be overridden");
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Call {@link process} for every matching element.
|
|
63
|
+
* The {@link findElements} function is meant to be
|
|
64
|
+
* used to determine the matching elements.
|
|
65
|
+
*
|
|
66
|
+
* @param $ The parsed version of the HTML
|
|
67
|
+
* @param metadata The metadata object passed from the application
|
|
68
|
+
* @param setDirty The function to call if an element inserts code requiring further processing
|
|
69
|
+
*/
|
|
70
|
+
async processAll($, metadata, setDirty) {
|
|
71
|
+
throw new Error("The 'processAll' function must be overridden");
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.Mahafunc = Mahafunc;
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFoYWZ1bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvTWFoYWZ1bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRXhDOzs7Ozs7R0FNRztBQUNILE1BQWEsUUFBUTtJQUVqQjs7O09BR0c7SUFDSCxJQUFJLEtBQUssQ0FBQyxLQUFvQixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBRWxFOzs7T0FHRztJQUNILElBQUksS0FBSyxLQUFLLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU3Qzs7O09BR0c7SUFDSCxJQUFJLE9BQU8sS0FBSyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRXZEOzs7Ozs7O09BT0c7SUFDSCxJQUFJLFFBQVE7UUFDUixNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFDLENBQUM7UUFDVixJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDYixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFTLENBQUMsRUFBRSxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBa0IsRUFBRSxJQUFlO1FBQ2pFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBa0I7UUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7Q0FDSjtBQXBFRCw0QkFvRUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IE1haGFmdW5jQXJyYXkgfSBmcm9tIFwiLi9NYWhhZnVuY0FycmF5XCI7XG5cbmNvbnN0IF9tYWhhZnVuY19hcnJheSA9IFN5bWJvbCgnYXJyYXknKTtcblxuLyoqXG4gKiBBIHN1cGVyY2xhc3MgZm9yIGltcGxlbWVudGluZyBwcm9jZXNzb3IgZnVuY3Rpb25zXG4gKiBmb3IgdXNlIHdpdGggTWFoYWJodXRhLiAgVGhpcyBjbGFzcyBpcyBub3QgbWVhbnQgdG9cbiAqIGJlIGluc3RhbnRpYXRlZCBkaXJlY3RseSwgYnV0IHRvIGJlIGV4dGVuZGVkLiAgSW5zdGVhZFxuICogaXQgaXMgbWVhbnQgZm9yIGFwcGxpY2F0aW9ucyB0byBpbnN0YW50aWF0ZSBzdWJjbGFzc2VzXG4gKiBvZiB0aGlzIGNsYXNzLlxuICovXG5leHBvcnQgY2xhc3MgTWFoYWZ1bmMge1xuXG4gICAgLyoqXG4gICAgICogU3RvcmUgdGhlIHtAbGluayBNYWhhZnVuY0FycmF5fSBjb250YWluaW5nXG4gICAgICogdGhpcyBmdW5jdGlvbi5cbiAgICAgKi9cbiAgICBzZXQgYXJyYXkoYXJyYXk6IE1haGFmdW5jQXJyYXkpIHsgdGhpc1tfbWFoYWZ1bmNfYXJyYXldID0gYXJyYXk7IH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlIHRoZSB7QGxpbmsgTWFoYWZ1bmNBcnJheX0gY29udGFpbmluZ1xuICAgICAqIHRoaXMgZnVuY3Rpb24uXG4gICAgICovXG4gICAgZ2V0IGFycmF5KCkgeyByZXR1cm4gdGhpc1tfbWFoYWZ1bmNfYXJyYXldOyB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZSB0aGUgb3B0aW9ucy9jb25maWd1cmF0aW9uIG9iamVjdFxuICAgICAqIHN0b3JlZCBpbiB0aGUgYXJyYXkgY29udGFpbmluZyB0aGlzIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIGdldCBvcHRpb25zKCkgeyByZXR1cm4gdGhpc1tfbWFoYWZ1bmNfYXJyYXldLm9wdGlvbnM7IH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlIHRoZSBqUXVlcnktbGlrZSBfc2VsZWN0b3JfIGFzc29jaWF0ZWQgd2l0aFxuICAgICAqIGEgTWFoYWZ1bmMuICBXaGVuIHRoZSBjb250YWluaW5nIHtAbGluayBNYWhhZnVuY0FycmF5fVxuICAgICAqIGRldGVybWluZXMgd2hldGhlciB0byBleGVjdXRlIHRoaXMgZnVuY3Rpb24sIGl0IHVzZXNcbiAgICAgKiB0aGUgc2VsZWN0b3IgdG8gZGV0ZXJtaW5lIGlmIGl0IG1hdGNoZXMgYW55IGVsZW1lbnRzLlxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIHRoZSBzZWxlY3RvciB0byB1c2VcbiAgICAgKi9cbiAgICBnZXQgc2VsZWN0b3IoKTogc3RyaW5nIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlICdzZWxlY3RvcicgZ2V0dGVyIG11c3QgYmUgb3ZlcnJpZGRlblwiKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb29rIGZvciBhbnkgZWxlbWVudHMgbWF0Y2hpbmcgdGhlIF9zZWxlY3Rvcl8uXG4gICAgICogXG4gICAgICogQHBhcmFtICQgVGhlIHBhcnNlZCBIVE1MXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgZWxlbWVudHMgbWF0Y2hpbmcgdGhlIHNlbGVjdG9yLiAgSWYgbm9uZSBtYXRjaCwgdGhlIGFycmF5IHdpbGwgaGF2ZSB6ZXJvIGVsZW1lbnRzLlxuICAgICAqL1xuICAgIGZpbmRFbGVtZW50cygkKSB7XG4gICAgICAgIHZhciByZXQgPSBbXTtcbiAgICAgICAgJCh0aGlzLnNlbGVjdG9yKS5lYWNoKGZ1bmN0aW9uKGksIGVsZW0pIHsgcmV0LnB1c2goZWxlbSk7IH0pO1xuICAgICAgICByZXR1cm4gcmV0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJ1biB0aGUgZnVuY3Rpb24gYWdhaW5zdCBhbiBlbGVtZW50LlxuICAgICAqIFxuICAgICAqIEBwYXJhbSAkZWxlbWVudCBUaGUgZWxlbWVudCB0byBwcm9jZXNzXG4gICAgICogQHBhcmFtIG1ldGFkYXRhIFRoZSBtZXRhZGF0YSBvYmplY3QgcGFzc2VkIGZyb20gdGhlIGFwcGxpY2F0aW9uXG4gICAgICogQHBhcmFtIHNldERpcnR5IFRoZSBmdW5jdGlvbiB0byBjYWxsIGlmIGFuIGVsZW1lbnQgaW5zZXJ0cyBjb2RlIHJlcXVpcmluZyBmdXJ0aGVyIHByb2Nlc3NpbmdcbiAgICAgKiBAcGFyYW0gZG9uZSBDYWxsYmFjayBmdW5jdGlvbiBpZiBuZWVkZWRcbiAgICAgKi9cbiAgICBhc3luYyBwcm9jZXNzKCRlbGVtZW50LCBtZXRhZGF0YSwgc2V0RGlydHk6IEZ1bmN0aW9uLCBkb25lPzogRnVuY3Rpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlICdwcm9jZXNzJyBmdW5jdGlvbiBtdXN0IGJlIG92ZXJyaWRkZW5cIik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbCB7QGxpbmsgcHJvY2Vzc30gZm9yIGV2ZXJ5IG1hdGNoaW5nIGVsZW1lbnQuXG4gICAgICogVGhlIHtAbGluayBmaW5kRWxlbWVudHN9IGZ1bmN0aW9uIGlzIG1lYW50IHRvIGJlXG4gICAgICogdXNlZCB0byBkZXRlcm1pbmUgdGhlIG1hdGNoaW5nIGVsZW1lbnRzLlxuICAgICAqIFxuICAgICAqIEBwYXJhbSAkIFRoZSBwYXJzZWQgdmVyc2lvbiBvZiB0aGUgSFRNTFxuICAgICAqIEBwYXJhbSBtZXRhZGF0YSBUaGUgbWV0YWRhdGEgb2JqZWN0IHBhc3NlZCBmcm9tIHRoZSBhcHBsaWNhdGlvblxuICAgICAqIEBwYXJhbSBzZXREaXJ0eSBUaGUgZnVuY3Rpb24gdG8gY2FsbCBpZiBhbiBlbGVtZW50IGluc2VydHMgY29kZSByZXF1aXJpbmcgZnVydGhlciBwcm9jZXNzaW5nXG4gICAgICovXG4gICAgYXN5bmMgcHJvY2Vzc0FsbCgkLCBtZXRhZGF0YSwgc2V0RGlydHk6IEZ1bmN0aW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSAncHJvY2Vzc0FsbCcgZnVuY3Rpb24gbXVzdCBiZSBvdmVycmlkZGVuXCIpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Mahafunc } from './Mahafunc';
|
|
2
|
+
export declare type MahafuncType = Mahafunc | MahafuncArray | Function | [];
|
|
3
|
+
/**
|
|
4
|
+
* Holds a series of functions ({@link Mahafunc}) that
|
|
5
|
+
* will execute in the order they were added.
|
|
6
|
+
*/
|
|
7
|
+
export declare class MahafuncArray {
|
|
8
|
+
constructor(name: string, config: Object);
|
|
9
|
+
/**
|
|
10
|
+
* Retrieve the configuration object supplied
|
|
11
|
+
* to the array.
|
|
12
|
+
*/
|
|
13
|
+
get options(): any;
|
|
14
|
+
/**
|
|
15
|
+
* Retrieve the name for the array. This name is
|
|
16
|
+
* purely for informational purposes.
|
|
17
|
+
*/
|
|
18
|
+
get name(): any;
|
|
19
|
+
/**
|
|
20
|
+
* Retrieve the array of functions.
|
|
21
|
+
*/
|
|
22
|
+
get functions(): any;
|
|
23
|
+
/**
|
|
24
|
+
* Retrieve the array of _final_ functions. These are
|
|
25
|
+
* executed after the main array is fully finished.
|
|
26
|
+
*/
|
|
27
|
+
get final_functions(): any;
|
|
28
|
+
/**
|
|
29
|
+
* Return the number of elements in the function array.
|
|
30
|
+
*/
|
|
31
|
+
get length(): number;
|
|
32
|
+
/**
|
|
33
|
+
* Return the number of elements in
|
|
34
|
+
* the final function array.
|
|
35
|
+
*/
|
|
36
|
+
get length_final(): number;
|
|
37
|
+
/**
|
|
38
|
+
* Add a function to the array.
|
|
39
|
+
*
|
|
40
|
+
* For historical purposes we support several types
|
|
41
|
+
* of function. It's preferable to use {@link Mahafunc}
|
|
42
|
+
* objects, or other {@link MahafuncArray}'s. But we
|
|
43
|
+
* also allow bare functions.
|
|
44
|
+
*
|
|
45
|
+
* @param func A single item of type {@link MahafuncType}
|
|
46
|
+
* @returns To support chaining, the array is returned
|
|
47
|
+
*/
|
|
48
|
+
addMahafunc(func: MahafuncType): MahafuncArray;
|
|
49
|
+
/**
|
|
50
|
+
* Replace any existing function array with a
|
|
51
|
+
* new array of either {@link Mahafunc} or
|
|
52
|
+
* {@link MahafuncArray} objects
|
|
53
|
+
*
|
|
54
|
+
* @param functions
|
|
55
|
+
* @returns To support chaining, the array is returned
|
|
56
|
+
*/
|
|
57
|
+
setMahafuncArray(functions: Array<Mahafunc | MahafuncArray>): MahafuncArray;
|
|
58
|
+
/**
|
|
59
|
+
* Replace any existing final function array with a
|
|
60
|
+
* new array of either {@link Mahafunc} or
|
|
61
|
+
* {@link MahafuncArray} objects
|
|
62
|
+
*
|
|
63
|
+
* @param functions
|
|
64
|
+
* @returns To support chaining, the array is returned
|
|
65
|
+
*/
|
|
66
|
+
setFinalMahafuncArray(final_functions: Array<Mahafunc>): MahafuncArray;
|
|
67
|
+
/**
|
|
68
|
+
* Add a function to the array.
|
|
69
|
+
*
|
|
70
|
+
* For historical purposes we support several types
|
|
71
|
+
* of function. It's preferable to use {@link Mahafunc}
|
|
72
|
+
* objects, or other {@link MahafuncArray}'s. But we
|
|
73
|
+
* also allow bare functions.
|
|
74
|
+
*
|
|
75
|
+
* @param func A single item of type {@link MahafuncType}
|
|
76
|
+
* @returns To support chaining, the array is returned
|
|
77
|
+
*/
|
|
78
|
+
addFinalMahafunc(func: MahafuncType): MahafuncArray;
|
|
79
|
+
/**
|
|
80
|
+
* Execute the functions in the array.
|
|
81
|
+
*
|
|
82
|
+
* @param $ The parsed form of the HTML ready to use with Cheerio functions
|
|
83
|
+
* @param metadata A metadata object supplied by the application, and passed through to functions.
|
|
84
|
+
* @param dirty A function provided by {@link processAsync} that notifies whether a function has inserted something in the HTML which requires further processing.
|
|
85
|
+
* @returns
|
|
86
|
+
*/
|
|
87
|
+
process($: any, metadata: any, dirty: Function): Promise<any[]>;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=MahafuncArray.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MahafuncArray.d.ts","sourceRoot":"","sources":["../lib/MahafuncArray.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAMtC,oBAAY,YAAY,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,EAAE,CAAC;AAOpE;;;GAGG;AACH,qBAAa,aAAa;gBAEV,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAQxC;;;OAGG;IACH,IAAI,OAAO,QAAuC;IAElD;;;OAGG;IACH,IAAI,IAAI,QAAoC;IAE5C;;OAEG;IACH,IAAI,SAAS,QAAyC;IAEtD;;;OAGG;IACH,IAAI,eAAe,QAA+C;IAElE;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAA8C;IAElE;;;OAGG;IACH,IAAI,YAAY,IAAI,MAAM,CAAoD;IAE9E;;;;;;;;;;OAUG;IACH,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa;IAe9C;;;;;;;OAOG;IACH,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAC,GAAG,aAAa;IAc3E;;;;;;;OAOG;IACH,qBAAqB,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,aAAa;IActE;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa;IAenD;;;;;;;OAOG;IACG,OAAO,CAAC,CAAC,KAAA,EAAE,QAAQ,KAAA,EAAE,KAAK,EAAE,QAAQ;CAsF7C"}
|