@ossy/sdk 0.7.8 → 0.7.10

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.
@@ -1,7 +1,40 @@
1
- import { SDKConfig, Action } from '@ossy/types';
1
+ import { Resource, Job, JobType, SDKConfig, Action } from '@ossy/types';
2
2
  export * from '@ossy/types';
3
3
  export { JobStatus, Jobs } from '@ossy/types';
4
4
 
5
+ interface ResourcesClient {
6
+ search: (payload: {
7
+ query: Record<string, unknown>;
8
+ }) => Promise<Resource<Job>[]>;
9
+ create: (data: {
10
+ type: string;
11
+ location: string;
12
+ name: string;
13
+ content: {
14
+ resourceId: string;
15
+ status: string;
16
+ result: undefined;
17
+ };
18
+ }) => Promise<Resource<Job>>;
19
+ }
20
+ interface JobsClientConfig {
21
+ http?: unknown;
22
+ resources: ResourcesClient;
23
+ }
24
+ declare class JobsClient {
25
+ static location: string;
26
+ private http?;
27
+ private resources;
28
+ static of(config: JobsClientConfig): JobsClient;
29
+ constructor(config: JobsClientConfig);
30
+ get(_query?: string | Record<string, unknown>): Promise<Resource<Job>[]>;
31
+ getUnprocessed(): Promise<Resource<Job>[]>;
32
+ create({ type, resourceId }: {
33
+ type: JobType;
34
+ resourceId: string;
35
+ }): Promise<Resource<Job>>;
36
+ }
37
+
5
38
  declare class SDK {
6
39
  workspaceId?: string;
7
40
  authorization?: string;
@@ -128,6 +161,7 @@ declare class SDK {
128
161
  } | undefined>) => Promise<any>;
129
162
  signOff: (_payload?: Required<{} | undefined>) => Promise<any>;
130
163
  };
164
+ get jobs(): JobsClient;
131
165
  makeRequest: <T extends Action>(action: T) => (_payload?: Required<T["payload"]>) => Promise<any>;
132
166
  }
133
167
 
@@ -0,0 +1 @@
1
+ const e={VisualContentDescriptors:"@ossy/jobs/visual-content-descriptors",ResizeCommonWeb:"@ossy/jobs/resize-common-web"},t={Queued:"queued",InProgress:"in progress",Success:"success",Failed:"failed"};class s{static of(e){return new s(e)}constructor(e){this.http=null==e?void 0:e.http,this.resources=e.resources}get(e={}){const t="string"==typeof e?{id:e}:e;return t.location=s.location,this.resources.search({query:t})}getUnprocessed(){return this.resources.search({query:{$and:[{$or:[{"content.nextReevaluation":{$exists:!1}},{"content.nextReevaluation":null},{"content.nextReevaluation":{$lt:Date.now()}}]},{"content.status":{$in:["queued","failed"]}},{location:"/@ossy/jobs/"},{type:{$regex:"^@ossy/jobs"}}]}})}create({type:i,resourceId:o}){if(!Object.values(e).includes(i))throw new Error(`Job type ${i} does not exist`);if(!o)throw new Error("Resource ID is required");return this.resources.create({type:i,location:s.location,name:`[${t.Queued}] ${o}`,content:{resourceId:o,status:t.Queued,result:void 0}})}}s.location="/@ossy/jobs/";const i={id:"api-tokens.get-all",endpoint:"/users/me/tokens",method:"GET"},o={id:"api-tokens.create",endpoint:"/users/me/tokens",method:"POST"},n={id:"api-tokens.invalidate",endpoint:"/users/me/tokens/:id",method:"DELETE"},r={id:"workspaces.get-all",endpoint:"/workspaces",method:"GET"},d={id:"workspaces.get-current",endpoint:"/workspaces/current",method:"GET"},a={id:"workspaces.get",endpoint:"/workspaces/:id",method:"GET"},u={id:"workspaces.create",endpoint:"/workspaces",method:"POST"},h={id:"workspaces.import-resource-templates",endpoint:"/resource-templates",method:"POST"},c={id:"workspaces.get-resource-templates",endpoint:"/resource-templates",method:"GET"},p={id:"workspaces.create-api-token",endpoint:"/tokens",method:"POST"},m={id:"workspaces.get-api-tokens",endpoint:"/tokens",method:"GET"},k={id:"workspaces.invite-user",endpoint:"/invitations",method:"POST"},l={id:"workspaces.enable-service",endpoint:"/services/enable",method:"POST"},b={id:"workspaces.disable-service",endpoint:"/services/disable",method:"POST"},g={id:"workspaces.get-users",endpoint:"/users",method:"GET"},T={id:"user.get",endpoint:"/users/me",method:"GET"},R={id:"user.get-history",endpoint:"/users/me/history",method:"GET"},q={id:"user.update",endpoint:"/users/me",method:"PUT"},y={id:"resources.create-directory",endpoint:"/resources",method:"POST",payload:{type:"directory"}},w={id:"resources.create",endpoint:"/resources",method:"POST"},v={id:"resources.upload",endpoint:"/resources",method:"POST"},f={id:"resources.upload-named-version",endpoint:"/resources/:id/:name",method:"PUT"},E={id:"resources.get",endpoint:"/resources/:id",method:"GET"},P={id:"resources.list",endpoint:"/resources?:search",method:"GET"},U={id:"resources.search",endpoint:"/resources/search",method:"POST"},O={id:"resources.update-access",endpoint:"/resources/:id/access",method:"PUT"},j={id:"resources.remove",endpoint:"/resources/:id",method:"DELETE"},S={id:"resources.update-content",endpoint:"/resources/:id/content",method:"PUT"},G={id:"resources.move",endpoint:"/resources/:id/location",method:"PUT"},I={id:"resources.rename",endpoint:"/resources/:id/name",method:"PUT"},z={id:"auth.sign-up",endpoint:"/users/sign-up",method:"POST"},$={id:"auth.sign-in",endpoint:"/users/sign-in",method:"POST"},x={id:"auth.verify-sign-in",endpoint:"/users/verify-sign-in?token=:token",method:"GET"},C={id:"auth.verify-invitation",endpoint:"/workspaces/:workspaceId/invitations?token=:token",method:"GET"},D={id:"auth.get-authenticated-user",endpoint:"/users/me",method:"GET"},A={id:"auth.get-authenticated-user-history",endpoint:"/users/me/history",method:"GET"},J={id:"auth.get-user",endpoint:"/users/:id",method:"GET"},L={id:"auth.sign-off",endpoint:"/users/sign-off",method:"GET"};class Q{static of(e){return new Q(e)}constructor(e){this.baseUrl="https://api.ossy.se/api/v0",this.makeRequest=e=>t=>{let s={};(t||e.payload)&&(s=Object.assign(Object.assign({},e.payload||{}),t||{}));let i="apiUrl"in s?null==s?void 0:s.apiUrl:this.baseUrl,o="workspaceId"in s?s.workspaceId:this.workspaceId,n="authorization"in s?s.authorization:this.authorization,r=e.endpoint;if(s){const t=Object.keys(s);r=e.endpoint,r=t.reduce((e,t)=>e.replace(`:${t}`,`${s[t]}`),e.endpoint)}const d=`${i}${r}`,a={method:e.method,credentials:"include",headers:{"Content-Type":"application/json"}};return o&&(a.headers=Object.assign(Object.assign({},a.headers),{workspaceId:o})),n&&(a.headers=Object.assign(Object.assign({},a.headers),{Authorization:n})),"GET"!==a.method&&s&&(a.body=JSON.stringify(s)),fetch(d,a).then(e=>{const t=e.headers.get("Content-Type")||"",s=e.status;return 400===s?e.json().then(e=>Promise.reject(e.error)):[200,204].includes(s)?t.includes("application/json")?e.json():e:Promise.reject(e)})},this.updateConfig(e)}updateConfig(e){this.baseUrl=e.apiUrl||this.baseUrl,this.workspaceId=e.workspaceId||this.workspaceId,this.authorization=e.authorization||this.authorization}get apiTokens(){return{list:this.makeRequest(i).bind(this),create:this.makeRequest(o).bind(this),invalidate:this.makeRequest(n).bind(this)}}get workspaces(){return{current:this.makeRequest(d).bind(this),list:this.makeRequest(r).bind(this),get:this.makeRequest(a).bind(this),create:this.makeRequest(u).bind(this),importResourceTemplates:this.makeRequest(h).bind(this),getResourceTemplates:this.makeRequest(c).bind(this),createApiToken:this.makeRequest(p).bind(this),getApiTokens:this.makeRequest(m).bind(this),inviteUser:this.makeRequest(k).bind(this),enableService:this.makeRequest(l).bind(this),disableService:this.makeRequest(b).bind(this)}}get users(){return{list:this.makeRequest(g).bind(this)}}get currentUser(){return{get:this.makeRequest(T).bind(this),update:this.makeRequest(q).bind(this),history:this.makeRequest(R).bind(this)}}get resources(){return{createDirectory:this.makeRequest(y).bind(this),create:this.makeRequest(w).bind(this),access:this.makeRequest(O).bind(this),upload:({location:e="/",file:t})=>{const s={type:t.type,location:e,name:t.name,size:t.size};return this.makeRequest(v)(s).then(e=>fetch(e.content.uploadUrl,{method:"PUT",body:t}).then(()=>e))},uploadNamedVersion:({id:e,name:t,file:s})=>{const i={id:e,name:t,size:s.size};this.makeRequest(f)(i).then(e=>fetch(e.content.uploadUrl,{method:"PUT",body:s}).then(()=>e))},get:this.makeRequest(E).bind(this),list:e=>{const t=new URLSearchParams(Object.assign({},e)).toString();return this.makeRequest(P)({search:t})},search:this.makeRequest(U).bind(this),remove:this.makeRequest(j).bind(this),updateContent:this.makeRequest(S).bind(this),move:this.makeRequest(G).bind(this),rename:this.makeRequest(I).bind(this)}}get auth(){return{signUp:this.makeRequest(z).bind(this),signIn:this.makeRequest($).bind(this),verifySignIn:this.makeRequest(x).bind(this),verifyInvitation:this.makeRequest(C).bind(this),getAuthenticatedUser:this.makeRequest(D).bind(this),getAuthenticatedUserHistory:this.makeRequest(A).bind(this),getUser:this.makeRequest(J).bind(this),signOff:this.makeRequest(L).bind(this)}}get jobs(){return s.of({resources:this.resources})}}export{t as JobStatus,e as Jobs,Q as SDK};
@@ -1,16 +1,34 @@
1
- export class JobsClient {
1
+ import { Jobs, JobStatus, JobType, Resource, Job } from '@ossy/types';
2
+ export { Jobs, JobStatus };
3
+ interface ResourcesClient {
4
+ search: (payload: {
5
+ query: Record<string, unknown>;
6
+ }) => Promise<Resource<Job>[]>;
7
+ create: (data: {
8
+ type: string;
9
+ location: string;
10
+ name: string;
11
+ content: {
12
+ resourceId: string;
13
+ status: string;
14
+ result: undefined;
15
+ };
16
+ }) => Promise<Resource<Job>>;
17
+ }
18
+ interface JobsClientConfig {
19
+ http?: unknown;
20
+ resources: ResourcesClient;
21
+ }
22
+ export declare class JobsClient {
2
23
  static location: string;
3
- static of(config: any): JobsClient;
4
- constructor(config: any);
5
- http: any;
6
- resources: any;
7
- get(_query?: {}): any;
8
- getUnprocessed(): any;
24
+ private http?;
25
+ private resources;
26
+ static of(config: JobsClientConfig): JobsClient;
27
+ constructor(config: JobsClientConfig);
28
+ get(_query?: string | Record<string, unknown>): Promise<Resource<Job>[]>;
29
+ getUnprocessed(): Promise<Resource<Job>[]>;
9
30
  create({ type, resourceId }: {
10
- type: any;
11
- resourceId: any;
12
- }): any;
31
+ type: JobType;
32
+ resourceId: string;
33
+ }): Promise<Resource<Job>>;
13
34
  }
14
- import { Jobs } from '@ossy/types';
15
- import { JobStatus } from '@ossy/types';
16
- export { Jobs, JobStatus };
@@ -1,5 +1,6 @@
1
1
  import { Action } from './Actions';
2
2
  import { SDKConfig } from './config';
3
+ import { JobsClient } from './jobs-client';
3
4
  export declare class SDK {
4
5
  workspaceId?: string;
5
6
  authorization?: string;
@@ -126,5 +127,6 @@ export declare class SDK {
126
127
  } | undefined>) => Promise<any>;
127
128
  signOff: (_payload?: Required<{} | undefined>) => Promise<any>;
128
129
  };
130
+ get jobs(): JobsClient;
129
131
  makeRequest: <T extends Action>(action: T) => (_payload?: Required<T["payload"]>) => Promise<any>;
130
132
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ossy/sdk",
3
3
  "description": "Sofware Development Kit for interacting with our services",
4
- "version": "0.7.8",
4
+ "version": "0.7.10",
5
5
  "url": "git://github.com/ossy-se/packages/sdk",
6
6
  "source": "src/public.index.ts",
7
7
  "main": "build/public.index.js",
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "license": "MIT",
23
23
  "dependencies": {
24
- "@ossy/types": "^0.0.7"
24
+ "@ossy/types": "^0.0.9"
25
25
  },
26
26
  "scripts": {
27
27
  "start": "",
@@ -36,5 +36,5 @@
36
36
  "/build",
37
37
  "README.md"
38
38
  ],
39
- "gitHead": "444b07347555d52448c3f206db9f492d434222d3"
39
+ "gitHead": "7ae1ba9fdbee442ccd26c947ee0252f66417754b"
40
40
  }
@@ -1 +0,0 @@
1
- const e={id:"api-tokens.get-all",endpoint:"/users/me/tokens",method:"GET"},s={id:"api-tokens.create",endpoint:"/users/me/tokens",method:"POST"},o={id:"api-tokens.invalidate",endpoint:"/users/me/tokens/:id",method:"DELETE"},t={id:"workspaces.get-all",endpoint:"/workspaces",method:"GET"},d={id:"workspaces.get-current",endpoint:"/workspaces/current",method:"GET"},i={id:"workspaces.get",endpoint:"/workspaces/:id",method:"GET"},r={id:"workspaces.create",endpoint:"/workspaces",method:"POST"},n={id:"workspaces.import-resource-templates",endpoint:"/resource-templates",method:"POST"},p={id:"workspaces.get-resource-templates",endpoint:"/resource-templates",method:"GET"},a={id:"workspaces.create-api-token",endpoint:"/tokens",method:"POST"},c={id:"workspaces.get-api-tokens",endpoint:"/tokens",method:"GET"},u={id:"workspaces.invite-user",endpoint:"/invitations",method:"POST"},m={id:"workspaces.enable-service",endpoint:"/services/enable",method:"POST"},h={id:"workspaces.disable-service",endpoint:"/services/disable",method:"POST"},T={id:"workspaces.get-users",endpoint:"/users",method:"GET"},k={id:"user.get",endpoint:"/users/me",method:"GET"},E={id:"user.get-history",endpoint:"/users/me/history",method:"GET"},g={id:"user.update",endpoint:"/users/me",method:"PUT"},P={id:"resources.create-directory",endpoint:"/resources",method:"POST",payload:{type:"directory"}},l={id:"resources.create",endpoint:"/resources",method:"POST"},w={id:"resources.upload",endpoint:"/resources",method:"POST"},G={id:"resources.upload-named-version",endpoint:"/resources/:id/:name",method:"PUT"},v={id:"resources.get",endpoint:"/resources/:id",method:"GET"},O={id:"resources.list",endpoint:"/resources?:search",method:"GET"},S={id:"resources.search",endpoint:"/resources/search",method:"POST"},y={id:"resources.update-access",endpoint:"/resources/:id/access",method:"PUT"},f={id:"resources.remove",endpoint:"/resources/:id",method:"DELETE"},U={id:"resources.update-content",endpoint:"/resources/:id/content",method:"PUT"},b={id:"resources.move",endpoint:"/resources/:id/location",method:"PUT"},D={id:"resources.rename",endpoint:"/resources/:id/name",method:"PUT"},L={id:"auth.sign-up",endpoint:"/users/sign-up",method:"POST"},x={id:"auth.sign-in",endpoint:"/users/sign-in",method:"POST"},I={id:"auth.verify-sign-in",endpoint:"/users/verify-sign-in?token=:token",method:"GET"},j={id:"auth.verify-invitation",endpoint:"/workspaces/:workspaceId/invitations?token=:token",method:"GET"},q={id:"auth.get-authenticated-user",endpoint:"/users/me",method:"GET"},z={id:"auth.get-authenticated-user-history",endpoint:"/users/me/history",method:"GET"},A={id:"auth.get-user",endpoint:"/users/:id",method:"GET"},B={id:"auth.sign-off",endpoint:"/users/sign-off",method:"GET"};export{s as ApiTokenCreate,e as ApiTokenGetAll,o as ApiTokenInvalidate,q as AuthGetAuthenticatedUser,z as AuthGetAuthenticatedUserHistory,A as AuthGetUser,x as AuthSignIn,B as AuthSignOff,L as AuthSignUp,j as AuthVerifyInvitation,I as AuthVerifySignIn,y as ResourceUpdateAccess,l as ResourcesCreate,P as ResourcesCreateDirectory,v as ResourcesGet,O as ResourcesList,b as ResourcesMove,f as ResourcesRemove,D as ResourcesRename,S as ResourcesSearch,U as ResourcesUpdateContent,w as ResourcesUpload,G as ResourcesUploadNamedVersion,k as UserCurrentGet,E as UserCurrentGetHistory,g as UserCurrentUpdate,r as WorkspacesCreate,a as WorkspacesCreateApiToken,h as WorkspacesDisableService,m as WorkspacesEnableService,i as WorkspacesGet,c as WorkspacesGetApiTokens,d as WorkspacesGetCurrent,p as WorkspacesGetResourceTemplates,T as WorkspacesGetUsers,n as WorkspacesImportResourceTemplates,u as WorkspacesInviteUser,t as WorkspacesList};
@@ -1 +0,0 @@
1
- export{JobStatus,Jobs}from"../../types/build/Jobs.js";export{SDK}from"./sdk.js";
@@ -1 +0,0 @@
1
- import{ApiTokenInvalidate as e,ApiTokenCreate as t,ApiTokenGetAll as s,WorkspacesDisableService as i,WorkspacesEnableService as n,WorkspacesInviteUser as a,WorkspacesGetApiTokens as h,WorkspacesCreateApiToken as r,WorkspacesGetResourceTemplates as o,WorkspacesImportResourceTemplates as d,WorkspacesCreate as u,WorkspacesGet as c,WorkspacesList as m,WorkspacesGetCurrent as b,WorkspacesGetUsers as k,UserCurrentGetHistory as p,UserCurrentUpdate as R,UserCurrentGet as l,ResourcesRename as q,ResourcesMove as g,ResourcesUpdateContent as U,ResourcesRemove as y,ResourcesSearch as f,ResourcesList as j,ResourcesGet as v,ResourcesUploadNamedVersion as z,ResourcesUpload as w,ResourceUpdateAccess as I,ResourcesCreate as O,ResourcesCreateDirectory as T,AuthSignOff as A,AuthGetUser as S,AuthGetAuthenticatedUserHistory as C,AuthGetAuthenticatedUser as P,AuthVerifyInvitation as $,AuthVerifySignIn as N,AuthSignIn as x,AuthSignUp as D}from"./Actions.js";class E{static of(e){return new E(e)}constructor(e){this.baseUrl="https://api.ossy.se/api/v0",this.makeRequest=e=>t=>{let s={};(t||e.payload)&&(s=Object.assign(Object.assign({},e.payload||{}),t||{}));let i="apiUrl"in s?null==s?void 0:s.apiUrl:this.baseUrl,n="workspaceId"in s?s.workspaceId:this.workspaceId,a="authorization"in s?s.authorization:this.authorization,h=e.endpoint;if(s){const t=Object.keys(s);h=e.endpoint,h=t.reduce((e,t)=>e.replace(`:${t}`,`${s[t]}`),e.endpoint)}const r=`${i}${h}`,o={method:e.method,credentials:"include",headers:{"Content-Type":"application/json"}};return n&&(o.headers=Object.assign(Object.assign({},o.headers),{workspaceId:n})),a&&(o.headers=Object.assign(Object.assign({},o.headers),{Authorization:a})),"GET"!==o.method&&s&&(o.body=JSON.stringify(s)),fetch(r,o).then(e=>{const t=e.headers.get("Content-Type")||"",s=e.status;return 400===s?e.json().then(e=>Promise.reject(e.error)):[200,204].includes(s)?t.includes("application/json")?e.json():e:Promise.reject(e)})},this.updateConfig(e)}updateConfig(e){this.baseUrl=e.apiUrl||this.baseUrl,this.workspaceId=e.workspaceId||this.workspaceId,this.authorization=e.authorization||this.authorization}get apiTokens(){return{list:this.makeRequest(s).bind(this),create:this.makeRequest(t).bind(this),invalidate:this.makeRequest(e).bind(this)}}get workspaces(){return{current:this.makeRequest(b).bind(this),list:this.makeRequest(m).bind(this),get:this.makeRequest(c).bind(this),create:this.makeRequest(u).bind(this),importResourceTemplates:this.makeRequest(d).bind(this),getResourceTemplates:this.makeRequest(o).bind(this),createApiToken:this.makeRequest(r).bind(this),getApiTokens:this.makeRequest(h).bind(this),inviteUser:this.makeRequest(a).bind(this),enableService:this.makeRequest(n).bind(this),disableService:this.makeRequest(i).bind(this)}}get users(){return{list:this.makeRequest(k).bind(this)}}get currentUser(){return{get:this.makeRequest(l).bind(this),update:this.makeRequest(R).bind(this),history:this.makeRequest(p).bind(this)}}get resources(){return{createDirectory:this.makeRequest(T).bind(this),create:this.makeRequest(O).bind(this),access:this.makeRequest(I).bind(this),upload:({location:e="/",file:t})=>{const s={type:t.type,location:e,name:t.name,size:t.size};return this.makeRequest(w)(s).then(e=>fetch(e.content.uploadUrl,{method:"PUT",body:t}).then(()=>e))},uploadNamedVersion:({id:e,name:t,file:s})=>{const i={id:e,name:t,size:s.size};this.makeRequest(z)(i).then(e=>fetch(e.content.uploadUrl,{method:"PUT",body:s}).then(()=>e))},get:this.makeRequest(v).bind(this),list:e=>{const t=new URLSearchParams(Object.assign({},e)).toString();return this.makeRequest(j)({search:t})},search:this.makeRequest(f).bind(this),remove:this.makeRequest(y).bind(this),updateContent:this.makeRequest(U).bind(this),move:this.makeRequest(g).bind(this),rename:this.makeRequest(q).bind(this)}}get auth(){return{signUp:this.makeRequest(D).bind(this),signIn:this.makeRequest(x).bind(this),verifySignIn:this.makeRequest(N).bind(this),verifyInvitation:this.makeRequest($).bind(this),getAuthenticatedUser:this.makeRequest(P).bind(this),getAuthenticatedUserHistory:this.makeRequest(C).bind(this),getUser:this.makeRequest(S).bind(this),signOff:this.makeRequest(A).bind(this)}}}export{E as SDK};
@@ -1 +0,0 @@
1
- const s={VisualContentDescriptors:"@ossy/jobs/visual-content-descriptors",ResizeCommonWeb:"@ossy/jobs/resize-common-web"},e={Queued:"queued",InProgress:"in progress",Success:"success",Failed:"failed"};export{e as JobStatus,s as Jobs};