@kernhq/module-quire 0.9.2 → 0.10.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/dist/contract/permissions.d.ts +33 -0
- package/dist/contract/permissions.d.ts.map +1 -1
- package/dist/contract/permissions.js +44 -0
- package/dist/contract/permissions.js.map +1 -1
- package/dist/contract/router.d.ts +9 -1
- package/dist/contract/router.d.ts.map +1 -1
- package/dist/contract/router.js +9 -2
- package/dist/contract/router.js.map +1 -1
- package/dist/server/_impl.d.ts +1 -0
- package/dist/server/_impl.d.ts.map +1 -1
- package/dist/server/_impl.js +96 -28
- package/dist/server/_impl.js.map +1 -1
- package/dist/server/index.d.ts +13 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +13 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/render.d.ts +14 -0
- package/dist/server/render.d.ts.map +1 -1
- package/dist/server/render.js +25 -0
- package/dist/server/render.js.map +1 -1
- package/dist/server/services/databases.d.ts +15 -0
- package/dist/server/services/databases.d.ts.map +1 -1
- package/dist/server/services/databases.js +44 -0
- package/dist/server/services/databases.js.map +1 -1
- package/dist/server/services/versions.d.ts +20 -0
- package/dist/server/services/versions.d.ts.map +1 -1
- package/dist/server/services/versions.js +58 -4
- package/dist/server/services/versions.js.map +1 -1
- package/migrations/0000_init.sql +11 -7
- package/migrations/0001_rls.sql +8 -0
- package/package.json +1 -1
- package/src/client/components/VersionHistory.svelte +55 -0
- package/src/client/database/PropertyDialog.svelte +2 -1
- package/src/client/i18n.ts +27 -0
- package/src/contract/permissions.ts +83 -0
- package/src/contract/router.ts +9 -2
|
@@ -62,4 +62,37 @@ export declare const quirePermissions: readonly [{
|
|
|
62
62
|
readonly defaultRoles: ["owner", "admin"];
|
|
63
63
|
readonly dangerous: true;
|
|
64
64
|
}];
|
|
65
|
+
/**
|
|
66
|
+
* What each procedure has to ask *inside its handler*, beyond the workspace-level `requires()`.
|
|
67
|
+
*
|
|
68
|
+
* Declared as data rather than inferred, for the same reason `quireCapabilityProcedures` is: a
|
|
69
|
+
* missing in-handler check is invisible. The procedure compiles, `requires()` is still on it, the
|
|
70
|
+
* middleware count still passes, and the only symptom is that somebody a space has denied can read
|
|
71
|
+
* and rewrite it anyway. Eight `databases.*` procedures shipped that way — a space-scoped DENY
|
|
72
|
+
* binding stopped nobody from reading a database's schema or adding, renaming, reordering and
|
|
73
|
+
* deleting its columns and views.
|
|
74
|
+
*
|
|
75
|
+
* Two tests read this and neither is satisfied by the declaration alone:
|
|
76
|
+
*
|
|
77
|
+
* - `module.test.ts` fails when the contract and this map stop naming exactly the same
|
|
78
|
+
* procedures, so a new procedure cannot be added without deciding what it checks;
|
|
79
|
+
* - `authz.int.test.ts` calls every procedure named here against a real Postgres with the one
|
|
80
|
+
* permission below denied at space scope and nothing else, so a handler that does not ask —
|
|
81
|
+
* or asks for a different key than the one written here — fails.
|
|
82
|
+
*
|
|
83
|
+
* `check` is the scope the answer has to be resolved at, and it is not decoration:
|
|
84
|
+
*
|
|
85
|
+
* - `page` — the page's own ancestor chain, so a restriction on a parent page reaches it. The
|
|
86
|
+
* scope of a database procedure is the database's host page; of a row procedure, the row.
|
|
87
|
+
* - `space` — the whole space, for something that has no one page (a tree, a trash list).
|
|
88
|
+
* - `workspace` — the `requires()` middleware is the only gate, because there is no narrower
|
|
89
|
+
* scope yet: `spaces.create` has no space to be scoped to.
|
|
90
|
+
* - `filter` — a list that omits what you may not see rather than refusing. "You may not open it"
|
|
91
|
+
* is a worse answer than not showing it, and `spaces.list` is deliberately the second.
|
|
92
|
+
*/
|
|
93
|
+
export interface ProcedureAuthz {
|
|
94
|
+
check: 'page' | 'space' | 'workspace' | 'filter';
|
|
95
|
+
permission: string;
|
|
96
|
+
}
|
|
97
|
+
export declare const quireProcedureAuthz: Record<string, ProcedureAuthz>;
|
|
65
98
|
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/contract/permissions.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+D3B,CAAA"}
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/contract/permissions.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+D3B,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAA;IAChD,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAgD9D,CAAA"}
|
|
@@ -72,4 +72,48 @@ export const quirePermissions = definePermissions([
|
|
|
72
72
|
dangerous: true,
|
|
73
73
|
},
|
|
74
74
|
]);
|
|
75
|
+
export const quireProcedureAuthz = {
|
|
76
|
+
'spaces.list': { check: 'filter', permission: 'quire.space.view' },
|
|
77
|
+
'spaces.get': { check: 'space', permission: 'quire.space.view' },
|
|
78
|
+
'spaces.create': { check: 'workspace', permission: 'quire.space.manage' },
|
|
79
|
+
'spaces.update': { check: 'space', permission: 'quire.space.manage' },
|
|
80
|
+
'spaces.archive': { check: 'space', permission: 'quire.space.manage' },
|
|
81
|
+
'pages.tree': { check: 'space', permission: 'quire.page.view' },
|
|
82
|
+
'pages.get': { check: 'page', permission: 'quire.page.view' },
|
|
83
|
+
'pages.trash': { check: 'space', permission: 'quire.page.edit' },
|
|
84
|
+
'pages.create': { check: 'space', permission: 'quire.page.create' },
|
|
85
|
+
'pages.update': { check: 'page', permission: 'quire.page.edit' },
|
|
86
|
+
'pages.move': { check: 'page', permission: 'quire.page.edit' },
|
|
87
|
+
'pages.archive': { check: 'page', permission: 'quire.page.edit' },
|
|
88
|
+
'pages.trashPage': { check: 'page', permission: 'quire.page.edit' },
|
|
89
|
+
'pages.restore': { check: 'page', permission: 'quire.page.edit' },
|
|
90
|
+
'pages.purge': { check: 'page', permission: 'quire.page.delete' },
|
|
91
|
+
'versions.list': { check: 'page', permission: 'quire.page.view' },
|
|
92
|
+
'versions.get': { check: 'page', permission: 'quire.page.view' },
|
|
93
|
+
'versions.create': { check: 'page', permission: 'quire.page.edit' },
|
|
94
|
+
'versions.restore': { check: 'page', permission: 'quire.page.edit' },
|
|
95
|
+
'comments.list': { check: 'page', permission: 'quire.page.view' },
|
|
96
|
+
'comments.create': { check: 'page', permission: 'quire.page.comment' },
|
|
97
|
+
'comments.update': { check: 'page', permission: 'quire.page.comment' },
|
|
98
|
+
'comments.remove': { check: 'page', permission: 'quire.page.comment' },
|
|
99
|
+
'comments.resolve': { check: 'page', permission: 'quire.page.comment' },
|
|
100
|
+
'databases.get': { check: 'page', permission: 'quire.page.view' },
|
|
101
|
+
'databases.forPage': { check: 'page', permission: 'quire.page.view' },
|
|
102
|
+
'databases.list': { check: 'space', permission: 'quire.space.view' },
|
|
103
|
+
'databases.lookup': { check: 'page', permission: 'quire.page.view' },
|
|
104
|
+
'databases.create': { check: 'page', permission: 'quire.page.edit' },
|
|
105
|
+
'databases.rows': { check: 'page', permission: 'quire.page.view' },
|
|
106
|
+
'databases.addRow': { check: 'page', permission: 'quire.page.create' },
|
|
107
|
+
'databases.updateRow': { check: 'page', permission: 'quire.page.edit' },
|
|
108
|
+
'databases.addProperty': { check: 'page', permission: 'quire.page.edit' },
|
|
109
|
+
'databases.updateProperty': { check: 'page', permission: 'quire.page.edit' },
|
|
110
|
+
'databases.moveProperty': { check: 'page', permission: 'quire.page.edit' },
|
|
111
|
+
'databases.removeProperty': { check: 'page', permission: 'quire.page.edit' },
|
|
112
|
+
'databases.addView': { check: 'page', permission: 'quire.page.edit' },
|
|
113
|
+
'databases.updateView': { check: 'page', permission: 'quire.page.edit' },
|
|
114
|
+
'databases.removeView': { check: 'page', permission: 'quire.page.edit' },
|
|
115
|
+
'databases.setRelation': { check: 'page', permission: 'quire.page.edit' },
|
|
116
|
+
'publishing.publish': { check: 'page', permission: 'quire.page.publish' },
|
|
117
|
+
'publishing.revert': { check: 'page', permission: 'quire.page.edit' },
|
|
118
|
+
};
|
|
75
119
|
//# sourceMappingURL=permissions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/contract/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;IAChD;QACE,GAAG,EAAE,kBAAkB;QACvB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,4DAA4D;QACzE,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;QACnD,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,+DAA+D;QAC5E,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAChC,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;QACnD,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;QAC1C,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,qDAAqD;QAClE,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;QAC1C,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,oEAAoE;QACjF,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;QACnD,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,6DAA6D;QAC1E,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;QAC1C,SAAS,EAAE,KAAK;KACjB;IACD;QACE,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,qEAAqE;QAClF,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAChC,SAAS,EAAE,IAAI;KAChB;CACF,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/contract/permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -756,7 +756,14 @@ export declare const quireContract: {
|
|
|
756
756
|
}, z.core.$strip>;
|
|
757
757
|
};
|
|
758
758
|
}>, Record<never, never>>;
|
|
759
|
-
/**
|
|
759
|
+
/**
|
|
760
|
+
* One version's prose, both ways it is worth having.
|
|
761
|
+
*
|
|
762
|
+
* `text` is flat — what a diff and a search snippet want. `html` is the version *as it looked*:
|
|
763
|
+
* headings, lists, tables, callouts, its pictures signed and its page mentions linked, escaped
|
|
764
|
+
* and safe to hand to a renderer. The bytes for it have always been stored; nothing drew them,
|
|
765
|
+
* so the only thing anybody could see of an old version was 160 characters of flattened text.
|
|
766
|
+
*/
|
|
760
767
|
readonly get: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
761
768
|
workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
|
|
762
769
|
versionId: z.ZodUUID;
|
|
@@ -777,6 +784,7 @@ export declare const quireContract: {
|
|
|
777
784
|
createdAt: z.ZodISODateTime;
|
|
778
785
|
published: z.ZodBoolean;
|
|
779
786
|
text: z.ZodString;
|
|
787
|
+
html: z.ZodString;
|
|
780
788
|
}, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
|
|
781
789
|
BAD_REQUEST: {
|
|
782
790
|
data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/contract/router.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAGL,EAAE,EAQH,MAAM,aAAa,CAAA;AAiBpB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA0CtB;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QASH,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA+BrD,6FAA6F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAK7F,kGAAkG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAKlG,uEAAuE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QASvE,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAYlE,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/contract/router.ts"],"names":[],"mappings":"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"}
|
package/dist/contract/router.js
CHANGED
|
@@ -110,11 +110,18 @@ export const quireContract = {
|
|
|
110
110
|
.route({ method: 'GET', path: '/pages/{pageId}/versions', ...t('versions') })
|
|
111
111
|
.input(ws.extend({ pageId: Id }).extend(PageInput.shape))
|
|
112
112
|
.output(page(PageVersion)),
|
|
113
|
-
/**
|
|
113
|
+
/**
|
|
114
|
+
* One version's prose, both ways it is worth having.
|
|
115
|
+
*
|
|
116
|
+
* `text` is flat — what a diff and a search snippet want. `html` is the version *as it looked*:
|
|
117
|
+
* headings, lists, tables, callouts, its pictures signed and its page mentions linked, escaped
|
|
118
|
+
* and safe to hand to a renderer. The bytes for it have always been stored; nothing drew them,
|
|
119
|
+
* so the only thing anybody could see of an old version was 160 characters of flattened text.
|
|
120
|
+
*/
|
|
114
121
|
get: baseContract
|
|
115
122
|
.route({ method: 'GET', path: '/versions/{versionId}', ...t('versions') })
|
|
116
123
|
.input(ws.extend({ versionId: Id }))
|
|
117
|
-
.output(PageVersion.extend({ text: z.string() })),
|
|
124
|
+
.output(PageVersion.extend({ text: z.string(), html: z.string() })),
|
|
118
125
|
/** Take one now, and give it a name. */
|
|
119
126
|
create: baseContract
|
|
120
127
|
.route({ method: 'POST', path: '/pages/{pageId}/versions', ...t('versions') })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/contract/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAClF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EACL,aAAa,EACb,aAAa,EACb,EAAE,EACF,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,OAAO,EACP,KAAK,EACL,eAAe,GAChB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,GAAG,EACH,MAAM,EACN,IAAI,EACJ,UAAU,EACV,QAAQ,GACT,MAAM,iBAAiB,CAAA;AAExB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAA;AACjD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAc,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;AAE3C,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,MAAM,EAAE;QACN,IAAI,EAAE,YAAY;aACf,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;aACzD,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aACjE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,GAAG,EAAE,YAAY;aACd,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;aACnE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;aACjC,MAAM,CAAC,KAAK,CAAC;QAChB,MAAM,EAAE,YAAY;aACjB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;aAC1D,KAAK,CACJ,EAAE,CAAC,MAAM,CAAC;YACR,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG;YACpB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;YACtB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YACjD,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;SAC5C,CAAC,CACH;aACA,MAAM,CAAC,KAAK,CAAC;QAChB,MAAM,EAAE,YAAY;aACjB,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;aACrE,KAAK,CACJ,EAAE,CAAC,MAAM,CAAC;YACR,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;YACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YAC9C,UAAU,EAAE,eAAe,CAAC,QAAQ,EAAE;YACtC,UAAU,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;SACrC,CAAC,CACH;aACA,MAAM,CAAC,KAAK,CAAC;QAChB,OAAO,EAAE,YAAY;aAClB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;aAC5E,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACtE,MAAM,CAAC,KAAK,CAAC;KACjB;IAED,KAAK,EAAE;QACL;;;WAGG;QACH,IAAI,EAAE,YAAY;aACf,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,wBAAwB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aACvE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC9E,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5B,GAAG,EAAE,YAAY;aACd,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aAChE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;aAChC,MAAM,CAAC,IAAI,CAAC;QACf,qDAAqD;QACrD,KAAK,EAAE,YAAY;aAChB,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aACxE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aACzD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,EAAE,YAAY;aACjB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aACxD,KAAK,CACJ,EAAE,CAAC,MAAM,CAAC;YACR,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YACjD,oDAAoD;YACpD,OAAO,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;SACrC,CAAC,CACH;aACA,MAAM,CAAC,IAAI,CAAC;QACf,MAAM,EAAE,YAAY;aACjB,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aAClE,KAAK,CACJ,EAAE,CAAC,MAAM,CAAC;YACR,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;YACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YAC9C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YACpD,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE;SAC1B,CAAC,CACH;aACA,MAAM,CAAC,IAAI,CAAC;QACf,6FAA6F;QAC7F,IAAI,EAAE,YAAY;aACf,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aACtE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAC/F,MAAM,CAAC,IAAI,CAAC;QACf,kGAAkG;QAClG,OAAO,EAAE,YAAY;aAClB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aACzE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACrE,MAAM,CAAC,IAAI,CAAC;QACf,uEAAuE;QACvE,SAAS,EAAE,YAAY;aACpB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aACvE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;aAChC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACnF,OAAO,EAAE,YAAY;aAClB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aACzE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;aAChC,MAAM,CAAC,IAAI,CAAC;QACf,kEAAkE;QAClE,KAAK,EAAE,YAAY;aAChB,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;aACnE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;aAChC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;KACpF;IAED,QAAQ,EAAE;QACR,IAAI,EAAE,YAAY;aACf,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,0BAA0B,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;aAC5E,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aACxD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5B,qFAAqF;QACrF,GAAG,EAAE,YAAY;aACd,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;aACzE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;aACnC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnD,wCAAwC;QACxC,MAAM,EAAE,YAAY;aACjB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;aAC7E,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAC5F,MAAM,CAAC,WAAW,CAAC;QACtB;;;WAGG;QACH,OAAO,EAAE,YAAY;aAClB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;aAClF,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;aACnC,MAAM,CAAC,WAAW,CAAC;KACvB;IAED,QAAQ,EAAE;QACR,yEAAyE;QACzE,IAAI,EAAE,YAAY;aACf,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,0BAA0B,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;aAC5E,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC7E,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACjC,MAAM,EAAE,YAAY;aACjB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;aAC7E,KAAK,CACJ,EAAE,CAAC,MAAM,CAAC;YACR,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,OAAO;YACb,kEAAkE;YAClE,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YAC9C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,4DAA4D;YAC5D,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;SACtC,CAAC,CACH;aACA,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;QACnC,MAAM,EAAE,YAAY;aACjB,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;aAC3E,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;aAClD,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;QACnC,MAAM,EAAE,YAAY;aACjB,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;aAC5E,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;aACnC,MAAM,CAAC,EAAE,CAAC;QACb,4FAA4F;QAC5F,OAAO,EAAE,YAAY;aAClB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;aAClF,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACxE,MAAM,CAAC,aAAa,CAAC;KACzB;IAED,SAAS,EAAE;QACT,GAAG,EAAE,YAAY;aACd,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;aAC5E,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;aACpC,MAAM,CAAC,QAAQ,CAAC;QACnB;;;;;;;WAOG;QACH,OAAO,EAAE,YAAY;aAClB,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,0BAA0B,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;aAC7E,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;aAChC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC9B,6FAA6F;QAC7F,IAAI,EAAE,YAAY;aACf,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;aAChF,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;aACjC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/B;;;;;WAKG;QACH,MAAM,EAAE,YAAY;aACjB,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;aACnF,KAAK,CACJ,EAAE,CAAC,MAAM,CAAC;YACR,UAAU,EAAE,EAAE;YACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SACpD,CAAC,CACH;aACA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,yFAAyF;QACzF,MAAM,EAAE,YAAY;aACjB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;aAChE,KAAK,CACJ,EAAE,CAAC,MAAM,CAAC;YACR,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;SACnC,CAAC,CACH;aACA,MAAM,CAAC,QAAQ,CAAC;QACnB,6FAA6F;QAC7F,IAAI,EAAE,YAAY;aACf,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,8BAA8B,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;aACjF,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aACjG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,EAAE,YAAY;aACjB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;aAClF,KAAK,CACJ,EAAE,CAAC,MAAM,CAAC;YACR,UAAU,EAAE,EAAE;YACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SACrD,CAAC,CACH;aACA,MAAM,CAAC,GAAG,CAAC;QACd,SAAS,EAAE,YAAY;aACpB,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;aACpE,KAAK,CACJ,EAAE,CAAC,MAAM,CAAC;YACR,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;YACrC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;SACpD,CAAC,CACH;aACA,MAAM,CAAC,GAAG,CAAC;QAEd,WAAW,EAAE,YAAY;aACtB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,oCAAoC,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;aACxF,KAAK,CACJ,EAAE,CAAC,MAAM,CAAC;YACR,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YAChC,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;SACnC,CAAC,CACH;aACA,MAAM,CAAC,QAAQ,CAAC;QACnB,cAAc,EAAE,YAAY;aACzB,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,0BAA0B,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;aAC/E,KAAK,CACJ,EAAE,CAAC,MAAM,CAAC;YACR,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;YAC3C,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE;YAC7B,MAAM,EAAE,cAAc,CAAC,QAAQ,EAAE;YACjC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC,CACH;aACA,MAAM,CAAC,QAAQ,CAAC;QACnB;;;;;WAKG;QACH,YAAY,EAAE,YAAY;aACvB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;aACnF,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAC1E,MAAM,CAAC,QAAQ,CAAC;QACnB,cAAc,EAAE,YAAY;aACzB,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,0BAA0B,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;aAChF,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;aACpC,MAAM,CAAC,EAAE,CAAC;QAEb,OAAO,EAAE,YAAY;aAClB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;aACnF,KAAK,CACJ,EAAE,CAAC,MAAM,CAAC;YACR,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YAChC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;YAC/B,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;SACzC,CAAC,CACH;aACA,MAAM,CAAC,IAAI,CAAC;QACf,UAAU,EAAE,YAAY;aACrB,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;aACtE,KAAK,CACJ,EAAE,CAAC,MAAM,CAAC;YACR,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;YAC3C,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE;YACzB,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SACxC,CAAC,CACH;aACA,MAAM,CAAC,IAAI,CAAC;QACf,UAAU,EAAE,YAAY;aACrB,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;aACvE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;aAChC,MAAM,CAAC,EAAE,CAAC;QAEb,8FAA8F;QAC9F,WAAW,EAAE,YAAY;aACtB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;aAC7E,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aAChF,MAAM,CAAC,EAAE,CAAC;KACd;IAED,UAAU,EAAE;QACV,6FAA6F;QAC7F,OAAO,EAAE,YAAY;aAClB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;aAC9E,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAC5F,MAAM,CAAC,IAAI,CAAC;QACf,wEAAwE;QACxE,MAAM,EAAE,YAAY;aACjB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;aAC7E,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;aAChC,MAAM,CAAC,IAAI,CAAC;KAChB;CACO,CAAA;AAGV,OAAO,EAAE,EAAE,EAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/contract/router.ts"],"names":[],"mappings":"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"}
|
package/dist/server/_impl.d.ts
CHANGED
|
@@ -894,6 +894,7 @@ export declare function implement_(kernel: Kernel): {
|
|
|
894
894
|
createdAt: import("zod").ZodISODateTime;
|
|
895
895
|
published: import("zod").ZodBoolean;
|
|
896
896
|
text: import("zod").ZodString;
|
|
897
|
+
html: import("zod").ZodString;
|
|
897
898
|
}, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, import("@orpc/server").MergedErrorMap<Record<never, never>, {
|
|
898
899
|
BAD_REQUEST: {
|
|
899
900
|
data: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_impl.d.ts","sourceRoot":"","sources":["../../src/server/_impl.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,kBAAkB,EAElB,KAAK,MAAM,EACX,cAAc,EACd,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"_impl.d.ts","sourceRoot":"","sources":["../../src/server/_impl.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,kBAAkB,EAElB,KAAK,MAAM,EACX,cAAc,EACd,KAAK,cAAc,EAIpB,MAAM,gBAAgB,CAAA;AASvB;;;;;;;GAOG;AACH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAA;AAI3D,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4uBxC"}
|
package/dist/server/_impl.js
CHANGED
|
@@ -21,6 +21,24 @@ export function implement_(kernel) {
|
|
|
21
21
|
const svc = quireServices(kernel);
|
|
22
22
|
const notify = createNotify(kernel);
|
|
23
23
|
const run = (context, workspaceId, fn) => kernel.database.withWorkspace(workspaceId, fn, { userId: context.principal.userId });
|
|
24
|
+
/**
|
|
25
|
+
* "May you do this to *that* page", answered through the page's ancestor chain.
|
|
26
|
+
*
|
|
27
|
+
* `requires()` on the procedure asks the workspace-level question, and a wiki's real question is
|
|
28
|
+
* never workspace-level: a space- or page-scoped binding is what expresses "everyone may read the
|
|
29
|
+
* Handbook, the design team may write it, this contractor may read one page of it", and
|
|
30
|
+
* `requires()` does not look at one. So every page-touching handler asks again, here, with the
|
|
31
|
+
* chain that only exists inside the transaction.
|
|
32
|
+
*
|
|
33
|
+
* A database has no scope of its own — it belongs to a page — so a `databases.*` procedure
|
|
34
|
+
* resolves its host page (or the row's own page) and asks exactly this. Eight of them did not,
|
|
35
|
+
* and `quireProcedureAuthz` plus `authz.int.test.ts` are what stop the ninth.
|
|
36
|
+
*/
|
|
37
|
+
const requirePage = async (tx, context, workspaceId, pageId, permission) => {
|
|
38
|
+
const scope = await svc.access.scopeOf(tx, workspaceId, pageId);
|
|
39
|
+
await svc.access.requirePage(context.principal, permission, workspaceId, scope);
|
|
40
|
+
return scope;
|
|
41
|
+
};
|
|
24
42
|
/** Both, every time: the event for anything that reacts later, the change for a screen open now. */
|
|
25
43
|
const announce = (workspaceId, entity, id, op, scope) => kernel.realtime.change(workspaceId, { module: MODULE_ID, entity, id, op, scope });
|
|
26
44
|
return os.router({
|
|
@@ -196,7 +214,11 @@ export function implement_(kernel) {
|
|
|
196
214
|
const scope = await svc.access.scopeOf(tx, input.workspaceId, row.pageId);
|
|
197
215
|
await svc.access.requirePage(context.principal, 'quire.page.view', input.workspaceId, scope);
|
|
198
216
|
const page = await svc.access.pageRow(tx, input.workspaceId, row.pageId);
|
|
199
|
-
return {
|
|
217
|
+
return {
|
|
218
|
+
...toVersion(row, page.publishedVersionId),
|
|
219
|
+
text: row.text,
|
|
220
|
+
html: await svc.versions.html(tx, input.workspaceId, row.state),
|
|
221
|
+
};
|
|
200
222
|
})),
|
|
201
223
|
create: scoped.versions.create.use(requires('quire.page.edit')).handler(async ({ input, context }) => {
|
|
202
224
|
const version = await run(context, input.workspaceId, async (tx) => {
|
|
@@ -252,17 +274,33 @@ export function implement_(kernel) {
|
|
|
252
274
|
await announce(input.workspaceId, 'comment', row.id, 'created', { pageId: input.pageId });
|
|
253
275
|
return toComment(row);
|
|
254
276
|
}),
|
|
277
|
+
/**
|
|
278
|
+
* A remark is on a page, so a space that has been closed to somebody closes its margins too.
|
|
279
|
+
*
|
|
280
|
+
* These three worked from a comment id alone and never resolved the page behind it, so a
|
|
281
|
+
* space-scoped DENY stopped nobody from settling a thread — or from editing and deleting
|
|
282
|
+
* their own words on a page they had been shut out of. The author rule inside the service is
|
|
283
|
+
* a *second* question ("are these your words"), not a substitute for this one.
|
|
284
|
+
*/
|
|
255
285
|
update: scoped.comments.update
|
|
256
286
|
.use(requires('quire.page.comment'))
|
|
257
287
|
.handler(async ({ input, context }) => {
|
|
258
|
-
const row = await run(context, input.workspaceId, (tx) =>
|
|
288
|
+
const row = await run(context, input.workspaceId, async (tx) => {
|
|
289
|
+
const target = await svc.comments.row(tx, input.workspaceId, input.commentId);
|
|
290
|
+
await requirePage(tx, context, input.workspaceId, target.pageId, 'quire.page.comment');
|
|
291
|
+
return svc.comments.update(tx, context.principal, input.workspaceId, input.commentId, input.body);
|
|
292
|
+
});
|
|
259
293
|
await announce(input.workspaceId, 'comment', row.id, 'updated', { pageId: row.pageId });
|
|
260
294
|
return toComment(row);
|
|
261
295
|
}),
|
|
262
296
|
remove: scoped.comments.remove
|
|
263
297
|
.use(requires('quire.page.comment'))
|
|
264
298
|
.handler(async ({ input, context }) => {
|
|
265
|
-
const row = await run(context, input.workspaceId, (tx) =>
|
|
299
|
+
const row = await run(context, input.workspaceId, async (tx) => {
|
|
300
|
+
const target = await svc.comments.row(tx, input.workspaceId, input.commentId);
|
|
301
|
+
await requirePage(tx, context, input.workspaceId, target.pageId, 'quire.page.comment');
|
|
302
|
+
return svc.comments.remove(tx, context.principal, input.workspaceId, input.commentId);
|
|
303
|
+
});
|
|
266
304
|
await announce(input.workspaceId, 'comment', row.id, 'deleted', { pageId: row.pageId });
|
|
267
305
|
return { ok: true };
|
|
268
306
|
}),
|
|
@@ -270,6 +308,8 @@ export function implement_(kernel) {
|
|
|
270
308
|
.use(requires('quire.page.comment'))
|
|
271
309
|
.handler(async ({ input, context }) => {
|
|
272
310
|
const threads = await run(context, input.workspaceId, async (tx) => {
|
|
311
|
+
const target = await svc.comments.row(tx, input.workspaceId, input.commentId);
|
|
312
|
+
await requirePage(tx, context, input.workspaceId, target.pageId, 'quire.page.comment');
|
|
273
313
|
const row = await svc.comments.resolve(tx, context.principal, input.workspaceId, input.commentId, input.resolved);
|
|
274
314
|
const all = await svc.comments.list(tx, input.workspaceId, row.pageId, true);
|
|
275
315
|
const thread = all.find((t) => t.id === row.threadId);
|
|
@@ -284,23 +324,23 @@ export function implement_(kernel) {
|
|
|
284
324
|
}),
|
|
285
325
|
},
|
|
286
326
|
databases: {
|
|
287
|
-
get: scoped.databases.get
|
|
288
|
-
.
|
|
289
|
-
|
|
327
|
+
get: scoped.databases.get.use(requires('quire.page.view')).handler(({ input, context }) => run(context, input.workspaceId, async (tx) => {
|
|
328
|
+
const db = await svc.databases.get(tx, input.workspaceId, input.databaseId);
|
|
329
|
+
await requirePage(tx, context, input.workspaceId, db.pageId, 'quire.page.view');
|
|
330
|
+
return db;
|
|
331
|
+
})),
|
|
290
332
|
list: scoped.databases.list.use(requires('quire.page.view')).handler(({ input, context }) => run(context, input.workspaceId, async (tx) => {
|
|
291
333
|
await svc.access.spaceRow(tx, input.workspaceId, input.spaceId);
|
|
292
334
|
await svc.access.requireSpace(context.principal, 'quire.space.view', input.workspaceId, input.spaceId);
|
|
293
335
|
return svc.databases.list(tx, input.workspaceId, input.spaceId);
|
|
294
336
|
})),
|
|
295
337
|
forPage: scoped.databases.forPage.use(requires('quire.page.view')).handler(({ input, context }) => run(context, input.workspaceId, async (tx) => {
|
|
296
|
-
|
|
297
|
-
await svc.access.requirePage(context.principal, 'quire.page.view', input.workspaceId, scope);
|
|
338
|
+
await requirePage(tx, context, input.workspaceId, input.pageId, 'quire.page.view');
|
|
298
339
|
return svc.databases.forPage(tx, input.workspaceId, input.pageId);
|
|
299
340
|
})),
|
|
300
341
|
lookup: scoped.databases.lookup.use(requires('quire.page.view')).handler(({ input, context }) => run(context, input.workspaceId, async (tx) => {
|
|
301
|
-
const
|
|
302
|
-
|
|
303
|
-
await svc.access.requirePage(context.principal, 'quire.page.view', input.workspaceId, scope);
|
|
342
|
+
const pageId = await svc.databases.pageOfDatabase(tx, input.workspaceId, input.databaseId);
|
|
343
|
+
await requirePage(tx, context, input.workspaceId, pageId, 'quire.page.view');
|
|
304
344
|
return svc.databases.lookup(tx, input.workspaceId, input.databaseId, {
|
|
305
345
|
query: input.query,
|
|
306
346
|
ids: input.ids,
|
|
@@ -309,8 +349,7 @@ export function implement_(kernel) {
|
|
|
309
349
|
})),
|
|
310
350
|
create: scoped.databases.create.use(requires('quire.page.edit')).handler(async ({ input, context }) => {
|
|
311
351
|
const db = await run(context, input.workspaceId, async (tx) => {
|
|
312
|
-
|
|
313
|
-
await svc.access.requirePage(context.principal, 'quire.page.edit', input.workspaceId, scope);
|
|
352
|
+
await requirePage(tx, context, input.workspaceId, input.pageId, 'quire.page.edit');
|
|
314
353
|
return svc.databases.create(tx, context.principal, input.workspaceId, input);
|
|
315
354
|
});
|
|
316
355
|
await announce(input.workspaceId, 'page', input.pageId, 'updated', { spaceId: input.spaceId });
|
|
@@ -318,8 +357,7 @@ export function implement_(kernel) {
|
|
|
318
357
|
}),
|
|
319
358
|
rows: scoped.databases.rows.use(requires('quire.page.view')).handler(({ input, context }) => run(context, input.workspaceId, async (tx) => {
|
|
320
359
|
const db = await svc.databases.get(tx, input.workspaceId, input.databaseId);
|
|
321
|
-
|
|
322
|
-
await svc.access.requirePage(context.principal, 'quire.page.view', input.workspaceId, scope);
|
|
360
|
+
await requirePage(tx, context, input.workspaceId, db.pageId, 'quire.page.view');
|
|
323
361
|
const view = input.viewId
|
|
324
362
|
? (db.views.find((v) => v.id === input.viewId) ?? null)
|
|
325
363
|
: (db.views.find((v) => v.isDefault) ?? db.views[0] ?? null);
|
|
@@ -334,8 +372,7 @@ export function implement_(kernel) {
|
|
|
334
372
|
.handler(async ({ input, context }) => {
|
|
335
373
|
const row = await run(context, input.workspaceId, async (tx) => {
|
|
336
374
|
const db = await svc.databases.get(tx, input.workspaceId, input.databaseId);
|
|
337
|
-
|
|
338
|
-
await svc.access.requirePage(context.principal, 'quire.page.create', input.workspaceId, scope);
|
|
375
|
+
await requirePage(tx, context, input.workspaceId, db.pageId, 'quire.page.create');
|
|
339
376
|
// A row is a page: created in the same space, parented to the database's own page, so it
|
|
340
377
|
// is reachable, versioned and commentable like anything else.
|
|
341
378
|
const created = await svc.pages.create(tx, context.principal, input.workspaceId, {
|
|
@@ -357,8 +394,7 @@ export function implement_(kernel) {
|
|
|
357
394
|
.use(requires('quire.page.edit'))
|
|
358
395
|
.handler(async ({ input, context }) => {
|
|
359
396
|
const row = await run(context, input.workspaceId, async (tx) => {
|
|
360
|
-
|
|
361
|
-
await svc.access.requirePage(context.principal, 'quire.page.edit', input.workspaceId, scope);
|
|
397
|
+
await requirePage(tx, context, input.workspaceId, input.rowId, 'quire.page.edit');
|
|
362
398
|
if (input.title !== undefined)
|
|
363
399
|
await svc.pages.update(tx, context.principal, input.workspaceId, input.rowId, {
|
|
364
400
|
title: input.title,
|
|
@@ -401,11 +437,20 @@ export function implement_(kernel) {
|
|
|
401
437
|
* Adding a column, hiding one, or adding a view changes what *every* open tab of this
|
|
402
438
|
* database is drawing, and none of these announced anything — so a second person's table kept
|
|
403
439
|
* the old columns until they reloaded, which reads as their edit having been lost.
|
|
440
|
+
*
|
|
441
|
+
* And every one of them resolves the database's host page first. A column id and a view id
|
|
442
|
+
* are the only things these procedures are given, and neither carries a scope — so without
|
|
443
|
+
* `pageOfProperty`/`pageOfView` there is nothing to ask the permission question about, which
|
|
444
|
+
* is precisely why the question went unasked here and nowhere else.
|
|
404
445
|
*/
|
|
405
446
|
addProperty: scoped.databases.addProperty
|
|
406
447
|
.use(requires('quire.page.edit'))
|
|
407
448
|
.handler(async ({ input, context }) => {
|
|
408
|
-
const property = await run(context, input.workspaceId, (tx) =>
|
|
449
|
+
const property = await run(context, input.workspaceId, async (tx) => {
|
|
450
|
+
const pageId = await svc.databases.pageOfDatabase(tx, input.workspaceId, input.databaseId);
|
|
451
|
+
await requirePage(tx, context, input.workspaceId, pageId, 'quire.page.edit');
|
|
452
|
+
return svc.databases.addProperty(tx, input.workspaceId, input.databaseId, input);
|
|
453
|
+
});
|
|
409
454
|
await announce(input.workspaceId, 'database', input.databaseId, 'updated');
|
|
410
455
|
return property;
|
|
411
456
|
}),
|
|
@@ -413,28 +458,44 @@ export function implement_(kernel) {
|
|
|
413
458
|
.use(requires('quire.page.edit'))
|
|
414
459
|
.handler(async ({ input, context }) => {
|
|
415
460
|
const { workspaceId, propertyId, ...patch } = input;
|
|
416
|
-
const property = await run(context, workspaceId, (tx) =>
|
|
461
|
+
const property = await run(context, workspaceId, async (tx) => {
|
|
462
|
+
const pageId = await svc.databases.pageOfProperty(tx, workspaceId, propertyId);
|
|
463
|
+
await requirePage(tx, context, workspaceId, pageId, 'quire.page.edit');
|
|
464
|
+
return svc.databases.updateProperty(tx, workspaceId, propertyId, patch);
|
|
465
|
+
});
|
|
417
466
|
await announce(workspaceId, 'database', property.databaseId, 'updated');
|
|
418
467
|
return property;
|
|
419
468
|
}),
|
|
420
469
|
moveProperty: scoped.databases.moveProperty
|
|
421
470
|
.use(requires('quire.page.edit'))
|
|
422
471
|
.handler(async ({ input, context }) => {
|
|
423
|
-
const property = await run(context, input.workspaceId, (tx) =>
|
|
472
|
+
const property = await run(context, input.workspaceId, async (tx) => {
|
|
473
|
+
const pageId = await svc.databases.pageOfProperty(tx, input.workspaceId, input.propertyId);
|
|
474
|
+
await requirePage(tx, context, input.workspaceId, pageId, 'quire.page.edit');
|
|
475
|
+
return svc.databases.moveProperty(tx, input.workspaceId, input.propertyId, input.afterId);
|
|
476
|
+
});
|
|
424
477
|
await announce(input.workspaceId, 'database', property.databaseId, 'updated');
|
|
425
478
|
return property;
|
|
426
479
|
}),
|
|
427
480
|
removeProperty: scoped.databases.removeProperty
|
|
428
481
|
.use(requires('quire.page.edit'))
|
|
429
482
|
.handler(async ({ input, context }) => {
|
|
430
|
-
const property = await run(context, input.workspaceId, (tx) =>
|
|
483
|
+
const property = await run(context, input.workspaceId, async (tx) => {
|
|
484
|
+
const pageId = await svc.databases.pageOfProperty(tx, input.workspaceId, input.propertyId);
|
|
485
|
+
await requirePage(tx, context, input.workspaceId, pageId, 'quire.page.edit');
|
|
486
|
+
return svc.databases.removeProperty(tx, input.workspaceId, input.propertyId);
|
|
487
|
+
});
|
|
431
488
|
await announce(input.workspaceId, 'database', property.databaseId, 'updated');
|
|
432
489
|
return { ok: true };
|
|
433
490
|
}),
|
|
434
491
|
addView: scoped.databases.addView
|
|
435
492
|
.use(requires('quire.page.edit'))
|
|
436
493
|
.handler(async ({ input, context }) => {
|
|
437
|
-
const view = await run(context, input.workspaceId, (tx) =>
|
|
494
|
+
const view = await run(context, input.workspaceId, async (tx) => {
|
|
495
|
+
const pageId = await svc.databases.pageOfDatabase(tx, input.workspaceId, input.databaseId);
|
|
496
|
+
await requirePage(tx, context, input.workspaceId, pageId, 'quire.page.edit');
|
|
497
|
+
return svc.databases.addView(tx, input.workspaceId, input.databaseId, input);
|
|
498
|
+
});
|
|
438
499
|
await announce(input.workspaceId, 'database', input.databaseId, 'updated');
|
|
439
500
|
return view;
|
|
440
501
|
}),
|
|
@@ -442,14 +503,22 @@ export function implement_(kernel) {
|
|
|
442
503
|
.use(requires('quire.page.edit'))
|
|
443
504
|
.handler(async ({ input, context }) => {
|
|
444
505
|
const { workspaceId, viewId, ...patch } = input;
|
|
445
|
-
const view = await run(context, workspaceId, (tx) =>
|
|
506
|
+
const view = await run(context, workspaceId, async (tx) => {
|
|
507
|
+
const pageId = await svc.databases.pageOfView(tx, workspaceId, viewId);
|
|
508
|
+
await requirePage(tx, context, workspaceId, pageId, 'quire.page.edit');
|
|
509
|
+
return svc.databases.updateView(tx, workspaceId, viewId, patch);
|
|
510
|
+
});
|
|
446
511
|
await announce(workspaceId, 'database', view.databaseId, 'updated');
|
|
447
512
|
return view;
|
|
448
513
|
}),
|
|
449
514
|
removeView: scoped.databases.removeView
|
|
450
515
|
.use(requires('quire.page.edit'))
|
|
451
516
|
.handler(async ({ input, context }) => {
|
|
452
|
-
const view = await run(context, input.workspaceId, (tx) =>
|
|
517
|
+
const view = await run(context, input.workspaceId, async (tx) => {
|
|
518
|
+
const pageId = await svc.databases.pageOfView(tx, input.workspaceId, input.viewId);
|
|
519
|
+
await requirePage(tx, context, input.workspaceId, pageId, 'quire.page.edit');
|
|
520
|
+
return svc.databases.removeView(tx, input.workspaceId, input.viewId);
|
|
521
|
+
});
|
|
453
522
|
await announce(input.workspaceId, 'database', view.databaseId, 'updated');
|
|
454
523
|
return { ok: true };
|
|
455
524
|
}),
|
|
@@ -457,8 +526,7 @@ export function implement_(kernel) {
|
|
|
457
526
|
.use(requires('quire.page.edit'))
|
|
458
527
|
.handler(async ({ input, context }) => {
|
|
459
528
|
await run(context, input.workspaceId, async (tx) => {
|
|
460
|
-
|
|
461
|
-
await svc.access.requirePage(context.principal, 'quire.page.edit', input.workspaceId, scope);
|
|
529
|
+
await requirePage(tx, context, input.workspaceId, input.rowId, 'quire.page.edit');
|
|
462
530
|
await svc.databases.setRelation(tx, input.workspaceId, input.propertyId, input.rowId, input.toPageIds);
|
|
463
531
|
});
|
|
464
532
|
await announce(input.workspaceId, 'row', input.rowId, 'updated');
|