@palantir/pack.state.foundry 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-transpileBrowser.log +1 -1
- package/.turbo/turbo-transpileCjs.log +1 -1
- package/.turbo/turbo-transpileEsm.log +1 -1
- package/.turbo/turbo-transpileTypes.log +1 -1
- package/.turbo/turbo-typecheck.log +1 -1
- package/CHANGELOG.md +6 -0
- package/build/browser/index.js +4 -3
- package/build/browser/index.js.map +1 -1
- package/build/cjs/index.cjs +3 -2
- package/build/cjs/index.cjs.map +1 -1
- package/build/esm/index.js +4 -3
- package/build/esm/index.js.map +1 -1
- package/build/types/FoundryDocumentService.d.ts +1 -0
- package/build/types/FoundryDocumentService.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/FoundryDocumentService.ts +7 -4
package/.turbo/turbo-lint.log
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
> @palantir/pack.state.foundry@0.
|
|
2
|
+
> @palantir/pack.state.foundry@0.7.0 lint /home/runner/work/pack/pack/packages/state/foundry
|
|
3
3
|
> eslint ./src && dprint check --config $(find-up dprint.json) --allow-no-files
|
|
4
4
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @palantir/pack.state.foundry@0.
|
|
2
|
+
> @palantir/pack.state.foundry@0.7.0 transpileBrowser /home/runner/work/pack/pack/packages/state/foundry
|
|
3
3
|
> monorepo-transpile -f esm -m bundle -t browser
|
|
4
4
|
|
|
5
5
|
[baseline-browser-mapping] The data in this module is over two months old. To ensure accurate Baseline data, please update: `npm i baseline-browser-mapping@latest -D`
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @palantir/pack.state.foundry@0.
|
|
2
|
+
> @palantir/pack.state.foundry@0.7.0 transpileCjs /home/runner/work/pack/pack/packages/state/foundry
|
|
3
3
|
> monorepo-transpile -f cjs -m bundle -t node
|
|
4
4
|
|
|
5
5
|
[baseline-browser-mapping] The data in this module is over two months old. To ensure accurate Baseline data, please update: `npm i baseline-browser-mapping@latest -D`
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @palantir/pack.state.foundry@0.
|
|
2
|
+
> @palantir/pack.state.foundry@0.7.0 transpileEsm /home/runner/work/pack/pack/packages/state/foundry
|
|
3
3
|
> monorepo-transpile -f esm -m bundle -t node
|
|
4
4
|
|
|
5
5
|
[baseline-browser-mapping] The data in this module is over two months old. To ensure accurate Baseline data, please update: `npm i baseline-browser-mapping@latest -D`
|
package/CHANGELOG.md
CHANGED
package/build/browser/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Documents } from '@osdk/foundry.pack';
|
|
2
2
|
import { getOntologyRid, assertNever } from '@palantir/pack.core';
|
|
3
3
|
import { PresenceEventDataType, ActivityEventDataType, getMetadata } from '@palantir/pack.document-schema.model-types';
|
|
4
|
-
import {
|
|
4
|
+
import { BaseYjsDocumentService, DocumentLoadStatus, createDocumentServiceConfig } from '@palantir/pack.state.core';
|
|
5
5
|
import { createFoundryEventService } from '@palantir/pack.state.foundry-event';
|
|
6
6
|
import { invalidUserRef } from '@palantir/pack.auth';
|
|
7
7
|
|
|
@@ -165,7 +165,7 @@ function createFoundryDocumentServiceConfig(config = {}) {
|
|
|
165
165
|
function internalCreateFoundryDocumentService(app, config, eventService) {
|
|
166
166
|
return new FoundryDocumentService(app, config, createFoundryEventService(app));
|
|
167
167
|
}
|
|
168
|
-
var FoundryDocumentService = class extends BaseYjsDocumentService {
|
|
168
|
+
var FoundryDocumentService = class _FoundryDocumentService extends BaseYjsDocumentService {
|
|
169
169
|
constructor(app, config, eventService) {
|
|
170
170
|
super(app, app.config.logger.child({}, {
|
|
171
171
|
level: "debug",
|
|
@@ -333,8 +333,9 @@ var FoundryDocumentService = class extends BaseYjsDocumentService {
|
|
|
333
333
|
});
|
|
334
334
|
return unsubscribeFn;
|
|
335
335
|
}
|
|
336
|
+
static METADATA_ACTIVITY_EVENT_TYPES = /* @__PURE__ */ new Set([ActivityEventDataType.DOCUMENT_RENAME, ActivityEventDataType.DOCUMENT_DESCRIPTION_UPDATE, ActivityEventDataType.DOCUMENT_SECURITY_UPDATE]);
|
|
336
337
|
updateMetadataFromActivityEvent(docRef, event) {
|
|
337
|
-
if (
|
|
338
|
+
if (_FoundryDocumentService.METADATA_ACTIVITY_EVENT_TYPES.has(event.eventData.type)) {
|
|
338
339
|
this.refetchMetadata(docRef);
|
|
339
340
|
}
|
|
340
341
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/eventMappers.ts","../../src/FoundryDocumentService.ts"],"names":["config","ActivityEventDataType"],"mappings":";;;;;;;;AAkBO,SAAS,gBAAA,CAAiB,gBAAgB,YAAA,EAAc;AAE7D,EAAA,IAAI,YAAA,CAAa,SAAS,iBAAA,EAAmB;AAC3C,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,MAAM;AAAA,IACJ;AAAA,GACF,GAAI,YAAA;AACJ,EAAA,MAAM,SAAA,GAAY,oBAAA,CAAqB,cAAA,EAAgB,aAAa,CAAA;AACpE,EAAA,OAAO;AAAA,IACL,gBAAgB,aAAA,CAAc,cAAA;AAAA,IAC9B,WAAW,aAAA,CAAc,SAAA;AAAA,IACzB,gBAAgB,IAAI,IAAA,CAAK,aAAA,CAAc,WAAW,EAAE,OAAA,EAAQ;AAAA,IAC5D,SAAA;AAAA,IACA,SAAS,aAAA,CAAc,OAAA;AAAA,IACvB,QAAQ,aAAA,CAAc;AAAA,GACxB;AACF;AAOA,IAAM,iBAAA,GAAoB;AAAA,EACxB,eAAA,EAAiB,qBAAA;AAAA,EACjB,2BAAA,EAA6B,gCAAA;AAAA,EAC7B,eAAA,EAAiB,qBAAA;AAAA,EACjB,wBAAA,EAA0B;AAC5B,CAAA;AACA,SAAS,qBAAqB,SAAA,EAAW;AAAA,EACvC,SAAA;AAAA,EACA;AACF,CAAA,EAAG;AACD,EAAA,MAAM,iBAAA,GAAoB,4BAAA,CAA6B,SAAA,EAAW,SAAA,CAAU,IAAI,CAAA;AAChF,EAAA,IAAI,qBAAqB,IAAA,EAAM;AAC7B,IAAA,OAAO,iBAAA;AAAA,EACT;AAIA,EAAA,MAAM,KAAA,GAAQ,UAAU,SAAS,CAAA;AACjC,EAAA,IAAI,SAAS,IAAA,EAAM;AACjB,IAAA,OAAO;AAAA,MACL,SAAS,SAAA,CAAU,IAAA;AAAA,MACnB,OAAA,EAAS,SAAA;AAAA,MACT,MAAM,qBAAA,CAAsB;AAAA,KAC9B;AAAA,EACF;AAIA,EAAA,OAAO;AAAA,IACL,WAAW,SAAA,CAAU,IAAA;AAAA,IACrB,KAAA;AAAA,IACA,MAAM,qBAAA,CAAsB;AAAA,GAC9B;AACF;AACA,SAAS,4BAAA,CAA6B,WAAW,IAAA,EAAM;AACrD,EAAA,QAAQ,SAAA;AAAW,IACjB,KAAK,kBAAkB,eAAA,EACrB;AACE,MAAA,MAAM,QAAA,GAAW,IAAA;AACjB,MAAA,OAAO;AAAA,QACL,wBAAA,EAA0B;AAAA,UACxB,cAAA,EAAgB,SAAS,wBAAA,EAA0B,cAAA;AAAA,UACnD,QAAA,EAAU,SAAS,wBAAA,EAA0B;AAAA,SAC/C;AAAA,QACA,IAAA,EAAM,SAAS,IAAA,IAAQ,EAAA;AAAA,QACvB,MAAM,qBAAA,CAAsB;AAAA,OAC9B;AAAA,IACF;AAAA,IACF,KAAK,kBAAkB,eAAA,EACrB;AACE,MAAA,MAAM,QAAA,GAAW,IAAA;AACjB,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,SAAS,OAAA,IAAW,EAAA;AAAA,QAC7B,YAAA,EAAc,SAAS,YAAA,IAAgB,EAAA;AAAA,QACvC,MAAM,qBAAA,CAAsB;AAAA,OAC9B;AAAA,IACF;AAAA,IACF,KAAK,kBAAkB,2BAAA,EACrB;AACE,MAAA,MAAM,QAAA,GAAW,IAAA;AACjB,MAAA,OAAO;AAAA,QACL,SAAA,EAAW,SAAS,SAAA,IAAa,KAAA;AAAA,QACjC,cAAA,EAAgB,SAAS,cAAA,IAAkB,EAAA;AAAA,QAC3C,MAAM,qBAAA,CAAsB;AAAA,OAC9B;AAAA,IACF;AAAA,IACF,KAAK,kBAAkB,wBAAA,EACrB;AACE,MAAA,MAAM,QAAA,GAAW,IAAA;AACjB,MAAA,OAAO;AAAA,QACL,iBAAA,EAAmB,QAAA,CAAS,iBAAA,IAAqB,EAAC;AAAA,QAClD,WAAA,EAAa,QAAA,CAAS,WAAA,IAAe,EAAC;AAAA,QACtC,MAAM,qBAAA,CAAsB;AAAA,OAC9B;AAAA,IACF;AAAA,IACF;AACE,MAAA,OAAO,MAAA;AAAA;AAEb;AACA,IAAM,YAAA,GAAe;AAAA,EACnB,MAAM,qBAAA,CAAsB;AAC9B,CAAA;AACA,IAAM,aAAA,GAAgB;AAAA,EACpB,MAAM,qBAAA,CAAsB;AAC9B,CAAA;AACO,SAAS,gBAAA,CAAiB,gBAAgB,aAAA,EAAe;AAC9D,EAAA,QAAQ,cAAc,IAAA;AAAM,IAC1B,KAAK,qBAAA,EACH;AACE,MAAA,MAAM;AAAA,QACJ,MAAA;AAAA,QACA;AAAA,OACF,GAAI,aAAA;AACJ,MAAA,MAAM,SAAA,GAAY,MAAA,KAAW,SAAA,GAAY,YAAA,GAAe,aAAA;AACxD,MAAA,OAAO;AAAA,QACL,SAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF;AAAA,IACF,KAAK,qBAAA,EACH;AACE,MAAA,MAAM;AAAA,QACJ,MAAA;AAAA,QACA,SAAA;AAAA,QACA;AAAA,OACF,GAAI,aAAA;AACJ,MAAA,MAAM,iBAAA,GAAoB,oBAAA,CAAqB,cAAA,EAAgB,SAAA,EAAW,SAAS,CAAA;AACnF,MAAA,OAAO;AAAA,QACL,SAAA,EAAW,iBAAA;AAAA,QACX;AAAA,OACF;AAAA,IACF;AAAA,IACF,SACE;AAEE,MAAA,MAAM,aAAA,GAAgB,aAAA;AACtB,MAAA,OAAO;AAAA,QACL,SAAA,EAAW;AAAA,UACT,OAAA,EAAS,aAAA;AAAA,UACT,SAAS,OAAO,aAAA,CAAc,IAAA,KAAS,QAAA,GAAW,cAAc,IAAA,GAAO,SAAA;AAAA,UACvE,MAAM,qBAAA,CAAsB;AAAA,SAC9B;AAAA;AAAA,QAEA,MAAA,EAAQ,gBAAe,CAAE;AAAA,OAC3B;AAAA,IACF;AAAA;AAEN;AACA,SAAS,oBAAA,CAAqB,SAAA,EAAW,SAAA,EAAW,SAAA,EAAW;AAC7D,EAAA,MAAM,KAAA,GAAQ,UAAU,SAAS,CAAA;AACjC,EAAA,IAAI,SAAS,IAAA,EAAM;AACjB,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,SAAA;AAAA,MACT,OAAA,EAAS,SAAA;AAAA,MACT,MAAM,qBAAA,CAAsB;AAAA,KAC9B;AAAA,EACF;AACA,EAAA,OAAO;AAAA,IACL,SAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAM,qBAAA,CAAsB;AAAA,GAC9B;AACF;;;AClKA,IAAM,uBAAA,GAA0B,IAAA;AAChC,IAAM,uBAAA,GAA0B,OAAO,MAAA,CAAO;AAAA,EAC5C,eAAe,EAAC;AAAA,EAChB,WAAW;AACb,CAAC,CAAA;AACM,SAAS,kCAAA,CAAmC,MAAA,GAAS,EAAC,EAAG;AAC9D,EAAA,OAAO,2BAAA,CAA4B,CAAC,GAAA,EAAKA,OAAAA,KAAW,qCAAqC,GAAA,EAAKA,OAAM,GAAG,MAAM,CAAA;AAC/G;AACO,SAAS,oCAAA,CAAqC,GAAA,EAAK,MAAA,EAAQ,YAAA,EAAc;AAC9E,EAAA,OAAO,IAAI,sBAAA,CAAuB,GAAA,EAAK,QAAwB,yBAAA,CAA0B,GAAG,CAAC,CAAA;AAC/F;AACO,IAAM,sBAAA,GAAN,cAAqC,sBAAA,CAAuB;AAAA,EACjE,WAAA,CAAY,GAAA,EAAK,MAAA,EAAQ,YAAA,EAAc;AACrC,IAAA,KAAA,CAAM,KAAK,GAAA,CAAI,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,EAAC,EAAG;AAAA,MACrC,KAAA,EAAO,OAAA;AAAA,MACP,SAAA,EAAW;AAAA,KACZ,CAAC,CAAA;AACF,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,IAAA,IAAA,CAAK,YAAA,GAAe,YAAA;AAAA,EACtB;AAAA,EACA,iBAAA,CAAkB,KAAK,QAAA,EAAU;AAC/B,IAAA,OAAO;AAAA,MACL,GAAG,IAAA,CAAK,qBAAA,CAAsB,GAAA,EAAK,QAAQ,CAAA;AAAA,MAC3C,WAAA,EAAa;AAAA,KACf;AAAA,EACF;AAAA,EACA,IAAI,wBAAA,GAA2B;AAC7B,IAAA,OAAO,MAAM,IAAA,CAAK,IAAA,CAAK,SAAA,CAAU,MAAA,EAAQ,CAAA,CAAE,IAAA,CAAK,CAAA,GAAA,KAAO,IAAA,CAAK,iBAAiB,GAAG,CAAA,IAAK,GAAA,CAAI,mBAAA,CAAoB,OAAO,CAAC,CAAA;AAAA,EACvH;AAAA,EACA,IAAI,qBAAA,GAAwB;AAC1B,IAAA,OAAO,MAAM,IAAA,CAAK,IAAA,CAAK,SAAA,CAAU,MAAA,EAAQ,CAAA,CAAE,IAAA,CAAK,CAAA,GAAA,KAAO,IAAA,CAAK,iBAAiB,GAAG,CAAA,IAAK,GAAA,CAAI,mBAAA,CAAoB,OAAO,CAAC,CAAA;AAAA,EACvH;AAAA,EACA,cAAA,GAAiB,OAAO,QAAA,EAAU,MAAA,KAAW;AAC3C,IAAA,MAAM;AAAA,MACJ,gBAAA;AAAA,MACA,IAAA;AAAA,MACA,eAAA;AAAA,MACA;AAAA,KACF,GAAI,QAAA;AACJ,IAAA,MAAM,WAAA,GAAc,MAAM,cAAA,CAAe,IAAA,CAAK,GAAG,CAAA;AACjD,IAAA,MAAM,OAAA,GAAU;AAAA,MACd,gBAAA;AAAA,MACA,IAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAA,EAAU,gBAAgB,QAAQ;AAAA,KACpC;AACA,IAAA,IAAI,mBAAmB,IAAA,EAAM;AAC3B,MAAA,OAAA,CAAQ,eAAA,GAAkB,eAAA;AAAA,IAC5B;AACA,IAAA,MAAM,cAAA,GAAiB,MAAM,SAAA,CAAU,MAAA,CAAO,KAAK,GAAA,CAAI,MAAA,CAAO,YAAY,OAAA,EAAS;AAAA,MACjF,OAAA,EAAS,IAAA,CAAK,MAAA,CAAO,aAAA,IAAiB;AAAA,KACvC,CAAA;AACD,IAAA,MAAM,aAAa,cAAA,CAAe,EAAA;AAClC,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,YAAA,CAAa,UAAA,EAAY,MAAM,CAAA;AACnD,IAAA,OAAO,MAAA;AAAA,EACT,CAAA;AAAA,EACA,eAAA,GAAkB,OAAO,gBAAA,EAAkB,MAAA,EAAQ,OAAA,KAAY;AAC7D,IAAA,MAAM,OAAA,GAAU;AAAA,MACd,gBAAA;AAAA,MACA,WAAA,EAAa;AAAA,QACX,KAAA,EAAO,OAAA,EAAS,YAAA,IAAgB,IAAA,GAAO;AAAA,UACrC,cAAc,OAAA,CAAQ;AAAA,SACxB,GAAI,MAAA;AAAA,QACJ,UAAU,OAAA,EAAS,QAAA;AAAA,QACnB,WAAW,OAAA,EAAS;AAAA;AACtB,KACF;AACA,IAAA,MAAM,cAAA,GAAiB,MAAM,SAAA,CAAU,MAAA,CAAO,KAAK,GAAA,CAAI,MAAA,CAAO,YAAY,OAAA,EAAS;AAAA,MACjF,OAAA,EAAS,IAAA,CAAK,MAAA,CAAO,aAAA,IAAiB;AAAA,KACvC,CAAA;AACD,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,cAAA,CAAe,IAAA,CAAK,GAAA,CAAI,CAAA,GAAA,MAAQ;AAAA,QACpC,WAAW,GAAA,CAAI,SAAA;AAAA,QACf,aAAa,GAAA,CAAI,WAAA;AAAA,QACjB,kBAAkB,GAAA,CAAI,gBAAA;AAAA,QACtB,IAAI,GAAA,CAAI,EAAA;AAAA,QACR,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,aAAa,GAAA,CAAI,WAAA;AAAA,QACjB,QAAA,EAAU,gBAAA,CAAiB,GAAA,CAAI,QAAQ,CAAA;AAAA,QACvC,WAAW,GAAA,CAAI,SAAA;AAAA,QACf,aAAa,GAAA,CAAI;AAAA,OACnB,CAAE,CAAA;AAAA,MACF,eAAe,cAAA,CAAe;AAAA,KAChC;AAAA,EACF,CAAA;AAAA,EACA,cAAA,GAAiB,OAAO,MAAA,EAAQ,MAAA,KAAW;AACzC,IAAA,MAAM,QAAA,GAAW,MAAM,SAAA,CAAU,MAAA,CAAO,KAAK,GAAA,CAAI,MAAA,CAAO,UAAA,EAAY,MAAA,CAAO,EAAA,EAAI;AAAA,MAC7E,WAAA,EAAa;AAAA,QACX,GAAI,MAAA,CAAO,IAAA,IAAQ,IAAA,GAAO;AAAA,UACxB,MAAM,MAAA,CAAO;AAAA,YACX,EAAC;AAAA,QACL,GAAI,MAAA,CAAO,WAAA,IAAe,IAAA,GAAO;AAAA,UAC/B,aAAa,MAAA,CAAO;AAAA,YAClB,EAAC;AAAA,QACL,GAAI,MAAA,CAAO,QAAA,IAAY,IAAA,GAAO;AAAA,UAC5B,QAAA,EAAU,eAAA,CAAgB,MAAA,CAAO,QAAQ;AAAA,YACvC;AAAC;AACP,KACF,EAAG;AAAA,MACD,OAAA,EAAS,IAAA,CAAK,MAAA,CAAO,aAAA,IAAiB;AAAA,KACvC,CAAA;AACD,IAAA,MAAM,QAAA,GAAW;AAAA,MACf,aAAa,QAAA,CAAS,WAAA;AAAA,MACtB,kBAAkB,QAAA,CAAS,gBAAA;AAAA,MAC3B,MAAM,QAAA,CAAS,IAAA;AAAA,MACf,aAAa,QAAA,CAAS,WAAA;AAAA,MACtB,QAAA,EAAU,gBAAA,CAAiB,QAAA,CAAS,QAAQ;AAAA,KAC9C;AACA,IAAA,IAAA,CAAK,cAAA,CAAe,MAAA,CAAO,EAAA,EAAI,QAAQ,CAAA;AACvC,IAAA,OAAO,QAAA;AAAA,EACT,CAAA;AAAA,EACA,4BAAA,CAA6B,aAAa,MAAA,EAAQ;AAChD,IAAA,IAAI,WAAA,CAAY,cAAA,CAAe,IAAA,KAAS,kBAAA,CAAmB,QAAA,EAAU;AACnE,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,qDAAA,EAAwD,WAAA,CAAY,cAAA,CAAe,IAAI,CAAA,CAAE,CAAA;AAAA,IAC3G;AACA,IAAA,IAAA,CAAK,oBAAA,CAAqB,aAAa,MAAA,EAAQ;AAAA,MAC7C,MAAM,kBAAA,CAAmB;AAAA,KAC1B,CAAA;AACD,IAAA,SAAA,CAAU,IAAI,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,UAAA,EAAY,OAAO,EAAA,EAAI;AAAA,MACnD,OAAA,EAAS,IAAA,CAAK,MAAA,CAAO,aAAA,IAAiB;AAAA,KACvC,CAAA,CAAE,IAAA,CAAK,CAAA,QAAA,KAAY;AAClB,MAAA,MAAM,QAAA,GAAW;AAAA,QACf,aAAa,QAAA,CAAS,WAAA;AAAA,QACtB,kBAAkB,QAAA,CAAS,gBAAA;AAAA,QAC3B,MAAM,QAAA,CAAS,IAAA;AAAA,QACf,aAAa,QAAA,CAAS,WAAA;AAAA,QACtB,QAAA,EAAU,gBAAA,CAAiB,QAAA,CAAS,QAAQ;AAAA,OAC9C;AACA,MAAA,WAAA,CAAY,QAAA,GAAW,QAAA;AACvB,MAAA,IAAA,CAAK,yBAAA,CAA0B,WAAA,EAAa,MAAA,EAAQ,QAAQ,CAAA;AAC5D,MAAA,IAAA,CAAK,oBAAA,CAAqB,aAAa,MAAA,EAAQ;AAAA,QAC7C,MAAM,kBAAA,CAAmB;AAAA,OAC1B,CAAA;AAAA,IACH,CAAC,CAAA,CAAE,KAAA,CAAM,CAAA,CAAA,KAAK;AACZ,MAAA,MAAM,KAAA,GAAQ,IAAI,KAAA,CAAM,kCAAA,EAAoC;AAAA,QAC1D,KAAA,EAAO;AAAA,OACR,CAAA;AACD,MAAA,IAAA,CAAK,oBAAA,CAAqB,aAAa,MAAA,EAAQ;AAAA,QAC7C,KAAA;AAAA,QACA,MAAM,kBAAA,CAAmB;AAAA,OAC1B,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACH;AAAA,EACA,wBAAA,CAAyB,aAAa,MAAA,EAAQ;AAC5C,IAAA,IAAI,WAAA,CAAY,eAAe,IAAA,EAAM;AACnC,MAAA,MAAM,IAAI,MAAM,2CAA2C,CAAA;AAAA,IAC7D;AACA,IAAA,WAAA,CAAY,WAAA,GAAc,KAAK,YAAA,CAAa,iBAAA,CAAkB,OAAO,EAAA,EAAI,WAAA,CAAY,MAAM,CAAA,MAAA,KAAU;AACnG,MAAA,IAAA,CAAK,gBAAA,CAAiB,WAAA,EAAa,MAAA,EAAQ,MAAM,CAAA;AAAA,IACnD,CAAC,CAAA;AAAA,EACH;AAAA,EACA,4BAAA,CAA6B,cAAc,OAAA,EAAS;AAAA,EAAC;AAAA,EACrD,wBAAA,CAAyB,aAAa,OAAA,EAAS;AAC7C,IAAA,IAAI,YAAY,WAAA,EAAa;AAC3B,MAAA,IAAA,CAAK,YAAA,CAAa,gBAAA,CAAiB,WAAA,CAAY,WAAW,CAAA;AAC1D,MAAA,WAAA,CAAY,WAAA,GAAc,MAAA;AAAA,IAC5B;AAAA,EACF;AAAA,EACA,UAAA,CAAW,QAAQ,QAAA,EAAU;AAC3B,IAAA,IAAI,YAAA,GAAe,KAAA;AACnB,IAAA,MAAM,gBAAgB,MAAM;AAC1B,MAAA,YAAA,GAAe,IAAA;AAAA,IACjB,CAAA;AACA,IAAA,IAAA,CAAK,YAAA,CAAa,0BAAA,CAA2B,MAAA,CAAO,EAAA,EAAI,CAAA,YAAA,KAAgB;AACtE,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,MAAM,UAAA,GAAa,gBAAA,CAAiB,MAAA,CAAO,MAAA,EAAQ,YAAY,CAAA;AAC/D,QAAA,IAAI,cAAc,IAAA,EAAM;AACtB,UAAA,IAAA,CAAK,+BAAA,CAAgC,QAAQ,UAAU,CAAA;AACvD,UAAA,QAAA,CAAS,QAAQ,UAAU,CAAA;AAAA,QAC7B;AAAA,MACF;AAAA,IACF,CAAC,CAAA,CAAE,KAAA,CAAM,CAAA,CAAA,KAAK;AACZ,MAAA,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,yCAAA,EAA2C,CAAA,EAAG;AAAA,QAC9D,OAAO,MAAA,CAAO;AAAA,OACf,CAAA;AAAA,IACH,CAAC,CAAA;AACD,IAAA,OAAO,aAAA;AAAA,EACT;AAAA,EACA,+BAAA,CAAgC,QAAQ,KAAA,EAAO;AAC7C,IAAA,IAAI,KAAA,CAAM,UAAU,IAAA,KAASC,qBAAAA,CAAsB,mBAAmB,KAAA,CAAM,SAAA,CAAU,IAAA,KAASA,qBAAAA,CAAsB,2BAAA,EAA6B;AAChJ,MAAA,IAAA,CAAK,gBAAgB,MAAM,CAAA;AAAA,IAC7B;AAAA,EACF;AAAA,EACA,gBAAgB,MAAA,EAAQ;AACtB,IAAA,SAAA,CAAU,IAAI,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,UAAA,EAAY,OAAO,EAAA,EAAI;AAAA,MACnD,OAAA,EAAS,IAAA,CAAK,MAAA,CAAO,aAAA,IAAiB;AAAA,KACvC,CAAA,CAAE,IAAA,CAAK,CAAA,QAAA,KAAY;AAClB,MAAA,MAAM,QAAA,GAAW;AAAA,QACf,aAAa,QAAA,CAAS,WAAA;AAAA,QACtB,kBAAkB,QAAA,CAAS,gBAAA;AAAA,QAC3B,MAAM,QAAA,CAAS,IAAA;AAAA,QACf,aAAa,QAAA,CAAS,WAAA;AAAA,QACtB,QAAA,EAAU,gBAAA,CAAiB,QAAA,CAAS,QAAQ;AAAA,OAC9C;AACA,MAAA,IAAA,CAAK,cAAA,CAAe,MAAA,CAAO,EAAA,EAAI,QAAQ,CAAA;AAAA,IACzC,CAAC,CAAA,CAAE,KAAA,CAAM,CAAA,CAAA,KAAK;AACZ,MAAA,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,qCAAA,EAAuC,CAAA,EAAG;AAAA,QAC1D,OAAO,MAAA,CAAO;AAAA,OACf,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACH;AAAA,EACA,UAAA,CAAW,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAS;AACpC,IAAA,IAAI,YAAA,GAAe,KAAA;AACnB,IAAA,MAAM,gBAAgB,MAAM;AAC1B,MAAA,YAAA,GAAe,IAAA;AAAA,IACjB,CAAA;AACA,IAAA,IAAA,CAAK,YAAA,CAAa,0BAAA,CAA2B,MAAA,CAAO,EAAA,EAAI,CAAA,aAAA,KAAiB;AACvE,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,MAAM,UAAA,GAAa,gBAAA,CAAiB,MAAA,CAAO,MAAA,EAAQ,aAAa,CAAA;AAChE,QAAA,QAAA,CAAS,QAAQ,UAAU,CAAA;AAAA,MAC7B;AAAA,IACF,CAAA,EAAG,OAAO,CAAA,CAAE,KAAA,CAAM,CAAA,CAAA,KAAK;AACrB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,yCAAA,EAA2C,CAAA,EAAG;AAAA,QAC9D,OAAO,MAAA,CAAO;AAAA,OACf,CAAA;AAAA,IACH,CAAC,CAAA;AACD,IAAA,OAAO,aAAA;AAAA,EACT;AAAA,EACA,oBAAA,CAAqB,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,OAAA,EAAS;AACtD,IAAA,MAAM,SAAA,GAAY,WAAA,CAAY,KAAK,CAAA,CAAE,IAAA;AACrC,IAAA,KAAK,IAAA,CAAK,YAAA,CAAa,qBAAA,CAAsB,MAAA,CAAO,EAAA,EAAI,WAAW,SAAA,EAAW,OAAO,CAAA,CAAE,KAAA,CAAM,CAAA,CAAA,KAAK;AAChG,MAAA,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,mCAAA,EAAqC,CAAA,EAAG;AAAA,QACxD,OAAO,MAAA,CAAO;AAAA,OACf,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACH;AACF,CAAA;AACA,SAAS,eAAA,CAAgB;AAAA,EACvB,aAAA;AAAA,EACA;AACF,CAAA,GAAI,uBAAA,EAAyB;AAC3B,EAAA,MAAM;AAAA,IACJ,UAAU,EAAC;AAAA,IACX,SAAS,EAAC;AAAA,IACV,UAAU;AAAC,GACb,GAAI,aAAA;AACJ,EAAA,OAAO;AAAA,IACL,aAAA,EAAe;AAAA,MACb,OAAA,EAAS,OAAA,CAAQ,GAAA,CAAI,gBAAgB,CAAA;AAAA,MACrC,MAAA,EAAQ,MAAA,CAAO,GAAA,CAAI,gBAAgB,CAAA;AAAA,MACnC,OAAA,EAAS,OAAA,CAAQ,GAAA,CAAI,gBAAgB;AAAA,KACvC;AAAA,IACA,SAAA,EAAW;AAAA,MACT,cAAA,EAAgB,UAAU,cAAA,IAAkB,IAAA,GAAO,CAAC,GAAG,SAAA,CAAU,cAAc,CAAA,GAAI,EAAC;AAAA,MACpF,QAAA,EAAU,UAAU,QAAA,IAAY,IAAA,GAAO,CAAC,GAAG,SAAA,CAAU,QAAQ,CAAA,GAAI;AAAC;AACpE,GACF;AACF;AACA,SAAS,iBAAiB,SAAA,EAAW;AACnC,EAAA,QAAQ,UAAU,IAAA;AAAM,IACtB,KAAK,KAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM;AAAA,OACR;AAAA,IACF,KAAK,SAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,SAAA;AAAA,QACN,SAAS,SAAA,CAAU;AAAA,OACrB;AAAA,IACF,KAAK,QAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,QAAA;AAAA,QACN,QAAQ,SAAA,CAAU;AAAA,OACpB;AAAA,IACF;AACE,MAAA,WAAA,CAAY,SAAS,CAAA;AAAA;AAE3B;AACA,SAAS,iBAAiB,YAAA,EAAc;AACtC,EAAA,OAAO;AAAA,IACL,aAAA,EAAe;AAAA,MACb,OAAA,EAAS,YAAA,CAAa,aAAA,CAAc,OAAA,CAAQ,IAAI,iBAAiB,CAAA;AAAA,MACjE,MAAA,EAAQ,YAAA,CAAa,aAAA,CAAc,MAAA,CAAO,IAAI,iBAAiB,CAAA;AAAA,MAC/D,OAAA,EAAS,YAAA,CAAa,aAAA,CAAc,OAAA,CAAQ,IAAI,iBAAiB;AAAA,KACnE;AAAA,IACA,SAAA,EAAW;AAAA,MACT,cAAA,EAAgB,CAAC,GAAG,YAAA,CAAa,UAAU,cAAc,CAAA;AAAA,MACzD,QAAA,EAAU,CAAC,GAAG,YAAA,CAAa,UAAU,QAAQ;AAAA;AAC/C,GACF;AACF;AACA,SAAS,kBAAkB,aAAA,EAAe;AACxC,EAAA,QAAQ,cAAc,IAAA;AAAM,IAC1B,KAAK,KAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM;AAAA,OACR;AAAA,IACF,KAAK,SAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,SAAA;AAAA,QACN,SAAS,aAAA,CAAc;AAAA,OACzB;AAAA,IACF,KAAK,QAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,QAAA;AAAA,QACN,QAAQ,aAAA,CAAc;AAAA,OACxB;AAAA,IACF;AACE,MAAA,WAAA,CAAY,aAAa,CAAA;AAAA;AAE/B","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { invalidUserRef } from \"@palantir/pack.auth\";\nimport { ActivityEventDataType, PresenceEventDataType } from \"@palantir/pack.document-schema.model-types\";\nexport function getActivityEvent(documentSchema, foundryEvent) {\n // TODO: need to handle deletes and ensure exhaustive handling\n if (foundryEvent.type !== \"activityCreated\") {\n return undefined;\n }\n const {\n activityEvent\n } = foundryEvent;\n const eventData = getActivityEventData(documentSchema, activityEvent);\n return {\n aggregationKey: activityEvent.aggregationKey,\n createdBy: activityEvent.createdBy,\n createdInstant: new Date(activityEvent.createdTime).getTime(),\n eventData,\n eventId: activityEvent.eventId,\n isRead: activityEvent.isRead\n };\n}\n\n/**\n * Platform event type names as sent by backpack.\n * Note: Only DOCUMENT_CREATE is currently emitted by the backend.\n * Remaining types are included for future use.\n */\nconst PlatformEventType = {\n DOCUMENT_CREATE: \"DocumentCreateEvent\",\n DOCUMENT_DESCRIPTION_UPDATE: \"DocumentDescriptionUpdateEvent\",\n DOCUMENT_RENAME: \"DocumentRenameEvent\",\n DOCUMENT_SECURITY_UPDATE: \"DocumentMandatorySecurityUpdateEvent\"\n};\nfunction getActivityEventData(docSchema, {\n eventData,\n eventType\n}) {\n const platformEventData = getPlatformActivityEventData(eventType, eventData.data);\n if (platformEventData != null) {\n return platformEventData;\n }\n\n // Handle custom application-defined activity events\n // TODO: validate model is valid for activity events\n const model = docSchema[eventType];\n if (model == null) {\n return {\n rawData: eventData.data,\n rawType: eventType,\n type: ActivityEventDataType.UNKNOWN\n };\n }\n\n // TODO: validate data against model schema\n\n return {\n eventData: eventData.data,\n model,\n type: ActivityEventDataType.CUSTOM_EVENT\n };\n}\nfunction getPlatformActivityEventData(eventType, data) {\n switch (eventType) {\n case PlatformEventType.DOCUMENT_CREATE:\n {\n const wireData = data;\n return {\n initialMandatorySecurity: {\n classification: wireData.initialMandatorySecurity?.classification,\n markings: wireData.initialMandatorySecurity?.markings\n },\n name: wireData.name ?? \"\",\n type: ActivityEventDataType.DOCUMENT_CREATE\n };\n }\n case PlatformEventType.DOCUMENT_RENAME:\n {\n const wireData = data;\n return {\n newName: wireData.newName ?? \"\",\n previousName: wireData.previousName ?? \"\",\n type: ActivityEventDataType.DOCUMENT_RENAME\n };\n }\n case PlatformEventType.DOCUMENT_DESCRIPTION_UPDATE:\n {\n const wireData = data;\n return {\n isInitial: wireData.isInitial ?? false,\n newDescription: wireData.newDescription ?? \"\",\n type: ActivityEventDataType.DOCUMENT_DESCRIPTION_UPDATE\n };\n }\n case PlatformEventType.DOCUMENT_SECURITY_UPDATE:\n {\n const wireData = data;\n return {\n newClassification: wireData.newClassification ?? [],\n newMarkings: wireData.newMarkings ?? [],\n type: ActivityEventDataType.DOCUMENT_SECURITY_UPDATE\n };\n }\n default:\n return undefined;\n }\n}\nconst ARRIVED_DATA = {\n type: PresenceEventDataType.ARRIVED\n};\nconst DEPARTED_DATA = {\n type: PresenceEventDataType.DEPARTED\n};\nexport function getPresenceEvent(documentSchema, foundryUpdate) {\n switch (foundryUpdate.type) {\n case \"presenceChangeEvent\":\n {\n const {\n userId,\n status\n } = foundryUpdate;\n const eventData = status === \"PRESENT\" ? ARRIVED_DATA : DEPARTED_DATA;\n return {\n eventData,\n userId: userId\n };\n }\n case \"customPresenceEvent\":\n {\n const {\n userId,\n eventData,\n eventType\n } = foundryUpdate;\n const presenceEventData = getPresenceEventData(documentSchema, eventType, eventData);\n return {\n eventData: presenceEventData,\n userId: userId\n };\n }\n default:\n {\n foundryUpdate;\n const unknownUpdate = foundryUpdate;\n return {\n eventData: {\n rawData: foundryUpdate,\n rawType: typeof unknownUpdate.type === \"string\" ? unknownUpdate.type : \"unknown\",\n type: PresenceEventDataType.UNKNOWN\n },\n // FIXME: try and pull userId from message? Or just fix the platform types to have useful wrappers.\n userId: invalidUserRef().userId\n };\n }\n }\n}\nfunction getPresenceEventData(docSchema, eventType, eventData) {\n const model = docSchema[eventType];\n if (model == null) {\n return {\n rawData: eventData,\n rawType: eventType,\n type: PresenceEventDataType.UNKNOWN\n };\n }\n return {\n eventData,\n model,\n type: PresenceEventDataType.CUSTOM_EVENT\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Documents } from \"@osdk/foundry.pack\";\nimport { assertNever, getOntologyRid } from \"@palantir/pack.core\";\nimport { ActivityEventDataType, getMetadata } from \"@palantir/pack.document-schema.model-types\";\nimport { BaseYjsDocumentService, createDocumentServiceConfig, DocumentLoadStatus } from \"@palantir/pack.state.core\";\nimport { createFoundryEventService } from \"@palantir/pack.state.foundry-event\";\nimport { getActivityEvent, getPresenceEvent } from \"./eventMappers.js\";\nconst DEFAULT_USE_PREVIEW_API = true;\nconst EMPTY_DOCUMENT_SECURITY = Object.freeze({\n discretionary: {},\n mandatory: {}\n});\nexport function createFoundryDocumentServiceConfig(config = {}) {\n return createDocumentServiceConfig((app, config) => internalCreateFoundryDocumentService(app, config), config);\n}\nexport function internalCreateFoundryDocumentService(app, config, eventService) {\n return new FoundryDocumentService(app, config, eventService ?? createFoundryEventService(app));\n}\nexport class FoundryDocumentService extends BaseYjsDocumentService {\n constructor(app, config, eventService) {\n super(app, app.config.logger.child({}, {\n level: \"debug\",\n msgPrefix: \"FoundryDocumentService\"\n }));\n this.config = config;\n this.eventService = eventService;\n }\n createInternalDoc(ref, metadata) {\n return {\n ...this.createBaseInternalDoc(ref, metadata),\n syncSession: undefined\n };\n }\n get hasMetadataSubscriptions() {\n return Array.from(this.documents.values()).some(doc => this.hasSubscriptions(doc) && doc.metadataSubscribers.size > 0);\n }\n get hasStateSubscriptions() {\n return Array.from(this.documents.values()).some(doc => this.hasSubscriptions(doc) && doc.docStateSubscribers.size > 0);\n }\n createDocument = async (metadata, schema) => {\n const {\n documentTypeName,\n name,\n parentFolderRid,\n security\n } = metadata;\n const ontologyRid = await getOntologyRid(this.app);\n const request = {\n documentTypeName: documentTypeName,\n name: name,\n ontologyRid: ontologyRid,\n security: getWireSecurity(security)\n };\n if (parentFolderRid != null) {\n request.parentFolderRid = parentFolderRid;\n }\n const createResponse = await Documents.create(this.app.config.osdkClient, request, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n });\n const documentId = createResponse.id;\n const docRef = this.createDocRef(documentId, schema);\n return docRef;\n };\n searchDocuments = async (documentTypeName, schema, options) => {\n const request = {\n documentTypeName,\n requestBody: {\n query: options?.documentName != null ? {\n documentName: options.documentName\n } : undefined,\n pageSize: options?.pageSize,\n pageToken: options?.pageToken\n }\n };\n const searchResponse = await Documents.search(this.app.config.osdkClient, request, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n });\n return {\n data: searchResponse.data.map(doc => ({\n createdBy: doc.createdBy,\n createdTime: doc.createdTime,\n documentTypeName: doc.documentTypeName,\n id: doc.id,\n name: doc.name,\n ontologyRid: doc.ontologyRid,\n security: getLocalSecurity(doc.security),\n updatedBy: doc.updatedBy,\n updatedTime: doc.updatedTime\n })),\n nextPageToken: searchResponse.nextPageToken\n };\n };\n updateDocument = async (docRef, update) => {\n const document = await Documents.update(this.app.config.osdkClient, docRef.id, {\n requestBody: {\n ...(update.name != null ? {\n name: update.name\n } : {}),\n ...(update.description != null ? {\n description: update.description\n } : {}),\n ...(update.security != null ? {\n security: getWireSecurity(update.security)\n } : {})\n }\n }, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n });\n const metadata = {\n description: document.description,\n documentTypeName: document.documentTypeName,\n name: document.name,\n ontologyRid: document.ontologyRid,\n security: getLocalSecurity(document.security)\n };\n this.updateMetadata(docRef.id, metadata);\n return metadata;\n };\n onMetadataSubscriptionOpened(internalDoc, docRef) {\n if (internalDoc.metadataStatus.load !== DocumentLoadStatus.UNLOADED) {\n throw new Error(`Cannot subscribe to document metadata when status is ${internalDoc.metadataStatus.load}`);\n }\n this.updateMetadataStatus(internalDoc, docRef, {\n load: DocumentLoadStatus.LOADING\n });\n Documents.get(this.app.config.osdkClient, docRef.id, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n }).then(document => {\n const metadata = {\n description: document.description,\n documentTypeName: document.documentTypeName,\n name: document.name,\n ontologyRid: document.ontologyRid,\n security: getLocalSecurity(document.security)\n };\n internalDoc.metadata = metadata;\n this.notifyMetadataSubscribers(internalDoc, docRef, metadata);\n this.updateMetadataStatus(internalDoc, docRef, {\n load: DocumentLoadStatus.LOADED\n });\n }).catch(e => {\n const error = new Error(\"Failed to load document metadata\", {\n cause: e\n });\n this.updateMetadataStatus(internalDoc, docRef, {\n error,\n load: DocumentLoadStatus.ERROR\n });\n });\n }\n onDataSubscriptionOpened(internalDoc, docRef) {\n if (internalDoc.syncSession != null) {\n throw new Error(\"Document data subscription already opened\");\n }\n internalDoc.syncSession = this.eventService.startDocumentSync(docRef.id, internalDoc.yDoc, status => {\n this.updateDataStatus(internalDoc, docRef, status);\n });\n }\n onMetadataSubscriptionClosed(_internalDoc, _docRef) {}\n onDataSubscriptionClosed(internalDoc, _docRef) {\n if (internalDoc.syncSession) {\n this.eventService.stopDocumentSync(internalDoc.syncSession);\n internalDoc.syncSession = undefined;\n }\n }\n onActivity(docRef, callback) {\n let unsubscribed = false;\n const unsubscribeFn = () => {\n unsubscribed = true;\n };\n this.eventService.subscribeToActivityUpdates(docRef.id, foundryEvent => {\n if (!unsubscribed) {\n const localEvent = getActivityEvent(docRef.schema, foundryEvent);\n if (localEvent != null) {\n this.updateMetadataFromActivityEvent(docRef, localEvent);\n callback(docRef, localEvent);\n }\n }\n }).catch(e => {\n this.logger.error(\"Failed to subscribe to activity updates\", e, {\n docId: docRef.id\n });\n });\n return unsubscribeFn;\n }\n updateMetadataFromActivityEvent(docRef, event) {\n if (event.eventData.type === ActivityEventDataType.DOCUMENT_RENAME || event.eventData.type === ActivityEventDataType.DOCUMENT_DESCRIPTION_UPDATE) {\n this.refetchMetadata(docRef);\n }\n }\n refetchMetadata(docRef) {\n Documents.get(this.app.config.osdkClient, docRef.id, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n }).then(document => {\n const metadata = {\n description: document.description,\n documentTypeName: document.documentTypeName,\n name: document.name,\n ontologyRid: document.ontologyRid,\n security: getLocalSecurity(document.security)\n };\n this.updateMetadata(docRef.id, metadata);\n }).catch(e => {\n this.logger.error(\"Failed to refetch document metadata\", e, {\n docId: docRef.id\n });\n });\n }\n onPresence(docRef, callback, options) {\n let unsubscribed = false;\n const unsubscribeFn = () => {\n unsubscribed = true;\n };\n this.eventService.subscribeToPresenceUpdates(docRef.id, foundryUpdate => {\n if (!unsubscribed) {\n const localEvent = getPresenceEvent(docRef.schema, foundryUpdate);\n callback(docRef, localEvent);\n }\n }, options).catch(e => {\n this.logger.error(\"Failed to subscribe to presence updates\", e, {\n docId: docRef.id\n });\n });\n return unsubscribeFn;\n }\n updateCustomPresence(docRef, model, eventData, options) {\n const eventType = getMetadata(model).name;\n void this.eventService.publishCustomPresence(docRef.id, eventType, eventData, options).catch(e => {\n this.logger.error(\"Failed to publish custom presence\", e, {\n docId: docRef.id\n });\n });\n }\n}\nfunction getWireSecurity({\n discretionary,\n mandatory\n} = EMPTY_DOCUMENT_SECURITY) {\n const {\n editors = [],\n owners = [],\n viewers = []\n } = discretionary;\n return {\n discretionary: {\n editors: editors.map(getWirePrincipal),\n owners: owners.map(getWirePrincipal),\n viewers: viewers.map(getWirePrincipal)\n },\n mandatory: {\n classification: mandatory.classification != null ? [...mandatory.classification] : [],\n markings: mandatory.markings != null ? [...mandatory.markings] : []\n }\n };\n}\nfunction getWirePrincipal(principal) {\n switch (principal.type) {\n case \"all\":\n return {\n type: \"all\"\n };\n case \"groupId\":\n return {\n type: \"groupId\",\n groupId: principal.groupId\n };\n case \"userId\":\n return {\n type: \"userId\",\n userId: principal.userId\n };\n default:\n assertNever(principal);\n }\n}\nfunction getLocalSecurity(wireSecurity) {\n return {\n discretionary: {\n editors: wireSecurity.discretionary.editors.map(getLocalPrincipal),\n owners: wireSecurity.discretionary.owners.map(getLocalPrincipal),\n viewers: wireSecurity.discretionary.viewers.map(getLocalPrincipal)\n },\n mandatory: {\n classification: [...wireSecurity.mandatory.classification],\n markings: [...wireSecurity.mandatory.markings]\n }\n };\n}\nfunction getLocalPrincipal(wirePrincipal) {\n switch (wirePrincipal.type) {\n case \"all\":\n return {\n type: \"all\"\n };\n case \"groupId\":\n return {\n type: \"groupId\",\n groupId: wirePrincipal.groupId\n };\n case \"userId\":\n return {\n type: \"userId\",\n userId: wirePrincipal.userId\n };\n default:\n assertNever(wirePrincipal);\n }\n}"]}
|
|
1
|
+
{"version":3,"sources":["../../src/eventMappers.ts","../../src/FoundryDocumentService.ts"],"names":["config","ActivityEventDataType"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { invalidUserRef } from \"@palantir/pack.auth\";\nimport { ActivityEventDataType, PresenceEventDataType } from \"@palantir/pack.document-schema.model-types\";\nexport function getActivityEvent(documentSchema, foundryEvent) {\n // TODO: need to handle deletes and ensure exhaustive handling\n if (foundryEvent.type !== \"activityCreated\") {\n return undefined;\n }\n const {\n activityEvent\n } = foundryEvent;\n const eventData = getActivityEventData(documentSchema, activityEvent);\n return {\n aggregationKey: activityEvent.aggregationKey,\n createdBy: activityEvent.createdBy,\n createdInstant: new Date(activityEvent.createdTime).getTime(),\n eventData,\n eventId: activityEvent.eventId,\n isRead: activityEvent.isRead\n };\n}\n\n/**\n * Platform event type names as sent by backpack.\n * Note: Only DOCUMENT_CREATE is currently emitted by the backend.\n * Remaining types are included for future use.\n */\nconst PlatformEventType = {\n DOCUMENT_CREATE: \"DocumentCreateEvent\",\n DOCUMENT_DESCRIPTION_UPDATE: \"DocumentDescriptionUpdateEvent\",\n DOCUMENT_RENAME: \"DocumentRenameEvent\",\n DOCUMENT_SECURITY_UPDATE: \"DocumentMandatorySecurityUpdateEvent\"\n};\nfunction getActivityEventData(docSchema, {\n eventData,\n eventType\n}) {\n const platformEventData = getPlatformActivityEventData(eventType, eventData.data);\n if (platformEventData != null) {\n return platformEventData;\n }\n\n // Handle custom application-defined activity events\n // TODO: validate model is valid for activity events\n const model = docSchema[eventType];\n if (model == null) {\n return {\n rawData: eventData.data,\n rawType: eventType,\n type: ActivityEventDataType.UNKNOWN\n };\n }\n\n // TODO: validate data against model schema\n\n return {\n eventData: eventData.data,\n model,\n type: ActivityEventDataType.CUSTOM_EVENT\n };\n}\nfunction getPlatformActivityEventData(eventType, data) {\n switch (eventType) {\n case PlatformEventType.DOCUMENT_CREATE:\n {\n const wireData = data;\n return {\n initialMandatorySecurity: {\n classification: wireData.initialMandatorySecurity?.classification,\n markings: wireData.initialMandatorySecurity?.markings\n },\n name: wireData.name ?? \"\",\n type: ActivityEventDataType.DOCUMENT_CREATE\n };\n }\n case PlatformEventType.DOCUMENT_RENAME:\n {\n const wireData = data;\n return {\n newName: wireData.newName ?? \"\",\n previousName: wireData.previousName ?? \"\",\n type: ActivityEventDataType.DOCUMENT_RENAME\n };\n }\n case PlatformEventType.DOCUMENT_DESCRIPTION_UPDATE:\n {\n const wireData = data;\n return {\n isInitial: wireData.isInitial ?? false,\n newDescription: wireData.newDescription ?? \"\",\n type: ActivityEventDataType.DOCUMENT_DESCRIPTION_UPDATE\n };\n }\n case PlatformEventType.DOCUMENT_SECURITY_UPDATE:\n {\n const wireData = data;\n return {\n newClassification: wireData.newClassification ?? [],\n newMarkings: wireData.newMarkings ?? [],\n type: ActivityEventDataType.DOCUMENT_SECURITY_UPDATE\n };\n }\n default:\n return undefined;\n }\n}\nconst ARRIVED_DATA = {\n type: PresenceEventDataType.ARRIVED\n};\nconst DEPARTED_DATA = {\n type: PresenceEventDataType.DEPARTED\n};\nexport function getPresenceEvent(documentSchema, foundryUpdate) {\n switch (foundryUpdate.type) {\n case \"presenceChangeEvent\":\n {\n const {\n userId,\n status\n } = foundryUpdate;\n const eventData = status === \"PRESENT\" ? ARRIVED_DATA : DEPARTED_DATA;\n return {\n eventData,\n userId: userId\n };\n }\n case \"customPresenceEvent\":\n {\n const {\n userId,\n eventData,\n eventType\n } = foundryUpdate;\n const presenceEventData = getPresenceEventData(documentSchema, eventType, eventData);\n return {\n eventData: presenceEventData,\n userId: userId\n };\n }\n default:\n {\n foundryUpdate;\n const unknownUpdate = foundryUpdate;\n return {\n eventData: {\n rawData: foundryUpdate,\n rawType: typeof unknownUpdate.type === \"string\" ? unknownUpdate.type : \"unknown\",\n type: PresenceEventDataType.UNKNOWN\n },\n // FIXME: try and pull userId from message? Or just fix the platform types to have useful wrappers.\n userId: invalidUserRef().userId\n };\n }\n }\n}\nfunction getPresenceEventData(docSchema, eventType, eventData) {\n const model = docSchema[eventType];\n if (model == null) {\n return {\n rawData: eventData,\n rawType: eventType,\n type: PresenceEventDataType.UNKNOWN\n };\n }\n return {\n eventData,\n model,\n type: PresenceEventDataType.CUSTOM_EVENT\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Documents } from \"@osdk/foundry.pack\";\nimport { assertNever, getOntologyRid } from \"@palantir/pack.core\";\nimport { ActivityEventDataType, getMetadata } from \"@palantir/pack.document-schema.model-types\";\nimport { BaseYjsDocumentService, createDocumentServiceConfig, DocumentLoadStatus } from \"@palantir/pack.state.core\";\nimport { createFoundryEventService } from \"@palantir/pack.state.foundry-event\";\nimport { getActivityEvent, getPresenceEvent } from \"./eventMappers.js\";\nconst DEFAULT_USE_PREVIEW_API = true;\nconst EMPTY_DOCUMENT_SECURITY = Object.freeze({\n discretionary: {},\n mandatory: {}\n});\nexport function createFoundryDocumentServiceConfig(config = {}) {\n return createDocumentServiceConfig((app, config) => internalCreateFoundryDocumentService(app, config), config);\n}\nexport function internalCreateFoundryDocumentService(app, config, eventService) {\n return new FoundryDocumentService(app, config, eventService ?? createFoundryEventService(app));\n}\nexport class FoundryDocumentService extends BaseYjsDocumentService {\n constructor(app, config, eventService) {\n super(app, app.config.logger.child({}, {\n level: \"debug\",\n msgPrefix: \"FoundryDocumentService\"\n }));\n this.config = config;\n this.eventService = eventService;\n }\n createInternalDoc(ref, metadata) {\n return {\n ...this.createBaseInternalDoc(ref, metadata),\n syncSession: undefined\n };\n }\n get hasMetadataSubscriptions() {\n return Array.from(this.documents.values()).some(doc => this.hasSubscriptions(doc) && doc.metadataSubscribers.size > 0);\n }\n get hasStateSubscriptions() {\n return Array.from(this.documents.values()).some(doc => this.hasSubscriptions(doc) && doc.docStateSubscribers.size > 0);\n }\n createDocument = async (metadata, schema) => {\n const {\n documentTypeName,\n name,\n parentFolderRid,\n security\n } = metadata;\n const ontologyRid = await getOntologyRid(this.app);\n const request = {\n documentTypeName: documentTypeName,\n name: name,\n ontologyRid: ontologyRid,\n security: getWireSecurity(security)\n };\n if (parentFolderRid != null) {\n request.parentFolderRid = parentFolderRid;\n }\n const createResponse = await Documents.create(this.app.config.osdkClient, request, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n });\n const documentId = createResponse.id;\n const docRef = this.createDocRef(documentId, schema);\n return docRef;\n };\n searchDocuments = async (documentTypeName, schema, options) => {\n const request = {\n documentTypeName,\n requestBody: {\n query: options?.documentName != null ? {\n documentName: options.documentName\n } : undefined,\n pageSize: options?.pageSize,\n pageToken: options?.pageToken\n }\n };\n const searchResponse = await Documents.search(this.app.config.osdkClient, request, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n });\n return {\n data: searchResponse.data.map(doc => ({\n createdBy: doc.createdBy,\n createdTime: doc.createdTime,\n documentTypeName: doc.documentTypeName,\n id: doc.id,\n name: doc.name,\n ontologyRid: doc.ontologyRid,\n security: getLocalSecurity(doc.security),\n updatedBy: doc.updatedBy,\n updatedTime: doc.updatedTime\n })),\n nextPageToken: searchResponse.nextPageToken\n };\n };\n updateDocument = async (docRef, update) => {\n const document = await Documents.update(this.app.config.osdkClient, docRef.id, {\n requestBody: {\n ...(update.name != null ? {\n name: update.name\n } : {}),\n ...(update.description != null ? {\n description: update.description\n } : {}),\n ...(update.security != null ? {\n security: getWireSecurity(update.security)\n } : {})\n }\n }, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n });\n const metadata = {\n description: document.description,\n documentTypeName: document.documentTypeName,\n name: document.name,\n ontologyRid: document.ontologyRid,\n security: getLocalSecurity(document.security)\n };\n this.updateMetadata(docRef.id, metadata);\n return metadata;\n };\n onMetadataSubscriptionOpened(internalDoc, docRef) {\n if (internalDoc.metadataStatus.load !== DocumentLoadStatus.UNLOADED) {\n throw new Error(`Cannot subscribe to document metadata when status is ${internalDoc.metadataStatus.load}`);\n }\n this.updateMetadataStatus(internalDoc, docRef, {\n load: DocumentLoadStatus.LOADING\n });\n Documents.get(this.app.config.osdkClient, docRef.id, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n }).then(document => {\n const metadata = {\n description: document.description,\n documentTypeName: document.documentTypeName,\n name: document.name,\n ontologyRid: document.ontologyRid,\n security: getLocalSecurity(document.security)\n };\n internalDoc.metadata = metadata;\n this.notifyMetadataSubscribers(internalDoc, docRef, metadata);\n this.updateMetadataStatus(internalDoc, docRef, {\n load: DocumentLoadStatus.LOADED\n });\n }).catch(e => {\n const error = new Error(\"Failed to load document metadata\", {\n cause: e\n });\n this.updateMetadataStatus(internalDoc, docRef, {\n error,\n load: DocumentLoadStatus.ERROR\n });\n });\n }\n onDataSubscriptionOpened(internalDoc, docRef) {\n if (internalDoc.syncSession != null) {\n throw new Error(\"Document data subscription already opened\");\n }\n internalDoc.syncSession = this.eventService.startDocumentSync(docRef.id, internalDoc.yDoc, status => {\n this.updateDataStatus(internalDoc, docRef, status);\n });\n }\n onMetadataSubscriptionClosed(_internalDoc, _docRef) {}\n onDataSubscriptionClosed(internalDoc, _docRef) {\n if (internalDoc.syncSession) {\n this.eventService.stopDocumentSync(internalDoc.syncSession);\n internalDoc.syncSession = undefined;\n }\n }\n onActivity(docRef, callback) {\n let unsubscribed = false;\n const unsubscribeFn = () => {\n unsubscribed = true;\n };\n this.eventService.subscribeToActivityUpdates(docRef.id, foundryEvent => {\n if (!unsubscribed) {\n const localEvent = getActivityEvent(docRef.schema, foundryEvent);\n if (localEvent != null) {\n this.updateMetadataFromActivityEvent(docRef, localEvent);\n callback(docRef, localEvent);\n }\n }\n }).catch(e => {\n this.logger.error(\"Failed to subscribe to activity updates\", e, {\n docId: docRef.id\n });\n });\n return unsubscribeFn;\n }\n static METADATA_ACTIVITY_EVENT_TYPES = new Set([ActivityEventDataType.DOCUMENT_RENAME, ActivityEventDataType.DOCUMENT_DESCRIPTION_UPDATE, ActivityEventDataType.DOCUMENT_SECURITY_UPDATE]);\n updateMetadataFromActivityEvent(docRef, event) {\n if (FoundryDocumentService.METADATA_ACTIVITY_EVENT_TYPES.has(event.eventData.type)) {\n this.refetchMetadata(docRef);\n }\n }\n refetchMetadata(docRef) {\n Documents.get(this.app.config.osdkClient, docRef.id, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n }).then(document => {\n const metadata = {\n description: document.description,\n documentTypeName: document.documentTypeName,\n name: document.name,\n ontologyRid: document.ontologyRid,\n security: getLocalSecurity(document.security)\n };\n this.updateMetadata(docRef.id, metadata);\n }).catch(e => {\n this.logger.error(\"Failed to refetch document metadata\", e, {\n docId: docRef.id\n });\n });\n }\n onPresence(docRef, callback, options) {\n let unsubscribed = false;\n const unsubscribeFn = () => {\n unsubscribed = true;\n };\n this.eventService.subscribeToPresenceUpdates(docRef.id, foundryUpdate => {\n if (!unsubscribed) {\n const localEvent = getPresenceEvent(docRef.schema, foundryUpdate);\n callback(docRef, localEvent);\n }\n }, options).catch(e => {\n this.logger.error(\"Failed to subscribe to presence updates\", e, {\n docId: docRef.id\n });\n });\n return unsubscribeFn;\n }\n updateCustomPresence(docRef, model, eventData, options) {\n const eventType = getMetadata(model).name;\n void this.eventService.publishCustomPresence(docRef.id, eventType, eventData, options).catch(e => {\n this.logger.error(\"Failed to publish custom presence\", e, {\n docId: docRef.id\n });\n });\n }\n}\nfunction getWireSecurity({\n discretionary,\n mandatory\n} = EMPTY_DOCUMENT_SECURITY) {\n const {\n editors = [],\n owners = [],\n viewers = []\n } = discretionary;\n return {\n discretionary: {\n editors: editors.map(getWirePrincipal),\n owners: owners.map(getWirePrincipal),\n viewers: viewers.map(getWirePrincipal)\n },\n mandatory: {\n classification: mandatory.classification != null ? [...mandatory.classification] : [],\n markings: mandatory.markings != null ? [...mandatory.markings] : []\n }\n };\n}\nfunction getWirePrincipal(principal) {\n switch (principal.type) {\n case \"all\":\n return {\n type: \"all\"\n };\n case \"groupId\":\n return {\n type: \"groupId\",\n groupId: principal.groupId\n };\n case \"userId\":\n return {\n type: \"userId\",\n userId: principal.userId\n };\n default:\n assertNever(principal);\n }\n}\nfunction getLocalSecurity(wireSecurity) {\n return {\n discretionary: {\n editors: wireSecurity.discretionary.editors.map(getLocalPrincipal),\n owners: wireSecurity.discretionary.owners.map(getLocalPrincipal),\n viewers: wireSecurity.discretionary.viewers.map(getLocalPrincipal)\n },\n mandatory: {\n classification: [...wireSecurity.mandatory.classification],\n markings: [...wireSecurity.mandatory.markings]\n }\n };\n}\nfunction getLocalPrincipal(wirePrincipal) {\n switch (wirePrincipal.type) {\n case \"all\":\n return {\n type: \"all\"\n };\n case \"groupId\":\n return {\n type: \"groupId\",\n groupId: wirePrincipal.groupId\n };\n case \"userId\":\n return {\n type: \"userId\",\n userId: wirePrincipal.userId\n };\n default:\n assertNever(wirePrincipal);\n }\n}"]}
|
package/build/cjs/index.cjs
CHANGED
|
@@ -167,7 +167,7 @@ function createFoundryDocumentServiceConfig(config = {}) {
|
|
|
167
167
|
function internalCreateFoundryDocumentService(app, config, eventService) {
|
|
168
168
|
return new FoundryDocumentService(app, config, pack_state_foundryEvent.createFoundryEventService(app));
|
|
169
169
|
}
|
|
170
|
-
var FoundryDocumentService = class extends pack_state_core.BaseYjsDocumentService {
|
|
170
|
+
var FoundryDocumentService = class _FoundryDocumentService extends pack_state_core.BaseYjsDocumentService {
|
|
171
171
|
constructor(app, config, eventService) {
|
|
172
172
|
super(app, app.config.logger.child({}, {
|
|
173
173
|
level: "debug",
|
|
@@ -335,8 +335,9 @@ var FoundryDocumentService = class extends pack_state_core.BaseYjsDocumentServic
|
|
|
335
335
|
});
|
|
336
336
|
return unsubscribeFn;
|
|
337
337
|
}
|
|
338
|
+
static METADATA_ACTIVITY_EVENT_TYPES = /* @__PURE__ */ new Set([pack_documentSchema_modelTypes.ActivityEventDataType.DOCUMENT_RENAME, pack_documentSchema_modelTypes.ActivityEventDataType.DOCUMENT_DESCRIPTION_UPDATE, pack_documentSchema_modelTypes.ActivityEventDataType.DOCUMENT_SECURITY_UPDATE]);
|
|
338
339
|
updateMetadataFromActivityEvent(docRef, event) {
|
|
339
|
-
if (
|
|
340
|
+
if (_FoundryDocumentService.METADATA_ACTIVITY_EVENT_TYPES.has(event.eventData.type)) {
|
|
340
341
|
this.refetchMetadata(docRef);
|
|
341
342
|
}
|
|
342
343
|
}
|
package/build/cjs/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/eventMappers.ts","../../src/FoundryDocumentService.ts"],"names":["ActivityEventDataType","PresenceEventDataType","invalidUserRef","createDocumentServiceConfig","config","createFoundryEventService","BaseYjsDocumentService","getOntologyRid","Documents","DocumentLoadStatus","getMetadata","assertNever"],"mappings":"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","file":"index.cjs","sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { invalidUserRef } from \"@palantir/pack.auth\";\nimport { ActivityEventDataType, PresenceEventDataType } from \"@palantir/pack.document-schema.model-types\";\nexport function getActivityEvent(documentSchema, foundryEvent) {\n // TODO: need to handle deletes and ensure exhaustive handling\n if (foundryEvent.type !== \"activityCreated\") {\n return undefined;\n }\n const {\n activityEvent\n } = foundryEvent;\n const eventData = getActivityEventData(documentSchema, activityEvent);\n return {\n aggregationKey: activityEvent.aggregationKey,\n createdBy: activityEvent.createdBy,\n createdInstant: new Date(activityEvent.createdTime).getTime(),\n eventData,\n eventId: activityEvent.eventId,\n isRead: activityEvent.isRead\n };\n}\n\n/**\n * Platform event type names as sent by backpack.\n * Note: Only DOCUMENT_CREATE is currently emitted by the backend.\n * Remaining types are included for future use.\n */\nconst PlatformEventType = {\n DOCUMENT_CREATE: \"DocumentCreateEvent\",\n DOCUMENT_DESCRIPTION_UPDATE: \"DocumentDescriptionUpdateEvent\",\n DOCUMENT_RENAME: \"DocumentRenameEvent\",\n DOCUMENT_SECURITY_UPDATE: \"DocumentMandatorySecurityUpdateEvent\"\n};\nfunction getActivityEventData(docSchema, {\n eventData,\n eventType\n}) {\n const platformEventData = getPlatformActivityEventData(eventType, eventData.data);\n if (platformEventData != null) {\n return platformEventData;\n }\n\n // Handle custom application-defined activity events\n // TODO: validate model is valid for activity events\n const model = docSchema[eventType];\n if (model == null) {\n return {\n rawData: eventData.data,\n rawType: eventType,\n type: ActivityEventDataType.UNKNOWN\n };\n }\n\n // TODO: validate data against model schema\n\n return {\n eventData: eventData.data,\n model,\n type: ActivityEventDataType.CUSTOM_EVENT\n };\n}\nfunction getPlatformActivityEventData(eventType, data) {\n switch (eventType) {\n case PlatformEventType.DOCUMENT_CREATE:\n {\n const wireData = data;\n return {\n initialMandatorySecurity: {\n classification: wireData.initialMandatorySecurity?.classification,\n markings: wireData.initialMandatorySecurity?.markings\n },\n name: wireData.name ?? \"\",\n type: ActivityEventDataType.DOCUMENT_CREATE\n };\n }\n case PlatformEventType.DOCUMENT_RENAME:\n {\n const wireData = data;\n return {\n newName: wireData.newName ?? \"\",\n previousName: wireData.previousName ?? \"\",\n type: ActivityEventDataType.DOCUMENT_RENAME\n };\n }\n case PlatformEventType.DOCUMENT_DESCRIPTION_UPDATE:\n {\n const wireData = data;\n return {\n isInitial: wireData.isInitial ?? false,\n newDescription: wireData.newDescription ?? \"\",\n type: ActivityEventDataType.DOCUMENT_DESCRIPTION_UPDATE\n };\n }\n case PlatformEventType.DOCUMENT_SECURITY_UPDATE:\n {\n const wireData = data;\n return {\n newClassification: wireData.newClassification ?? [],\n newMarkings: wireData.newMarkings ?? [],\n type: ActivityEventDataType.DOCUMENT_SECURITY_UPDATE\n };\n }\n default:\n return undefined;\n }\n}\nconst ARRIVED_DATA = {\n type: PresenceEventDataType.ARRIVED\n};\nconst DEPARTED_DATA = {\n type: PresenceEventDataType.DEPARTED\n};\nexport function getPresenceEvent(documentSchema, foundryUpdate) {\n switch (foundryUpdate.type) {\n case \"presenceChangeEvent\":\n {\n const {\n userId,\n status\n } = foundryUpdate;\n const eventData = status === \"PRESENT\" ? ARRIVED_DATA : DEPARTED_DATA;\n return {\n eventData,\n userId: userId\n };\n }\n case \"customPresenceEvent\":\n {\n const {\n userId,\n eventData,\n eventType\n } = foundryUpdate;\n const presenceEventData = getPresenceEventData(documentSchema, eventType, eventData);\n return {\n eventData: presenceEventData,\n userId: userId\n };\n }\n default:\n {\n foundryUpdate;\n const unknownUpdate = foundryUpdate;\n return {\n eventData: {\n rawData: foundryUpdate,\n rawType: typeof unknownUpdate.type === \"string\" ? unknownUpdate.type : \"unknown\",\n type: PresenceEventDataType.UNKNOWN\n },\n // FIXME: try and pull userId from message? Or just fix the platform types to have useful wrappers.\n userId: invalidUserRef().userId\n };\n }\n }\n}\nfunction getPresenceEventData(docSchema, eventType, eventData) {\n const model = docSchema[eventType];\n if (model == null) {\n return {\n rawData: eventData,\n rawType: eventType,\n type: PresenceEventDataType.UNKNOWN\n };\n }\n return {\n eventData,\n model,\n type: PresenceEventDataType.CUSTOM_EVENT\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Documents } from \"@osdk/foundry.pack\";\nimport { assertNever, getOntologyRid } from \"@palantir/pack.core\";\nimport { ActivityEventDataType, getMetadata } from \"@palantir/pack.document-schema.model-types\";\nimport { BaseYjsDocumentService, createDocumentServiceConfig, DocumentLoadStatus } from \"@palantir/pack.state.core\";\nimport { createFoundryEventService } from \"@palantir/pack.state.foundry-event\";\nimport { getActivityEvent, getPresenceEvent } from \"./eventMappers.js\";\nconst DEFAULT_USE_PREVIEW_API = true;\nconst EMPTY_DOCUMENT_SECURITY = Object.freeze({\n discretionary: {},\n mandatory: {}\n});\nexport function createFoundryDocumentServiceConfig(config = {}) {\n return createDocumentServiceConfig((app, config) => internalCreateFoundryDocumentService(app, config), config);\n}\nexport function internalCreateFoundryDocumentService(app, config, eventService) {\n return new FoundryDocumentService(app, config, eventService ?? createFoundryEventService(app));\n}\nexport class FoundryDocumentService extends BaseYjsDocumentService {\n constructor(app, config, eventService) {\n super(app, app.config.logger.child({}, {\n level: \"debug\",\n msgPrefix: \"FoundryDocumentService\"\n }));\n this.config = config;\n this.eventService = eventService;\n }\n createInternalDoc(ref, metadata) {\n return {\n ...this.createBaseInternalDoc(ref, metadata),\n syncSession: undefined\n };\n }\n get hasMetadataSubscriptions() {\n return Array.from(this.documents.values()).some(doc => this.hasSubscriptions(doc) && doc.metadataSubscribers.size > 0);\n }\n get hasStateSubscriptions() {\n return Array.from(this.documents.values()).some(doc => this.hasSubscriptions(doc) && doc.docStateSubscribers.size > 0);\n }\n createDocument = async (metadata, schema) => {\n const {\n documentTypeName,\n name,\n parentFolderRid,\n security\n } = metadata;\n const ontologyRid = await getOntologyRid(this.app);\n const request = {\n documentTypeName: documentTypeName,\n name: name,\n ontologyRid: ontologyRid,\n security: getWireSecurity(security)\n };\n if (parentFolderRid != null) {\n request.parentFolderRid = parentFolderRid;\n }\n const createResponse = await Documents.create(this.app.config.osdkClient, request, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n });\n const documentId = createResponse.id;\n const docRef = this.createDocRef(documentId, schema);\n return docRef;\n };\n searchDocuments = async (documentTypeName, schema, options) => {\n const request = {\n documentTypeName,\n requestBody: {\n query: options?.documentName != null ? {\n documentName: options.documentName\n } : undefined,\n pageSize: options?.pageSize,\n pageToken: options?.pageToken\n }\n };\n const searchResponse = await Documents.search(this.app.config.osdkClient, request, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n });\n return {\n data: searchResponse.data.map(doc => ({\n createdBy: doc.createdBy,\n createdTime: doc.createdTime,\n documentTypeName: doc.documentTypeName,\n id: doc.id,\n name: doc.name,\n ontologyRid: doc.ontologyRid,\n security: getLocalSecurity(doc.security),\n updatedBy: doc.updatedBy,\n updatedTime: doc.updatedTime\n })),\n nextPageToken: searchResponse.nextPageToken\n };\n };\n updateDocument = async (docRef, update) => {\n const document = await Documents.update(this.app.config.osdkClient, docRef.id, {\n requestBody: {\n ...(update.name != null ? {\n name: update.name\n } : {}),\n ...(update.description != null ? {\n description: update.description\n } : {}),\n ...(update.security != null ? {\n security: getWireSecurity(update.security)\n } : {})\n }\n }, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n });\n const metadata = {\n description: document.description,\n documentTypeName: document.documentTypeName,\n name: document.name,\n ontologyRid: document.ontologyRid,\n security: getLocalSecurity(document.security)\n };\n this.updateMetadata(docRef.id, metadata);\n return metadata;\n };\n onMetadataSubscriptionOpened(internalDoc, docRef) {\n if (internalDoc.metadataStatus.load !== DocumentLoadStatus.UNLOADED) {\n throw new Error(`Cannot subscribe to document metadata when status is ${internalDoc.metadataStatus.load}`);\n }\n this.updateMetadataStatus(internalDoc, docRef, {\n load: DocumentLoadStatus.LOADING\n });\n Documents.get(this.app.config.osdkClient, docRef.id, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n }).then(document => {\n const metadata = {\n description: document.description,\n documentTypeName: document.documentTypeName,\n name: document.name,\n ontologyRid: document.ontologyRid,\n security: getLocalSecurity(document.security)\n };\n internalDoc.metadata = metadata;\n this.notifyMetadataSubscribers(internalDoc, docRef, metadata);\n this.updateMetadataStatus(internalDoc, docRef, {\n load: DocumentLoadStatus.LOADED\n });\n }).catch(e => {\n const error = new Error(\"Failed to load document metadata\", {\n cause: e\n });\n this.updateMetadataStatus(internalDoc, docRef, {\n error,\n load: DocumentLoadStatus.ERROR\n });\n });\n }\n onDataSubscriptionOpened(internalDoc, docRef) {\n if (internalDoc.syncSession != null) {\n throw new Error(\"Document data subscription already opened\");\n }\n internalDoc.syncSession = this.eventService.startDocumentSync(docRef.id, internalDoc.yDoc, status => {\n this.updateDataStatus(internalDoc, docRef, status);\n });\n }\n onMetadataSubscriptionClosed(_internalDoc, _docRef) {}\n onDataSubscriptionClosed(internalDoc, _docRef) {\n if (internalDoc.syncSession) {\n this.eventService.stopDocumentSync(internalDoc.syncSession);\n internalDoc.syncSession = undefined;\n }\n }\n onActivity(docRef, callback) {\n let unsubscribed = false;\n const unsubscribeFn = () => {\n unsubscribed = true;\n };\n this.eventService.subscribeToActivityUpdates(docRef.id, foundryEvent => {\n if (!unsubscribed) {\n const localEvent = getActivityEvent(docRef.schema, foundryEvent);\n if (localEvent != null) {\n this.updateMetadataFromActivityEvent(docRef, localEvent);\n callback(docRef, localEvent);\n }\n }\n }).catch(e => {\n this.logger.error(\"Failed to subscribe to activity updates\", e, {\n docId: docRef.id\n });\n });\n return unsubscribeFn;\n }\n updateMetadataFromActivityEvent(docRef, event) {\n if (event.eventData.type === ActivityEventDataType.DOCUMENT_RENAME || event.eventData.type === ActivityEventDataType.DOCUMENT_DESCRIPTION_UPDATE) {\n this.refetchMetadata(docRef);\n }\n }\n refetchMetadata(docRef) {\n Documents.get(this.app.config.osdkClient, docRef.id, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n }).then(document => {\n const metadata = {\n description: document.description,\n documentTypeName: document.documentTypeName,\n name: document.name,\n ontologyRid: document.ontologyRid,\n security: getLocalSecurity(document.security)\n };\n this.updateMetadata(docRef.id, metadata);\n }).catch(e => {\n this.logger.error(\"Failed to refetch document metadata\", e, {\n docId: docRef.id\n });\n });\n }\n onPresence(docRef, callback, options) {\n let unsubscribed = false;\n const unsubscribeFn = () => {\n unsubscribed = true;\n };\n this.eventService.subscribeToPresenceUpdates(docRef.id, foundryUpdate => {\n if (!unsubscribed) {\n const localEvent = getPresenceEvent(docRef.schema, foundryUpdate);\n callback(docRef, localEvent);\n }\n }, options).catch(e => {\n this.logger.error(\"Failed to subscribe to presence updates\", e, {\n docId: docRef.id\n });\n });\n return unsubscribeFn;\n }\n updateCustomPresence(docRef, model, eventData, options) {\n const eventType = getMetadata(model).name;\n void this.eventService.publishCustomPresence(docRef.id, eventType, eventData, options).catch(e => {\n this.logger.error(\"Failed to publish custom presence\", e, {\n docId: docRef.id\n });\n });\n }\n}\nfunction getWireSecurity({\n discretionary,\n mandatory\n} = EMPTY_DOCUMENT_SECURITY) {\n const {\n editors = [],\n owners = [],\n viewers = []\n } = discretionary;\n return {\n discretionary: {\n editors: editors.map(getWirePrincipal),\n owners: owners.map(getWirePrincipal),\n viewers: viewers.map(getWirePrincipal)\n },\n mandatory: {\n classification: mandatory.classification != null ? [...mandatory.classification] : [],\n markings: mandatory.markings != null ? [...mandatory.markings] : []\n }\n };\n}\nfunction getWirePrincipal(principal) {\n switch (principal.type) {\n case \"all\":\n return {\n type: \"all\"\n };\n case \"groupId\":\n return {\n type: \"groupId\",\n groupId: principal.groupId\n };\n case \"userId\":\n return {\n type: \"userId\",\n userId: principal.userId\n };\n default:\n assertNever(principal);\n }\n}\nfunction getLocalSecurity(wireSecurity) {\n return {\n discretionary: {\n editors: wireSecurity.discretionary.editors.map(getLocalPrincipal),\n owners: wireSecurity.discretionary.owners.map(getLocalPrincipal),\n viewers: wireSecurity.discretionary.viewers.map(getLocalPrincipal)\n },\n mandatory: {\n classification: [...wireSecurity.mandatory.classification],\n markings: [...wireSecurity.mandatory.markings]\n }\n };\n}\nfunction getLocalPrincipal(wirePrincipal) {\n switch (wirePrincipal.type) {\n case \"all\":\n return {\n type: \"all\"\n };\n case \"groupId\":\n return {\n type: \"groupId\",\n groupId: wirePrincipal.groupId\n };\n case \"userId\":\n return {\n type: \"userId\",\n userId: wirePrincipal.userId\n };\n default:\n assertNever(wirePrincipal);\n }\n}"]}
|
|
1
|
+
{"version":3,"sources":["../../src/eventMappers.ts","../../src/FoundryDocumentService.ts"],"names":["ActivityEventDataType","PresenceEventDataType","invalidUserRef","createDocumentServiceConfig","config","createFoundryEventService","BaseYjsDocumentService","getOntologyRid","Documents","DocumentLoadStatus","getMetadata","assertNever"],"mappings":"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","file":"index.cjs","sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { invalidUserRef } from \"@palantir/pack.auth\";\nimport { ActivityEventDataType, PresenceEventDataType } from \"@palantir/pack.document-schema.model-types\";\nexport function getActivityEvent(documentSchema, foundryEvent) {\n // TODO: need to handle deletes and ensure exhaustive handling\n if (foundryEvent.type !== \"activityCreated\") {\n return undefined;\n }\n const {\n activityEvent\n } = foundryEvent;\n const eventData = getActivityEventData(documentSchema, activityEvent);\n return {\n aggregationKey: activityEvent.aggregationKey,\n createdBy: activityEvent.createdBy,\n createdInstant: new Date(activityEvent.createdTime).getTime(),\n eventData,\n eventId: activityEvent.eventId,\n isRead: activityEvent.isRead\n };\n}\n\n/**\n * Platform event type names as sent by backpack.\n * Note: Only DOCUMENT_CREATE is currently emitted by the backend.\n * Remaining types are included for future use.\n */\nconst PlatformEventType = {\n DOCUMENT_CREATE: \"DocumentCreateEvent\",\n DOCUMENT_DESCRIPTION_UPDATE: \"DocumentDescriptionUpdateEvent\",\n DOCUMENT_RENAME: \"DocumentRenameEvent\",\n DOCUMENT_SECURITY_UPDATE: \"DocumentMandatorySecurityUpdateEvent\"\n};\nfunction getActivityEventData(docSchema, {\n eventData,\n eventType\n}) {\n const platformEventData = getPlatformActivityEventData(eventType, eventData.data);\n if (platformEventData != null) {\n return platformEventData;\n }\n\n // Handle custom application-defined activity events\n // TODO: validate model is valid for activity events\n const model = docSchema[eventType];\n if (model == null) {\n return {\n rawData: eventData.data,\n rawType: eventType,\n type: ActivityEventDataType.UNKNOWN\n };\n }\n\n // TODO: validate data against model schema\n\n return {\n eventData: eventData.data,\n model,\n type: ActivityEventDataType.CUSTOM_EVENT\n };\n}\nfunction getPlatformActivityEventData(eventType, data) {\n switch (eventType) {\n case PlatformEventType.DOCUMENT_CREATE:\n {\n const wireData = data;\n return {\n initialMandatorySecurity: {\n classification: wireData.initialMandatorySecurity?.classification,\n markings: wireData.initialMandatorySecurity?.markings\n },\n name: wireData.name ?? \"\",\n type: ActivityEventDataType.DOCUMENT_CREATE\n };\n }\n case PlatformEventType.DOCUMENT_RENAME:\n {\n const wireData = data;\n return {\n newName: wireData.newName ?? \"\",\n previousName: wireData.previousName ?? \"\",\n type: ActivityEventDataType.DOCUMENT_RENAME\n };\n }\n case PlatformEventType.DOCUMENT_DESCRIPTION_UPDATE:\n {\n const wireData = data;\n return {\n isInitial: wireData.isInitial ?? false,\n newDescription: wireData.newDescription ?? \"\",\n type: ActivityEventDataType.DOCUMENT_DESCRIPTION_UPDATE\n };\n }\n case PlatformEventType.DOCUMENT_SECURITY_UPDATE:\n {\n const wireData = data;\n return {\n newClassification: wireData.newClassification ?? [],\n newMarkings: wireData.newMarkings ?? [],\n type: ActivityEventDataType.DOCUMENT_SECURITY_UPDATE\n };\n }\n default:\n return undefined;\n }\n}\nconst ARRIVED_DATA = {\n type: PresenceEventDataType.ARRIVED\n};\nconst DEPARTED_DATA = {\n type: PresenceEventDataType.DEPARTED\n};\nexport function getPresenceEvent(documentSchema, foundryUpdate) {\n switch (foundryUpdate.type) {\n case \"presenceChangeEvent\":\n {\n const {\n userId,\n status\n } = foundryUpdate;\n const eventData = status === \"PRESENT\" ? ARRIVED_DATA : DEPARTED_DATA;\n return {\n eventData,\n userId: userId\n };\n }\n case \"customPresenceEvent\":\n {\n const {\n userId,\n eventData,\n eventType\n } = foundryUpdate;\n const presenceEventData = getPresenceEventData(documentSchema, eventType, eventData);\n return {\n eventData: presenceEventData,\n userId: userId\n };\n }\n default:\n {\n foundryUpdate;\n const unknownUpdate = foundryUpdate;\n return {\n eventData: {\n rawData: foundryUpdate,\n rawType: typeof unknownUpdate.type === \"string\" ? unknownUpdate.type : \"unknown\",\n type: PresenceEventDataType.UNKNOWN\n },\n // FIXME: try and pull userId from message? Or just fix the platform types to have useful wrappers.\n userId: invalidUserRef().userId\n };\n }\n }\n}\nfunction getPresenceEventData(docSchema, eventType, eventData) {\n const model = docSchema[eventType];\n if (model == null) {\n return {\n rawData: eventData,\n rawType: eventType,\n type: PresenceEventDataType.UNKNOWN\n };\n }\n return {\n eventData,\n model,\n type: PresenceEventDataType.CUSTOM_EVENT\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Documents } from \"@osdk/foundry.pack\";\nimport { assertNever, getOntologyRid } from \"@palantir/pack.core\";\nimport { ActivityEventDataType, getMetadata } from \"@palantir/pack.document-schema.model-types\";\nimport { BaseYjsDocumentService, createDocumentServiceConfig, DocumentLoadStatus } from \"@palantir/pack.state.core\";\nimport { createFoundryEventService } from \"@palantir/pack.state.foundry-event\";\nimport { getActivityEvent, getPresenceEvent } from \"./eventMappers.js\";\nconst DEFAULT_USE_PREVIEW_API = true;\nconst EMPTY_DOCUMENT_SECURITY = Object.freeze({\n discretionary: {},\n mandatory: {}\n});\nexport function createFoundryDocumentServiceConfig(config = {}) {\n return createDocumentServiceConfig((app, config) => internalCreateFoundryDocumentService(app, config), config);\n}\nexport function internalCreateFoundryDocumentService(app, config, eventService) {\n return new FoundryDocumentService(app, config, eventService ?? createFoundryEventService(app));\n}\nexport class FoundryDocumentService extends BaseYjsDocumentService {\n constructor(app, config, eventService) {\n super(app, app.config.logger.child({}, {\n level: \"debug\",\n msgPrefix: \"FoundryDocumentService\"\n }));\n this.config = config;\n this.eventService = eventService;\n }\n createInternalDoc(ref, metadata) {\n return {\n ...this.createBaseInternalDoc(ref, metadata),\n syncSession: undefined\n };\n }\n get hasMetadataSubscriptions() {\n return Array.from(this.documents.values()).some(doc => this.hasSubscriptions(doc) && doc.metadataSubscribers.size > 0);\n }\n get hasStateSubscriptions() {\n return Array.from(this.documents.values()).some(doc => this.hasSubscriptions(doc) && doc.docStateSubscribers.size > 0);\n }\n createDocument = async (metadata, schema) => {\n const {\n documentTypeName,\n name,\n parentFolderRid,\n security\n } = metadata;\n const ontologyRid = await getOntologyRid(this.app);\n const request = {\n documentTypeName: documentTypeName,\n name: name,\n ontologyRid: ontologyRid,\n security: getWireSecurity(security)\n };\n if (parentFolderRid != null) {\n request.parentFolderRid = parentFolderRid;\n }\n const createResponse = await Documents.create(this.app.config.osdkClient, request, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n });\n const documentId = createResponse.id;\n const docRef = this.createDocRef(documentId, schema);\n return docRef;\n };\n searchDocuments = async (documentTypeName, schema, options) => {\n const request = {\n documentTypeName,\n requestBody: {\n query: options?.documentName != null ? {\n documentName: options.documentName\n } : undefined,\n pageSize: options?.pageSize,\n pageToken: options?.pageToken\n }\n };\n const searchResponse = await Documents.search(this.app.config.osdkClient, request, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n });\n return {\n data: searchResponse.data.map(doc => ({\n createdBy: doc.createdBy,\n createdTime: doc.createdTime,\n documentTypeName: doc.documentTypeName,\n id: doc.id,\n name: doc.name,\n ontologyRid: doc.ontologyRid,\n security: getLocalSecurity(doc.security),\n updatedBy: doc.updatedBy,\n updatedTime: doc.updatedTime\n })),\n nextPageToken: searchResponse.nextPageToken\n };\n };\n updateDocument = async (docRef, update) => {\n const document = await Documents.update(this.app.config.osdkClient, docRef.id, {\n requestBody: {\n ...(update.name != null ? {\n name: update.name\n } : {}),\n ...(update.description != null ? {\n description: update.description\n } : {}),\n ...(update.security != null ? {\n security: getWireSecurity(update.security)\n } : {})\n }\n }, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n });\n const metadata = {\n description: document.description,\n documentTypeName: document.documentTypeName,\n name: document.name,\n ontologyRid: document.ontologyRid,\n security: getLocalSecurity(document.security)\n };\n this.updateMetadata(docRef.id, metadata);\n return metadata;\n };\n onMetadataSubscriptionOpened(internalDoc, docRef) {\n if (internalDoc.metadataStatus.load !== DocumentLoadStatus.UNLOADED) {\n throw new Error(`Cannot subscribe to document metadata when status is ${internalDoc.metadataStatus.load}`);\n }\n this.updateMetadataStatus(internalDoc, docRef, {\n load: DocumentLoadStatus.LOADING\n });\n Documents.get(this.app.config.osdkClient, docRef.id, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n }).then(document => {\n const metadata = {\n description: document.description,\n documentTypeName: document.documentTypeName,\n name: document.name,\n ontologyRid: document.ontologyRid,\n security: getLocalSecurity(document.security)\n };\n internalDoc.metadata = metadata;\n this.notifyMetadataSubscribers(internalDoc, docRef, metadata);\n this.updateMetadataStatus(internalDoc, docRef, {\n load: DocumentLoadStatus.LOADED\n });\n }).catch(e => {\n const error = new Error(\"Failed to load document metadata\", {\n cause: e\n });\n this.updateMetadataStatus(internalDoc, docRef, {\n error,\n load: DocumentLoadStatus.ERROR\n });\n });\n }\n onDataSubscriptionOpened(internalDoc, docRef) {\n if (internalDoc.syncSession != null) {\n throw new Error(\"Document data subscription already opened\");\n }\n internalDoc.syncSession = this.eventService.startDocumentSync(docRef.id, internalDoc.yDoc, status => {\n this.updateDataStatus(internalDoc, docRef, status);\n });\n }\n onMetadataSubscriptionClosed(_internalDoc, _docRef) {}\n onDataSubscriptionClosed(internalDoc, _docRef) {\n if (internalDoc.syncSession) {\n this.eventService.stopDocumentSync(internalDoc.syncSession);\n internalDoc.syncSession = undefined;\n }\n }\n onActivity(docRef, callback) {\n let unsubscribed = false;\n const unsubscribeFn = () => {\n unsubscribed = true;\n };\n this.eventService.subscribeToActivityUpdates(docRef.id, foundryEvent => {\n if (!unsubscribed) {\n const localEvent = getActivityEvent(docRef.schema, foundryEvent);\n if (localEvent != null) {\n this.updateMetadataFromActivityEvent(docRef, localEvent);\n callback(docRef, localEvent);\n }\n }\n }).catch(e => {\n this.logger.error(\"Failed to subscribe to activity updates\", e, {\n docId: docRef.id\n });\n });\n return unsubscribeFn;\n }\n static METADATA_ACTIVITY_EVENT_TYPES = new Set([ActivityEventDataType.DOCUMENT_RENAME, ActivityEventDataType.DOCUMENT_DESCRIPTION_UPDATE, ActivityEventDataType.DOCUMENT_SECURITY_UPDATE]);\n updateMetadataFromActivityEvent(docRef, event) {\n if (FoundryDocumentService.METADATA_ACTIVITY_EVENT_TYPES.has(event.eventData.type)) {\n this.refetchMetadata(docRef);\n }\n }\n refetchMetadata(docRef) {\n Documents.get(this.app.config.osdkClient, docRef.id, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n }).then(document => {\n const metadata = {\n description: document.description,\n documentTypeName: document.documentTypeName,\n name: document.name,\n ontologyRid: document.ontologyRid,\n security: getLocalSecurity(document.security)\n };\n this.updateMetadata(docRef.id, metadata);\n }).catch(e => {\n this.logger.error(\"Failed to refetch document metadata\", e, {\n docId: docRef.id\n });\n });\n }\n onPresence(docRef, callback, options) {\n let unsubscribed = false;\n const unsubscribeFn = () => {\n unsubscribed = true;\n };\n this.eventService.subscribeToPresenceUpdates(docRef.id, foundryUpdate => {\n if (!unsubscribed) {\n const localEvent = getPresenceEvent(docRef.schema, foundryUpdate);\n callback(docRef, localEvent);\n }\n }, options).catch(e => {\n this.logger.error(\"Failed to subscribe to presence updates\", e, {\n docId: docRef.id\n });\n });\n return unsubscribeFn;\n }\n updateCustomPresence(docRef, model, eventData, options) {\n const eventType = getMetadata(model).name;\n void this.eventService.publishCustomPresence(docRef.id, eventType, eventData, options).catch(e => {\n this.logger.error(\"Failed to publish custom presence\", e, {\n docId: docRef.id\n });\n });\n }\n}\nfunction getWireSecurity({\n discretionary,\n mandatory\n} = EMPTY_DOCUMENT_SECURITY) {\n const {\n editors = [],\n owners = [],\n viewers = []\n } = discretionary;\n return {\n discretionary: {\n editors: editors.map(getWirePrincipal),\n owners: owners.map(getWirePrincipal),\n viewers: viewers.map(getWirePrincipal)\n },\n mandatory: {\n classification: mandatory.classification != null ? [...mandatory.classification] : [],\n markings: mandatory.markings != null ? [...mandatory.markings] : []\n }\n };\n}\nfunction getWirePrincipal(principal) {\n switch (principal.type) {\n case \"all\":\n return {\n type: \"all\"\n };\n case \"groupId\":\n return {\n type: \"groupId\",\n groupId: principal.groupId\n };\n case \"userId\":\n return {\n type: \"userId\",\n userId: principal.userId\n };\n default:\n assertNever(principal);\n }\n}\nfunction getLocalSecurity(wireSecurity) {\n return {\n discretionary: {\n editors: wireSecurity.discretionary.editors.map(getLocalPrincipal),\n owners: wireSecurity.discretionary.owners.map(getLocalPrincipal),\n viewers: wireSecurity.discretionary.viewers.map(getLocalPrincipal)\n },\n mandatory: {\n classification: [...wireSecurity.mandatory.classification],\n markings: [...wireSecurity.mandatory.markings]\n }\n };\n}\nfunction getLocalPrincipal(wirePrincipal) {\n switch (wirePrincipal.type) {\n case \"all\":\n return {\n type: \"all\"\n };\n case \"groupId\":\n return {\n type: \"groupId\",\n groupId: wirePrincipal.groupId\n };\n case \"userId\":\n return {\n type: \"userId\",\n userId: wirePrincipal.userId\n };\n default:\n assertNever(wirePrincipal);\n }\n}"]}
|
package/build/esm/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Documents } from '@osdk/foundry.pack';
|
|
2
2
|
import { getOntologyRid, assertNever } from '@palantir/pack.core';
|
|
3
3
|
import { PresenceEventDataType, ActivityEventDataType, getMetadata } from '@palantir/pack.document-schema.model-types';
|
|
4
|
-
import {
|
|
4
|
+
import { BaseYjsDocumentService, DocumentLoadStatus, createDocumentServiceConfig } from '@palantir/pack.state.core';
|
|
5
5
|
import { createFoundryEventService } from '@palantir/pack.state.foundry-event';
|
|
6
6
|
import { invalidUserRef } from '@palantir/pack.auth';
|
|
7
7
|
|
|
@@ -165,7 +165,7 @@ function createFoundryDocumentServiceConfig(config = {}) {
|
|
|
165
165
|
function internalCreateFoundryDocumentService(app, config, eventService) {
|
|
166
166
|
return new FoundryDocumentService(app, config, createFoundryEventService(app));
|
|
167
167
|
}
|
|
168
|
-
var FoundryDocumentService = class extends BaseYjsDocumentService {
|
|
168
|
+
var FoundryDocumentService = class _FoundryDocumentService extends BaseYjsDocumentService {
|
|
169
169
|
constructor(app, config, eventService) {
|
|
170
170
|
super(app, app.config.logger.child({}, {
|
|
171
171
|
level: "debug",
|
|
@@ -333,8 +333,9 @@ var FoundryDocumentService = class extends BaseYjsDocumentService {
|
|
|
333
333
|
});
|
|
334
334
|
return unsubscribeFn;
|
|
335
335
|
}
|
|
336
|
+
static METADATA_ACTIVITY_EVENT_TYPES = /* @__PURE__ */ new Set([ActivityEventDataType.DOCUMENT_RENAME, ActivityEventDataType.DOCUMENT_DESCRIPTION_UPDATE, ActivityEventDataType.DOCUMENT_SECURITY_UPDATE]);
|
|
336
337
|
updateMetadataFromActivityEvent(docRef, event) {
|
|
337
|
-
if (
|
|
338
|
+
if (_FoundryDocumentService.METADATA_ACTIVITY_EVENT_TYPES.has(event.eventData.type)) {
|
|
338
339
|
this.refetchMetadata(docRef);
|
|
339
340
|
}
|
|
340
341
|
}
|
package/build/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/eventMappers.ts","../../src/FoundryDocumentService.ts"],"names":["config","ActivityEventDataType"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { invalidUserRef } from \"@palantir/pack.auth\";\nimport { ActivityEventDataType, PresenceEventDataType } from \"@palantir/pack.document-schema.model-types\";\nexport function getActivityEvent(documentSchema, foundryEvent) {\n // TODO: need to handle deletes and ensure exhaustive handling\n if (foundryEvent.type !== \"activityCreated\") {\n return undefined;\n }\n const {\n activityEvent\n } = foundryEvent;\n const eventData = getActivityEventData(documentSchema, activityEvent);\n return {\n aggregationKey: activityEvent.aggregationKey,\n createdBy: activityEvent.createdBy,\n createdInstant: new Date(activityEvent.createdTime).getTime(),\n eventData,\n eventId: activityEvent.eventId,\n isRead: activityEvent.isRead\n };\n}\n\n/**\n * Platform event type names as sent by backpack.\n * Note: Only DOCUMENT_CREATE is currently emitted by the backend.\n * Remaining types are included for future use.\n */\nconst PlatformEventType = {\n DOCUMENT_CREATE: \"DocumentCreateEvent\",\n DOCUMENT_DESCRIPTION_UPDATE: \"DocumentDescriptionUpdateEvent\",\n DOCUMENT_RENAME: \"DocumentRenameEvent\",\n DOCUMENT_SECURITY_UPDATE: \"DocumentMandatorySecurityUpdateEvent\"\n};\nfunction getActivityEventData(docSchema, {\n eventData,\n eventType\n}) {\n const platformEventData = getPlatformActivityEventData(eventType, eventData.data);\n if (platformEventData != null) {\n return platformEventData;\n }\n\n // Handle custom application-defined activity events\n // TODO: validate model is valid for activity events\n const model = docSchema[eventType];\n if (model == null) {\n return {\n rawData: eventData.data,\n rawType: eventType,\n type: ActivityEventDataType.UNKNOWN\n };\n }\n\n // TODO: validate data against model schema\n\n return {\n eventData: eventData.data,\n model,\n type: ActivityEventDataType.CUSTOM_EVENT\n };\n}\nfunction getPlatformActivityEventData(eventType, data) {\n switch (eventType) {\n case PlatformEventType.DOCUMENT_CREATE:\n {\n const wireData = data;\n return {\n initialMandatorySecurity: {\n classification: wireData.initialMandatorySecurity?.classification,\n markings: wireData.initialMandatorySecurity?.markings\n },\n name: wireData.name ?? \"\",\n type: ActivityEventDataType.DOCUMENT_CREATE\n };\n }\n case PlatformEventType.DOCUMENT_RENAME:\n {\n const wireData = data;\n return {\n newName: wireData.newName ?? \"\",\n previousName: wireData.previousName ?? \"\",\n type: ActivityEventDataType.DOCUMENT_RENAME\n };\n }\n case PlatformEventType.DOCUMENT_DESCRIPTION_UPDATE:\n {\n const wireData = data;\n return {\n isInitial: wireData.isInitial ?? false,\n newDescription: wireData.newDescription ?? \"\",\n type: ActivityEventDataType.DOCUMENT_DESCRIPTION_UPDATE\n };\n }\n case PlatformEventType.DOCUMENT_SECURITY_UPDATE:\n {\n const wireData = data;\n return {\n newClassification: wireData.newClassification ?? [],\n newMarkings: wireData.newMarkings ?? [],\n type: ActivityEventDataType.DOCUMENT_SECURITY_UPDATE\n };\n }\n default:\n return undefined;\n }\n}\nconst ARRIVED_DATA = {\n type: PresenceEventDataType.ARRIVED\n};\nconst DEPARTED_DATA = {\n type: PresenceEventDataType.DEPARTED\n};\nexport function getPresenceEvent(documentSchema, foundryUpdate) {\n switch (foundryUpdate.type) {\n case \"presenceChangeEvent\":\n {\n const {\n userId,\n status\n } = foundryUpdate;\n const eventData = status === \"PRESENT\" ? ARRIVED_DATA : DEPARTED_DATA;\n return {\n eventData,\n userId: userId\n };\n }\n case \"customPresenceEvent\":\n {\n const {\n userId,\n eventData,\n eventType\n } = foundryUpdate;\n const presenceEventData = getPresenceEventData(documentSchema, eventType, eventData);\n return {\n eventData: presenceEventData,\n userId: userId\n };\n }\n default:\n {\n foundryUpdate;\n const unknownUpdate = foundryUpdate;\n return {\n eventData: {\n rawData: foundryUpdate,\n rawType: typeof unknownUpdate.type === \"string\" ? unknownUpdate.type : \"unknown\",\n type: PresenceEventDataType.UNKNOWN\n },\n // FIXME: try and pull userId from message? Or just fix the platform types to have useful wrappers.\n userId: invalidUserRef().userId\n };\n }\n }\n}\nfunction getPresenceEventData(docSchema, eventType, eventData) {\n const model = docSchema[eventType];\n if (model == null) {\n return {\n rawData: eventData,\n rawType: eventType,\n type: PresenceEventDataType.UNKNOWN\n };\n }\n return {\n eventData,\n model,\n type: PresenceEventDataType.CUSTOM_EVENT\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Documents } from \"@osdk/foundry.pack\";\nimport { assertNever, getOntologyRid } from \"@palantir/pack.core\";\nimport { ActivityEventDataType, getMetadata } from \"@palantir/pack.document-schema.model-types\";\nimport { BaseYjsDocumentService, createDocumentServiceConfig, DocumentLoadStatus } from \"@palantir/pack.state.core\";\nimport { createFoundryEventService } from \"@palantir/pack.state.foundry-event\";\nimport { getActivityEvent, getPresenceEvent } from \"./eventMappers.js\";\nconst DEFAULT_USE_PREVIEW_API = true;\nconst EMPTY_DOCUMENT_SECURITY = Object.freeze({\n discretionary: {},\n mandatory: {}\n});\nexport function createFoundryDocumentServiceConfig(config = {}) {\n return createDocumentServiceConfig((app, config) => internalCreateFoundryDocumentService(app, config), config);\n}\nexport function internalCreateFoundryDocumentService(app, config, eventService) {\n return new FoundryDocumentService(app, config, eventService ?? createFoundryEventService(app));\n}\nexport class FoundryDocumentService extends BaseYjsDocumentService {\n constructor(app, config, eventService) {\n super(app, app.config.logger.child({}, {\n level: \"debug\",\n msgPrefix: \"FoundryDocumentService\"\n }));\n this.config = config;\n this.eventService = eventService;\n }\n createInternalDoc(ref, metadata) {\n return {\n ...this.createBaseInternalDoc(ref, metadata),\n syncSession: undefined\n };\n }\n get hasMetadataSubscriptions() {\n return Array.from(this.documents.values()).some(doc => this.hasSubscriptions(doc) && doc.metadataSubscribers.size > 0);\n }\n get hasStateSubscriptions() {\n return Array.from(this.documents.values()).some(doc => this.hasSubscriptions(doc) && doc.docStateSubscribers.size > 0);\n }\n createDocument = async (metadata, schema) => {\n const {\n documentTypeName,\n name,\n parentFolderRid,\n security\n } = metadata;\n const ontologyRid = await getOntologyRid(this.app);\n const request = {\n documentTypeName: documentTypeName,\n name: name,\n ontologyRid: ontologyRid,\n security: getWireSecurity(security)\n };\n if (parentFolderRid != null) {\n request.parentFolderRid = parentFolderRid;\n }\n const createResponse = await Documents.create(this.app.config.osdkClient, request, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n });\n const documentId = createResponse.id;\n const docRef = this.createDocRef(documentId, schema);\n return docRef;\n };\n searchDocuments = async (documentTypeName, schema, options) => {\n const request = {\n documentTypeName,\n requestBody: {\n query: options?.documentName != null ? {\n documentName: options.documentName\n } : undefined,\n pageSize: options?.pageSize,\n pageToken: options?.pageToken\n }\n };\n const searchResponse = await Documents.search(this.app.config.osdkClient, request, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n });\n return {\n data: searchResponse.data.map(doc => ({\n createdBy: doc.createdBy,\n createdTime: doc.createdTime,\n documentTypeName: doc.documentTypeName,\n id: doc.id,\n name: doc.name,\n ontologyRid: doc.ontologyRid,\n security: getLocalSecurity(doc.security),\n updatedBy: doc.updatedBy,\n updatedTime: doc.updatedTime\n })),\n nextPageToken: searchResponse.nextPageToken\n };\n };\n updateDocument = async (docRef, update) => {\n const document = await Documents.update(this.app.config.osdkClient, docRef.id, {\n requestBody: {\n ...(update.name != null ? {\n name: update.name\n } : {}),\n ...(update.description != null ? {\n description: update.description\n } : {}),\n ...(update.security != null ? {\n security: getWireSecurity(update.security)\n } : {})\n }\n }, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n });\n const metadata = {\n description: document.description,\n documentTypeName: document.documentTypeName,\n name: document.name,\n ontologyRid: document.ontologyRid,\n security: getLocalSecurity(document.security)\n };\n this.updateMetadata(docRef.id, metadata);\n return metadata;\n };\n onMetadataSubscriptionOpened(internalDoc, docRef) {\n if (internalDoc.metadataStatus.load !== DocumentLoadStatus.UNLOADED) {\n throw new Error(`Cannot subscribe to document metadata when status is ${internalDoc.metadataStatus.load}`);\n }\n this.updateMetadataStatus(internalDoc, docRef, {\n load: DocumentLoadStatus.LOADING\n });\n Documents.get(this.app.config.osdkClient, docRef.id, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n }).then(document => {\n const metadata = {\n description: document.description,\n documentTypeName: document.documentTypeName,\n name: document.name,\n ontologyRid: document.ontologyRid,\n security: getLocalSecurity(document.security)\n };\n internalDoc.metadata = metadata;\n this.notifyMetadataSubscribers(internalDoc, docRef, metadata);\n this.updateMetadataStatus(internalDoc, docRef, {\n load: DocumentLoadStatus.LOADED\n });\n }).catch(e => {\n const error = new Error(\"Failed to load document metadata\", {\n cause: e\n });\n this.updateMetadataStatus(internalDoc, docRef, {\n error,\n load: DocumentLoadStatus.ERROR\n });\n });\n }\n onDataSubscriptionOpened(internalDoc, docRef) {\n if (internalDoc.syncSession != null) {\n throw new Error(\"Document data subscription already opened\");\n }\n internalDoc.syncSession = this.eventService.startDocumentSync(docRef.id, internalDoc.yDoc, status => {\n this.updateDataStatus(internalDoc, docRef, status);\n });\n }\n onMetadataSubscriptionClosed(_internalDoc, _docRef) {}\n onDataSubscriptionClosed(internalDoc, _docRef) {\n if (internalDoc.syncSession) {\n this.eventService.stopDocumentSync(internalDoc.syncSession);\n internalDoc.syncSession = undefined;\n }\n }\n onActivity(docRef, callback) {\n let unsubscribed = false;\n const unsubscribeFn = () => {\n unsubscribed = true;\n };\n this.eventService.subscribeToActivityUpdates(docRef.id, foundryEvent => {\n if (!unsubscribed) {\n const localEvent = getActivityEvent(docRef.schema, foundryEvent);\n if (localEvent != null) {\n this.updateMetadataFromActivityEvent(docRef, localEvent);\n callback(docRef, localEvent);\n }\n }\n }).catch(e => {\n this.logger.error(\"Failed to subscribe to activity updates\", e, {\n docId: docRef.id\n });\n });\n return unsubscribeFn;\n }\n updateMetadataFromActivityEvent(docRef, event) {\n if (event.eventData.type === ActivityEventDataType.DOCUMENT_RENAME || event.eventData.type === ActivityEventDataType.DOCUMENT_DESCRIPTION_UPDATE) {\n this.refetchMetadata(docRef);\n }\n }\n refetchMetadata(docRef) {\n Documents.get(this.app.config.osdkClient, docRef.id, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n }).then(document => {\n const metadata = {\n description: document.description,\n documentTypeName: document.documentTypeName,\n name: document.name,\n ontologyRid: document.ontologyRid,\n security: getLocalSecurity(document.security)\n };\n this.updateMetadata(docRef.id, metadata);\n }).catch(e => {\n this.logger.error(\"Failed to refetch document metadata\", e, {\n docId: docRef.id\n });\n });\n }\n onPresence(docRef, callback, options) {\n let unsubscribed = false;\n const unsubscribeFn = () => {\n unsubscribed = true;\n };\n this.eventService.subscribeToPresenceUpdates(docRef.id, foundryUpdate => {\n if (!unsubscribed) {\n const localEvent = getPresenceEvent(docRef.schema, foundryUpdate);\n callback(docRef, localEvent);\n }\n }, options).catch(e => {\n this.logger.error(\"Failed to subscribe to presence updates\", e, {\n docId: docRef.id\n });\n });\n return unsubscribeFn;\n }\n updateCustomPresence(docRef, model, eventData, options) {\n const eventType = getMetadata(model).name;\n void this.eventService.publishCustomPresence(docRef.id, eventType, eventData, options).catch(e => {\n this.logger.error(\"Failed to publish custom presence\", e, {\n docId: docRef.id\n });\n });\n }\n}\nfunction getWireSecurity({\n discretionary,\n mandatory\n} = EMPTY_DOCUMENT_SECURITY) {\n const {\n editors = [],\n owners = [],\n viewers = []\n } = discretionary;\n return {\n discretionary: {\n editors: editors.map(getWirePrincipal),\n owners: owners.map(getWirePrincipal),\n viewers: viewers.map(getWirePrincipal)\n },\n mandatory: {\n classification: mandatory.classification != null ? [...mandatory.classification] : [],\n markings: mandatory.markings != null ? [...mandatory.markings] : []\n }\n };\n}\nfunction getWirePrincipal(principal) {\n switch (principal.type) {\n case \"all\":\n return {\n type: \"all\"\n };\n case \"groupId\":\n return {\n type: \"groupId\",\n groupId: principal.groupId\n };\n case \"userId\":\n return {\n type: \"userId\",\n userId: principal.userId\n };\n default:\n assertNever(principal);\n }\n}\nfunction getLocalSecurity(wireSecurity) {\n return {\n discretionary: {\n editors: wireSecurity.discretionary.editors.map(getLocalPrincipal),\n owners: wireSecurity.discretionary.owners.map(getLocalPrincipal),\n viewers: wireSecurity.discretionary.viewers.map(getLocalPrincipal)\n },\n mandatory: {\n classification: [...wireSecurity.mandatory.classification],\n markings: [...wireSecurity.mandatory.markings]\n }\n };\n}\nfunction getLocalPrincipal(wirePrincipal) {\n switch (wirePrincipal.type) {\n case \"all\":\n return {\n type: \"all\"\n };\n case \"groupId\":\n return {\n type: \"groupId\",\n groupId: wirePrincipal.groupId\n };\n case \"userId\":\n return {\n type: \"userId\",\n userId: wirePrincipal.userId\n };\n default:\n assertNever(wirePrincipal);\n }\n}"]}
|
|
1
|
+
{"version":3,"sources":["../../src/eventMappers.ts","../../src/FoundryDocumentService.ts"],"names":["config","ActivityEventDataType"],"mappings":";;;;;;;;AAkBO,SAAS,gBAAA,CAAiB,gBAAgB,YAAA,EAAc;AAE7D,EAAA,IAAI,YAAA,CAAa,SAAS,iBAAA,EAAmB;AAC3C,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,MAAM;AAAA,IACJ;AAAA,GACF,GAAI,YAAA;AACJ,EAAA,MAAM,SAAA,GAAY,oBAAA,CAAqB,cAAA,EAAgB,aAAa,CAAA;AACpE,EAAA,OAAO;AAAA,IACL,gBAAgB,aAAA,CAAc,cAAA;AAAA,IAC9B,WAAW,aAAA,CAAc,SAAA;AAAA,IACzB,gBAAgB,IAAI,IAAA,CAAK,aAAA,CAAc,WAAW,EAAE,OAAA,EAAQ;AAAA,IAC5D,SAAA;AAAA,IACA,SAAS,aAAA,CAAc,OAAA;AAAA,IACvB,QAAQ,aAAA,CAAc;AAAA,GACxB;AACF;AAOA,IAAM,iBAAA,GAAoB;AAAA,EACxB,eAAA,EAAiB,qBAAA;AAAA,EACjB,2BAAA,EAA6B,gCAAA;AAAA,EAC7B,eAAA,EAAiB,qBAAA;AAAA,EACjB,wBAAA,EAA0B;AAC5B,CAAA;AACA,SAAS,qBAAqB,SAAA,EAAW;AAAA,EACvC,SAAA;AAAA,EACA;AACF,CAAA,EAAG;AACD,EAAA,MAAM,iBAAA,GAAoB,4BAAA,CAA6B,SAAA,EAAW,SAAA,CAAU,IAAI,CAAA;AAChF,EAAA,IAAI,qBAAqB,IAAA,EAAM;AAC7B,IAAA,OAAO,iBAAA;AAAA,EACT;AAIA,EAAA,MAAM,KAAA,GAAQ,UAAU,SAAS,CAAA;AACjC,EAAA,IAAI,SAAS,IAAA,EAAM;AACjB,IAAA,OAAO;AAAA,MACL,SAAS,SAAA,CAAU,IAAA;AAAA,MACnB,OAAA,EAAS,SAAA;AAAA,MACT,MAAM,qBAAA,CAAsB;AAAA,KAC9B;AAAA,EACF;AAIA,EAAA,OAAO;AAAA,IACL,WAAW,SAAA,CAAU,IAAA;AAAA,IACrB,KAAA;AAAA,IACA,MAAM,qBAAA,CAAsB;AAAA,GAC9B;AACF;AACA,SAAS,4BAAA,CAA6B,WAAW,IAAA,EAAM;AACrD,EAAA,QAAQ,SAAA;AAAW,IACjB,KAAK,kBAAkB,eAAA,EACrB;AACE,MAAA,MAAM,QAAA,GAAW,IAAA;AACjB,MAAA,OAAO;AAAA,QACL,wBAAA,EAA0B;AAAA,UACxB,cAAA,EAAgB,SAAS,wBAAA,EAA0B,cAAA;AAAA,UACnD,QAAA,EAAU,SAAS,wBAAA,EAA0B;AAAA,SAC/C;AAAA,QACA,IAAA,EAAM,SAAS,IAAA,IAAQ,EAAA;AAAA,QACvB,MAAM,qBAAA,CAAsB;AAAA,OAC9B;AAAA,IACF;AAAA,IACF,KAAK,kBAAkB,eAAA,EACrB;AACE,MAAA,MAAM,QAAA,GAAW,IAAA;AACjB,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,SAAS,OAAA,IAAW,EAAA;AAAA,QAC7B,YAAA,EAAc,SAAS,YAAA,IAAgB,EAAA;AAAA,QACvC,MAAM,qBAAA,CAAsB;AAAA,OAC9B;AAAA,IACF;AAAA,IACF,KAAK,kBAAkB,2BAAA,EACrB;AACE,MAAA,MAAM,QAAA,GAAW,IAAA;AACjB,MAAA,OAAO;AAAA,QACL,SAAA,EAAW,SAAS,SAAA,IAAa,KAAA;AAAA,QACjC,cAAA,EAAgB,SAAS,cAAA,IAAkB,EAAA;AAAA,QAC3C,MAAM,qBAAA,CAAsB;AAAA,OAC9B;AAAA,IACF;AAAA,IACF,KAAK,kBAAkB,wBAAA,EACrB;AACE,MAAA,MAAM,QAAA,GAAW,IAAA;AACjB,MAAA,OAAO;AAAA,QACL,iBAAA,EAAmB,QAAA,CAAS,iBAAA,IAAqB,EAAC;AAAA,QAClD,WAAA,EAAa,QAAA,CAAS,WAAA,IAAe,EAAC;AAAA,QACtC,MAAM,qBAAA,CAAsB;AAAA,OAC9B;AAAA,IACF;AAAA,IACF;AACE,MAAA,OAAO,MAAA;AAAA;AAEb;AACA,IAAM,YAAA,GAAe;AAAA,EACnB,MAAM,qBAAA,CAAsB;AAC9B,CAAA;AACA,IAAM,aAAA,GAAgB;AAAA,EACpB,MAAM,qBAAA,CAAsB;AAC9B,CAAA;AACO,SAAS,gBAAA,CAAiB,gBAAgB,aAAA,EAAe;AAC9D,EAAA,QAAQ,cAAc,IAAA;AAAM,IAC1B,KAAK,qBAAA,EACH;AACE,MAAA,MAAM;AAAA,QACJ,MAAA;AAAA,QACA;AAAA,OACF,GAAI,aAAA;AACJ,MAAA,MAAM,SAAA,GAAY,MAAA,KAAW,SAAA,GAAY,YAAA,GAAe,aAAA;AACxD,MAAA,OAAO;AAAA,QACL,SAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF;AAAA,IACF,KAAK,qBAAA,EACH;AACE,MAAA,MAAM;AAAA,QACJ,MAAA;AAAA,QACA,SAAA;AAAA,QACA;AAAA,OACF,GAAI,aAAA;AACJ,MAAA,MAAM,iBAAA,GAAoB,oBAAA,CAAqB,cAAA,EAAgB,SAAA,EAAW,SAAS,CAAA;AACnF,MAAA,OAAO;AAAA,QACL,SAAA,EAAW,iBAAA;AAAA,QACX;AAAA,OACF;AAAA,IACF;AAAA,IACF,SACE;AAEE,MAAA,MAAM,aAAA,GAAgB,aAAA;AACtB,MAAA,OAAO;AAAA,QACL,SAAA,EAAW;AAAA,UACT,OAAA,EAAS,aAAA;AAAA,UACT,SAAS,OAAO,aAAA,CAAc,IAAA,KAAS,QAAA,GAAW,cAAc,IAAA,GAAO,SAAA;AAAA,UACvE,MAAM,qBAAA,CAAsB;AAAA,SAC9B;AAAA;AAAA,QAEA,MAAA,EAAQ,gBAAe,CAAE;AAAA,OAC3B;AAAA,IACF;AAAA;AAEN;AACA,SAAS,oBAAA,CAAqB,SAAA,EAAW,SAAA,EAAW,SAAA,EAAW;AAC7D,EAAA,MAAM,KAAA,GAAQ,UAAU,SAAS,CAAA;AACjC,EAAA,IAAI,SAAS,IAAA,EAAM;AACjB,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,SAAA;AAAA,MACT,OAAA,EAAS,SAAA;AAAA,MACT,MAAM,qBAAA,CAAsB;AAAA,KAC9B;AAAA,EACF;AACA,EAAA,OAAO;AAAA,IACL,SAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAM,qBAAA,CAAsB;AAAA,GAC9B;AACF;;;AClKA,IAAM,uBAAA,GAA0B,IAAA;AAChC,IAAM,uBAAA,GAA0B,OAAO,MAAA,CAAO;AAAA,EAC5C,eAAe,EAAC;AAAA,EAChB,WAAW;AACb,CAAC,CAAA;AACM,SAAS,kCAAA,CAAmC,MAAA,GAAS,EAAC,EAAG;AAC9D,EAAA,OAAO,2BAAA,CAA4B,CAAC,GAAA,EAAKA,OAAAA,KAAW,qCAAqC,GAAA,EAAKA,OAAM,GAAG,MAAM,CAAA;AAC/G;AACO,SAAS,oCAAA,CAAqC,GAAA,EAAK,MAAA,EAAQ,YAAA,EAAc;AAC9E,EAAA,OAAO,IAAI,sBAAA,CAAuB,GAAA,EAAK,QAAwB,yBAAA,CAA0B,GAAG,CAAC,CAAA;AAC/F;AACO,IAAM,sBAAA,GAAN,MAAM,uBAAA,SAA+B,sBAAA,CAAuB;AAAA,EACjE,WAAA,CAAY,GAAA,EAAK,MAAA,EAAQ,YAAA,EAAc;AACrC,IAAA,KAAA,CAAM,KAAK,GAAA,CAAI,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,EAAC,EAAG;AAAA,MACrC,KAAA,EAAO,OAAA;AAAA,MACP,SAAA,EAAW;AAAA,KACZ,CAAC,CAAA;AACF,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,IAAA,IAAA,CAAK,YAAA,GAAe,YAAA;AAAA,EACtB;AAAA,EACA,iBAAA,CAAkB,KAAK,QAAA,EAAU;AAC/B,IAAA,OAAO;AAAA,MACL,GAAG,IAAA,CAAK,qBAAA,CAAsB,GAAA,EAAK,QAAQ,CAAA;AAAA,MAC3C,WAAA,EAAa;AAAA,KACf;AAAA,EACF;AAAA,EACA,IAAI,wBAAA,GAA2B;AAC7B,IAAA,OAAO,MAAM,IAAA,CAAK,IAAA,CAAK,SAAA,CAAU,MAAA,EAAQ,CAAA,CAAE,IAAA,CAAK,CAAA,GAAA,KAAO,IAAA,CAAK,iBAAiB,GAAG,CAAA,IAAK,GAAA,CAAI,mBAAA,CAAoB,OAAO,CAAC,CAAA;AAAA,EACvH;AAAA,EACA,IAAI,qBAAA,GAAwB;AAC1B,IAAA,OAAO,MAAM,IAAA,CAAK,IAAA,CAAK,SAAA,CAAU,MAAA,EAAQ,CAAA,CAAE,IAAA,CAAK,CAAA,GAAA,KAAO,IAAA,CAAK,iBAAiB,GAAG,CAAA,IAAK,GAAA,CAAI,mBAAA,CAAoB,OAAO,CAAC,CAAA;AAAA,EACvH;AAAA,EACA,cAAA,GAAiB,OAAO,QAAA,EAAU,MAAA,KAAW;AAC3C,IAAA,MAAM;AAAA,MACJ,gBAAA;AAAA,MACA,IAAA;AAAA,MACA,eAAA;AAAA,MACA;AAAA,KACF,GAAI,QAAA;AACJ,IAAA,MAAM,WAAA,GAAc,MAAM,cAAA,CAAe,IAAA,CAAK,GAAG,CAAA;AACjD,IAAA,MAAM,OAAA,GAAU;AAAA,MACd,gBAAA;AAAA,MACA,IAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAA,EAAU,gBAAgB,QAAQ;AAAA,KACpC;AACA,IAAA,IAAI,mBAAmB,IAAA,EAAM;AAC3B,MAAA,OAAA,CAAQ,eAAA,GAAkB,eAAA;AAAA,IAC5B;AACA,IAAA,MAAM,cAAA,GAAiB,MAAM,SAAA,CAAU,MAAA,CAAO,KAAK,GAAA,CAAI,MAAA,CAAO,YAAY,OAAA,EAAS;AAAA,MACjF,OAAA,EAAS,IAAA,CAAK,MAAA,CAAO,aAAA,IAAiB;AAAA,KACvC,CAAA;AACD,IAAA,MAAM,aAAa,cAAA,CAAe,EAAA;AAClC,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,YAAA,CAAa,UAAA,EAAY,MAAM,CAAA;AACnD,IAAA,OAAO,MAAA;AAAA,EACT,CAAA;AAAA,EACA,eAAA,GAAkB,OAAO,gBAAA,EAAkB,MAAA,EAAQ,OAAA,KAAY;AAC7D,IAAA,MAAM,OAAA,GAAU;AAAA,MACd,gBAAA;AAAA,MACA,WAAA,EAAa;AAAA,QACX,KAAA,EAAO,OAAA,EAAS,YAAA,IAAgB,IAAA,GAAO;AAAA,UACrC,cAAc,OAAA,CAAQ;AAAA,SACxB,GAAI,MAAA;AAAA,QACJ,UAAU,OAAA,EAAS,QAAA;AAAA,QACnB,WAAW,OAAA,EAAS;AAAA;AACtB,KACF;AACA,IAAA,MAAM,cAAA,GAAiB,MAAM,SAAA,CAAU,MAAA,CAAO,KAAK,GAAA,CAAI,MAAA,CAAO,YAAY,OAAA,EAAS;AAAA,MACjF,OAAA,EAAS,IAAA,CAAK,MAAA,CAAO,aAAA,IAAiB;AAAA,KACvC,CAAA;AACD,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,cAAA,CAAe,IAAA,CAAK,GAAA,CAAI,CAAA,GAAA,MAAQ;AAAA,QACpC,WAAW,GAAA,CAAI,SAAA;AAAA,QACf,aAAa,GAAA,CAAI,WAAA;AAAA,QACjB,kBAAkB,GAAA,CAAI,gBAAA;AAAA,QACtB,IAAI,GAAA,CAAI,EAAA;AAAA,QACR,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,aAAa,GAAA,CAAI,WAAA;AAAA,QACjB,QAAA,EAAU,gBAAA,CAAiB,GAAA,CAAI,QAAQ,CAAA;AAAA,QACvC,WAAW,GAAA,CAAI,SAAA;AAAA,QACf,aAAa,GAAA,CAAI;AAAA,OACnB,CAAE,CAAA;AAAA,MACF,eAAe,cAAA,CAAe;AAAA,KAChC;AAAA,EACF,CAAA;AAAA,EACA,cAAA,GAAiB,OAAO,MAAA,EAAQ,MAAA,KAAW;AACzC,IAAA,MAAM,QAAA,GAAW,MAAM,SAAA,CAAU,MAAA,CAAO,KAAK,GAAA,CAAI,MAAA,CAAO,UAAA,EAAY,MAAA,CAAO,EAAA,EAAI;AAAA,MAC7E,WAAA,EAAa;AAAA,QACX,GAAI,MAAA,CAAO,IAAA,IAAQ,IAAA,GAAO;AAAA,UACxB,MAAM,MAAA,CAAO;AAAA,YACX,EAAC;AAAA,QACL,GAAI,MAAA,CAAO,WAAA,IAAe,IAAA,GAAO;AAAA,UAC/B,aAAa,MAAA,CAAO;AAAA,YAClB,EAAC;AAAA,QACL,GAAI,MAAA,CAAO,QAAA,IAAY,IAAA,GAAO;AAAA,UAC5B,QAAA,EAAU,eAAA,CAAgB,MAAA,CAAO,QAAQ;AAAA,YACvC;AAAC;AACP,KACF,EAAG;AAAA,MACD,OAAA,EAAS,IAAA,CAAK,MAAA,CAAO,aAAA,IAAiB;AAAA,KACvC,CAAA;AACD,IAAA,MAAM,QAAA,GAAW;AAAA,MACf,aAAa,QAAA,CAAS,WAAA;AAAA,MACtB,kBAAkB,QAAA,CAAS,gBAAA;AAAA,MAC3B,MAAM,QAAA,CAAS,IAAA;AAAA,MACf,aAAa,QAAA,CAAS,WAAA;AAAA,MACtB,QAAA,EAAU,gBAAA,CAAiB,QAAA,CAAS,QAAQ;AAAA,KAC9C;AACA,IAAA,IAAA,CAAK,cAAA,CAAe,MAAA,CAAO,EAAA,EAAI,QAAQ,CAAA;AACvC,IAAA,OAAO,QAAA;AAAA,EACT,CAAA;AAAA,EACA,4BAAA,CAA6B,aAAa,MAAA,EAAQ;AAChD,IAAA,IAAI,WAAA,CAAY,cAAA,CAAe,IAAA,KAAS,kBAAA,CAAmB,QAAA,EAAU;AACnE,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,qDAAA,EAAwD,WAAA,CAAY,cAAA,CAAe,IAAI,CAAA,CAAE,CAAA;AAAA,IAC3G;AACA,IAAA,IAAA,CAAK,oBAAA,CAAqB,aAAa,MAAA,EAAQ;AAAA,MAC7C,MAAM,kBAAA,CAAmB;AAAA,KAC1B,CAAA;AACD,IAAA,SAAA,CAAU,IAAI,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,UAAA,EAAY,OAAO,EAAA,EAAI;AAAA,MACnD,OAAA,EAAS,IAAA,CAAK,MAAA,CAAO,aAAA,IAAiB;AAAA,KACvC,CAAA,CAAE,IAAA,CAAK,CAAA,QAAA,KAAY;AAClB,MAAA,MAAM,QAAA,GAAW;AAAA,QACf,aAAa,QAAA,CAAS,WAAA;AAAA,QACtB,kBAAkB,QAAA,CAAS,gBAAA;AAAA,QAC3B,MAAM,QAAA,CAAS,IAAA;AAAA,QACf,aAAa,QAAA,CAAS,WAAA;AAAA,QACtB,QAAA,EAAU,gBAAA,CAAiB,QAAA,CAAS,QAAQ;AAAA,OAC9C;AACA,MAAA,WAAA,CAAY,QAAA,GAAW,QAAA;AACvB,MAAA,IAAA,CAAK,yBAAA,CAA0B,WAAA,EAAa,MAAA,EAAQ,QAAQ,CAAA;AAC5D,MAAA,IAAA,CAAK,oBAAA,CAAqB,aAAa,MAAA,EAAQ;AAAA,QAC7C,MAAM,kBAAA,CAAmB;AAAA,OAC1B,CAAA;AAAA,IACH,CAAC,CAAA,CAAE,KAAA,CAAM,CAAA,CAAA,KAAK;AACZ,MAAA,MAAM,KAAA,GAAQ,IAAI,KAAA,CAAM,kCAAA,EAAoC;AAAA,QAC1D,KAAA,EAAO;AAAA,OACR,CAAA;AACD,MAAA,IAAA,CAAK,oBAAA,CAAqB,aAAa,MAAA,EAAQ;AAAA,QAC7C,KAAA;AAAA,QACA,MAAM,kBAAA,CAAmB;AAAA,OAC1B,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACH;AAAA,EACA,wBAAA,CAAyB,aAAa,MAAA,EAAQ;AAC5C,IAAA,IAAI,WAAA,CAAY,eAAe,IAAA,EAAM;AACnC,MAAA,MAAM,IAAI,MAAM,2CAA2C,CAAA;AAAA,IAC7D;AACA,IAAA,WAAA,CAAY,WAAA,GAAc,KAAK,YAAA,CAAa,iBAAA,CAAkB,OAAO,EAAA,EAAI,WAAA,CAAY,MAAM,CAAA,MAAA,KAAU;AACnG,MAAA,IAAA,CAAK,gBAAA,CAAiB,WAAA,EAAa,MAAA,EAAQ,MAAM,CAAA;AAAA,IACnD,CAAC,CAAA;AAAA,EACH;AAAA,EACA,4BAAA,CAA6B,cAAc,OAAA,EAAS;AAAA,EAAC;AAAA,EACrD,wBAAA,CAAyB,aAAa,OAAA,EAAS;AAC7C,IAAA,IAAI,YAAY,WAAA,EAAa;AAC3B,MAAA,IAAA,CAAK,YAAA,CAAa,gBAAA,CAAiB,WAAA,CAAY,WAAW,CAAA;AAC1D,MAAA,WAAA,CAAY,WAAA,GAAc,MAAA;AAAA,IAC5B;AAAA,EACF;AAAA,EACA,UAAA,CAAW,QAAQ,QAAA,EAAU;AAC3B,IAAA,IAAI,YAAA,GAAe,KAAA;AACnB,IAAA,MAAM,gBAAgB,MAAM;AAC1B,MAAA,YAAA,GAAe,IAAA;AAAA,IACjB,CAAA;AACA,IAAA,IAAA,CAAK,YAAA,CAAa,0BAAA,CAA2B,MAAA,CAAO,EAAA,EAAI,CAAA,YAAA,KAAgB;AACtE,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,MAAM,UAAA,GAAa,gBAAA,CAAiB,MAAA,CAAO,MAAA,EAAQ,YAAY,CAAA;AAC/D,QAAA,IAAI,cAAc,IAAA,EAAM;AACtB,UAAA,IAAA,CAAK,+BAAA,CAAgC,QAAQ,UAAU,CAAA;AACvD,UAAA,QAAA,CAAS,QAAQ,UAAU,CAAA;AAAA,QAC7B;AAAA,MACF;AAAA,IACF,CAAC,CAAA,CAAE,KAAA,CAAM,CAAA,CAAA,KAAK;AACZ,MAAA,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,yCAAA,EAA2C,CAAA,EAAG;AAAA,QAC9D,OAAO,MAAA,CAAO;AAAA,OACf,CAAA;AAAA,IACH,CAAC,CAAA;AACD,IAAA,OAAO,aAAA;AAAA,EACT;AAAA,EACA,OAAO,6BAAA,mBAAgC,IAAI,GAAA,CAAI,CAACC,qBAAAA,CAAsB,eAAA,EAAiBA,qBAAAA,CAAsB,2BAAA,EAA6BA,qBAAAA,CAAsB,wBAAwB,CAAC,CAAA;AAAA,EACzL,+BAAA,CAAgC,QAAQ,KAAA,EAAO;AAC7C,IAAA,IAAI,wBAAuB,6BAAA,CAA8B,GAAA,CAAI,KAAA,CAAM,SAAA,CAAU,IAAI,CAAA,EAAG;AAClF,MAAA,IAAA,CAAK,gBAAgB,MAAM,CAAA;AAAA,IAC7B;AAAA,EACF;AAAA,EACA,gBAAgB,MAAA,EAAQ;AACtB,IAAA,SAAA,CAAU,IAAI,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,UAAA,EAAY,OAAO,EAAA,EAAI;AAAA,MACnD,OAAA,EAAS,IAAA,CAAK,MAAA,CAAO,aAAA,IAAiB;AAAA,KACvC,CAAA,CAAE,IAAA,CAAK,CAAA,QAAA,KAAY;AAClB,MAAA,MAAM,QAAA,GAAW;AAAA,QACf,aAAa,QAAA,CAAS,WAAA;AAAA,QACtB,kBAAkB,QAAA,CAAS,gBAAA;AAAA,QAC3B,MAAM,QAAA,CAAS,IAAA;AAAA,QACf,aAAa,QAAA,CAAS,WAAA;AAAA,QACtB,QAAA,EAAU,gBAAA,CAAiB,QAAA,CAAS,QAAQ;AAAA,OAC9C;AACA,MAAA,IAAA,CAAK,cAAA,CAAe,MAAA,CAAO,EAAA,EAAI,QAAQ,CAAA;AAAA,IACzC,CAAC,CAAA,CAAE,KAAA,CAAM,CAAA,CAAA,KAAK;AACZ,MAAA,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,qCAAA,EAAuC,CAAA,EAAG;AAAA,QAC1D,OAAO,MAAA,CAAO;AAAA,OACf,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACH;AAAA,EACA,UAAA,CAAW,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAS;AACpC,IAAA,IAAI,YAAA,GAAe,KAAA;AACnB,IAAA,MAAM,gBAAgB,MAAM;AAC1B,MAAA,YAAA,GAAe,IAAA;AAAA,IACjB,CAAA;AACA,IAAA,IAAA,CAAK,YAAA,CAAa,0BAAA,CAA2B,MAAA,CAAO,EAAA,EAAI,CAAA,aAAA,KAAiB;AACvE,MAAA,IAAI,CAAC,YAAA,EAAc;AACjB,QAAA,MAAM,UAAA,GAAa,gBAAA,CAAiB,MAAA,CAAO,MAAA,EAAQ,aAAa,CAAA;AAChE,QAAA,QAAA,CAAS,QAAQ,UAAU,CAAA;AAAA,MAC7B;AAAA,IACF,CAAA,EAAG,OAAO,CAAA,CAAE,KAAA,CAAM,CAAA,CAAA,KAAK;AACrB,MAAA,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,yCAAA,EAA2C,CAAA,EAAG;AAAA,QAC9D,OAAO,MAAA,CAAO;AAAA,OACf,CAAA;AAAA,IACH,CAAC,CAAA;AACD,IAAA,OAAO,aAAA;AAAA,EACT;AAAA,EACA,oBAAA,CAAqB,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,OAAA,EAAS;AACtD,IAAA,MAAM,SAAA,GAAY,WAAA,CAAY,KAAK,CAAA,CAAE,IAAA;AACrC,IAAA,KAAK,IAAA,CAAK,YAAA,CAAa,qBAAA,CAAsB,MAAA,CAAO,EAAA,EAAI,WAAW,SAAA,EAAW,OAAO,CAAA,CAAE,KAAA,CAAM,CAAA,CAAA,KAAK;AAChG,MAAA,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,mCAAA,EAAqC,CAAA,EAAG;AAAA,QACxD,OAAO,MAAA,CAAO;AAAA,OACf,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACH;AACF,CAAA;AACA,SAAS,eAAA,CAAgB;AAAA,EACvB,aAAA;AAAA,EACA;AACF,CAAA,GAAI,uBAAA,EAAyB;AAC3B,EAAA,MAAM;AAAA,IACJ,UAAU,EAAC;AAAA,IACX,SAAS,EAAC;AAAA,IACV,UAAU;AAAC,GACb,GAAI,aAAA;AACJ,EAAA,OAAO;AAAA,IACL,aAAA,EAAe;AAAA,MACb,OAAA,EAAS,OAAA,CAAQ,GAAA,CAAI,gBAAgB,CAAA;AAAA,MACrC,MAAA,EAAQ,MAAA,CAAO,GAAA,CAAI,gBAAgB,CAAA;AAAA,MACnC,OAAA,EAAS,OAAA,CAAQ,GAAA,CAAI,gBAAgB;AAAA,KACvC;AAAA,IACA,SAAA,EAAW;AAAA,MACT,cAAA,EAAgB,UAAU,cAAA,IAAkB,IAAA,GAAO,CAAC,GAAG,SAAA,CAAU,cAAc,CAAA,GAAI,EAAC;AAAA,MACpF,QAAA,EAAU,UAAU,QAAA,IAAY,IAAA,GAAO,CAAC,GAAG,SAAA,CAAU,QAAQ,CAAA,GAAI;AAAC;AACpE,GACF;AACF;AACA,SAAS,iBAAiB,SAAA,EAAW;AACnC,EAAA,QAAQ,UAAU,IAAA;AAAM,IACtB,KAAK,KAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM;AAAA,OACR;AAAA,IACF,KAAK,SAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,SAAA;AAAA,QACN,SAAS,SAAA,CAAU;AAAA,OACrB;AAAA,IACF,KAAK,QAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,QAAA;AAAA,QACN,QAAQ,SAAA,CAAU;AAAA,OACpB;AAAA,IACF;AACE,MAAA,WAAA,CAAY,SAAS,CAAA;AAAA;AAE3B;AACA,SAAS,iBAAiB,YAAA,EAAc;AACtC,EAAA,OAAO;AAAA,IACL,aAAA,EAAe;AAAA,MACb,OAAA,EAAS,YAAA,CAAa,aAAA,CAAc,OAAA,CAAQ,IAAI,iBAAiB,CAAA;AAAA,MACjE,MAAA,EAAQ,YAAA,CAAa,aAAA,CAAc,MAAA,CAAO,IAAI,iBAAiB,CAAA;AAAA,MAC/D,OAAA,EAAS,YAAA,CAAa,aAAA,CAAc,OAAA,CAAQ,IAAI,iBAAiB;AAAA,KACnE;AAAA,IACA,SAAA,EAAW;AAAA,MACT,cAAA,EAAgB,CAAC,GAAG,YAAA,CAAa,UAAU,cAAc,CAAA;AAAA,MACzD,QAAA,EAAU,CAAC,GAAG,YAAA,CAAa,UAAU,QAAQ;AAAA;AAC/C,GACF;AACF;AACA,SAAS,kBAAkB,aAAA,EAAe;AACxC,EAAA,QAAQ,cAAc,IAAA;AAAM,IAC1B,KAAK,KAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM;AAAA,OACR;AAAA,IACF,KAAK,SAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,SAAA;AAAA,QACN,SAAS,aAAA,CAAc;AAAA,OACzB;AAAA,IACF,KAAK,QAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,QAAA;AAAA,QACN,QAAQ,aAAA,CAAc;AAAA,OACxB;AAAA,IACF;AACE,MAAA,WAAA,CAAY,aAAa,CAAA;AAAA;AAE/B","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { invalidUserRef } from \"@palantir/pack.auth\";\nimport { ActivityEventDataType, PresenceEventDataType } from \"@palantir/pack.document-schema.model-types\";\nexport function getActivityEvent(documentSchema, foundryEvent) {\n // TODO: need to handle deletes and ensure exhaustive handling\n if (foundryEvent.type !== \"activityCreated\") {\n return undefined;\n }\n const {\n activityEvent\n } = foundryEvent;\n const eventData = getActivityEventData(documentSchema, activityEvent);\n return {\n aggregationKey: activityEvent.aggregationKey,\n createdBy: activityEvent.createdBy,\n createdInstant: new Date(activityEvent.createdTime).getTime(),\n eventData,\n eventId: activityEvent.eventId,\n isRead: activityEvent.isRead\n };\n}\n\n/**\n * Platform event type names as sent by backpack.\n * Note: Only DOCUMENT_CREATE is currently emitted by the backend.\n * Remaining types are included for future use.\n */\nconst PlatformEventType = {\n DOCUMENT_CREATE: \"DocumentCreateEvent\",\n DOCUMENT_DESCRIPTION_UPDATE: \"DocumentDescriptionUpdateEvent\",\n DOCUMENT_RENAME: \"DocumentRenameEvent\",\n DOCUMENT_SECURITY_UPDATE: \"DocumentMandatorySecurityUpdateEvent\"\n};\nfunction getActivityEventData(docSchema, {\n eventData,\n eventType\n}) {\n const platformEventData = getPlatformActivityEventData(eventType, eventData.data);\n if (platformEventData != null) {\n return platformEventData;\n }\n\n // Handle custom application-defined activity events\n // TODO: validate model is valid for activity events\n const model = docSchema[eventType];\n if (model == null) {\n return {\n rawData: eventData.data,\n rawType: eventType,\n type: ActivityEventDataType.UNKNOWN\n };\n }\n\n // TODO: validate data against model schema\n\n return {\n eventData: eventData.data,\n model,\n type: ActivityEventDataType.CUSTOM_EVENT\n };\n}\nfunction getPlatformActivityEventData(eventType, data) {\n switch (eventType) {\n case PlatformEventType.DOCUMENT_CREATE:\n {\n const wireData = data;\n return {\n initialMandatorySecurity: {\n classification: wireData.initialMandatorySecurity?.classification,\n markings: wireData.initialMandatorySecurity?.markings\n },\n name: wireData.name ?? \"\",\n type: ActivityEventDataType.DOCUMENT_CREATE\n };\n }\n case PlatformEventType.DOCUMENT_RENAME:\n {\n const wireData = data;\n return {\n newName: wireData.newName ?? \"\",\n previousName: wireData.previousName ?? \"\",\n type: ActivityEventDataType.DOCUMENT_RENAME\n };\n }\n case PlatformEventType.DOCUMENT_DESCRIPTION_UPDATE:\n {\n const wireData = data;\n return {\n isInitial: wireData.isInitial ?? false,\n newDescription: wireData.newDescription ?? \"\",\n type: ActivityEventDataType.DOCUMENT_DESCRIPTION_UPDATE\n };\n }\n case PlatformEventType.DOCUMENT_SECURITY_UPDATE:\n {\n const wireData = data;\n return {\n newClassification: wireData.newClassification ?? [],\n newMarkings: wireData.newMarkings ?? [],\n type: ActivityEventDataType.DOCUMENT_SECURITY_UPDATE\n };\n }\n default:\n return undefined;\n }\n}\nconst ARRIVED_DATA = {\n type: PresenceEventDataType.ARRIVED\n};\nconst DEPARTED_DATA = {\n type: PresenceEventDataType.DEPARTED\n};\nexport function getPresenceEvent(documentSchema, foundryUpdate) {\n switch (foundryUpdate.type) {\n case \"presenceChangeEvent\":\n {\n const {\n userId,\n status\n } = foundryUpdate;\n const eventData = status === \"PRESENT\" ? ARRIVED_DATA : DEPARTED_DATA;\n return {\n eventData,\n userId: userId\n };\n }\n case \"customPresenceEvent\":\n {\n const {\n userId,\n eventData,\n eventType\n } = foundryUpdate;\n const presenceEventData = getPresenceEventData(documentSchema, eventType, eventData);\n return {\n eventData: presenceEventData,\n userId: userId\n };\n }\n default:\n {\n foundryUpdate;\n const unknownUpdate = foundryUpdate;\n return {\n eventData: {\n rawData: foundryUpdate,\n rawType: typeof unknownUpdate.type === \"string\" ? unknownUpdate.type : \"unknown\",\n type: PresenceEventDataType.UNKNOWN\n },\n // FIXME: try and pull userId from message? Or just fix the platform types to have useful wrappers.\n userId: invalidUserRef().userId\n };\n }\n }\n}\nfunction getPresenceEventData(docSchema, eventType, eventData) {\n const model = docSchema[eventType];\n if (model == null) {\n return {\n rawData: eventData,\n rawType: eventType,\n type: PresenceEventDataType.UNKNOWN\n };\n }\n return {\n eventData,\n model,\n type: PresenceEventDataType.CUSTOM_EVENT\n };\n}","/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Documents } from \"@osdk/foundry.pack\";\nimport { assertNever, getOntologyRid } from \"@palantir/pack.core\";\nimport { ActivityEventDataType, getMetadata } from \"@palantir/pack.document-schema.model-types\";\nimport { BaseYjsDocumentService, createDocumentServiceConfig, DocumentLoadStatus } from \"@palantir/pack.state.core\";\nimport { createFoundryEventService } from \"@palantir/pack.state.foundry-event\";\nimport { getActivityEvent, getPresenceEvent } from \"./eventMappers.js\";\nconst DEFAULT_USE_PREVIEW_API = true;\nconst EMPTY_DOCUMENT_SECURITY = Object.freeze({\n discretionary: {},\n mandatory: {}\n});\nexport function createFoundryDocumentServiceConfig(config = {}) {\n return createDocumentServiceConfig((app, config) => internalCreateFoundryDocumentService(app, config), config);\n}\nexport function internalCreateFoundryDocumentService(app, config, eventService) {\n return new FoundryDocumentService(app, config, eventService ?? createFoundryEventService(app));\n}\nexport class FoundryDocumentService extends BaseYjsDocumentService {\n constructor(app, config, eventService) {\n super(app, app.config.logger.child({}, {\n level: \"debug\",\n msgPrefix: \"FoundryDocumentService\"\n }));\n this.config = config;\n this.eventService = eventService;\n }\n createInternalDoc(ref, metadata) {\n return {\n ...this.createBaseInternalDoc(ref, metadata),\n syncSession: undefined\n };\n }\n get hasMetadataSubscriptions() {\n return Array.from(this.documents.values()).some(doc => this.hasSubscriptions(doc) && doc.metadataSubscribers.size > 0);\n }\n get hasStateSubscriptions() {\n return Array.from(this.documents.values()).some(doc => this.hasSubscriptions(doc) && doc.docStateSubscribers.size > 0);\n }\n createDocument = async (metadata, schema) => {\n const {\n documentTypeName,\n name,\n parentFolderRid,\n security\n } = metadata;\n const ontologyRid = await getOntologyRid(this.app);\n const request = {\n documentTypeName: documentTypeName,\n name: name,\n ontologyRid: ontologyRid,\n security: getWireSecurity(security)\n };\n if (parentFolderRid != null) {\n request.parentFolderRid = parentFolderRid;\n }\n const createResponse = await Documents.create(this.app.config.osdkClient, request, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n });\n const documentId = createResponse.id;\n const docRef = this.createDocRef(documentId, schema);\n return docRef;\n };\n searchDocuments = async (documentTypeName, schema, options) => {\n const request = {\n documentTypeName,\n requestBody: {\n query: options?.documentName != null ? {\n documentName: options.documentName\n } : undefined,\n pageSize: options?.pageSize,\n pageToken: options?.pageToken\n }\n };\n const searchResponse = await Documents.search(this.app.config.osdkClient, request, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n });\n return {\n data: searchResponse.data.map(doc => ({\n createdBy: doc.createdBy,\n createdTime: doc.createdTime,\n documentTypeName: doc.documentTypeName,\n id: doc.id,\n name: doc.name,\n ontologyRid: doc.ontologyRid,\n security: getLocalSecurity(doc.security),\n updatedBy: doc.updatedBy,\n updatedTime: doc.updatedTime\n })),\n nextPageToken: searchResponse.nextPageToken\n };\n };\n updateDocument = async (docRef, update) => {\n const document = await Documents.update(this.app.config.osdkClient, docRef.id, {\n requestBody: {\n ...(update.name != null ? {\n name: update.name\n } : {}),\n ...(update.description != null ? {\n description: update.description\n } : {}),\n ...(update.security != null ? {\n security: getWireSecurity(update.security)\n } : {})\n }\n }, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n });\n const metadata = {\n description: document.description,\n documentTypeName: document.documentTypeName,\n name: document.name,\n ontologyRid: document.ontologyRid,\n security: getLocalSecurity(document.security)\n };\n this.updateMetadata(docRef.id, metadata);\n return metadata;\n };\n onMetadataSubscriptionOpened(internalDoc, docRef) {\n if (internalDoc.metadataStatus.load !== DocumentLoadStatus.UNLOADED) {\n throw new Error(`Cannot subscribe to document metadata when status is ${internalDoc.metadataStatus.load}`);\n }\n this.updateMetadataStatus(internalDoc, docRef, {\n load: DocumentLoadStatus.LOADING\n });\n Documents.get(this.app.config.osdkClient, docRef.id, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n }).then(document => {\n const metadata = {\n description: document.description,\n documentTypeName: document.documentTypeName,\n name: document.name,\n ontologyRid: document.ontologyRid,\n security: getLocalSecurity(document.security)\n };\n internalDoc.metadata = metadata;\n this.notifyMetadataSubscribers(internalDoc, docRef, metadata);\n this.updateMetadataStatus(internalDoc, docRef, {\n load: DocumentLoadStatus.LOADED\n });\n }).catch(e => {\n const error = new Error(\"Failed to load document metadata\", {\n cause: e\n });\n this.updateMetadataStatus(internalDoc, docRef, {\n error,\n load: DocumentLoadStatus.ERROR\n });\n });\n }\n onDataSubscriptionOpened(internalDoc, docRef) {\n if (internalDoc.syncSession != null) {\n throw new Error(\"Document data subscription already opened\");\n }\n internalDoc.syncSession = this.eventService.startDocumentSync(docRef.id, internalDoc.yDoc, status => {\n this.updateDataStatus(internalDoc, docRef, status);\n });\n }\n onMetadataSubscriptionClosed(_internalDoc, _docRef) {}\n onDataSubscriptionClosed(internalDoc, _docRef) {\n if (internalDoc.syncSession) {\n this.eventService.stopDocumentSync(internalDoc.syncSession);\n internalDoc.syncSession = undefined;\n }\n }\n onActivity(docRef, callback) {\n let unsubscribed = false;\n const unsubscribeFn = () => {\n unsubscribed = true;\n };\n this.eventService.subscribeToActivityUpdates(docRef.id, foundryEvent => {\n if (!unsubscribed) {\n const localEvent = getActivityEvent(docRef.schema, foundryEvent);\n if (localEvent != null) {\n this.updateMetadataFromActivityEvent(docRef, localEvent);\n callback(docRef, localEvent);\n }\n }\n }).catch(e => {\n this.logger.error(\"Failed to subscribe to activity updates\", e, {\n docId: docRef.id\n });\n });\n return unsubscribeFn;\n }\n static METADATA_ACTIVITY_EVENT_TYPES = new Set([ActivityEventDataType.DOCUMENT_RENAME, ActivityEventDataType.DOCUMENT_DESCRIPTION_UPDATE, ActivityEventDataType.DOCUMENT_SECURITY_UPDATE]);\n updateMetadataFromActivityEvent(docRef, event) {\n if (FoundryDocumentService.METADATA_ACTIVITY_EVENT_TYPES.has(event.eventData.type)) {\n this.refetchMetadata(docRef);\n }\n }\n refetchMetadata(docRef) {\n Documents.get(this.app.config.osdkClient, docRef.id, {\n preview: this.config.usePreviewApi ?? DEFAULT_USE_PREVIEW_API\n }).then(document => {\n const metadata = {\n description: document.description,\n documentTypeName: document.documentTypeName,\n name: document.name,\n ontologyRid: document.ontologyRid,\n security: getLocalSecurity(document.security)\n };\n this.updateMetadata(docRef.id, metadata);\n }).catch(e => {\n this.logger.error(\"Failed to refetch document metadata\", e, {\n docId: docRef.id\n });\n });\n }\n onPresence(docRef, callback, options) {\n let unsubscribed = false;\n const unsubscribeFn = () => {\n unsubscribed = true;\n };\n this.eventService.subscribeToPresenceUpdates(docRef.id, foundryUpdate => {\n if (!unsubscribed) {\n const localEvent = getPresenceEvent(docRef.schema, foundryUpdate);\n callback(docRef, localEvent);\n }\n }, options).catch(e => {\n this.logger.error(\"Failed to subscribe to presence updates\", e, {\n docId: docRef.id\n });\n });\n return unsubscribeFn;\n }\n updateCustomPresence(docRef, model, eventData, options) {\n const eventType = getMetadata(model).name;\n void this.eventService.publishCustomPresence(docRef.id, eventType, eventData, options).catch(e => {\n this.logger.error(\"Failed to publish custom presence\", e, {\n docId: docRef.id\n });\n });\n }\n}\nfunction getWireSecurity({\n discretionary,\n mandatory\n} = EMPTY_DOCUMENT_SECURITY) {\n const {\n editors = [],\n owners = [],\n viewers = []\n } = discretionary;\n return {\n discretionary: {\n editors: editors.map(getWirePrincipal),\n owners: owners.map(getWirePrincipal),\n viewers: viewers.map(getWirePrincipal)\n },\n mandatory: {\n classification: mandatory.classification != null ? [...mandatory.classification] : [],\n markings: mandatory.markings != null ? [...mandatory.markings] : []\n }\n };\n}\nfunction getWirePrincipal(principal) {\n switch (principal.type) {\n case \"all\":\n return {\n type: \"all\"\n };\n case \"groupId\":\n return {\n type: \"groupId\",\n groupId: principal.groupId\n };\n case \"userId\":\n return {\n type: \"userId\",\n userId: principal.userId\n };\n default:\n assertNever(principal);\n }\n}\nfunction getLocalSecurity(wireSecurity) {\n return {\n discretionary: {\n editors: wireSecurity.discretionary.editors.map(getLocalPrincipal),\n owners: wireSecurity.discretionary.owners.map(getLocalPrincipal),\n viewers: wireSecurity.discretionary.viewers.map(getLocalPrincipal)\n },\n mandatory: {\n classification: [...wireSecurity.mandatory.classification],\n markings: [...wireSecurity.mandatory.markings]\n }\n };\n}\nfunction getLocalPrincipal(wirePrincipal) {\n switch (wirePrincipal.type) {\n case \"all\":\n return {\n type: \"all\"\n };\n case \"groupId\":\n return {\n type: \"groupId\",\n groupId: wirePrincipal.groupId\n };\n case \"userId\":\n return {\n type: \"userId\",\n userId: wirePrincipal.userId\n };\n default:\n assertNever(wirePrincipal);\n }\n}"]}
|
|
@@ -30,6 +30,7 @@ export declare class FoundryDocumentService extends BaseYjsDocumentService<Found
|
|
|
30
30
|
protected onMetadataSubscriptionClosed(_internalDoc: FoundryInternalDoc, _docRef: DocumentRef): void;
|
|
31
31
|
protected onDataSubscriptionClosed(internalDoc: FoundryInternalDoc, _docRef: DocumentRef): void;
|
|
32
32
|
onActivity<T extends DocumentSchema>(docRef: DocumentRef<T>, callback: (docRef: DocumentRef<T>, event: ActivityEvent) => void): Unsubscribe;
|
|
33
|
+
private static readonly METADATA_ACTIVITY_EVENT_TYPES;
|
|
33
34
|
private updateMetadataFromActivityEvent;
|
|
34
35
|
private refetchMetadata;
|
|
35
36
|
onPresence<T extends DocumentSchema>(docRef: DocumentRef<T>, callback: (docRef: DocumentRef<T>, event: PresenceEvent) => void, options?: PresenceSubscriptionOptions): Unsubscribe;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAwBA,cAGO,wBACA,sBACA,mBACA;AACP,cACE,eAEA,kBACA,aACA,gBAEA,OACA,WACA,eACA,wBACA,mCACK;AAEP,cACE,wBACA,iBACA,gBACA,uBACA,8BACK;AACP,SACE,8BAGK;AACP,cAAc,qBAAqB,mBAAmB;UAU5C,6BAA6B;UAC5B;;AAGX,OAAO,iBAAS,mCACd,SAAQ,+BACP,kBAAkB;AAQrB,OAAO,iBAAS,qCACd,KAAK,iBACL,QAAQ,8BACR,eAAe,sBACd;UAQO,2BAA2B,eAAe;CAClD,cAAc;;AAGhB,OAAO,cAAM,+BAA+B,uBAAuB,oBAAoB;CAGnF,iBAAiB;CACjB,uBAAuB;CAHzB,YACE,KAAK,iBACL,AAASA,QAAQ,8BACjB,AAASC,cAAc;CAWzB,UAAU,kBACR,KAAK,aACL,UAAU,+BACT;CAOH,IAAI;CAMJ,IAAI;CAMJ,SAAS,iBAAwB,UAAU,gBACzC,UAAU,wBACV,QAAQ,MACP,QAAQ,YAAY;CA4BvB,SAAS,kBAAyB,UAAU,gBAC1C,0BACA,QAAQ,GACR,UAAU;EACR;EACA;EACA;OAED,QAAQ;CAkCX,SAAS,iBACP,QAAQ,aACR,QAAQ,2BACP,QAAQ;CA6BX,UAAU,6BACR,aAAa,oBACb,QAAQ;CAyCV,UAAU,yBACR,aAAa,oBACb,QAAQ;CAeV,UAAU,6BACR,cAAc,oBACd,SAAS;CAGX,UAAU,yBACR,aAAa,oBACb,SAAS;CAQX,WAAW,UAAU,gBACnB,QAAQ,YAAY,IACpB,WAAW,QAAQ,YAAY,IAAI,OAAO,yBACzC;CAyBH,QAAQ;
|
|
1
|
+
{"mappings":"AAwBA,cAGO,wBACA,sBACA,mBACA;AACP,cACE,eAEA,kBACA,aACA,gBAEA,OACA,WACA,eACA,wBACA,mCACK;AAEP,cACE,wBACA,iBACA,gBACA,uBACA,8BACK;AACP,SACE,8BAGK;AACP,cAAc,qBAAqB,mBAAmB;UAU5C,6BAA6B;UAC5B;;AAGX,OAAO,iBAAS,mCACd,SAAQ,+BACP,kBAAkB;AAQrB,OAAO,iBAAS,qCACd,KAAK,iBACL,QAAQ,8BACR,eAAe,sBACd;UAQO,2BAA2B,eAAe;CAClD,cAAc;;AAGhB,OAAO,cAAM,+BAA+B,uBAAuB,oBAAoB;CAGnF,iBAAiB;CACjB,uBAAuB;CAHzB,YACE,KAAK,iBACL,AAASA,QAAQ,8BACjB,AAASC,cAAc;CAWzB,UAAU,kBACR,KAAK,aACL,UAAU,+BACT;CAOH,IAAI;CAMJ,IAAI;CAMJ,SAAS,iBAAwB,UAAU,gBACzC,UAAU,wBACV,QAAQ,MACP,QAAQ,YAAY;CA4BvB,SAAS,kBAAyB,UAAU,gBAC1C,0BACA,QAAQ,GACR,UAAU;EACR;EACA;EACA;OAED,QAAQ;CAkCX,SAAS,iBACP,QAAQ,aACR,QAAQ,2BACP,QAAQ;CA6BX,UAAU,6BACR,aAAa,oBACb,QAAQ;CAyCV,UAAU,yBACR,aAAa,oBACb,QAAQ;CAeV,UAAU,6BACR,cAAc,oBACd,SAAS;CAGX,UAAU,yBACR,aAAa,oBACb,SAAS;CAQX,WAAW,UAAU,gBACnB,QAAQ,YAAY,IACpB,WAAW,QAAQ,YAAY,IAAI,OAAO,yBACzC;CAyBH,wBAAwB;CAMxB,QAAQ;CASR,QAAQ;CAsBR,WAAW,UAAU,gBACnB,QAAQ,YAAY,IACpB,WAAW,QAAQ,YAAY,IAAI,OAAO,wBAC1C,UAAU,8BACT;CA0BH,qBAAqB,UAAU,OAC7B,QAAQ,aACR,OAAO,GACP,WAAW,UAAU,IACrB,UAAU","names":["config: FoundryDocumentServiceConfig","eventService: FoundryEventService"],"sources":["../../src/FoundryDocumentService.ts"],"version":3,"file":"FoundryDocumentService.d.ts"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@palantir/pack.state.foundry",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "PACK State service that integrates with Palantir Foundry platform APIs.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
"remeda": "^2.32.0",
|
|
35
35
|
"yjs": "^13.6.27",
|
|
36
36
|
"@palantir/pack.auth": "0.1.2",
|
|
37
|
-
"@palantir/pack.core": "0.2.2",
|
|
38
|
-
"@palantir/pack.state.core": "0.7.0",
|
|
39
37
|
"@palantir/pack.document-schema.model-types": "0.5.0",
|
|
40
|
-
"@palantir/pack.state.
|
|
38
|
+
"@palantir/pack.state.core": "0.7.0",
|
|
39
|
+
"@palantir/pack.state.foundry-event": "0.6.0",
|
|
40
|
+
"@palantir/pack.core": "0.2.2"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/node": "^20.19.17",
|
|
@@ -340,14 +340,17 @@ export class FoundryDocumentService extends BaseYjsDocumentService<FoundryIntern
|
|
|
340
340
|
return unsubscribeFn;
|
|
341
341
|
}
|
|
342
342
|
|
|
343
|
+
private static readonly METADATA_ACTIVITY_EVENT_TYPES: ReadonlySet<string> = new Set([
|
|
344
|
+
ActivityEventDataType.DOCUMENT_RENAME,
|
|
345
|
+
ActivityEventDataType.DOCUMENT_DESCRIPTION_UPDATE,
|
|
346
|
+
ActivityEventDataType.DOCUMENT_SECURITY_UPDATE,
|
|
347
|
+
]);
|
|
348
|
+
|
|
343
349
|
private updateMetadataFromActivityEvent(
|
|
344
350
|
docRef: DocumentRef,
|
|
345
351
|
event: ActivityEvent,
|
|
346
352
|
): void {
|
|
347
|
-
if (
|
|
348
|
-
event.eventData.type === ActivityEventDataType.DOCUMENT_RENAME
|
|
349
|
-
|| event.eventData.type === ActivityEventDataType.DOCUMENT_DESCRIPTION_UPDATE
|
|
350
|
-
) {
|
|
353
|
+
if (FoundryDocumentService.METADATA_ACTIVITY_EVENT_TYPES.has(event.eventData.type)) {
|
|
351
354
|
this.refetchMetadata(docRef);
|
|
352
355
|
}
|
|
353
356
|
}
|