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.
@@ -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;AAsBD;;;;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,yBAAyB,CACvC,KAAK,EAAE,SAAS,oBAAoB,EAAE,EACtC,KAAK,EAAE,0BAA0B,GAChC,SAAS,oBAAoB,EAAE,CAwCjC"}
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":"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"}
1
+ {"version":3,"file":"route-manifest.js","sourceRoot":"","sources":["../../src/browser/route-manifest.ts"],"names":[],"mappings":"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"}
@@ -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,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAKL,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,GACZ,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;CACtD,2CAmKA;AAoGD,wBAAgB,UAAU,iBAIzB"}
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"}
@@ -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":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACnD,OAAO,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,eAAe,EACf,OAAO,EACP,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EACL,iCAAiC,EACjC,wBAAwB,EACxB,+BAA+B,EAC/B,uCAAuC,GAGxC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,eAAe,EACf,YAAY,EACZ,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,0BAA0B,GAE3B,MAAM,kBAAkB,CAAC;AAgB1B,MAAM,cAAc,GAAG,aAAa,CAAsB,IAAI,CAAC,CAAC;AAOhE,MAAM,UAAU,mCAAmC,CACjD,KAAc;IAEd,IAAI,iCAAiC,CAAC,KAAK,CAAC;QAAE,OAAO,iBAAiB,CAAC;IACvE,IACE,KAAK,YAAY,+BAA+B;QAChD,KAAK,CAAC,MAAM,KAAK,GAAG,EACpB,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,yBAAyB,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAC9B,QAAQ,EACR,YAAY,GAAG,EAAE,EACjB,cAAc,GAAG,EAAE,EACnB,MAAM,GAAG,EAAE,GAMZ;IACC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,EAAwB,CAAC;IAC3E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAS,CAAC;IAC5C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,EAAU,CAAC;IACjE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC5B,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,KAAK,wBAAwB,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAC1D,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACxB,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC,EACD,MAAM,CAAC,EAAE,CACP,MAAM;YACN,QAAQ,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CACzE,CAAC;QACF,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,SAAS,CACP,GAAG,EAAE,CACH,uCAAuC,CAAC,GAAG,EAAE;QAC3C,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC5B,QAAQ,CACN,IAAI,+BAA+B,CAAC;YAClC,IAAI,EAAE,kCAAkC;YACxC,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,WAAW;SACrB,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,EACJ,EAAE,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,aAAa,EAAE,QAAQ,IAAI,IAAI,CAAC;IACjD,MAAM,UAAU,GACd,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,YAAY;QAC1C,YAAY,EAAE,EAAE,cAAc,KAAK,YAAY,CAAC;IAClD,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAC3C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAChD,CAAC;IACF,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;QACzD,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,uBAAuB,GAAG,cAAc,CAAC,IAAI,CACjD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,eAAe,CAChD,CAAC;IACF,MAAM,eAAe,GAAG,GAAG,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IACjF,MAAM,WAAW,GAAG,KAAK;QACvB,CAAC,CAAC,mCAAmC,CAAC,KAAK,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,gBAAgB,GAAG,iBAAiB;QACxC,CAAC,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;YACpD,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC;YACpE,GAAG;QACL,CAAC,CAAC,eAAe,CAAC;IAEpB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,QAAQ,IAAI,CAAC,eAAe;YAAE,OAAO;QACzD,MAAM,UAAU,GAAG,eAAe,CAAC;QACnC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC9B,QAAQ,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;IAEzD,OAAO,CACL,8BACG,UAAU,IAAI,CACb,KAAC,KAAK,IACJ,MAAM,QACN,QAAQ,QACR,IAAI,EAAC,OAAO,iBACA,yBAAyB,EACrC,KAAK,EAAC,oKAA6B,GACnC,CACH,EACA,KAAK,IAAI,WAAW,KAAK,iBAAiB,IAAI,iBAAiB,CAAC,CAAC,CAAC,CACjE,KAAC,0BAA0B,IACzB,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EACzD,YAAY,EAAE,iBAAiB,EAC/B,QAAQ,EAAE,gBAAgB,EAC1B,eAAe,EAAE,KAAK,EAAC,UAAU,EAAC,EAAE;oBAClC,kBAAkB,CAAC,UAAU,CAAC,CAAC;oBAC/B,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACjC,CAAC,GACD,CACH,CAAC,CAAC,CAAC,KAAK;gBACP,WAAW,KAAK,iBAAiB;gBACjC,uBAAuB,CAAC,CAAC,CAAC,CAC1B,KAAC,QAAQ,IACP,OAAO,QACP,EAAE,EAAE,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,aAAa,kBAAkB,CACxE,eAAe,CAChB,EAAE,GACH,CACH,CAAC,CAAC,CAAC,KAAK,IAAI,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,CACzC,KAAC,MAAM,IACL,MAAM,EAAC,KAAK,EACZ,KAAK,EAAC,oEAAa,EACnB,QAAQ,EAAC,oKAA6B,EACtC,KAAK,EACH,KAAC,MAAM,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,yCAE5C,GAEX,CACH,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACV,KAAC,MAAM,IACL,MAAM,EAAC,OAAO,EACd,KAAK,EAAC,0EAAc,EACpB,QAAQ,EAAC,0KAA8B,EACvC,KAAK,EACH,KAAC,MAAM,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,6BAE5C,GAEX,CACH,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,CAC1C,KAAC,MAAM,IACL,MAAM,EAAC,KAAK,EACZ,KAAK,EAAC,kDAAU,EAChB,QAAQ,EAAC,4LAAiC,EAC1C,KAAK,EACH,KAAC,MAAM,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,yCAE5C,GAEX,CACH,CAAC,CAAC,CAAC,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC,CAC9B,iBAAiB,CAAC,CAAC,CAAC,CAClB,KAAC,QAAQ,IACP,OAAO,QACP,EAAE,EACA,gBAAgB,CACd,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,EAC1C,MAAM,CACP,IAAI,GAAG,GAEV,CACH,CAAC,CAAC,CAAC,CACF,KAAC,aAAa,IACZ,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,YAEzB,QAAQ,GACK,CACjB,CACF,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,aAAa,YAC1B,KAAC,IAAI,IAAC,WAAW,EAAC,kGAAkB,GAAG,GACnC,CACP,IACA,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,SAAiB,EACjB,MAAmD;IAEnD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC;AACxE,CAAC;AAED,SAAS,aAAa,CAAC,EACrB,aAAa,EACb,QAAQ,EACR,aAAa,EACb,YAAY,EAAE,oBAAoB,GAMnC;IACC,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAS,CAAC;IACzC,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CACH,oBAAoB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CACxC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CACpC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACtC,CACF,EACH,CAAC,oBAAoB,EAAE,QAAQ,CAAC,SAAS,CAAC,CAC3C,CAAC;IACF,MAAM,UAAU,GAAG,2BAA2B,eAAe,EAAE,IAAI,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;IACjH,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAgB,GAAG,EAAE;QACzE,MAAM,MAAM,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QAC7E,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;IAC/D,CAAC,CAAC,CAAC;IACH,MAAM,WAAW,GACf,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,IAAI,CAAC;IAEnE,eAAe,CAAC,GAAG,EAAE;QACnB,wBAAwB,CAAC,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;QACpD,0BAA0B,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;QAClE,OAAO,GAAG,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAEpC,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ;QACR,aAAa;QACb,aAAa;QACb,aAAa,EAAE,IAAI,CAAC,EAAE,CACpB,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;QACrE,iBAAiB,EAAE,IAAI,CAAC,EAAE,CACxB,QAAQ,CAAC,eAAe;YACxB,CAAC,CAAC,WAAW;gBACX,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACzC,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjD,YAAY;QACZ,WAAW;QACX,cAAc,EAAE,IAAI,CAAC,EAAE;YACrB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7C,IACE,UAAU;gBACV,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,EACpD,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YACD,kBAAkB,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;QACzC,CAAC;KACF,CAAC,EACF,CAAC,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,CAAC,CACpE,CAAC;IAEF,OAAO,CACL,KAAC,cAAc,CAAC,QAAQ,IAEtB,KAAK,EAAE,KAAK,YAEX,QAAQ,IAHJ,GAAG,QAAQ,CAAC,aAAa,IAAI,aAAa,IAAI,WAAW,EAAE,IAAI,IAAI,OAAO,EAAE,CAIzD,CAC3B,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,GAAW;IAC5C,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,GAAW,EAAE,IAAmB;IAClE,IAAI,CAAC;QACH,IAAI,IAAI;YAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;;YAC5C,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;IAC9E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC;AACf,CAAC"}
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';
@@ -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.48",
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.133",
53
- "openxiangda-contracts": "2.0.0-alpha.66",
54
- "openxiangda-devkit-core": "2.0.0-alpha.86",
55
- "openxiangda-mcp": "2.0.0-alpha.86",
56
- "openxiangda-nest": "2.0.0-alpha.77",
57
- "openxiangda-skill-kit": "2.0.0-alpha.107",
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": {
@@ -3,8 +3,8 @@
3
3
  "skills": [
4
4
  {
5
5
  "name": "openxiangda-v2",
6
- "description": "Use when researching, designing, building, testing, or delivering a complete OpenXiangda 2.0 application.",
7
- "sha256": "58f0524847353f8e8fd0b583e2a3566cac1b646e6c19fc5f62473c801e91a8dc"
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 a complete OpenXiangda 2.0 application.
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.48 login --base-url <platform>
14
- pnpm dlx openxiangda@2.0.0-alpha.48 create <directory>
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.48 skill install --force
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. Read [Frontend](references/frontend.md) for pages or fields and [Backend actions](references/backend.md) only for a real business action.
31
- 7. 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.
32
- 8. 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.
33
- 9. Follow [Delivery](references/delivery.md): deploy preproduction first, inspect status/logs, then promote the exact successful version to production.
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
- The browser uses the current logged-in user's complete application-role union. The platform is authoritative for capabilities, fields, rows and RLS. A declared Perspective is only a read projection over that 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 the authenticated identity, persist a platform token, construct an authorization result or keep a second permission state.
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 deliver typed OpenXiangda 2.0 applications"
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