@contember/engine-vimeo-plugin 1.4.0-rc.8 → 2.0.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/development/index.cjs +28 -0
  2. package/dist/development/index.cjs.map +1 -0
  3. package/dist/development/index.js +29 -0
  4. package/dist/development/index.js.map +1 -0
  5. package/dist/development/src/Config.cjs +25 -0
  6. package/dist/development/src/Config.cjs.map +1 -0
  7. package/dist/development/src/Config.js +8 -0
  8. package/dist/development/src/Config.js.map +1 -0
  9. package/dist/development/src/VimeoConfigProcessor.cjs +44 -0
  10. package/dist/development/src/VimeoConfigProcessor.cjs.map +1 -0
  11. package/dist/development/src/VimeoConfigProcessor.js +27 -0
  12. package/dist/development/src/VimeoConfigProcessor.js.map +1 -0
  13. package/dist/development/src/VimeoSchemaContributor.cjs +85 -0
  14. package/dist/development/src/VimeoSchemaContributor.cjs.map +1 -0
  15. package/dist/development/src/VimeoSchemaContributor.js +85 -0
  16. package/dist/development/src/VimeoSchemaContributor.js.map +1 -0
  17. package/dist/development/src/VimeoService.cjs +50 -0
  18. package/dist/development/src/VimeoService.cjs.map +1 -0
  19. package/dist/development/src/VimeoService.js +50 -0
  20. package/dist/development/src/VimeoService.js.map +1 -0
  21. package/dist/production/index.cjs +28 -0
  22. package/dist/production/index.cjs.map +1 -0
  23. package/dist/production/index.js +29 -0
  24. package/dist/production/index.js.map +1 -0
  25. package/dist/production/src/Config.cjs +25 -0
  26. package/dist/production/src/Config.cjs.map +1 -0
  27. package/dist/production/src/Config.js +8 -0
  28. package/dist/production/src/Config.js.map +1 -0
  29. package/dist/production/src/VimeoConfigProcessor.cjs +44 -0
  30. package/dist/production/src/VimeoConfigProcessor.cjs.map +1 -0
  31. package/dist/production/src/VimeoConfigProcessor.js +27 -0
  32. package/dist/production/src/VimeoConfigProcessor.js.map +1 -0
  33. package/dist/production/src/VimeoSchemaContributor.cjs +85 -0
  34. package/dist/production/src/VimeoSchemaContributor.cjs.map +1 -0
  35. package/dist/production/src/VimeoSchemaContributor.js +85 -0
  36. package/dist/production/src/VimeoSchemaContributor.js.map +1 -0
  37. package/dist/production/src/VimeoService.cjs +50 -0
  38. package/dist/production/src/VimeoService.cjs.map +1 -0
  39. package/dist/production/src/VimeoService.js +50 -0
  40. package/dist/production/src/VimeoService.js.map +1 -0
  41. package/dist/types/tsconfig.tsbuildinfo +1 -0
  42. package/package.json +23 -11
  43. package/src/tsconfig.json +1 -1
  44. package/dist/src/Config.js +0 -31
  45. package/dist/src/Config.js.map +0 -1
  46. package/dist/src/VimeoConfigProcessor.js +0 -48
  47. package/dist/src/VimeoConfigProcessor.js.map +0 -1
  48. package/dist/src/VimeoSchemaContributor.js +0 -76
  49. package/dist/src/VimeoSchemaContributor.js.map +0 -1
  50. package/dist/src/VimeoService.js +0 -51
  51. package/dist/src/VimeoService.js.map +0 -1
  52. package/dist/src/index.js +0 -38
  53. package/dist/src/index.js.map +0 -1
  54. package/dist/src/tsconfig.tsbuildinfo +0 -1
  55. /package/dist/{src → types}/Config.d.ts +0 -0
  56. /package/dist/{src → types}/Config.d.ts.map +0 -0
  57. /package/dist/{src → types}/VimeoConfigProcessor.d.ts +0 -0
  58. /package/dist/{src → types}/VimeoConfigProcessor.d.ts.map +0 -0
  59. /package/dist/{src → types}/VimeoSchemaContributor.d.ts +0 -0
  60. /package/dist/{src → types}/VimeoSchemaContributor.d.ts.map +0 -0
  61. /package/dist/{src → types}/VimeoService.d.ts +0 -0
  62. /package/dist/{src → types}/VimeoService.d.ts.map +0 -0
  63. /package/dist/{src → types}/index.d.ts +0 -0
  64. /package/dist/{src → types}/index.d.ts.map +0 -0
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const Typesafe = require("@contember/typesafe");
4
+ const Config = require("./Config.cjs");
5
+ function _interopNamespaceDefault(e) {
6
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
7
+ if (e) {
8
+ for (const k in e) {
9
+ if (k !== "default") {
10
+ const d = Object.getOwnPropertyDescriptor(e, k);
11
+ Object.defineProperty(n, k, d.get ? d : {
12
+ enumerable: true,
13
+ get: () => e[k]
14
+ });
15
+ }
16
+ }
17
+ }
18
+ n.default = e;
19
+ return Object.freeze(n);
20
+ }
21
+ const Typesafe__namespace = /* @__PURE__ */ _interopNamespaceDefault(Typesafe);
22
+ class VimeoConfigProcessor {
23
+ getProjectConfigSchema(slug) {
24
+ return Typesafe__namespace.union(
25
+ (input, path = []) => Typesafe__namespace.valueAt(input, ["vimeo", "token"]) === void 0 ? {} : Typesafe__namespace.fail(path),
26
+ Typesafe__namespace.object({
27
+ vimeo: Config.vimeoConfigSchema
28
+ })
29
+ );
30
+ }
31
+ prepareConfigTemplate(template, { env }) {
32
+ return {
33
+ ...template,
34
+ projectDefaults: {
35
+ ...template.projectDefaults,
36
+ vimeo: {
37
+ token: `%?project.secret.vimeo.token||project.env.VIMEO_TOKEN%`
38
+ }
39
+ }
40
+ };
41
+ }
42
+ }
43
+ exports.VimeoConfigProcessor = VimeoConfigProcessor;
44
+ //# sourceMappingURL=VimeoConfigProcessor.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VimeoConfigProcessor.cjs","sources":["../../../../packages/engine-vimeo-plugin/src/VimeoConfigProcessor.ts"],"sourcesContent":["import { ConfigProcessor, ConfigTemplate, ConfigTemplateContext } from '@contember/engine-plugins'\nimport * as Typesafe from '@contember/typesafe'\nimport { ProjectVimeoConfig, vimeoConfigSchema } from './Config'\n\nexport class VimeoConfigProcessor implements ConfigProcessor<ProjectVimeoConfig> {\n\tgetProjectConfigSchema?(slug: string): Typesafe.Type<ProjectVimeoConfig> {\n\t\treturn Typesafe.union(\n\t\t\t(input, path = []) => Typesafe.valueAt(input, ['vimeo', 'token']) === undefined ? {} : Typesafe.fail(path),\n\t\t\tTypesafe.object({\n\t\t\t\tvimeo: vimeoConfigSchema,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprepareConfigTemplate(template: ConfigTemplate, { env }: ConfigTemplateContext) {\n\t\treturn {\n\t\t\t...template,\n\t\t\tprojectDefaults: {\n\t\t\t\t...template.projectDefaults,\n\t\t\t\tvimeo: {\n\t\t\t\t\ttoken: `%?project.secret.vimeo.token||project.env.VIMEO_TOKEN%`,\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":["Typesafe","vimeoConfigSchema"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIO,MAAM,qBAAoE;AAAA,EAChF,uBAAwB,MAAiD;AACxE,WAAOA,oBAAS;AAAA,MACf,CAAC,OAAO,OAAO,CAAA,MAAOA,oBAAS,QAAQ,OAAO,CAAC,SAAS,OAAO,CAAC,MAAM,SAAY,CAAK,IAAAA,oBAAS,KAAK,IAAI;AAAA,MACzGA,oBAAS,OAAO;AAAA,QACf,OAAOC,OAAA;AAAA,MAAA,CACP;AAAA,IAAA;AAAA,EAEH;AAAA,EAEA,sBAAsB,UAA0B,EAAE,OAA8B;AACxE,WAAA;AAAA,MACN,GAAG;AAAA,MACH,iBAAiB;AAAA,QAChB,GAAG,SAAS;AAAA,QACZ,OAAO;AAAA,UACN,OAAO;AAAA,QACR;AAAA,MACD;AAAA,IAAA;AAAA,EAEF;AACD;;"}
@@ -0,0 +1,27 @@
1
+ import * as Typesafe from "@contember/typesafe";
2
+ import { vimeoConfigSchema } from "./Config.js";
3
+ class VimeoConfigProcessor {
4
+ getProjectConfigSchema(slug) {
5
+ return Typesafe.union(
6
+ (input, path = []) => Typesafe.valueAt(input, ["vimeo", "token"]) === void 0 ? {} : Typesafe.fail(path),
7
+ Typesafe.object({
8
+ vimeo: vimeoConfigSchema
9
+ })
10
+ );
11
+ }
12
+ prepareConfigTemplate(template, { env }) {
13
+ return {
14
+ ...template,
15
+ projectDefaults: {
16
+ ...template.projectDefaults,
17
+ vimeo: {
18
+ token: `%?project.secret.vimeo.token||project.env.VIMEO_TOKEN%`
19
+ }
20
+ }
21
+ };
22
+ }
23
+ }
24
+ export {
25
+ VimeoConfigProcessor
26
+ };
27
+ //# sourceMappingURL=VimeoConfigProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VimeoConfigProcessor.js","sources":["../../../../packages/engine-vimeo-plugin/src/VimeoConfigProcessor.ts"],"sourcesContent":["import { ConfigProcessor, ConfigTemplate, ConfigTemplateContext } from '@contember/engine-plugins'\nimport * as Typesafe from '@contember/typesafe'\nimport { ProjectVimeoConfig, vimeoConfigSchema } from './Config'\n\nexport class VimeoConfigProcessor implements ConfigProcessor<ProjectVimeoConfig> {\n\tgetProjectConfigSchema?(slug: string): Typesafe.Type<ProjectVimeoConfig> {\n\t\treturn Typesafe.union(\n\t\t\t(input, path = []) => Typesafe.valueAt(input, ['vimeo', 'token']) === undefined ? {} : Typesafe.fail(path),\n\t\t\tTypesafe.object({\n\t\t\t\tvimeo: vimeoConfigSchema,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprepareConfigTemplate(template: ConfigTemplate, { env }: ConfigTemplateContext) {\n\t\treturn {\n\t\t\t...template,\n\t\t\tprojectDefaults: {\n\t\t\t\t...template.projectDefaults,\n\t\t\t\tvimeo: {\n\t\t\t\t\ttoken: `%?project.secret.vimeo.token||project.env.VIMEO_TOKEN%`,\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAIO,MAAM,qBAAoE;AAAA,EAChF,uBAAwB,MAAiD;AACxE,WAAO,SAAS;AAAA,MACf,CAAC,OAAO,OAAO,CAAA,MAAO,SAAS,QAAQ,OAAO,CAAC,SAAS,OAAO,CAAC,MAAM,SAAY,CAAK,IAAA,SAAS,KAAK,IAAI;AAAA,MACzG,SAAS,OAAO;AAAA,QACf,OAAO;AAAA,MAAA,CACP;AAAA,IAAA;AAAA,EAEH;AAAA,EAEA,sBAAsB,UAA0B,EAAE,OAA8B;AACxE,WAAA;AAAA,MACN,GAAG;AAAA,MACH,iBAAiB;AAAA,QAChB,GAAG,SAAS;AAAA,QACZ,OAAO;AAAA,UACN,OAAO;AAAA,QACR;AAAA,MACD;AAAA,IAAA;AAAA,EAEF;AACD;"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const graphql = require("graphql");
4
+ class VimeoSchemaContributor {
5
+ constructor(vimeoConfig, vimeoServiceFactory) {
6
+ this.vimeoConfig = vimeoConfig;
7
+ this.vimeoServiceFactory = vimeoServiceFactory;
8
+ }
9
+ createSchema(context) {
10
+ if (!this.vimeoConfig) {
11
+ return void 0;
12
+ }
13
+ if (!context.identity.projectRoles.find(
14
+ (role) => context.schema.acl.roles[role]?.vimeo?.upload
15
+ )) {
16
+ return void 0;
17
+ }
18
+ const vimeoService = this.vimeoServiceFactory.create(this.vimeoConfig);
19
+ const uploadMutation = this.createMutation(vimeoService);
20
+ const mutation = {
21
+ generateVimeoUploadUrl: uploadMutation
22
+ };
23
+ return {
24
+ mutation: new graphql.GraphQLObjectType({
25
+ name: "Mutation",
26
+ fields: () => mutation
27
+ }),
28
+ query: new graphql.GraphQLObjectType({
29
+ name: "Query",
30
+ fields: () => ({
31
+ vimeoDummyQuery: {
32
+ type: graphql.GraphQLString
33
+ }
34
+ })
35
+ })
36
+ };
37
+ }
38
+ createMutation(vimeoService) {
39
+ return {
40
+ type: new graphql.GraphQLNonNull(
41
+ new graphql.GraphQLObjectType({
42
+ name: "VimeoUploadResponse",
43
+ fields: {
44
+ ok: { type: new graphql.GraphQLNonNull(graphql.GraphQLBoolean) },
45
+ errors: {
46
+ type: new graphql.GraphQLNonNull(
47
+ new graphql.GraphQLList(
48
+ new graphql.GraphQLNonNull(
49
+ new graphql.GraphQLObjectType({
50
+ name: "VimeoUploadError",
51
+ fields: {
52
+ endUserMessage: { type: graphql.GraphQLString },
53
+ developerMessage: { type: graphql.GraphQLString },
54
+ code: { type: graphql.GraphQLInt }
55
+ }
56
+ })
57
+ )
58
+ )
59
+ )
60
+ },
61
+ result: {
62
+ type: new graphql.GraphQLObjectType({
63
+ name: "VimeoUploadResult",
64
+ fields: {
65
+ uploadUrl: { type: new graphql.GraphQLNonNull(graphql.GraphQLString) },
66
+ vimeoId: { type: new graphql.GraphQLNonNull(graphql.GraphQLString) }
67
+ }
68
+ })
69
+ }
70
+ }
71
+ })
72
+ ),
73
+ args: {
74
+ size: {
75
+ type: new graphql.GraphQLNonNull(graphql.GraphQLInt)
76
+ }
77
+ },
78
+ resolve: async (parent, args) => {
79
+ return await vimeoService.getUploadUrl(args.size);
80
+ }
81
+ };
82
+ }
83
+ }
84
+ exports.VimeoSchemaContributor = VimeoSchemaContributor;
85
+ //# sourceMappingURL=VimeoSchemaContributor.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VimeoSchemaContributor.cjs","sources":["../../../../packages/engine-vimeo-plugin/src/VimeoSchemaContributor.ts"],"sourcesContent":["import {\n\tGraphQLBoolean,\n\tGraphQLFieldConfig,\n\tGraphQLInt,\n\tGraphQLList,\n\tGraphQLNonNull,\n\tGraphQLObjectType,\n\tGraphQLSchemaConfig,\n\tGraphQLString,\n} from 'graphql'\nimport { VimeoService, VimeoServiceFactory } from './VimeoService'\nimport { VimeoConfig } from './Config'\nimport { GraphQLSchemaContributor, GraphQLSchemaContributorContext } from '@contember/engine-plugins'\n\ninterface VimeoAcl {\n\tupload?: boolean\n}\n\nexport class VimeoSchemaContributor implements GraphQLSchemaContributor {\n\tconstructor(\n\t\tprivate readonly vimeoConfig: VimeoConfig | undefined,\n\t\tprivate readonly vimeoServiceFactory: VimeoServiceFactory,\n\t) {}\n\n\tcreateSchema(context: GraphQLSchemaContributorContext): GraphQLSchemaConfig | undefined {\n\t\tif (!this.vimeoConfig) {\n\t\t\treturn undefined\n\t\t}\n\n\t\tif (\n\t\t\t!context.identity.projectRoles.find(\n\t\t\t\trole => (context.schema.acl.roles[role]?.vimeo as VimeoAcl | undefined)?.upload,\n\t\t\t)\n\t\t) {\n\t\t\treturn undefined\n\t\t}\n\n\t\tconst vimeoService = this.vimeoServiceFactory.create(this.vimeoConfig)\n\n\t\tconst uploadMutation = this.createMutation(vimeoService)\n\t\tconst mutation = {\n\t\t\tgenerateVimeoUploadUrl: uploadMutation as GraphQLFieldConfig<any, any, any>,\n\t\t}\n\t\treturn {\n\t\t\tmutation: new GraphQLObjectType({\n\t\t\t\tname: 'Mutation',\n\t\t\t\tfields: () => mutation,\n\t\t\t}),\n\t\t\tquery: new GraphQLObjectType({\n\t\t\t\tname: 'Query',\n\t\t\t\tfields: () => ({\n\t\t\t\t\tvimeoDummyQuery: {\n\t\t\t\t\t\ttype: GraphQLString,\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t}),\n\t\t}\n\t}\n\n\tprivate createMutation(vimeoService: VimeoService): GraphQLFieldConfig<any, any, any> {\n\t\treturn {\n\t\t\ttype: new GraphQLNonNull(\n\t\t\t\tnew GraphQLObjectType({\n\t\t\t\t\tname: 'VimeoUploadResponse',\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tok: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\t\t\t\t\terrors: {\n\t\t\t\t\t\t\ttype: new GraphQLNonNull(\n\t\t\t\t\t\t\t\tnew GraphQLList(\n\t\t\t\t\t\t\t\t\tnew GraphQLNonNull(\n\t\t\t\t\t\t\t\t\t\tnew GraphQLObjectType({\n\t\t\t\t\t\t\t\t\t\t\tname: 'VimeoUploadError',\n\t\t\t\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\t\t\t\tendUserMessage: { type: GraphQLString },\n\t\t\t\t\t\t\t\t\t\t\t\tdeveloperMessage: { type: GraphQLString },\n\t\t\t\t\t\t\t\t\t\t\t\tcode: { type: GraphQLInt },\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\ttype: new GraphQLObjectType({\n\t\t\t\t\t\t\t\tname: 'VimeoUploadResult',\n\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\tuploadUrl: { type: new GraphQLNonNull(GraphQLString) },\n\t\t\t\t\t\t\t\t\tvimeoId: { type: new GraphQLNonNull(GraphQLString) },\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t),\n\t\t\targs: {\n\t\t\t\tsize: {\n\t\t\t\t\ttype: new GraphQLNonNull(GraphQLInt),\n\t\t\t\t},\n\t\t\t},\n\t\t\tresolve: async (parent: any, args: { size: number }) => {\n\t\t\t\treturn await vimeoService.getUploadUrl(args.size)\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":["GraphQLObjectType","GraphQLString","GraphQLNonNull","GraphQLBoolean","GraphQLList","GraphQLInt"],"mappings":";;;AAkBO,MAAM,uBAA2D;AAAA,EACvE,YACkB,aACA,qBAChB;AAFgB,SAAA,cAAA;AACA,SAAA,sBAAA;AAAA,EACf;AAAA,EAEH,aAAa,SAA2E;AACnF,QAAA,CAAC,KAAK,aAAa;AACf,aAAA;AAAA,IACR;AAGC,QAAA,CAAC,QAAQ,SAAS,aAAa;AAAA,MAC9B,UAAS,QAAQ,OAAO,IAAI,MAAM,IAAI,GAAG,OAAgC;AAAA,IAAA,GAEzE;AACM,aAAA;AAAA,IACR;AAEA,UAAM,eAAe,KAAK,oBAAoB,OAAO,KAAK,WAAW;AAE/D,UAAA,iBAAiB,KAAK,eAAe,YAAY;AACvD,UAAM,WAAW;AAAA,MAChB,wBAAwB;AAAA,IAAA;AAElB,WAAA;AAAA,MACN,UAAU,IAAIA,QAAAA,kBAAkB;AAAA,QAC/B,MAAM;AAAA,QACN,QAAQ,MAAM;AAAA,MAAA,CACd;AAAA,MACD,OAAO,IAAIA,QAAAA,kBAAkB;AAAA,QAC5B,MAAM;AAAA,QACN,QAAQ,OAAO;AAAA,UACd,iBAAiB;AAAA,YAChB,MAAMC,QAAA;AAAA,UACP;AAAA,QAAA;AAAA,MACD,CACA;AAAA,IAAA;AAAA,EAEH;AAAA,EAEQ,eAAe,cAA+D;AAC9E,WAAA;AAAA,MACN,MAAM,IAAIC,QAAA;AAAA,QACT,IAAIF,0BAAkB;AAAA,UACrB,MAAM;AAAA,UACN,QAAQ;AAAA,YACP,IAAI,EAAE,MAAM,IAAIE,QAAA,eAAeC,QAAc,cAAA,EAAE;AAAA,YAC/C,QAAQ;AAAA,cACP,MAAM,IAAID,QAAA;AAAA,gBACT,IAAIE,QAAA;AAAA,kBACH,IAAIF,QAAA;AAAA,oBACH,IAAIF,0BAAkB;AAAA,sBACrB,MAAM;AAAA,sBACN,QAAQ;AAAA,wBACP,gBAAgB,EAAE,MAAMC,sBAAc;AAAA,wBACtC,kBAAkB,EAAE,MAAMA,sBAAc;AAAA,wBACxC,MAAM,EAAE,MAAMI,mBAAW;AAAA,sBAC1B;AAAA,oBAAA,CACA;AAAA,kBACF;AAAA,gBACD;AAAA,cACD;AAAA,YACD;AAAA,YACA,QAAQ;AAAA,cACP,MAAM,IAAIL,QAAAA,kBAAkB;AAAA,gBAC3B,MAAM;AAAA,gBACN,QAAQ;AAAA,kBACP,WAAW,EAAE,MAAM,IAAIE,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,kBACrD,SAAS,EAAE,MAAM,IAAIC,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,gBACpD;AAAA,cAAA,CACA;AAAA,YACF;AAAA,UACD;AAAA,QAAA,CACA;AAAA,MACF;AAAA,MACA,MAAM;AAAA,QACL,MAAM;AAAA,UACL,MAAM,IAAIC,QAAA,eAAeG,kBAAU;AAAA,QACpC;AAAA,MACD;AAAA,MACA,SAAS,OAAO,QAAa,SAA2B;AACvD,eAAO,MAAM,aAAa,aAAa,KAAK,IAAI;AAAA,MACjD;AAAA,IAAA;AAAA,EAEF;AACD;;"}
@@ -0,0 +1,85 @@
1
+ import { GraphQLObjectType, GraphQLString, GraphQLNonNull, GraphQLBoolean, GraphQLList, GraphQLInt } from "graphql";
2
+ class VimeoSchemaContributor {
3
+ constructor(vimeoConfig, vimeoServiceFactory) {
4
+ this.vimeoConfig = vimeoConfig;
5
+ this.vimeoServiceFactory = vimeoServiceFactory;
6
+ }
7
+ createSchema(context) {
8
+ if (!this.vimeoConfig) {
9
+ return void 0;
10
+ }
11
+ if (!context.identity.projectRoles.find(
12
+ (role) => context.schema.acl.roles[role]?.vimeo?.upload
13
+ )) {
14
+ return void 0;
15
+ }
16
+ const vimeoService = this.vimeoServiceFactory.create(this.vimeoConfig);
17
+ const uploadMutation = this.createMutation(vimeoService);
18
+ const mutation = {
19
+ generateVimeoUploadUrl: uploadMutation
20
+ };
21
+ return {
22
+ mutation: new GraphQLObjectType({
23
+ name: "Mutation",
24
+ fields: () => mutation
25
+ }),
26
+ query: new GraphQLObjectType({
27
+ name: "Query",
28
+ fields: () => ({
29
+ vimeoDummyQuery: {
30
+ type: GraphQLString
31
+ }
32
+ })
33
+ })
34
+ };
35
+ }
36
+ createMutation(vimeoService) {
37
+ return {
38
+ type: new GraphQLNonNull(
39
+ new GraphQLObjectType({
40
+ name: "VimeoUploadResponse",
41
+ fields: {
42
+ ok: { type: new GraphQLNonNull(GraphQLBoolean) },
43
+ errors: {
44
+ type: new GraphQLNonNull(
45
+ new GraphQLList(
46
+ new GraphQLNonNull(
47
+ new GraphQLObjectType({
48
+ name: "VimeoUploadError",
49
+ fields: {
50
+ endUserMessage: { type: GraphQLString },
51
+ developerMessage: { type: GraphQLString },
52
+ code: { type: GraphQLInt }
53
+ }
54
+ })
55
+ )
56
+ )
57
+ )
58
+ },
59
+ result: {
60
+ type: new GraphQLObjectType({
61
+ name: "VimeoUploadResult",
62
+ fields: {
63
+ uploadUrl: { type: new GraphQLNonNull(GraphQLString) },
64
+ vimeoId: { type: new GraphQLNonNull(GraphQLString) }
65
+ }
66
+ })
67
+ }
68
+ }
69
+ })
70
+ ),
71
+ args: {
72
+ size: {
73
+ type: new GraphQLNonNull(GraphQLInt)
74
+ }
75
+ },
76
+ resolve: async (parent, args) => {
77
+ return await vimeoService.getUploadUrl(args.size);
78
+ }
79
+ };
80
+ }
81
+ }
82
+ export {
83
+ VimeoSchemaContributor
84
+ };
85
+ //# sourceMappingURL=VimeoSchemaContributor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VimeoSchemaContributor.js","sources":["../../../../packages/engine-vimeo-plugin/src/VimeoSchemaContributor.ts"],"sourcesContent":["import {\n\tGraphQLBoolean,\n\tGraphQLFieldConfig,\n\tGraphQLInt,\n\tGraphQLList,\n\tGraphQLNonNull,\n\tGraphQLObjectType,\n\tGraphQLSchemaConfig,\n\tGraphQLString,\n} from 'graphql'\nimport { VimeoService, VimeoServiceFactory } from './VimeoService'\nimport { VimeoConfig } from './Config'\nimport { GraphQLSchemaContributor, GraphQLSchemaContributorContext } from '@contember/engine-plugins'\n\ninterface VimeoAcl {\n\tupload?: boolean\n}\n\nexport class VimeoSchemaContributor implements GraphQLSchemaContributor {\n\tconstructor(\n\t\tprivate readonly vimeoConfig: VimeoConfig | undefined,\n\t\tprivate readonly vimeoServiceFactory: VimeoServiceFactory,\n\t) {}\n\n\tcreateSchema(context: GraphQLSchemaContributorContext): GraphQLSchemaConfig | undefined {\n\t\tif (!this.vimeoConfig) {\n\t\t\treturn undefined\n\t\t}\n\n\t\tif (\n\t\t\t!context.identity.projectRoles.find(\n\t\t\t\trole => (context.schema.acl.roles[role]?.vimeo as VimeoAcl | undefined)?.upload,\n\t\t\t)\n\t\t) {\n\t\t\treturn undefined\n\t\t}\n\n\t\tconst vimeoService = this.vimeoServiceFactory.create(this.vimeoConfig)\n\n\t\tconst uploadMutation = this.createMutation(vimeoService)\n\t\tconst mutation = {\n\t\t\tgenerateVimeoUploadUrl: uploadMutation as GraphQLFieldConfig<any, any, any>,\n\t\t}\n\t\treturn {\n\t\t\tmutation: new GraphQLObjectType({\n\t\t\t\tname: 'Mutation',\n\t\t\t\tfields: () => mutation,\n\t\t\t}),\n\t\t\tquery: new GraphQLObjectType({\n\t\t\t\tname: 'Query',\n\t\t\t\tfields: () => ({\n\t\t\t\t\tvimeoDummyQuery: {\n\t\t\t\t\t\ttype: GraphQLString,\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t}),\n\t\t}\n\t}\n\n\tprivate createMutation(vimeoService: VimeoService): GraphQLFieldConfig<any, any, any> {\n\t\treturn {\n\t\t\ttype: new GraphQLNonNull(\n\t\t\t\tnew GraphQLObjectType({\n\t\t\t\t\tname: 'VimeoUploadResponse',\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tok: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\t\t\t\t\terrors: {\n\t\t\t\t\t\t\ttype: new GraphQLNonNull(\n\t\t\t\t\t\t\t\tnew GraphQLList(\n\t\t\t\t\t\t\t\t\tnew GraphQLNonNull(\n\t\t\t\t\t\t\t\t\t\tnew GraphQLObjectType({\n\t\t\t\t\t\t\t\t\t\t\tname: 'VimeoUploadError',\n\t\t\t\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\t\t\t\tendUserMessage: { type: GraphQLString },\n\t\t\t\t\t\t\t\t\t\t\t\tdeveloperMessage: { type: GraphQLString },\n\t\t\t\t\t\t\t\t\t\t\t\tcode: { type: GraphQLInt },\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tresult: {\n\t\t\t\t\t\t\ttype: new GraphQLObjectType({\n\t\t\t\t\t\t\t\tname: 'VimeoUploadResult',\n\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\tuploadUrl: { type: new GraphQLNonNull(GraphQLString) },\n\t\t\t\t\t\t\t\t\tvimeoId: { type: new GraphQLNonNull(GraphQLString) },\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t),\n\t\t\targs: {\n\t\t\t\tsize: {\n\t\t\t\t\ttype: new GraphQLNonNull(GraphQLInt),\n\t\t\t\t},\n\t\t\t},\n\t\t\tresolve: async (parent: any, args: { size: number }) => {\n\t\t\t\treturn await vimeoService.getUploadUrl(args.size)\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";AAkBO,MAAM,uBAA2D;AAAA,EACvE,YACkB,aACA,qBAChB;AAFgB,SAAA,cAAA;AACA,SAAA,sBAAA;AAAA,EACf;AAAA,EAEH,aAAa,SAA2E;AACnF,QAAA,CAAC,KAAK,aAAa;AACf,aAAA;AAAA,IACR;AAGC,QAAA,CAAC,QAAQ,SAAS,aAAa;AAAA,MAC9B,UAAS,QAAQ,OAAO,IAAI,MAAM,IAAI,GAAG,OAAgC;AAAA,IAAA,GAEzE;AACM,aAAA;AAAA,IACR;AAEA,UAAM,eAAe,KAAK,oBAAoB,OAAO,KAAK,WAAW;AAE/D,UAAA,iBAAiB,KAAK,eAAe,YAAY;AACvD,UAAM,WAAW;AAAA,MAChB,wBAAwB;AAAA,IAAA;AAElB,WAAA;AAAA,MACN,UAAU,IAAI,kBAAkB;AAAA,QAC/B,MAAM;AAAA,QACN,QAAQ,MAAM;AAAA,MAAA,CACd;AAAA,MACD,OAAO,IAAI,kBAAkB;AAAA,QAC5B,MAAM;AAAA,QACN,QAAQ,OAAO;AAAA,UACd,iBAAiB;AAAA,YAChB,MAAM;AAAA,UACP;AAAA,QAAA;AAAA,MACD,CACA;AAAA,IAAA;AAAA,EAEH;AAAA,EAEQ,eAAe,cAA+D;AAC9E,WAAA;AAAA,MACN,MAAM,IAAI;AAAA,QACT,IAAI,kBAAkB;AAAA,UACrB,MAAM;AAAA,UACN,QAAQ;AAAA,YACP,IAAI,EAAE,MAAM,IAAI,eAAe,cAAc,EAAE;AAAA,YAC/C,QAAQ;AAAA,cACP,MAAM,IAAI;AAAA,gBACT,IAAI;AAAA,kBACH,IAAI;AAAA,oBACH,IAAI,kBAAkB;AAAA,sBACrB,MAAM;AAAA,sBACN,QAAQ;AAAA,wBACP,gBAAgB,EAAE,MAAM,cAAc;AAAA,wBACtC,kBAAkB,EAAE,MAAM,cAAc;AAAA,wBACxC,MAAM,EAAE,MAAM,WAAW;AAAA,sBAC1B;AAAA,oBAAA,CACA;AAAA,kBACF;AAAA,gBACD;AAAA,cACD;AAAA,YACD;AAAA,YACA,QAAQ;AAAA,cACP,MAAM,IAAI,kBAAkB;AAAA,gBAC3B,MAAM;AAAA,gBACN,QAAQ;AAAA,kBACP,WAAW,EAAE,MAAM,IAAI,eAAe,aAAa,EAAE;AAAA,kBACrD,SAAS,EAAE,MAAM,IAAI,eAAe,aAAa,EAAE;AAAA,gBACpD;AAAA,cAAA,CACA;AAAA,YACF;AAAA,UACD;AAAA,QAAA,CACA;AAAA,MACF;AAAA,MACA,MAAM;AAAA,QACL,MAAM;AAAA,UACL,MAAM,IAAI,eAAe,UAAU;AAAA,QACpC;AAAA,MACD;AAAA,MACA,SAAS,OAAO,QAAa,SAA2B;AACvD,eAAO,MAAM,aAAa,aAAa,KAAK,IAAI;AAAA,MACjD;AAAA,IAAA;AAAA,EAEF;AACD;"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ class VimeoService {
4
+ constructor(config) {
5
+ this.config = config;
6
+ }
7
+ async getUploadUrl(filesize) {
8
+ const authorizationHeader = "Bearer " + this.config.token;
9
+ const response = await fetch("https://api.vimeo.com/me/videos?fields=uri,name,upload", {
10
+ method: "POST",
11
+ headers: {
12
+ "Content-Type": "application/json",
13
+ "Authorization": authorizationHeader
14
+ },
15
+ body: JSON.stringify({
16
+ upload: {
17
+ approach: "tus",
18
+ size: filesize
19
+ }
20
+ })
21
+ });
22
+ if (response.status !== 200) {
23
+ const { error_code, developer_message, error } = await response.json();
24
+ return {
25
+ ok: false,
26
+ errors: [
27
+ {
28
+ code: error_code,
29
+ developerMessage: developer_message,
30
+ endUserMessage: error
31
+ }
32
+ ]
33
+ };
34
+ }
35
+ const data = await response.json();
36
+ if (!data.uri.startsWith("/videos/")) {
37
+ throw new Error(`Invalid vimeo response with following URI: ${data.uri}`);
38
+ }
39
+ const vimeoId = data.uri.substring(8);
40
+ return { ok: true, errors: [], result: { uploadUrl: data.upload.upload_link, vimeoId } };
41
+ }
42
+ }
43
+ class VimeoServiceFactory {
44
+ create(config) {
45
+ return new VimeoService(config);
46
+ }
47
+ }
48
+ exports.VimeoService = VimeoService;
49
+ exports.VimeoServiceFactory = VimeoServiceFactory;
50
+ //# sourceMappingURL=VimeoService.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VimeoService.cjs","sources":["../../../../packages/engine-vimeo-plugin/src/VimeoService.ts"],"sourcesContent":["import { VimeoConfig } from './Config'\n\nexport class VimeoService {\n\tconstructor(public readonly config: VimeoConfig) {}\n\n\tpublic async getUploadUrl(filesize: number): Promise<{\n\t\tok: boolean\n\t\terrors: { code: number; endUserMessage: string; developerMessage: string }[]\n\t\tresult?: { uploadUrl: string; vimeoId: string }\n\t}> {\n\t\tconst authorizationHeader = 'Bearer ' + this.config.token\n\n\t\tconst response = await fetch('https://api.vimeo.com/me/videos?fields=uri,name,upload', {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t'Authorization': authorizationHeader,\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\tupload: {\n\t\t\t\t\tapproach: 'tus',\n\t\t\t\t\tsize: filesize,\n\t\t\t\t},\n\t\t\t}),\n\t\t})\n\t\tif (response.status !== 200) {\n\t\t\tconst { error_code, developer_message, error } = (await response.json()) as any\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terrors: [\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: error_code,\n\t\t\t\t\t\tdeveloperMessage: developer_message,\n\t\t\t\t\t\tendUserMessage: error,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}\n\t\t}\n\t\tconst data: any = await response.json()\n\t\tif (!data.uri.startsWith('/videos/')) {\n\t\t\tthrow new Error(`Invalid vimeo response with following URI: ${data.uri}`)\n\t\t}\n\t\tconst vimeoId = data.uri.substring(8)\n\t\treturn { ok: true, errors: [], result: { uploadUrl: data.upload.upload_link, vimeoId } }\n\t}\n}\n\nexport class VimeoServiceFactory {\n\tpublic create(config: VimeoConfig) {\n\t\treturn new VimeoService(config)\n\t}\n}\n"],"names":[],"mappings":";;AAEO,MAAM,aAAa;AAAA,EACzB,YAA4B,QAAqB;AAArB,SAAA,SAAA;AAAA,EAAsB;AAAA,EAElD,MAAa,aAAa,UAIvB;AACI,UAAA,sBAAsB,YAAY,KAAK,OAAO;AAE9C,UAAA,WAAW,MAAM,MAAM,0DAA0D;AAAA,MACtF,QAAQ;AAAA,MACR,SAAS;AAAA,QACR,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,MAClB;AAAA,MACA,MAAM,KAAK,UAAU;AAAA,QACpB,QAAQ;AAAA,UACP,UAAU;AAAA,UACV,MAAM;AAAA,QACP;AAAA,MAAA,CACA;AAAA,IAAA,CACD;AACG,QAAA,SAAS,WAAW,KAAK;AAC5B,YAAM,EAAE,YAAY,mBAAmB,MAAW,IAAA,MAAM,SAAS;AAC1D,aAAA;AAAA,QACN,IAAI;AAAA,QACJ,QAAQ;AAAA,UACP;AAAA,YACC,MAAM;AAAA,YACN,kBAAkB;AAAA,YAClB,gBAAgB;AAAA,UACjB;AAAA,QACD;AAAA,MAAA;AAAA,IAEF;AACM,UAAA,OAAY,MAAM,SAAS;AACjC,QAAI,CAAC,KAAK,IAAI,WAAW,UAAU,GAAG;AACrC,YAAM,IAAI,MAAM,8CAA8C,KAAK,GAAG,EAAE;AAAA,IACzE;AACA,UAAM,UAAU,KAAK,IAAI,UAAU,CAAC;AACpC,WAAO,EAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,QAAQ,EAAE,WAAW,KAAK,OAAO,aAAa,QAAU,EAAA;AAAA,EACxF;AACD;AAEO,MAAM,oBAAoB;AAAA,EACzB,OAAO,QAAqB;AAC3B,WAAA,IAAI,aAAa,MAAM;AAAA,EAC/B;AACD;;;"}
@@ -0,0 +1,50 @@
1
+ class VimeoService {
2
+ constructor(config) {
3
+ this.config = config;
4
+ }
5
+ async getUploadUrl(filesize) {
6
+ const authorizationHeader = "Bearer " + this.config.token;
7
+ const response = await fetch("https://api.vimeo.com/me/videos?fields=uri,name,upload", {
8
+ method: "POST",
9
+ headers: {
10
+ "Content-Type": "application/json",
11
+ "Authorization": authorizationHeader
12
+ },
13
+ body: JSON.stringify({
14
+ upload: {
15
+ approach: "tus",
16
+ size: filesize
17
+ }
18
+ })
19
+ });
20
+ if (response.status !== 200) {
21
+ const { error_code, developer_message, error } = await response.json();
22
+ return {
23
+ ok: false,
24
+ errors: [
25
+ {
26
+ code: error_code,
27
+ developerMessage: developer_message,
28
+ endUserMessage: error
29
+ }
30
+ ]
31
+ };
32
+ }
33
+ const data = await response.json();
34
+ if (!data.uri.startsWith("/videos/")) {
35
+ throw new Error(`Invalid vimeo response with following URI: ${data.uri}`);
36
+ }
37
+ const vimeoId = data.uri.substring(8);
38
+ return { ok: true, errors: [], result: { uploadUrl: data.upload.upload_link, vimeoId } };
39
+ }
40
+ }
41
+ class VimeoServiceFactory {
42
+ create(config) {
43
+ return new VimeoService(config);
44
+ }
45
+ }
46
+ export {
47
+ VimeoService,
48
+ VimeoServiceFactory
49
+ };
50
+ //# sourceMappingURL=VimeoService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VimeoService.js","sources":["../../../../packages/engine-vimeo-plugin/src/VimeoService.ts"],"sourcesContent":["import { VimeoConfig } from './Config'\n\nexport class VimeoService {\n\tconstructor(public readonly config: VimeoConfig) {}\n\n\tpublic async getUploadUrl(filesize: number): Promise<{\n\t\tok: boolean\n\t\terrors: { code: number; endUserMessage: string; developerMessage: string }[]\n\t\tresult?: { uploadUrl: string; vimeoId: string }\n\t}> {\n\t\tconst authorizationHeader = 'Bearer ' + this.config.token\n\n\t\tconst response = await fetch('https://api.vimeo.com/me/videos?fields=uri,name,upload', {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t'Authorization': authorizationHeader,\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\tupload: {\n\t\t\t\t\tapproach: 'tus',\n\t\t\t\t\tsize: filesize,\n\t\t\t\t},\n\t\t\t}),\n\t\t})\n\t\tif (response.status !== 200) {\n\t\t\tconst { error_code, developer_message, error } = (await response.json()) as any\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terrors: [\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: error_code,\n\t\t\t\t\t\tdeveloperMessage: developer_message,\n\t\t\t\t\t\tendUserMessage: error,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}\n\t\t}\n\t\tconst data: any = await response.json()\n\t\tif (!data.uri.startsWith('/videos/')) {\n\t\t\tthrow new Error(`Invalid vimeo response with following URI: ${data.uri}`)\n\t\t}\n\t\tconst vimeoId = data.uri.substring(8)\n\t\treturn { ok: true, errors: [], result: { uploadUrl: data.upload.upload_link, vimeoId } }\n\t}\n}\n\nexport class VimeoServiceFactory {\n\tpublic create(config: VimeoConfig) {\n\t\treturn new VimeoService(config)\n\t}\n}\n"],"names":[],"mappings":"AAEO,MAAM,aAAa;AAAA,EACzB,YAA4B,QAAqB;AAArB,SAAA,SAAA;AAAA,EAAsB;AAAA,EAElD,MAAa,aAAa,UAIvB;AACI,UAAA,sBAAsB,YAAY,KAAK,OAAO;AAE9C,UAAA,WAAW,MAAM,MAAM,0DAA0D;AAAA,MACtF,QAAQ;AAAA,MACR,SAAS;AAAA,QACR,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,MAClB;AAAA,MACA,MAAM,KAAK,UAAU;AAAA,QACpB,QAAQ;AAAA,UACP,UAAU;AAAA,UACV,MAAM;AAAA,QACP;AAAA,MAAA,CACA;AAAA,IAAA,CACD;AACG,QAAA,SAAS,WAAW,KAAK;AAC5B,YAAM,EAAE,YAAY,mBAAmB,MAAW,IAAA,MAAM,SAAS;AAC1D,aAAA;AAAA,QACN,IAAI;AAAA,QACJ,QAAQ;AAAA,UACP;AAAA,YACC,MAAM;AAAA,YACN,kBAAkB;AAAA,YAClB,gBAAgB;AAAA,UACjB;AAAA,QACD;AAAA,MAAA;AAAA,IAEF;AACM,UAAA,OAAY,MAAM,SAAS;AACjC,QAAI,CAAC,KAAK,IAAI,WAAW,UAAU,GAAG;AACrC,YAAM,IAAI,MAAM,8CAA8C,KAAK,GAAG,EAAE;AAAA,IACzE;AACA,UAAM,UAAU,KAAK,IAAI,UAAU,CAAC;AACpC,WAAO,EAAE,IAAI,MAAM,QAAQ,CAAC,GAAG,QAAQ,EAAE,WAAW,KAAK,OAAO,aAAa,QAAU,EAAA;AAAA,EACxF;AACD;AAEO,MAAM,oBAAoB;AAAA,EACzB,OAAO,QAAqB;AAC3B,WAAA,IAAI,aAAa,MAAM;AAAA,EAC/B;AACD;"}