@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.
Files changed (101) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/CHANGELOG.md +88 -0
  3. package/dist/Pilotiq.d.ts +72 -0
  4. package/dist/Pilotiq.d.ts.map +1 -1
  5. package/dist/Pilotiq.js +145 -0
  6. package/dist/Pilotiq.js.map +1 -1
  7. package/dist/PilotiqServiceProvider.d.ts +2 -0
  8. package/dist/PilotiqServiceProvider.d.ts.map +1 -1
  9. package/dist/PilotiqServiceProvider.js +60 -12
  10. package/dist/PilotiqServiceProvider.js.map +1 -1
  11. package/dist/actions/importFactory.d.ts +5 -0
  12. package/dist/actions/importFactory.d.ts.map +1 -1
  13. package/dist/actions/importFactory.js +20 -10
  14. package/dist/actions/importFactory.js.map +1 -1
  15. package/dist/orm/modelDefaults.d.ts +10 -1
  16. package/dist/orm/modelDefaults.d.ts.map +1 -1
  17. package/dist/orm/modelDefaults.js +7 -2
  18. package/dist/orm/modelDefaults.js.map +1 -1
  19. package/dist/pageData/forms.js +3 -3
  20. package/dist/pageData/forms.js.map +1 -1
  21. package/dist/pageData/misc.js +5 -5
  22. package/dist/pageData/misc.js.map +1 -1
  23. package/dist/pageData/navigation.d.ts.map +1 -1
  24. package/dist/pageData/navigation.js +11 -9
  25. package/dist/pageData/navigation.js.map +1 -1
  26. package/dist/pageData/relationPages.d.ts.map +1 -1
  27. package/dist/pageData/relationPages.js +7 -4
  28. package/dist/pageData/relationPages.js.map +1 -1
  29. package/dist/pageData/resourcePages.js +6 -6
  30. package/dist/pageData/resourcePages.js.map +1 -1
  31. package/dist/plugins/index.d.ts +3 -0
  32. package/dist/plugins/index.d.ts.map +1 -1
  33. package/dist/plugins/index.js +1 -0
  34. package/dist/plugins/index.js.map +1 -1
  35. package/dist/plugins/themeEditor.d.ts +20 -1
  36. package/dist/plugins/themeEditor.d.ts.map +1 -1
  37. package/dist/plugins/themeEditor.js +3 -1
  38. package/dist/plugins/themeEditor.js.map +1 -1
  39. package/dist/react/CollabRoomContext.d.ts +12 -0
  40. package/dist/react/CollabRoomContext.d.ts.map +1 -1
  41. package/dist/react/CollabRoomContext.js.map +1 -1
  42. package/dist/react/index.d.ts +1 -0
  43. package/dist/react/index.d.ts.map +1 -1
  44. package/dist/react/index.js +1 -0
  45. package/dist/react/index.js.map +1 -1
  46. package/dist/react/useCollabSeed.d.ts +23 -0
  47. package/dist/react/useCollabSeed.d.ts.map +1 -0
  48. package/dist/react/useCollabSeed.js +67 -0
  49. package/dist/react/useCollabSeed.js.map +1 -0
  50. package/dist/routes/globals.d.ts.map +1 -1
  51. package/dist/routes/globals.js +8 -22
  52. package/dist/routes/globals.js.map +1 -1
  53. package/dist/routes/helpers.d.ts +13 -0
  54. package/dist/routes/helpers.d.ts.map +1 -1
  55. package/dist/routes/helpers.js +25 -8
  56. package/dist/routes/helpers.js.map +1 -1
  57. package/dist/routes/resources.d.ts.map +1 -1
  58. package/dist/routes/resources.js +12 -34
  59. package/dist/routes/resources.js.map +1 -1
  60. package/dist/routes/theme.d.ts +4 -2
  61. package/dist/routes/theme.d.ts.map +1 -1
  62. package/dist/routes/theme.js +27 -26
  63. package/dist/routes/theme.js.map +1 -1
  64. package/dist/routes.d.ts.map +1 -1
  65. package/dist/routes.js +65 -37
  66. package/dist/routes.js.map +1 -1
  67. package/dist/theme/index.d.ts +2 -0
  68. package/dist/theme/index.d.ts.map +1 -1
  69. package/dist/theme/index.js +1 -0
  70. package/dist/theme/index.js.map +1 -1
  71. package/dist/theme/storage.d.ts +86 -0
  72. package/dist/theme/storage.d.ts.map +1 -0
  73. package/dist/theme/storage.js +52 -0
  74. package/dist/theme/storage.js.map +1 -0
  75. package/package.json +1 -1
  76. package/src/Pilotiq.perf.test.ts +252 -0
  77. package/src/Pilotiq.test.ts +4 -0
  78. package/src/Pilotiq.ts +166 -0
  79. package/src/PilotiqServiceProvider.ts +63 -11
  80. package/src/actions/importFactory.ts +31 -10
  81. package/src/orm/modelDefaults.ts +15 -2
  82. package/src/pageData/forms.ts +3 -3
  83. package/src/pageData/misc.ts +5 -5
  84. package/src/pageData/navigation.ts +11 -9
  85. package/src/pageData/relationPages.ts +5 -3
  86. package/src/pageData/resourcePages.ts +6 -6
  87. package/src/plugins/index.ts +7 -0
  88. package/src/plugins/themeEditor.test.ts +36 -0
  89. package/src/plugins/themeEditor.ts +22 -1
  90. package/src/react/CollabRoomContext.ts +12 -0
  91. package/src/react/index.ts +1 -0
  92. package/src/react/useCollabSeed.ts +73 -0
  93. package/src/routes/globals.ts +8 -16
  94. package/src/routes/guard.test.ts +325 -0
  95. package/src/routes/helpers.ts +30 -8
  96. package/src/routes/resources.ts +12 -22
  97. package/src/routes/theme.ts +26 -44
  98. package/src/routes.ts +65 -36
  99. package/src/theme/index.ts +6 -0
  100. package/src/theme/storage.test.ts +126 -0
  101. 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;AAuB/C;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAG,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,CAAC,EAAQ,WAAW,EACpB,IAAI,EAAK,MAAM,GACd,IAAI,CAoHN"}
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"}
@@ -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, checkPolicy, policyAccess, handleFormState, handleFormWizard, handleFormCreateOption, handleFormMentions, sendRedirectResponse, } from './helpers.js';
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 policyAccess(G, user))
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 policyAccess(G, user))
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 policyAccess(G, user))
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 policyAccess(G, user))
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 checkPolicy(() => G.canEdit(user, undefined)))
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 policyAccess(G, user))
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 policyAccess(G, user))
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":"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"}
1
+ {"version":3,"file":"globals.js","sourceRoot":"","sources":["../../src/routes/globals.ts"],"names":[],"mappings":"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"}
@@ -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":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAoC,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAC3G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACxE,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EACU,KAAK,cAAc,EAItB,KAAK,WAAW,EAC7B,MAAM,gBAAgB,CAAA;AAEvB;;;2DAG2D;AAC3D,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAIlD;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAcpF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAM/F;AAED;;;;4CAI4C;AAC5C,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACxD,MAAM,EAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,MAAM,EAAU,MAAM,GAAG,SAAS,CAAA;IAClC,cAAc,EAAE,OAAO,CAAA;CACxB,CAOA;AAED;;;kDAGkD;AAClD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;;+BAG+B;AAC/B,wBAAgB,YAAY,CAC1B,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3D,IAAI,CAIN;AAED;;;;;;;;;;;sDAWsD;AACtD,wBAAgB,oBAAoB,CAClC,GAAG,EAAY,UAAU,EACzB,GAAG,EAAY,WAAW,EAC1B,IAAI,EAAW,OAAO,EACtB,QAAQ,EAAO,MAAM,EACrB,aAAa,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAAG,SAAS,EAC1D,MAAM,CAAC,EAAQ;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,mBAAmB,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAA;CAAE,GAC1F,OAAO,CAcT;AAED;;;;;;;;;;kEAUkE;AAClE,wBAAgB,gBAAgB,CAC9B,GAAG,EAAU,UAAU,EACvB,GAAG,EAAU,WAAW,EACxB,IAAI,EAAS,OAAO,EACpB,MAAM,EAAO,oBAAoB,EACjC,IAAI,EAAS,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAgBT;AAED;;;;;qEAKqE;AACrE,wBAAgB,mBAAmB,CACjC,GAAG,EAAG,UAAU,EAChB,GAAG,EAAG,WAAW,EACjB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAClE,OAAO,CAKT;AAED;;;;;WAKW;AACX,wBAAsB,sBAAsB,CAC1C,CAAC,EAAG,UAAU,EACd,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED;;;;0DAI0D;AAC1D,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAIlE;AAED;;oDAEoD;AACpD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAIzD;AAED;;wBAEwB;AACxB,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAExF;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE;IACL,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACxD,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAA;CACvE,EACD,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,EACzC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAC1C,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED;;;;;;sDAMsD;AACtD,wBAAsB,eAAe,CACnC,CAAC,EAAS,aAAa,EACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAM,OAAO,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAQ/C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAI,OAAO,sBAAsB,EAAE,OAAO,EAAE,EACpD,UAAU,EAAE,MAAM,GACjB;IACD,MAAM,EAAO,OAAO,sBAAsB,EAAE,MAAM,CAAA;IAClD,QAAQ,CAAC,EAAI,OAAO,4BAA4B,EAAE,aAAa,GAAG,OAAO,2BAA2B,EAAE,YAAY,CAAA;IAClH,UAAU,CAAC,EAAE,OAAO,sBAAsB,EAAE,OAAO,EAAE,CAAA;CACtD,GAAG,IAAI,CAmBP;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAG,OAAO,CAAA;CAClB;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAM,UAAU,EACnB,GAAG,EAAM,WAAW,EACpB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAI,cAAc,EACvB,MAAM,EAAG,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CA2BlB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAI,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAM,UAAU,EACnB,GAAG,EAAM,WAAW,EACpB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAI,cAAc,EACvB,MAAM,EAAG,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAgClB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAQ,UAAU,EACrB,GAAG,EAAQ,WAAW,EACtB,OAAO,EAAI,OAAO,EAClB,KAAK,EAAM,cAAc,EACzB,MAAM,EAAK,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CA6BlB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAI,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAI,OAAO,CAAA;CAClB;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAM,UAAU,EACnB,GAAG,EAAM,WAAW,EACpB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAI,cAAc,EACvB,MAAM,EAAG,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAmClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAM,UAAU,EACnB,GAAG,EAAM,WAAW,EACpB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAI,WAAW,EACpB,EAAE,EAAO,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAwBlB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAM,UAAU,EACnB,GAAG,EAAM,WAAW,EACpB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,OAAO,CAAC,CA4FlB"}
@@ -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: panel-wide `guard` and per-request `user`. We don't enforce
423
- // per-resource canEdit here because the field doesn't know which
424
- // resource it belongs to apps that need it should hook into
425
- // their adapter's `put()` and consult their own auth there.
426
- if (cfg.guard && !await cfg.guard(req)) {
427
- res.status(401);
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":"AAEA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAA6B,MAAM,+BAA+B,CAAA;AAE3G,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,EAAE,UAAU,EAAmB,MAAM,yBAAyB,CAAA;AAErE,OAAO,EACL,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,GACX,MAAM,gBAAgB,CAAA;AAEvB;;;2DAG2D;AAC3D,MAAM,UAAU,SAAS,CAAC,GAAe;IACvC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAA;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC3D,OAAO,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;AAC5C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAe;IAChD,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,OAAO,EAAE,GAAI,GAAG,CAAC,IAAgC,EAAE,CAAA;IACrD,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAmF,CAAA;IACnG,IAAI,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAA;YACxC,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAuB,EAAE,QAAgB;IACzE,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAA;IAC1B,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA;IACnC,IAAI,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA,CAAG,0BAA0B;IAC7E,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC/C,OAAO,GAAG,WAAW,IAAI,GAAG,EAAE,CAAA;AAChC,CAAC;AAED;;;;4CAI4C;AAC5C,MAAM,UAAU,SAAS,CAAC,IAA6B;IAKrD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;IACxE,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACzD,cAAc,EAAE,eAAe,KAAK,GAAG,IAAI,eAAe,KAAK,CAAC,IAAI,eAAe,KAAK,IAAI;KAC7F,CAAA;AACH,CAAC;AAED;;;kDAGkD;AAClD,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAC7D,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;AAChD,CAAC;AAED;;;+BAG+B;AAC/B,MAAM,UAAU,YAAY,CAC1B,GAAgB,EAChB,GAA4D;IAE5D,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;IAC3C,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC7F,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACpB,CAAC;AAED;;;;;;;;;;;sDAWsD;AACtD,MAAM,UAAU,oBAAoB,CAClC,GAAyB,EACzB,GAA0B,EAC1B,IAAsB,EACtB,QAAqB,EACrB,aAA0D,EAC1D,MAA2F;IAE3F,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,GAAG,CAAC,IAAI,CAAC;YACd,EAAE,EAAE,IAAI;YACR,QAAQ;YACR,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,GAAG,CAAC,MAAM,EAAE,mBAAmB,IAAI,MAAM,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC;gBACtE,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,EAAE;gBACrD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAA;IACJ,CAAC;IACD,kBAAkB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;IACtC,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;;;kEAUkE;AAClE,MAAM,UAAU,gBAAgB,CAC9B,GAAuB,EACvB,GAAwB,EACxB,IAAoB,EACpB,MAAiC,EACjC,IAAmB,EACnB,WAAmB;IAEnB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,IAAI,IAAI,EAAE,CAAC;YACT,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YACrC,OAAO,GAAG,CAAC,IAAI,CAAC;gBACd,EAAE,EAAK,KAAK;gBACZ,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpD,CAAC,CAAA;QACJ,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ;QAAE,OAAO,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC9D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,WAAW,CAAA;IACxE,OAAO,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,CAAA;AAC7E,CAAC;AAED;;;;;qEAKqE;AACrE,MAAM,UAAU,mBAAmB,CACjC,GAAgB,EAChB,GAAiB,EACjB,IAAa,EACb,IAAmE;IAEnE,MAAM,aAAa,GAAuB;QACxC,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAW;KAC/F,CAAA;IACD,OAAO,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;AAC3E,CAAC;AAED;;;;;WAKW;AACX,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,CAAc,EACd,EAAU,EACV,EAAU;IAEV,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,UAAU;QAAE,OAAO,SAAS,CAAA;IACzD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE;SACjC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;SAClB,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;SACd,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAe,EAAE,CAAC,CAAC,CAAA;IAC3C,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAChE,CAAC;AAED;;;;0DAI0D;AAC1D,MAAM,UAAU,SAAS,CAAC,GAAgB,EAAE,IAAa;IACvD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACf,IAAI,IAAI;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;IAC5D,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AAC9B,CAAC;AAED;;oDAEoD;AACpD,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC,OAAO,CAAA;IAC3D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA;IACzD,OAAO,eAAe,CAAA;AACxB,CAAC;AAED;;wBAEwB;AACxB,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAoC;IACpE,IAAI,CAAC;QAAC,OAAO,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAA;IAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAGC,EACD,IAAa;IAEb,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7C,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACxC,KAAK,CAAC,OAAO;YACX,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACnD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;KAC1B,CAAC,CAAA;IACF,OAAO,OAAO,IAAI,SAAS,CAAA;AAC7B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAyC,EACzC,IAAa,EACb,SAA2C;IAE3C,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3C,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC;QACzB,WAAW,CAAC,SAAS,CAAC;KACvB,CAAC,CAAA;IACF,OAAO,QAAQ,IAAI,MAAM,CAAA;AAC3B,CAAC;AAED;;;;;;sDAMsD;AACtD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,CAAuB,EACvB,QAAgB,EAChB,IAAiB;IAEjB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC;QACrB,CAAC,CAAC,KAAK;YACL,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;YAC1D,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;KACtC,CAAC,CAAA;IACF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AAC3B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAoD,EACpD,UAAkB;IAMlB,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;IACxE,IAAI,SAAS;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;IAE3C,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;IAC1F,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACxC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CACV,qBAAqB,UAAU,+CAA+C;YAC9E,2DAA2D,CAC5D,CAAA;IACH,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAE,CAAA;IAC5B,mEAAmE;IACnE,oEAAoE;IACpE,uEAAuE;IACvE,qEAAqE;IACrE,wDAAwD;IACxD,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAA;AAC9E,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAmB,EACnB,GAAoB,EACpB,OAAgB,EAChB,KAAuB,EACvB,MAAe;IAEf,MAAM,IAAI,GAAG,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAkB,CAAA;IACvD,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;IACpE,MAAM,MAAM,GAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7F,CAAC,CAAC,IAAI,CAAC,MAAiC;QACxC,CAAC,CAAC,EAAE,CAAA;IACN,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACxB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,CAAA;QACpF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACzB,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;IACvE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAA;QACzE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IAChD,CAAC;AACH,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAmB,EACnB,GAAoB,EACpB,OAAgB,EAChB,KAAuB,EACvB,MAAe;IAEf,MAAM,IAAI,GAAK,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAmB,CAAA;IAC1D,MAAM,KAAK,GAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;QAC5C,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACnD,CAAC,CAAC,GAAG,CAAA;IACjB,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5F,CAAC,CAAC,IAAI,CAAC,MAAiC;QACxC,CAAC,CAAC,EAAE,CAAA;IACN,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACpD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC,CAAA;IACzE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,CAAA;QACzF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACzB,MAAM,OAAO,GAA4B,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;YACtD,IAAI,MAAM,CAAC,KAAK;gBAAG,OAAO,CAAC,OAAO,CAAC,GAAI,MAAM,CAAC,KAAK,CAAA;YACnD,IAAI,MAAM,CAAC,MAAM;gBAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;YACpD,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1B,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAA;QACpF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IAChD,CAAC;AACH,CAAC;AAkBD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAqB,EACrB,GAAsB,EACtB,OAAkB,EAClB,KAAyB,EACzB,MAAiB,EACjB,SAAiB;IAEjB,MAAM,IAAI,GAAK,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAyB,CAAA;IAChE,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5F,CAAC,CAAC,IAAI,CAAC,MAAiC;QACxC,CAAC,CAAC,EAAE,CAAA;IACN,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,CAAA;QAC7F,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACzB,MAAM,OAAO,GAA4B,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;YACtD,IAAI,MAAM,CAAC,KAAK;gBAAG,OAAO,CAAC,OAAO,CAAC,GAAI,MAAM,CAAC,KAAK,CAAA;YACnD,IAAI,MAAM,CAAC,MAAM;gBAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;YACpD,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1B,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IACtD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAA;QAC1E,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IAChD,CAAC;AACH,CAAC;AAkBD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAmB,EACnB,GAAoB,EACpB,OAAgB,EAChB,KAAuB,EACvB,MAAe;IAEf,MAAM,IAAI,GAAG,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAqB,CAAA;IAC1D,MAAM,KAAK,GAAK,OAAO,IAAI,CAAC,KAAK,KAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAG,CAAC,CAAC,EAAE,CAAA;IACpE,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;IACpE,MAAM,KAAK,GAAK,OAAO,IAAI,CAAC,KAAK,KAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAG,CAAC,CAAC,EAAE,CAAA;IACpE,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC,CAAA;IAC3E,CAAC;IAED,oEAAoE;IACpE,kEAAkE;IAClE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAEpE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,OAAO,EACP,KAAK,EACL,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,EAC9C,GAAG,CACJ,CAAA;QACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACzB,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;IACpD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAA;QAC7E,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IAChD,CAAC;AACH,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAmB,EACnB,GAAoB,EACpB,OAAgB,EAChB,KAAoB,EACpB,EAAe;IAEf,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAA;IAC5D,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAe,CAAA;IACpD,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;IAExE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,OAAO,EACP,KAAK,EACL,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAC9C,GAAG,CACJ,CAAA;QACD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACzB,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;IAC/E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAA;IACrG,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAmB,EACnB,GAAoB,EACpB,OAAgB;IAEhB,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,EAAE,CAAA;IAC/B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAA;IACvE,CAAC;IAED,sEAAsE;IACtE,mEAAmE;IACnE,oEAAoE;IACpE,mEAAmE;IACnE,oEAAoE;IACpE,cAAc;IAEd,kFAAkF;IAClF,MAAM,GAAG,GAAG,GAAG,CAAC,GAA2G,CAAA;IAC3H,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;QACzB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC,CAAA;IACxE,CAAC;IACD,IAAI,IAA6B,CAAA;IACjC,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAA;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAA;IAC3F,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;IACzB,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAA;IAC3D,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACvF,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAEhF,qEAAqE;IACrE,sEAAsE;IACtE,2BAA2B;IAC3B,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1E,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACtE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,CAAA;QAC/E,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7E,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;QAClC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC;YACpD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,OAAO,QAAQ,EAAE,CAAC,CAAA;QACxE,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,wEAAwE;IACxE,yEAAyE;IACzE,+EAA+E;IAC/E,MAAM,cAAc,GAAI,OAAO,IAAI,CAAC,cAAc,CAAC,KAAM,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAE,CAAC,CAAC,EAAE,CAAA;IAC9F,MAAM,eAAe,GAAG,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9F,IAAI,UAAU,GAAS,IAAI,CAAA;IAC3B,IAAI,cAAc,IAAI,eAAe,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAA;QAChC,MAAM,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;QACjC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,iBAAiB,CAAA;gBACzC,mEAAmE;gBACnE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,eAAe,CAA4H,CAAA;gBACvL,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;gBACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;gBAClD,UAAU,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,MAAqB,CAAC,EAAE,GAAG,QAAQ,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;YAChG,CAAC;YAAC,MAAM,CAAC;gBACP,mFAAmF;YACrF,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;YAC3C,IAAI,EAAE,UAAU;YAChB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,SAAS;SACV,CAAC,CAAA;QACF,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAC/F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAA;IAC7F,CAAC;AACH,CAAC"}
@@ -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;AA8CnD;;;;;;;;;;;;;;;;;;;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,CA0sBN"}
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"}
@@ -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 policyAccess(R, user))
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 policyAccess(R, user))
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 policyAccess(R, user))
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 checkPolicy(() => R.canEdit(user, undefined)))
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 policyAccess(R, user))
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 policyAccess(R, user))
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 policyAccess(R, user))
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 policyAccess(R, user))
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 policyAccess(R, user))
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 policyAccess(R, user))
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 policyAccess(R, user))
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);