@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.
- package/dist/development/index.cjs +28 -0
- package/dist/development/index.cjs.map +1 -0
- package/dist/development/index.js +29 -0
- package/dist/development/index.js.map +1 -0
- package/dist/development/src/Config.cjs +25 -0
- package/dist/development/src/Config.cjs.map +1 -0
- package/dist/development/src/Config.js +8 -0
- package/dist/development/src/Config.js.map +1 -0
- package/dist/development/src/VimeoConfigProcessor.cjs +44 -0
- package/dist/development/src/VimeoConfigProcessor.cjs.map +1 -0
- package/dist/development/src/VimeoConfigProcessor.js +27 -0
- package/dist/development/src/VimeoConfigProcessor.js.map +1 -0
- package/dist/development/src/VimeoSchemaContributor.cjs +85 -0
- package/dist/development/src/VimeoSchemaContributor.cjs.map +1 -0
- package/dist/development/src/VimeoSchemaContributor.js +85 -0
- package/dist/development/src/VimeoSchemaContributor.js.map +1 -0
- package/dist/development/src/VimeoService.cjs +50 -0
- package/dist/development/src/VimeoService.cjs.map +1 -0
- package/dist/development/src/VimeoService.js +50 -0
- package/dist/development/src/VimeoService.js.map +1 -0
- package/dist/production/index.cjs +28 -0
- package/dist/production/index.cjs.map +1 -0
- package/dist/production/index.js +29 -0
- package/dist/production/index.js.map +1 -0
- package/dist/production/src/Config.cjs +25 -0
- package/dist/production/src/Config.cjs.map +1 -0
- package/dist/production/src/Config.js +8 -0
- package/dist/production/src/Config.js.map +1 -0
- package/dist/production/src/VimeoConfigProcessor.cjs +44 -0
- package/dist/production/src/VimeoConfigProcessor.cjs.map +1 -0
- package/dist/production/src/VimeoConfigProcessor.js +27 -0
- package/dist/production/src/VimeoConfigProcessor.js.map +1 -0
- package/dist/production/src/VimeoSchemaContributor.cjs +85 -0
- package/dist/production/src/VimeoSchemaContributor.cjs.map +1 -0
- package/dist/production/src/VimeoSchemaContributor.js +85 -0
- package/dist/production/src/VimeoSchemaContributor.js.map +1 -0
- package/dist/production/src/VimeoService.cjs +50 -0
- package/dist/production/src/VimeoService.cjs.map +1 -0
- package/dist/production/src/VimeoService.js +50 -0
- package/dist/production/src/VimeoService.js.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/package.json +23 -11
- package/src/tsconfig.json +1 -1
- package/dist/src/Config.js +0 -31
- package/dist/src/Config.js.map +0 -1
- package/dist/src/VimeoConfigProcessor.js +0 -48
- package/dist/src/VimeoConfigProcessor.js.map +0 -1
- package/dist/src/VimeoSchemaContributor.js +0 -76
- package/dist/src/VimeoSchemaContributor.js.map +0 -1
- package/dist/src/VimeoService.js +0 -51
- package/dist/src/VimeoService.js.map +0 -1
- package/dist/src/index.js +0 -38
- package/dist/src/index.js.map +0 -1
- package/dist/src/tsconfig.tsbuildinfo +0 -1
- /package/dist/{src → types}/Config.d.ts +0 -0
- /package/dist/{src → types}/Config.d.ts.map +0 -0
- /package/dist/{src → types}/VimeoConfigProcessor.d.ts +0 -0
- /package/dist/{src → types}/VimeoConfigProcessor.d.ts.map +0 -0
- /package/dist/{src → types}/VimeoSchemaContributor.d.ts +0 -0
- /package/dist/{src → types}/VimeoSchemaContributor.d.ts.map +0 -0
- /package/dist/{src → types}/VimeoService.d.ts +0 -0
- /package/dist/{src → types}/VimeoService.d.ts.map +0 -0
- /package/dist/{src → types}/index.d.ts +0 -0
- /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;"}
|