@stackone/core 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/blocks/blockFunctionsConfigs.d.ts +3 -1
- package/dist/blocks/blockFunctionsFactory.d.ts +3 -1
- package/dist/blocks/blockPipe.d.ts +4 -1
- package/dist/blocks/types.d.ts +4 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.es.mjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
import { BlockFieldConfigs, BlockFunction } from './types';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const getBlockPipeFunctionsFromConfigs: ({ fieldConfigs, }: {
|
|
3
|
+
fieldConfigs?: BlockFieldConfigs | undefined;
|
|
4
|
+
}) => BlockFunction[];
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { BlockFunctionType } from './functions/functionsDirectoryTypes';
|
|
2
2
|
import { BlockFunction } from './types';
|
|
3
3
|
export declare class BlockFunctionsFactory {
|
|
4
|
-
static build(type
|
|
4
|
+
static build({ type }: {
|
|
5
|
+
type: BlockFunctionType;
|
|
6
|
+
}): BlockFunction;
|
|
5
7
|
}
|
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
import { Block, BlockFunction } from './types';
|
|
2
|
-
export declare const blockPipe: (blockFunctions
|
|
2
|
+
export declare const blockPipe: ({ blockFunctions, block, }: {
|
|
3
|
+
blockFunctions: BlockFunction[];
|
|
4
|
+
block: Block;
|
|
5
|
+
}) => Promise<Block>;
|
package/dist/blocks/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { HttpResponse } from '@stackone/transport';
|
|
2
2
|
import { BlockFunctionType } from './functions/functionsDirectoryTypes';
|
|
3
3
|
export type Block = {
|
|
4
|
-
|
|
4
|
+
fieldConfigs?: BlockFieldConfigs;
|
|
5
5
|
providerResponse?: HttpResponse;
|
|
6
6
|
result?: BlockIndexedRecord[] | BlockIndexedRecord;
|
|
7
7
|
context: BlockContext;
|
|
@@ -21,4 +21,6 @@ export type BlockIndexedRecord = {
|
|
|
21
21
|
id: string;
|
|
22
22
|
[key: string]: unknown;
|
|
23
23
|
};
|
|
24
|
-
export type BlockFunction = (block:
|
|
24
|
+
export type BlockFunction = ({ block, }: {
|
|
25
|
+
block: Readonly<Block>;
|
|
26
|
+
}) => Promise<Block>;
|
package/dist/index.d.ts
CHANGED
|
@@ -4,4 +4,4 @@ export { REQUEST_BODY_PARAM } from './constants';
|
|
|
4
4
|
export { Block, BlockFunction, BlockIndexedRecord, BlockContext, BlockFieldConfigs, } from './blocks/types';
|
|
5
5
|
export { BlockFunctionType } from './blocks/functions/functionsDirectoryTypes';
|
|
6
6
|
export { blockPipe } from './blocks/blockPipe';
|
|
7
|
-
export {
|
|
7
|
+
export { getBlockPipeFunctionsFromConfigs } from './blocks/blockFunctionsConfigs';
|
package/dist/index.es.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{HttpClient as t}from"@stackone/transport";const e=(t,r="")=>{if("object"===t.type&&t.properties){const s=""===r||r.endsWith(".")?r:`${r}.`;return Object.entries(t.properties).flatMap((([t,r])=>e(r,`${s}${t}`)))}return"array"===t.type&&t.items?e(t.items,`${r}[].`):[{name:r.endsWith(".")?r.slice(0,-1):r,type:t.type,description:t.description}]};class r{constructor({version:r="1",key:s,name:n,services:o={},httpOperations:i={},auth:a,proxy:c,httpClient:p=new t}){this.listOperations=()=>Object.keys(this.httpOperations||{}),this.getOperation=t=>{const e=this.httpOperations?.[t];if(!e)throw new Error(`Operation ${t} not found`);return e},this.getOperationResponseFieldsMetadata=t=>{const r=this.getOperation(t).responses;if(!r)return null;const s=(t=>{const e=Object.entries(t).find((([t])=>t.startsWith("2")));return e?e[1]:null})(r);return s&&s.content["application/json"]?.schema?e(s.content["application/json"]?.schema):null},this.callOperation=async({operationId:t,params:e,credentials:r})=>{const s=this.httpOperations?.[t];if(!s)throw new Error(`Operation ${t} not found`);const n=(({params:t,httpOperation:e})=>{const{url:r,method:s}=e;let n=r;const o=[],i=[],a={};let c;Object.entries(t||{}).forEach((([t,r])=>{const s=e.parameters?.[t];if(s)switch(s.in){case"path":n=n.replace(`{${t}}`,r).replace(`:${t}`,r);break;case"query":o.push(`${t}=${r}`);break;case"header":a[t]=r;break;case"cookie":i.push(`${t}=${r}; `);break;case"body":c=r}}));const p=o.length>0?`?${o.join("&")}`:"";return i.length>0&&(a.cookie=i.join("")),{url:`${n}${p}`,method:s,headers:Object.keys(a).length>0?a:void 0,body:c||void 0}})({params:e,httpOperation:s}),{method:o,url:i,headers:a,body:c}=n,{apiKey:p}=r;return{connector:this,input:{operationId:t,params:e},response:await this.httpClient.request({method:o,url:i,headers:{...a,authorization:p},payload:c}),credentials:r}},this.version=r,this.key=s,this.name=n,this.services=o,this.httpOperations=i,this.auth=a,this.proxy=c,this.httpClient=p}}const s="request_body";var n;!function(t){t.MAP="map"}(n||(n={}));const o=async(t,e)=>t.reduce((async(t,e)=>e(await t)),Promise.resolve(e)),i=async
|
|
1
|
+
import{HttpClient as t}from"@stackone/transport";const e=(t,r="")=>{if("object"===t.type&&t.properties){const s=""===r||r.endsWith(".")?r:`${r}.`;return Object.entries(t.properties).flatMap((([t,r])=>e(r,`${s}${t}`)))}return"array"===t.type&&t.items?e(t.items,`${r}[].`):[{name:r.endsWith(".")?r.slice(0,-1):r,type:t.type,description:t.description}]};class r{constructor({version:r="1",key:s,name:n,services:o={},httpOperations:i={},auth:a,proxy:c,httpClient:p=new t}){this.listOperations=()=>Object.keys(this.httpOperations||{}),this.getOperation=t=>{const e=this.httpOperations?.[t];if(!e)throw new Error(`Operation ${t} not found`);return e},this.getOperationResponseFieldsMetadata=t=>{const r=this.getOperation(t).responses;if(!r)return null;const s=(t=>{const e=Object.entries(t).find((([t])=>t.startsWith("2")));return e?e[1]:null})(r);return s&&s.content["application/json"]?.schema?e(s.content["application/json"]?.schema):null},this.callOperation=async({operationId:t,params:e,credentials:r})=>{const s=this.httpOperations?.[t];if(!s)throw new Error(`Operation ${t} not found`);const n=(({params:t,httpOperation:e})=>{const{url:r,method:s}=e;let n=r;const o=[],i=[],a={};let c;Object.entries(t||{}).forEach((([t,r])=>{const s=e.parameters?.[t];if(s)switch(s.in){case"path":n=n.replace(`{${t}}`,r).replace(`:${t}`,r);break;case"query":o.push(`${t}=${r}`);break;case"header":a[t]=r;break;case"cookie":i.push(`${t}=${r}; `);break;case"body":c=r}}));const p=o.length>0?`?${o.join("&")}`:"";return i.length>0&&(a.cookie=i.join("")),{url:`${n}${p}`,method:s,headers:Object.keys(a).length>0?a:void 0,body:c||void 0}})({params:e,httpOperation:s}),{method:o,url:i,headers:a,body:c}=n,{apiKey:p}=r;return{connector:this,input:{operationId:t,params:e},response:await this.httpClient.request({method:o,url:i,headers:{...a,authorization:p},payload:c}),credentials:r}},this.version=r,this.key=s,this.name=n,this.services=o,this.httpOperations=i,this.auth=a,this.proxy=c,this.httpClient=p}}const s="request_body";var n;!function(t){t.MAP="map"}(n||(n={}));const o=async({blockFunctions:t,block:e})=>t.reduce((async(t,e)=>e({block:await t})),Promise.resolve(e)),i=async({block:t})=>{const e=t?.fieldConfigs?.[n.MAP];if(!e)return t;let r;return r=Array.isArray(t.result)?t.result.map((r=>{const s=(t.providerResponse?.data?.[t.context.resource]).find((t=>t.id===r.id));return a(r,e,s)})):a(t.result,e,t.providerResponse?.data),{...t,result:r}},a=(t,e,r)=>{if(!r)return t;const s={...t};return e.forEach((t=>{const{expression:e,targetFieldKey:n}=t;r[e]&&(s[n]=r[e])})),{...s}};class c{static build({type:t}){if(t===n.MAP)return i;throw new Error(`Unknown block function: ${t}`)}}const p=({fieldConfigs:t})=>Object.keys(t||{}).reduce(((t,e)=>{const r=c.build({type:e});return t.push(r),t}),[]);export{r as BaseConnector,n as BlockFunctionType,s as REQUEST_BODY_PARAM,o as blockPipe,p as getBlockPipeFunctionsFromConfigs};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var t=require("@stackone/transport");const e=(t,r="")=>{if("object"===t.type&&t.properties){const s=""===r||r.endsWith(".")?r:`${r}.`;return Object.entries(t.properties).flatMap((([t,r])=>e(r,`${s}${t}`)))}return"array"===t.type&&t.items?e(t.items,`${r}[].`):[{name:r.endsWith(".")?r.slice(0,-1):r,type:t.type,description:t.description}]};exports.BlockFunctionType=void 0,(exports.BlockFunctionType||(exports.BlockFunctionType={})).MAP="map";const r=async
|
|
1
|
+
"use strict";var t=require("@stackone/transport");const e=(t,r="")=>{if("object"===t.type&&t.properties){const s=""===r||r.endsWith(".")?r:`${r}.`;return Object.entries(t.properties).flatMap((([t,r])=>e(r,`${s}${t}`)))}return"array"===t.type&&t.items?e(t.items,`${r}[].`):[{name:r.endsWith(".")?r.slice(0,-1):r,type:t.type,description:t.description}]};exports.BlockFunctionType=void 0,(exports.BlockFunctionType||(exports.BlockFunctionType={})).MAP="map";const r=async({block:t})=>{const e=t?.fieldConfigs?.[exports.BlockFunctionType.MAP];if(!e)return t;let r;return r=Array.isArray(t.result)?t.result.map((r=>{const o=(t.providerResponse?.data?.[t.context.resource]).find((t=>t.id===r.id));return s(r,e,o)})):s(t.result,e,t.providerResponse?.data),{...t,result:r}},s=(t,e,r)=>{if(!r)return t;const s={...t};return e.forEach((t=>{const{expression:e,targetFieldKey:o}=t;r[e]&&(s[o]=r[e])})),{...s}};class o{static build({type:t}){if(t===exports.BlockFunctionType.MAP)return r;throw new Error(`Unknown block function: ${t}`)}}exports.BaseConnector=class{constructor({version:r="1",key:s,name:o,services:n={},httpOperations:i={},auth:a,proxy:c,httpClient:p=new t.HttpClient}){this.listOperations=()=>Object.keys(this.httpOperations||{}),this.getOperation=t=>{const e=this.httpOperations?.[t];if(!e)throw new Error(`Operation ${t} not found`);return e},this.getOperationResponseFieldsMetadata=t=>{const r=this.getOperation(t).responses;if(!r)return null;const s=(t=>{const e=Object.entries(t).find((([t])=>t.startsWith("2")));return e?e[1]:null})(r);return s&&s.content["application/json"]?.schema?e(s.content["application/json"]?.schema):null},this.callOperation=async({operationId:t,params:e,credentials:r})=>{const s=this.httpOperations?.[t];if(!s)throw new Error(`Operation ${t} not found`);const o=(({params:t,httpOperation:e})=>{const{url:r,method:s}=e;let o=r;const n=[],i=[],a={};let c;Object.entries(t||{}).forEach((([t,r])=>{const s=e.parameters?.[t];if(s)switch(s.in){case"path":o=o.replace(`{${t}}`,r).replace(`:${t}`,r);break;case"query":n.push(`${t}=${r}`);break;case"header":a[t]=r;break;case"cookie":i.push(`${t}=${r}; `);break;case"body":c=r}}));const p=n.length>0?`?${n.join("&")}`:"";return i.length>0&&(a.cookie=i.join("")),{url:`${o}${p}`,method:s,headers:Object.keys(a).length>0?a:void 0,body:c||void 0}})({params:e,httpOperation:s}),{method:n,url:i,headers:a,body:c}=o,{apiKey:p}=r;return{connector:this,input:{operationId:t,params:e},response:await this.httpClient.request({method:n,url:i,headers:{...a,authorization:p},payload:c}),credentials:r}},this.version=r,this.key=s,this.name=o,this.services=n,this.httpOperations=i,this.auth=a,this.proxy=c,this.httpClient=p}},exports.REQUEST_BODY_PARAM="request_body",exports.blockPipe=async({blockFunctions:t,block:e})=>t.reduce((async(t,e)=>e({block:await t})),Promise.resolve(e)),exports.getBlockPipeFunctionsFromConfigs=({fieldConfigs:t})=>Object.keys(t||{}).reduce(((t,e)=>{const r=o.build({type:e});return t.push(r),t}),[]);
|