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 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
- **Do something more significant with Mahafunc bundles**:
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,5 @@
1
+ import { Mahafunc } from "./Mahafunc";
2
+ export declare class ElementTweaker extends Mahafunc {
3
+ process($element: any, metadata: any, setDirty: Function, done?: Function): Promise<void>;
4
+ }
5
+ //# sourceMappingURL=ElementTweaker.d.ts.map
@@ -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"}
@@ -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"}