@pilotiq/pilotiq 0.21.0 → 0.22.0
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/.turbo/turbo-build.log +2 -2
- package/CHANGELOG.md +88 -0
- package/dist/Pilotiq.d.ts +72 -0
- package/dist/Pilotiq.d.ts.map +1 -1
- package/dist/Pilotiq.js +145 -0
- package/dist/Pilotiq.js.map +1 -1
- package/dist/PilotiqServiceProvider.d.ts +2 -0
- package/dist/PilotiqServiceProvider.d.ts.map +1 -1
- package/dist/PilotiqServiceProvider.js +60 -12
- package/dist/PilotiqServiceProvider.js.map +1 -1
- package/dist/actions/importFactory.d.ts +5 -0
- package/dist/actions/importFactory.d.ts.map +1 -1
- package/dist/actions/importFactory.js +20 -10
- package/dist/actions/importFactory.js.map +1 -1
- package/dist/orm/modelDefaults.d.ts +10 -1
- package/dist/orm/modelDefaults.d.ts.map +1 -1
- package/dist/orm/modelDefaults.js +7 -2
- package/dist/orm/modelDefaults.js.map +1 -1
- package/dist/pageData/forms.js +3 -3
- package/dist/pageData/forms.js.map +1 -1
- package/dist/pageData/misc.js +5 -5
- package/dist/pageData/misc.js.map +1 -1
- package/dist/pageData/navigation.d.ts.map +1 -1
- package/dist/pageData/navigation.js +11 -9
- package/dist/pageData/navigation.js.map +1 -1
- package/dist/pageData/relationPages.d.ts.map +1 -1
- package/dist/pageData/relationPages.js +7 -4
- package/dist/pageData/relationPages.js.map +1 -1
- package/dist/pageData/resourcePages.js +6 -6
- package/dist/pageData/resourcePages.js.map +1 -1
- package/dist/plugins/index.d.ts +3 -0
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +1 -0
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/themeEditor.d.ts +20 -1
- package/dist/plugins/themeEditor.d.ts.map +1 -1
- package/dist/plugins/themeEditor.js +3 -1
- package/dist/plugins/themeEditor.js.map +1 -1
- package/dist/react/CollabRoomContext.d.ts +12 -0
- package/dist/react/CollabRoomContext.d.ts.map +1 -1
- package/dist/react/CollabRoomContext.js.map +1 -1
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -0
- package/dist/react/index.js.map +1 -1
- package/dist/react/useCollabSeed.d.ts +23 -0
- package/dist/react/useCollabSeed.d.ts.map +1 -0
- package/dist/react/useCollabSeed.js +67 -0
- package/dist/react/useCollabSeed.js.map +1 -0
- package/dist/routes/globals.d.ts.map +1 -1
- package/dist/routes/globals.js +8 -22
- package/dist/routes/globals.js.map +1 -1
- package/dist/routes/helpers.d.ts +13 -0
- package/dist/routes/helpers.d.ts.map +1 -1
- package/dist/routes/helpers.js +25 -8
- package/dist/routes/helpers.js.map +1 -1
- package/dist/routes/resources.d.ts.map +1 -1
- package/dist/routes/resources.js +12 -34
- package/dist/routes/resources.js.map +1 -1
- package/dist/routes/theme.d.ts +4 -2
- package/dist/routes/theme.d.ts.map +1 -1
- package/dist/routes/theme.js +27 -26
- package/dist/routes/theme.js.map +1 -1
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +65 -37
- package/dist/routes.js.map +1 -1
- package/dist/theme/index.d.ts +2 -0
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +1 -0
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/storage.d.ts +86 -0
- package/dist/theme/storage.d.ts.map +1 -0
- package/dist/theme/storage.js +52 -0
- package/dist/theme/storage.js.map +1 -0
- package/package.json +1 -1
- package/src/Pilotiq.perf.test.ts +252 -0
- package/src/Pilotiq.test.ts +4 -0
- package/src/Pilotiq.ts +166 -0
- package/src/PilotiqServiceProvider.ts +63 -11
- package/src/actions/importFactory.ts +31 -10
- package/src/orm/modelDefaults.ts +15 -2
- package/src/pageData/forms.ts +3 -3
- package/src/pageData/misc.ts +5 -5
- package/src/pageData/navigation.ts +11 -9
- package/src/pageData/relationPages.ts +5 -3
- package/src/pageData/resourcePages.ts +6 -6
- package/src/plugins/index.ts +7 -0
- package/src/plugins/themeEditor.test.ts +36 -0
- package/src/plugins/themeEditor.ts +22 -1
- package/src/react/CollabRoomContext.ts +12 -0
- package/src/react/index.ts +1 -0
- package/src/react/useCollabSeed.ts +73 -0
- package/src/routes/globals.ts +8 -16
- package/src/routes/guard.test.ts +325 -0
- package/src/routes/helpers.ts +30 -8
- package/src/routes/resources.ts +12 -22
- package/src/routes/theme.ts +26 -44
- package/src/routes.ts +65 -36
- package/src/theme/index.ts +6 -0
- package/src/theme/storage.test.ts +126 -0
- package/src/theme/storage.ts +106 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { useEffect, useRef, useState } from 'react';
|
|
2
|
+
const SEED_ORIGIN = 'pilotiq-collab-seed';
|
|
3
|
+
/**
|
|
4
|
+
* Run `seedFn` exactly once after the collab room's first sync.
|
|
5
|
+
*
|
|
6
|
+
* Mirrors `@rudderjs/sync/react`'s `useCollabSeed` shape — same purpose,
|
|
7
|
+
* reimplemented here so pilotiq core stays free of any hard runtime dep
|
|
8
|
+
* on Yjs. The `room` parameter is pilotiq's opaque `CollabRoom`, so the
|
|
9
|
+
* seed callback receives `doc: unknown` and is responsible for its own
|
|
10
|
+
* share-type lookup (`doc.getXmlFragment(key)` for Tiptap consumers,
|
|
11
|
+
* `doc.getText(key)` for CodeMirror, etc.) and its own emptiness check.
|
|
12
|
+
*
|
|
13
|
+
* Returns `true` once the seed callback has run (or was skipped because
|
|
14
|
+
* the room has no `.synced` Promise — i.e. a legacy non-framework
|
|
15
|
+
* provider), so consumers can gate editor mount / placeholder swap.
|
|
16
|
+
*
|
|
17
|
+
* The hook wraps `seedFn` in `doc.transact(..., 'pilotiq-collab-seed')`
|
|
18
|
+
* so downstream observers can filter the synthetic write. Two peers
|
|
19
|
+
* mounting against a brand-new record may both see "empty" and both
|
|
20
|
+
* seed — same race window as the legacy `onProviderSynced` path; the
|
|
21
|
+
* fix is server-side seed handoff, deferred.
|
|
22
|
+
*/
|
|
23
|
+
export function useCollabSeed(room, key, seedFn) {
|
|
24
|
+
const [seeded, setSeeded] = useState(false);
|
|
25
|
+
const seedFnRef = useRef(seedFn);
|
|
26
|
+
seedFnRef.current = seedFn;
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (!room) {
|
|
29
|
+
setSeeded(false);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
// Legacy rooms without `.synced` — the room owner is on the hook
|
|
33
|
+
// for whatever first-sync gating they used to do via
|
|
34
|
+
// `onProviderSynced`. Mark seeded immediately so the consumer
|
|
35
|
+
// can mount without a placeholder. No seedFn runs.
|
|
36
|
+
const syncedPromise = room.synced;
|
|
37
|
+
if (!syncedPromise) {
|
|
38
|
+
setSeeded(true);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
let cancelled = false;
|
|
42
|
+
syncedPromise.then(() => {
|
|
43
|
+
if (cancelled)
|
|
44
|
+
return;
|
|
45
|
+
try {
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
47
|
+
const ydoc = room.ydoc;
|
|
48
|
+
if (ydoc && typeof ydoc.transact === 'function') {
|
|
49
|
+
ydoc.transact(() => seedFnRef.current(ydoc), SEED_ORIGIN);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
seedFnRef.current(ydoc);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch { /* ignore — seed is best-effort */ }
|
|
56
|
+
setSeeded(true);
|
|
57
|
+
}).catch(() => {
|
|
58
|
+
// synced rejects when the room is torn down before first sync.
|
|
59
|
+
// Don't surface as a seed failure — the room is gone.
|
|
60
|
+
if (!cancelled)
|
|
61
|
+
setSeeded(false);
|
|
62
|
+
});
|
|
63
|
+
return () => { cancelled = true; };
|
|
64
|
+
}, [room, key]);
|
|
65
|
+
return seeded;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=useCollabSeed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCollabSeed.js","sourceRoot":"","sources":["../../src/react/useCollabSeed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGnD,MAAM,WAAW,GAAG,qBAAqB,CAAA;AAEzC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,aAAa,CAC3B,IAA0B,EAC1B,GAAe,EACf,MAA+B;IAE/B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAChC,SAAS,CAAC,OAAO,GAAG,MAAM,CAAA;IAE1B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,SAAS,CAAC,KAAK,CAAC,CAAA;YAChB,OAAM;QACR,CAAC;QACD,iEAAiE;QACjE,qDAAqD;QACrD,8DAA8D;QAC9D,mDAAmD;QACnD,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAA;QACjC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,SAAS,CAAC,IAAI,CAAC,CAAA;YACf,OAAM;QACR,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE;YACtB,IAAI,SAAS;gBAAE,OAAM;YACrB,IAAI,CAAC;gBACH,8DAA8D;gBAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAW,CAAA;gBAC7B,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;oBAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAA;gBAC3D,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBACzB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,kCAAkC,CAAC,CAAC;YAC9C,SAAS,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACZ,+DAA+D;YAC/D,sDAAsD;YACtD,IAAI,CAAC,SAAS;gBAAE,SAAS,CAAC,KAAK,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAA,CAAC,CAAC,CAAA;IACnC,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;IAEf,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["../../src/routes/globals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["../../src/routes/globals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAsB/C;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAG,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,CAAC,EAAQ,WAAW,EACpB,IAAI,EAAK,MAAM,GACd,IAAI,CA6GN"}
|
package/dist/routes/globals.js
CHANGED
|
@@ -2,7 +2,7 @@ import { view } from '@rudderjs/view';
|
|
|
2
2
|
import { dispatchFormSubmit, findForms, selectForm } from '../elements/dispatchForm.js';
|
|
3
3
|
import { globalBasePath } from '../clusterPaths.js';
|
|
4
4
|
import { callPageSchema, tagFormActions, globalEditData, globalViewData, } from '../pageData.js';
|
|
5
|
-
import { wantsJson, readFormBody, normalizeRedirect, splitMeta, forbidden,
|
|
5
|
+
import { wantsJson, readFormBody, normalizeRedirect, splitMeta, forbidden, policyGate, handleFormState, handleFormWizard, handleFormCreateOption, handleFormMentions, sendRedirectResponse, } from './helpers.js';
|
|
6
6
|
/**
|
|
7
7
|
* Register the per-Global routes — edit GET / POST, the four form-state
|
|
8
8
|
* companion endpoints (`_form/:formId/state` / `wizard` / `mentions` /
|
|
@@ -21,9 +21,7 @@ export function registerGlobalRoutes(router, pilotiq, G, base) {
|
|
|
21
21
|
// POST ${editUrl}/_form/:formId/state
|
|
22
22
|
router.post(`${editUrl}/_form/:formId/state`, async (req, res) => {
|
|
23
23
|
const user = await pilotiq.resolveUser(req);
|
|
24
|
-
if (!await
|
|
25
|
-
return forbidden(res, true);
|
|
26
|
-
if (!await checkPolicy(() => G.canEdit(user, undefined)))
|
|
24
|
+
if (!await policyGate(G, user, () => G.canEdit(user, undefined)))
|
|
27
25
|
return forbidden(res, true);
|
|
28
26
|
const formId = req.params['formId'];
|
|
29
27
|
return handleFormState(req, res, pilotiq, { kind: 'global-edit', slug }, formId);
|
|
@@ -31,9 +29,7 @@ export function registerGlobalRoutes(router, pilotiq, G, base) {
|
|
|
31
29
|
// Plan #8 wizard step-validate endpoint for the global's edit form.
|
|
32
30
|
router.post(`${editUrl}/_form/:formId/wizard`, async (req, res) => {
|
|
33
31
|
const user = await pilotiq.resolveUser(req);
|
|
34
|
-
if (!await
|
|
35
|
-
return forbidden(res, true);
|
|
36
|
-
if (!await checkPolicy(() => G.canEdit(user, undefined)))
|
|
32
|
+
if (!await policyGate(G, user, () => G.canEdit(user, undefined)))
|
|
37
33
|
return forbidden(res, true);
|
|
38
34
|
const formId = req.params['formId'];
|
|
39
35
|
return handleFormWizard(req, res, pilotiq, { kind: 'global-edit', slug }, formId);
|
|
@@ -41,9 +37,7 @@ export function registerGlobalRoutes(router, pilotiq, G, base) {
|
|
|
41
37
|
// Async-mention endpoint for the global's edit form.
|
|
42
38
|
router.post(`${editUrl}/_form/:formId/mentions`, async (req, res) => {
|
|
43
39
|
const user = await pilotiq.resolveUser(req);
|
|
44
|
-
if (!await
|
|
45
|
-
return forbidden(res, true);
|
|
46
|
-
if (!await checkPolicy(() => G.canEdit(user, undefined)))
|
|
40
|
+
if (!await policyGate(G, user, () => G.canEdit(user, undefined)))
|
|
47
41
|
return forbidden(res, true);
|
|
48
42
|
const formId = req.params['formId'];
|
|
49
43
|
return handleFormMentions(req, res, pilotiq, { kind: 'global-edit', slug }, formId);
|
|
@@ -51,9 +45,7 @@ export function registerGlobalRoutes(router, pilotiq, G, base) {
|
|
|
51
45
|
// SelectField inline-create modal endpoint for the global's edit form.
|
|
52
46
|
router.post(`${editUrl}/_form/:formId/create-option/:fieldName`, async (req, res) => {
|
|
53
47
|
const user = await pilotiq.resolveUser(req);
|
|
54
|
-
if (!await
|
|
55
|
-
return forbidden(res, true);
|
|
56
|
-
if (!await checkPolicy(() => G.canEdit(user, undefined)))
|
|
48
|
+
if (!await policyGate(G, user, () => G.canEdit(user, undefined)))
|
|
57
49
|
return forbidden(res, true);
|
|
58
50
|
const formId = req.params['formId'];
|
|
59
51
|
const fieldName = req.params['fieldName'];
|
|
@@ -61,12 +53,10 @@ export function registerGlobalRoutes(router, pilotiq, G, base) {
|
|
|
61
53
|
});
|
|
62
54
|
router.get(editUrl, async (req, res) => {
|
|
63
55
|
const user = await pilotiq.resolveUser(req);
|
|
64
|
-
if (!await policyAccess(G, user))
|
|
65
|
-
return forbidden(res, wantsJson(req));
|
|
66
56
|
// Globals carry their record on the singleton form's `loadRecord`;
|
|
67
57
|
// we don't pre-load here — pass a stub so canEdit's signature is
|
|
68
58
|
// honored, and let user code decide whether to consult it.
|
|
69
|
-
if (!await
|
|
59
|
+
if (!await policyGate(G, user, () => G.canEdit(user, undefined)))
|
|
70
60
|
return forbidden(res, wantsJson(req));
|
|
71
61
|
const data = await globalEditData(pilotiq, slug, undefined, req);
|
|
72
62
|
return view('pilotiq.slug', data ?? {});
|
|
@@ -76,9 +66,7 @@ export function registerGlobalRoutes(router, pilotiq, G, base) {
|
|
|
76
66
|
const { values, formId } = splitMeta(body);
|
|
77
67
|
const json = wantsJson(req);
|
|
78
68
|
const user = await pilotiq.resolveUser(req);
|
|
79
|
-
if (!await
|
|
80
|
-
return forbidden(res, json);
|
|
81
|
-
if (!await checkPolicy(() => G.canEdit(user, undefined)))
|
|
69
|
+
if (!await policyGate(G, user, () => G.canEdit(user, undefined)))
|
|
82
70
|
return forbidden(res, json);
|
|
83
71
|
const ctx = { mode: 'edit', basePath: base, ...(user !== null ? { user: user } : {}) };
|
|
84
72
|
const elements = await callPageSchema(PageClass, ctx);
|
|
@@ -119,9 +107,7 @@ export function registerGlobalRoutes(router, pilotiq, G, base) {
|
|
|
119
107
|
if (pages.view) {
|
|
120
108
|
router.get(`${editUrl}/view`, async (req, res) => {
|
|
121
109
|
const user = await pilotiq.resolveUser(req);
|
|
122
|
-
if (!await
|
|
123
|
-
return forbidden(res, wantsJson(req));
|
|
124
|
-
if (!await checkPolicy(() => G.canView(user, undefined)))
|
|
110
|
+
if (!await policyGate(G, user, () => G.canView(user, undefined)))
|
|
125
111
|
return forbidden(res, wantsJson(req));
|
|
126
112
|
const data = await globalViewData(pilotiq, slug, req);
|
|
127
113
|
return view('pilotiq.resource-view', data ?? {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globals.js","sourceRoot":"","sources":["../../src/routes/globals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAIrC,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EACL,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,GAC/B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"globals.js","sourceRoot":"","sources":["../../src/routes/globals.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/helpers.d.ts
CHANGED
|
@@ -121,6 +121,19 @@ export declare function policyAccess(owner: {
|
|
|
121
121
|
canAccess: (user: unknown) => boolean | Promise<boolean>;
|
|
122
122
|
};
|
|
123
123
|
}, user: unknown): Promise<boolean>;
|
|
124
|
+
/**
|
|
125
|
+
* Two-predicate policy gate. Runs `policyAccess(owner, user)` in
|
|
126
|
+
* parallel with `checkPolicy(predicate)` and returns true only when
|
|
127
|
+
* both resolve truthy. Use this when the predicate does NOT depend on a
|
|
128
|
+
* record loaded between the two checks — record-dependent gates (e.g.
|
|
129
|
+
* `canEdit(user, record)` where `record` is loaded mid-handler) must
|
|
130
|
+
* stay sequential.
|
|
131
|
+
*
|
|
132
|
+
* Both checks fail-closed (throw → false). The pair runs whenever the
|
|
133
|
+
* route handler enters; replacing the serial pair halves the wait when
|
|
134
|
+
* either predicate makes a network round-trip.
|
|
135
|
+
*/
|
|
136
|
+
export declare function policyGate(owner: Parameters<typeof policyAccess>[0], user: unknown, predicate: () => boolean | Promise<boolean>): Promise<boolean>;
|
|
124
137
|
/** Run `policyAccess(R, user)` and `findRecord(R, recordId, { user })`
|
|
125
138
|
* in parallel. Both depend only on `user`, so the two round-trips
|
|
126
139
|
* overlap instead of waiting on each other. When `R.model` isn't set
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/routes/helpers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/routes/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/helpers.js
CHANGED
|
@@ -208,6 +208,25 @@ export async function policyAccess(owner, user) {
|
|
|
208
208
|
]);
|
|
209
209
|
return ownerOk && clusterOk;
|
|
210
210
|
}
|
|
211
|
+
/**
|
|
212
|
+
* Two-predicate policy gate. Runs `policyAccess(owner, user)` in
|
|
213
|
+
* parallel with `checkPolicy(predicate)` and returns true only when
|
|
214
|
+
* both resolve truthy. Use this when the predicate does NOT depend on a
|
|
215
|
+
* record loaded between the two checks — record-dependent gates (e.g.
|
|
216
|
+
* `canEdit(user, record)` where `record` is loaded mid-handler) must
|
|
217
|
+
* stay sequential.
|
|
218
|
+
*
|
|
219
|
+
* Both checks fail-closed (throw → false). The pair runs whenever the
|
|
220
|
+
* route handler enters; replacing the serial pair halves the wait when
|
|
221
|
+
* either predicate makes a network round-trip.
|
|
222
|
+
*/
|
|
223
|
+
export async function policyGate(owner, user, predicate) {
|
|
224
|
+
const [accessOk, predOk] = await Promise.all([
|
|
225
|
+
policyAccess(owner, user),
|
|
226
|
+
checkPolicy(predicate),
|
|
227
|
+
]);
|
|
228
|
+
return accessOk && predOk;
|
|
229
|
+
}
|
|
211
230
|
/** Run `policyAccess(R, user)` and `findRecord(R, recordId, { user })`
|
|
212
231
|
* in parallel. Both depend only on `user`, so the two round-trips
|
|
213
232
|
* overlap instead of waiting on each other. When `R.model` isn't set
|
|
@@ -419,14 +438,12 @@ export async function handleUploadRequest(req, res, pilotiq) {
|
|
|
419
438
|
res.status(500);
|
|
420
439
|
return res.json({ ok: false, error: 'No upload adapter configured' });
|
|
421
440
|
}
|
|
422
|
-
// Auth:
|
|
423
|
-
//
|
|
424
|
-
//
|
|
425
|
-
//
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
return res.json({ ok: false, error: 'Unauthorized' });
|
|
429
|
-
}
|
|
441
|
+
// Auth: `Pilotiq.guard()` runs as a `router.group(...)` middleware in
|
|
442
|
+
// `routes.ts`, so by the time we land here the panel-wide gate has
|
|
443
|
+
// already passed. We don't enforce per-resource canEdit because the
|
|
444
|
+
// field doesn't know which resource it belongs to — apps that need
|
|
445
|
+
// it should hook into their adapter's `put()` and consult their own
|
|
446
|
+
// auth there.
|
|
430
447
|
// Parse multipart body. Hono's parseBody returns `Record<string, File | string>`.
|
|
431
448
|
const raw = req.raw;
|
|
432
449
|
if (!raw?.req?.parseBody) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/routes/helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/routes/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/routes/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/routes/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AA+CnD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAG,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,CAAC,EAAQ,aAAa,EACtB,IAAI,EAAK,MAAM,EACf,OAAO,EAAE;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GACnD,IAAI,CA+rBN"}
|
package/dist/routes/resources.js
CHANGED
|
@@ -9,7 +9,7 @@ import { Column } from '../Column.js';
|
|
|
9
9
|
import { coerceCellValue, CellCoerceError } from '../cells/coerce.js';
|
|
10
10
|
import { resourceBasePath } from '../clusterPaths.js';
|
|
11
11
|
import { registerRelationRoutes } from './relations.js';
|
|
12
|
-
import { wantsJson, readFormBody, normalizeRedirect, splitMeta, forbidden, cellHookErrorMessage, checkPolicy, policyAccess, resolveDispatchTarget, handleFormState, handleFormWizard, handleFormCreateOption, handleFormMentions, handleWidgetData, sendActionResult, sendMutationSuccess, sendRedirectResponse, findInQueryWithTrashed, loadAccessGated, } from './helpers.js';
|
|
12
|
+
import { wantsJson, readFormBody, normalizeRedirect, splitMeta, forbidden, cellHookErrorMessage, checkPolicy, policyAccess, policyGate, resolveDispatchTarget, handleFormState, handleFormWizard, handleFormCreateOption, handleFormMentions, handleWidgetData, sendActionResult, sendMutationSuccess, sendRedirectResponse, findInQueryWithTrashed, loadAccessGated, } from './helpers.js';
|
|
13
13
|
/**
|
|
14
14
|
* Register every depth-0 route for one Resource — list / view / create /
|
|
15
15
|
* edit / delete / restore / force-delete (when soft-deletes are enabled),
|
|
@@ -41,9 +41,7 @@ export function registerResourceRoutes(router, pilotiq, R, base, options) {
|
|
|
41
41
|
const indexUrl = resourceBase;
|
|
42
42
|
router.get(indexUrl, async (req, res) => {
|
|
43
43
|
const user = await pilotiq.resolveUser(req);
|
|
44
|
-
if (!await
|
|
45
|
-
return forbidden(res, wantsJson(req));
|
|
46
|
-
if (!await checkPolicy(() => R.canViewAny(user)))
|
|
44
|
+
if (!await policyGate(R, user, () => R.canViewAny(user)))
|
|
47
45
|
return forbidden(res, wantsJson(req));
|
|
48
46
|
if (R.persistFiltersInSession) {
|
|
49
47
|
const query = req.query ?? {};
|
|
@@ -68,18 +66,14 @@ export function registerResourceRoutes(router, pilotiq, R, base, options) {
|
|
|
68
66
|
});
|
|
69
67
|
router.post(`${indexUrl}/_widget/:id`, async (req, res) => {
|
|
70
68
|
const user = await pilotiq.resolveUser(req);
|
|
71
|
-
if (!await
|
|
72
|
-
return forbidden(res, true);
|
|
73
|
-
if (!await checkPolicy(() => R.canViewAny(user)))
|
|
69
|
+
if (!await policyGate(R, user, () => R.canViewAny(user)))
|
|
74
70
|
return forbidden(res, true);
|
|
75
71
|
return handleWidgetData(req, res, pilotiq, { kind: 'resource', slug }, req.params['id']);
|
|
76
72
|
});
|
|
77
73
|
if (R.deferLoading) {
|
|
78
74
|
router.get(`${indexUrl}/_table`, async (req, res) => {
|
|
79
75
|
const user = await pilotiq.resolveUser(req);
|
|
80
|
-
if (!await
|
|
81
|
-
return forbidden(res, true);
|
|
82
|
-
if (!await checkPolicy(() => R.canViewAny(user)))
|
|
76
|
+
if (!await policyGate(R, user, () => R.canViewAny(user)))
|
|
83
77
|
return forbidden(res, true);
|
|
84
78
|
const data = await resourceTableData(pilotiq, slug, req.query, req);
|
|
85
79
|
if (!data) {
|
|
@@ -128,13 +122,11 @@ export function registerResourceRoutes(router, pilotiq, R, base, options) {
|
|
|
128
122
|
if (options.reorderable) {
|
|
129
123
|
router.post(`${indexUrl}/_reorder`, async (req, res) => {
|
|
130
124
|
const user = await pilotiq.resolveUser(req);
|
|
131
|
-
if (!await policyAccess(R, user))
|
|
132
|
-
return forbidden(res, true);
|
|
133
125
|
// List-level edit gate. The drop affects many rows at once;
|
|
134
126
|
// there's no single record to authorize against, so we pass
|
|
135
127
|
// `undefined` and let user-supplied `canEdit` overrides branch
|
|
136
128
|
// on `record === undefined` if they want row-level granularity.
|
|
137
|
-
if (!await
|
|
129
|
+
if (!await policyGate(R, user, () => R.canEdit(user, undefined)))
|
|
138
130
|
return forbidden(res, true);
|
|
139
131
|
const body = await readFormBody(req);
|
|
140
132
|
const raw = body.ids;
|
|
@@ -257,9 +249,7 @@ export function registerResourceRoutes(router, pilotiq, R, base, options) {
|
|
|
257
249
|
if (pages.create) {
|
|
258
250
|
router.post(`${resourceBase}/_form/:formId/state`, async (req, res) => {
|
|
259
251
|
const user = await pilotiq.resolveUser(req);
|
|
260
|
-
if (!await
|
|
261
|
-
return forbidden(res, true);
|
|
262
|
-
if (!await checkPolicy(() => R.canCreate(user)))
|
|
252
|
+
if (!await policyGate(R, user, () => R.canCreate(user)))
|
|
263
253
|
return forbidden(res, true);
|
|
264
254
|
const formId = req.params['formId'];
|
|
265
255
|
return handleFormState(req, res, pilotiq, { kind: 'resource-create', slug }, formId);
|
|
@@ -267,9 +257,7 @@ export function registerResourceRoutes(router, pilotiq, R, base, options) {
|
|
|
267
257
|
// Plan #8 — wizard step-validate endpoint for create-mode forms.
|
|
268
258
|
router.post(`${resourceBase}/_form/:formId/wizard`, async (req, res) => {
|
|
269
259
|
const user = await pilotiq.resolveUser(req);
|
|
270
|
-
if (!await
|
|
271
|
-
return forbidden(res, true);
|
|
272
|
-
if (!await checkPolicy(() => R.canCreate(user)))
|
|
260
|
+
if (!await policyGate(R, user, () => R.canCreate(user)))
|
|
273
261
|
return forbidden(res, true);
|
|
274
262
|
const formId = req.params['formId'];
|
|
275
263
|
return handleFormWizard(req, res, pilotiq, { kind: 'resource-create', slug }, formId);
|
|
@@ -277,9 +265,7 @@ export function registerResourceRoutes(router, pilotiq, R, base, options) {
|
|
|
277
265
|
// Async-mention endpoint for create-mode forms.
|
|
278
266
|
router.post(`${resourceBase}/_form/:formId/mentions`, async (req, res) => {
|
|
279
267
|
const user = await pilotiq.resolveUser(req);
|
|
280
|
-
if (!await
|
|
281
|
-
return forbidden(res, true);
|
|
282
|
-
if (!await checkPolicy(() => R.canCreate(user)))
|
|
268
|
+
if (!await policyGate(R, user, () => R.canCreate(user)))
|
|
283
269
|
return forbidden(res, true);
|
|
284
270
|
const formId = req.params['formId'];
|
|
285
271
|
return handleFormMentions(req, res, pilotiq, { kind: 'resource-create', slug }, formId);
|
|
@@ -287,9 +273,7 @@ export function registerResourceRoutes(router, pilotiq, R, base, options) {
|
|
|
287
273
|
// SelectField inline-create modal endpoint for create-mode forms.
|
|
288
274
|
router.post(`${resourceBase}/_form/:formId/create-option/:fieldName`, async (req, res) => {
|
|
289
275
|
const user = await pilotiq.resolveUser(req);
|
|
290
|
-
if (!await
|
|
291
|
-
return forbidden(res, true);
|
|
292
|
-
if (!await checkPolicy(() => R.canCreate(user)))
|
|
276
|
+
if (!await policyGate(R, user, () => R.canCreate(user)))
|
|
293
277
|
return forbidden(res, true);
|
|
294
278
|
const formId = req.params['formId'];
|
|
295
279
|
const fieldName = req.params['fieldName'];
|
|
@@ -354,9 +338,7 @@ export function registerResourceRoutes(router, pilotiq, R, base, options) {
|
|
|
354
338
|
const createUrl = `${resourceBase}/create`;
|
|
355
339
|
router.get(createUrl, async (req, res) => {
|
|
356
340
|
const user = await pilotiq.resolveUser(req);
|
|
357
|
-
if (!await
|
|
358
|
-
return forbidden(res, wantsJson(req));
|
|
359
|
-
if (!await checkPolicy(() => R.canCreate(user)))
|
|
341
|
+
if (!await policyGate(R, user, () => R.canCreate(user)))
|
|
360
342
|
return forbidden(res, wantsJson(req));
|
|
361
343
|
const data = await resourceCreateData(pilotiq, slug, undefined, req);
|
|
362
344
|
return view('pilotiq.resource-create', data ?? {});
|
|
@@ -364,9 +346,7 @@ export function registerResourceRoutes(router, pilotiq, R, base, options) {
|
|
|
364
346
|
// Create — POST ${resourceBase}/create
|
|
365
347
|
router.post(createUrl, async (req, res) => {
|
|
366
348
|
const user = await pilotiq.resolveUser(req);
|
|
367
|
-
if (!await
|
|
368
|
-
return forbidden(res, wantsJson(req));
|
|
369
|
-
if (!await checkPolicy(() => R.canCreate(user)))
|
|
349
|
+
if (!await policyGate(R, user, () => R.canCreate(user)))
|
|
370
350
|
return forbidden(res, wantsJson(req));
|
|
371
351
|
const body = await readFormBody(req);
|
|
372
352
|
const { values, formId, continueCreate } = splitMeta(body);
|
|
@@ -426,9 +406,7 @@ export function registerResourceRoutes(router, pilotiq, R, base, options) {
|
|
|
426
406
|
// coerced values.
|
|
427
407
|
router.post(`${createUrl}/_action/:actionName`, async (req, res) => {
|
|
428
408
|
const user = await pilotiq.resolveUser(req);
|
|
429
|
-
if (!await
|
|
430
|
-
return forbidden(res, wantsJson(req));
|
|
431
|
-
if (!await checkPolicy(() => R.canCreate(user)))
|
|
409
|
+
if (!await policyGate(R, user, () => R.canCreate(user)))
|
|
432
410
|
return forbidden(res, wantsJson(req));
|
|
433
411
|
const actionName = req.params['actionName'];
|
|
434
412
|
const json = wantsJson(req);
|