@stackone/core 1.2.0 → 1.3.1

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/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 t=>{const e=t?.configs?.[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(t){if(t===n.MAP)return i;throw new Error(`Unknown block function: ${t}`)}}const p=t=>Object.keys(t||{}).reduce(((t,e)=>{const r=c.build(e);return t.push(r),t}),[]);export{r as BaseConnector,n as BlockFunctionType,s as REQUEST_BODY_PARAM,o as blockPipe,p as getBlockPipeFunctionsFromConfig};
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 t=>{const e=t?.configs?.[exports.BlockFunctionType.MAP];if(!e)return t;let r;return r=Array.isArray(t.result)?t.result.map((r=>{const n=(t.providerResponse?.data?.[t.context.resource]).find((t=>t.id===r.id));return s(r,e,n)})):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:n}=t;r[e]&&(s[n]=r[e])})),{...s}};class n{static build(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:n,services:o={},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 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}},exports.REQUEST_BODY_PARAM="request_body",exports.blockPipe=async(t,e)=>t.reduce((async(t,e)=>e(await t)),Promise.resolve(e)),exports.getBlockPipeFunctionsFromConfig=t=>Object.keys(t||{}).reduce(((t,e)=>{const r=n.build(e);return t.push(r),t}),[]);
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}),[]);
@@ -0,0 +1,4 @@
1
+ import { BlockFieldConfigs, BlockFunction } from './types';
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: BlockFunctionType): BlockFunction;
4
+ static build({ type }: {
5
+ type: BlockFunctionType;
6
+ }): BlockFunction;
5
7
  }
@@ -0,0 +1,5 @@
1
+ import { Block, BlockFunction } from './types';
2
+ export declare const blockPipe: ({ blockFunctions, block, }: {
3
+ blockFunctions: BlockFunction[];
4
+ block: Block;
5
+ }) => Promise<Block>;
@@ -1,7 +1,7 @@
1
1
  import { HttpResponse } from '@stackone/transport';
2
2
  import { BlockFunctionType } from './functions/functionsDirectoryTypes';
3
3
  export type Block = {
4
- configs?: BlockFieldConfigs;
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: Readonly<Block>) => Promise<Block>;
24
+ export type BlockFunction = ({ block, }: {
25
+ block: Readonly<Block>;
26
+ }) => Promise<Block>;
@@ -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 { getBlockPipeFunctionsFromConfig } from './blocks/blockFunctionsConfigs';
7
+ export { getBlockPipeFunctionsFromConfigs } from './blocks/blockFunctionsConfigs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackone/core",
3
- "version": "1.2.0",
3
+ "version": "1.3.1",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.es.js",
@@ -1,2 +0,0 @@
1
- import { BlockFieldConfigs, BlockFunction } from './types';
2
- export declare const getBlockPipeFunctionsFromConfig: (configs?: BlockFieldConfigs) => BlockFunction[];
@@ -1,2 +0,0 @@
1
- import { Block, BlockFunction } from './types';
2
- export declare const blockPipe: (blockFunctions: BlockFunction[], block: Block) => Promise<Block>;
File without changes
File without changes
File without changes