@monkeyplus/flow 3.2.6 → 3.3.0-alpha.1

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.
Files changed (45) hide show
  1. package/dist/decorators.d.ts +5 -0
  2. package/dist/decorators.js +105 -0
  3. package/dist/decorators.js.map +1 -0
  4. package/dist/generate.d.ts +5 -3
  5. package/dist/generate.js +185 -184
  6. package/dist/generate.js.map +1 -1
  7. package/dist/generator/generator.d.ts +8 -0
  8. package/dist/generator/generator.js +237 -0
  9. package/dist/generator/generator.js.map +1 -0
  10. package/dist/generator/index.d.ts +8 -0
  11. package/dist/generator/index.js +232 -0
  12. package/dist/generator/index.js.map +1 -0
  13. package/dist/generator.d.ts +8 -0
  14. package/dist/generator.js +237 -0
  15. package/dist/generator.js.map +1 -0
  16. package/dist/helper.js +10 -3
  17. package/dist/helper.js.map +1 -1
  18. package/dist/helpers/handler.d.ts +2 -0
  19. package/dist/helpers/handler.js +122 -0
  20. package/dist/helpers/handler.js.map +1 -0
  21. package/dist/helpers/helper.d.ts +2 -0
  22. package/dist/helpers/helper.js +122 -0
  23. package/dist/helpers/helper.js.map +1 -0
  24. package/dist/index.d.ts +17 -4
  25. package/dist/index.js +74 -276
  26. package/dist/index.js.map +1 -1
  27. package/dist/lifeCircle.d.ts +5 -0
  28. package/dist/lifeCircle.js +81 -0
  29. package/dist/lifeCircle.js.map +1 -0
  30. package/dist/pages.d.ts +2 -2
  31. package/dist/pages.js +4 -5
  32. package/dist/pages.js.map +1 -1
  33. package/dist/runMethods.d.ts +9 -0
  34. package/dist/runMethods.js +60 -0
  35. package/dist/runMethods.js.map +1 -0
  36. package/dist/serverInfo.d.ts +7 -0
  37. package/dist/serverInfo.js +36 -0
  38. package/dist/serverInfo.js.map +1 -0
  39. package/dist/utils/index.d.ts +1 -0
  40. package/dist/utils/index.js +3 -1
  41. package/dist/utils/index.js.map +1 -1
  42. package/package.json +3 -3
  43. package/types/flow.d.ts +40 -15
  44. package/types/index.d.ts +4 -2
  45. package/types/interfaces.d.ts +5 -0
@@ -0,0 +1,237 @@
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
+ const fs_extra_1 = __importDefault(require("fs-extra"));
26
+ const path_1 = __importDefault(require("path"));
27
+ const R = __importStar(require("ramda"));
28
+ const utils_1 = require("./utils");
29
+ exports.default = {
30
+ register: (server) => {
31
+ //
32
+ // import {} from
33
+ const { configs, helpers } = server.plugins.flow;
34
+ const getFlowPages = () => {
35
+ var _a;
36
+ const files = {};
37
+ const pages = Object.values(server.app.flow.pages.statics);
38
+ for (const page of pages) {
39
+ // const url = R.last(page.url) === '/' ? page.url + 'index.html' : page.url;
40
+ files[page.url] = '.html';
41
+ }
42
+ const routes = server.table();
43
+ for (const route of routes) {
44
+ //
45
+ const isDynamic = /\{url?(.+)\}/.test(route.path);
46
+ // console.log(isDynamic);
47
+ const generate = (_a = route.settings.plugins) === null || _a === void 0 ? void 0 : _a.generate;
48
+ if (!isDynamic && generate) {
49
+ if (!files[route.path]) {
50
+ files[route.path] = generate;
51
+ }
52
+ }
53
+ }
54
+ return files;
55
+ };
56
+ const writeFile = async (file, payload) => {
57
+ //
58
+ // console.log(file);
59
+ await fs_extra_1.default.ensureFile(file);
60
+ await fs_extra_1.default.writeFile(file, payload, 'utf8');
61
+ };
62
+ const createFile = async (dir, url, ext) => {
63
+ // console.log(url);
64
+ if (typeof ext === 'object') {
65
+ //
66
+ const dirFile = path_1.default.dirname(url);
67
+ await fs_extra_1.default.ensureDir(path_1.default.join(dir, dirFile));
68
+ const file = await fs_extra_1.default.readFile(ext.file);
69
+ await fs_extra_1.default.writeFile(path_1.default.join(dir, url), file);
70
+ // console.log(url, ext);
71
+ return { type: ext.type || 'assets', url };
72
+ }
73
+ else {
74
+ const r = await server.inject({
75
+ url,
76
+ method: 'get'
77
+ });
78
+ let file = '';
79
+ if (typeof ext === 'boolean') {
80
+ file = path_1.default.join(dir, url);
81
+ await writeFile(file, r.payload);
82
+ return { type: 'assets', url };
83
+ }
84
+ else if (typeof ext === 'string') {
85
+ if (ext === '.html') {
86
+ const isIndex = R.last(url) === '/';
87
+ const nameFile = isIndex ? url + 'index.html' : url + '.html';
88
+ file = path_1.default.join(dir, nameFile);
89
+ await writeFile(file, r.payload);
90
+ return { type: 'page', url };
91
+ }
92
+ else {
93
+ //
94
+ // file = path.join(dir, nameFile);
95
+ // await writeFile(file, r.payload);
96
+ }
97
+ }
98
+ return { type: 'asset', url };
99
+ }
100
+ // logger.success(url);
101
+ // await fs.ensureFile(page.static);
102
+ // return await fs.writeFile(page.static, r.payload, 'utf8');
103
+ };
104
+ const injectAssets = (assets) => {
105
+ var _a;
106
+ //
107
+ for (const asset of assets) {
108
+ const dirs = asset.dirs;
109
+ for (const dir of dirs) {
110
+ const dirFiles = fs_extra_1.default.readdirSync(path_1.default.join(asset.relativeTo, dir));
111
+ for (const file of dirFiles) {
112
+ const pathFile = path_1.default.join(asset.relativeTo, dir, file);
113
+ // const nameFile = path.posix.join()
114
+ const ext = path_1.default.extname(pathFile);
115
+ // eslint-disable-next-line no-extra-boolean-cast
116
+ if (!!ext) {
117
+ const pathRoute = path_1.default.posix.join('/', asset.prefix, dir, file);
118
+ const pathRouteOverride = (_a = asset.override) === null || _a === void 0 ? void 0 : _a[pathRoute];
119
+ server.route({
120
+ path: pathRouteOverride || pathRoute,
121
+ method: 'get',
122
+ options: {
123
+ plugins: {
124
+ generate: {
125
+ isAsset: true,
126
+ file: pathFile,
127
+ type: asset.type,
128
+ isRemane: !!pathRouteOverride
129
+ }
130
+ }
131
+ },
132
+ handler: {
133
+ file: {
134
+ path: pathFile,
135
+ confine: false
136
+ }
137
+ }
138
+ });
139
+ }
140
+ else {
141
+ injectAssets([
142
+ {
143
+ dirs: [path_1.default.posix.join(dir, file)],
144
+ prefix: asset.prefix,
145
+ relativeTo: asset.relativeTo,
146
+ override: asset.override,
147
+ type: asset.type || file
148
+ }
149
+ ]);
150
+ }
151
+ }
152
+ }
153
+ }
154
+ };
155
+ const runGenerate = async ({ assets, ommitAssets }) => {
156
+ var _a;
157
+ const _assetsApp = [...Object.values(server.app.flow.generate.folders)];
158
+ // console.log(_assetsApp);
159
+ // console.log(_assetsApp);
160
+ const _assets = [...(assets || []), ..._assetsApp];
161
+ // console.log(_assets);
162
+ // const _extendAssets = [...(Object.values(server.app.))]
163
+ injectAssets(_assets);
164
+ const dirOutut = helpers.getPath((_a = configs.outputDir) !== null && _a !== void 0 ? _a : 'build');
165
+ const dirStatic = helpers.getPath('static');
166
+ const files = getFlowPages();
167
+ const pairFiles = R.toPairs(files);
168
+ const ommit = ommitAssets || [];
169
+ try {
170
+ await fs_extra_1.default.remove(dirOutut);
171
+ await fs_extra_1.default.copy(dirStatic, dirOutut);
172
+ for (const omitFile of ommit) {
173
+ await fs_extra_1.default.remove(path_1.default.join(dirOutut, omitFile));
174
+ }
175
+ const files = await Promise.all(pairFiles.map(async (v) => {
176
+ return await createFile(dirOutut, ...v);
177
+ }));
178
+ const groups = R.groupBy((file) => {
179
+ if (file.url.includes('images/')) {
180
+ return 'image';
181
+ }
182
+ else {
183
+ return (path_1.default.extname(file.url) || file.type).toLowerCase();
184
+ }
185
+ }, files);
186
+ // console.log(groups);
187
+ const _groups = {
188
+ pages: 0,
189
+ js: 0,
190
+ css: 0,
191
+ images: 0,
192
+ fonts: 0,
193
+ others: 0
194
+ };
195
+ for (const type in groups) {
196
+ const cp = (ext) => ext === type;
197
+ const qty = groups[type].length;
198
+ if (type === 'page') {
199
+ _groups.pages += qty;
200
+ }
201
+ else if (type === '.js') {
202
+ _groups.js += qty;
203
+ }
204
+ else if (type === '.css') {
205
+ _groups.css += qty;
206
+ }
207
+ else if (['.gif', '.png', '.jpg', '.jpeg', 'image'].find(cp)) {
208
+ _groups.images += qty;
209
+ }
210
+ else if (['.woff', '.eot', '.ttf'].find(cp)) {
211
+ _groups.fonts += qty;
212
+ }
213
+ else {
214
+ _groups.others += qty;
215
+ }
216
+ }
217
+ for (const type in _groups) {
218
+ utils_1.logger.success('%i %s generated', _groups[type], type);
219
+ }
220
+ // return void 0;
221
+ }
222
+ catch (error) {
223
+ utils_1.logger.error(error);
224
+ await fs_extra_1.default.remove(dirOutut);
225
+ throw new Error(error);
226
+ }
227
+ };
228
+ return { runGenerate };
229
+ // server.route({
230
+ // path: '/_generate',
231
+ // method: 'get',
232
+ // handler: async (req) => {
233
+ // }
234
+ // });
235
+ }
236
+ };
237
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
package/dist/helper.js CHANGED
@@ -26,10 +26,11 @@ const handlerPage = async (req, h) => {
26
26
  const { configs } = req.server.plugins.flow;
27
27
  const { flow } = req.route.settings.app;
28
28
  // console.log(req.server.app.flow.urls);
29
+ const { dynamic } = req.app;
29
30
  // console.log(req.app);
30
31
  const local = {};
31
32
  const global = {};
32
- const page = {
33
+ const page = R.clone({
33
34
  ...R.pick(['publicPath', 'path'], flow.urlObject),
34
35
  ...R.pick([
35
36
  'name',
@@ -40,8 +41,14 @@ const handlerPage = async (req, h) => {
40
41
  'bundle',
41
42
  'language'
42
43
  ], flow)
43
- };
44
- const dataContent = {};
44
+ });
45
+ if (dynamic) {
46
+ Object.assign(page, {
47
+ path: dynamic.url,
48
+ ...R.omit(['url'], dynamic)
49
+ });
50
+ }
51
+ // const dataContent = {};
45
52
  // if (req.params.url) {
46
53
  // }
47
54
  const utils = {
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Lifecycle } from '@hapi/hapi';
2
+ export declare const handlerPage: Lifecycle.Method;
@@ -0,0 +1,122 @@
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.handlerPage = void 0;
23
+ const R = __importStar(require("ramda"));
24
+ const handlerPage = async (req, h) => {
25
+ var _a;
26
+ const { configs } = req.server.plugins.flow;
27
+ const { flow } = req.route.settings.app;
28
+ // console.log(req.server.app.flow.urls);
29
+ const { dynamic } = req.app;
30
+ // console.log(req.app);
31
+ const local = {};
32
+ const global = {};
33
+ const page = R.clone({
34
+ ...R.pick(['publicPath', 'path'], flow.urlObject),
35
+ ...R.pick([
36
+ 'name',
37
+ 'localeName',
38
+ 'locale',
39
+ 'level',
40
+ 'template',
41
+ 'bundle',
42
+ 'language'
43
+ ], flow)
44
+ });
45
+ if (dynamic) {
46
+ Object.assign(page, {
47
+ path: dynamic.url,
48
+ ...R.omit(['url'], dynamic)
49
+ });
50
+ }
51
+ // const dataContent = {};
52
+ // if (req.params.url) {
53
+ // }
54
+ const utils = {
55
+ ...req.plugins.flow.utils,
56
+ getLocalUrl: (name) => {
57
+ return h.getUrl(flow.locale, name);
58
+ },
59
+ getUrl: h.getUrl
60
+ };
61
+ const seo = {
62
+ ...flow.seo,
63
+ ...req.pre.seo,
64
+ url: configs.url,
65
+ pageUrl: `${configs.url}${req.url.pathname}`
66
+ // utils
67
+ };
68
+ const contextMethod = {
69
+ seo,
70
+ req,
71
+ h,
72
+ page,
73
+ extensions: req.plugins.flow.extensions,
74
+ global: req.plugins.flow.global,
75
+ utils: utils
76
+ };
77
+ const extraContexts = req.plugins.flow.context;
78
+ for (const key in extraContexts) {
79
+ if ((_a = extraContexts[key]) === null || _a === void 0 ? void 0 : _a.method) {
80
+ //
81
+ const assign = extraContexts[key].assign;
82
+ const data = await extraContexts[key].method(contextMethod);
83
+ const _context = { [key]: data };
84
+ if (assign === 'global') {
85
+ Object.assign(global, _context);
86
+ }
87
+ else if (assign === 'local') {
88
+ Object.assign(local, _context);
89
+ }
90
+ else {
91
+ Object.assign(seo, _context);
92
+ }
93
+ }
94
+ }
95
+ if (flow.runSharedContext) {
96
+ const _context = await flow.runSharedContext(contextMethod);
97
+ Object.assign(local, _context);
98
+ }
99
+ //
100
+ if (flow.runLocalContext) {
101
+ const _context = await flow.runLocalContext(contextMethod);
102
+ Object.assign(local, _context);
103
+ }
104
+ const context = {
105
+ view: flow.view,
106
+ context: Object.freeze({ ...local, ...req.plugins.flow.local }),
107
+ seo,
108
+ page,
109
+ utils: {},
110
+ hapi: { req, h },
111
+ global: Object.freeze({ ...global, ...req.plugins.flow.global })
112
+ };
113
+ if (req.query.context) {
114
+ context.utils = Object.keys(utils);
115
+ context.hapi = ['req', 'h'];
116
+ return context;
117
+ }
118
+ context.utils = utils;
119
+ return h.view(`${configs.dirTemplates}${flow.view.template}`, context);
120
+ };
121
+ exports.handlerPage = handlerPage;
122
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/helpers/handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Lifecycle } from '@hapi/hapi';
2
+ export declare const handlerPage: Lifecycle.Method;
@@ -0,0 +1,122 @@
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.handlerPage = void 0;
23
+ const R = __importStar(require("ramda"));
24
+ const handlerPage = async (req, h) => {
25
+ var _a;
26
+ const { configs } = req.server.plugins.flow;
27
+ const { flow } = req.route.settings.app;
28
+ // console.log(req.server.app.flow.urls);
29
+ const { dynamic } = req.app;
30
+ // console.log(req.app);
31
+ const local = {};
32
+ const global = {};
33
+ const page = R.clone({
34
+ ...R.pick(['publicPath', 'path'], flow.urlObject),
35
+ ...R.pick([
36
+ 'name',
37
+ 'localeName',
38
+ 'locale',
39
+ 'level',
40
+ 'template',
41
+ 'bundle',
42
+ 'language'
43
+ ], flow)
44
+ });
45
+ if (dynamic) {
46
+ Object.assign(page, {
47
+ path: dynamic.url,
48
+ ...R.omit(['url'], dynamic)
49
+ });
50
+ }
51
+ // const dataContent = {};
52
+ // if (req.params.url) {
53
+ // }
54
+ const utils = {
55
+ ...req.plugins.flow.utils,
56
+ getLocalUrl: (name) => {
57
+ return h.getUrl(flow.locale, name);
58
+ },
59
+ getUrl: h.getUrl
60
+ };
61
+ const seo = {
62
+ ...flow.seo,
63
+ ...req.pre.seo,
64
+ url: configs.url,
65
+ pageUrl: `${configs.url}${req.url.pathname}`
66
+ // utils
67
+ };
68
+ const contextMethod = {
69
+ seo,
70
+ req,
71
+ h,
72
+ page,
73
+ extensions: req.plugins.flow.extensions,
74
+ global: req.plugins.flow.global,
75
+ utils: utils
76
+ };
77
+ const extraContexts = req.plugins.flow.context;
78
+ for (const key in extraContexts) {
79
+ if ((_a = extraContexts[key]) === null || _a === void 0 ? void 0 : _a.method) {
80
+ //
81
+ const assign = extraContexts[key].assign;
82
+ const data = await extraContexts[key].method(contextMethod);
83
+ const _context = { [key]: data };
84
+ if (assign === 'global') {
85
+ Object.assign(global, _context);
86
+ }
87
+ else if (assign === 'local') {
88
+ Object.assign(local, _context);
89
+ }
90
+ else {
91
+ Object.assign(seo, _context);
92
+ }
93
+ }
94
+ }
95
+ if (flow.runSharedContext) {
96
+ const _context = await flow.runSharedContext(contextMethod);
97
+ Object.assign(local, _context);
98
+ }
99
+ //
100
+ if (flow.runLocalContext) {
101
+ const _context = await flow.runLocalContext(contextMethod);
102
+ Object.assign(local, _context);
103
+ }
104
+ const context = {
105
+ view: flow.view,
106
+ context: Object.freeze({ ...local, ...req.plugins.flow.local }),
107
+ seo,
108
+ page,
109
+ utils: {},
110
+ hapi: { req, h },
111
+ global: Object.freeze({ ...global, ...req.plugins.flow.global })
112
+ };
113
+ if (req.query.context) {
114
+ context.utils = Object.keys(utils);
115
+ context.hapi = ['req', 'h'];
116
+ return context;
117
+ }
118
+ context.utils = utils;
119
+ return h.view(`${configs.dirTemplates}${flow.view.template}`, context);
120
+ };
121
+ exports.handlerPage = handlerPage;
122
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/helpers/helper.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,7 @@
1
1
  import { Plugin } from '@hapi/hapi';
2
2
  import { PageInfo } from '@monkeyplus/flow-core';
3
- import { Flow, FlowOptions, GenerateOptions, FlowExtensions } from "../types";
3
+ import { Flow, FlowOptions, GenerateOptions, FlowExtensions, OptionsDynamicPages, FlowServerMethods } from "../types";
4
4
  import { definePage } from './pages';
5
- export { definePage };
6
- export { RunDefinePage, OptionsHapiPage, RunPreDefinePage, FlowOptions, FlowOptionPlugins, GenerateFolder, Extension, Flow, FlowExtensions, FlowPluginExtension, FlowPluginUtils, FlowPluginGlobal, FlowPluginLocal, Contexts, FlowContextPage, FlowContextSeo, FlowContextView, ContextHandler, FlowEngines, FlowStatePlugins } from "../types";
7
5
  export declare const plugin: Plugin<FlowOptions>;
8
6
  declare module '@hapi/hapi' {
9
7
  interface ServerApplicationState {
@@ -25,16 +23,31 @@ declare module '@hapi/hapi' {
25
23
  flow?: {
26
24
  proxy?: boolean;
27
25
  extensions?: FlowExtensions;
26
+ dynamic?: OptionsDynamicPages;
28
27
  };
29
28
  generate?: GenerateOptions;
30
29
  }
31
30
  interface Server {
32
31
  flow: Flow.Decorate;
33
32
  }
33
+ interface ServerMethods {
34
+ flow: FlowServerMethods;
35
+ }
36
+ interface RequestApplicationState {
37
+ dynamic: any;
38
+ }
34
39
  interface PluginProperties {
35
40
  flow: {
36
41
  configs: Flow.Configs;
37
- getPath: (...paths: string[]) => string;
42
+ helpers: {
43
+ getPath: (...paths: string[]) => string;
44
+ addRedirect: (key: string, urlPath: string) => void;
45
+ addStaticPage: (key: string, url: Flow.Page) => void;
46
+ addDynamicPages: (key: string, method: Flow.DynamicPages['']) => void;
47
+ };
48
+ pages: () => Flow.StaticPages;
38
49
  };
39
50
  }
40
51
  }
52
+ export { definePage };
53
+ export { RunDefinePage, OptionsHapiPage, RunPreDefinePage, FlowOptions, FlowOptionPlugins, GenerateFolder, Extension, Flow, FlowExtensions, FlowPluginExtension, FlowPluginUtils, FlowPluginGlobal, FlowPluginLocal, Contexts, FlowContextPage, FlowContextSeo, FlowContextView, ContextHandler, FlowEngines, OptionsDynamicPages, FlowStatePlugins, FlowServerMethods } from "../types";