@monkeyplus/flow 3.2.6 → 3.4.0

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,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const pages_1 = require("./pages");
4
+ const config_1 = require("./config");
5
+ exports.default = {
6
+ register: (server) => {
7
+ const { flow: state } = server.app;
8
+ const { configs: config } = server.plugins.flow;
9
+ const registerRoute = (route) => {
10
+ const _routes = server.table();
11
+ const _route = _routes.find((v) => v.path === route.path);
12
+ if (_route) {
13
+ config_1.logger.warn(`Duplicate route, the route ${route.path} already exists`);
14
+ }
15
+ else {
16
+ server.route(route);
17
+ }
18
+ };
19
+ const addPage = (_page, dynamic) => {
20
+ const registerPages = (_pages) => {
21
+ for (const _route of _pages) {
22
+ if (state.routes[_route.path]) {
23
+ config_1.logger.warn('The route %s alredy exist', _route.path);
24
+ }
25
+ else {
26
+ state.routes[_route.path] = _route;
27
+ }
28
+ }
29
+ };
30
+ let _pages;
31
+ if (typeof _page === 'function') {
32
+ _pages = _page(config);
33
+ // console.log(_pages);
34
+ registerPages(_pages);
35
+ }
36
+ else {
37
+ // console.log('Otra', _page);
38
+ _pages = pages_1.definePage(_page, dynamic)()(config);
39
+ // console.log(_pages);
40
+ registerPages(_pages);
41
+ }
42
+ };
43
+ const init = async () => {
44
+ const pages = server.app.flow.routes;
45
+ for (const key in pages) {
46
+ const page = pages[key];
47
+ registerRoute(page);
48
+ }
49
+ for (const key in state.extensions) {
50
+ const ext = state.extensions[key];
51
+ if (ext.initMethod) {
52
+ await ext.initMethod();
53
+ }
54
+ }
55
+ config_1.logger.debug(`Register %s pages`, `${Object.values(pages).length}`);
56
+ };
57
+ return { init, addPage };
58
+ }
59
+ };
60
+ //# sourceMappingURL=runMethods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runMethods.js","sourceRoot":"","sources":["../src/runMethods.ts"],"names":[],"mappings":";;AACA,mCAAqC;AAOrC,qCAAkC;AAElC,kBAAe;IACb,QAAQ,EAAE,CAAC,MAAc,EAAE,EAAE;QAC3B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC;QACnC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QAEhD,MAAM,aAAa,GAAG,CAAC,KAAkB,EAAE,EAAE;YAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,MAAM,EAAE;gBACV,eAAM,CAAC,IAAI,CAAC,8BAA8B,KAAK,CAAC,IAAI,iBAAiB,CAAC,CAAC;aACxE;iBAAM;gBACL,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACrB;QACH,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,CACd,KAAsC,EACtC,OAA6B,EAC7B,EAAE;YACF,MAAM,aAAa,GAAG,CAAC,MAAqB,EAAE,EAAE;gBAC9C,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE;oBAC3B,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;wBAC7B,eAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;qBACvD;yBAAM;wBACL,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;qBACpC;iBACF;YACH,CAAC,CAAC;YACF,IAAI,MAAM,CAAC;YACX,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;gBAC/B,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;gBACvB,uBAAuB;gBAEvB,aAAa,CAAC,MAAM,CAAC,CAAC;aACvB;iBAAM;gBACL,8BAA8B;gBAE9B,MAAM,GAAG,kBAAU,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC9C,uBAAuB;gBAEvB,aAAa,CAAC,MAAM,CAAC,CAAC;aACvB;QACH,CAAC,CAAC;QAEF,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YACrC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;gBACvB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxB,aAAa,CAAC,IAAI,CAAC,CAAC;aACrB;YACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE;gBAClC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,GAAG,CAAC,UAAU,EAAE;oBAClB,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;iBACxB;aACF;YACD,eAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Server } from '@hapi/hapi';
2
+ declare const _default: {
3
+ register: (server: Server) => {
4
+ serverInfo: () => void;
5
+ };
6
+ };
7
+ export default _default;
@@ -0,0 +1,36 @@
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 os_1 = __importDefault(require("os"));
7
+ const config_1 = require("./config");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ exports.default = {
10
+ register: (server) => {
11
+ const serverInfo = () => {
12
+ const interfaces = os_1.default.networkInterfaces();
13
+ const hostname = 'localhost';
14
+ const protocol = 'http';
15
+ console.log('');
16
+ config_1.logger.success(chalk_1.default.green(`Flow v${config_1.pkg.version} dev server running at:`));
17
+ console.log('');
18
+ Object.keys(interfaces).forEach((key) => (interfaces[key] || [])
19
+ .filter((details) => details.family === 'IPv4')
20
+ .map((detail) => {
21
+ return {
22
+ type: detail.address.includes('127.0.0.1')
23
+ ? 'Local: '
24
+ : 'Network: ',
25
+ host: detail.address.replace('127.0.0.1', hostname)
26
+ };
27
+ })
28
+ .forEach(({ type, host }) => {
29
+ const url = `${protocol}://${host}:${chalk_1.default.bold(server.info.port)}`;
30
+ console.log(` > ${type} ${chalk_1.default.cyan(url)}`);
31
+ }));
32
+ };
33
+ return { serverInfo };
34
+ }
35
+ };
36
+ //# sourceMappingURL=serverInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverInfo.js","sourceRoot":"","sources":["../src/serverInfo.ts"],"names":[],"mappings":";;;;;AACA,4CAAoB;AACpB,qCAAqD;AACrD,kDAA0B;AAE1B,kBAAe;IACb,QAAQ,EAAE,CAAC,MAAc,EAAE,EAAE;QAC3B,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,MAAM,UAAU,GAAG,YAAE,CAAC,iBAAiB,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,WAAW,CAAC;YAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,eAAM,CAAC,OAAO,CACZ,eAAK,CAAC,KAAK,CAAC,SAAS,YAAG,CAAC,OAAO,yBAAyB,CAAC,CAC3D,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACtC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC;iBAC9C,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACd,OAAO;oBACL,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;wBACxC,CAAC,CAAC,WAAW;wBACb,CAAC,CAAC,WAAW;oBACf,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC;iBACpD,CAAC;YACJ,CAAC,CAAC;iBACD,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;gBAC1B,MAAM,GAAG,GAAG,GAAG,QAAQ,MAAM,IAAI,IAAI,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChD,CAAC,CAAC,CACL,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO,EAAE,UAAU,EAAE,CAAC;IACxB,CAAC;CACF,CAAC"}
@@ -2,3 +2,4 @@ import { Server } from '@hapi/hapi';
2
2
  import { Flow, FlowOptions } from "../../types";
3
3
  export declare const logger: import("consola").Consola;
4
4
  export declare function getConfigs(server: Server, options: FlowOptions): Flow.Configs;
5
+ export declare const isDinamyc: (url: string) => boolean;
@@ -3,7 +3,7 @@ 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.getConfigs = exports.logger = void 0;
6
+ exports.isDinamyc = exports.getConfigs = exports.logger = void 0;
7
7
  const path_1 = __importDefault(require("path"));
8
8
  const consola_1 = __importDefault(require("consola"));
9
9
  exports.logger = consola_1.default.withScope('@monkeyplus/flow');
@@ -18,7 +18,8 @@ const defaults = {
18
18
  dirTemplates: '',
19
19
  outputDir: 'build',
20
20
  url: process.env.CUSTOM_URL || process.env.URL,
21
- engines: ['eta']
21
+ engines: ['eta'],
22
+ plugins: {}
22
23
  };
23
24
  function getConfigs(server, options) {
24
25
  const relativeTo = path_1.default.resolve(options.relativeTo);
@@ -45,4 +46,6 @@ function getConfigs(server, options) {
45
46
  }
46
47
  }
47
48
  exports.getConfigs = getConfigs;
49
+ const isDinamyc = (url) => /\{url?(.+)\}/.test(url);
50
+ exports.isDinamyc = isDinamyc;
48
51
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;AAEA,gDAAwB;AACxB,sDAA8B;AACjB,QAAA,MAAM,GAAG,iBAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;AAC5D,qCAA6C;AAC7C,MAAM,QAAQ,GAAiB;IAC7B,OAAO,EAAE,CAAC,OAAO,CAAC;IAClB,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,IAAI;IACrB,UAAU,EAAE,GAAG;IACf,MAAM,EAAE,OAAO;IACf,UAAU,EAAE,EAAE;IACd,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,OAAO;IAClB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,UAAW,IAAI,OAAO,CAAC,GAAG,CAAC,GAAI;IAChD,OAAO,EAAE,CAAC,KAAK,CAAC;CACjB,CAAC;AACF,SAAgB,UAAU,CAAC,MAAc,EAAE,OAAoB;IAC7D,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,CAAC,MAAW,EAAO,EAAE;QACrC,MAAM,MAAM,GAAG,sBAAe,CAAC,QAAQ,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACpE,OAAO;YACL,GAAG,MAAM;YACT,UAAU;YACV,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,gBAAgB,EAAE;SAC/D,CAAC;IACJ,CAAC,CAAC;IACF,IAAI;QACF,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAEhE,cAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC1D,8DAA8D;QAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC;KACf;IAAC,OAAO,KAAK,EAAE;QACd,gCAAgC;QAChC,cAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC;KACtB;AACH,CAAC;AAvBD,gCAuBC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;AAEA,gDAAwB;AACxB,sDAA8B;AACjB,QAAA,MAAM,GAAG,iBAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;AAC5D,qCAA6C;AAE7C,MAAM,QAAQ,GAAiB;IAC7B,OAAO,EAAE,CAAC,OAAO,CAAC;IAClB,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,IAAI;IACrB,UAAU,EAAE,GAAG;IACf,MAAM,EAAE,OAAO;IACf,UAAU,EAAE,EAAE;IACd,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,OAAO;IAClB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,UAAW,IAAI,OAAO,CAAC,GAAG,CAAC,GAAI;IAChD,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF,SAAgB,UAAU,CAAC,MAAc,EAAE,OAAoB;IAC7D,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,CAAC,MAAW,EAAO,EAAE;QACrC,MAAM,MAAM,GAAG,sBAAe,CAAC,QAAQ,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACpE,OAAO;YACL,GAAG,MAAM;YACT,UAAU;YACV,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,gBAAgB,EAAE;SAC/D,CAAC;IACJ,CAAC,CAAC;IACF,IAAI;QACF,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAEhE,cAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC1D,8DAA8D;QAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC;KACf;IAAC,OAAO,KAAK,EAAE;QACd,gCAAgC;QAChC,cAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC;KACtB;AACH,CAAC;AAvBD,gCAuBC;AAEM,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAAtD,QAAA,SAAS,aAA6C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monkeyplus/flow",
3
- "version": "3.2.6",
3
+ "version": "3.4.0",
4
4
  "description": "Utils hapi",
5
5
  "author": "Andres Navarrete",
6
6
  "license": "MIT",
@@ -21,11 +21,11 @@
21
21
  "@types/ramda": "^0.27.44"
22
22
  },
23
23
  "dependencies": {
24
- "@monkeyplus/flow-core": "^3.2.4",
24
+ "@monkeyplus/flow-core": "^3.3.0-alpha.1",
25
25
  "chalk": "^4.1.2",
26
26
  "consola": "^2.15.3",
27
27
  "fs-extra": "^10.0.0",
28
28
  "ramda": "^0.27.1"
29
29
  },
30
- "gitHead": "b6420b181a78c8eb900379e2f02fd641ae6ffcc4"
30
+ "gitHead": "0544c28e3c104c10a5d7015a0ae5f27dbe784cec"
31
31
  }
package/types/flow.d.ts CHANGED
@@ -30,7 +30,7 @@ export interface FlowOptions {
30
30
  outputDir?: string;
31
31
  routeOptions?: RouteOptions;
32
32
  dirTemplates?: string;
33
- plugins?: FlowOptionPlugins;
33
+ plugins: FlowOptionPlugins;
34
34
  engines?: ('eta' | 'nunjucks')[];
35
35
  }
36
36
 
@@ -50,10 +50,8 @@ export namespace Extension {
50
50
  context: RouteContext,
51
51
  options: T
52
52
  ) => void;
53
- export interface InitContext {
54
- helpers: Flow.Helpers;
55
- }
56
- export type InitMethod = (context: InitContext) => Promise<void>;
53
+
54
+ export type InitMethod = () => Promise<void>;
57
55
  export interface Extension {
58
56
  state: any;
59
57
  initMethod?: InitMethod;
@@ -61,18 +59,26 @@ export namespace Extension {
61
59
  }
62
60
  }
63
61
  export namespace Flow {
64
- interface Url {
62
+ interface Page {
65
63
  url: string;
66
64
  locale: string;
67
65
  localeName: string;
68
66
  name: string;
67
+ context?: any;
68
+ dynamicSlug?: string;
69
69
  }
70
- export type Urls = Record<string, Url>;
71
- export type Pages = Record<string, ServerRoute>;
70
+ export type StaticPages = Record<string, Page>;
71
+ export type Routes = Record<string, ServerRoute>;
72
72
  export type Redirects = Record<string, string>;
73
73
  export type Truncates = Record<string, string>;
74
74
  export type DynamicContent = Record<string, { path: string; page: PageInfo }>;
75
- export type DynamicPages = Record<string, string[]>;
75
+ export type DynamicPages = Record<string, () => Promise<StaticPages>>;
76
+ export type Pages = {
77
+ statics: StaticPages;
78
+ redirects: Redirects;
79
+ dynamics: DynamicPages;
80
+ all: StaticPages;
81
+ };
76
82
 
77
83
  export interface PluginState {
78
84
  local: FlowPluginLocal;
@@ -92,15 +98,17 @@ export namespace Flow {
92
98
  addUrl: (key: string, url: Url) => undefined;
93
99
  }
94
100
  export interface AppState {
95
- prePackage: Record<string, () => Promise<unknown>>;
96
- redirects: Redirects;
97
- urls: Urls;
101
+ routes: Routes;
102
+ // redirects: Redirects;
103
+ // urls: Urls;
98
104
  pages: Pages;
99
105
  truncates: Truncates;
100
106
  extensions: Record<string, Extension.Extension>;
101
- dynamicPages: DynamicPages;
107
+ // dynamicPages: DynamicPages;
102
108
  generate: {
103
109
  folders: Record<string, GenerateFolder>;
110
+ beforePackage: Record<string, () => Promise<unknown>>;
111
+ postGenerate: Record<string, () => Promise<any>>;
104
112
  };
105
113
  engines: FlowEngines;
106
114
  plugins: FlowStatePlugins;
@@ -119,14 +127,21 @@ export namespace Flow {
119
127
  export interface GenerateOptions {
120
128
  assets?: GenerateFolder[];
121
129
  ommitAssets?: string[];
130
+ /**
131
+ * Solo aplicable para compilaciones
132
+ */
133
+ virtualGenerate?: boolean;
122
134
  }
123
135
 
124
136
  export interface Decorate {
125
- runPrePackage: () => Promise<unknown>;
137
+ prepagePackage: () => Promise<unknown>;
126
138
  serverInfo: () => void;
127
139
  init: (proxy?: boolean) => Promise<void>;
128
- addPage: (page: RunDefinePage | OptionsHapiPage) => Promise<void>;
129
- getPath: (...path: string[]) => string;
140
+ addPage: (
141
+ page: RunDefinePage | OptionsHapiPage,
142
+ dynamic?: OptionsDynamicPages
143
+ ) => Promise<void>;
144
+ // getPath: (...path: string[]) => string;
130
145
  runGenerate: (options?: GenerateOptions) => Promise<void>;
131
146
  }
132
147
  export interface HandlerOptions {
@@ -161,6 +176,7 @@ export interface ContextHandler {
161
176
  bundle: Bundle;
162
177
  publicPath: string;
163
178
  path: string;
179
+ dynamicSlug: string;
164
180
  };
165
181
  seo: Record<string, any>;
166
182
  /**
@@ -176,11 +192,20 @@ export type RunContextHapi = (ctx: ContextHandler) => Promise<any>;
176
192
  export interface OptionsHapiPage extends OptionsPage {
177
193
  options?: RouteOptions;
178
194
  context?: RunContextHapi;
195
+
179
196
  locales: Record<string, OptionsHapiLocalPage>;
180
197
  rules?: Record<string, unknown>;
181
198
  vhost?: string | string[];
182
199
  extensions?: FlowExtensions;
183
200
  }
201
+ export interface OptionsDynamicPages {
202
+ prefix?: (route: RequestRoute) => string | Promise<string>;
203
+ assign?: string;
204
+ pages: (ctx: {
205
+ server: Server;
206
+ route: RequestRoute;
207
+ }) => Promise<Flow.StaticPages>;
208
+ }
184
209
  // import {} from '..'
185
210
  export type RunDefinePage = (configs: Flow.Configs) => ServerRoute[];
186
211
  export type RunPreDefinePage = (level?: LevelOptions) => RunDefinePage;
package/types/index.d.ts CHANGED
@@ -9,7 +9,8 @@ export {
9
9
  OptionsHapiPage,
10
10
  GenerateFolder,
11
11
  Extension,
12
- ContextHandler
12
+ ContextHandler,
13
+ OptionsDynamicPages
13
14
  } from './flow';
14
15
  export {
15
16
  FlowExtensions,
@@ -22,7 +23,8 @@ export {
22
23
  FlowContextSeo,
23
24
  FlowContextPage,
24
25
  FlowEngines,
25
- FlowStatePlugins
26
+ FlowStatePlugins,
27
+ FlowServerMethods
26
28
  } from './interfaces';
27
29
  export type GenerateOptions =
28
30
  | boolean
@@ -1,5 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/no-empty-interface */
2
2
  import { Request, ResponseToolkit } from '@hapi/hapi';
3
+ import { Flow } from './flow';
3
4
  export interface FlowExtensions {}
4
5
  export interface FlowPluginExtension {}
5
6
  export interface FlowPluginUtils {}
@@ -54,3 +55,7 @@ export namespace Contexts {
54
55
 
55
56
  export interface FlowEngines {}
56
57
  export interface FlowStatePlugins {}
58
+ export interface FlowServerMethods {
59
+ pages: () => Promise<Flow.StaticPages>;
60
+ getUrl: (locale: string, name: string) => string;
61
+ }
@@ -1,10 +0,0 @@
1
- import { Server } from '@hapi/hapi';
2
- import { Flow, GenerateOptions } from "../types";
3
- interface Options {
4
- outputDir: string;
5
- getPath: any;
6
- }
7
- export declare const registerGenerate: (server: Server, { outputDir, getPath }: Options) => {
8
- runGenerate: ({ assets, ommitAssets }: Flow.GenerateOptions) => Promise<boolean>;
9
- };
10
- export {};
package/dist/generate.js DELETED
@@ -1,233 +0,0 @@
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
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.registerGenerate = void 0;
26
- const fs_extra_1 = __importDefault(require("fs-extra"));
27
- const path_1 = __importDefault(require("path"));
28
- const R = __importStar(require("ramda"));
29
- const utils_1 = require("./utils");
30
- const registerGenerate = (server, { outputDir, getPath }) => {
31
- //
32
- const getFlowPages = () => {
33
- var _a;
34
- const files = {};
35
- for (const page of Object.values(server.app.flow.urls)) {
36
- // const url = R.last(page.url) === '/' ? page.url + 'index.html' : page.url;
37
- files[page.url] = '.html';
38
- }
39
- const routes = server.table();
40
- for (const route of routes) {
41
- //
42
- const isDynamic = /\{url?(.+)\}/.test(route.path);
43
- // console.log(isDynamic);
44
- const generate = (_a = route.settings.plugins) === null || _a === void 0 ? void 0 : _a.generate;
45
- if (!isDynamic && generate) {
46
- if (!files[route.path]) {
47
- files[route.path] = generate;
48
- }
49
- }
50
- }
51
- return files;
52
- };
53
- const writeFile = async (file, payload) => {
54
- //
55
- // console.log(file);
56
- await fs_extra_1.default.ensureFile(file);
57
- await fs_extra_1.default.writeFile(file, payload, 'utf8');
58
- };
59
- const createFile = async (dir, url, ext) => {
60
- // console.log(url);
61
- if (typeof ext === 'object') {
62
- //
63
- const dirFile = path_1.default.dirname(url);
64
- await fs_extra_1.default.ensureDir(path_1.default.join(dir, dirFile));
65
- const file = await fs_extra_1.default.readFile(ext.file);
66
- await fs_extra_1.default.writeFile(path_1.default.join(dir, url), file);
67
- // console.log(url, ext);
68
- return { type: ext.type || 'assets', url };
69
- }
70
- else {
71
- const r = await server.inject({
72
- url,
73
- method: 'get'
74
- });
75
- let file = '';
76
- if (typeof ext === 'boolean') {
77
- file = path_1.default.join(dir, url);
78
- await writeFile(file, r.payload);
79
- return { type: 'assets', url };
80
- }
81
- else if (typeof ext === 'string') {
82
- if (ext === '.html') {
83
- const isIndex = R.last(url) === '/';
84
- const nameFile = isIndex ? url + 'index.html' : url + '.html';
85
- file = path_1.default.join(dir, nameFile);
86
- await writeFile(file, r.payload);
87
- return { type: 'page', url };
88
- }
89
- else {
90
- //
91
- // file = path.join(dir, nameFile);
92
- // await writeFile(file, r.payload);
93
- }
94
- }
95
- return { type: 'asset', url };
96
- }
97
- // logger.success(url);
98
- // await fs.ensureFile(page.static);
99
- // return await fs.writeFile(page.static, r.payload, 'utf8');
100
- };
101
- const injectAssets = (assets) => {
102
- var _a;
103
- //
104
- for (const asset of assets) {
105
- const dirs = asset.dirs;
106
- for (const dir of dirs) {
107
- const dirFiles = fs_extra_1.default.readdirSync(path_1.default.join(asset.relativeTo, dir));
108
- for (const file of dirFiles) {
109
- const pathFile = path_1.default.join(asset.relativeTo, dir, file);
110
- // const nameFile = path.posix.join()
111
- const ext = path_1.default.extname(pathFile);
112
- // eslint-disable-next-line no-extra-boolean-cast
113
- if (!!ext) {
114
- const pathRoute = path_1.default.posix.join('/', asset.prefix, dir, file);
115
- const pathRouteOverride = (_a = asset.override) === null || _a === void 0 ? void 0 : _a[pathRoute];
116
- server.route({
117
- path: pathRouteOverride || pathRoute,
118
- method: 'get',
119
- options: {
120
- plugins: {
121
- generate: {
122
- isAsset: true,
123
- file: pathFile,
124
- type: asset.type,
125
- isRemane: !!pathRouteOverride
126
- }
127
- }
128
- },
129
- handler: {
130
- file: {
131
- path: pathFile,
132
- confine: false
133
- }
134
- }
135
- });
136
- }
137
- else {
138
- injectAssets([
139
- {
140
- dirs: [path_1.default.posix.join(dir, file)],
141
- prefix: asset.prefix,
142
- relativeTo: asset.relativeTo,
143
- override: asset.override,
144
- type: asset.type || file
145
- }
146
- ]);
147
- }
148
- }
149
- }
150
- }
151
- };
152
- const runGenerate = async ({ assets, ommitAssets }) => {
153
- const _assetsApp = [...Object.values(server.app.flow.generate.folders)];
154
- // console.log(_assetsApp);
155
- // console.log(_assetsApp);
156
- const _assets = [...(assets || []), ..._assetsApp];
157
- // console.log(_assets);
158
- // const _extendAssets = [...(Object.values(server.app.))]
159
- injectAssets(_assets);
160
- const dirOutut = getPath(outputDir);
161
- const dirStatic = getPath('static');
162
- const files = getFlowPages();
163
- const pairFiles = R.toPairs(files);
164
- const ommit = ommitAssets || [];
165
- try {
166
- await fs_extra_1.default.remove(dirOutut);
167
- await fs_extra_1.default.copy(dirStatic, dirOutut);
168
- for (const omitFile of ommit) {
169
- await fs_extra_1.default.remove(path_1.default.join(dirOutut, omitFile));
170
- }
171
- const files = await Promise.all(pairFiles.map(async (v) => {
172
- return await createFile(dirOutut, ...v);
173
- }));
174
- const groups = R.groupBy((file) => {
175
- if (file.url.includes('images/')) {
176
- return 'image';
177
- }
178
- else {
179
- return (path_1.default.extname(file.url) || file.type).toLowerCase();
180
- }
181
- }, files);
182
- // console.log(groups);
183
- const _groups = {
184
- pages: 0,
185
- js: 0,
186
- css: 0,
187
- images: 0,
188
- fonts: 0,
189
- others: 0
190
- };
191
- for (const type in groups) {
192
- const cp = (ext) => ext === type;
193
- const qty = groups[type].length;
194
- if (type === 'page') {
195
- _groups.pages += qty;
196
- }
197
- else if (type === '.js') {
198
- _groups.js += qty;
199
- }
200
- else if (type === '.css') {
201
- _groups.css += qty;
202
- }
203
- else if (['.gif', '.png', '.jpg', '.jpeg', 'image'].find(cp)) {
204
- _groups.images += qty;
205
- }
206
- else if (['.woff', '.eot', '.ttf'].find(cp)) {
207
- _groups.fonts += qty;
208
- }
209
- else {
210
- _groups.others += qty;
211
- }
212
- }
213
- for (const type in _groups) {
214
- utils_1.logger.success('%i %s generated', _groups[type], type);
215
- }
216
- return true;
217
- }
218
- catch (error) {
219
- utils_1.logger.error(error);
220
- await fs_extra_1.default.remove(dirOutut);
221
- throw new Error(error);
222
- }
223
- };
224
- return { runGenerate };
225
- // server.route({
226
- // path: '/_generate',
227
- // method: 'get',
228
- // handler: async (req) => {
229
- // }
230
- // });
231
- };
232
- exports.registerGenerate = registerGenerate;
233
- //# sourceMappingURL=generate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,wDAA0B;AAC1B,gDAAwB;AACxB,yCAA2B;AAC3B,mCAAiC;AAO1B,MAAM,gBAAgB,GAAG,CAC9B,MAAc,EACd,EAAE,SAAS,EAAE,OAAO,EAAW,EAC/B,EAAE;IACF,EAAE;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;;QACxB,MAAM,KAAK,GAAoC,EAAE,CAAC;QAElD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACtD,6EAA6E;YAC7E,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;SAC3B;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAE9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,EAAE;YACF,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClD,0BAA0B;YAC1B,MAAM,QAAQ,GAAG,MAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,0CAAE,QAAQ,CAAC;YAElD,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE;gBAC1B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;oBACtB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;iBAC9B;aACF;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAAE,OAAgB,EAAE,EAAE;QACzD,EAAE;QACF,qBAAqB;QAErB,MAAM,kBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,kBAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,EACtB,GAAW,EACX,GAAW,EACX,GAAoB,EACoB,EAAE;QAC1C,oBAAoB;QAEpB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,EAAE;YACF,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9C,yBAAyB;YACzB,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,QAAQ,EAAE,GAAG,EAAE,CAAC;SAC5C;aAAM;YACL,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;gBAC5B,GAAG;gBACH,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YACH,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE;gBAC5B,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC3B,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;gBACjC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;aAChC;iBAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;gBAClC,IAAI,GAAG,KAAK,OAAO,EAAE;oBACnB,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;oBACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC;oBAC9D,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;oBAChC,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;oBACjC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;iBAC9B;qBAAM;oBACL,EAAE;oBACF,mCAAmC;oBACnC,oCAAoC;iBACrC;aACF;YACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;SAC/B;QACD,uBAAuB;QAEvB,oCAAoC;QACpC,6DAA6D;IAC/D,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,MAAwB,EAAE,EAAE;;QAChD,EAAE;QACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,MAAM,QAAQ,GAAG,kBAAE,CAAC,WAAW,CAAC,cAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;gBAClE,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;oBAC3B,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;oBACxD,qCAAqC;oBAErC,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACnC,iDAAiD;oBACjD,IAAI,CAAC,CAAC,GAAG,EAAE;wBACT,MAAM,SAAS,GAAG,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;wBAChE,MAAM,iBAAiB,GAAG,MAAA,KAAK,CAAC,QAAQ,0CAAG,SAAS,CAAC,CAAC;wBACtD,MAAM,CAAC,KAAK,CAAC;4BACX,IAAI,EAAE,iBAAiB,IAAI,SAAS;4BACpC,MAAM,EAAE,KAAK;4BACb,OAAO,EAAE;gCACP,OAAO,EAAE;oCACP,QAAQ,EAAE;wCACR,OAAO,EAAE,IAAI;wCACb,IAAI,EAAE,QAAQ;wCACd,IAAI,EAAE,KAAK,CAAC,IAAI;wCAChB,QAAQ,EAAE,CAAC,CAAC,iBAAiB;qCAC9B;iCACF;6BACF;4BACD,OAAO,EAAE;gCACP,IAAI,EAAE;oCACJ,IAAI,EAAE,QAAQ;oCACd,OAAO,EAAE,KAAK;iCACf;6BACF;yBACF,CAAC,CAAC;qBACJ;yBAAM;wBACL,YAAY,CAAC;4BACX;gCACE,IAAI,EAAE,CAAC,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gCAClC,MAAM,EAAE,KAAK,CAAC,MAAM;gCACpB,UAAU,EAAE,KAAK,CAAC,UAAU;gCAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gCACxB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;6BACzB;yBACF,CAAC,CAAC;qBACJ;iBACF;aACF;SACF;IACH,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAwB,EAAE,EAAE;QAC1E,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACxE,2BAA2B;QAC3B,2BAA2B;QAE3B,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC;QACnD,wBAAwB;QAExB,0DAA0D;QAC1D,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,WAAW,IAAI,EAAE,CAAC;QAEhC,IAAI;YACF,MAAM,kBAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,MAAM,kBAAE,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACnC,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;gBAC5B,MAAM,kBAAE,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;aAChD;YACD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;gBACxB,OAAO,MAAM,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,CACH,CAAC;YAEF,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAChC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;oBAChC,OAAO,OAAO,CAAC;iBAChB;qBAAM;oBACL,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;iBAC5D;YACH,CAAC,EAAE,KAAK,CAAC,CAAC;YACV,uBAAuB;YACvB,MAAM,OAAO,GAAG;gBACd,KAAK,EAAE,CAAC;gBACR,EAAE,EAAE,CAAC;gBACL,GAAG,EAAE,CAAC;gBACN,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;aACV,CAAC;YAEF,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;gBACzB,MAAM,EAAE,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC;gBACzC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;gBAChC,IAAI,IAAI,KAAK,MAAM,EAAE;oBACnB,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;iBACtB;qBAAM,IAAI,IAAI,KAAK,KAAK,EAAE;oBACzB,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC;iBACnB;qBAAM,IAAI,IAAI,KAAK,MAAM,EAAE;oBAC1B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC;iBACpB;qBAAM,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;oBAC9D,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC;iBACvB;qBAAM,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;oBAC7C,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;iBACtB;qBAAM;oBACL,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC;iBACvB;aACF;YACD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;gBAC1B,cAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAe,CAAC,EAAE,IAAI,CAAC,CAAC;aACnE;YAED,OAAO,IAAI,CAAC;SACb;QAAC,OAAO,KAAK,EAAE;YACd,cAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,kBAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;SACxB;IACH,CAAC,CAAC;IAEF,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,iBAAiB;IACjB,wBAAwB;IACxB,mBAAmB;IACnB,8BAA8B;IAE9B,MAAM;IACN,MAAM;AACR,CAAC,CAAC;AAzNW,QAAA,gBAAgB,oBAyN3B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"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"}
File without changes