Socket
Socket
Sign inDemoInstall

@pdftron/collab-sql-resolver-generator

Package Overview
Dependencies
180
Maintainers
1
Versions
28
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.0.0-alpha.14 to 2.0.0-alpha.15

types/packages/collab-server/src/entities/Snapshot.d.ts

2

dist/index.js

@@ -1,1 +0,1 @@

!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.CollabPostgresGenerator=t():e.CollabPostgresGenerator=t()}(global,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.setupLogger=t.LogLevels=t.LogTags=void 0;var u=i(n(1)),a=n(6);t.LogTags={STANDARD:"STANDARD",ENTITY:"ENTITY",QUERY:"QUERY",RESPONSE:"RESPONSE",AUTH:"AUTH",CACHE:"CACHE"},t.LogLevels={ERROR:"error",WARN:"warn",INFO:"info",HTTP:"http",VERBOSE:"verbose",DEBUG:"debug",SILLY:"silly",NONE:"none"};var s=u.default.createLogger({format:u.format.combine(u.format.timestamp({format:"YYYY-MM-DD HH:mm:ss"}))});t.setupLogger=function(e,n,r){e===t.LogLevels.NONE?s.silent=!0:(a.addConsoleTransport(s,e,r),n&&n.length&&a.addTransports(s,n))},t.default=s},function(e,t){e.exports=require("winston")},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},o=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&o(t,e,n);return i(t,e),t},a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function u(e){try{s(r.next(e))}catch(e){i(e)}}function a(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(u,a)}s((r=r.apply(e,t||[])).next())}))},s=this&&this.__generator||function(e,t){var n,r,o,i,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return u.label++,{value:i[1],done:!1};case 5:u.label++,r=i[1],i=[0];continue;case 7:i=u.ops.pop(),u.trys.pop();continue;default:if(!(o=u.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){u=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){u.label=i[1];break}if(6===i[0]&&u.label<o[1]){u.label=o[1],o=i;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(i);break}o[2]&&u.ops.pop(),u.trys.pop();continue}i=t.call(e,u)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}},d=this&&this.__await||function(e){return this instanceof d?(this.v=e,this):new d(e)},l=this&&this.__asyncGenerator||function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),i=[];return r={},u("next"),u("throw"),u("return"),r[Symbol.asyncIterator]=function(){return this},r;function u(e){o[e]&&(r[e]=function(t){return new Promise((function(n,r){i.push([e,t,n,r])>1||a(e,t)}))})}function a(e,t){try{(n=o[e](t)).value instanceof d?Promise.resolve(n.value.v).then(s,l):c(i[0][2],n)}catch(e){c(i[0][3],e)}var n}function s(e){a("next",e)}function l(e){a("throw",e)}function c(e,t){e(t),i.shift(),i.length&&a(i[0][0],i[0][1])}},c=this&&this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}},f=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),u=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)u.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return u},m=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.LogTags=t.LogLevels=t.MutationOperationType=t.SQLClient=void 0;var p=m(n(3)),v=n(4),b=u(n(0)),y=n(7);t.SQLClient={Postgres:"pg",MSSQL:"mssql",SQLite3:"sqlite3",Oracle:"oracledb",MySQL:"mysql"},t.MutationOperationType={CREATE:"create",UPDATE:"update"};var h=n(0);Object.defineProperty(t,"LogLevels",{enumerable:!0,get:function(){return h.LogLevels}}),Object.defineProperty(t,"LogTags",{enumerable:!0,get:function(){return h.LogTags}}),t.default=function(e){var n=e.client,o=e.version,i=void 0===o?"":o,u=e.connection,m=e.pool,h=void 0===m?{min:2,max:10}:m,g=e.getDatabaseTimestamp,M=void 0===g?v.defaultGetDatabaseTimestamp:g,T=e.parseToUnixTimestamp,w=void 0===T?v.defaultParseToUnixTimestamp:T,C=e.logLevel,A=void 0===C?b.LogLevels.ERROR:C,x=e.filterLogsByTag,q=e.transports,_=void 0===q?[]:q;v.testTimeTransformFunctions(w,M),b.setupLogger(A,_,x),b.default.info("Collab SQL Resolver Generator version 2.0.0-alpha.14");var D=y.validateSchema(b.LogLevels,b.LogTags,t.SQLClient).validate(e).error;if(D)throw b.default.error(D.details),new Error(""+D);var O=v.attachAdditionalInfo(e.info),N=p.default({client:n,version:i,connection:u,pool:r({afterCreate:function(e,t){b.default.info("--\x3e Database connected"),t(null,e)}},h),postProcessResponse:function(e,t){if(!t)return e;if(null==t?void 0:t.isCountQuery)return e;if(0===e.length)return e;var n=v.transformToApolloFormat({result:e,columns:null==t?void 0:t.columns,columnsMap:null==t?void 0:t.columnsMap,parseToUnixTimestamp:w});return b.default.log({level:b.LogLevels.DEBUG,tag:b.LogTags.RESPONSE,message:"["+t.from+"]: "+JSON.stringify(n)}),n},debug:A===b.LogLevels.DEBUG,log:{warn:function(e){b.default.warn(e)},error:function(e){b.default.error(e)},deprecate:function(e){b.default.warn(e)},debug:function(e){b.default.log({level:b.LogLevels.DEBUG,tag:b.LogTags.QUERY,message:e})}}}),I=function(e){var t=e.writeMiddleware,n=e.dbDataMap,o=e.operationType,i=e.customContext,u=void 0===i?{}:i;return a(void 0,void 0,void 0,(function(){var e,i,f,m,p,v,b,y;return s(this,(function(h){switch(h.label){case 0:if(e=r({},u),i=r({},n),0===t.length)return[2,i];f=function(){return l(this,arguments,(function(){var n,r,u=this;return s(this,(function(l){switch(l.label){case 0:n=0,r=function(){return a(u,void 0,void 0,(function(){var r;return s(this,(function(u){switch(u.label){case 0:return(r=t[n])?[4,new Promise((function(t){r({data:i,ctx:e,type:o,next:function(n,r){n&&(i=n),r&&(e=r),t()}})}))]:[2];case 1:return u.sent(),[2]}}))}))},l.label=1;case 1:return n<t.length?[4,d(r())]:[3,5];case 2:return l.sent(),n++,[4,d(void 0)];case 3:return[4,l.sent()];case 4:return l.sent(),[3,1];case 5:return[4,d(void 0)];case 6:return[2,l.sent()]}}))}))}(),h.label=1;case 1:h.trys.push([1,6,7,12]),m=c(f),h.label=2;case 2:return[4,m.next()];case 3:if((p=h.sent()).done)return[3,5];p.value,f.next(),h.label=4;case 4:return[3,2];case 5:return[3,12];case 6:return v=h.sent(),b={error:v},[3,12];case 7:return h.trys.push([7,,10,11]),p&&!p.done&&(y=m.return)?[4,y.call(m)]:[3,9];case 8:h.sent(),h.label=9;case 9:return[3,11];case 10:if(b)throw b.error;return[7];case 11:return[7];case 12:return[2,i]}}))}))},E=function(e){var r=e.from,o=e.id,i=e.operationType,u=e.entity,d=e.dbDataMap;return a(void 0,void 0,void 0,(function(){var e,a,l,c,m,p,b,y;return s(this,(function(s){switch(s.label){case 0:return e=u.table,a=u.selectFields,l=u.columns,c=u.columnsMap,i!==t.MutationOperationType.CREATE?[3,2]:[4,N(e).queryContext({from:r,columns:l,columnsMap:c}).insert(d)];case 1:return s.sent(),[3,4];case 2:return i!==t.MutationOperationType.UPDATE?[3,4]:[4,N(e).queryContext({from:r,columns:l,columnsMap:c}).where(v.getColumnName(l.id),o).update(d)];case 3:s.sent(),s.label=4;case 4:return m=n===t.SQLClient.SQLite3?"last_insert_rowid() as id":"LAST_INSERT_ID() as id",[4,N.select(N.raw(m))];case 5:return p=f.apply(void 0,[s.sent(),1]),b=p[0],y=b.id,n===t.SQLClient.SQLite3&&a.push("rowid"),[4,N(e).select(a).queryContext({from:r,columns:l,columnsMap:c}).where(v.getColumnName(l.id),y)];case 6:return[2,s.sent()]}}))}))},j=function(e){var r=e.from,o=e.id,i=e.entity,u=e.data,d=e.customContext,l=e.operationType;return a(void 0,void 0,void 0,(function(){var e,a,c,f,m,p,y,h,g;return s(this,(function(s){switch(s.label){case 0:e=i.table,a=i.writeMiddleware,c=void 0===a?[]:a,f=i.selectFields,m=i.columns,p=i.columnsMap,s.label=1;case 1:return s.trys.push([1,9,,10]),[4,I({writeMiddleware:c,dbDataMap:v.toDatabaseFormat({data:u,table:e,columns:m,getDatabaseTimestamp:M,knex:N}),operationType:l,customContext:d})];case 2:return y=s.sent(),h=[],n!==t.SQLClient.SQLite3&&n!==t.SQLClient.MySQL?[3,4]:[4,E({from:r,id:o,operationType:l,entity:i,dbDataMap:y})];case 3:return h=s.sent(),[3,8];case 4:return l!==t.MutationOperationType.CREATE?[3,6]:[4,N(e).queryContext({from:r,columns:m,columnsMap:p}).insert(y).returning(f)];case 5:return h=s.sent(),[3,8];case 6:return[4,N(e).queryContext({from:r,columns:m,columnsMap:p}).where(v.getColumnName(m.id),o).update(y).returning(f)];case 7:h=s.sent(),s.label=8;case 8:return[2,h[0]||null];case 9:return g=s.sent(),b.default.error(g),[3,10];case 10:return[2]}}))}))},S=function(e){var t=e.entity,n=e.id;return a(void 0,void 0,void 0,(function(){var e,r,o;return s(this,(function(i){switch(i.label){case 0:e=t.table,r=t.columns,i.label=1;case 1:return i.trys.push([1,3,,4]),[4,N(e).where(v.getColumnName(r.id),n).del().returning(v.getColumnName(r.id))];case 2:return[2,{id:""+i.sent()[0],successful:!0}];case 3:return o=i.sent(),b.default.error(o),[2,{id:n,successful:!1}];case 4:return[2]}}))}))};return{Query:{user:function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u;return s(this,(function(a){switch(a.label){case 0:return t=O.Users,n=t.selectFields,r=void 0===n?[]:n,o=t.table,i=t.columns,u=t.columnsMap,[4,N(o).queryContext({from:"Query.user",columns:i,columnsMap:u}).select(r).where(v.getColumnName(i.id),e).limit(1).then((function(e){return e}))];case 1:return[2,a.sent()[0]||null]}}))}))},userWithEmail:function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u;return s(this,(function(a){switch(a.label){case 0:return t=O.Users,n=t.selectFields,r=void 0===n?[]:n,o=t.table,i=t.columns,u=t.columnsMap,[4,N(o).queryContext({from:"Query.userWithEmail",columns:i,columnsMap:u}).select(r).where(v.getColumnName(i.email),e).limit(1)];case 1:return[2,a.sent()[0]||null]}}))}))},annotations:function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u,a,d,l,c,f,m,p;return s(this,(function(s){switch(s.label){case 0:return t=e.ids,n=e.documentId,r=e.annotationIds,o=e.filters,i=void 0===o?{}:o,u=e.inReplyTo,a=e.pageNumbers,d=O.Annotations,l=d.selectFields,c=void 0===l?[]:l,f=d.table,m=d.columns,p=d.columnsMap,[4,N(f).queryContext({from:"Query.annotations",columns:m,columnsMap:p}).select(c).where((function(e){t&&e.whereIn(v.getColumnName(m.id),t),r&&e.whereIn(v.getColumnName(m.annotationId),r),n&&e.where(v.getColumnName(m.documentId),n),u&&e.where(v.getColumnName(m.inReplyTo),u),a&&e.whereIn(v.getColumnName(m.pageNumber),a),v.buildFilterQuery(e,i,m,M)})).modify((function(e){v.buildModifyQuery(e,i,m)}))];case 1:return[2,s.sent()]}}))}))},documents:function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u,a,d,l,c;return s(this,(function(s){switch(s.label){case 0:return t=e.ids,n=e.userId,r=e.filters,o=void 0===r?{}:r,i=O.Documents,u=i.selectFields,a=void 0===u?[]:u,d=i.table,l=i.columns,c=i.columnsMap,[4,N(d).queryContext({from:"Query.documents",columns:l,columnsMap:c}).select(a).where((function(e){t&&e.whereIn(v.getColumnName(l.id),t),n&&e.whereIn(v.getColumnName(l.id),(function(){this.select(v.getColumnName(O.DocumentMembers.columns.documentId)).from(O.DocumentMembers.table).where(v.getColumnName(O.DocumentMembers.columns.userId),n)})),v.buildFilterQuery(e,o,l,M)})).modify((function(e){v.buildModifyQuery(e,o,l)}))];case 1:return[2,s.sent()]}}))}))},annotationMembers:function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u,a,d,l,c,f;return s(this,(function(s){switch(s.label){case 0:return t=e.annotationId,n=e.ids,r=e.userId,o=e.filters,i=void 0===o?{}:o,u=O.AnnotationMembers,a=u.selectFields,d=void 0===a?[]:a,l=u.table,c=u.columns,f=u.columnsMap,[4,N(l).queryContext({from:"Query.annotationMembers",columns:c,columnsMap:f}).select(d).where((function(e){n&&e.whereIn(v.getColumnName(c.id),n),t&&e.where(v.getColumnName(c.annotationId),t),r&&e.where(v.getColumnName(c.userId),r),v.buildFilterQuery(e,i,c,M)})).modify((function(e){v.buildModifyQuery(e,i,c)}))];case 1:return[2,s.sent()]}}))}))},documentMembers:function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u,a,d,l,c,f;return s(this,(function(s){switch(s.label){case 0:return t=e.documentId,n=e.ids,r=e.userId,o=e.filters,i=void 0===o?{}:o,u=O.DocumentMembers,a=u.selectFields,d=void 0===a?[]:a,l=u.table,c=u.columns,f=u.columnsMap,[4,N(l).queryContext({from:"Query.documentMembers",columns:c,columnsMap:f}).select(d).where((function(e){n&&e.whereIn(v.getColumnName(c.id),n),t&&e.where(v.getColumnName(c.documentId),t),r&&e.where(v.getColumnName(c.userId),r),v.buildFilterQuery(e,i,c,M)})).modify((function(e){v.buildModifyQuery(e,i,c)}))];case 1:return[2,s.sent()]}}))}))},mentions:function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u,a,d,l,c,f,m;return s(this,(function(s){switch(s.label){case 0:return t=e.annotationId,n=e.userId,r=e.documentId,o=e.ids,i=e.filters,u=void 0===i?{}:i,a=O.Mentions,d=a.selectFields,l=void 0===d?[]:d,c=a.table,f=a.columns,m=a.columnsMap,[4,N(c).queryContext({from:"Query.mentions",columns:f,columnsMap:m}).select(l).where((function(e){o&&e.whereIn(v.getColumnName(f.id),o),r&&e.where(v.getColumnName(f.documentId),r),t&&e.where(v.getColumnName(f.annotationId),t),n&&e.where(v.getColumnName(f.userId),n),v.buildFilterQuery(e,u,f,M)})).modify((function(e){v.buildModifyQuery(e,u,f)}))];case 1:return[2,s.sent()]}}))}))},annotationCount:function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u,a;return s(this,(function(s){switch(s.label){case 0:return t=e.since,n=e.documentId,r=O.Annotations,o=r.table,i=r.columns,u=r.columnsMap,[4,N(o).queryContext({from:"Query.annotationCount",columns:i,columnsMap:u,isCountQuery:!0}).count({count:[v.getColumnName(i.id)]}).where(v.getColumnName(i.documentId),n).where(v.getColumnName(i.createdAt),">",M(t))];case 1:return a=s.sent(),[2,Number(a[0].count||0)]}}))}))},annotationMemberCount:function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u,a,d;return s(this,(function(s){switch(s.label){case 0:return t=e.userId,n=e.documentId,r=e.since,o=O.AnnotationMembers,i=o.table,u=o.columns,a=o.columnsMap,[4,N(i).queryContext({from:"Query.annotationMemberCount",columns:u,columnsMap:a,isCountQuery:!0}).count({count:[v.getColumnName(u.id)]}).where(v.getColumnName(u.documentId),n).where(v.getColumnName(u.userId),t).where(v.getColumnName(u.createdAt),">",M(r))];case 1:return d=s.sent(),[2,Number(d[0].count||0)]}}))}))}},Mutation:{addUser:function(e,n){return a(void 0,void 0,void 0,(function(){return s(this,(function(r){return[2,j({from:"Mutation.addUser",entity:O.Users,data:e,customContext:n,operationType:t.MutationOperationType.CREATE})]}))}))},addAnnotation:function(e,n){return a(void 0,void 0,void 0,(function(){return s(this,(function(r){return[2,j({from:"Mutation.addAnnotation",entity:O.Annotations,data:e,customContext:n,operationType:t.MutationOperationType.CREATE})]}))}))},editAnnotation:function(e,n,r){return a(void 0,void 0,void 0,(function(){var o,i,u,a;return s(this,(function(s){return o=n.xfdf,i=n.pageNumber,u=n.updatedAt,a=n.annotContents,[2,j({from:"Mutation.editAnnotation",customContext:r,entity:O.Annotations,id:e,data:{xfdf:o,pageNumber:i,updatedAt:u,annotContents:a},operationType:t.MutationOperationType.UPDATE})]}))}))},deleteAnnotation:function(e,t){return a(void 0,void 0,void 0,(function(){return s(this,(function(n){switch(n.label){case 0:return[4,S({from:"Mutation.deleteAnnotation",entity:O.Annotations,id:e,customContext:t})];case 1:return[2,n.sent()]}}))}))},addDocument:function(e,n){return a(void 0,void 0,void 0,(function(){return s(this,(function(r){return[2,j({from:"Mutation.addDocument",entity:O.Documents,data:e,customContext:n,operationType:t.MutationOperationType.CREATE})]}))}))},editDocument:function(e,n,r){return a(void 0,void 0,void 0,(function(){var o,i,u;return s(this,(function(a){return o=n.name,i=n.isPublic,u=n.updatedAt,[2,j({from:"Mutation.editDocument",entity:O.Documents,id:e,data:{name:o,isPublic:i,updatedAt:u},customContext:r,operationType:t.MutationOperationType.UPDATE})]}))}))},deleteDocument:function(e,t){return a(void 0,void 0,void 0,(function(){return s(this,(function(n){return[2,S({from:"Mutation.deleteDocument",entity:O.Documents,id:e,customContext:t})]}))}))},addDocumentMember:function(e,n){return a(void 0,void 0,void 0,(function(){return s(this,(function(r){return[2,j({from:"Mutation.addDocumentMember",entity:O.DocumentMembers,data:e,customContext:n,operationType:t.MutationOperationType.CREATE})]}))}))},editDocumentMember:function(e,n,r){return a(void 0,void 0,void 0,(function(){var o,i;return s(this,(function(u){return o=n.lastRead,i=n.updatedAt,[2,j({from:"Mutation.editDocumentMember",entity:O.DocumentMembers,id:e,data:{lastRead:o,updatedAt:i},customContext:r,operationType:t.MutationOperationType.UPDATE})]}))}))},deleteDocumentMember:function(e,t){return a(void 0,void 0,void 0,(function(){return s(this,(function(n){return[2,S({from:"Mutation.deleteDocumentMember",entity:O.DocumentMembers,id:e,customContext:t})]}))}))},addAnnotationMember:function(e,n){return a(void 0,void 0,void 0,(function(){return s(this,(function(r){return[2,j({from:"Mutation.addAnnotationMember",entity:O.AnnotationMembers,data:e,customContext:n,operationType:t.MutationOperationType.CREATE})]}))}))},editAnnotationMember:function(e,n,r){return a(void 0,void 0,void 0,(function(){var o,i;return s(this,(function(u){return o=n.lastRead,i=n.updatedAt,[2,j({from:"Mutation.editAnnotationMember",entity:O.AnnotationMembers,id:e,data:{lastRead:o,updatedAt:i},customContext:r,operationType:t.MutationOperationType.UPDATE})]}))}))},deleteAnnotationMember:function(e,t){return a(void 0,void 0,void 0,(function(){return s(this,(function(n){return[2,S({from:"Mutation.deleteAnnotationMember",entity:O.AnnotationMembers,id:e,customContext:t})]}))}))},addMention:function(e,n){return a(void 0,void 0,void 0,(function(){return s(this,(function(r){return[2,j({from:"Mutation.addMention",entity:O.Mentions,data:e,customContext:n,operationType:t.MutationOperationType.CREATE})]}))}))},editMention:function(e,n,r){return a(void 0,void 0,void 0,(function(){var o,i;return s(this,(function(u){return o=n.readBeforeMention,i=n.updatedAt,[2,j({from:"Mutation.editMention",entity:O.Mentions,id:e,data:{readBeforeMention:o,updatedAt:i},customContext:r,operationType:t.MutationOperationType.UPDATE})]}))}))},deleteMention:function(e,t){return a(void 0,void 0,void 0,(function(){return s(this,(function(n){return[2,S({from:"Mutation.deleteMention",entity:O.Mentions,id:e,customContext:t})]}))}))}}}}},function(e,t){e.exports=require("knex")},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.attachAdditionalInfo=t.transformToApolloFormat=t.keysToCamel=t.toUnixTimestamp=t.testTimeTransformFunctions=t.defaultGetDatabaseTimestamp=t.defaultParseToUnixTimestamp=t.toDatabaseFormat=t.buildModifyQuery=t.getColumnName=t.buildFilterQuery=void 0;var i=n(5),u=o(n(0));t.buildFilterQuery=function(e,n,r,o){n.createdBefore&&e.where(t.getColumnName(r.createdAt),"<",o(n.createdBefore)),n.createdAfter&&e.where(t.getColumnName(r.createdAt),">",o(n.createdAfter)),n.updatedBefore&&e.where(t.getColumnName(r.updatedAt),"<",o(n.updatedBefore)),n.updatedAfter&&e.where(t.getColumnName(r.updatedAt),">",o(n.updatedAfter))};t.getColumnName=function(e){return"string"==typeof e?e:e.name};t.buildModifyQuery=function(e,n,r){var o=n.limit,i=n.orderBy,u=n.orderDirection,a=void 0===u?"DESC":u;i&&e.orderBy(t.getColumnName(r[i]),a),o&&e.limit(o)};t.toDatabaseFormat=function(e){var n=e.data,r=e.table,o=e.columns,a=e.getDatabaseTimestamp,s=e.knex,d={};for(var l in n)void 0===o[l]?u.default.warn("SQL Resolver Generator - Received unexpected data { '"+l+"': '"+n[l]+"' } when formatting data for the \""+r+'" table. This data will be ignored.\n\nReceived data:\n\n'+JSON.stringify(n,null,2)):i.TimestampProperties.includes(l)?i.NowTimestampProperties.includes(l)?d[t.getColumnName(o[l])]=s.raw(n[l]):d[t.getColumnName(o[l])]=a(n[l]):d[t.getColumnName(o[l])]=n[l];return d};t.defaultParseToUnixTimestamp=function(e){return new Date(e).getTime()};t.defaultGetDatabaseTimestamp=function(e){return new Date(e).toISOString()};t.testTimeTransformFunctions=function(e,t){var n=Date.now();if(e(t(n))!==n)throw new Error('Configuration error: "getDatabaseTimestamp" and "parseToUnixTimestamp" functions are not compatible. The result of "parseUnixFunc" must be equal to the input of "getDatabaseTimestampFunc". For example, the following must be true: parseUnixFunc(getDatabaseTimestamp('+n+")) === "+n)};t.toUnixTimestamp=function(e,t){return Object.keys(e).forEach((function(n){i.TimestampProperties.includes(n)&&(e[n]=t(e[n]))})),e};t.keysToCamel=function(e,t,n){var r={};return Object.keys(e).forEach((function(o){if(n[o]){var i=n[o],u="string"!=typeof t[i]&&!!t[i].transform;r[i]=u?t[i].transform(e[o]):e[o]}})),r};t.transformToApolloFormat=function(e){var n=e.result,r=e.columns,o=e.columnsMap,i=e.parseToUnixTimestamp,u=[];return n.forEach((function(e){var n=t.keysToCamel(e,r,o),a=t.toUnixTimestamp(n,i);u.push(a)})),u};t.attachAdditionalInfo=function(e){var n={Users:r(r({},e.Users),{columnsMap:{},selectFields:[]}),Annotations:r(r({},e.Annotations),{columnsMap:{},selectFields:[]}),Documents:r(r({},e.Documents),{columnsMap:{},selectFields:[]}),AnnotationMembers:r(r({},e.AnnotationMembers),{columnsMap:{},selectFields:[]}),DocumentMembers:r(r({},e.DocumentMembers),{columnsMap:{},selectFields:[]}),Mentions:r(r({},e.Mentions),{columnsMap:{},selectFields:[]})};for(var o in e){var i={},u=e[o].columns;for(var a in u){var s=t.getColumnName(u[a]);n[o].selectFields.push(s),i[s]=a}n[o].columnsMap=i}return n}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NowTimestampProperties=t.TimestampProperties=void 0,t.TimestampProperties=["createdAt","updatedAt","lastRead","annotationCreatedAt"],t.NowTimestampProperties=["createdAt","updatedAt","lastRead"]},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.addTransports=t.addConsoleTransport=void 0;var u=i(n(1)),a=n(0);t.addConsoleTransport=function(e,t,n){void 0===t&&(t=a.LogLevels.INFO),e.add(new u.default.transports.Console({level:t,format:u.format.combine(u.format((function(e){return(!n||e.tag===n)&&e}))(),u.format.colorize(),u.format.printf((function(e){var t=s(e.message),n=e.tag?" ["+e.tag+"]":"",r=s(e.meta);return e.timestamp+" "+e.level+n+": "+t+" "+r})),u.format.metadata({fillExcept:["message","level","timestamp","label"]}))}))};t.addTransports=function(e,t){t.forEach((function(t){return e.add(t)}))};var s=function(e){var t=e||"";return"object"==typeof e&&null!==e&&(t=JSON.stringify(e,null,2)),t}},function(e,t,n){"use strict";var r=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),u=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)u.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return u},o=this&&this.__spreadArray||function(e,t){for(var n=0,r=t.length,o=e.length;n<r;n++,o++)e[o]=t[n];return e},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchema=void 0;var u=i(n(8)),a=u.default.alternatives().try(u.default.object({name:u.default.string().required(),transform:u.default.function()}),u.default.string()).required();t.validateSchema=function(e,t,n){var i,s,d;return u.default.object({client:(i=u.default.string()).valid.apply(i,o([],r(Object.values(n)))).required(),connection:u.default.object().required(),pool:{min:u.default.number(),max:u.default.number()},getDatabaseTimestamp:u.default.func(),parseToUnixTimestamp:u.default.func(),getNow:u.default.func(),logLevel:(s=u.default.string()).valid.apply(s,o([],r(Object.values(e)))),filterLogsByTag:(d=u.default.string()).valid.apply(d,o([],r(Object.values(t)))),transports:u.default.array(),info:u.default.object({Users:u.default.object({table:u.default.string().required(),writeMiddleware:u.default.array().items(u.default.function()),columns:u.default.object({id:a.required(),type:a.required(),email:a.required(),userName:a,createdAt:a.required(),updatedAt:a.required()}).required()}).required(),Annotations:u.default.object({table:u.default.string().required(),writeMiddleware:u.default.array().items(u.default.function()),columns:u.default.object({id:a.required(),xfdf:a.required(),authorId:a.required(),annotationId:a.required(),documentId:a.required(),pageNumber:a.required(),createdAt:a.required(),updatedAt:a.required(),inReplyTo:a.required(),annotContents:a}).required()}).required(),Documents:u.default.object({table:u.default.string().required(),writeMiddleware:u.default.array().items(u.default.function()),columns:u.default.object({id:a.required(),authorId:a.required(),createdAt:a.required(),updatedAt:a.required(),isPublic:a.required(),name:a}).required()}).required(),AnnotationMembers:u.default.object({table:u.default.string().required(),writeMiddleware:u.default.array().items(u.default.function()),columns:u.default.object({id:a.required(),userId:a.required(),documentId:a.required(),annotationId:a.required(),lastRead:a.required(),createdAt:a.required(),updatedAt:a.required(),annotationCreatedAt:a.required()}).required()}),DocumentMembers:u.default.object({table:u.default.string().required(),writeMiddleware:u.default.array().items(u.default.function()),columns:u.default.object({id:a.required(),userId:a.required(),documentId:a.required(),lastRead:a.required(),createdAt:a.required(),updatedAt:a.required()}).required()}).required(),Mentions:u.default.object({table:u.default.string().required(),writeMiddleware:u.default.array().items(u.default.function()),columns:u.default.object({id:a.required(),userId:a.required(),documentId:a.required(),annotationId:a.required(),readBeforeMention:a.required(),createdAt:a.required(),updatedAt:a.required()}).required()}).required()}).required()})}},function(e,t){e.exports=require("joi")}]).default}));
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.CollabPostgresGenerator=t():e.CollabPostgresGenerator=t()}(global,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.setupLogger=t.LogLevels=t.LogTags=void 0;var u=i(n(1)),a=n(6);t.LogTags={STANDARD:"STANDARD",ENTITY:"ENTITY",QUERY:"QUERY",MUTATION:"MUTATION",RESPONSE:"RESPONSE",AUTH:"AUTH",CACHE:"CACHE",CONNECTED_USERS:"CONNECTED_USERS",SCROLL_SYNC:"SCROLL_SYNC"},t.LogLevels={ERROR:"error",WARN:"warn",INFO:"info",HTTP:"http",VERBOSE:"verbose",DEBUG:"debug",SILLY:"silly",NONE:"none"};var s=u.default.createLogger({format:u.format.combine(u.format.timestamp({format:"YYYY-MM-DD HH:mm:ss"}))});t.setupLogger=function(e,n,r){e===t.LogLevels.NONE?s.silent=!0:(a.addConsoleTransport(s,e,r),n&&n.length&&a.addTransports(s,n))},t.default=s},function(e,t){e.exports=require("winston")},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},o=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&o(t,e,n);return i(t,e),t},a=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function u(e){try{s(r.next(e))}catch(e){i(e)}}function a(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(u,a)}s((r=r.apply(e,t||[])).next())}))},s=this&&this.__generator||function(e,t){var n,r,o,i,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;u;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return u.label++,{value:i[1],done:!1};case 5:u.label++,r=i[1],i=[0];continue;case 7:i=u.ops.pop(),u.trys.pop();continue;default:if(!(o=u.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){u=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){u.label=i[1];break}if(6===i[0]&&u.label<o[1]){u.label=o[1],o=i;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(i);break}o[2]&&u.ops.pop(),u.trys.pop();continue}i=t.call(e,u)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}},d=this&&this.__await||function(e){return this instanceof d?(this.v=e,this):new d(e)},c=this&&this.__asyncGenerator||function(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),i=[];return r={},u("next"),u("throw"),u("return"),r[Symbol.asyncIterator]=function(){return this},r;function u(e){o[e]&&(r[e]=function(t){return new Promise((function(n,r){i.push([e,t,n,r])>1||a(e,t)}))})}function a(e,t){try{(n=o[e](t)).value instanceof d?Promise.resolve(n.value.v).then(s,c):l(i[0][2],n)}catch(e){l(i[0][3],e)}var n}function s(e){a("next",e)}function c(e){a("throw",e)}function l(e,t){e(t),i.shift(),i.length&&a(i[0][0],i[0][1])}},l=this&&this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}},f=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),u=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)u.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return u},m=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.LogTags=t.LogLevels=t.MutationOperationType=t.SQLClient=void 0;var p=m(n(3)),v=n(4),h=u(n(0)),y=n(7);t.SQLClient={Postgres:"pg",MSSQL:"mssql",SQLite3:"sqlite3",Oracle:"oracledb",MySQL:"mysql"},t.MutationOperationType={CREATE:"create",UPDATE:"update"};var b=n(0);Object.defineProperty(t,"LogLevels",{enumerable:!0,get:function(){return b.LogLevels}}),Object.defineProperty(t,"LogTags",{enumerable:!0,get:function(){return b.LogTags}}),t.default=function(e){var n=e.client,o=e.version,i=void 0===o?"":o,u=e.connection,m=e.pool,b=void 0===m?{min:2,max:10}:m,M=e.getDatabaseTimestamp,g=void 0===M?v.defaultGetDatabaseTimestamp:M,T=e.parseToUnixTimestamp,w=void 0===T?v.defaultParseToUnixTimestamp:T,C=e.logLevel,A=void 0===C?h.LogLevels.ERROR:C,q=e.filterLogsByTag,S=e.transports,x=void 0===S?[]:S;v.testTimeTransformFunctions(w,g),h.setupLogger(A,x,q),h.default.info("Collab SQL Resolver Generator version 2.0.0-alpha.15");var N=y.validateSchema(h.LogLevels,h.LogTags,t.SQLClient).validate(e).error;if(N)throw h.default.error(N.details),new Error(""+N);var _=v.attachAdditionalInfo(e.info),O=p.default({client:n,version:i,connection:u,pool:r({afterCreate:function(e,t){h.default.info("--\x3e Database connected"),t(null,e)}},b),postProcessResponse:function(e,t){if(!t)return e;if(null==t?void 0:t.isCountQuery)return e;if(0===e.length)return e;var n=v.transformToApolloFormat({result:e,columns:null==t?void 0:t.columns,columnsMap:null==t?void 0:t.columnsMap,parseToUnixTimestamp:w});return h.default.log({level:h.LogLevels.DEBUG,tag:h.LogTags.RESPONSE,message:"["+t.from+"]: "+JSON.stringify(n)}),n},debug:A===h.LogLevels.DEBUG,log:{warn:function(e){h.default.warn(e)},error:function(e){h.default.error(e)},deprecate:function(e){h.default.warn(e)},debug:function(e){h.default.log({level:h.LogLevels.DEBUG,tag:h.LogTags.QUERY,message:e})}}}),D=function(e){var t=e.writeMiddleware,n=e.dbDataMap,o=e.operationType,i=e.customContext,u=void 0===i?{}:i;return a(void 0,void 0,void 0,(function(){var e,i,f,m,p,v,h,y;return s(this,(function(b){switch(b.label){case 0:if(e=r({},u),i=r({},n),0===t.length)return[2,i];f=function(){return c(this,arguments,(function(){var n,r,u=this;return s(this,(function(c){switch(c.label){case 0:n=0,r=function(){return a(u,void 0,void 0,(function(){var r;return s(this,(function(u){switch(u.label){case 0:return(r=t[n])?[4,new Promise((function(t){r({data:i,ctx:e,type:o,knex:O,next:function(n,r){n&&(i=n),r&&(e=r),t()}})}))]:[2];case 1:return u.sent(),[2]}}))}))},c.label=1;case 1:return n<t.length?[4,d(r())]:[3,5];case 2:return c.sent(),n++,[4,d(void 0)];case 3:return[4,c.sent()];case 4:return c.sent(),[3,1];case 5:return[4,d(void 0)];case 6:return[2,c.sent()]}}))}))}(),b.label=1;case 1:b.trys.push([1,6,7,12]),m=l(f),b.label=2;case 2:return[4,m.next()];case 3:if((p=b.sent()).done)return[3,5];p.value,f.next(),b.label=4;case 4:return[3,2];case 5:return[3,12];case 6:return v=b.sent(),h={error:v},[3,12];case 7:return b.trys.push([7,,10,11]),p&&!p.done&&(y=m.return)?[4,y.call(m)]:[3,9];case 8:b.sent(),b.label=9;case 9:return[3,11];case 10:if(h)throw h.error;return[7];case 11:return[7];case 12:return[2,i]}}))}))},I=function(e){var r=e.from,o=e.id,i=e.operationType,u=e.entity,d=e.dbDataMap;return a(void 0,void 0,void 0,(function(){var e,a,c,l,m,p,h,y;return s(this,(function(s){switch(s.label){case 0:return e=u.table,a=u.selectFields,c=u.columns,l=u.columnsMap,i!==t.MutationOperationType.CREATE?[3,2]:[4,O(e).queryContext({from:r,columns:c,columnsMap:l}).insert(d)];case 1:return s.sent(),[3,4];case 2:return i!==t.MutationOperationType.UPDATE?[3,4]:[4,O(e).queryContext({from:r,columns:c,columnsMap:l}).where(v.getColumnName(c.id),o).update(d)];case 3:s.sent(),s.label=4;case 4:return m=n===t.SQLClient.SQLite3?"last_insert_rowid() as id":"LAST_INSERT_ID() as id",[4,O.select(O.raw(m))];case 5:return p=f.apply(void 0,[s.sent(),1]),h=p[0],y=h.id,n===t.SQLClient.SQLite3&&a.push("rowid"),[4,O(e).select(a).queryContext({from:r,columns:c,columnsMap:l}).where(v.getColumnName(c.id),y)];case 6:return[2,s.sent()]}}))}))},E=function(e){var r=e.from,o=e.id,i=e.entity,u=e.data,d=e.customContext,c=e.operationType;return a(void 0,void 0,void 0,(function(){var e,a,l,f,m,p,y,b,M;return s(this,(function(s){switch(s.label){case 0:e=i.table,a=i.writeMiddleware,l=void 0===a?[]:a,f=i.selectFields,m=i.columns,p=i.columnsMap,s.label=1;case 1:return s.trys.push([1,9,,10]),[4,D({writeMiddleware:l,dbDataMap:v.toDatabaseFormat({data:u,table:e,columns:m,getDatabaseTimestamp:g,knex:O}),operationType:c,customContext:d})];case 2:return y=s.sent(),b=[],n!==t.SQLClient.SQLite3&&n!==t.SQLClient.MySQL?[3,4]:[4,I({from:r,id:o,operationType:c,entity:i,dbDataMap:y})];case 3:return b=s.sent(),[3,8];case 4:return c!==t.MutationOperationType.CREATE?[3,6]:[4,O(e).queryContext({from:r,columns:m,columnsMap:p}).insert(y).returning(f)];case 5:return b=s.sent(),[3,8];case 6:return[4,O(e).queryContext({from:r,columns:m,columnsMap:p}).where(v.getColumnName(m.id),o).update(y).returning(f)];case 7:b=s.sent(),s.label=8;case 8:return[2,b[0]||null];case 9:return M=s.sent(),h.default.error(M),[3,10];case 10:return[2]}}))}))},j=function(e){var t=e.entity,n=e.id;return a(void 0,void 0,void 0,(function(){var e,r,o;return s(this,(function(i){switch(i.label){case 0:e=t.table,r=t.columns,i.label=1;case 1:return i.trys.push([1,3,,4]),[4,O(e).where(v.getColumnName(r.id),n).del().returning(v.getColumnName(r.id))];case 2:return[2,{id:""+i.sent()[0],successful:!0}];case 3:return o=i.sent(),h.default.error(o),[2,{id:n,successful:!1}];case 4:return[2]}}))}))},L={Query:{user:function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u;return s(this,(function(a){switch(a.label){case 0:return t=_.Users,n=t.selectFields,r=void 0===n?[]:n,o=t.table,i=t.columns,u=t.columnsMap,[4,O(o).queryContext({from:"Query.user",columns:i,columnsMap:u}).select(r).where(v.getColumnName(i.id),e).limit(1).then((function(e){return e}))];case 1:return[2,a.sent()[0]||null]}}))}))},userWithEmail:function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u;return s(this,(function(a){switch(a.label){case 0:return t=_.Users,n=t.selectFields,r=void 0===n?[]:n,o=t.table,i=t.columns,u=t.columnsMap,[4,O(o).queryContext({from:"Query.userWithEmail",columns:i,columnsMap:u}).select(r).where(v.getColumnName(i.email),e).limit(1)];case 1:return[2,a.sent()[0]||null]}}))}))},annotations:function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u,a,d,c,l,f,m,p;return s(this,(function(s){switch(s.label){case 0:return t=e.ids,n=e.documentId,r=e.annotationIds,o=e.filters,i=void 0===o?{}:o,u=e.inReplyTo,a=e.pageNumbers,d=_.Annotations,c=d.selectFields,l=void 0===c?[]:c,f=d.table,m=d.columns,p=d.columnsMap,[4,O(f).queryContext({from:"Query.annotations",columns:m,columnsMap:p}).select(l).where((function(e){t&&e.whereIn(v.getColumnName(m.id),t),r&&e.whereIn(v.getColumnName(m.annotationId),r),n&&e.where(v.getColumnName(m.documentId),n),u&&e.where(v.getColumnName(m.inReplyTo),u),a&&e.whereIn(v.getColumnName(m.pageNumber),a),v.buildFilterQuery(e,i,m,g)})).modify((function(e){v.buildModifyQuery(e,i,m)}))];case 1:return[2,s.sent()]}}))}))},documents:function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u,a,d,c,l;return s(this,(function(s){switch(s.label){case 0:return t=e.ids,n=e.userId,r=e.filters,o=void 0===r?{}:r,i=_.Documents,u=i.selectFields,a=void 0===u?[]:u,d=i.table,c=i.columns,l=i.columnsMap,[4,O(d).queryContext({from:"Query.documents",columns:c,columnsMap:l}).select(a).where((function(e){t&&e.whereIn(v.getColumnName(c.id),t),n&&e.whereIn(v.getColumnName(c.id),(function(){this.select(v.getColumnName(_.DocumentMembers.columns.documentId)).from(_.DocumentMembers.table).where(v.getColumnName(_.DocumentMembers.columns.userId),n)})),v.buildFilterQuery(e,o,c,g)})).modify((function(e){v.buildModifyQuery(e,o,c)}))];case 1:return[2,s.sent()]}}))}))},annotationMembers:function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u,a,d,c,l,f;return s(this,(function(s){switch(s.label){case 0:return t=e.annotationId,n=e.ids,r=e.userId,o=e.filters,i=void 0===o?{}:o,u=_.AnnotationMembers,a=u.selectFields,d=void 0===a?[]:a,c=u.table,l=u.columns,f=u.columnsMap,[4,O(c).queryContext({from:"Query.annotationMembers",columns:l,columnsMap:f}).select(d).where((function(e){n&&e.whereIn(v.getColumnName(l.id),n),t&&e.where(v.getColumnName(l.annotationId),t),r&&e.where(v.getColumnName(l.userId),r),v.buildFilterQuery(e,i,l,g)})).modify((function(e){v.buildModifyQuery(e,i,l)}))];case 1:return[2,s.sent()]}}))}))},documentMembers:function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u,a,d,c,l,f;return s(this,(function(s){switch(s.label){case 0:return t=e.documentId,n=e.ids,r=e.userId,o=e.filters,i=void 0===o?{}:o,u=_.DocumentMembers,a=u.selectFields,d=void 0===a?[]:a,c=u.table,l=u.columns,f=u.columnsMap,[4,O(c).queryContext({from:"Query.documentMembers",columns:l,columnsMap:f}).select(d).where((function(e){n&&e.whereIn(v.getColumnName(l.id),n),t&&e.where(v.getColumnName(l.documentId),t),r&&e.where(v.getColumnName(l.userId),r),v.buildFilterQuery(e,i,l,g)})).modify((function(e){v.buildModifyQuery(e,i,l)}))];case 1:return[2,s.sent()]}}))}))},mentions:function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u,a,d,c,l,f,m;return s(this,(function(s){switch(s.label){case 0:return t=e.annotationId,n=e.userId,r=e.documentId,o=e.ids,i=e.filters,u=void 0===i?{}:i,a=_.Mentions,d=a.selectFields,c=void 0===d?[]:d,l=a.table,f=a.columns,m=a.columnsMap,[4,O(l).queryContext({from:"Query.mentions",columns:f,columnsMap:m}).select(c).where((function(e){o&&e.whereIn(v.getColumnName(f.id),o),r&&e.where(v.getColumnName(f.documentId),r),t&&e.where(v.getColumnName(f.annotationId),t),n&&e.where(v.getColumnName(f.userId),n),v.buildFilterQuery(e,u,f,g)})).modify((function(e){v.buildModifyQuery(e,u,f)}))];case 1:return[2,s.sent()]}}))}))},annotationCount:function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u,a;return s(this,(function(s){switch(s.label){case 0:return t=e.since,n=e.documentId,r=_.Annotations,o=r.table,i=r.columns,u=r.columnsMap,[4,O(o).queryContext({from:"Query.annotationCount",columns:i,columnsMap:u,isCountQuery:!0}).count({count:[v.getColumnName(i.id)]}).where(v.getColumnName(i.documentId),n).where(v.getColumnName(i.createdAt),">",g(t))];case 1:return a=s.sent(),[2,Number(a[0].count||0)]}}))}))},annotationMemberCount:function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u,a,d;return s(this,(function(s){switch(s.label){case 0:return t=e.userId,n=e.documentId,r=e.since,o=_.AnnotationMembers,i=o.table,u=o.columns,a=o.columnsMap,[4,O(i).queryContext({from:"Query.annotationMemberCount",columns:u,columnsMap:a,isCountQuery:!0}).count({count:[v.getColumnName(u.id)]}).where(v.getColumnName(u.documentId),n).where(v.getColumnName(u.userId),t).where(v.getColumnName(u.createdAt),">",g(r))];case 1:return d=s.sent(),[2,Number(d[0].count||0)]}}))}))}},Mutation:{addUser:function(e,n){return a(void 0,void 0,void 0,(function(){return s(this,(function(r){return[2,E({from:"Mutation.addUser",entity:_.Users,data:e,customContext:n,operationType:t.MutationOperationType.CREATE})]}))}))},addAnnotation:function(e,n){return a(void 0,void 0,void 0,(function(){return s(this,(function(r){return[2,E({from:"Mutation.addAnnotation",entity:_.Annotations,data:e,customContext:n,operationType:t.MutationOperationType.CREATE})]}))}))},editAnnotation:function(e,n,r){return a(void 0,void 0,void 0,(function(){var o,i,u,a;return s(this,(function(s){return o=n.xfdf,i=n.pageNumber,u=n.updatedAt,a=n.annotContents,[2,E({from:"Mutation.editAnnotation",customContext:r,entity:_.Annotations,id:e,data:{xfdf:o,pageNumber:i,updatedAt:u,annotContents:a},operationType:t.MutationOperationType.UPDATE})]}))}))},deleteAnnotation:function(e,t){return a(void 0,void 0,void 0,(function(){return s(this,(function(n){switch(n.label){case 0:return[4,j({from:"Mutation.deleteAnnotation",entity:_.Annotations,id:e,customContext:t})];case 1:return[2,n.sent()]}}))}))},addDocument:function(e,n){return a(void 0,void 0,void 0,(function(){return s(this,(function(r){return[2,E({from:"Mutation.addDocument",entity:_.Documents,data:e,customContext:n,operationType:t.MutationOperationType.CREATE})]}))}))},editDocument:function(e,n,r){return a(void 0,void 0,void 0,(function(){var o,i,u;return s(this,(function(a){return o=n.name,i=n.isPublic,u=n.updatedAt,[2,E({from:"Mutation.editDocument",entity:_.Documents,id:e,data:{name:o,isPublic:i,updatedAt:u},customContext:r,operationType:t.MutationOperationType.UPDATE})]}))}))},deleteDocument:function(e,t){return a(void 0,void 0,void 0,(function(){return s(this,(function(n){return[2,j({from:"Mutation.deleteDocument",entity:_.Documents,id:e,customContext:t})]}))}))},addDocumentMember:function(e,n){return a(void 0,void 0,void 0,(function(){return s(this,(function(r){return[2,E({from:"Mutation.addDocumentMember",entity:_.DocumentMembers,data:e,customContext:n,operationType:t.MutationOperationType.CREATE})]}))}))},editDocumentMember:function(e,n,r){return a(void 0,void 0,void 0,(function(){var o,i;return s(this,(function(u){return o=n.lastRead,i=n.updatedAt,[2,E({from:"Mutation.editDocumentMember",entity:_.DocumentMembers,id:e,data:{lastRead:o,updatedAt:i},customContext:r,operationType:t.MutationOperationType.UPDATE})]}))}))},deleteDocumentMember:function(e,t){return a(void 0,void 0,void 0,(function(){return s(this,(function(n){return[2,j({from:"Mutation.deleteDocumentMember",entity:_.DocumentMembers,id:e,customContext:t})]}))}))},addAnnotationMember:function(e,n){return a(void 0,void 0,void 0,(function(){return s(this,(function(r){return[2,E({from:"Mutation.addAnnotationMember",entity:_.AnnotationMembers,data:e,customContext:n,operationType:t.MutationOperationType.CREATE})]}))}))},editAnnotationMember:function(e,n,r){return a(void 0,void 0,void 0,(function(){var o,i;return s(this,(function(u){return o=n.lastRead,i=n.updatedAt,[2,E({from:"Mutation.editAnnotationMember",entity:_.AnnotationMembers,id:e,data:{lastRead:o,updatedAt:i},customContext:r,operationType:t.MutationOperationType.UPDATE})]}))}))},deleteAnnotationMember:function(e,t){return a(void 0,void 0,void 0,(function(){return s(this,(function(n){return[2,j({from:"Mutation.deleteAnnotationMember",entity:_.AnnotationMembers,id:e,customContext:t})]}))}))},addMention:function(e,n){return a(void 0,void 0,void 0,(function(){return s(this,(function(r){return[2,E({from:"Mutation.addMention",entity:_.Mentions,data:e,customContext:n,operationType:t.MutationOperationType.CREATE})]}))}))},deleteMention:function(e,t){return a(void 0,void 0,void 0,(function(){return s(this,(function(n){return[2,j({from:"Mutation.deleteMention",entity:_.Mentions,id:e,customContext:t})]}))}))}}};return _.Snapshots&&(L.Query.snapshots=function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u,a,d,c,l;return s(this,(function(s){switch(s.label){case 0:return t=e.ids,n=e.documentId,r=e.filters,o=void 0===r?{}:r,i=_.Snapshots,u=i.selectFields,a=void 0===u?[]:u,d=i.table,c=i.columns,l=i.columnsMap,[4,O(d).queryContext({from:"Query.snapshots",columns:c,columnsMap:l}).select(a).where((function(e){t&&e.whereIn(v.getColumnName(c.id),t),n&&e.where(v.getColumnName(c.documentId),n),v.buildFilterQuery(e,o,c,g)})).modify((function(e){v.buildModifyQuery(e,o,c)}))];case 1:return[2,s.sent()]}}))}))},L.Mutation.addSnapshot=function(e,n){return a(void 0,void 0,void 0,(function(){return s(this,(function(r){return[2,E({from:"Mutation.addSnapshot",entity:_.Snapshots,data:e,customContext:n,operationType:t.MutationOperationType.CREATE})]}))}))},L.Mutation.editSnapshot=function(e,n,r){return a(void 0,void 0,void 0,(function(){var o,i;return s(this,(function(u){return o=n.name,i=n.updatedAt,[2,E({from:"Mutation.editSnapshot",customContext:r,entity:_.Snapshots,id:e,data:{name:o,updatedAt:i},operationType:t.MutationOperationType.UPDATE})]}))}))},L.Mutation.deleteSnapshot=function(e,t){return a(void 0,void 0,void 0,(function(){return s(this,(function(n){switch(n.label){case 0:return[4,j({from:"Mutation.deleteSnapshot",entity:_.Snapshots,id:e,customContext:t})];case 1:return[2,n.sent()]}}))}))}),_.SnapshotAssets&&(L.Query.snapshotAssets=function(e){return a(void 0,void 0,void 0,(function(){var t,n,r,o,i,u,a,d;return s(this,(function(s){switch(s.label){case 0:return t=e.ids,n=e.snapshotId,r=_.SnapshotAssets,o=r.selectFields,i=void 0===o?[]:o,u=r.table,a=r.columns,d=r.columnsMap,[4,O(u).queryContext({from:"Query.snapshotAssets",columns:a,columnsMap:d}).select(i).where((function(e){t&&e.whereIn(v.getColumnName(a.id),t),n&&e.where(v.getColumnName(a.snapshotId),n)}))];case 1:return[2,s.sent()]}}))}))},L.Mutation.addSnapshotAsset=function(e,n){return a(void 0,void 0,void 0,(function(){return s(this,(function(r){return[2,E({from:"Mutation.addSnapshotAsset",entity:_.SnapshotAssets,data:e,customContext:n,operationType:t.MutationOperationType.CREATE})]}))}))},L.Mutation.editSnapshotAsset=function(e,n,r){return a(void 0,void 0,void 0,(function(){var o,i;return s(this,(function(u){return o=n.snapshotId,i=n.updatedAt,[2,E({from:"Mutation.editSnapshotAsset",customContext:r,entity:_.SnapshotAssets,id:e,data:{snapshotId:o,updatedAt:i},operationType:t.MutationOperationType.UPDATE})]}))}))},L.Mutation.deleteSnapshotAsset=function(e,t){return a(void 0,void 0,void 0,(function(){return s(this,(function(n){switch(n.label){case 0:return[4,j({from:"Mutation.deleteSnapshotAsset",entity:_.SnapshotAssets,id:e,customContext:t})];case 1:return[2,n.sent()]}}))}))}),L}},function(e,t){e.exports=require("knex")},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.attachAdditionalInfo=t.transformToApolloFormat=t.keysToCamel=t.toUnixTimestamp=t.testTimeTransformFunctions=t.defaultGetDatabaseTimestamp=t.defaultParseToUnixTimestamp=t.toDatabaseFormat=t.buildModifyQuery=t.getColumnName=t.buildFilterQuery=void 0;var i=n(5),u=o(n(0));t.buildFilterQuery=function(e,n,r,o){n.createdBefore&&e.where(t.getColumnName(r.createdAt),"<",o(n.createdBefore)),n.createdAfter&&e.where(t.getColumnName(r.createdAt),">",o(n.createdAfter)),n.updatedBefore&&e.where(t.getColumnName(r.updatedAt),"<",o(n.updatedBefore)),n.updatedAfter&&e.where(t.getColumnName(r.updatedAt),">",o(n.updatedAfter))};t.getColumnName=function(e){return"string"==typeof e?e:e.name};t.buildModifyQuery=function(e,n,r){var o=n.limit,i=n.orderBy,u=n.orderDirection,a=void 0===u?"DESC":u;i&&e.orderBy(t.getColumnName(r[i]),a),o&&e.limit(o)};t.toDatabaseFormat=function(e){var n=e.data,r=e.table,o=e.columns,a=e.getDatabaseTimestamp,s=e.knex,d={};for(var c in n)void 0===o[c]?u.default.warn("SQL Resolver Generator - Received unexpected data { '"+c+"': '"+n[c]+"' } when formatting data for the \""+r+'" table. This data will be ignored.\n\nReceived data:\n\n'+JSON.stringify(n,null,2)):i.TimestampProperties.includes(c)?i.NowTimestampProperties.includes(c)?d[t.getColumnName(o[c])]=s.raw(n[c]):d[t.getColumnName(o[c])]=a(n[c]):d[t.getColumnName(o[c])]=n[c];return d};t.defaultParseToUnixTimestamp=function(e){return new Date(e).getTime()};t.defaultGetDatabaseTimestamp=function(e){return new Date(e).toISOString()};t.testTimeTransformFunctions=function(e,t){var n=Date.now();if(e(t(n))!==n)throw new Error('Configuration error: "getDatabaseTimestamp" and "parseToUnixTimestamp" functions are not compatible. The result of "parseUnixFunc" must be equal to the input of "getDatabaseTimestampFunc". For example, the following must be true: parseUnixFunc(getDatabaseTimestamp('+n+")) === "+n)};t.toUnixTimestamp=function(e,t){return Object.keys(e).forEach((function(n){i.TimestampProperties.includes(n)&&(e[n]=t(e[n]))})),e};t.keysToCamel=function(e,t,n){var r={};return Object.keys(e).forEach((function(o){if(n[o]){var i=n[o],u="string"!=typeof t[i]&&!!t[i].transform;r[i]=u?t[i].transform(e[o]):e[o]}})),r};t.transformToApolloFormat=function(e){var n=e.result,r=e.columns,o=e.columnsMap,i=e.parseToUnixTimestamp,u=[];return n.forEach((function(e){var n=t.keysToCamel(e,r,o),a=t.toUnixTimestamp(n,i);u.push(a)})),u};t.attachAdditionalInfo=function(e){var n={Users:r(r({},e.Users),{columnsMap:{},selectFields:[]}),Annotations:r(r({},e.Annotations),{columnsMap:{},selectFields:[]}),Documents:r(r({},e.Documents),{columnsMap:{},selectFields:[]}),AnnotationMembers:r(r({},e.AnnotationMembers),{columnsMap:{},selectFields:[]}),DocumentMembers:r(r({},e.DocumentMembers),{columnsMap:{},selectFields:[]}),Mentions:r(r({},e.Mentions),{columnsMap:{},selectFields:[]}),Snapshots:r(r({},e.Snapshots),{columnsMap:{},selectFields:[]}),SnapshotAssets:r(r({},e.SnapshotAssets),{columnsMap:{},selectFields:[]})};for(var o in e){var i={},u=e[o].columns;for(var a in u){var s=t.getColumnName(u[a]);n[o].selectFields.push(s),i[s]=a}n[o].columnsMap=i}return n}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NowTimestampProperties=t.TimestampProperties=void 0,t.TimestampProperties=["createdAt","updatedAt","lastRead","annotationCreatedAt"],t.NowTimestampProperties=["createdAt","updatedAt","lastRead"]},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.addTransports=t.addConsoleTransport=void 0;var u=i(n(1)),a=n(0);t.addConsoleTransport=function(e,t,n){void 0===t&&(t=a.LogLevels.INFO),e.add(new u.default.transports.Console({level:t,format:u.format.combine(u.format((function(e){return(!n||e.tag===n)&&e}))(),u.format.colorize(),u.format.printf((function(e){var t=s(e.message),n=e.tag?" ["+e.tag+"]":"",r=s(e.meta);return e.timestamp+" "+e.level+n+": "+t+" "+r})),u.format.metadata({fillExcept:["message","level","timestamp","label"]}))}))};t.addTransports=function(e,t){t.forEach((function(t){return e.add(t)}))};var s=function(e){var t=e||"";return"object"==typeof e&&null!==e&&(t=JSON.stringify(e,null,2)),t}},function(e,t,n){"use strict";var r=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),u=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)u.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return u},o=this&&this.__spreadArray||function(e,t){for(var n=0,r=t.length,o=e.length;n<r;n++,o++)e[o]=t[n];return e},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchema=void 0;var u=i(n(8)),a=u.default.alternatives().try(u.default.object({name:u.default.string().required(),transform:u.default.function()}),u.default.string()).required();t.validateSchema=function(e,t,n){var i,s,d;return u.default.object({client:(i=u.default.string()).valid.apply(i,o([],r(Object.values(n)))).required(),connection:u.default.object().required(),pool:{min:u.default.number(),max:u.default.number()},getDatabaseTimestamp:u.default.func(),parseToUnixTimestamp:u.default.func(),getNow:u.default.func(),logLevel:(s=u.default.string()).valid.apply(s,o([],r(Object.values(e)))),filterLogsByTag:(d=u.default.string()).valid.apply(d,o([],r(Object.values(t)))),transports:u.default.array(),info:u.default.object({Users:u.default.object({table:u.default.string().required(),writeMiddleware:u.default.array().items(u.default.function()),columns:u.default.object({id:a.required(),type:a.required(),email:a.required(),userName:a,createdAt:a.required(),updatedAt:a.required()}).required()}).required(),Annotations:u.default.object({table:u.default.string().required(),writeMiddleware:u.default.array().items(u.default.function()),columns:u.default.object({id:a.required(),xfdf:a.required(),authorId:a.required(),annotationId:a.required(),documentId:a.required(),pageNumber:a.required(),createdAt:a.required(),updatedAt:a.required(),inReplyTo:a.required(),annotContents:a}).required()}).required(),Documents:u.default.object({table:u.default.string().required(),writeMiddleware:u.default.array().items(u.default.function()),columns:u.default.object({id:a.required(),authorId:a.required(),createdAt:a.required(),updatedAt:a.required(),isPublic:a.required(),name:a}).required()}).required(),AnnotationMembers:u.default.object({table:u.default.string().required(),writeMiddleware:u.default.array().items(u.default.function()),columns:u.default.object({id:a.required(),userId:a.required(),documentId:a.required(),annotationId:a.required(),lastRead:a.required(),createdAt:a.required(),updatedAt:a.required(),annotationCreatedAt:a.required()}).required()}),DocumentMembers:u.default.object({table:u.default.string().required(),writeMiddleware:u.default.array().items(u.default.function()),columns:u.default.object({id:a.required(),userId:a.required(),documentId:a.required(),lastRead:a.required(),createdAt:a.required(),updatedAt:a.required()}).required()}).required(),Mentions:u.default.object({table:u.default.string().required(),writeMiddleware:u.default.array().items(u.default.function()),columns:u.default.object({id:a.required(),userId:a.required(),documentId:a.required(),annotationId:a.required(),createdAt:a.required(),updatedAt:a.required()}).required()}).required(),Snapshots:u.default.object({table:u.default.string().required(),writeMiddleware:u.default.array().items(u.default.function()),columns:u.default.object({id:a.required(),authorId:a.required(),documentId:a.required(),xfdf:a.required(),name:a.required(),createdAt:a.required(),updatedAt:a.required()}).required()}),SnapshotAssets:u.default.object({table:u.default.string().required(),writeMiddleware:u.default.array().items(u.default.function()),columns:u.default.object({id:a.required(),snapshotId:a.required(),data:a.required(),createdAt:a.required(),updatedAt:a.required()}).required()})}).required()})}},function(e,t){e.exports=require("joi")}]).default}));

@@ -6,3 +6,4 @@ {

"types": "types/packages/collab-sql-resolver-generator/src/index.d.ts",
"version": "2.0.0-alpha.14",
"version": "2.0.0-alpha.15",
"typedocMain": "src/index.ts",
"scripts": {

@@ -36,3 +37,3 @@ "test-dev": "jest --watch",

},
"gitHead": "af38da5cc29f13482a6d5abc16219bd8c98cc479"
"gitHead": "9b8b2196beb14f2bac04260b4451dc0f2d5fc93a"
}
import { NewAnnotationInput } from "./../../../../../../types/global-graphql-types";
export interface AddAnnotation_addAnnotation_author {
__typename: "User";
id: string;
}
export interface AddAnnotation_addAnnotation_membership {
__typename: "AnnotationMember";
id: string;
lastRead: any;
}
export interface AddAnnotation_addAnnotation {

@@ -6,2 +15,9 @@ __typename: "Annotation";

xfdf: string;
pageNumber: number;
annotationId: string;
createdAt: any;
author: AddAnnotation_addAnnotation_author | null;
documentId: string;
membership: AddAnnotation_addAnnotation_membership | null;
inReplyTo: string | null;
}

@@ -8,0 +24,0 @@ export interface AddAnnotation {

/// <reference types="node" />
import { CustomContext } from './../resolvers';
import { MessageData, InviteEmailData, CollabServerEmailOptions, EmailFunction } from '..';
import { CustomContext } from "../types/CustomContext";
import { CollabServerEmailOptions, EmailFunction, InviteEmailData, MessageData } from "../types/Email";
export declare class EmailManager {

@@ -5,0 +5,0 @@ disabled: boolean;

@@ -1,3 +0,3 @@

import { Email, InviteEmailData, MessageEmailData, EmailFunction } from '..';
import type sgMail from '@sendgrid/mail';
import { Email, EmailFunction, InviteEmailData, MessageEmailData } from '../types/Email';
declare type AsyncOrSync<T> = Promise<T> | T;

@@ -4,0 +4,0 @@ declare type TemplateData = {

import { PubSub } from 'graphql-subscriptions';
import { ApolloDatabaseAnnotation } from './../resolvers';
import { User } from './User';

@@ -8,6 +7,5 @@ import { Mention } from './Mention';

import { AnnotationMember } from './AnnotationMember';
import { Context } from '../resolvers';
import { AuthMethod } from '../util/permission';
import { RequestedFields } from '../util/getRequestedFields';
import { EntityPermissions } from '../util/permission';
import { DatabaseAnnotation } from '../types/DatabaseTypes';
import { Context } from '../types/Context';
export declare type AnnotationPublishEventOptions = {

@@ -23,3 +21,3 @@ onlyFireForUserId?: string;

};
export declare class Annotation extends Base<ApolloDatabaseAnnotation, ApolloAnnotation, {
export declare class Annotation extends Base<DatabaseAnnotation, ApolloAnnotation, {
membership: AnnotationMember;

@@ -29,6 +27,5 @@ author: User | null;

}> {
constructor(annotation: ApolloDatabaseAnnotation, userId: string, from: string, context: Context, skipMembership?: boolean);
constructor(annotation: DatabaseAnnotation, userId: string, from: string, context: Context, skipMembership?: boolean);
getAnnotationForUser(userId: string, requestedFields: RequestedFields, skipMembership?: boolean): Annotation;
publishEvent(pubsub: PubSub, action: ChangeEventTypes, options?: AnnotationPublishEventOptions): Promise<void>;
static checkPermission(annotation: ApolloDatabaseAnnotation, authMethods: Array<AuthMethod> | AuthMethod, context: Context): Promise<boolean>;
addMember(user: {

@@ -40,3 +37,2 @@ id: string;

static buildFromId(id: string, userId: string, from: string, context: Context): Promise<Annotation>;
static addAnnotationCheckPermission(annotation: ApolloDatabaseAnnotation, permission: Omit<EntityPermissions, 'invite'>, context: Context): Promise<void>;
/**

@@ -43,0 +39,0 @@ * Creates a new annotation and saves it in the database

@@ -1,4 +0,5 @@

import { ApolloDatabaseAnnotationMember, Context } from '../resolvers';
import { AnnotationMember as ApolloAnnotationMember } from './../../../../types/resolvers-types';
import { Base } from './Base';
import { DatabaseAnnotationMember } from '../types/DatabaseTypes';
import { Context } from '../types/Context';
declare type AnnotationMemberRelatedIds = {

@@ -9,4 +10,4 @@ userId?: string;

};
export declare class AnnotationMember extends Base<ApolloDatabaseAnnotationMember, ApolloAnnotationMember, unknown> {
constructor(annotMember: ApolloDatabaseAnnotationMember, from: string, context: Context);
export declare class AnnotationMember extends Base<DatabaseAnnotationMember, ApolloAnnotationMember, unknown> {
constructor(annotMember: DatabaseAnnotationMember, from: string, context: Context);
static create(userId: string, documentId: string, annotationId: string, lastRead: number | string, annotationCreatedAt: number, from: string, context: Context): Promise<AnnotationMember>;

@@ -13,0 +14,0 @@ static buildFromId(ids: AnnotationMemberRelatedIds, from: string, context: Context): Promise<AnnotationMember>;

@@ -1,4 +0,4 @@

import { Context } from '../resolvers';
import { DeleteResult } from '../../../../types/resolvers-types';
import { Actions } from '../util/permission';
import { Context } from '../types/Context';
import { Timestamp } from '..';
declare type BaseEntity = {

@@ -9,3 +9,2 @@ createdAt: number | string;

};
declare type AuthFunction = (action: Actions, context: Context) => Promise<void>;
declare type BaseConstructor<DatabaseType, FetchTypes extends Record<string, any>> = {

@@ -17,6 +16,6 @@ entity: DatabaseType & {

getters: Getters<FetchTypes>;
update?: (updatedEntity: DatabaseType) => Promise<DatabaseType>;
update?: (id: string, updatedEntity: PartialWithUpdatedAt<DatabaseType>) => Promise<DatabaseType>;
remove?: (id: string) => Promise<DeleteResult>;
authorize?: AuthFunction;
name: string;
isLeaf?: boolean;
from: string;

@@ -26,2 +25,5 @@ outputFormatter?: (entity: DatabaseType, context: Context) => DatabaseType;

declare type Getters<FetchTypes extends Record<string, any>> = Record<keyof FetchTypes, () => Promise<FetchTypes[keyof FetchTypes]>>;
declare type PartialWithUpdatedAt<T> = Partial<T> & {
updatedAt: Timestamp;
};
export declare class Base<DatabaseType extends BaseEntity, GraphQLType extends BaseEntity, FetchTypes extends Record<string, any> = Record<string, unknown>> {

@@ -36,3 +38,2 @@ private data;

private outputFormatter?;
authFunc: AuthFunction | (() => void);
from: string;

@@ -42,12 +43,12 @@ context: Context;

name: string;
constructor({ entity, context, getters, update, remove, name, from, authorize, outputFormatter }: BaseConstructor<DatabaseType, FetchTypes>);
isLeaf: boolean;
constructor({ entity, context, getters, update, remove, name, from, outputFormatter, isLeaf }: BaseConstructor<DatabaseType, FetchTypes>);
getFromCache<T extends keyof FetchTypes>(key: T): FetchTypes[T] | null;
getEntity(): DatabaseType;
getAuthFunction(): AuthFunction | (() => void);
get<T extends keyof DatabaseType>(key: T): Promise<DatabaseType[T]>;
set(key: keyof DatabaseType, value: DatabaseType[keyof DatabaseType]): Promise<void>;
delete(useAuth?: boolean): Promise<DeleteResult>;
delete(): Promise<DeleteResult>;
setMultiple(obj: Partial<Record<keyof DatabaseType, DatabaseType[keyof DatabaseType]>>): Promise<void>;
setCalculated(key: keyof FetchTypes, value: FetchTypes[keyof FetchTypes]): void;
save(useAuth?: boolean): Promise<DatabaseType>;
save(): Promise<PartialWithUpdatedAt<DatabaseType>>;
/**

@@ -59,5 +60,5 @@ * Returns the whole object including all fetched properties

}): Promise<DatabaseType & FetchTypes>;
resolveAsEntity(useAuth?: boolean): Promise<GraphQLType>;
resolveAsEntity(): Promise<GraphQLType>;
getCalculated<T extends keyof FetchTypes>(key: T): Promise<FetchTypes[T]>;
}
export {};
import { PubSub } from 'graphql-subscriptions';
import { ApolloDatabaseDocument, ApolloDatabaseDocumentMember, ApolloDatabaseUser } from './../resolvers';
import { Document as ApolloDocument, InvitedUserInput, NewDocumentInput, NewAnnotationInput, ChangeEventTypes, DocumentSubscriptionEvent } from './../../../../types/resolvers-types';
import { Base } from './Base';
import { Annotation } from './Annotation';
import { Context } from '../resolvers';
import { DocumentMember } from './DocumentMember';
import { Actions, AuthMethod } from '../util/permission';
import { RequestedFields } from '../util/getRequestedFields';
import { DatabaseDocument, DatabaseDocumentMember, DatabaseUser } from '../types/DatabaseTypes';
import { Context } from '../types/Context';
import { User } from './User';
export declare type DocumentPublishEventOptions = {

@@ -17,13 +17,20 @@ markedAllAsRead?: boolean;

};
export declare class Document extends Base<ApolloDatabaseDocument, ApolloDocument, {
export declare class Document extends Base<DatabaseDocument, ApolloDocument, {
members: DocumentMember[];
annotations: Annotation[];
unreadCount: number;
author: User;
}> {
constructor(document: ApolloDatabaseDocument, userId: string, from: string, context: Context);
constructor(document: DatabaseDocument, userId: string, from: string, context: Context);
publishEvent(pubsub: PubSub, action: ChangeEventTypes, options?: DocumentPublishEventOptions): Promise<void>;
getResolvedMembers(): Promise<(ApolloDatabaseDocumentMember & {
user: ApolloDatabaseUser;
getResolvedMembers(): Promise<(DatabaseDocumentMember & {
user: DatabaseUser;
})[]>;
getUserMembership(userId: any): Promise<Omit<import("./../resolvers").ApolloDocumentMember, "__typename" | "user"> & {
getUserMembership(userId: any): Promise<{
id: string;
createdAt: any;
updatedAt: any;
documentId: string;
lastRead: any;
} & {
userId: string;

@@ -34,3 +41,2 @@ } & {

getDocumentForUser(userId: any, requestedFields: RequestedFields): Promise<Document>;
static checkPermission(document: ApolloDatabaseDocument, authMethods: Array<AuthMethod> | AuthMethod, action: Actions, context: Context): Promise<boolean>;
addUsers(usersInvited: InvitedUserInput[], currentUserId?: string): Promise<{

@@ -37,0 +43,0 @@ isSelfInvite: boolean;

@@ -1,10 +0,10 @@

import { ApolloDatabaseDocumentMember } from './../resolvers';
import { User } from './User';
import { Context } from '../resolvers';
import { DocumentMember as ApolloDocumentMember } from './../../../../types/resolvers-types';
import { Base } from './Base';
export declare class DocumentMember extends Base<ApolloDatabaseDocumentMember, ApolloDocumentMember, {
import { DatabaseDocumentMember } from '../types/DatabaseTypes';
import { Context } from '../types/Context';
export declare class DocumentMember extends Base<DatabaseDocumentMember, ApolloDocumentMember, {
user: User;
}> {
constructor(docMember: ApolloDatabaseDocumentMember, from: string, context: Context);
constructor(docMember: DatabaseDocumentMember, from: string, context: Context);
static create(userId: string, documentId: string, lastRead: number | string, from: string, context: Context): Promise<DocumentMember>;

@@ -11,0 +11,0 @@ static buildFromId(ids: {

import { PubSub } from 'graphql-subscriptions';
import { ApolloDatabaseMention } from './../resolvers';
import { User } from './User';
import { Context } from '../resolvers';
import { Mention as ApolloMention, NewMentionInput } from './../../../../types/resolvers-types';
import { Base } from './Base';
export declare class Mention extends Base<ApolloDatabaseMention, ApolloMention, {
import { DatabaseMention } from '../types/DatabaseTypes';
import { Context } from '../types/Context';
export declare class Mention extends Base<DatabaseMention, ApolloMention, {
mentionedUser: User;
}> {
constructor(mention: ApolloDatabaseMention, from: string, context: Context);
constructor(mention: DatabaseMention, from: string, context: Context);
publishEvent(pubsub: PubSub, action: 'ADD' | 'DELETE'): Promise<void>;

@@ -12,0 +12,0 @@ static buildFromId(annotationId: string, userId: string, from: string, context: Context): Promise<Mention>;

@@ -1,11 +0,11 @@

import { ApolloDatabaseUser } from './../resolvers';
import { Document } from './Document';
import { Context } from '../resolvers';
import { NewUserInput, User as ApolloUser } from './../../../../types/resolvers-types';
import { Base } from './Base';
export declare class User extends Base<ApolloDatabaseUser, ApolloUser, {
import { DatabaseUser } from '../types/DatabaseTypes';
import { Context } from '../types/Context';
export declare class User extends Base<DatabaseUser, ApolloUser, {
documents: Document[];
}> {
constructor(user: ApolloDatabaseUser, from: string, context: Context);
removeDocument(docId: string): Promise<import("./../resolvers").DeleteResult>;
constructor(user: DatabaseUser, from: string, context: Context, isLeaf?: boolean);
removeDocument(docId: string): Promise<import("./../../../../types/resolvers-types").DeleteResult>;
static buildFromId(id: string, from: string, context: Context): Promise<User>;

@@ -12,0 +12,0 @@ static buildFromEmail(email: string, from: string, context: Context): Promise<User>;

/// <reference types="node" />
import { Response } from 'express';
import { PubSub } from 'graphql-subscriptions';
import { TimestampGetter } from './util/TimestampManager';
import ConnectedUserMap from './util/ConnectedUserMap';
import { UserResolvers, CustomContext } from './resolvers';
import { Logging, Tags } from '../../../shared/log/logger';
import { EmailManager } from './email/EmailManager';
import ContextCache from './cache/ContextCache';
import { PermissionSetting, UserPermissionSetting } from './util/permission';
import RequestStats from './util/RequestStats';
import { RequestedFields } from './util/getRequestedFields';
import type { Server as HttpServer } from 'http';
import type { CorsOptions } from 'apollo-server-express';
import type winston from 'winston';
import type { CookieOptions } from 'express';
import { InvitedUserInput, XfdfTypes } from '../../../types/resolvers-types';
export declare type UserAuth = {
id: string;
userName?: string;
};
/**
* @ignore
*/
export declare type Context = {
res: Response;
user: UserAuth;
permissionSetting: PermissionSetting;
verifyPassword: VerifyPassword;
getUserFromToken: GetUserFromToken;
cookieOptions: CookieOptions;
cache: ContextCache;
resolvers: UserResolvers;
stats: RequestStats;
token?: string;
connectedUsers: ConnectedUserMap;
pubsub: PubSub;
emailOptions: CollabServerEmailOptions;
emailManager: EmailManager;
requestedFields: RequestedFields;
subscriptionFields: Record<string, RequestedFields>;
customContext: CustomContext;
xfdfFormat?: XfdfTypes;
cookies: Record<any, any>;
};
/**
* A function that validates a users email and password.
*
* For more information on context, see {@link https://collaboration.pdftron.com/docs/server/context|this guide}
*/
export declare type VerifyPassword = (email: string, password: string, context: CustomContext) => Promise<boolean> | boolean;
/**
* A function that authenticates a user from a token.
*
* For more information on context, see {@link https://collaboration.pdftron.com/docs/server/context|this guide}
*/
export declare type GetUserFromToken = (token: string, context: CustomContext, cookies: Record<any, any>) => Promise<UserAuth> | UserAuth;
/**
* @ignore
*/
export declare enum Email {
Message = "message",
Invite = "invite"
}
export declare type InviteEmailData = {
documentName: string;
documentId: string;
usersInvited: InvitedUserInput[];
sentBy: string;
sendTo: string[];
context: CustomContext;
};
export declare type MessageData = {
annotationId: string;
messageText: string;
documentName: string;
documentId: string;
sentBy: string;
sendTo: string[];
context: CustomContext;
};
import { UserResolvers } from './types/UserResolvers';
import { CollabServerOptions } from './types/Server';
export declare enum XFDFFormats {

@@ -86,35 +9,2 @@ RAW = "RAW",

}
export declare type MessageEmailData = {
messages: Omit<MessageData, 'sendTo'>[];
sendTo: string;
};
export declare type EmailFunction = (type: Email, data: InviteEmailData | MessageEmailData, context: CustomContext) => Promise<void>;
export declare type CollabServerEmailOptions = {
emailHandler?: EmailFunction;
emailQueueTimer?: number;
emailOnAnnotationCreated?: boolean;
};
export interface ResolverObj {
[key: string]: {
[key: string]: (parent: any, args: any, context: any, info: any) => Promise<any>;
};
}
export declare type CollabServerCustomQueriesOptions = {
additionalTypeDefs: string;
additionalResolvers: ResolverObj;
};
export declare type CollabServerOptions = {
resolvers: UserResolvers;
corsOption?: CorsOptions;
logLevel?: Logging;
filterLogsByTag?: Tags;
logTransports?: Array<winston.transport>;
customQueries?: CollabServerCustomQueriesOptions;
emailOptions?: CollabServerEmailOptions;
verifyPassword?: VerifyPassword;
getUserFromToken?: GetUserFromToken;
cookieOptions?: CookieOptions;
permissions?: UserPermissionSetting;
getNow?: TimestampGetter;
};
declare class CollabServer {

@@ -141,7 +31,10 @@ private server;

readonly QUERY: "QUERY";
readonly MUTATION: "MUTATION";
readonly RESPONSE: "RESPONSE";
readonly AUTH: "AUTH";
readonly CACHE: "CACHE";
readonly CONNECTED_USERS: "CONNECTED_USERS";
readonly SCROLL_SYNC: "SCROLL_SYNC";
};
static sendGridEmailHandler: (emailServiceOptions: import("./email/sendGridEmailHandler").EmailServiceOptions) => EmailFunction;
static sendGridEmailHandler: (emailServiceOptions: import(".").EmailServiceOptions) => import("./types/Email").EmailFunction;
static Permissions: {

@@ -152,2 +45,3 @@ Roles: {

readonly ANNOTATION_AUTHOR: "annotation_author";
readonly SNAPSHOT_AUTHOR: "snapshot_author";
readonly ANY: "any";

@@ -161,2 +55,3 @@ };

readonly INVITE: "invite";
readonly RESTORE: "restore";
};

@@ -166,2 +61,3 @@ Entities: {

readonly ANNOTATION: "annotation";
readonly SNAPSHOT: "snapshot";
};

@@ -180,4 +76,4 @@ };

export * from './resolvers';
export { default as Permissions, PermissionSetting, UserPermissionSetting, setPermissions, Roles, Actions, EntityPermissions, AuthMethod, AuthorizeFunction } from './util/permission';
export { default as Permissions, PermissionSetting, UserPermissionSetting, setPermissions, Roles, Actions, EntityPermissions, AuthMethod, AuthorizeFunction } from './util/permissions';
export { default as sendGridEmailHandler, EmailServiceOptions } from './email/sendGridEmailHandler';
export { parseAnnotationIdFromXFDF } from './util/xfdf';

@@ -1,130 +0,60 @@

import { AddAnnotationVariables } from './../../collab-client/src/graphql/mutations/types/AddAnnotation';
import { EditDocumentVariables } from './../../collab-client/src/graphql/mutations/types/EditDocument';
import { Resolvers, Annotation as ApolloAnnotation, Document as ApolloDocument, DocumentMember as ApolloDocumentMember, AnnotationMember as ApolloAnnotationMember, User as ApolloUser, Mention as ApolloMention, DeleteResult, EditAnnotationInput, EditDocumentMemberInput, EditAnnotationMemberInput, EditMentionInput, NewUserInput, NewDocumentInput, NewDocumentMemberInput, NewAnnotationMemberInput, NewMentionInput } from "./../../../types/resolvers-types";
import { Resolvers } from "./../../../types/resolvers-types";
import Query from './resolvers/Query';
import Mutation from './resolvers/Mutation/Mutation';
export { Context, UserAuth } from './index';
export { Annotation as ApolloAnnotation, Document as ApolloDocument, DocumentMember as ApolloDocumentMember, AnnotationMember as ApolloAnnotationMember, User as ApolloUser, UserTypes, DeleteResult, EditAnnotationInput, EditDocumentMemberInput, EditAnnotationMemberInput, } from "./../../../types/resolvers-types";
import Joi from 'joi';
import { UserResolvers } from './types/UserResolvers';
import { Roles, Actions, Entities } from './util/permissions';
import { CustomContext } from './types/CustomContext';
export declare type Timestamp = 'NOW' | number;
declare type AsyncOrSync<T> = Promise<T> | T;
export declare type ApolloDatabaseUser = Omit<ApolloUser, 'documents' | '__typename'>;
export declare type ApolloDatabaseDocument = Omit<ApolloDocument, 'members' | 'annotations' | 'unreadCount' | '__typename'>;
export declare type ApolloDatabaseAnnotation = Omit<ApolloAnnotation, 'membership' | 'author' | 'mentions' | '__typename'> & {
authorId: string;
};
export declare type ApolloDatabaseAnnotationMember = Omit<ApolloAnnotationMember, '__typename' | 'user'> & {
userId: string;
annotationCreatedAt: number;
};
export declare type ApolloDatabaseDocumentMember = Omit<ApolloDocumentMember, '__typename' | 'user'> & {
userId: string;
};
export declare type ApolloDatabaseMention = Omit<ApolloMention, 'mentionedUser' | '__typename'> & {
userId: string;
};
export declare type EditAnnotationMemberUserInput = Omit<EditAnnotationMemberInput, 'lastRead'> & {
lastRead?: Timestamp;
};
export declare type EditDocumentMemberUserInput = Omit<EditDocumentMemberInput, 'lastRead'> & {
lastRead?: Timestamp;
};
export declare type AddUserInput = NewUserInput & {
id?: string;
};
export declare type AddDocumentMemberInput = NewDocumentMemberInput & {
id?: string;
};
export declare type AddAnnotationMemberInput = NewAnnotationMemberInput & {
id?: string;
lastRead: Timestamp;
annotationCreatedAt?: Timestamp;
};
export declare type AddMentionInput = NewMentionInput & {
id?: string;
};
export declare type AnnotationMemberCountQueryData = {
userId: string;
documentId: string;
since: number;
};
export declare type AnnotationCountQueryData = {
documentId: string;
since: number;
};
export declare type QueryParams = {
createdBefore?: number;
createdAfter?: number;
updatedBefore?: number;
updatedAfter?: number;
orderBy?: 'updatedAt' | 'createdAt';
orderDirection?: 'ASC' | 'DESC';
limit?: number;
};
export declare type AnnotationsQuery = {
ids?: string[];
annotationIds?: string[];
declare type ArrayElement<ArrayType> = ArrayType extends readonly (infer ElementType)[] ? ElementType : never;
declare type Awaited<T> = T extends PromiseLike<infer U> ? U : T;
declare type IDResponse = string[];
export declare type RequestedEntityIds = {
documentIds?: IDResponse;
annotationIds?: IDResponse;
snapshotIds?: IDResponse;
documentId?: string;
pageNumbers?: number[];
inReplyTo?: string;
filters?: QueryParams;
};
export declare type DocumentsQuery = {
ids?: string[];
userId?: string;
filters?: QueryParams;
};
export declare type AnnotationMembersQuery = {
ids?: string[];
annotationId?: string;
userId?: string;
filters?: QueryParams;
snapshotId?: string;
};
export declare type DocumentMembersQuery = {
documentId?: string;
userId?: string;
ids?: string[];
filters?: QueryParams;
declare type CheckPermissionParamsQuery<T extends keyof UserResolvers['Query']> = {
params: Parameters<UserResolvers['Query'][T]>;
role: Roles;
resolvers: UserResolvers;
context: CustomContext;
currentUserId: string;
entity: ArrayElement<Awaited<ReturnType<UserResolvers['Query'][T]>>>;
};
export declare type MentionsQuery = {
annotationId?: string;
userId?: string;
documentId?: string;
ids?: string[];
filters?: QueryParams;
declare type CheckPermissionParamsMutation<T extends keyof UserResolvers['Mutation']> = {
params: Parameters<UserResolvers['Mutation'][T]>;
role: Roles;
resolvers: UserResolvers;
context: CustomContext;
currentUserId: string;
};
declare type RequireID<T> = T & {
id: string;
export declare type ResolverMetadataObject = {
/**
* Set to true if the resolver is expected to return an array
*/
array?: boolean;
/**
* A function to validate the data returned from the resolver
*/
validator: (params: any) => Joi.Schema;
/**
* A function to check permissions for a resolver call
* You do not need to check for ALL, that will already be done.
* Return undefined if permissions are not applicable for the given role
*/
checkPermissions?: (...p: any[]) => Promise<boolean | null>;
permissionAction?: Actions;
permissionEntity?: Entities;
};
export declare type CustomContext = Record<string, any>;
declare type UserResolvers = {
Query: {
user: (id: string, context: CustomContext) => AsyncOrSync<RequireID<ApolloDatabaseUser>>;
userWithEmail: (email: string, context: CustomContext) => AsyncOrSync<RequireID<ApolloDatabaseUser>>;
annotations: (query: AnnotationsQuery, context: CustomContext) => AsyncOrSync<Array<RequireID<ApolloDatabaseAnnotation>>>;
documents: (query: DocumentsQuery, context: CustomContext) => AsyncOrSync<Array<RequireID<ApolloDatabaseDocument>>>;
annotationMembers: (query: AnnotationMembersQuery, context: CustomContext) => AsyncOrSync<Array<RequireID<ApolloDatabaseAnnotationMember>>>;
documentMembers: (query: DocumentMembersQuery, context: CustomContext) => AsyncOrSync<Array<RequireID<ApolloDatabaseDocumentMember>>>;
annotationCount: (query: AnnotationCountQueryData, context: CustomContext) => AsyncOrSync<number>;
annotationMemberCount: (query: AnnotationMemberCountQueryData, context: CustomContext) => AsyncOrSync<number>;
mentions: (query: MentionsQuery, context: CustomContext) => AsyncOrSync<Array<RequireID<ApolloDatabaseMention>>>;
};
Mutation: {
addUser: (user: AddUserInput, context: CustomContext) => AsyncOrSync<RequireID<ApolloDatabaseUser>>;
addAnnotation: (annotation: AddAnnotationVariables['input'], context: CustomContext) => AsyncOrSync<RequireID<ApolloDatabaseAnnotation>>;
editAnnotation: (id: string, input: EditAnnotationInput, context: CustomContext) => AsyncOrSync<RequireID<ApolloDatabaseAnnotation | null>>;
deleteAnnotation: (id: string, context: CustomContext) => AsyncOrSync<DeleteResult>;
addDocument: (document: NewDocumentInput, context: CustomContext) => AsyncOrSync<RequireID<ApolloDatabaseDocument>>;
editDocument: (id: string, input: EditDocumentVariables['input'], context: CustomContext) => AsyncOrSync<RequireID<ApolloDatabaseDocument | null>>;
deleteDocument: (id: string, context: CustomContext) => AsyncOrSync<DeleteResult>;
addDocumentMember: (documentMember: AddDocumentMemberInput, context: CustomContext) => AsyncOrSync<RequireID<ApolloDatabaseDocumentMember>>;
editDocumentMember: (id: string, input: EditDocumentMemberUserInput, context: CustomContext) => AsyncOrSync<RequireID<ApolloDatabaseDocumentMember | null>>;
deleteDocumentMember: (id: string, context: CustomContext) => AsyncOrSync<DeleteResult>;
addAnnotationMember: (annotationMember: AddAnnotationMemberInput, context: CustomContext) => AsyncOrSync<RequireID<ApolloDatabaseAnnotationMember>>;
editAnnotationMember: (id: string, input: EditAnnotationMemberUserInput, context: CustomContext) => AsyncOrSync<RequireID<ApolloDatabaseAnnotationMember | null>>;
deleteAnnotationMember: (id: string, context: CustomContext) => AsyncOrSync<DeleteResult>;
addMention: (mention: AddMentionInput, context: CustomContext) => AsyncOrSync<RequireID<ApolloDatabaseMention>>;
editMention: (id: string, input: EditMentionInput, context: CustomContext) => AsyncOrSync<RequireID<ApolloDatabaseMention | null>>;
deleteMention: (id: string, context: CustomContext) => AsyncOrSync<DeleteResult>;
};
declare type ResolverMetadata = {
Query: Record<keyof UserResolvers['Query'], ResolverMetadataObject>;
Mutation: Record<keyof UserResolvers['Mutation'], ResolverMetadataObject>;
};
export declare type CheckPermissionsFunctionQuery<T extends keyof UserResolvers['Query']> = (p: CheckPermissionParamsQuery<T>) => Promise<boolean>;
export declare type CheckPermissionsFunctionMutation<T extends keyof UserResolvers['Mutation']> = (p: CheckPermissionParamsMutation<T>) => Promise<boolean>;
export declare const resolverMetadata: ResolverMetadata;
export declare const SubscriptionTypes: {

@@ -136,2 +66,4 @@ ANNOTATION_CHANGED: string;

CONNECTED_DOC_USERS_CHANGED: string;
SNAPSHOT_CHANGED: string;
SCROLL_SYNC_SESSION_UPDATED: string;
};

@@ -144,2 +76,2 @@ /**

declare const makeResolvers: () => Resolvers;
export { makeResolvers, UserResolvers };
export { makeResolvers };

@@ -1,9 +0,9 @@

import { Context } from './../../index';
import { NewAnnotationInput } from '../../../../../types/resolvers-types';
import { Context } from '../../types/Context';
declare const _default: {
addAnnotation: (p: any, args: {
input: NewAnnotationInput;
}, context: Context) => Promise<import("./../../index").ApolloAnnotation>;
editAnnotation: (p: any, args: any, context: Context) => Promise<import("./../../index").ApolloAnnotation>;
deleteAnnotation: (p: any, args: any, context: Context) => Promise<import("./../../index").DeleteResult | {
}, context: Context) => Promise<import("../../../../../types/resolvers-types").Annotation>;
editAnnotation: (p: any, args: any, context: Context) => Promise<import("../../../../../types/resolvers-types").Annotation>;
deleteAnnotation: (p: any, args: any, context: Context) => Promise<import("../../../../../types/resolvers-types").DeleteResult | {
id: any;

@@ -10,0 +10,0 @@ successful: boolean;

@@ -1,6 +0,6 @@

import { Context } from '../..';
import { Context } from '../../types/Context';
declare const _default: {
addAnnotationMember: (p: any, args: any, context: Context) => Promise<import("../..").ApolloAnnotationMember>;
editAnnotationMember: (p: any, args: any, context: Context) => Promise<import("../..").ApolloAnnotationMember>;
updateAnnotationMemberLastRead: (p: any, args: any, context: Context) => Promise<import("../..").ApolloAnnotationMember | {
addAnnotationMember: (p: any, args: any, context: Context) => Promise<import("../../../../../types/resolvers-types").AnnotationMember>;
editAnnotationMember: (p: any, args: any, context: Context) => Promise<import("../../../../../types/resolvers-types").AnnotationMember>;
updateAnnotationMemberLastRead: (p: any, args: any, context: Context) => Promise<import("../../../../../types/resolvers-types").AnnotationMember | {
__typename: string;

@@ -10,4 +10,4 @@ message: string;

}>;
deleteAnnotationMember: (p: any, args: any, context: Context) => Promise<import("../..").DeleteResult>;
deleteAnnotationMember: (p: any, args: any, context: Context) => Promise<import("../../../../../types/resolvers-types").DeleteResult>;
};
export default _default;

@@ -1,2 +0,2 @@

import { Context } from '../../index';
import { Context } from '../../types/Context';
declare const _default: {

@@ -8,3 +8,6 @@ connectUserToDocument: (p: any, args: any, context: Context) => {

};
editConnectedDocUser: (p: any, args: any, context: Context) => import("../../util/ConnectedUserMap").UserConnection[];
editConnectedDocUser: (p: any, args: any, context: Context) => {
userId: any;
currentPage: number;
}[];
deleteConnectedDocUser: (p: any, args: any, context: Context) => {

@@ -11,0 +14,0 @@ successful: boolean;

@@ -1,2 +0,2 @@

import { Context } from '../..';
import { Context } from '../../types/Context';
declare const _default: {

@@ -3,0 +3,0 @@ encodeContext: (p: any, args: any, context: Context) => Promise<{

@@ -1,9 +0,9 @@

import { Context } from './../../index';
import { Context } from '../../types/Context';
declare const _default: {
inviteUsersToDocument: (_: any, args: any, context: Context) => Promise<import("./../../index").ApolloDocument>;
addDocument: (p: any, args: any, context: Context) => Promise<import("./../../index").ApolloDocument>;
editDocument: (p: any, args: any, context: Context) => Promise<import("./../../index").ApolloDocument>;
deleteDocument: (p: any, args: any, context: Context) => Promise<import("./../../index").DeleteResult>;
markAllAsRead: (p: any, args: any, context: Context) => Promise<import("./../../index").ApolloDocument>;
inviteUsersToDocument: (_: any, args: any, context: Context) => Promise<import("../../../../../types/resolvers-types").Document>;
addDocument: (p: any, args: any, context: Context) => Promise<import("../../../../../types/resolvers-types").Document>;
editDocument: (p: any, args: any, context: Context) => Promise<import("../../../../../types/resolvers-types").Document>;
deleteDocument: (p: any, args: any, context: Context) => Promise<import("../../../../../types/resolvers-types").DeleteResult>;
markAllAsRead: (p: any, args: any, context: Context) => Promise<import("../../../../../types/resolvers-types").Document>;
};
export default _default;

@@ -1,10 +0,10 @@

import { Context } from '../..';
import { Context } from '../../types/Context';
declare const _default: {
addDocumentMember: (p: any, args: any, context: Context) => Promise<import("../..").ApolloDocumentMember>;
editDocumentMember: (p: any, args: any, context: Context) => Promise<import("../..").ApolloDocumentMember | {
addDocumentMember: (p: any, args: any, context: Context) => Promise<import("../../../../../types/resolvers-types").DocumentMember>;
editDocumentMember: (p: any, args: any, context: Context) => Promise<import("../../../../../types/resolvers-types").DocumentMember | {
__typename: string;
message: string;
}>;
deleteDocumentMember: (p: any, args: any, context: Context) => Promise<import("../..").DeleteResult>;
deleteDocumentMember: (p: any, args: any, context: Context) => Promise<import("../../../../../types/resolvers-types").DeleteResult>;
};
export default _default;

@@ -1,7 +0,6 @@

import { Context } from '../..';
import { Context } from '../../types/Context';
declare const _default: {
addMention: (p: any, args: any, context: Context) => Promise<import("../../../../../types/resolvers-types").Mention>;
editMention: (p: any, args: any, context: Context) => Promise<import("../../../../../types/resolvers-types").Mention>;
deleteMention: (p: any, args: any, context: Context) => Promise<import("../..").DeleteResult>;
deleteMention: (p: any, args: any, context: Context) => Promise<import("../../../../../types/resolvers-types").DeleteResult>;
};
export default _default;
declare const Mutation: {
encodeContext: (p: any, args: any, context: import("../..").Context) => Promise<{
addSnapshotAsset: (p: any, args: {
input: import("../../../../../types/resolvers-types").NewSnapshotAssetInput;
}, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").SnapshotAsset>;
editSnapshotAsset: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").SnapshotAsset>;
deleteSnapshotAsset: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").DeleteResult | {
id: any;
successful: boolean;
message: string;
}>;
addSnapshot: (p: any, args: {
input: import("../../../../../types/resolvers-types").NewSnapshotInput;
}, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").Snapshot>;
editSnapshot: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").Snapshot>;
deleteSnapshot: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").DeleteResult>;
restoreSnapshot: (p: any, args: {
input: import("../../../../../types/resolvers-types").RestoreSnapshotInput;
}, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").RestoreSnapshotResult>;
encodeContext: (p: any, args: any, context: import("../../types/Context").Context) => Promise<{
token: string;
}>;
editScrollSync: (p: any, args: any, context: import("../..").Context) => {
position: any;
createScrollSyncSession: (p: any, args: any, context: import("../../types/Context").Context) => {
leaderId: string;
documentId: string;
connectedUsers: string[];
position: {
scrollTop: number;
scrollHeight: number;
};
sessionId: string;
};
deleteScrollSync: (p: any, args: any, context: import("../..").Context) => {
successful: boolean;
joinScrollSyncSession: (p: any, args: any, context: import("../../types/Context").Context) => true | {
leaderId: string;
documentId: string;
connectedUsers: string[];
position: {
scrollTop: number;
scrollHeight: number;
};
sessionId: string;
};
connectUserToDocument: (p: any, args: any, context: import("../..").Context) => {
updateScrollSyncSession: (p: any, args: any, context: import("../../types/Context").Context) => boolean;
exitScrollSyncSession: (p: any, args: any, context: import("../../types/Context").Context) => boolean;
connectUserToDocument: (p: any, args: any, context: import("../../types/Context").Context) => {
userId: any;

@@ -16,23 +49,25 @@ documentId: any;

};
editConnectedDocUser: (p: any, args: any, context: import("../..").Context) => import("../../util/ConnectedUserMap").UserConnection[];
deleteConnectedDocUser: (p: any, args: any, context: import("../..").Context) => {
editConnectedDocUser: (p: any, args: any, context: import("../../types/Context").Context) => {
userId: any;
currentPage: number;
}[];
deleteConnectedDocUser: (p: any, args: any, context: import("../../types/Context").Context) => {
successful: boolean;
};
addMention: (p: any, args: any, context: import("../..").Context) => Promise<import("../../../../../types/resolvers-types").Mention>;
editMention: (p: any, args: any, context: import("../..").Context) => Promise<import("../../../../../types/resolvers-types").Mention>;
deleteMention: (p: any, args: any, context: import("../..").Context) => Promise<import("../..").DeleteResult>;
addDocumentMember: (p: any, args: any, context: import("../..").Context) => Promise<import("../..").ApolloDocumentMember>;
editDocumentMember: (p: any, args: any, context: import("../..").Context) => Promise<import("../..").ApolloDocumentMember | {
addMention: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").Mention>;
deleteMention: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").DeleteResult>;
addDocumentMember: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").DocumentMember>;
editDocumentMember: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").DocumentMember | {
__typename: string;
message: string;
}>;
deleteDocumentMember: (p: any, args: any, context: import("../..").Context) => Promise<import("../..").DeleteResult>;
inviteUsersToDocument: (_: any, args: any, context: import("../..").Context) => Promise<import("../..").ApolloDocument>;
addDocument: (p: any, args: any, context: import("../..").Context) => Promise<import("../..").ApolloDocument>;
editDocument: (p: any, args: any, context: import("../..").Context) => Promise<import("../..").ApolloDocument>;
deleteDocument: (p: any, args: any, context: import("../..").Context) => Promise<import("../..").DeleteResult>;
markAllAsRead: (p: any, args: any, context: import("../..").Context) => Promise<import("../..").ApolloDocument>;
addAnnotationMember: (p: any, args: any, context: import("../..").Context) => Promise<import("../..").ApolloAnnotationMember>;
editAnnotationMember: (p: any, args: any, context: import("../..").Context) => Promise<import("../..").ApolloAnnotationMember>;
updateAnnotationMemberLastRead: (p: any, args: any, context: import("../..").Context) => Promise<import("../..").ApolloAnnotationMember | {
deleteDocumentMember: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").DeleteResult>;
inviteUsersToDocument: (_: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").Document>;
addDocument: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").Document>;
editDocument: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").Document>;
deleteDocument: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").DeleteResult>;
markAllAsRead: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").Document>;
addAnnotationMember: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").AnnotationMember>;
editAnnotationMember: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").AnnotationMember>;
updateAnnotationMemberLastRead: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").AnnotationMember | {
__typename: string;

@@ -42,8 +77,8 @@ message: string;

}>;
deleteAnnotationMember: (p: any, args: any, context: import("../..").Context) => Promise<import("../..").DeleteResult>;
deleteAnnotationMember: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").DeleteResult>;
addAnnotation: (p: any, args: {
input: import("../../../../../types/resolvers-types").NewAnnotationInput;
}, context: import("../..").Context) => Promise<import("../..").ApolloAnnotation>;
editAnnotation: (p: any, args: any, context: import("../..").Context) => Promise<import("../..").ApolloAnnotation>;
deleteAnnotation: (p: any, args: any, context: import("../..").Context) => Promise<import("../..").DeleteResult | {
}, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").Annotation>;
editAnnotation: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").Annotation>;
deleteAnnotation: (p: any, args: any, context: import("../../types/Context").Context) => Promise<import("../../../../../types/resolvers-types").DeleteResult | {
id: any;

@@ -53,9 +88,9 @@ successful: boolean;

}>;
addUser: (p: any, args: any, context: any) => Promise<import("../..").ApolloUser>;
loginAnonymous: (p: any, args: any, context: import("../..").Context) => Promise<{
user: import("../..").ApolloUser;
addUser: (p: any, args: any, context: any) => Promise<import("../../../../../types/resolvers-types").User>;
loginAnonymous: (p: any, args: any, context: import("../../types/Context").Context) => Promise<{
user: import("../../../../../types/resolvers-types").User;
token: string;
}>;
login: (p: any, args: any, context: import("../..").Context) => Promise<{
user: import("../..").ApolloDatabaseUser;
login: (p: any, args: any, context: import("../../types/Context").Context) => Promise<{
user: import("../../types/DatabaseTypes").DatabaseUser;
token: string;

@@ -62,0 +97,0 @@ }>;

@@ -1,10 +0,26 @@

import { Context } from '../../index';
import { Context } from '../../types/Context';
declare const _default: {
editScrollSync: (p: any, args: any, context: Context) => {
position: any;
createScrollSyncSession: (p: any, args: any, context: Context) => {
leaderId: string;
documentId: string;
connectedUsers: string[];
position: {
scrollTop: number;
scrollHeight: number;
};
sessionId: string;
};
deleteScrollSync: (p: any, args: any, context: Context) => {
successful: boolean;
joinScrollSyncSession: (p: any, args: any, context: Context) => true | {
leaderId: string;
documentId: string;
connectedUsers: string[];
position: {
scrollTop: number;
scrollHeight: number;
};
sessionId: string;
};
updateScrollSyncSession: (p: any, args: any, context: Context) => boolean;
exitScrollSyncSession: (p: any, args: any, context: Context) => boolean;
};
export default _default;

@@ -1,10 +0,10 @@

import { Context } from './../../index';
import { Context } from '../../types/Context';
declare const _default: {
addUser: (p: any, args: any, context: any) => Promise<import("./../../index").ApolloUser>;
addUser: (p: any, args: any, context: any) => Promise<import("../../../../../types/resolvers-types").User>;
loginAnonymous: (p: any, args: any, context: Context) => Promise<{
user: import("./../../index").ApolloUser;
user: import("../../../../../types/resolvers-types").User;
token: string;
}>;
login: (p: any, args: any, context: Context) => Promise<{
user: import("../../resolvers").ApolloDatabaseUser;
user: import("../../types/DatabaseTypes").DatabaseUser;
token: string;

@@ -11,0 +11,0 @@ }>;

@@ -1,7 +0,7 @@

import { Context } from './../index';
import { Context } from '../types/Context';
declare const _default: {
user: (p: any, args: any, context: Context) => Promise<import("./../resolvers").ApolloUser>;
annotation: (p: any, args: any, context: Context) => Promise<import("./../resolvers").ApolloAnnotation>;
annotations: (p: any, args: any, context: Context) => Promise<Promise<import("./../resolvers").ApolloAnnotation>[]>;
document: (p: any, args: any, context: Context) => Promise<import("./../resolvers").ApolloDocument>;
user: (p: any, args: any, context: Context) => Promise<import("../../../../types/resolvers-types").User>;
annotation: (p: any, args: any, context: Context) => Promise<import("../../../../types/resolvers-types").Annotation>;
annotations: (p: any, args: any, context: Context) => Promise<Promise<import("../../../../types/resolvers-types").Annotation>[]>;
document: (p: any, args: any, context: Context) => Promise<import("../../../../types/resolvers-types").Document>;
session: (_: any, __: any, context: Context) => Promise<{

@@ -12,5 +12,15 @@ token: string;

}>;
isScrollSyncAvailable: (_: any, args: any, context: Context) => boolean;
scrollSyncPosition: (_: any, args: any, context: Context) => {
userId: string;
connectedDocUsers: (p: any, args: any, context: Context) => {
userId: any;
currentPage: number;
}[];
documents: (_: any, args: any, context: Context) => Promise<import("../../../../types/resolvers-types").Document[]>;
mentions: (_: any, args: any, context: Context) => Promise<import("../../../../types/resolvers-types").Mention[]>;
snapshot: (p: any, args: any, context: Context) => Promise<import("../../../../types/resolvers-types").Snapshot>;
snapshots: (p: any, args: any, context: Context) => Promise<import("../../../../types/resolvers-types").Snapshot[]>;
snapshotAsset: (p: any, args: any, context: Context) => Promise<import("../../../../types/resolvers-types").SnapshotAsset>;
getAvailableScrollSyncSessions: (p: any, args: any, context: Context) => Promise<{
leaderId: string;
documentId: string;
connectedUsers: string[];
position: {

@@ -20,7 +30,5 @@ scrollTop: number;

};
};
connectedDocUsers: (p: any, args: any, context: Context) => import("../util/ConnectedUserMap").UserConnection[];
documents: (_: any, args: any, context: Context) => Promise<import("./../resolvers").ApolloDocument[]>;
mentions: (_: any, args: any, context: Context) => Promise<import("../../../../types/resolvers-types").Mention[]>;
sessionId: string;
}[]>;
};
export default _default;

@@ -22,3 +22,9 @@ import type { AnnotationChangedPayload } from '../entities/Annotation';

};
snapshotChanged: {
subscribe: import("graphql-subscriptions").ResolverFn;
};
scrollSyncSessionUpdated: {
subscribe: import("graphql-subscriptions").ResolverFn;
};
};
export default _default;

@@ -1,3 +0,3 @@

import { UserAuth } from "..";
import { UserAuth } from '../types/Auth';
export declare const getTokenFromHeaders: (req: any) => any;
export declare const getUserFromHeaders: (req: any) => Promise<UserAuth | null>;

@@ -5,5 +5,8 @@ declare type ScrollPosition = {

};
declare type ScrollSyncValue = {
userId: string;
declare type ScrollSyncItem = {
leaderId: string;
documentId: string;
connectedUsers: string[];
position: ScrollPosition;
sessionId: string;
};

@@ -16,4 +19,4 @@ export declare class UserConnection {

constructor(userId: any, timeConnected?: number);
connectedToDocument(doc: DocumentConnection): void;
setCurrentPage(docId: any, page: number): void;
connectToDocument(doc: DocumentConnection): void;
setCurrentPage(docId: string, page: number): void;
getCurrentPage(docId: any): number;

@@ -25,3 +28,2 @@ }

connectedUserMap: Map<string, UserConnection>;
scrollInformation?: ScrollSyncValue;
constructor(documentId: any);

@@ -32,18 +34,25 @@ isEmpty(): boolean;

userDisconnected(userId: string): void;
removeScrollInfo(): void;
}
export default class ConnectedUserMap {
declare class ConnectedUserMap {
userConnectionMap: Map<string, UserConnection>;
documentConnectionMap: Map<string, DocumentConnection>;
scrollSessionMap: Map<string, ScrollSyncItem>;
constructor();
getConnectedUsersForDocument(documentId: string): UserConnection[];
private createSessionId;
createScrollSyncSession(userId: string, documentId: string, position: ScrollPosition): ScrollSyncItem;
joinScrollSyncSession(sessionId: string, userId: string): true | ScrollSyncItem;
updateScrollSyncSession(sessionId: string, userId: string, position: ScrollPosition): ScrollSyncItem;
exitScrollSyncSessionByUserId(userId: string): ScrollSyncItem;
exitScrollSyncSession(sessionId: string, userId: string): boolean;
endScrollSyncSession(sessionId: string, userId: string): boolean;
getScrollSyncSessionsForDocument(documentId: string): ScrollSyncItem[];
getConnectedUsersForDocument(documentId: string): {
userId: any;
currentPage: number;
}[];
getUserCurrentPage(userId: string, documentId: string): number;
getScrollPositionForDocument(documentId: string): ScrollSyncValue;
setCurrentPageForUser(userId: string, documentId: string, currentPage: number): void;
setScrollPositionForDocument(userId: any, documentId: string, position: ScrollPosition): void;
connectUserToDocument(userId: string, documentId: string, pageNumber?: number): boolean;
disconnectUserFromDocument(userId: string, documentId: string): boolean;
disconnectUserFromAllDocuments(userId: any): any[];
disconnectFromScroll(documentId: any): boolean;
leaveScroll(leavingUserId: string): string[];
connect(userId: string): void;

@@ -64,5 +73,5 @@ /**

clear(): void;
hasDocumentForScroll(documentId: string): boolean;
cull(): void;
}
export {};
declare const _default: ConnectedUserMap;
export default _default;

@@ -1,3 +0,3 @@

import { CustomContext } from "..";
import { CustomContext } from "../types/CustomContext";
export declare const decodeContext: (token: string) => Promise<CustomContext>;
export declare const getContextFromHeaders: (req: any) => Promise<CustomContext>;
import { User } from './../entities/User';
import { InvitedUserInput } from './../../../../types/resolvers-types';
import { Context } from '../resolvers';
import { Context } from '../types/Context';
declare const _default: (usersInvited: InvitedUserInput[], from: string, context: Context) => Promise<User[]>;

@@ -5,0 +5,0 @@ /**

@@ -1,2 +0,2 @@

import { Context } from '..';
import { Context } from '../types/Context';
export declare function requireLogin(from: string, context: Context): boolean;

@@ -9,4 +9,15 @@ import { XFDFFormats } from '../index';

export declare const parseAnnotationIdFromXFDF: (xfdf: string) => string;
export declare const parseAnnotPageNumberFromXFDF: (xfdf: string) => string;
export declare const commandToRaw: (input: string) => string;
export declare const ensureRawXFDF: (input: string) => string;
export declare const rawXFDFToCommand: (xfdf: string, type: XfdfTypes) => string;
export declare const getImageData: (xfdf: string) => RegExpMatchArray;
export declare const replaceImageDataWithId: (xfdf: string, imageData: string, id: string) => string;
export declare const replaceAssetIdWithImageData: (xfdf: string, imageData: string, id: string) => string;
export declare const formatXFDF: (xfdf: string) => string;
export declare const combineXFDF: (xfdfArray: string[]) => string;
/**
* Parses XFDF into individual annot XFDF
* @param string The XFDF includes annot(s)
*/
export declare const parseXFDFToSingleAnnot: (input: string) => string[];
import type { CollabSQLResolverGeneratorOptions } from './types';
import type { UserResolvers } from '../../collab-server/src/resolvers';
import { UserResolvers } from '../../collab-server/src/types/UserResolvers';
export declare const SQLClient: {

@@ -19,3 +19,3 @@ readonly Postgres: "pg";

/**
* A utlity function to generate resolver for you. Works with any SQL-like query language.
* A utility function to generate resolver for you. Works with any SQL-like query language.
* @returns {Object} Returns resolvers to be plugged into @pdftron/collab-server

@@ -22,0 +22,0 @@ */

import { Knex } from 'knex';
import type winston from 'winston';
import type { Logging, Tags } from '../../../shared/log/logger';
import type { ApolloDatabaseUser, ApolloDatabaseDocument, ApolloDatabaseAnnotation, ApolloDatabaseAnnotationMember, ApolloDatabaseDocumentMember, ApolloDatabaseMention } from '../../collab-server/src/resolvers';
import { DatabaseAnnotation, DatabaseAnnotationMember, DatabaseDocument, DatabaseDocumentMember, DatabaseMention, DatabaseSnapshot, DatabaseSnapshotAsset, DatabaseUser } from '../../collab-server/src/types/DatabaseTypes';
export declare type AsyncOrSync<T> = Promise<T> | T;

@@ -20,2 +20,3 @@ export declare type GeneratorColumnsOptionsObject = {

ctx: Record<any, any>;
knex: Knex;
next: (data: Record<string, any>, ctx: Record<any, any>) => void;

@@ -25,16 +26,20 @@ };

export interface EntityInfo {
Users: GeneratorEntity<ApolloDatabaseUser>;
Annotations: GeneratorEntity<ApolloDatabaseAnnotation>;
Documents: GeneratorEntity<ApolloDatabaseDocument>;
AnnotationMembers: GeneratorEntity<ApolloDatabaseAnnotationMember>;
DocumentMembers: GeneratorEntity<ApolloDatabaseDocumentMember>;
Mentions: GeneratorEntity<ApolloDatabaseMention>;
Users: GeneratorEntity<DatabaseUser>;
Annotations: GeneratorEntity<DatabaseAnnotation>;
Documents: GeneratorEntity<DatabaseDocument>;
AnnotationMembers: GeneratorEntity<DatabaseAnnotationMember>;
DocumentMembers: GeneratorEntity<DatabaseDocumentMember>;
Mentions: GeneratorEntity<DatabaseMention>;
Snapshots?: GeneratorEntity<DatabaseSnapshot>;
SnapshotAssets?: GeneratorEntity<DatabaseSnapshotAsset>;
}
export interface EntityInfoWithMap {
Users: GeneratorEntityWithMap<ApolloDatabaseUser>;
Annotations: GeneratorEntityWithMap<ApolloDatabaseAnnotation>;
Documents: GeneratorEntityWithMap<ApolloDatabaseDocument>;
AnnotationMembers: GeneratorEntityWithMap<ApolloDatabaseAnnotationMember>;
DocumentMembers: GeneratorEntityWithMap<ApolloDatabaseDocumentMember>;
Mentions: GeneratorEntityWithMap<ApolloDatabaseMention>;
Users: GeneratorEntityWithMap<DatabaseUser>;
Annotations: GeneratorEntityWithMap<DatabaseAnnotation>;
Documents: GeneratorEntityWithMap<DatabaseDocument>;
AnnotationMembers: GeneratorEntityWithMap<DatabaseAnnotationMember>;
DocumentMembers: GeneratorEntityWithMap<DatabaseDocumentMember>;
Mentions: GeneratorEntityWithMap<DatabaseMention>;
Snapshots: GeneratorEntityWithMap<DatabaseSnapshot>;
SnapshotAssets: GeneratorEntityWithMap<DatabaseSnapshotAsset>;
}

@@ -41,0 +46,0 @@ export declare type GeneratorEntity<T> = {

@@ -1,4 +0,4 @@

import { QueryParams } from './../../collab-server/src/resolvers';
import { ToDatabaseFormatOption, TransformToApolloFormatOption, ParseToUnixTimestamp, EntityInfo, OptionsColumns, EntityInfoWithMap, GeneratorColumnsOptions, GetDatabaseTimestamp } from './types';
import type { Knex } from 'knex';
import { QueryParams } from '../../collab-server/src/types/Params';
export declare const buildFilterQuery: <T>(builder: Knex.QueryBuilder, filters: QueryParams, columns: OptionsColumns<T>, getDatabaseTimestamp: GetDatabaseTimestamp) => void;

@@ -5,0 +5,0 @@ export declare const getColumnName: (column: GeneratorColumnsOptions) => string;

@@ -0,1 +1,4 @@

export declare const ErrorCodes: {
PERMISSION_ERROR: string;
};
declare type Types = 'string' | 'number' | 'boolean' | 'blob' | 'array' | 'object' | 'function' | 'any';

@@ -5,3 +8,3 @@ declare type ParamValidationData = {

};
export declare const throwError: (functionName: string, msg: string, AuthenticationError?: any) => never;
export declare const throwError: (functionName: string, err: any, AuthenticationError?: any) => never;
/**

@@ -13,2 +16,8 @@ * Validated that parameters are applied and throws an error if they are empty.

export declare const validateParams: (functionSigString: string, options: ParamValidationData) => never;
/**
* Validated the existence of the resolver and throws an error if the resolver is not provided.
* @param {string} resolverName The name of the resolver
* @param {function} resolver The resolver that needs to be validate
*/
export declare const validateResolver: (resolverName: string, resolver: any) => void;
export {};

@@ -6,5 +6,8 @@ import winston from 'winston';

readonly QUERY: "QUERY";
readonly MUTATION: "MUTATION";
readonly RESPONSE: "RESPONSE";
readonly AUTH: "AUTH";
readonly CACHE: "CACHE";
readonly CONNECTED_USERS: "CONNECTED_USERS";
readonly SCROLL_SYNC: "SCROLL_SYNC";
};

@@ -11,0 +14,0 @@ export declare type Tags = keyof typeof LogTags;

@@ -19,2 +19,12 @@ export declare enum ChangeEventTypes {

}
export declare enum ScrollSyncChangedEventTypes {
ADD = "ADD",
DELETE = "DELETE"
}
export declare enum SnapshotChangeEventTypes {
ADD = "ADD",
DELETE = "DELETE",
EDIT = "EDIT",
RESTORE = "RESTORE"
}
export declare enum UserTypes {

@@ -59,4 +69,4 @@ ANONYMOUS = "ANONYMOUS",

}
export interface EditMentionInput {
readBeforeMention?: boolean | null;
export interface EditSnapshotInput {
name?: string | null;
updatedAt: any;

@@ -111,5 +121,9 @@ }

}
export interface NewScrollPositionInput {
scrollTop?: number | null;
scrollHeight?: number | null;
export interface NewSnapshotInput {
id?: string | null;
authorId: string;
documentId: string;
name: string;
createdAt: any;
updatedAt: any;
}

@@ -126,1 +140,10 @@ export interface NewUserInput {

}
export interface RestoreSnapshotInput {
id: string;
name: string;
createdAt: any;
}
export interface ScrollSyncPositionInput {
scrollTop?: number | null;
scrollHeight?: number | null;
}

@@ -95,3 +95,3 @@ import { GraphQLResolveInfo, GraphQLScalarType, GraphQLScalarTypeConfig } from 'graphql';

members: Array<DocumentMember>;
authorId: Scalars['ID'];
author: User;
createdAt: Scalars['Date'];

@@ -119,2 +119,9 @@ updatedAt: Scalars['Date'];

};
export declare type RestoreSnapshotResult = {
__typename?: 'RestoreSnapshotResult';
id?: Maybe<Scalars['ID']>;
successful: Scalars['Boolean'];
message?: Maybe<Scalars['String']>;
annotations?: Maybe<Array<Maybe<Annotation>>>;
};
export declare type Mention = {

@@ -126,7 +133,23 @@ __typename?: 'Mention';

mentionedUser: User;
/** Use this to record if the annotation that this mention belongs to is read when the mention is created. */
readBeforeMention?: Maybe<Scalars['Boolean']>;
createdAt: Scalars['Date'];
updatedAt: Scalars['Date'];
};
export declare type Snapshot = {
__typename?: 'Snapshot';
id: Scalars['ID'];
author?: Maybe<User>;
documentId: Scalars['ID'];
xfdf: Scalars['String'];
name?: Maybe<Scalars['String']>;
createdAt: Scalars['Date'];
updatedAt: Scalars['Date'];
};
export declare type SnapshotAsset = {
__typename?: 'SnapshotAsset';
id: Scalars['ID'];
snapshotId: Scalars['ID'];
data: Scalars['String'];
createdAt: Scalars['Date'];
updatedAt: Scalars['Date'];
};
export declare type ScrollSyncPosition = {

@@ -137,10 +160,41 @@ __typename?: 'ScrollSyncPosition';

};
export declare type ScrollSyncResult = {
__typename?: 'ScrollSyncResult';
position?: Maybe<ScrollSyncPosition>;
};
export declare type NewScrollPositionInput = {
export declare type ScrollSyncPositionInput = {
scrollTop?: Maybe<Scalars['Int']>;
scrollHeight?: Maybe<Scalars['Int']>;
};
export declare type ScrollSyncSession = {
__typename?: 'ScrollSyncSession';
leaderId: Scalars['String'];
documentId: Scalars['String'];
position: ScrollSyncPosition;
sessionId: Scalars['String'];
};
export declare type NewSnapshotInput = {
id?: Maybe<Scalars['ID']>;
authorId: Scalars['ID'];
documentId: Scalars['ID'];
name: Scalars['String'];
createdAt: Scalars['Date'];
updatedAt: Scalars['Date'];
};
export declare type EditSnapshotInput = {
name?: Maybe<Scalars['String']>;
updatedAt: Scalars['Date'];
};
export declare type RestoreSnapshotInput = {
id: Scalars['ID'];
name: Scalars['String'];
createdAt: Scalars['Date'];
};
export declare type NewSnapshotAssetInput = {
id?: Maybe<Scalars['ID']>;
snapshotId?: Maybe<Scalars['ID']>;
data: Scalars['String'];
createdAt: Scalars['Date'];
updatedAt: Scalars['Date'];
};
export declare type EditSnapshotAssetInput = {
snapshotId?: Maybe<Scalars['ID']>;
updatedAt: Scalars['Date'];
};
export declare type NewAnnotationInput = {

@@ -234,6 +288,2 @@ id?: Maybe<Scalars['ID']>;

};
export declare type EditMentionInput = {
readBeforeMention?: Maybe<Scalars['Boolean']>;
updatedAt: Scalars['Date'];
};
export declare type ConnectedDocUser = {

@@ -270,6 +320,9 @@ __typename?: 'ConnectedDocUser';

session?: Maybe<AuthUser>;
snapshot?: Maybe<Snapshot>;
snapshots: Array<Snapshot>;
snapshotAsset?: Maybe<SnapshotAsset>;
snapshotAssets: Array<SnapshotAsset>;
mentions: Array<Mention>;
isScrollSyncAvailable: Scalars['Boolean'];
scrollSyncPosition?: Maybe<ScrollSyncResult>;
connectedDocUsers: Array<ConnectedDocUser>;
getAvailableScrollSyncSessions: Array<ScrollSyncSession>;
};

@@ -300,15 +353,29 @@ export declare type QueryUserArgs = {

};
export declare type QuerySnapshotArgs = {
id: Scalars['ID'];
settings?: Maybe<QuerySettings>;
};
export declare type QuerySnapshotsArgs = {
documentId: Scalars['ID'];
limit: Scalars['Int'];
before?: Maybe<Scalars['Date']>;
orderBy?: Maybe<OrderTypes>;
orderDirection?: Maybe<OrderDirections>;
settings?: Maybe<QuerySettings>;
};
export declare type QuerySnapshotAssetArgs = {
id: Scalars['ID'];
};
export declare type QuerySnapshotAssetsArgs = {
snapshotId: Scalars['ID'];
};
export declare type QueryMentionsArgs = {
annotationId: Scalars['ID'];
};
export declare type QueryIsScrollSyncAvailableArgs = {
userId: Scalars['ID'];
export declare type QueryConnectedDocUsersArgs = {
documentId: Scalars['ID'];
};
export declare type QueryScrollSyncPositionArgs = {
export declare type QueryGetAvailableScrollSyncSessionsArgs = {
documentId: Scalars['ID'];
};
export declare type QueryConnectedDocUsersArgs = {
documentId: Scalars['ID'];
};
export declare type Mutation = {

@@ -319,2 +386,9 @@ __typename?: 'Mutation';

deleteAnnotation: DeleteResult;
addSnapshot: Snapshot;
editSnapshot: Snapshot;
deleteSnapshot: DeleteResult;
restoreSnapshot: RestoreSnapshotResult;
addSnapshotAsset: SnapshotAsset;
editSnapshotAsset: SnapshotAsset;
deleteSnapshotAsset: DeleteResult;
addAnnotationMember: AnnotationMember;

@@ -335,7 +409,8 @@ editAnnotationMember: AnnotationMember;

addMention: Mention;
editMention: Mention;
deleteMention: DeleteResult;
markAllAsRead: Document;
editScrollSync: ScrollSyncResult;
deleteScrollSync: DeleteResult;
createScrollSyncSession: ScrollSyncSession;
joinScrollSyncSession: ScrollSyncSession;
updateScrollSyncSession: ScrollSyncSession;
exitScrollSyncSession: Scalars['Boolean'];
connectUserToDocument: ConnectResult;

@@ -358,2 +433,28 @@ editConnectedDocUser?: Maybe<Array<Maybe<ConnectedDocUser>>>;

};
export declare type MutationAddSnapshotArgs = {
input: NewSnapshotInput;
settings?: Maybe<QuerySettings>;
};
export declare type MutationEditSnapshotArgs = {
id: Scalars['ID'];
input: EditSnapshotInput;
settings?: Maybe<QuerySettings>;
};
export declare type MutationDeleteSnapshotArgs = {
id: Scalars['ID'];
};
export declare type MutationRestoreSnapshotArgs = {
input: RestoreSnapshotInput;
settings?: Maybe<QuerySettings>;
};
export declare type MutationAddSnapshotAssetArgs = {
input: NewSnapshotAssetInput;
};
export declare type MutationEditSnapshotAssetArgs = {
id: Scalars['ID'];
input: EditSnapshotAssetInput;
};
export declare type MutationDeleteSnapshotAssetArgs = {
id: Scalars['ID'];
};
export declare type MutationAddAnnotationMemberArgs = {

@@ -421,7 +522,2 @@ input: NewAnnotationMemberInput;

};
export declare type MutationEditMentionArgs = {
userId: Scalars['ID'];
annotationId: Scalars['ID'];
input?: Maybe<EditMentionInput>;
};
export declare type MutationDeleteMentionArgs = {

@@ -435,13 +531,20 @@ userId: Scalars['ID'];

};
export declare type MutationEditScrollSyncArgs = {
export declare type MutationCreateScrollSyncSessionArgs = {
documentId: Scalars['ID'];
userId: Scalars['ID'];
position: NewScrollPositionInput;
position: ScrollSyncPositionInput;
};
export declare type MutationDeleteScrollSyncArgs = {
documentId: Scalars['ID'];
export declare type MutationJoinScrollSyncSessionArgs = {
sessionId: Scalars['String'];
};
export declare type MutationUpdateScrollSyncSessionArgs = {
sessionId: Scalars['String'];
position: ScrollSyncPositionInput;
};
export declare type MutationExitScrollSyncSessionArgs = {
sessionId: Scalars['String'];
};
export declare type MutationConnectUserToDocumentArgs = {
documentId: Scalars['ID'];
userId: Scalars['ID'];
pageNumber?: Maybe<Scalars['Int']>;
};

@@ -473,3 +576,2 @@ export declare type MutationEditConnectedDocUserArgs = {

action: ChangeEventTypes;
mentionedCurrentUser?: Maybe<Scalars['Boolean']>;
};

@@ -481,2 +583,3 @@ export declare type DocumentSubscriptionEvent = {

action: ChangeEventTypes;
invitedBy?: Maybe<Scalars['String']>;
};

@@ -490,5 +593,4 @@ export declare type MentionSubscriptionEvent = {

__typename?: 'ScrollPositionSubscriptionEvent';
documentId: Scalars['ID'];
position?: Maybe<ScrollSyncPosition>;
action: ChangeEventTypes;
position: ScrollSyncPosition;
sessionId: Scalars['String'];
};

@@ -501,2 +603,22 @@ export declare type ConnectedDocUsersSubscriptionEvent = {

};
export declare enum SnapshotChangeEventTypes {
Add = "ADD",
Edit = "EDIT",
Delete = "DELETE",
Restore = "RESTORE"
}
export declare enum ScrollSyncChangedEventTypes {
Add = "ADD",
Delete = "DELETE"
}
export declare type SnapshotChangedSubscriptionEvent = {
__typename?: 'SnapshotChangedSubscriptionEvent';
snapshot: Snapshot;
action: SnapshotChangeEventTypes;
};
export declare type ScrollSyncSessionChangedEvent = {
__typename?: 'ScrollSyncSessionChangedEvent';
session: ScrollSyncSession;
action: ScrollSyncChangedEventTypes;
};
export declare type Subscription = {

@@ -507,4 +629,6 @@ __typename?: 'Subscription';

mentionChanged: MentionSubscriptionEvent;
connectedDocUsersChanged: ConnectedDocUsersSubscriptionEvent;
snapshotChanged: SnapshotChangedSubscriptionEvent;
scrollPositionChanged: ScrollPositionSubscriptionEvent;
connectedDocUsersChanged: ConnectedDocUsersSubscriptionEvent;
scrollSyncSessionUpdated: ScrollSyncSessionChangedEvent;
};

@@ -522,8 +646,15 @@ export declare type SubscriptionAnnotationChangedArgs = {

};
export declare type SubscriptionScrollPositionChangedArgs = {
export declare type SubscriptionConnectedDocUsersChangedArgs = {
docId: Scalars['ID'];
};
export declare type SubscriptionConnectedDocUsersChangedArgs = {
export declare type SubscriptionSnapshotChangedArgs = {
docId: Scalars['ID'];
userId: Scalars['ID'];
};
export declare type SubscriptionScrollPositionChangedArgs = {
sessionId: Scalars['ID'];
};
export declare type SubscriptionScrollSyncSessionUpdatedArgs = {
docId: Scalars['ID'];
};
export declare type AuthPayload = {

@@ -600,6 +731,14 @@ __typename?: 'AuthPayload';

ConnectResult: ResolverTypeWrapper<ConnectResult>;
RestoreSnapshotResult: ResolverTypeWrapper<RestoreSnapshotResult>;
Mention: ResolverTypeWrapper<Mention>;
Snapshot: ResolverTypeWrapper<Snapshot>;
SnapshotAsset: ResolverTypeWrapper<SnapshotAsset>;
ScrollSyncPosition: ResolverTypeWrapper<ScrollSyncPosition>;
ScrollSyncResult: ResolverTypeWrapper<ScrollSyncResult>;
NewScrollPositionInput: NewScrollPositionInput;
ScrollSyncPositionInput: ScrollSyncPositionInput;
ScrollSyncSession: ResolverTypeWrapper<ScrollSyncSession>;
NewSnapshotInput: NewSnapshotInput;
EditSnapshotInput: EditSnapshotInput;
RestoreSnapshotInput: RestoreSnapshotInput;
NewSnapshotAssetInput: NewSnapshotAssetInput;
EditSnapshotAssetInput: EditSnapshotAssetInput;
NewAnnotationInput: NewAnnotationInput;

@@ -619,3 +758,2 @@ EditAnnotationInput: EditAnnotationInput;

NewMentionInput: NewMentionInput;
EditMentionInput: EditMentionInput;
ConnectedDocUser: ResolverTypeWrapper<ConnectedDocUser>;

@@ -635,2 +773,6 @@ EditConnectedDocUserInput: EditConnectedDocUserInput;

ConnectedDocUsersSubscriptionEvent: ResolverTypeWrapper<ConnectedDocUsersSubscriptionEvent>;
SnapshotChangeEventTypes: SnapshotChangeEventTypes;
ScrollSyncChangedEventTypes: ScrollSyncChangedEventTypes;
SnapshotChangedSubscriptionEvent: ResolverTypeWrapper<SnapshotChangedSubscriptionEvent>;
ScrollSyncSessionChangedEvent: ResolverTypeWrapper<ScrollSyncSessionChangedEvent>;
Subscription: ResolverTypeWrapper<{}>;

@@ -659,6 +801,14 @@ AuthPayload: ResolverTypeWrapper<AuthPayload>;

ConnectResult: ConnectResult;
RestoreSnapshotResult: RestoreSnapshotResult;
Mention: Mention;
Snapshot: Snapshot;
SnapshotAsset: SnapshotAsset;
ScrollSyncPosition: ScrollSyncPosition;
ScrollSyncResult: ScrollSyncResult;
NewScrollPositionInput: NewScrollPositionInput;
ScrollSyncPositionInput: ScrollSyncPositionInput;
ScrollSyncSession: ScrollSyncSession;
NewSnapshotInput: NewSnapshotInput;
EditSnapshotInput: EditSnapshotInput;
RestoreSnapshotInput: RestoreSnapshotInput;
NewSnapshotAssetInput: NewSnapshotAssetInput;
EditSnapshotAssetInput: EditSnapshotAssetInput;
NewAnnotationInput: NewAnnotationInput;

@@ -678,3 +828,2 @@ EditAnnotationInput: EditAnnotationInput;

NewMentionInput: NewMentionInput;
EditMentionInput: EditMentionInput;
ConnectedDocUser: ConnectedDocUser;

@@ -692,2 +841,4 @@ EditConnectedDocUserInput: EditConnectedDocUserInput;

ConnectedDocUsersSubscriptionEvent: ConnectedDocUsersSubscriptionEvent;
SnapshotChangedSubscriptionEvent: SnapshotChangedSubscriptionEvent;
ScrollSyncSessionChangedEvent: ScrollSyncSessionChangedEvent;
Subscription: {};

@@ -759,3 +910,3 @@ AuthPayload: AuthPayload;

members?: Resolver<Array<ResolversTypes['DocumentMember']>, ParentType, ContextType>;
authorId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
author?: Resolver<ResolversTypes['User'], ParentType, ContextType>;
createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;

@@ -784,2 +935,9 @@ updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;

}>;
export declare type RestoreSnapshotResultResolvers<ContextType = any, ParentType extends ResolversParentTypes['RestoreSnapshotResult'] = ResolversParentTypes['RestoreSnapshotResult']> = ResolversObject<{
id?: Resolver<Maybe<ResolversTypes['ID']>, ParentType, ContextType>;
successful?: Resolver<ResolversTypes['Boolean'], ParentType, ContextType>;
message?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
annotations?: Resolver<Maybe<Array<Maybe<ResolversTypes['Annotation']>>>, ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType>;
}>;
export declare type MentionResolvers<ContextType = any, ParentType extends ResolversParentTypes['Mention'] = ResolversParentTypes['Mention']> = ResolversObject<{

@@ -790,3 +948,2 @@ id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;

mentionedUser?: Resolver<ResolversTypes['User'], ParentType, ContextType>;
readBeforeMention?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;

@@ -796,2 +953,20 @@ updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;

}>;
export declare type SnapshotResolvers<ContextType = any, ParentType extends ResolversParentTypes['Snapshot'] = ResolversParentTypes['Snapshot']> = ResolversObject<{
id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
author?: Resolver<Maybe<ResolversTypes['User']>, ParentType, ContextType>;
documentId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
xfdf?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
name?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType>;
}>;
export declare type SnapshotAssetResolvers<ContextType = any, ParentType extends ResolversParentTypes['SnapshotAsset'] = ResolversParentTypes['SnapshotAsset']> = ResolversObject<{
id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
snapshotId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
data?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType>;
}>;
export declare type ScrollSyncPositionResolvers<ContextType = any, ParentType extends ResolversParentTypes['ScrollSyncPosition'] = ResolversParentTypes['ScrollSyncPosition']> = ResolversObject<{

@@ -802,4 +977,7 @@ scrollTop?: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;

}>;
export declare type ScrollSyncResultResolvers<ContextType = any, ParentType extends ResolversParentTypes['ScrollSyncResult'] = ResolversParentTypes['ScrollSyncResult']> = ResolversObject<{
position?: Resolver<Maybe<ResolversTypes['ScrollSyncPosition']>, ParentType, ContextType>;
export declare type ScrollSyncSessionResolvers<ContextType = any, ParentType extends ResolversParentTypes['ScrollSyncSession'] = ResolversParentTypes['ScrollSyncSession']> = ResolversObject<{
leaderId?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
documentId?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
position?: Resolver<ResolversTypes['ScrollSyncPosition'], ParentType, ContextType>;
sessionId?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType>;

@@ -825,6 +1003,9 @@ }>;

session?: Resolver<Maybe<ResolversTypes['AuthUser']>, ParentType, ContextType>;
snapshot?: Resolver<Maybe<ResolversTypes['Snapshot']>, ParentType, ContextType, RequireFields<QuerySnapshotArgs, 'id'>>;
snapshots?: Resolver<Array<ResolversTypes['Snapshot']>, ParentType, ContextType, RequireFields<QuerySnapshotsArgs, 'documentId' | 'limit'>>;
snapshotAsset?: Resolver<Maybe<ResolversTypes['SnapshotAsset']>, ParentType, ContextType, RequireFields<QuerySnapshotAssetArgs, 'id'>>;
snapshotAssets?: Resolver<Array<ResolversTypes['SnapshotAsset']>, ParentType, ContextType, RequireFields<QuerySnapshotAssetsArgs, 'snapshotId'>>;
mentions?: Resolver<Array<ResolversTypes['Mention']>, ParentType, ContextType, RequireFields<QueryMentionsArgs, 'annotationId'>>;
isScrollSyncAvailable?: Resolver<ResolversTypes['Boolean'], ParentType, ContextType, RequireFields<QueryIsScrollSyncAvailableArgs, 'userId' | 'documentId'>>;
scrollSyncPosition?: Resolver<Maybe<ResolversTypes['ScrollSyncResult']>, ParentType, ContextType, RequireFields<QueryScrollSyncPositionArgs, 'documentId'>>;
connectedDocUsers?: Resolver<Array<ResolversTypes['ConnectedDocUser']>, ParentType, ContextType, RequireFields<QueryConnectedDocUsersArgs, 'documentId'>>;
getAvailableScrollSyncSessions?: Resolver<Array<ResolversTypes['ScrollSyncSession']>, ParentType, ContextType, RequireFields<QueryGetAvailableScrollSyncSessionsArgs, 'documentId'>>;
}>;

@@ -835,2 +1016,9 @@ export declare type MutationResolvers<ContextType = any, ParentType extends ResolversParentTypes['Mutation'] = ResolversParentTypes['Mutation']> = ResolversObject<{

deleteAnnotation?: Resolver<ResolversTypes['DeleteResult'], ParentType, ContextType, RequireFields<MutationDeleteAnnotationArgs, 'id'>>;
addSnapshot?: Resolver<ResolversTypes['Snapshot'], ParentType, ContextType, RequireFields<MutationAddSnapshotArgs, 'input'>>;
editSnapshot?: Resolver<ResolversTypes['Snapshot'], ParentType, ContextType, RequireFields<MutationEditSnapshotArgs, 'id' | 'input'>>;
deleteSnapshot?: Resolver<ResolversTypes['DeleteResult'], ParentType, ContextType, RequireFields<MutationDeleteSnapshotArgs, 'id'>>;
restoreSnapshot?: Resolver<ResolversTypes['RestoreSnapshotResult'], ParentType, ContextType, RequireFields<MutationRestoreSnapshotArgs, 'input'>>;
addSnapshotAsset?: Resolver<ResolversTypes['SnapshotAsset'], ParentType, ContextType, RequireFields<MutationAddSnapshotAssetArgs, 'input'>>;
editSnapshotAsset?: Resolver<ResolversTypes['SnapshotAsset'], ParentType, ContextType, RequireFields<MutationEditSnapshotAssetArgs, 'id' | 'input'>>;
deleteSnapshotAsset?: Resolver<ResolversTypes['DeleteResult'], ParentType, ContextType, RequireFields<MutationDeleteSnapshotAssetArgs, 'id'>>;
addAnnotationMember?: Resolver<ResolversTypes['AnnotationMember'], ParentType, ContextType, RequireFields<MutationAddAnnotationMemberArgs, 'input'>>;

@@ -851,7 +1039,8 @@ editAnnotationMember?: Resolver<ResolversTypes['AnnotationMember'], ParentType, ContextType, RequireFields<MutationEditAnnotationMemberArgs, 'annotationId' | 'userId'>>;

addMention?: Resolver<ResolversTypes['Mention'], ParentType, ContextType, RequireFields<MutationAddMentionArgs, never>>;
editMention?: Resolver<ResolversTypes['Mention'], ParentType, ContextType, RequireFields<MutationEditMentionArgs, 'userId' | 'annotationId'>>;
deleteMention?: Resolver<ResolversTypes['DeleteResult'], ParentType, ContextType, RequireFields<MutationDeleteMentionArgs, 'userId' | 'annotationId'>>;
markAllAsRead?: Resolver<ResolversTypes['Document'], ParentType, ContextType, RequireFields<MutationMarkAllAsReadArgs, never>>;
editScrollSync?: Resolver<ResolversTypes['ScrollSyncResult'], ParentType, ContextType, RequireFields<MutationEditScrollSyncArgs, 'documentId' | 'userId' | 'position'>>;
deleteScrollSync?: Resolver<ResolversTypes['DeleteResult'], ParentType, ContextType, RequireFields<MutationDeleteScrollSyncArgs, 'documentId'>>;
createScrollSyncSession?: Resolver<ResolversTypes['ScrollSyncSession'], ParentType, ContextType, RequireFields<MutationCreateScrollSyncSessionArgs, 'documentId' | 'position'>>;
joinScrollSyncSession?: Resolver<ResolversTypes['ScrollSyncSession'], ParentType, ContextType, RequireFields<MutationJoinScrollSyncSessionArgs, 'sessionId'>>;
updateScrollSyncSession?: Resolver<ResolversTypes['ScrollSyncSession'], ParentType, ContextType, RequireFields<MutationUpdateScrollSyncSessionArgs, 'sessionId' | 'position'>>;
exitScrollSyncSession?: Resolver<ResolversTypes['Boolean'], ParentType, ContextType, RequireFields<MutationExitScrollSyncSessionArgs, 'sessionId'>>;
connectUserToDocument?: Resolver<ResolversTypes['ConnectResult'], ParentType, ContextType, RequireFields<MutationConnectUserToDocumentArgs, 'documentId' | 'userId'>>;

@@ -866,3 +1055,2 @@ editConnectedDocUser?: Resolver<Maybe<Array<Maybe<ResolversTypes['ConnectedDocUser']>>>, ParentType, ContextType, RequireFields<MutationEditConnectedDocUserArgs, 'input'>>;

action?: Resolver<ResolversTypes['ChangeEventTypes'], ParentType, ContextType>;
mentionedCurrentUser?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType>;

@@ -874,2 +1062,3 @@ }>;

action?: Resolver<ResolversTypes['ChangeEventTypes'], ParentType, ContextType>;
invitedBy?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType>;

@@ -883,5 +1072,4 @@ }>;

export declare type ScrollPositionSubscriptionEventResolvers<ContextType = any, ParentType extends ResolversParentTypes['ScrollPositionSubscriptionEvent'] = ResolversParentTypes['ScrollPositionSubscriptionEvent']> = ResolversObject<{
documentId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
position?: Resolver<Maybe<ResolversTypes['ScrollSyncPosition']>, ParentType, ContextType>;
action?: Resolver<ResolversTypes['ChangeEventTypes'], ParentType, ContextType>;
position?: Resolver<ResolversTypes['ScrollSyncPosition'], ParentType, ContextType>;
sessionId?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType>;

@@ -895,2 +1083,12 @@ }>;

}>;
export declare type SnapshotChangedSubscriptionEventResolvers<ContextType = any, ParentType extends ResolversParentTypes['SnapshotChangedSubscriptionEvent'] = ResolversParentTypes['SnapshotChangedSubscriptionEvent']> = ResolversObject<{
snapshot?: Resolver<ResolversTypes['Snapshot'], ParentType, ContextType>;
action?: Resolver<ResolversTypes['SnapshotChangeEventTypes'], ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType>;
}>;
export declare type ScrollSyncSessionChangedEventResolvers<ContextType = any, ParentType extends ResolversParentTypes['ScrollSyncSessionChangedEvent'] = ResolversParentTypes['ScrollSyncSessionChangedEvent']> = ResolversObject<{
session?: Resolver<ResolversTypes['ScrollSyncSession'], ParentType, ContextType>;
action?: Resolver<ResolversTypes['ScrollSyncChangedEventTypes'], ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType>;
}>;
export declare type SubscriptionResolvers<ContextType = any, ParentType extends ResolversParentTypes['Subscription'] = ResolversParentTypes['Subscription']> = ResolversObject<{

@@ -900,4 +1098,6 @@ annotationChanged?: SubscriptionResolver<ResolversTypes['AnnotationSubscriptionEvent'], "annotationChanged", ParentType, ContextType, RequireFields<SubscriptionAnnotationChangedArgs, 'userId'>>;

mentionChanged?: SubscriptionResolver<ResolversTypes['MentionSubscriptionEvent'], "mentionChanged", ParentType, ContextType, RequireFields<SubscriptionMentionChangedArgs, 'userId'>>;
scrollPositionChanged?: SubscriptionResolver<ResolversTypes['ScrollPositionSubscriptionEvent'], "scrollPositionChanged", ParentType, ContextType, RequireFields<SubscriptionScrollPositionChangedArgs, 'docId'>>;
connectedDocUsersChanged?: SubscriptionResolver<ResolversTypes['ConnectedDocUsersSubscriptionEvent'], "connectedDocUsersChanged", ParentType, ContextType, RequireFields<SubscriptionConnectedDocUsersChangedArgs, 'docId'>>;
snapshotChanged?: SubscriptionResolver<ResolversTypes['SnapshotChangedSubscriptionEvent'], "snapshotChanged", ParentType, ContextType, RequireFields<SubscriptionSnapshotChangedArgs, 'docId' | 'userId'>>;
scrollPositionChanged?: SubscriptionResolver<ResolversTypes['ScrollPositionSubscriptionEvent'], "scrollPositionChanged", ParentType, ContextType, RequireFields<SubscriptionScrollPositionChangedArgs, 'sessionId'>>;
scrollSyncSessionUpdated?: SubscriptionResolver<ResolversTypes['ScrollSyncSessionChangedEvent'], "scrollSyncSessionUpdated", ParentType, ContextType, RequireFields<SubscriptionScrollSyncSessionUpdatedArgs, 'docId'>>;
}>;

@@ -934,5 +1134,8 @@ export declare type AuthPayloadResolvers<ContextType = any, ParentType extends ResolversParentTypes['AuthPayload'] = ResolversParentTypes['AuthPayload']> = ResolversObject<{

ConnectResult?: ConnectResultResolvers<ContextType>;
RestoreSnapshotResult?: RestoreSnapshotResultResolvers<ContextType>;
Mention?: MentionResolvers<ContextType>;
Snapshot?: SnapshotResolvers<ContextType>;
SnapshotAsset?: SnapshotAssetResolvers<ContextType>;
ScrollSyncPosition?: ScrollSyncPositionResolvers<ContextType>;
ScrollSyncResult?: ScrollSyncResultResolvers<ContextType>;
ScrollSyncSession?: ScrollSyncSessionResolvers<ContextType>;
ConnectedDocUser?: ConnectedDocUserResolvers<ContextType>;

@@ -947,2 +1150,4 @@ AuthUser?: AuthUserResolvers<ContextType>;

ConnectedDocUsersSubscriptionEvent?: ConnectedDocUsersSubscriptionEventResolvers<ContextType>;
SnapshotChangedSubscriptionEvent?: SnapshotChangedSubscriptionEventResolvers<ContextType>;
ScrollSyncSessionChangedEvent?: ScrollSyncSessionChangedEventResolvers<ContextType>;
Subscription?: SubscriptionResolvers<ContextType>;

@@ -949,0 +1154,0 @@ AuthPayload?: AuthPayloadResolvers<ContextType>;

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc