openxiangda 2.0.0-alpha.48 → 2.0.0-alpha.49
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/dist/browser/application.d.ts +3 -2
- package/dist/browser/application.d.ts.map +1 -1
- package/dist/browser/application.js +96 -7
- package/dist/browser/application.js.map +1 -1
- package/dist/browser/platform-client.d.ts +47 -0
- package/dist/browser/platform-client.d.ts.map +1 -1
- package/dist/browser/platform-client.js +125 -0
- package/dist/browser/platform-client.js.map +1 -1
- package/dist/browser/route-manifest.d.ts +33 -0
- package/dist/browser/route-manifest.d.ts.map +1 -1
- package/dist/browser/route-manifest.js +128 -0
- package/dist/browser/route-manifest.js.map +1 -1
- package/dist/browser/runtime.d.ts +3 -2
- package/dist/browser/runtime.d.ts.map +1 -1
- package/dist/browser/runtime.js +61 -3
- package/dist/browser/runtime.js.map +1 -1
- package/dist/react.d.ts +1 -0
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +1 -0
- package/dist/react.js.map +1 -1
- package/package.json +7 -7
- package/skills/manifest.json +2 -2
- package/skills/openxiangda-v2/SKILL.md +11 -9
- package/skills/openxiangda-v2/agents/openai.yaml +1 -1
- package/skills/openxiangda-v2/references/data-authz.md +6 -0
- package/skills/openxiangda-v2/references/frontend.md +16 -0
- package/skills/openxiangda-v2/references/public-access.md +159 -0
- package/skills/openxiangda-v2/references/testing.md +8 -0
- package/skills/openxiangda-v2/references/workspace.md +1 -0
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
import type { AppAdminPageContract, AppRouteManifestEntryV2, AppRouteManifestRouteV2, AppRouteManifestV2 } from 'openxiangda-contracts/browser';
|
|
2
2
|
export type StandardRouteManifestDevice = 'desktop' | 'mobile';
|
|
3
|
+
/**
|
|
4
|
+
* Keep the device boundary in the standard runtime rather than making each
|
|
5
|
+
* application choose its own breakpoint. A tablet-width browser at 768px is
|
|
6
|
+
* still expected to use the independent mobile surface.
|
|
7
|
+
*/
|
|
8
|
+
export declare const STANDARD_ROUTE_MOBILE_MAX_WIDTH = 768;
|
|
9
|
+
export interface StandardRouteManifestLocation {
|
|
10
|
+
pathname: string;
|
|
11
|
+
search?: string;
|
|
12
|
+
hash?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface StandardRouteManifestNegotiation {
|
|
15
|
+
entryCode: string;
|
|
16
|
+
from: StandardRouteManifestDevice;
|
|
17
|
+
to: StandardRouteManifestDevice;
|
|
18
|
+
pathname: string;
|
|
19
|
+
search: string;
|
|
20
|
+
hash: string;
|
|
21
|
+
}
|
|
3
22
|
export interface StandardRouteManifestIndex {
|
|
4
23
|
manifest: Readonly<AppRouteManifestV2>;
|
|
5
24
|
entries: ReadonlyMap<string, Readonly<AppRouteManifestEntryV2>>;
|
|
@@ -12,6 +31,20 @@ export interface StandardRouteManifestIndex {
|
|
|
12
31
|
*/
|
|
13
32
|
export declare function createStandardRouteManifestIndex(manifest: AppRouteManifestV2, appCode: string): StandardRouteManifestIndex;
|
|
14
33
|
export declare function standardRouteManifestPath(index: StandardRouteManifestIndex, entryCode: string, device: StandardRouteManifestDevice): string | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Resolve the browser device family used by standard paired surfaces.
|
|
36
|
+
* Unknown or non-finite widths conservatively use the desktop family; a
|
|
37
|
+
* browser can still negotiate again once it reports a real viewport width.
|
|
38
|
+
*/
|
|
39
|
+
export declare function standardRouteManifestDeviceForViewport(width: number): StandardRouteManifestDevice;
|
|
40
|
+
/**
|
|
41
|
+
* Find a standard route pair by pathname and project it to the requested
|
|
42
|
+
* device. The manifest is the only route catalog used here: the helper does
|
|
43
|
+
* not know any Todo, Workflow, or application-specific path. `undefined`
|
|
44
|
+
* means that the location is not a standard pair, already targets the
|
|
45
|
+
* requested device, or cannot safely carry the target route's parameters.
|
|
46
|
+
*/
|
|
47
|
+
export declare function negotiateStandardRoute(index: StandardRouteManifestIndex, location: StandardRouteManifestLocation, targetDevice: StandardRouteManifestDevice): StandardRouteManifestNegotiation | undefined;
|
|
15
48
|
/**
|
|
16
49
|
* Project desktop metadata back into the admin page registry used by the
|
|
17
50
|
* Shell. Standard page paths and access therefore come from one manifest at
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-manifest.d.ts","sourceRoot":"","sources":["../../src/browser/route-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAGvC,MAAM,MAAM,2BAA2B,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/D,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACvC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAChE,MAAM,EAAE,SAAS,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;CACtD;
|
|
1
|
+
{"version":3,"file":"route-manifest.d.ts","sourceRoot":"","sources":["../../src/browser/route-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAGvC,MAAM,MAAM,2BAA2B,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/D;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,2BAA2B,CAAC;IAClC,EAAE,EAAE,2BAA2B,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACvC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAChE,MAAM,EAAE,SAAS,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;CACtD;AA2BD;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,MAAM,GACd,0BAA0B,CAiE5B;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,0BAA0B,EACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,2BAA2B,sBAGpC;AAED;;;;GAIG;AACH,wBAAgB,sCAAsC,CACpD,KAAK,EAAE,MAAM,GACZ,2BAA2B,CAI7B;AAqGD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,0BAA0B,EACjC,QAAQ,EAAE,6BAA6B,EACvC,YAAY,EAAE,2BAA2B,GACxC,gCAAgC,GAAG,SAAS,CAuC9C;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,oBAAoB,EAAE,EACtC,KAAK,EAAE,0BAA0B,GAChC,SAAS,oBAAoB,EAAE,CAwCjC"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { SCHEMA_VERSIONS } from 'openxiangda-contracts/browser';
|
|
2
|
+
/**
|
|
3
|
+
* Keep the device boundary in the standard runtime rather than making each
|
|
4
|
+
* application choose its own breakpoint. A tablet-width browser at 768px is
|
|
5
|
+
* still expected to use the independent mobile surface.
|
|
6
|
+
*/
|
|
7
|
+
export const STANDARD_ROUTE_MOBILE_MAX_WIDTH = 768;
|
|
2
8
|
function pathParams(path) {
|
|
3
9
|
return [...path.matchAll(/:([A-Za-z][A-Za-z0-9_]*)/g)]
|
|
4
10
|
.map(match => match[1])
|
|
@@ -80,6 +86,128 @@ export function createStandardRouteManifestIndex(manifest, appCode) {
|
|
|
80
86
|
export function standardRouteManifestPath(index, entryCode, device) {
|
|
81
87
|
return index.entries.get(entryCode)?.[device].path;
|
|
82
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Resolve the browser device family used by standard paired surfaces.
|
|
91
|
+
* Unknown or non-finite widths conservatively use the desktop family; a
|
|
92
|
+
* browser can still negotiate again once it reports a real viewport width.
|
|
93
|
+
*/
|
|
94
|
+
export function standardRouteManifestDeviceForViewport(width) {
|
|
95
|
+
return Number.isFinite(width) && width <= STANDARD_ROUTE_MOBILE_MAX_WIDTH
|
|
96
|
+
? 'mobile'
|
|
97
|
+
: 'desktop';
|
|
98
|
+
}
|
|
99
|
+
function routeSegments(path) {
|
|
100
|
+
return path.split('/').filter(Boolean);
|
|
101
|
+
}
|
|
102
|
+
function routePathParamNames(path) {
|
|
103
|
+
return [...path.matchAll(/:([A-Za-z][A-Za-z0-9_]*)/g)].map(match => match[1]);
|
|
104
|
+
}
|
|
105
|
+
function matchStandardRoutePath(pattern, pathname) {
|
|
106
|
+
const patternSegments = routeSegments(pattern);
|
|
107
|
+
const pathnameSegments = routeSegments(pathname);
|
|
108
|
+
if (patternSegments.length !== pathnameSegments.length)
|
|
109
|
+
return undefined;
|
|
110
|
+
const names = routePathParamNames(pattern);
|
|
111
|
+
const params = {};
|
|
112
|
+
const values = [];
|
|
113
|
+
let paramIndex = 0;
|
|
114
|
+
for (const [index, segment] of patternSegments.entries()) {
|
|
115
|
+
const actual = pathnameSegments[index];
|
|
116
|
+
if (!actual)
|
|
117
|
+
return undefined;
|
|
118
|
+
if (segment.startsWith(':')) {
|
|
119
|
+
const name = names[paramIndex++];
|
|
120
|
+
if (!name)
|
|
121
|
+
return undefined;
|
|
122
|
+
params[name] = actual;
|
|
123
|
+
values.push(actual);
|
|
124
|
+
}
|
|
125
|
+
else if (segment !== actual) {
|
|
126
|
+
return undefined;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return { params, values };
|
|
130
|
+
}
|
|
131
|
+
function routeSpecificity(path) {
|
|
132
|
+
const segments = routeSegments(path);
|
|
133
|
+
return {
|
|
134
|
+
staticSegments: segments.filter(segment => !segment.startsWith(':')).length,
|
|
135
|
+
segmentCount: segments.length,
|
|
136
|
+
pathLength: path.length,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
function compareRouteSpecificity(left, right) {
|
|
140
|
+
const a = routeSpecificity(left);
|
|
141
|
+
const b = routeSpecificity(right);
|
|
142
|
+
return (b.staticSegments - a.staticSegments ||
|
|
143
|
+
b.segmentCount - a.segmentCount ||
|
|
144
|
+
b.pathLength - a.pathLength);
|
|
145
|
+
}
|
|
146
|
+
function encodePathParam(value) {
|
|
147
|
+
// Captures are kept in their URL-encoded form so a deep link such as
|
|
148
|
+
// `%2F` is not accidentally decoded into another path segment. Values
|
|
149
|
+
// supplied by the manifest (for example a workflow code) are encoded once.
|
|
150
|
+
try {
|
|
151
|
+
return encodeURIComponent(decodeURIComponent(value));
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return value;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
function projectPairedPath(entry, sourceRoute, targetRoute, match) {
|
|
158
|
+
const sourceNames = routePathParamNames(sourceRoute.path);
|
|
159
|
+
const targetNames = routePathParamNames(targetRoute.path);
|
|
160
|
+
const values = new Map(Object.entries(match.params));
|
|
161
|
+
const targetValues = new Map();
|
|
162
|
+
for (const [index, name] of targetNames.entries()) {
|
|
163
|
+
const value = values.get(name) ||
|
|
164
|
+
match.values[index] ||
|
|
165
|
+
(entry.workflowCode &&
|
|
166
|
+
sourceNames.length === 0 &&
|
|
167
|
+
targetNames.length === 1 &&
|
|
168
|
+
targetNames[0] === 'workflowCode'
|
|
169
|
+
? entry.workflowCode
|
|
170
|
+
: undefined);
|
|
171
|
+
if (!value)
|
|
172
|
+
return undefined;
|
|
173
|
+
targetValues.set(name, value);
|
|
174
|
+
}
|
|
175
|
+
return targetRoute.path.replace(/:([A-Za-z][A-Za-z0-9_]*)/g, (_token, name) => encodePathParam(targetValues.get(name)));
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Find a standard route pair by pathname and project it to the requested
|
|
179
|
+
* device. The manifest is the only route catalog used here: the helper does
|
|
180
|
+
* not know any Todo, Workflow, or application-specific path. `undefined`
|
|
181
|
+
* means that the location is not a standard pair, already targets the
|
|
182
|
+
* requested device, or cannot safely carry the target route's parameters.
|
|
183
|
+
*/
|
|
184
|
+
export function negotiateStandardRoute(index, location, targetDevice) {
|
|
185
|
+
const candidates = index.manifest.routes
|
|
186
|
+
.flatMap(entry => ['desktop', 'mobile'].map(device => ({
|
|
187
|
+
device,
|
|
188
|
+
entry,
|
|
189
|
+
route: entry[device],
|
|
190
|
+
})))
|
|
191
|
+
.sort((left, right) => compareRouteSpecificity(left.route.path, right.route.path));
|
|
192
|
+
const current = candidates.find(candidate => Boolean(matchStandardRoutePath(candidate.route.path, location.pathname)));
|
|
193
|
+
if (!current || current.device === targetDevice)
|
|
194
|
+
return undefined;
|
|
195
|
+
const match = matchStandardRoutePath(current.route.path, location.pathname);
|
|
196
|
+
if (!match)
|
|
197
|
+
return undefined;
|
|
198
|
+
const targetRoute = current.entry[targetDevice];
|
|
199
|
+
const pathname = projectPairedPath(current.entry, current.route, targetRoute, match);
|
|
200
|
+
if (!pathname || pathname === location.pathname)
|
|
201
|
+
return undefined;
|
|
202
|
+
return Object.freeze({
|
|
203
|
+
entryCode: current.entry.code,
|
|
204
|
+
from: current.device,
|
|
205
|
+
to: targetDevice,
|
|
206
|
+
pathname,
|
|
207
|
+
search: location.search || '',
|
|
208
|
+
hash: location.hash || '',
|
|
209
|
+
});
|
|
210
|
+
}
|
|
83
211
|
/**
|
|
84
212
|
* Project desktop metadata back into the admin page registry used by the
|
|
85
213
|
* Shell. Standard page paths and access therefore come from one manifest at
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-manifest.js","sourceRoot":"","sources":["../../src/browser/route-manifest.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"route-manifest.js","sourceRoot":"","sources":["../../src/browser/route-manifest.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAIhE;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AA4BnD,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;SACnD,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;SACvB,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAqC,EACrC,MAAmC,EACnC,YAAqB;IAErB,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC/B,OAAO,YAAY,YAAY,WAAW,MAAM,EAAE,CAAC;IACrD,CAAC;IACD,IAAI,IAAI,KAAK,yBAAyB,EAAE,CAAC;QACvC,OAAO,2BAA2B,MAAM,EAAE,CAAC;IAC7C,CAAC;IACD,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gCAAgC,CAC9C,QAA4B,EAC5B,OAAe;IAEf,IACE,QAAQ,CAAC,aAAa,KAAK,eAAe,CAAC,wBAAwB;QACnE,QAAQ,CAAC,OAAO,KAAK,OAAO;QAC5B,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC/B,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ;QACnC,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EACvC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAA6C,CAAC;IACrE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;QACzB,yBAAyB;QACzB,sBAAsB;QACtB,iBAAiB;QACjB,eAAe;QACf,mBAAmB;KACpB,CAAC,CAAC;IACH,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpC,IACE,CAAC,KAAK;YACN,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC9B,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAC3B,CAAC,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC;gBAChC,CAAC,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3E,CAAC,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YACvB,CAAC,KAAK,CAAC,OAAO;YACd,CAAC,KAAK,CAAC,MAAM;YACb,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;gBACtC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;YACzC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAC5E,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI;YAC5B,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;YAC1B,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;SAChB,EAAE,CAAC;YACX,IACE,CAAC,KAAK;gBACN,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;gBACnC,KAAK,CAAC,SAAS,KAAK,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC;gBAC7E,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;gBAC/B,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAC9B,KAAK,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC3D,KAAK,CAAC,sBAAsB,KAAK,IAAI;gBACrC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;gBAChC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EACzE,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACxD,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,QAAQ;QACR,OAAO;QACP,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;KAC9B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAAiC,EACjC,SAAiB,EACjB,MAAmC;IAEnC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sCAAsC,CACpD,KAAa;IAEb,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,+BAA+B;QACvE,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,CAAC,GAAG,CACxD,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAE,CACnB,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAe,EACf,QAAgB;IAEhB,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,gBAAgB,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,eAAe,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAEzE,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI;gBAAE,OAAO,SAAS,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO;QACL,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;QAC3E,YAAY,EAAE,QAAQ,CAAC,MAAM;QAC7B,UAAU,EAAE,IAAI,CAAC,MAAM;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY,EAAE,KAAa;IAC1D,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,CACL,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc;QACnC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY;QAC/B,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAC5B,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,qEAAqE;IACrE,uEAAuE;IACvE,2EAA2E;IAC3E,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAwC,EACxC,WAA8C,EAC9C,WAA8C,EAC9C,KAA6B;IAE7B,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAC7B,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QAClD,MAAM,KAAK,GACT,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;YAChB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;YACnB,CAAC,KAAK,CAAC,YAAY;gBACnB,WAAW,CAAC,MAAM,KAAK,CAAC;gBACxB,WAAW,CAAC,MAAM,KAAK,CAAC;gBACxB,WAAW,CAAC,CAAC,CAAC,KAAK,cAAc;gBAC/B,CAAC,CAAC,KAAK,CAAC,YAAY;gBACpB,CAAC,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,CAC7B,2BAA2B,EAC3B,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CACnE,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAiC,EACjC,QAAuC,EACvC,YAAyC;IAEzC,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM;SACrC,OAAO,CAAC,KAAK,CAAC,EAAE,CACd,CAAC,SAAS,EAAE,QAAQ,CAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM;QACN,KAAK;QACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;KACrB,CAAC,CAAC,CACJ;SACA,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACpB,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAC3D,CAAC;IACJ,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAC1C,OAAO,CAAC,sBAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CACzE,CAAC;IACF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY;QAAE,OAAO,SAAS,CAAC;IAElE,MAAM,KAAK,GAAG,sBAAsB,CAClC,OAAO,CAAC,KAAK,CAAC,IAAI,EAClB,QAAQ,CAAC,QAAQ,CAClB,CAAC;IACF,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,iBAAiB,CAChC,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,KAAK,EACb,WAAW,EACX,KAAK,CACN,CAAC;IACF,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAElE,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;QAC7B,IAAI,EAAE,OAAO,CAAC,MAAM;QACpB,EAAE,EAAE,YAAY;QAChB,QAAQ;QACR,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE;QAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE;KAC1B,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAsC,EACtC,KAAiC;IAEjC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;QAChC,yBAAyB;QACzB,sBAAsB;QACtB,iBAAiB;QACjB,eAAe;QACf,mBAAmB;KACpB,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAClB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACf,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACxD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IACE,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;YACxB,CAAC,KAAK,CAAC,YAAY,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC,EACtE,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACnE,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,GAAG,IAAI;YACP,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;YACxB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU;gBAC1B,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC1C,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AppPerspectiveContract } from 'openxiangda-contracts';
|
|
1
|
+
import type { AnonymousPublicAccessContractV2, AppPerspectiveContract } from 'openxiangda-contracts';
|
|
2
2
|
import { type RuntimeAuthorization, type RuntimeIdentity } from './platform-client';
|
|
3
3
|
import { type ApplicationAuthenticationSurfaceContribution } from './authentication';
|
|
4
4
|
import type { ApplicationRoutePageContribution } from './admin-contributions';
|
|
@@ -15,11 +15,12 @@ interface RuntimeValue {
|
|
|
15
15
|
}
|
|
16
16
|
export type RuntimeAuthorizationFailureKind = 'unauthenticated' | 'forbidden' | 'temporarily-unavailable';
|
|
17
17
|
export declare function classifyRuntimeAuthorizationFailure(error: unknown): RuntimeAuthorizationFailureKind;
|
|
18
|
-
export declare function RuntimeBoundary({ children, perspectives, authentication, routes, }: {
|
|
18
|
+
export declare function RuntimeBoundary({ children, perspectives, authentication, routes, publicAccess, }: {
|
|
19
19
|
children: React.ReactNode;
|
|
20
20
|
perspectives?: readonly RuntimePerspective[];
|
|
21
21
|
authentication?: readonly ApplicationAuthenticationSurfaceContribution[];
|
|
22
22
|
routes?: readonly ApplicationRoutePageContribution[];
|
|
23
|
+
publicAccess?: AnonymousPublicAccessContractV2 | null;
|
|
23
24
|
}): import("react/jsx-runtime").JSX.Element;
|
|
24
25
|
export declare function useRuntime(): RuntimeValue;
|
|
25
26
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/browser/runtime.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/browser/runtime.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,+BAA+B,EAC/B,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAML,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAEL,KAAK,4CAA4C,EAClD,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;AAE9E,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAExD,UAAU,YAAY;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,aAAa,EAAE,oBAAoB,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACzC,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACvC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3C;AAID,MAAM,MAAM,+BAA+B,GACvC,iBAAiB,GACjB,WAAW,GACX,yBAAyB,CAAC;AAE9B,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,OAAO,GACb,+BAA+B,CASjC;AAED,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,YAAiB,EACjB,cAAmB,EACnB,MAAW,EACX,YAAY,GACb,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,YAAY,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC7C,cAAc,CAAC,EAAE,SAAS,4CAA4C,EAAE,CAAC;IACzE,MAAM,CAAC,EAAE,SAAS,gCAAgC,EAAE,CAAC;IACrD,YAAY,CAAC,EAAE,+BAA+B,GAAG,IAAI,CAAC;CACvD,2CA0NA;AAwID,wBAAgB,UAAU,iBAIzB"}
|
package/dist/browser/runtime.js
CHANGED
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
2
2
|
import { Alert, Button, Result, Spin } from 'antd';
|
|
3
3
|
import { createContext, useContext, useEffect, useLayoutEffect, useMemo, useState, } from 'react';
|
|
4
4
|
import { Navigate, useLocation, useNavigate } from 'react-router-dom';
|
|
5
|
-
import { isApplicationUnauthenticatedError, loadRuntimeAuthorization, OpenXiangdaPlatformRequestError, subscribeApplicationSessionInvalidation, } from './platform-client';
|
|
5
|
+
import { isApplicationUnauthenticatedError, createAnonymousPublicClient, loadRuntimeAuthorization, OpenXiangdaPlatformRequestError, subscribeApplicationSessionInvalidation, } from './platform-client';
|
|
6
6
|
import { applicationCode, applicationName, runtimeMount, setActivePerspectiveCode, } from './runtime-meta';
|
|
7
7
|
import { ApplicationLoginController, } from './authentication';
|
|
8
8
|
const RuntimeContext = createContext(null);
|
|
@@ -15,7 +15,7 @@ export function classifyRuntimeAuthorizationFailure(error) {
|
|
|
15
15
|
}
|
|
16
16
|
return 'temporarily-unavailable';
|
|
17
17
|
}
|
|
18
|
-
export function RuntimeBoundary({ children, perspectives = [], authentication = [], routes = [], }) {
|
|
18
|
+
export function RuntimeBoundary({ children, perspectives = [], authentication = [], routes = [], publicAccess, }) {
|
|
19
19
|
const [authorization, setAuthorization] = useState();
|
|
20
20
|
const [error, setError] = useState();
|
|
21
21
|
const [attempt, setAttempt] = useState(0);
|
|
@@ -23,8 +23,32 @@ export function RuntimeBoundary({ children, perspectives = [], authentication =
|
|
|
23
23
|
const [pendingRedirect, setPendingRedirect] = useState();
|
|
24
24
|
const location = useLocation();
|
|
25
25
|
const navigate = useNavigate();
|
|
26
|
+
const publicPolicy = publicAccess?.policies.find(policy => {
|
|
27
|
+
const route = routes.find(item => item.route.code === policy.routeCode);
|
|
28
|
+
return route?.route.path === location.pathname;
|
|
29
|
+
});
|
|
30
|
+
const [publicReady, setPublicReady] = useState(false);
|
|
31
|
+
const [publicError, setPublicError] = useState();
|
|
26
32
|
useEffect(() => {
|
|
27
33
|
let active = true;
|
|
34
|
+
if (publicPolicy) {
|
|
35
|
+
setAuthorization(undefined);
|
|
36
|
+
setError(undefined);
|
|
37
|
+
setPublicReady(false);
|
|
38
|
+
setPublicError(undefined);
|
|
39
|
+
void createAnonymousPublicClient({
|
|
40
|
+
routeCode: publicPolicy.routeCode,
|
|
41
|
+
policyCode: publicPolicy.code,
|
|
42
|
+
})
|
|
43
|
+
.bootstrap()
|
|
44
|
+
.then(() => active && setPublicReady(true), reason => active &&
|
|
45
|
+
setPublicError(reason instanceof Error ? reason : new Error(String(reason))));
|
|
46
|
+
return () => {
|
|
47
|
+
active = false;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
setPublicReady(false);
|
|
51
|
+
setPublicError(undefined);
|
|
28
52
|
setAuthorization(undefined);
|
|
29
53
|
setError(undefined);
|
|
30
54
|
void loadRuntimeAuthorization({ refresh: attempt > 0 }).then(value => {
|
|
@@ -37,7 +61,7 @@ export function RuntimeBoundary({ children, perspectives = [], authentication =
|
|
|
37
61
|
return () => {
|
|
38
62
|
active = false;
|
|
39
63
|
};
|
|
40
|
-
}, [attempt]);
|
|
64
|
+
}, [attempt, publicPolicy?.code, publicPolicy?.routeCode]);
|
|
41
65
|
useEffect(() => subscribeApplicationSessionInvalidation(() => {
|
|
42
66
|
setAuthorization(undefined);
|
|
43
67
|
setError(new OpenXiangdaPlatformRequestError({
|
|
@@ -70,6 +94,15 @@ export function RuntimeBoundary({ children, perspectives = [], authentication =
|
|
|
70
94
|
setPendingRedirect(undefined);
|
|
71
95
|
navigate(redirectTo, { replace: true });
|
|
72
96
|
}, [authorization?.identity, navigate, pendingRedirect]);
|
|
97
|
+
if (publicPolicy) {
|
|
98
|
+
if (publicError) {
|
|
99
|
+
return (_jsx(Result, { status: "error", title: "\u516C\u5F00\u9875\u9762\u6682\u65F6\u4E0D\u53EF\u7528", subTitle: "\u533F\u540D\u6D4F\u89C8\u5668\u4F1A\u8BDD\u6216\u516C\u5F00\u8BBF\u95EE\u7B56\u7565\u65E0\u6CD5\u5EFA\u7ACB\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002", extra: _jsx(Button, { onClick: () => setAttempt(value => value + 1), children: "\u91CD\u8BD5" }) }));
|
|
100
|
+
}
|
|
101
|
+
if (!publicReady) {
|
|
102
|
+
return (_jsx("div", { className: "oxa-loading", children: _jsx(Spin, { description: "\u6B63\u5728\u5EFA\u7ACB\u533F\u540D\u6D4F\u89C8\u5668\u4F1A\u8BDD" }) }));
|
|
103
|
+
}
|
|
104
|
+
return _jsx(AnonymousPublicRuntime, { children: children });
|
|
105
|
+
}
|
|
73
106
|
return (_jsxs(_Fragment, { children: [production && (_jsx(Alert, { banner: true, showIcon: true, type: "error", "data-testid": "production-data-warning", title: "\u6B63\u5728\u4F7F\u7528\u6B63\u5F0F\u6570\u636E\uFF1A\u6240\u6709\u65B0\u589E\u3001\u7F16\u8F91\u548C\u5220\u9664\u90FD\u4F1A\u5F71\u54CD\u751F\u4EA7\u73AF\u5883" })), error && failureKind === 'unauthenticated' && loginContribution ? (_jsx(ApplicationLoginController, { app: { code: applicationCode(), name: applicationName() }, contribution: loginContribution, returnTo: declaredReturnTo, onAuthenticated: async (redirectTo) => {
|
|
74
107
|
setPendingRedirect(redirectTo);
|
|
75
108
|
setAttempt(value => value + 1);
|
|
@@ -77,6 +110,31 @@ export function RuntimeBoundary({ children, perspectives = [], authentication =
|
|
|
77
110
|
failureKind === 'unauthenticated' &&
|
|
78
111
|
deviceLoginContribution ? (_jsx(Navigate, { replace: true, to: `${deviceLoginContribution.surface.path}?returnTo=${encodeURIComponent(currentReturnTo)}` })) : error && failureKind === 'forbidden' ? (_jsx(Result, { status: "403", title: "\u5F53\u524D\u8D26\u53F7\u65E0\u6743\u8BBF\u95EE\u6B64\u5E94\u7528", subTitle: "\u5F53\u524D\u8EAB\u4EFD\u5DF2\u767B\u5F55\uFF0C\u4F46\u7F3A\u5C11\u8BBF\u95EE\u8BE5\u5E94\u7528\u6216\u5F53\u524D\u529F\u80FD\u6240\u9700\u7684\u6388\u6743\u3002", extra: _jsx(Button, { onClick: () => setAttempt(value => value + 1), children: "\u91CD\u65B0\u68C0\u67E5" }) })) : error ? (_jsx(Result, { status: "error", title: "\u767B\u5F55\u4E0E\u6743\u9650\u670D\u52A1\u6682\u65F6\u4E0D\u53EF\u7528", subTitle: "\u7F51\u7EDC\u6216\u5E73\u53F0\u670D\u52A1\u5F02\u5E38\uFF1B\u5F53\u524D\u4F1A\u8BDD\u4E0D\u4F1A\u56E0\u6B64\u88AB\u6E05\u9664\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002", extra: _jsx(Button, { onClick: () => setAttempt(value => value + 1), children: "\u91CD\u8BD5" }) })) : authorization?.state === 'unassigned' ? (_jsx(Result, { status: "403", title: "\u5C1A\u672A\u5206\u914D\u5E94\u7528\u89D2\u8272", subTitle: "\u8BF7\u8054\u7CFB\u5E94\u7528\u7BA1\u7406\u5458\uFF0C\u4E3A\u5F53\u524D\u7528\u6237\u5206\u914D\u81F3\u5C11\u4E00\u4E2A\u5F53\u524D\u73AF\u5883\u4E2D\u7684\u5E94\u7528\u89D2\u8272\u3002", extra: _jsx(Button, { onClick: () => setAttempt(value => value + 1), children: "\u91CD\u65B0\u68C0\u67E5" }) })) : identity && authorization ? (loginContribution ? (_jsx(Navigate, { replace: true, to: routePathForCode(loginContribution.surface.defaultRouteCode, routes) || '/' })) : (_jsx(ActiveRuntime, { authorization: authorization, identityEpoch: identityEpoch, perspectives: perspectives, children: children }))) : (_jsx("div", { className: "oxa-loading", children: _jsx(Spin, { description: "\u6B63\u5728\u8BFB\u53D6\u5F53\u524D\u7528\u6237\u7684\u89D2\u8272\u5E76\u96C6\u4E0E\u6743\u9650" }) }))] }));
|
|
79
112
|
}
|
|
113
|
+
function AnonymousPublicRuntime({ children }) {
|
|
114
|
+
const environmentKey = runtimeMount()?.environmentKey || 'preproduction';
|
|
115
|
+
const identity = useMemo(() => ({
|
|
116
|
+
userId: 'anonymous-browser',
|
|
117
|
+
roleCodes: [],
|
|
118
|
+
capabilityCodes: [],
|
|
119
|
+
isAppSuperAdmin: false,
|
|
120
|
+
identityScope: `anonymous-public:${applicationCode()}:${environmentKey}`,
|
|
121
|
+
subjectProfile: {},
|
|
122
|
+
roles: [],
|
|
123
|
+
environment: { id: 'anonymous-public', key: environmentKey },
|
|
124
|
+
}), [environmentKey]);
|
|
125
|
+
const authorization = useMemo(() => ({ state: 'active', identity }), [identity]);
|
|
126
|
+
const value = useMemo(() => ({
|
|
127
|
+
identity,
|
|
128
|
+
authorization,
|
|
129
|
+
identityEpoch: 1,
|
|
130
|
+
hasCapability: () => false,
|
|
131
|
+
hasReadCapability: () => false,
|
|
132
|
+
perspectives: [],
|
|
133
|
+
perspective: null,
|
|
134
|
+
setPerspective: () => undefined,
|
|
135
|
+
}), [authorization, identity]);
|
|
136
|
+
return _jsx(RuntimeContext.Provider, { value: value, children: children });
|
|
137
|
+
}
|
|
80
138
|
function routePathForCode(routeCode, routes) {
|
|
81
139
|
return routes.find(item => item.route.code === routeCode)?.route.path;
|
|
82
140
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/browser/runtime.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/browser/runtime.tsx"],"names":[],"mappings":"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"}
|
package/dist/react.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export * from './browser/route-manifest';
|
|
|
11
11
|
export * from './browser/Shell';
|
|
12
12
|
export * from './browser/resource-definitions';
|
|
13
13
|
export * from './browser/workflow-definitions';
|
|
14
|
+
export { createAnonymousPublicClient, type AnonymousPublicDraft, type AnonymousPublicRecord, } from './browser/platform-client';
|
|
14
15
|
export * from './browser/components/resource/GeneratedResourceCrud';
|
|
15
16
|
export * from './browser/components/resource/ResourceBatchActions';
|
|
16
17
|
export * from './browser/components/resource/StandardResourcePages';
|
package/dist/react.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0CAA0C,CAAC;AACzD,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qDAAqD,CAAC;AACpE,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,mBAAmB,6DAA6D,CAAC"}
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0CAA0C,CAAC;AACzD,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EACL,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,2BAA2B,CAAC;AACnC,cAAc,qDAAqD,CAAC;AACpE,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,mBAAmB,6DAA6D,CAAC"}
|
package/dist/react.js
CHANGED
|
@@ -11,6 +11,7 @@ export * from './browser/route-manifest';
|
|
|
11
11
|
export * from './browser/Shell';
|
|
12
12
|
export * from './browser/resource-definitions';
|
|
13
13
|
export * from './browser/workflow-definitions';
|
|
14
|
+
export { createAnonymousPublicClient, } from './browser/platform-client';
|
|
14
15
|
export * from './browser/components/resource/GeneratedResourceCrud';
|
|
15
16
|
export * from './browser/components/resource/ResourceBatchActions';
|
|
16
17
|
export * from './browser/components/resource/StandardResourcePages';
|
package/dist/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0CAA0C,CAAC;AACzD,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qDAAqD,CAAC;AACpE,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC"}
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0CAA0C,CAAC;AACzD,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EACL,2BAA2B,GAG5B,MAAM,2BAA2B,CAAC;AACnC,cAAc,qDAAqD,CAAC;AACpE,cAAc,oDAAoD,CAAC;AACnE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openxiangda",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.49",
|
|
4
4
|
"description": "Unified OpenXiangda 2.0 CLI, SDK, React runtime, NestJS integration and AI skill distribution.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -49,12 +49,12 @@
|
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"dayjs": "1.11.18",
|
|
51
51
|
"docx-preview": "0.3.7",
|
|
52
|
-
"openxiangda-cli": "2.0.0-alpha.
|
|
53
|
-
"openxiangda-contracts": "2.0.0-alpha.
|
|
54
|
-
"openxiangda-devkit-core": "2.0.0-alpha.
|
|
55
|
-
"openxiangda-mcp": "2.0.0-alpha.
|
|
56
|
-
"openxiangda-nest": "2.0.0-alpha.
|
|
57
|
-
"openxiangda-skill-kit": "2.0.0-alpha.
|
|
52
|
+
"openxiangda-cli": "2.0.0-alpha.134",
|
|
53
|
+
"openxiangda-contracts": "2.0.0-alpha.67",
|
|
54
|
+
"openxiangda-devkit-core": "2.0.0-alpha.87",
|
|
55
|
+
"openxiangda-mcp": "2.0.0-alpha.87",
|
|
56
|
+
"openxiangda-nest": "2.0.0-alpha.78",
|
|
57
|
+
"openxiangda-skill-kit": "2.0.0-alpha.108",
|
|
58
58
|
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz"
|
|
59
59
|
},
|
|
60
60
|
"peerDependencies": {
|
package/skills/manifest.json
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"skills": [
|
|
4
4
|
{
|
|
5
5
|
"name": "openxiangda-v2",
|
|
6
|
-
"description": "Use when researching, designing, building, testing, or delivering
|
|
7
|
-
"sha256": "
|
|
6
|
+
"description": "Use when researching, designing, building, testing, or delivering an OpenXiangda 2.0 application, including anonymous public forms and other no-account external-user pages.",
|
|
7
|
+
"sha256": "1f5bfa9cd4c29a971b9f77dbaf4023a339ddeaef6feb3bf5dcc8f8a90b261d8b"
|
|
8
8
|
}
|
|
9
9
|
]
|
|
10
10
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: openxiangda-v2
|
|
3
|
-
description: Use when researching, designing, building, testing, or delivering
|
|
3
|
+
description: Use when researching, designing, building, testing, or delivering an OpenXiangda 2.0 application, including anonymous public forms and other no-account external-user pages.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# OpenXiangda 2.0
|
|
@@ -10,14 +10,14 @@ Treat requirement discovery, architecture, authorization, development, testing a
|
|
|
10
10
|
Before a workspace exists, use this Skill's exact npm version:
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
|
-
pnpm dlx openxiangda@2.0.0-alpha.
|
|
14
|
-
pnpm dlx openxiangda@2.0.0-alpha.
|
|
13
|
+
pnpm dlx openxiangda@2.0.0-alpha.49 login --base-url <platform>
|
|
14
|
+
pnpm dlx openxiangda@2.0.0-alpha.49 create <directory>
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
Inside an application, use only its locked executable through `pnpm openxiangda`. Never invoke a bare global `openxiangda`, because that executable may belong to stable 1.x. Moving tags such as `latest` and `alpha` are forbidden. To install or refresh this same Skill from the package, run:
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
pnpm dlx openxiangda@2.0.0-alpha.
|
|
20
|
+
pnpm dlx openxiangda@2.0.0-alpha.49 skill install --force
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
Use this order:
|
|
@@ -27,10 +27,11 @@ Use this order:
|
|
|
27
27
|
3. If the workspace contains `appspec/`, the user asks to maintain requirements, or the task changes observable behavior, read [AppSpec](references/appspec.md), load the bounded index with `pnpm openxiangda spec context --json`, then select only the relevant stable ID. AppSpec is optional and never a release gate; L0 changes create no record.
|
|
28
28
|
4. Read [Architecture](references/architecture.md), assign one owner to each capability and keep ordinary CRUD on platform Data API.
|
|
29
29
|
5. For every resource or permission change, read [Data and authorization](references/data-authz.md) before editing `openxiangda.config.ts`.
|
|
30
|
-
6.
|
|
31
|
-
7.
|
|
32
|
-
8.
|
|
33
|
-
9.
|
|
30
|
+
6. If the request mentions external users without platform accounts, anonymous or guest access, a public form/page, resumable submission, duplicate checks, public uploads, or letting a visitor read their own submissions, read [Anonymous public access](references/public-access.md). Use the declared platform contract; do not invent a guest role, public Native Data API, fingerprint identity or application-owned token.
|
|
31
|
+
7. Read [Frontend](references/frontend.md) for pages or fields and [Backend actions](references/backend.md) only for a real business action.
|
|
32
|
+
8. When the application explicitly enables standard approval, application events or notifications, read [Workflow, Events and Notification Hub](references/workflow-events.md). Keep them optional and out of ordinary CRUD.
|
|
33
|
+
9. Run the connected loop with `pnpm openxiangda dev`, then follow [Testing](references/testing.md) and `pnpm openxiangda check`; check performs the target platform's read-only Native compatibility preflight before application checks or builds.
|
|
34
|
+
10. Follow [Delivery](references/delivery.md): deploy preproduction first, inspect status/logs, then promote the exact successful version to production.
|
|
34
35
|
|
|
35
36
|
For an AI-native client, start the workspace protocol through the same pinned executable:
|
|
36
37
|
|
|
@@ -40,7 +41,7 @@ pnpm exec openxiangda --mcp-stdio --cwd <workspace>
|
|
|
40
41
|
|
|
41
42
|
Read `openxiangda://workspace/contracts` or call `contract_describe`. For first-time menu authoring, copy `data.adminNavigationAuthoring.suggestion.expression` once into `frontend.admin.navigation` with its listed `openxiangda/config` imports, then edit that application-owned declaration; never treat the proposal as runtime discovery. When AppSpec is enabled, read `openxiangda://workspace/appspec` or call `appspec_context`; treat it as advisory context, never as deployment authority. Require `aiCatalog` and `aiCatalogDigest` to match the normal compiler output. Never create an application MCP server, Catalog file, preview store or AI authorization path.
|
|
42
43
|
|
|
43
|
-
|
|
44
|
+
Authenticated browser routes use the current logged-in user's complete application-role union. The only no-account exception is an exact static user route declared through `frontend.publicAccess`; it uses a platform-issued HttpOnly browser credential and dedicated `createAnonymousPublicClient` operations. It is not an application role, login session or general Data API identity. For both paths the platform remains authoritative for capabilities, fields, rows and RLS. A declared Perspective is only a read projection over the authenticated union: it may narrow pages, rows and readable fields, but never create/update/delete, workflow or custom-action authorization. Omitted Perspective means the complete union. Application code does not replace either identity, persist a platform token, construct an authorization result or keep a second permission state.
|
|
44
45
|
|
|
45
46
|
Applications own one explicit typed admin navigation declaration. The compiler
|
|
46
47
|
owns page/route generation, but it never turns every generated resource or
|
|
@@ -59,6 +60,7 @@ Read only the references needed for the current change, except the mandatory dis
|
|
|
59
60
|
- [Workspace agent contract](references/workspace.md)
|
|
60
61
|
- [Backend actions](references/backend.md)
|
|
61
62
|
- [Data and authorization](references/data-authz.md)
|
|
63
|
+
- [Anonymous public access](references/public-access.md)
|
|
62
64
|
- [Frontend](references/frontend.md)
|
|
63
65
|
- [Workflow, Events and Notification Hub](references/workflow-events.md)
|
|
64
66
|
- [Testing](references/testing.md)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "OpenXiangda 2.0"
|
|
3
|
-
short_description: "Build and
|
|
3
|
+
short_description: "Build internal and anonymous public OpenXiangda 2.0 apps"
|
|
4
4
|
default_prompt: "Use $openxiangda-v2 to build and validate this OpenXiangda 2.0 application."
|
|
@@ -5,6 +5,12 @@ Do not write `schemaVersion`, `appCode`, `schema`, `capabilities`, `surface` or
|
|
|
5
5
|
resource-level `fieldPolicies`; those are compiler projections, not application
|
|
6
6
|
source. Do not create `platform/data` modules.
|
|
7
7
|
|
|
8
|
+
Anonymous external access is not an application role, current-user policy or
|
|
9
|
+
unrestricted row grant. When a no-account visitor must submit, resume, upload or
|
|
10
|
+
read their own submissions, read [Anonymous public access](public-access.md) and
|
|
11
|
+
declare the exact `frontend.publicAccess` policy. Never widen the ordinary Native
|
|
12
|
+
Data API or manufacture an internal user to serve a public page.
|
|
13
|
+
|
|
8
14
|
```ts
|
|
9
15
|
import {
|
|
10
16
|
currentUserDataPolicy,
|
|
@@ -110,6 +110,22 @@ translate network/5xx and authenticated 403 states into login. Generated
|
|
|
110
110
|
`platformAuthManifest` is the independent login QA denominator and does not
|
|
111
111
|
change protected user route counts.
|
|
112
112
|
|
|
113
|
+
For a deliberately anonymous user page, first read
|
|
114
|
+
[Anonymous public access](public-access.md), declare one static `surface: 'user'`
|
|
115
|
+
route and bind it through `frontend.publicAccess`. The policy must name one
|
|
116
|
+
resource, its writable/returnable fields and only the bounded operations needed
|
|
117
|
+
by the page (`draft.read`, `draft.update`, `validate`, `create`, `own.list`,
|
|
118
|
+
`own.read`). A public route must not also declare `capability` or `access`.
|
|
119
|
+
Pass generated `anonymousPublicAccess` to
|
|
120
|
+
`<OpenXiangdaApplication publicAccess={anonymousPublicAccess}>`, then use
|
|
121
|
+
`createAnonymousPublicClient({ routeCode })` from `openxiangda/react` inside
|
|
122
|
+
the page. This client owns bootstrap, current-draft CAS, named validation,
|
|
123
|
+
managed upload, idempotent submission and owner-scoped list/detail calls. Do
|
|
124
|
+
not call the general Native Data API, store an identity in local storage, or
|
|
125
|
+
derive ownership from IP, user-agent or a browser fingerprint. The HttpOnly
|
|
126
|
+
browser credential identifies only this browser profile; clearing it or using
|
|
127
|
+
another browser loses access by design.
|
|
128
|
+
|
|
113
129
|
This is also the whole-application composition contract: pass the resulting
|
|
114
130
|
`contributions` to `OpenXiangdaApplication` and let that component remain the
|
|
115
131
|
only owner of `BrowserRouter`, `RuntimeBoundary`, Refine, generated resource and
|