piral-core 1.12.2 → 1.12.3-beta.4cfc2dd
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/lib/codegen.js +27 -11
- package/lib/defaults/DefaultRouteSwitch_v8.d.ts +3 -0
- package/lib/defaults/DefaultRouteSwitch_v8.js +29 -0
- package/lib/defaults/DefaultRouteSwitch_v8.js.map +1 -0
- package/lib/defaults/DefaultRouter_v8.d.ts +3 -0
- package/lib/defaults/DefaultRouter_v8.js +8 -0
- package/lib/defaults/DefaultRouter_v8.js.map +1 -0
- package/lib/defaults/navigator_v8.d.ts +6 -0
- package/lib/defaults/navigator_v8.js +84 -0
- package/lib/defaults/navigator_v8.js.map +1 -0
- package/lib/tools/codegen.js +10 -3
- package/lib/tools/codegen.js.map +1 -1
- package/lib/tools/debugger.d.ts +1 -1
- package/lib/tools/debugger.js +1 -1
- package/lib/tools/debugger.js.map +1 -1
- package/lib/tools/emulator.d.ts +1 -1
- package/lib/tools/emulator.js.map +1 -1
- package/package.json +3 -3
- package/src/defaults/DefaultRouteSwitch_v8.tsx +49 -0
- package/src/defaults/DefaultRouter_v8.tsx +9 -0
- package/src/defaults/navigator_v8.tsx +97 -0
- package/src/tools/codegen.ts +14 -5
- package/src/tools/debugger.ts +3 -2
- package/src/tools/emulator.ts +2 -1
package/lib/codegen.js
CHANGED
|
@@ -7145,12 +7145,20 @@ module.exports = __toCommonJS(codegen_exports);
|
|
|
7145
7145
|
var fs = __toESM(require_graceful_fs());
|
|
7146
7146
|
var import_enhanced_resolve = __toESM(require_lib2());
|
|
7147
7147
|
var nodeFileSystem = new import_enhanced_resolve.CachedInputFileSystem(fs, 100);
|
|
7148
|
+
var isProduction = process.env.NODE_ENV === "production";
|
|
7148
7149
|
var nodeContext = {
|
|
7149
7150
|
environments: ["node+es3+es5+process+native"]
|
|
7150
7151
|
};
|
|
7151
7152
|
var enhancedResolve = import_enhanced_resolve.ResolverFactory.createResolver({
|
|
7152
7153
|
aliasFields: ["browser"],
|
|
7153
|
-
conditionNames: [
|
|
7154
|
+
conditionNames: [
|
|
7155
|
+
"import",
|
|
7156
|
+
"module",
|
|
7157
|
+
"webpack",
|
|
7158
|
+
...isProduction ? ["default"] : ["development"],
|
|
7159
|
+
"browser",
|
|
7160
|
+
"default"
|
|
7161
|
+
],
|
|
7154
7162
|
extensions: [".js", ".jsx", ".mjs", ".ts", ".tsx", ".json"],
|
|
7155
7163
|
exportsFields: ["exports"],
|
|
7156
7164
|
importsFields: ["imports"],
|
|
@@ -7167,25 +7175,25 @@ function getModulePath(root, moduleName) {
|
|
|
7167
7175
|
}
|
|
7168
7176
|
|
|
7169
7177
|
// src/tools/codegen.ts
|
|
7170
|
-
var
|
|
7171
|
-
var
|
|
7178
|
+
var import_node_fs = require("node:fs");
|
|
7179
|
+
var import_node_path = require("node:path");
|
|
7172
7180
|
function findPackagePath(moduleDir) {
|
|
7173
7181
|
const packageJson = "package.json";
|
|
7174
|
-
const packagePath = (0,
|
|
7175
|
-
if ((0,
|
|
7182
|
+
const packagePath = (0, import_node_path.resolve)(moduleDir, packageJson);
|
|
7183
|
+
if ((0, import_node_fs.existsSync)(packagePath)) {
|
|
7176
7184
|
return packagePath;
|
|
7177
7185
|
}
|
|
7178
|
-
const newDir = (0,
|
|
7186
|
+
const newDir = (0, import_node_path.resolve)(moduleDir, "..");
|
|
7179
7187
|
if (newDir !== moduleDir) {
|
|
7180
7188
|
return findPackagePath(newDir);
|
|
7181
7189
|
}
|
|
7182
7190
|
return void 0;
|
|
7183
7191
|
}
|
|
7184
7192
|
function getPackageJson(root, packageName) {
|
|
7185
|
-
const moduleDir = (0,
|
|
7193
|
+
const moduleDir = (0, import_node_path.dirname)(getModulePath(root, packageName));
|
|
7186
7194
|
try {
|
|
7187
7195
|
const packagePath = findPackagePath(moduleDir);
|
|
7188
|
-
const content = (0,
|
|
7196
|
+
const content = (0, import_node_fs.readFileSync)(packagePath, "utf8");
|
|
7189
7197
|
return JSON.parse(content) || {};
|
|
7190
7198
|
} catch {
|
|
7191
7199
|
return {};
|
|
@@ -7226,8 +7234,8 @@ function getIdentifiers(root, packageName) {
|
|
|
7226
7234
|
function getModulePathOrDefault(root, origin, name) {
|
|
7227
7235
|
try {
|
|
7228
7236
|
const absPath = getModulePath(root, name);
|
|
7229
|
-
const relPath = (0,
|
|
7230
|
-
const path = relPath.split(
|
|
7237
|
+
const relPath = (0, import_node_path.relative)(origin, absPath);
|
|
7238
|
+
const path = relPath.split(import_node_path.sep).join(import_node_path.posix.sep);
|
|
7231
7239
|
return path;
|
|
7232
7240
|
} catch {
|
|
7233
7241
|
return name;
|
|
@@ -7325,12 +7333,20 @@ function createDefaultState(imports, exports2, opts) {
|
|
|
7325
7333
|
`import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v6.js';`,
|
|
7326
7334
|
`import { createRedirect, createNavigation, useCurrentNavigation } from 'piral-core/${cat}/defaults/navigator_v6.js'`
|
|
7327
7335
|
);
|
|
7328
|
-
} else {
|
|
7336
|
+
} else if (router.compat === 7) {
|
|
7329
7337
|
imports.push(
|
|
7330
7338
|
`import { DefaultRouter } from 'piral-core/${cat}/defaults/DefaultRouter_v7.js';`,
|
|
7331
7339
|
`import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v7.js';`,
|
|
7332
7340
|
`import { createRedirect, createNavigation, useCurrentNavigation } from 'piral-core/${cat}/defaults/navigator_v7.js'`
|
|
7333
7341
|
);
|
|
7342
|
+
} else if (router.compat === 8) {
|
|
7343
|
+
imports.push(
|
|
7344
|
+
`import { DefaultRouter } from 'piral-core/${cat}/defaults/DefaultRouter_v8.js';`,
|
|
7345
|
+
`import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v8.js';`,
|
|
7346
|
+
`import { createRedirect, createNavigation, useCurrentNavigation } from 'piral-core/${cat}/defaults/navigator_v8.js'`
|
|
7347
|
+
);
|
|
7348
|
+
} else {
|
|
7349
|
+
throw new Error(`Unsupported router version: ${router.name} v${router.compat}`);
|
|
7334
7350
|
}
|
|
7335
7351
|
exports2.push(`
|
|
7336
7352
|
export { createRedirect, createNavigation };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
//@ts-ignore
|
|
3
|
+
import { Routes, Route, useParams, useLocation, useNavigate } from 'react-router';
|
|
4
|
+
function getHistory(navigate) {
|
|
5
|
+
return {
|
|
6
|
+
push(path, state) {
|
|
7
|
+
navigate(path, { replace: false, state });
|
|
8
|
+
},
|
|
9
|
+
replace(path, state) {
|
|
10
|
+
navigate(path, { replace: true, state });
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
const RouteContentWrapper = ({ Component }) => {
|
|
15
|
+
const navigate = useNavigate();
|
|
16
|
+
const params = useParams();
|
|
17
|
+
const loc = useLocation();
|
|
18
|
+
return (React.createElement(Component, { history: getHistory(navigate), location: loc, match: { params, isExact: true, path: loc.pathname, url: location.href } }));
|
|
19
|
+
};
|
|
20
|
+
export const DefaultRouteSwitch = ({ paths, NotFound, ...props }) => {
|
|
21
|
+
return (React.createElement(Routes, { ...props },
|
|
22
|
+
paths.map(({ path, Component }) => (
|
|
23
|
+
//@ts-ignore
|
|
24
|
+
React.createElement(Route, { key: path, path: path, element: React.createElement(RouteContentWrapper, { Component: Component }) }))),
|
|
25
|
+
//@ts-ignore
|
|
26
|
+
React.createElement(Route, { path: "*", element: React.createElement(NotFound, null) })));
|
|
27
|
+
};
|
|
28
|
+
DefaultRouteSwitch.displayName = 'DefaultRouteSwitch';
|
|
29
|
+
//# sourceMappingURL=DefaultRouteSwitch_v8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultRouteSwitch_v8.js","sourceRoot":"","sources":["../../src/defaults/DefaultRouteSwitch_v8.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,YAAY;AACZ,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGlF,SAAS,UAAU,CAAC,QAAa;IAC/B,OAAO;QACL,IAAI,CAAC,IAAY,EAAE,KAAU;YAC3B,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,CAAC,IAAY,EAAE,KAAU;YAC9B,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC;AACJ,CAAC;AAMD,MAAM,mBAAmB,GAAuC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;IAChF,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAE1B,OAAO,CACL,oBAAC,SAAS,IACR,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,EAC7B,QAAQ,EAAE,GAAG,EACb,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,GACxE,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAA+B,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAC9F,OAAO,CACL,oBAAC,MAAM,OAAK,KAAK;QACd,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QAClC,YAAY;QACZ,oBAAC,KAAK,IAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAC,mBAAmB,IAAC,SAAS,EAAE,SAAS,GAAI,GAAI,CACzF,CAAC;QAEA,YAAY;QACZ,oBAAC,KAAK,IAAC,IAAI,EAAC,GAAG,EAAC,OAAO,EAAE,oBAAC,QAAQ,OAAG,GAAI,CAEpC,CACV,CAAC;AACJ,CAAC,CAAC;AACF,kBAAkB,CAAC,WAAW,GAAG,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
//@ts-ignore
|
|
3
|
+
import { BrowserRouter } from 'react-router';
|
|
4
|
+
export const DefaultRouter = ({ children, publicPath }) => {
|
|
5
|
+
return React.createElement(BrowserRouter, { basename: publicPath }, children);
|
|
6
|
+
};
|
|
7
|
+
DefaultRouter.displayName = 'DefaultRouter';
|
|
8
|
+
//# sourceMappingURL=DefaultRouter_v8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultRouter_v8.js","sourceRoot":"","sources":["../../src/defaults/DefaultRouter_v8.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,MAAM,CAAC,MAAM,aAAa,GAA0B,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;IAC/E,OAAO,oBAAC,aAAa,IAAC,QAAQ,EAAE,UAAU,IAAG,QAAQ,CAAiB,CAAC;AACzE,CAAC,CAAC;AACF,aAAa,CAAC,WAAW,GAAG,eAAe,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { NavigationApi } from '../types';
|
|
3
|
+
export declare function useRouterContext(): unknown;
|
|
4
|
+
export declare function useCurrentNavigation(): void;
|
|
5
|
+
export declare function createRedirect(to: string): () => React.JSX.Element;
|
|
6
|
+
export declare function createNavigation(publicPath: string): NavigationApi;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
//@ts-ignore
|
|
3
|
+
import { UNSAFE_NavigationContext as RouterContext, Navigate, useLocation } from 'react-router';
|
|
4
|
+
let _nav;
|
|
5
|
+
const _noop = () => { };
|
|
6
|
+
export function useRouterContext() {
|
|
7
|
+
return React.useContext(RouterContext);
|
|
8
|
+
}
|
|
9
|
+
export function useCurrentNavigation() {
|
|
10
|
+
const ctx = useRouterContext();
|
|
11
|
+
const location = useLocation();
|
|
12
|
+
React.useEffect(() => {
|
|
13
|
+
if (_nav) {
|
|
14
|
+
window.dispatchEvent(new CustomEvent('piral-navigate', {
|
|
15
|
+
detail: {
|
|
16
|
+
location,
|
|
17
|
+
},
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
}, [location]);
|
|
21
|
+
React.useEffect(() => {
|
|
22
|
+
_nav = ctx.navigator;
|
|
23
|
+
return () => {
|
|
24
|
+
_nav = undefined;
|
|
25
|
+
};
|
|
26
|
+
}, []);
|
|
27
|
+
}
|
|
28
|
+
export function createRedirect(to) {
|
|
29
|
+
return () => React.createElement(Navigate, { to: to });
|
|
30
|
+
}
|
|
31
|
+
export function createNavigation(publicPath) {
|
|
32
|
+
const enhance = (info) => ({
|
|
33
|
+
...info,
|
|
34
|
+
location: {
|
|
35
|
+
get href() {
|
|
36
|
+
return _nav.createHref(info.location);
|
|
37
|
+
},
|
|
38
|
+
...info.location,
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
return {
|
|
42
|
+
get path() {
|
|
43
|
+
const loc = _nav ? _nav.location : location;
|
|
44
|
+
return loc.pathname;
|
|
45
|
+
},
|
|
46
|
+
get url() {
|
|
47
|
+
const loc = _nav ? _nav.location : location;
|
|
48
|
+
return `${loc.pathname}${loc.search}${loc.hash}`;
|
|
49
|
+
},
|
|
50
|
+
push(target, state) {
|
|
51
|
+
if (_nav) {
|
|
52
|
+
_nav.push(target, state);
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
replace(target, state) {
|
|
56
|
+
if (_nav) {
|
|
57
|
+
_nav.replace(target, state);
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
go(n) {
|
|
61
|
+
if (_nav) {
|
|
62
|
+
_nav.go(n);
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
block(blocker) {
|
|
66
|
+
if (!_nav) {
|
|
67
|
+
return _noop;
|
|
68
|
+
}
|
|
69
|
+
return _nav.block((transition) => blocker(enhance(transition)));
|
|
70
|
+
},
|
|
71
|
+
listen(listener) {
|
|
72
|
+
const handler = (e) => listener(enhance(e.detail));
|
|
73
|
+
window.addEventListener('piral-navigate', handler);
|
|
74
|
+
return () => {
|
|
75
|
+
window.removeEventListener('piral-navigate', handler);
|
|
76
|
+
};
|
|
77
|
+
},
|
|
78
|
+
get router() {
|
|
79
|
+
return _nav;
|
|
80
|
+
},
|
|
81
|
+
publicPath,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=navigator_v8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigator_v8.js","sourceRoot":"","sources":["../../src/defaults/navigator_v8.tsx"],"names":[],"mappings":"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"}
|
package/lib/tools/codegen.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// this file is bundled, so the references here will not be at runtime (i.e., for a user)
|
|
2
2
|
import { getModulePath } from 'piral-cli/src/external/resolve';
|
|
3
|
-
import { readFileSync, existsSync } from 'fs';
|
|
4
|
-
import { resolve, relative, dirname, sep, posix } from 'path';
|
|
3
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
4
|
+
import { resolve, relative, dirname, sep, posix } from 'node:path';
|
|
5
5
|
function findPackagePath(moduleDir) {
|
|
6
6
|
const packageJson = 'package.json';
|
|
7
7
|
const packagePath = resolve(moduleDir, packageJson);
|
|
@@ -153,10 +153,17 @@ export function createDefaultState(imports, exports, opts) {
|
|
|
153
153
|
// React Router v6
|
|
154
154
|
imports.push(`import { DefaultRouter } from 'piral-core/${cat}/defaults/DefaultRouter_v6.js';`, `import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v6.js';`, `import { createRedirect, createNavigation, useCurrentNavigation } from 'piral-core/${cat}/defaults/navigator_v6.js'`);
|
|
155
155
|
}
|
|
156
|
-
else {
|
|
156
|
+
else if (router.compat === 7) {
|
|
157
157
|
// React Router v7
|
|
158
158
|
imports.push(`import { DefaultRouter } from 'piral-core/${cat}/defaults/DefaultRouter_v7.js';`, `import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v7.js';`, `import { createRedirect, createNavigation, useCurrentNavigation } from 'piral-core/${cat}/defaults/navigator_v7.js'`);
|
|
159
159
|
}
|
|
160
|
+
else if (router.compat === 8) {
|
|
161
|
+
// React Router v8
|
|
162
|
+
imports.push(`import { DefaultRouter } from 'piral-core/${cat}/defaults/DefaultRouter_v8.js';`, `import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v8.js';`, `import { createRedirect, createNavigation, useCurrentNavigation } from 'piral-core/${cat}/defaults/navigator_v8.js'`);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
throw new Error(`Unsupported router version: ${router.name} v${router.compat}`);
|
|
166
|
+
}
|
|
160
167
|
exports.push(`
|
|
161
168
|
export { createRedirect, createNavigation };
|
|
162
169
|
`);
|
package/lib/tools/codegen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/tools/codegen.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/tools/codegen.ts"],"names":[],"mappings":"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"}
|
package/lib/tools/debugger.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { LoadPiletsOptions } from 'piral-base';
|
|
2
2
|
import { DebuggerExtensionOptions } from 'piral-debug-utils';
|
|
3
|
-
import { GlobalStateContext } from '../types';
|
|
3
|
+
import type { GlobalStateContext } from '../types';
|
|
4
4
|
export declare function integrateDebugger(context: GlobalStateContext, options: LoadPiletsOptions, debug?: DebuggerExtensionOptions): void;
|
package/lib/tools/debugger.js
CHANGED
|
@@ -16,7 +16,7 @@ export function integrateDebugger(context, options, debug = {}) {
|
|
|
16
16
|
},
|
|
17
17
|
fireEvent: context.emit,
|
|
18
18
|
getDependencies() {
|
|
19
|
-
return Object.keys(options.dependencies);
|
|
19
|
+
return Object.keys(options.dependencies || {});
|
|
20
20
|
},
|
|
21
21
|
getExtensions() {
|
|
22
22
|
return context.readState((s) => Object.keys(s.registry.extensions));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debugger.js","sourceRoot":"","sources":["../../src/tools/debugger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA4B,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"debugger.js","sourceRoot":"","sources":["../../src/tools/debugger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA4B,MAAM,mBAAmB,CAAC;AAIhF,MAAM,UAAU,iBAAiB,CAC/B,OAA2B,EAC3B,OAA0B,EAC1B,QAAkC,EAAE;IAEpC,iBAAiB,CAAC;QAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,CAAC,KAAK;YACf,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACpB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,SAAS,EAAE,OAAO,CAAC,IAAI;QACvB,eAAe;YACb,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,aAAa;YACX,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,SAAS;YACP,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YACzF,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,eAAe,EAAE,GAAG,gBAAgB,CAAC,CAAC;QACnD,CAAC;QACD,cAAc;YACZ,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;QACD,QAAQ,CAAC,IAAI,EAAE,KAAK;YAClB,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QACD,SAAS;YACP,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,SAAS,CAAC,GAAG;YACX,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvB,GAAG,CAAC;gBACJ,MAAM,EAAE;oBACN,GAAG,CAAC,CAAC,MAAM;oBACX,GAAG,GAAG,CAAC,MAAM;iBACd;aACF,CAAC,CAAC,CAAC;YAEJ,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;gBAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC;gBACpD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC;gBACvG,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAChF,MAAM,KAAK,GAAG,OAAO,KAAK,QAAQ,CAAC;gBACnC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE;oBAC9B,MAAM;oBACN,KAAK;oBACL,UAAU;oBACV,KAAK;iBACN,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/lib/tools/emulator.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { LoadPiletsOptions } from 'piral-base';
|
|
2
2
|
import { DebuggerExtensionOptions } from 'piral-debug-utils';
|
|
3
|
-
import { GlobalStateContext } from '../types';
|
|
3
|
+
import type { GlobalStateContext } from '../types';
|
|
4
4
|
export declare function integrateEmulator(context: GlobalStateContext, options: LoadPiletsOptions, debug?: DebuggerExtensionOptions): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emulator.js","sourceRoot":"","sources":["../../src/tools/emulator.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"emulator.js","sourceRoot":"","sources":["../../src/tools/emulator.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAInF,MAAM,UAAU,iBAAiB,CAC/B,OAA2B,EAC3B,OAA0B,EAC1B,QAAkC,EAAE;IAEpC,oBAAoB,CAAC,OAAO,CAAC,WAAW,EAAE;QACxC,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,SAAS,CAAC,SAAS;YACjB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;QAClC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "piral-core",
|
|
3
|
-
"version": "1.12.
|
|
3
|
+
"version": "1.12.3-beta.4cfc2dd",
|
|
4
4
|
"description": "The core library for creating a Piral instance.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"portal",
|
|
@@ -63,8 +63,8 @@
|
|
|
63
63
|
"test": "echo \"Error: run tests from root\" && exit 1"
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"piral-base": "^1.12.
|
|
67
|
-
"piral-debug-utils": "^1.12.
|
|
66
|
+
"piral-base": "^1.12.3-beta.4cfc2dd",
|
|
67
|
+
"piral-debug-utils": "^1.12.3-beta.4cfc2dd",
|
|
68
68
|
"zustand": "^3.0.0"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
//@ts-ignore
|
|
3
|
+
import { Routes, Route, useParams, useLocation, useNavigate } from 'react-router';
|
|
4
|
+
import { RouteSwitchProps } from '../types';
|
|
5
|
+
|
|
6
|
+
function getHistory(navigate: any): any {
|
|
7
|
+
return {
|
|
8
|
+
push(path: string, state: any) {
|
|
9
|
+
navigate(path, { replace: false, state });
|
|
10
|
+
},
|
|
11
|
+
replace(path: string, state: any) {
|
|
12
|
+
navigate(path, { replace: true, state });
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
interface RouteContentWrapperProps {
|
|
18
|
+
Component: RouteSwitchProps['paths'][0]['Component'];
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const RouteContentWrapper: React.FC<RouteContentWrapperProps> = ({ Component }) => {
|
|
22
|
+
const navigate = useNavigate();
|
|
23
|
+
const params = useParams();
|
|
24
|
+
const loc = useLocation();
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
<Component
|
|
28
|
+
history={getHistory(navigate)}
|
|
29
|
+
location={loc}
|
|
30
|
+
match={{ params, isExact: true, path: loc.pathname, url: location.href }}
|
|
31
|
+
/>
|
|
32
|
+
);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export const DefaultRouteSwitch: React.FC<RouteSwitchProps> = ({ paths, NotFound, ...props }) => {
|
|
36
|
+
return (
|
|
37
|
+
<Routes {...props}>
|
|
38
|
+
{paths.map(({ path, Component }) => (
|
|
39
|
+
//@ts-ignore
|
|
40
|
+
<Route key={path} path={path} element={<RouteContentWrapper Component={Component} />} />
|
|
41
|
+
))}
|
|
42
|
+
{
|
|
43
|
+
//@ts-ignore
|
|
44
|
+
<Route path="*" element={<NotFound />} />
|
|
45
|
+
}
|
|
46
|
+
</Routes>
|
|
47
|
+
);
|
|
48
|
+
};
|
|
49
|
+
DefaultRouteSwitch.displayName = 'DefaultRouteSwitch';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
//@ts-ignore
|
|
3
|
+
import { BrowserRouter } from 'react-router';
|
|
4
|
+
import { RouterProps } from '../types';
|
|
5
|
+
|
|
6
|
+
export const DefaultRouter: React.FC<RouterProps> = ({ children, publicPath }) => {
|
|
7
|
+
return <BrowserRouter basename={publicPath}>{children}</BrowserRouter>;
|
|
8
|
+
};
|
|
9
|
+
DefaultRouter.displayName = 'DefaultRouter';
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
//@ts-ignore
|
|
3
|
+
import { UNSAFE_NavigationContext as RouterContext, Navigate, useLocation } from 'react-router';
|
|
4
|
+
import { NavigationApi } from '../types';
|
|
5
|
+
|
|
6
|
+
let _nav: any;
|
|
7
|
+
const _noop = () => {};
|
|
8
|
+
|
|
9
|
+
export function useRouterContext() {
|
|
10
|
+
return React.useContext(RouterContext);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function useCurrentNavigation() {
|
|
14
|
+
const ctx: any = useRouterContext();
|
|
15
|
+
const location = useLocation();
|
|
16
|
+
|
|
17
|
+
React.useEffect(() => {
|
|
18
|
+
if (_nav) {
|
|
19
|
+
window.dispatchEvent(
|
|
20
|
+
new CustomEvent('piral-navigate', {
|
|
21
|
+
detail: {
|
|
22
|
+
location,
|
|
23
|
+
},
|
|
24
|
+
}),
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
}, [location]);
|
|
28
|
+
|
|
29
|
+
React.useEffect(() => {
|
|
30
|
+
_nav = ctx.navigator;
|
|
31
|
+
|
|
32
|
+
return () => {
|
|
33
|
+
_nav = undefined;
|
|
34
|
+
};
|
|
35
|
+
}, []);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function createRedirect(to: string) {
|
|
39
|
+
return () => <Navigate to={to} />;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function createNavigation(publicPath: string): NavigationApi {
|
|
43
|
+
const enhance = (info) => ({
|
|
44
|
+
...info,
|
|
45
|
+
location: {
|
|
46
|
+
get href() {
|
|
47
|
+
return _nav.createHref(info.location);
|
|
48
|
+
},
|
|
49
|
+
...info.location,
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
return {
|
|
54
|
+
get path() {
|
|
55
|
+
const loc = _nav ? _nav.location : location;
|
|
56
|
+
return loc.pathname;
|
|
57
|
+
},
|
|
58
|
+
get url() {
|
|
59
|
+
const loc = _nav ? _nav.location : location;
|
|
60
|
+
return `${loc.pathname}${loc.search}${loc.hash}`;
|
|
61
|
+
},
|
|
62
|
+
push(target, state) {
|
|
63
|
+
if (_nav) {
|
|
64
|
+
_nav.push(target, state);
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
replace(target, state) {
|
|
68
|
+
if (_nav) {
|
|
69
|
+
_nav.replace(target, state);
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
go(n) {
|
|
73
|
+
if (_nav) {
|
|
74
|
+
_nav.go(n);
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
block(blocker) {
|
|
78
|
+
if (!_nav) {
|
|
79
|
+
return _noop;
|
|
80
|
+
}
|
|
81
|
+
return _nav.block((transition) => blocker(enhance(transition)));
|
|
82
|
+
},
|
|
83
|
+
listen(listener) {
|
|
84
|
+
const handler = (e: CustomEvent) => listener(enhance(e.detail));
|
|
85
|
+
|
|
86
|
+
window.addEventListener('piral-navigate', handler);
|
|
87
|
+
|
|
88
|
+
return () => {
|
|
89
|
+
window.removeEventListener('piral-navigate', handler);
|
|
90
|
+
};
|
|
91
|
+
},
|
|
92
|
+
get router() {
|
|
93
|
+
return _nav;
|
|
94
|
+
},
|
|
95
|
+
publicPath,
|
|
96
|
+
};
|
|
97
|
+
}
|
package/src/tools/codegen.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// this file is bundled, so the references here will not be at runtime (i.e., for a user)
|
|
2
2
|
import { getModulePath } from 'piral-cli/src/external/resolve';
|
|
3
|
-
import { readFileSync, existsSync } from 'fs';
|
|
4
|
-
import { resolve, relative, dirname, sep, posix } from 'path';
|
|
3
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
4
|
+
import { resolve, relative, dirname, sep, posix } from 'node:path';
|
|
5
5
|
|
|
6
6
|
function findPackagePath(moduleDir: string) {
|
|
7
7
|
const packageJson = 'package.json';
|
|
@@ -133,7 +133,7 @@ export function createDependencies(imports: Array<string>, exports: Array<string
|
|
|
133
133
|
const asyncAssignments: Array<string> = [];
|
|
134
134
|
|
|
135
135
|
if (appName) {
|
|
136
|
-
const parts = [];
|
|
136
|
+
const parts: Array<string> = [];
|
|
137
137
|
|
|
138
138
|
for (const item of shared) {
|
|
139
139
|
if (typeof item === 'string') {
|
|
@@ -213,13 +213,22 @@ export function createDefaultState(imports: Array<string>, exports: Array<string
|
|
|
213
213
|
`import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v6.js';`,
|
|
214
214
|
`import { createRedirect, createNavigation, useCurrentNavigation } from 'piral-core/${cat}/defaults/navigator_v6.js'`,
|
|
215
215
|
);
|
|
216
|
-
} else {
|
|
216
|
+
} else if (router.compat === 7) {
|
|
217
217
|
// React Router v7
|
|
218
218
|
imports.push(
|
|
219
219
|
`import { DefaultRouter } from 'piral-core/${cat}/defaults/DefaultRouter_v7.js';`,
|
|
220
220
|
`import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v7.js';`,
|
|
221
221
|
`import { createRedirect, createNavigation, useCurrentNavigation } from 'piral-core/${cat}/defaults/navigator_v7.js'`,
|
|
222
222
|
);
|
|
223
|
+
} else if (router.compat === 8) {
|
|
224
|
+
// React Router v8
|
|
225
|
+
imports.push(
|
|
226
|
+
`import { DefaultRouter } from 'piral-core/${cat}/defaults/DefaultRouter_v8.js';`,
|
|
227
|
+
`import { DefaultRouteSwitch } from 'piral-core/${cat}/defaults/DefaultRouteSwitch_v8.js';`,
|
|
228
|
+
`import { createRedirect, createNavigation, useCurrentNavigation } from 'piral-core/${cat}/defaults/navigator_v8.js'`,
|
|
229
|
+
);
|
|
230
|
+
} else {
|
|
231
|
+
throw new Error(`Unsupported router version: ${router.name} v${router.compat}`);
|
|
223
232
|
}
|
|
224
233
|
|
|
225
234
|
exports.push(`
|
|
@@ -287,7 +296,7 @@ export function createDebugHandler(imports: Array<string>, exports: Array<string
|
|
|
287
296
|
|
|
288
297
|
export function createRouteHandler(imports: Array<string>, exports: Array<string>, opts: CodegenOptions) {
|
|
289
298
|
const { cat, emulator } = opts;
|
|
290
|
-
const assignments = [];
|
|
299
|
+
const assignments: Array<string> = [];
|
|
291
300
|
|
|
292
301
|
imports.push(`import { useGlobalStateContext } from 'piral-core/${cat}/hooks/globalState.js';`);
|
|
293
302
|
|
package/src/tools/debugger.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { LoadPiletsOptions } from 'piral-base';
|
|
2
2
|
import { installPiralDebug, DebuggerExtensionOptions } from 'piral-debug-utils';
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
import type { GlobalStateContext } from '../types';
|
|
4
5
|
|
|
5
6
|
export function integrateDebugger(
|
|
6
7
|
context: GlobalStateContext,
|
|
@@ -22,7 +23,7 @@ export function integrateDebugger(
|
|
|
22
23
|
},
|
|
23
24
|
fireEvent: context.emit,
|
|
24
25
|
getDependencies() {
|
|
25
|
-
return Object.keys(options.dependencies);
|
|
26
|
+
return Object.keys(options.dependencies || {});
|
|
26
27
|
},
|
|
27
28
|
getExtensions() {
|
|
28
29
|
return context.readState((s) => Object.keys(s.registry.extensions));
|
package/src/tools/emulator.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { LoadPiletsOptions } from 'piral-base';
|
|
2
2
|
import { DebuggerExtensionOptions, installPiletEmulator } from 'piral-debug-utils';
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
import type { GlobalStateContext } from '../types';
|
|
4
5
|
|
|
5
6
|
export function integrateEmulator(
|
|
6
7
|
context: GlobalStateContext,
|