@nocobase/app-plugin-office-flows-example 0.1.0-beta.5 → 0.1.0-beta.6
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/CHANGELOG.md +38 -0
- package/dist/client/lib/use-loader.d.ts +1 -4
- package/dist/client/lib/use-loader.d.ts.map +1 -1
- package/dist/client/lib/use-loader.js +48 -31
- package/dist/client/lib/use-loader.js.map +1 -1
- package/dist/server/providers/office-flows.d.ts +3 -0
- package/dist/server/providers/office-flows.d.ts.map +1 -1
- package/dist/server/providers/office-flows.js +20 -0
- package/dist/server/providers/office-flows.js.map +1 -1
- package/dist/shared/realtime.d.ts +3 -0
- package/dist/shared/realtime.d.ts.map +1 -0
- package/dist/shared/realtime.js +3 -0
- package/dist/shared/realtime.js.map +1 -0
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# @nocobase/app-plugin-office-flows-example
|
|
2
2
|
|
|
3
|
+
## 0.1.0-beta.6
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 1952789: Make mail synchronization and office workflow views refresh from committed state notifications, including empty sync results, failures, cancellation and lifecycle transitions. Add optional periodic reconciliation to the shared refresh scheduler, pause hidden views, and retain one-minute reconciliation for transient announcements and out-of-band changes. Reduce existing task, run, session and chat fallback reads to one minute while retaining time-based computer status checks, external indexing status reads, deployment health probes and bounded initialization waits.
|
|
8
|
+
|
|
9
|
+
Announce knowledge rechunking start and completion even when no chunks change, and support optional committed status notifications from external indexers. Continue tracking pending index work when some sections have already failed.
|
|
10
|
+
|
|
11
|
+
Preserve application providers when `renderWithApp` rerenders its page. Exercise mail refresh through real application services and fix the mail account navigation translation key exposed by those checks.
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- 1952789: Require explicitly declared realtime topics and authorize dynamic resources before subscription and delivery. Isolate the server core behind a broker contract, retain the application adapter and service tokens, and handle asynchronous publication throughout plugins and examples. Add acknowledged browser subscriptions, bounded recovery and heartbeat handling, shared React refresh helpers, original-session revalidation, transport limits, and usage documentation. The included adapter remains in-process; events are transient and clients recover by refetching after acknowledgement.
|
|
16
|
+
- 7afd595: Remove Refine from the client runtime
|
|
17
|
+
|
|
18
|
+
The application shell no longer mounts Refine. `@nocobase/app-client` drops `app.refine`, `app.refineConfig`, `AppClientRefineConfig`, `AppClientRefineRegistry`, `AppClientRefineSetters`, `AppClientRefineSetterValue` and the provider-context methods `runWithProviderContext` and `runWithProviderContextAsync`, which existed only to attribute Refine settings to the provider that made them. Nothing in the repository read what was registered there: a title set through `app.refine.setOptions` never reached the page, and Refine resources never produced a menu entry.
|
|
19
|
+
|
|
20
|
+
Refine also created the TanStack Query cache that pages read through `useQueryClient()`; `AppClientProviders` now creates it in the same place, the same way, so pages and plugins behave as before. `@tanstack/react-query` becomes a peer dependency of `@nocobase/app-client` and joins the identity-sensitive packages that plugins must declare as peers.
|
|
21
|
+
|
|
22
|
+
`@nocobase/i18n/client` drops `createRefineI18nProvider`, `CreateRefineI18nProviderOptions` and `RefineI18nProvider`. `@nocobase/app-plugin-repository-example` drops its Client ServiceProvider and the `./client/providers` export, which only registered Refine resources.
|
|
23
|
+
|
|
24
|
+
`nocobase build` builds the client with `vite build` instead of `refine build`, and `@nocobase/app-cli` no longer lists `@refinedev/cli` as an optional peer. The Default and Examples templates remove every `@refinedev/*` development dependency. The development and plugin Skills no longer mention Refine, and the upgrade Skill explains how an existing application removes its `this.app.refine` calls and Refine packages.
|
|
25
|
+
|
|
26
|
+
- Updated dependencies [1952789]
|
|
27
|
+
- Updated dependencies [1952789]
|
|
28
|
+
- Updated dependencies [1952789]
|
|
29
|
+
- Updated dependencies [1952789]
|
|
30
|
+
- Updated dependencies [1952789]
|
|
31
|
+
- Updated dependencies [7afd595]
|
|
32
|
+
- @nocobase/app-client@4.0.0-beta.0
|
|
33
|
+
- @nocobase/app-plugin-authentication@2.0.0-beta.11
|
|
34
|
+
- @nocobase/app-server@3.0.0-beta.0
|
|
35
|
+
- @nocobase/i18n@2.0.0-beta.0
|
|
36
|
+
- @nocobase/db@1.0.0-beta.21
|
|
37
|
+
- @nocobase/jobs@0.1.0-beta.3
|
|
38
|
+
- @nocobase/lifecycle@0.1.0-beta.2
|
|
39
|
+
- @nocobase/service-provider@0.0.2-beta.2
|
|
40
|
+
|
|
3
41
|
## 0.1.0-beta.5
|
|
4
42
|
|
|
5
43
|
### Patch Changes
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Loads `load` now and every few seconds while `key` stays the same, and
|
|
3
|
-
* returns a `reload` for after an action. A failed load keeps the last data.
|
|
4
|
-
*/
|
|
1
|
+
/** Reads on lifecycle changes, readiness and focus, with reconciliation for edits outside the lifecycle. */
|
|
5
2
|
export declare function useLoader<T>(load: (() => Promise<T>) | undefined, key: string): {
|
|
6
3
|
readonly data: T | undefined;
|
|
7
4
|
readonly error: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-loader.d.ts","sourceRoot":"","sources":["../../../client/lib/use-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-loader.d.ts","sourceRoot":"","sources":["../../../client/lib/use-loader.ts"],"names":[],"mappings":"AASA,4GAA4G;AAC5G,wBAAgB,SAAS,CAAC,CAAC,EACzB,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EACpC,GAAG,EAAE,MAAM,GACV;IACD,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC,CAsDA"}
|
|
@@ -1,42 +1,59 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createRealtimeRefresh, realtimeClientToken, useService, } from '@nocobase/app-client';
|
|
2
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
3
|
+
import { OFFICE_FLOWS_TOPIC } from '../../shared/realtime.js';
|
|
2
4
|
import { errorMessage } from './api.js';
|
|
3
|
-
/**
|
|
4
|
-
const REFRESH_MS = 4000;
|
|
5
|
-
/**
|
|
6
|
-
* Loads `load` now and every few seconds while `key` stays the same, and
|
|
7
|
-
* returns a `reload` for after an action. A failed load keeps the last data.
|
|
8
|
-
*/
|
|
5
|
+
/** Reads on lifecycle changes, readiness and focus, with reconciliation for edits outside the lifecycle. */
|
|
9
6
|
export function useLoader(load, key) {
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
const realtime = useService(realtimeClientToken);
|
|
8
|
+
const loadRef = useRef(load);
|
|
9
|
+
const reloadRef = useRef(async () => { });
|
|
12
10
|
const [loaded, setLoaded] = useState();
|
|
13
|
-
const [
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
try {
|
|
18
|
-
const data = await load();
|
|
19
|
-
setLoaded({ key, data });
|
|
20
|
-
setError('');
|
|
21
|
-
}
|
|
22
|
-
catch (cause) {
|
|
23
|
-
setError(errorMessage(cause));
|
|
24
|
-
}
|
|
25
|
-
// `key` stands for everything `load` closes over.
|
|
26
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps, @eslint-react/exhaustive-deps
|
|
27
|
-
}, [key]);
|
|
11
|
+
const [failure, setFailure] = useState();
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
loadRef.current = load;
|
|
14
|
+
});
|
|
28
15
|
useEffect(() => {
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
16
|
+
const waiting = new Set();
|
|
17
|
+
const settle = () => {
|
|
18
|
+
for (const resolve of waiting)
|
|
19
|
+
resolve();
|
|
20
|
+
waiting.clear();
|
|
21
|
+
};
|
|
22
|
+
const scheduled = createRealtimeRefresh(async (signal) => {
|
|
23
|
+
if (!loadRef.current)
|
|
24
|
+
return;
|
|
25
|
+
const data = await loadRef.current();
|
|
26
|
+
if (signal.aborted)
|
|
27
|
+
return;
|
|
28
|
+
setLoaded({ key, data });
|
|
29
|
+
setFailure(undefined);
|
|
30
|
+
}, {
|
|
31
|
+
refreshIntervalMs: 60_000,
|
|
32
|
+
onError: (error) => setFailure({ key, message: errorMessage(error) }),
|
|
33
|
+
onStateChange: ({ status }) => {
|
|
34
|
+
if (status === 'idle' || status === 'failed' || status === 'closed')
|
|
35
|
+
settle();
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
reloadRef.current = () => new Promise((resolve) => {
|
|
39
|
+
waiting.add(resolve);
|
|
40
|
+
scheduled.retry();
|
|
41
|
+
});
|
|
42
|
+
const subscription = realtime.watch(OFFICE_FLOWS_TOPIC, {
|
|
43
|
+
onEvent: scheduled.request,
|
|
44
|
+
onReady: scheduled.retry,
|
|
45
|
+
});
|
|
46
|
+
scheduled.request();
|
|
32
47
|
return () => {
|
|
33
|
-
|
|
34
|
-
|
|
48
|
+
reloadRef.current = async () => { };
|
|
49
|
+
subscription.close();
|
|
50
|
+
scheduled.close();
|
|
35
51
|
};
|
|
36
|
-
}, [
|
|
52
|
+
}, [key, realtime]);
|
|
53
|
+
const reload = useCallback(() => reloadRef.current(), []);
|
|
37
54
|
return {
|
|
38
55
|
data: loaded?.key === key ? loaded.data : undefined,
|
|
39
|
-
error,
|
|
56
|
+
error: failure?.key === key ? failure.message : '',
|
|
40
57
|
reload,
|
|
41
58
|
};
|
|
42
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-loader.js","sourceRoot":"","sources":["../../../client/lib/use-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"use-loader.js","sourceRoot":"","sources":["../../../client/lib/use-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,10 @@ export declare class OfficeFlowsProvider extends ServiceProvider<AppPluginApplic
|
|
|
13
13
|
readonly name: string;
|
|
14
14
|
private jobs;
|
|
15
15
|
private runtime;
|
|
16
|
+
private topic?;
|
|
17
|
+
private releaseRealtime?;
|
|
16
18
|
register(): void;
|
|
19
|
+
boot(): Promise<void>;
|
|
17
20
|
start(): Promise<void>;
|
|
18
21
|
shutdown(): Promise<void>;
|
|
19
22
|
private lifecycleRuntime;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"office-flows.d.ts","sourceRoot":"","sources":["../../../server/providers/office-flows.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"office-flows.d.ts","sourceRoot":"","sources":["../../../server/providers/office-flows.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAUzE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAQ7D,2EAA2E;AAC3E,eAAO,MAAM,QAAQ,EAAE,MAAe,CAAC;AAEvC;;;;;;GAMG;AACH,qBAAa,mBAAoB,SAAQ,eAAe,CAAC,oBAAoB,CAAC;IAC5E,SAAgB,IAAI,EAAE,MAAM,CAAsB;IAClD,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,KAAK,CAAC,CAA2D;IACzE,OAAO,CAAC,eAAe,CAAC,CAAa;IAErB,QAAQ,IAAI,IAAI;IAWhB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/C,OAAO,CAAC,gBAAgB;IAwBxB,+DAA+D;IAC/D,OAAO,CAAC,UAAU;CA0BnB"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { realtimeServiceToken, } from '@nocobase/app-server/realtime';
|
|
2
|
+
import { OFFICE_FLOWS_TOPIC } from '../../shared/realtime.js';
|
|
1
3
|
import { jobExecutorServiceToken } from '@nocobase/app-server/jobs';
|
|
2
4
|
import { loggingToken } from '@nocobase/app-server/logging';
|
|
3
5
|
import { databaseManagerToken } from '@nocobase/db';
|
|
@@ -22,18 +24,36 @@ export class OfficeFlowsProvider extends ServiceProvider {
|
|
|
22
24
|
name = OFFICE_FLOWS_SCOPE;
|
|
23
25
|
jobs;
|
|
24
26
|
runtime;
|
|
27
|
+
topic;
|
|
28
|
+
releaseRealtime;
|
|
25
29
|
register() {
|
|
26
30
|
this.app.container.singleton(officeFlowsServiceToken, () => {
|
|
27
31
|
const database = this.app.container.resolve(databaseManagerToken);
|
|
28
32
|
return new OfficeFlowsService(database, this.lifecycleRuntime(), new OfficeStore(database));
|
|
29
33
|
});
|
|
30
34
|
}
|
|
35
|
+
boot() {
|
|
36
|
+
this.topic = this.app.container
|
|
37
|
+
.resolve(realtimeServiceToken)
|
|
38
|
+
.defineTopic(OFFICE_FLOWS_TOPIC, {
|
|
39
|
+
audience: 'public',
|
|
40
|
+
authenticated: true,
|
|
41
|
+
});
|
|
42
|
+
this.releaseRealtime = this.lifecycleRuntime().on('completed', {}, async () => {
|
|
43
|
+
await this.topic?.publish({ kind: 'office.changed' });
|
|
44
|
+
});
|
|
45
|
+
return Promise.resolve();
|
|
46
|
+
}
|
|
31
47
|
async start() {
|
|
32
48
|
await this.effectJobs().start(this.lifecycleRuntime());
|
|
33
49
|
}
|
|
34
50
|
async shutdown() {
|
|
35
51
|
await this.jobs?.shutdown();
|
|
36
52
|
this.jobs = undefined;
|
|
53
|
+
this.releaseRealtime?.();
|
|
54
|
+
this.releaseRealtime = undefined;
|
|
55
|
+
this.topic?.close();
|
|
56
|
+
this.topic = undefined;
|
|
37
57
|
}
|
|
38
58
|
lifecycleRuntime() {
|
|
39
59
|
if (this.runtime)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"office-flows.js","sourceRoot":"","sources":["../../../server/providers/office-flows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EACL,8BAA8B,EAC9B,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,GAEpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,QAAQ,GAAW,MAAM,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,OAAO,mBAAoB,SAAQ,eAAqC;IAC5D,IAAI,GAAW,kBAAkB,CAAC;IAC1C,IAAI,CAA4B;IAChC,OAAO,CAA+B;
|
|
1
|
+
{"version":3,"file":"office-flows.js","sourceRoot":"","sources":["../../../server/providers/office-flows.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAErB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EACL,8BAA8B,EAC9B,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,GAEpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,QAAQ,GAAW,MAAM,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,OAAO,mBAAoB,SAAQ,eAAqC;IAC5D,IAAI,GAAW,kBAAkB,CAAC;IAC1C,IAAI,CAA4B;IAChC,OAAO,CAA+B;IACtC,KAAK,CAA4D;IACjE,eAAe,CAAc;IAErB,QAAQ;QACtB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,uBAAuB,EAAE,GAAG,EAAE;YACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAClE,OAAO,IAAI,kBAAkB,CAC3B,QAAQ,EACR,IAAI,CAAC,gBAAgB,EAAE,EACvB,IAAI,WAAW,CAAC,QAAQ,CAAC,CAC1B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEe,IAAI;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS;aAC5B,OAAO,CAAC,oBAAoB,CAAC;aAC7B,WAAW,CAAC,kBAAkB,EAAE;YAC/B,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACL,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAC/C,WAAW,EACX,EAAE,EACF,KAAK,IAAI,EAAE;YACT,MAAM,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACxD,CAAC,CACF,CAAC;QACF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAEe,KAAK,CAAC,KAAK;QACzB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACzD,CAAC;IAEe,KAAK,CAAC,QAAQ;QAC5B,MAAM,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;IAEO,gBAAgB;QACtB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS;aAC9B,OAAO,CAAC,YAAY,CAAC;aACrB,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC;YACnC,KAAK,EAAE,8BAA8B,CAAC,QAAQ,EAAE;gBAC9C,WAAW,EAAE;oBACX,WAAW,EAAE,WAAW,CAAC,WAAW;oBACpC,UAAU,EAAE,WAAW,CAAC,UAAU;iBACnC;aACF,CAAC;YACF,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;YAC7B,MAAM,EAAE;gBACN,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC;gBAC7D,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC;aAChE;SACF,CAAC,CAAC;QACH,kBAAkB,CAAC,OAAO,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,+DAA+D;IACvD,UAAU;QAChB,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS;aAC9B,OAAO,CAAC,YAAY,CAAC;aACrB,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;YAC9B,IAAI,EAAE,SAAS,CAAC,cAAc,CAAC,kBAAkB,CAAC;YAClD,QAAQ,EAAE,SAAS,CAAC,mBAAmB,CAAC,kBAAkB,CAAC;YAC3D,iDAAiD;YACjD,OAAO,EAAE,GAAG,kBAAkB,SAAS;YACvC,SAAS,EAAE,OAAO;YAClB,YAAY,EAAE,QAAQ;YACtB,+DAA+D;YAC/D,OAAO,EAAE,GAAG,EAAE,CACZ,IAAI,CAAC,GAAG,CAAC,SAAS;iBACf,OAAO,CAAC,uBAAuB,CAAC;iBAChC,WAAW,EAAE;iBACb,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;YAC1B,MAAM,EAAE;gBACN,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC;gBAC7D,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC;aAChE;SACF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../../shared/realtime.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,eAAO,MAAM,kBAAkB,EAAE,MAA+B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realtime.js","sourceRoot":"","sources":["../../shared/realtime.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,MAAM,CAAC,MAAM,kBAAkB,GAAW,sBAAsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@nocobase/app-plugin-office-flows-example",
|
|
3
3
|
"displayName": "Office Flows Example App Plugin",
|
|
4
4
|
"description": "Example app plugin running two office processes on record lifecycles: a data usage request with scheduled extraction tasks, and incoming document distribution with three levels of sub-tasks.",
|
|
5
|
-
"version": "0.1.0-beta.
|
|
5
|
+
"version": "0.1.0-beta.6",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"prettier": "@nocobase/dev-config/prettier",
|
|
8
8
|
"engines": {
|
|
@@ -38,11 +38,11 @@
|
|
|
38
38
|
"cn": "^0.4.0",
|
|
39
39
|
"lucide-react": "^0.487.0",
|
|
40
40
|
"react": "^19.0.0",
|
|
41
|
-
"@nocobase/app-client": "^
|
|
42
|
-
"@nocobase/app-plugin-authentication": "^2.0.0-beta.
|
|
43
|
-
"@nocobase/app-server": "^
|
|
41
|
+
"@nocobase/app-client": "^4.0.0-beta.0",
|
|
42
|
+
"@nocobase/app-plugin-authentication": "^2.0.0-beta.11",
|
|
43
|
+
"@nocobase/app-server": "^3.0.0-beta.0",
|
|
44
44
|
"@nocobase/db": "^1.0.0-beta.21",
|
|
45
|
-
"@nocobase/i18n": "^
|
|
45
|
+
"@nocobase/i18n": "^2.0.0-beta.0",
|
|
46
46
|
"@nocobase/jobs": "^0.1.0-beta.3",
|
|
47
47
|
"@nocobase/lifecycle": "^0.1.0-beta.2",
|
|
48
48
|
"@nocobase/service-provider": "^0.0.2-beta.2"
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
"react-dom": "^19.2.8",
|
|
59
59
|
"typescript": "^6.0.3",
|
|
60
60
|
"vitest": "^4.1.10",
|
|
61
|
-
"@nocobase/app-testing": "0.1.0-beta.
|
|
62
|
-
"@nocobase/dev-config": "0.1.0-beta.
|
|
61
|
+
"@nocobase/app-testing": "0.1.0-beta.5",
|
|
62
|
+
"@nocobase/dev-config": "0.1.0-beta.24"
|
|
63
63
|
},
|
|
64
64
|
"scripts": {
|
|
65
65
|
"build": "tsc -p tsconfig.json && nocobase-db-manifests",
|