@stackone/core 1.12.0 → 1.14.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/index.es.mjs +1 -1
- package/dist/index.js +1 -1
- package/dist/types/blocks/steps/mapFields/mapFieldsBlockStep.d.ts +2 -0
- package/dist/types/blocks/steps/stepsDirectoryTypes.d.ts +2 -1
- package/dist/types/blocks/types.d.ts +23 -2
- package/dist/types/index.d.ts +2 -1
- package/package.json +4 -2
package/dist/index.es.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{HttpClient as e}from"@stackone/transport";import t from"jsonpath";import*as r from"date-fns";const s=(e,t="")=>{if("object"===e.type&&e.properties){const r=""===t||t.endsWith(".")?t:`${t}.`;return Object.entries(e.properties).flatMap((([e,t])=>s(t,`${r}${e}`)))}return"array"===e.type&&e.items?s(e.items,`${t}[].`):[{name:t.endsWith(".")?t.slice(0,-1):t,type:e.type,description:e.description}]};class n{constructor({version:t="1",key:r,name:n,services:
|
|
1
|
+
import{HttpClient as e}from"@stackone/transport";import t from"jsonpath";import*as r from"date-fns";const s=(e,t="")=>{if("object"===e.type&&e.properties){const r=""===t||t.endsWith(".")?t:`${t}.`;return Object.entries(e.properties).flatMap((([e,t])=>s(t,`${r}${e}`)))}return"array"===e.type&&e.items?s(e.items,`${t}[].`):[{name:t.endsWith(".")?t.slice(0,-1):t,type:e.type,description:e.description}]};class n{constructor({version:t="1",key:r,name:n,services:o={},httpOperations:i={},auth:a,proxy:u,httpClient:c=new e}){this.listOperations=()=>Object.keys(this.httpOperations||{}),this.getOperation=e=>{const t=this.httpOperations?.[e];if(!t)throw new Error(`Operation ${e} not found`);return t},this.getOperationResponseFieldsMetadata=e=>{const t=this.getOperation(e).responses;if(!t)return null;const r=(e=>{const t=Object.entries(e).find((([e])=>e.startsWith("2")));return t?t[1]:null})(t);return r?.content["application/json"]?.schema?s(r.content["application/json"]?.schema):null},this.callOperation=async({operationId:e,params:t,credentials:r})=>{const s=this.httpOperations?.[e];if(!s)throw new Error(`Operation ${e} not found`);const n=(({params:e,httpOperation:t})=>{const{url:r,method:s}=t;let n=r;const o=[],i=[],a={};let u;Object.entries(e||{}).forEach((([e,r])=>{const s=t.parameters?.[e];if(s)switch(s.in){case"path":n=n.replace(`{${e}}`,r).replace(`:${e}`,r);break;case"query":o.push(`${e}=${r}`);break;case"header":a[e]=r;break;case"cookie":i.push(`${e}=${r}; `);break;case"body":u=r}}));const c=o.length>0?`?${o.join("&")}`:"";return i.length>0&&(a.cookie=i.join("")),{url:`${n}${c}`,method:s,headers:Object.keys(a).length>0?a:void 0,body:u||void 0}})({params:t,httpOperation:s}),{method:o,url:i,headers:a,body:u}=n,{apiKey:c}=r;return{connector:this,input:{operationId:e,params:t},response:await this.httpClient.request({method:o,url:i,headers:{...a,authorization:c},payload:u}),credentials:r}},this.version=t,this.key=r,this.name=n,this.services=o,this.httpOperations=i,this.auth=a,this.proxy=u,this.httpClient=c}}const o="request_body";var i;!function(e){e.MAP="map",e.TYPECAST="typecast",e.MAP_FIELDS="map_fields"}(i||(i={}));const a=async({blockSteps:e,block:t})=>e.reduce((async(e,t)=>t({block:await e})),Promise.resolve(t)),u=async({block:e})=>{const t=e?.fieldConfigs,r=[];if(!t||"disabled"===e?.debug?.custom_mappings)return e;let s;const n=e.providerData,o=e.context.childResource??e.context.subResource??e.context.resource;if(Array.isArray(e.result))s=e.result.map((e=>{const s=n?.[o]?.items;if(!s)return e;const i=c(e.id,e.remote_id,n),a=l(e,t,i);return r.push(...a.errors||[]),a.record}));else{const o=l(e.result,t,n);s=o.record,r.push(...o.errors||[])}return{...e,result:s,customMappingErrors:Object.keys(r).length>0?r:void 0}},c=(e,t,r)=>r?Object.keys(r).reduce(((s,n)=>{const o=r[n];if(!o.items)return s;const i=o.items.find((r=>r.id===e||r.id===t));return i?{...s,[n]:i}:s}),{}):{},l=(e,t,r)=>{if(!e||!r)return{record:e};const s={unified:{...e},..."object"==typeof r?r:{}},n={},o=[],i={...e};for(const r of t){const{error:t,value:a}=d(s,e.id,r);t?o.push(t):r.isUnified?i[r.targetFieldKey]=a:n[r.targetFieldKey]=a}return{record:{...i,unified_custom_fields:Object.keys(n).length>0?n:void 0},errors:o.length>0?o:void 0}},d=(e,r,s)=>{const{expression:n,targetFieldKey:o}=s;if(!n)return{error:{message:"Expression is empty",id:r,targetField:o}};try{t.parse(n)}catch(e){return{error:{message:"Invalid JSON path expression",id:r,targetField:o}}}const i=n&&t.query(e,n)[0];return i?{value:i}:{error:{message:"Expression returned no value",id:r,targetField:o}}},p=e=>"string"==typeof e,y=e=>e instanceof Date,f="yyyy-MM-dd",h=["yyyy-MM-dd","yyyy/MM/dd","dd/MM/yyyy","dd-MM-yyyy","yyyy-dd-MM","yyyy/dd/MM","MM/dd/yyyy","MM-dd-yyyy"],m=({value:e})=>{const t=r.parseISO(e);if(r.isValid(t))return t;const s=new Date;for(const t of h){const n=r.parse(e,t,s);if(r.isValid(n))return n.setUTCHours(0,0,0,0),n}return null},g=({value:e,format:t=f})=>{const s=(({value:e,format:t=f})=>{if(y(e))return e;if(!p(e))return null;try{const s=r.parse(e,t,new Date);return r.isValid(s)?s:m({value:e})}catch(e){return null}})({value:e,format:t});return s?s.toISOString():null};var b;!function(e){e.String="string",e.Number="number",e.Boolean="boolean",e.DateTimeString="datetime_string"}(b||(b={}));const v=({value:e,type:t,format:r})=>{if(!e)return null;switch(t){case b.String:return(({value:e})=>p(e)?e:y(e)?e.toISOString():(e=>"object"==typeof e&&null!==e)(e)?JSON.stringify(e):String(e))({value:e});case b.Number:return(({value:e})=>{if((e=>"number"==typeof e)(e))return e;if(y(e))return null;const t=Number(e);return isNaN(t)?null:t})({value:e});case b.Boolean:return(({value:e})=>(e=>"boolean"==typeof e)(e)?e:"false"!==e&&"0"!==e&&0!==e&&Boolean(e))({value:e});case b.DateTimeString:return g({value:e,format:r});default:return e}},O=async({block:e})=>{const t=e?.fieldConfigs;if(!t||"disabled"===e?.debug?.custom_mappings)return e;let r;return r=Array.isArray(e.result)?e.result.map((e=>M(e,t))):M(e.result,t),{...e,result:r}},M=(e,t)=>{const r={...e};return t.forEach((t=>{const{targetFieldKey:s,type:n}=t;(e=>Object.values(b).includes(e))(n)&&(t.isUnified&&e[s]?r[s]=v({value:e[s],type:n}):r.unified_custom_fields&&e.unified_custom_fields?.[s]&&(r.unified_custom_fields[s]=v({value:e.unified_custom_fields?.[s],type:n})))})),{...r}},k=async({block:e})=>{const t=e?.fieldConfigs,r=[],s=e.steps;if(!t||"disabled"===e?.debug?.custom_mappings||!s)return e;let n;if(Array.isArray(e.result)){const o=e.result.length;n=e.result.map(((e,n)=>{const i=j(s,o,n),a=_(e,t,i);return r.push(...a.errors||[]),a.record}))}else{const o=_(e.result,t,s);n=o.record,r.push(...o.errors||[])}return{...e,result:n,customMappingErrors:Object.keys(r).length>0?r:void 0}},j=(e,t,r)=>Object.entries(e).reduce(((e,[s,n])=>{const o=n.output.data;return Array.isArray(o)&&o.length===t?e[s]={output:{data:o[r]}}:e[s]=n,e}),{}),_=(e,t,r)=>{if(!e||!r)return{record:e};const s={unified:{...e},..."object"==typeof r?r:{}},n={},o=[],i={...e};for(const r of t){const{error:t,value:a}=S(s,e.id,r);t?o.push(t):r.isUnified?i[r.targetFieldKey]=a:n[r.targetFieldKey]=a}return{record:{...i,unified_custom_fields:Object.keys(n).length>0?n:void 0},errors:o.length>0?o:void 0}},S=(e,r,s)=>{const{expression:n,targetFieldKey:o}=s;if(!n)return{error:{message:"Expression is empty",id:r,targetField:o}};try{t.parse(n)}catch(e){return{error:{message:"Invalid JSON path expression",id:r,targetField:o}}}const i=n&&t.query(e,n)[0];return i?{value:i}:{error:{message:"Expression returned no value",id:r,targetField:o}}},A={build({type:e}){switch(e){case i.MAP:return u;case i.TYPECAST:return O;case i.MAP_FIELDS:return k;default:throw new Error(`Unknown block step: ${e}`)}}},E=({fieldConfigs:e})=>{const t=[];return e&&t.push(A.build({type:i.MAP}),A.build({type:i.TYPECAST})),t};export{n as BaseConnector,i as BlockStepType,A as BlockStepsFactory,o as REQUEST_BODY_PARAM,a as blockPipe,E as getBlockPipeStepsFromConfigs};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("@stackone/transport"),t=require("jsonpath");function r(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=r(require("date-fns"));const n=(e,t="")=>{if("object"===e.type&&e.properties){const r=""===t||t.endsWith(".")?t:`${t}.`;return Object.entries(e.properties).flatMap((([e,t])=>n(t,`${r}${e}`)))}return"array"===e.type&&e.items?n(e.items,`${t}[].`):[{name:t.endsWith(".")?t.slice(0,-1):t,type:e.type,description:e.description}]};var o;exports.BlockStepType=void 0,(o=exports.BlockStepType||(exports.BlockStepType={})).MAP="map",o.TYPECAST="typecast";const i=async({block:e})=>{const t=e?.fieldConfigs,r=[];if(!t||"disabled"===e?.debug?.custom_mappings)return e;let s;const n=e.providerData,o=e.context.childResource??e.context.subResource??e.context.resource;if(Array.isArray(e.result))s=e.result.map((e=>{const s=n?.[o]?.items;if(!s)return e;const i=a(e.id,e.remote_id,n),u
|
|
1
|
+
"use strict";var e=require("@stackone/transport"),t=require("jsonpath");function r(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=r(require("date-fns"));const n=(e,t="")=>{if("object"===e.type&&e.properties){const r=""===t||t.endsWith(".")?t:`${t}.`;return Object.entries(e.properties).flatMap((([e,t])=>n(t,`${r}${e}`)))}return"array"===e.type&&e.items?n(e.items,`${t}[].`):[{name:t.endsWith(".")?t.slice(0,-1):t,type:e.type,description:e.description}]};var o;exports.BlockStepType=void 0,(o=exports.BlockStepType||(exports.BlockStepType={})).MAP="map",o.TYPECAST="typecast",o.MAP_FIELDS="map_fields";const i=async({block:e})=>{const t=e?.fieldConfigs,r=[];if(!t||"disabled"===e?.debug?.custom_mappings)return e;let s;const n=e.providerData,o=e.context.childResource??e.context.subResource??e.context.resource;if(Array.isArray(e.result))s=e.result.map((e=>{const s=n?.[o]?.items;if(!s)return e;const i=a(e.id,e.remote_id,n),c=u(e,t,i);return r.push(...c.errors||[]),c.record}));else{const o=u(e.result,t,n);s=o.record,r.push(...o.errors||[])}return{...e,result:s,customMappingErrors:Object.keys(r).length>0?r:void 0}},a=(e,t,r)=>r?Object.keys(r).reduce(((s,n)=>{const o=r[n];if(!o.items)return s;const i=o.items.find((r=>r.id===e||r.id===t));return i?{...s,[n]:i}:s}),{}):{},u=(e,t,r)=>{if(!e||!r)return{record:e};const s={unified:{...e},..."object"==typeof r?r:{}},n={},o=[],i={...e};for(const r of t){const{error:t,value:a}=c(s,e.id,r);t?o.push(t):r.isUnified?i[r.targetFieldKey]=a:n[r.targetFieldKey]=a}return{record:{...i,unified_custom_fields:Object.keys(n).length>0?n:void 0},errors:o.length>0?o:void 0}},c=(e,r,s)=>{const{expression:n,targetFieldKey:o}=s;if(!n)return{error:{message:"Expression is empty",id:r,targetField:o}};try{t.parse(n)}catch(e){return{error:{message:"Invalid JSON path expression",id:r,targetField:o}}}const i=n&&t.query(e,n)[0];return i?{value:i}:{error:{message:"Expression returned no value",id:r,targetField:o}}},l=e=>"string"==typeof e,p=e=>e instanceof Date,d="yyyy-MM-dd",y=["yyyy-MM-dd","yyyy/MM/dd","dd/MM/yyyy","dd-MM-yyyy","yyyy-dd-MM","yyyy/dd/MM","MM/dd/yyyy","MM-dd-yyyy"],f=({value:e})=>{const t=s.parseISO(e);if(s.isValid(t))return t;const r=new Date;for(const t of y){const n=s.parse(e,t,r);if(s.isValid(n))return n.setUTCHours(0,0,0,0),n}return null},h=({value:e,format:t=d})=>{const r=(({value:e,format:t=d})=>{if(p(e))return e;if(!l(e))return null;try{const r=s.parse(e,t,new Date);return s.isValid(r)?r:f({value:e})}catch(e){return null}})({value:e,format:t});return r?r.toISOString():null};var m;!function(e){e.String="string",e.Number="number",e.Boolean="boolean",e.DateTimeString="datetime_string"}(m||(m={}));const g=({value:e,type:t,format:r})=>{if(!e)return null;switch(t){case m.String:return(({value:e})=>l(e)?e:p(e)?e.toISOString():(e=>"object"==typeof e&&null!==e)(e)?JSON.stringify(e):String(e))({value:e});case m.Number:return(({value:e})=>{if((e=>"number"==typeof e)(e))return e;if(p(e))return null;const t=Number(e);return isNaN(t)?null:t})({value:e});case m.Boolean:return(({value:e})=>(e=>"boolean"==typeof e)(e)?e:"false"!==e&&"0"!==e&&0!==e&&Boolean(e))({value:e});case m.DateTimeString:return h({value:e,format:r});default:return e}},b=async({block:e})=>{const t=e?.fieldConfigs;if(!t||"disabled"===e?.debug?.custom_mappings)return e;let r;return r=Array.isArray(e.result)?e.result.map((e=>v(e,t))):v(e.result,t),{...e,result:r}},v=(e,t)=>{const r={...e};return t.forEach((t=>{const{targetFieldKey:s,type:n}=t;(e=>Object.values(m).includes(e))(n)&&(t.isUnified&&e[s]?r[s]=g({value:e[s],type:n}):r.unified_custom_fields&&e.unified_custom_fields?.[s]&&(r.unified_custom_fields[s]=g({value:e.unified_custom_fields?.[s],type:n})))})),{...r}},O=async({block:e})=>{const t=e?.fieldConfigs,r=[],s=e.steps;if(!t||"disabled"===e?.debug?.custom_mappings||!s)return e;let n;if(Array.isArray(e.result)){const o=e.result.length;n=e.result.map(((e,n)=>{const i=k(s,o,n),a=S(e,t,i);return r.push(...a.errors||[]),a.record}))}else{const o=S(e.result,t,s);n=o.record,r.push(...o.errors||[])}return{...e,result:n,customMappingErrors:Object.keys(r).length>0?r:void 0}},k=(e,t,r)=>Object.entries(e).reduce(((e,[s,n])=>{const o=n.output.data;return Array.isArray(o)&&o.length===t?e[s]={output:{data:o[r]}}:e[s]=n,e}),{}),S=(e,t,r)=>{if(!e||!r)return{record:e};const s={unified:{...e},..."object"==typeof r?r:{}},n={},o=[],i={...e};for(const r of t){const{error:t,value:a}=M(s,e.id,r);t?o.push(t):r.isUnified?i[r.targetFieldKey]=a:n[r.targetFieldKey]=a}return{record:{...i,unified_custom_fields:Object.keys(n).length>0?n:void 0},errors:o.length>0?o:void 0}},M=(e,r,s)=>{const{expression:n,targetFieldKey:o}=s;if(!n)return{error:{message:"Expression is empty",id:r,targetField:o}};try{t.parse(n)}catch(e){return{error:{message:"Invalid JSON path expression",id:r,targetField:o}}}const i=n&&t.query(e,n)[0];return i?{value:i}:{error:{message:"Expression returned no value",id:r,targetField:o}}},j={build({type:e}){switch(e){case exports.BlockStepType.MAP:return i;case exports.BlockStepType.TYPECAST:return b;case exports.BlockStepType.MAP_FIELDS:return O;default:throw new Error(`Unknown block step: ${e}`)}}};exports.BaseConnector=class{constructor({version:t="1",key:r,name:s,services:o={},httpOperations:i={},auth:a,proxy:u,httpClient:c=new e.HttpClient}){this.listOperations=()=>Object.keys(this.httpOperations||{}),this.getOperation=e=>{const t=this.httpOperations?.[e];if(!t)throw new Error(`Operation ${e} not found`);return t},this.getOperationResponseFieldsMetadata=e=>{const t=this.getOperation(e).responses;if(!t)return null;const r=(e=>{const t=Object.entries(e).find((([e])=>e.startsWith("2")));return t?t[1]:null})(t);return r?.content["application/json"]?.schema?n(r.content["application/json"]?.schema):null},this.callOperation=async({operationId:e,params:t,credentials:r})=>{const s=this.httpOperations?.[e];if(!s)throw new Error(`Operation ${e} not found`);const n=(({params:e,httpOperation:t})=>{const{url:r,method:s}=t;let n=r;const o=[],i=[],a={};let u;Object.entries(e||{}).forEach((([e,r])=>{const s=t.parameters?.[e];if(s)switch(s.in){case"path":n=n.replace(`{${e}}`,r).replace(`:${e}`,r);break;case"query":o.push(`${e}=${r}`);break;case"header":a[e]=r;break;case"cookie":i.push(`${e}=${r}; `);break;case"body":u=r}}));const c=o.length>0?`?${o.join("&")}`:"";return i.length>0&&(a.cookie=i.join("")),{url:`${n}${c}`,method:s,headers:Object.keys(a).length>0?a:void 0,body:u||void 0}})({params:t,httpOperation:s}),{method:o,url:i,headers:a,body:u}=n,{apiKey:c}=r;return{connector:this,input:{operationId:e,params:t},response:await this.httpClient.request({method:o,url:i,headers:{...a,authorization:c},payload:u}),credentials:r}},this.version=t,this.key=r,this.name=s,this.services=o,this.httpOperations=i,this.auth=a,this.proxy=u,this.httpClient=c}},exports.BlockStepsFactory=j,exports.REQUEST_BODY_PARAM="request_body",exports.blockPipe=async({blockSteps:e,block:t})=>e.reduce((async(e,t)=>t({block:await e})),Promise.resolve(t)),exports.getBlockPipeStepsFromConfigs=({fieldConfigs:e})=>{const t=[];return e&&t.push(j.build({type:exports.BlockStepType.MAP}),j.build({type:exports.BlockStepType.TYPECAST})),t};
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { HttpMethod } from '@stackone/transport';
|
|
2
|
+
import { BlockStepType } from './steps/stepsDirectoryTypes';
|
|
2
3
|
export type Block = {
|
|
3
4
|
fieldConfigs?: BlockFieldConfig[];
|
|
4
|
-
providerData?: ProviderData;
|
|
5
5
|
result?: BlockIndexedRecord[] | BlockIndexedRecord;
|
|
6
6
|
context: BlockContext;
|
|
7
7
|
debug?: BlockDebugParams;
|
|
8
|
+
steps?: BlockStepSnapshots;
|
|
8
9
|
customMappingErrors?: FieldMappingError[];
|
|
10
|
+
providerData?: ProviderData;
|
|
9
11
|
};
|
|
10
12
|
export type BlockContext = {
|
|
11
13
|
projectSecureId: string;
|
|
@@ -31,12 +33,31 @@ export type BlockFieldConfig = {
|
|
|
31
33
|
type: string;
|
|
32
34
|
isUnified?: boolean;
|
|
33
35
|
};
|
|
34
|
-
export type BlockStep = ({ block, }: {
|
|
36
|
+
export type BlockStep = ({ block, params, }: {
|
|
35
37
|
block: Readonly<Block>;
|
|
38
|
+
params?: BlockStepParams;
|
|
36
39
|
}) => Promise<Block>;
|
|
40
|
+
export type BlockStepParams = {
|
|
41
|
+
[key: string]: unknown;
|
|
42
|
+
};
|
|
37
43
|
export type BlockDebugParams = {
|
|
38
44
|
custom_mappings?: 'disabled' | 'enabled';
|
|
39
45
|
};
|
|
46
|
+
export type BlockStepDefinition = {
|
|
47
|
+
name: BlockStepType;
|
|
48
|
+
params?: BlockStepParams;
|
|
49
|
+
};
|
|
50
|
+
export type BlockStepSnapshot = {
|
|
51
|
+
output: {
|
|
52
|
+
data: unknown;
|
|
53
|
+
matcher?: string;
|
|
54
|
+
};
|
|
55
|
+
errors?: BlockStepError[];
|
|
56
|
+
};
|
|
57
|
+
export type BlockStepSnapshots = {
|
|
58
|
+
[key: string]: BlockStepSnapshot;
|
|
59
|
+
};
|
|
60
|
+
export type BlockStepError = FieldMappingError;
|
|
40
61
|
export type ProviderData = {
|
|
41
62
|
[key: string]: ProviderDataObject;
|
|
42
63
|
};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export { IConnector, HttpOperations, HttpParameter, HttpParameterLocation, HttpParameterType, } from './types';
|
|
2
2
|
export { BaseConnector } from './baseConnector';
|
|
3
3
|
export { REQUEST_BODY_PARAM } from './constants';
|
|
4
|
-
export { Block, BlockStep, BlockIndexedRecord, BlockContext, BlockFieldConfig, } from './blocks/types';
|
|
4
|
+
export { Block, BlockStep, BlockIndexedRecord, BlockContext, BlockFieldConfig, BlockStepDefinition, BlockStepParams, BlockStepSnapshots, BlockStepSnapshot, } from './blocks/types';
|
|
5
5
|
export { BlockStepType } from './blocks/steps/stepsDirectoryTypes';
|
|
6
6
|
export { blockPipe } from './blocks/blockPipe';
|
|
7
7
|
export { getBlockPipeStepsFromConfigs } from './blocks/blockStepsConfigs';
|
|
8
|
+
export { BlockStepsFactory } from './blocks/blockStepsFactory';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stackone/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.14.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.es.js",
|
|
@@ -13,7 +13,9 @@
|
|
|
13
13
|
"scripts": {
|
|
14
14
|
"clean": "rimraf dist",
|
|
15
15
|
"prebuild": "npm run clean",
|
|
16
|
-
"build": "rollup -c",
|
|
16
|
+
"build": "rollup -c --environment NODE_ENV:production",
|
|
17
|
+
"prebuild:dev": "npm run clean",
|
|
18
|
+
"build:dev": "rollup -c --environment NODE_ENV:development",
|
|
17
19
|
"lint": "tsc --project tsconfig.json && eslint \"src/**/*.ts\"",
|
|
18
20
|
"lint:fix": "npm run lint -- --fix",
|
|
19
21
|
"test": "vitest run --silent",
|