@chargebee/chargebee-apps-libs
Advanced tools
| import { PathResolver } from '@chargebee/chargebee-apps-shared'; | ||
| /** | ||
| * Public package path types resolved relative to this package | ||
| */ | ||
| export declare enum PublicPathType { | ||
| PUBLIC_LIBS_TEMPLATES = "PUBLIC_LIBS_TEMPLATES", | ||
| PUBLIC_LIBS_UI_WEB = "PUBLIC_LIBS_UI_WEB" | ||
| } | ||
| /** | ||
| * Resolves paths for public-libs assets (templates, UI web) | ||
| */ | ||
| export declare class PublicPathResolver extends PathResolver { | ||
| /** | ||
| * Resolves a public package path | ||
| * @param {PublicPathType} pathType - Type of public path to resolve | ||
| * @returns {string} Resolved path | ||
| */ | ||
| resolvePublicPath(pathType: PublicPathType): string; | ||
| /** | ||
| * Gets the public libs templates directory path | ||
| * @returns {string} Path to public libs templates directory | ||
| */ | ||
| getPublicLibsTemplatesDir(): string; | ||
| /** | ||
| * Gets the public libs UI web directory path | ||
| * @returns {string} Path to public libs UI web directory | ||
| */ | ||
| getPublicLibsUiWebDir(): string; | ||
| /** | ||
| * Gets the root directory of this package in production installs | ||
| * @returns {string} Path to public-libs package root | ||
| */ | ||
| private getPackageRoot; | ||
| } |
| "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PublicPathResolver=exports.PublicPathType=void 0;const path_1=__importDefault(require("path")),chargebee_apps_shared_1=require("@chargebee/chargebee-apps-shared");var PublicPathType;(function(e){e.PUBLIC_LIBS_TEMPLATES="PUBLIC_LIBS_TEMPLATES",e.PUBLIC_LIBS_UI_WEB="PUBLIC_LIBS_UI_WEB"})(PublicPathType||(exports.PublicPathType=PublicPathType={}));class PublicPathResolver extends chargebee_apps_shared_1.PathResolver{resolvePublicPath(t){switch(t){case PublicPathType.PUBLIC_LIBS_TEMPLATES:return this.getPublicLibsTemplatesDir();case PublicPathType.PUBLIC_LIBS_UI_WEB:return this.getPublicLibsUiWebDir();default:throw new Error(`Unknown public path type: ${t}`)}}getPublicLibsTemplatesDir(){if(this.envConfig.isDevelopment()){const t=this.getCliRoot();return path_1.default.join(t,"packages","public-libs","templates")}return path_1.default.join(this.getPackageRoot(),"templates")}getPublicLibsUiWebDir(){if(this.envConfig.isDevelopment()){const t=this.getCliRoot();return path_1.default.join(t,"packages","public-libs","ui","web")}return path_1.default.join(this.getPackageRoot(),"ui","web")}getPackageRoot(){return path_1.default.resolve(__dirname,"../..")}}exports.PublicPathResolver=PublicPathResolver; |
+1
-0
| export * from './config/config-loader'; | ||
| export * from './config/public-path-resolver'; | ||
| export * from './libs/port-service'; | ||
| export * from './logger/cb-public-logger'; | ||
| export * from './sandbox/public-sandbox-wrapper'; |
+1
-1
@@ -1,1 +0,1 @@ | ||
| "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(i,r,e,t){t===void 0&&(t=e);var n=Object.getOwnPropertyDescriptor(r,e);(!n||("get"in n?!r.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return r[e]}}),Object.defineProperty(i,t,n)}):(function(i,r,e,t){t===void 0&&(t=e),i[t]=r[e]})),__exportStar=this&&this.__exportStar||function(i,r){for(var e in i)e!=="default"&&!Object.prototype.hasOwnProperty.call(r,e)&&__createBinding(r,i,e)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./config/config-loader"),exports),__exportStar(require("./libs/port-service"),exports),__exportStar(require("./logger/cb-public-logger"),exports),__exportStar(require("./sandbox/public-sandbox-wrapper"),exports); | ||
| "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(i,r,e,t){t===void 0&&(t=e);var o=Object.getOwnPropertyDescriptor(r,e);(!o||("get"in o?!r.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return r[e]}}),Object.defineProperty(i,t,o)}):(function(i,r,e,t){t===void 0&&(t=e),i[t]=r[e]})),__exportStar=this&&this.__exportStar||function(i,r){for(var e in i)e!=="default"&&!Object.prototype.hasOwnProperty.call(r,e)&&__createBinding(r,i,e)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./config/config-loader"),exports),__exportStar(require("./config/public-path-resolver"),exports),__exportStar(require("./libs/port-service"),exports),__exportStar(require("./logger/cb-public-logger"),exports),__exportStar(require("./sandbox/public-sandbox-wrapper"),exports); |
@@ -1,2 +0,2 @@ | ||
| "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(a,e,r,n){n===void 0&&(n=r);var t=Object.getOwnPropertyDescriptor(e,r);(!t||("get"in t?!e.__esModule:t.writable||t.configurable))&&(t={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(a,n,t)}):(function(a,e,r,n){n===void 0&&(n=r),a[n]=e[r]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(a,e){Object.defineProperty(a,"default",{enumerable:!0,value:e})}):function(a,e){a.default=e}),__importStar=this&&this.__importStar||(function(){var a=function(e){return a=Object.getOwnPropertyNames||function(r){var n=[];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(n[n.length]=t);return n},a(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var n=a(e),t=0;t<n.length;t++)n[t]!=="default"&&__createBinding(r,e,n[t]);return __setModuleDefault(r,e),r}})(),__importDefault=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PublicSandboxWrapper=void 0;const chargebee_apps_shared_1=require("@chargebee/chargebee-apps-shared"),path_1=__importDefault(require("path")),vm_1=__importDefault(require("vm")),dotenv=__importStar(require("dotenv")),cb_public_logger_1=require("../logger/cb-public-logger");class PublicSandboxWrapper{constructor(e,r,n,t,s){this.fileSystem=r,this.packageValidator=n,this.dependencyManager=t,this.allowedModules=e,this.manifestValidator=s}createSafeRequire(e){return this.dependencyManager.createIsolatedRequire(e,this.allowedModules)}loadEnvironmentVariables(e){const r=path_1.default.join(e,".env"),n={};try{const t=dotenv.config({path:r});t.parsed&&(t.parsed.MKPLC_CB_READ_ONLY_API&&(n.MKPLC_CB_READ_ONLY_API=t.parsed.MKPLC_CB_READ_ONLY_API),t.parsed.MKPLC_CB_READ_WRITE_API&&(n.MKPLC_CB_READ_WRITE_API=t.parsed.MKPLC_CB_READ_WRITE_API),t.parsed.MKPLC_SITE_DOMAIN?n.MKPLC_SITE_DOMAIN=t.parsed.MKPLC_SITE_DOMAIN:n.MKPLC_SITE_DOMAIN="")}catch(t){chargebee_apps_shared_1.__logger.debug(`Failed to load .env file from ${r}: ${t}`)}return n}createSandbox(e,r,n){const t={exports:{}},s=t.exports,o=this.loadEnvironmentVariables(e),i=Object.prototype.hasOwnProperty.call(r,"iparams"),c=Object.freeze(i?{event:r.event,iparams:r.iparams??{}}:{event:r.event});return{console:(0,cb_public_logger_1.createSafeConsole)(n),payload:c,setTimeout,clearTimeout,setImmediate,clearImmediate,module:t,exports:s,require:this.createSafeRequire(e),process:{cwd:()=>process.cwd(),env:o,nextTick:process.nextTick},global:void 0,Buffer:void 0,__dirname:void 0,__filename:void 0}}async execute(e,r,n){try{chargebee_apps_shared_1.__logger.debug(`Executing user code from: ${e}`),this.packageValidator.validateHandlerExists(e),this.packageValidator.validateManifestExists(e);const t=path_1.default.join(e,"manifest.json"),s=this.manifestValidator.validateAndGetManifestFile(t),o=r.event.event_type,i=s.events[o];if(!i)throw new Error(`No handler configured for event type: ${o}`);const c=i.handler,u=path_1.default.join(e,"handler","handler.js"),l=this.fileSystem.readFileSync(u,"utf8"),d={eventId:r.event.id||"unknown",eventType:r.event.event_type||"unknown"};return await chargebee_apps_shared_1.sandboxContext.run(d,async()=>{const f=this.createSandbox(e,r,n),_=vm_1.default.createContext(f),p=` | ||
| "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(a,e,r,n){n===void 0&&(n=r);var t=Object.getOwnPropertyDescriptor(e,r);(!t||("get"in t?!e.__esModule:t.writable||t.configurable))&&(t={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(a,n,t)}):(function(a,e,r,n){n===void 0&&(n=r),a[n]=e[r]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(a,e){Object.defineProperty(a,"default",{enumerable:!0,value:e})}):function(a,e){a.default=e}),__importStar=this&&this.__importStar||(function(){var a=function(e){return a=Object.getOwnPropertyNames||function(r){var n=[];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(n[n.length]=t);return n},a(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var n=a(e),t=0;t<n.length;t++)n[t]!=="default"&&__createBinding(r,e,n[t]);return __setModuleDefault(r,e),r}})(),__importDefault=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PublicSandboxWrapper=void 0;const chargebee_apps_shared_1=require("@chargebee/chargebee-apps-shared"),path_1=__importDefault(require("path")),vm_1=__importDefault(require("vm")),dotenv=__importStar(require("dotenv")),cb_public_logger_1=require("../logger/cb-public-logger");class PublicSandboxWrapper{constructor(e,r,n,t,s){this.fileSystem=r,this.packageValidator=n,this.dependencyManager=t,this.allowedModules=e,this.manifestValidator=s}createSafeRequire(e){return this.dependencyManager.createIsolatedRequire(e,this.allowedModules)}loadEnvironmentVariables(e){const r=path_1.default.join(e,".env"),n={};try{const t=dotenv.config({path:r});t.parsed&&(t.parsed.CB_APPS_READ_ONLY_API&&(n.CB_APPS_READ_ONLY_API=t.parsed.CB_APPS_READ_ONLY_API),t.parsed.CB_APPS_READ_WRITE_API&&(n.CB_APPS_READ_WRITE_API=t.parsed.CB_APPS_READ_WRITE_API),t.parsed.CB_APPS_SITE_DOMAIN?n.CB_APPS_SITE_DOMAIN=t.parsed.CB_APPS_SITE_DOMAIN:n.CB_APPS_SITE_DOMAIN="")}catch(t){chargebee_apps_shared_1.__logger.debug(`Failed to load .env file from ${r}: ${t}`)}return n}createSandbox(e,r,n){const t={exports:{}},s=t.exports,o=this.loadEnvironmentVariables(e),i=Object.prototype.hasOwnProperty.call(r,"iparams"),c=Object.freeze(i?{event:r.event,iparams:r.iparams??{}}:{event:r.event});return{console:(0,cb_public_logger_1.createSafeConsole)(n),payload:c,setTimeout,clearTimeout,setImmediate,clearImmediate,module:t,exports:s,require:this.createSafeRequire(e),process:{cwd:()=>process.cwd(),env:o,nextTick:process.nextTick},global:void 0,Buffer:void 0,__dirname:void 0,__filename:void 0}}async execute(e,r,n){try{chargebee_apps_shared_1.__logger.debug(`Executing user code from: ${e}`),this.packageValidator.validateHandlerExists(e),this.packageValidator.validateManifestExists(e);const t=path_1.default.join(e,"manifest.json"),s=this.manifestValidator.validateAndGetManifestFile(t),o=r.event.event_type,i=s.events[o];if(!i)throw new Error(`No handler configured for event type: ${o}`);const c=i.handler,u=path_1.default.join(e,"handler","handler.js"),l=this.fileSystem.readFileSync(u,"utf8"),d={eventId:r.event.id||"unknown",eventType:r.event.event_type||"unknown"};return await chargebee_apps_shared_1.sandboxContext.run(d,async()=>{const f=this.createSandbox(e,r,n),_=vm_1.default.createContext(f),p=` | ||
| (async function() { | ||
@@ -3,0 +3,0 @@ "use strict"; |
+2
-2
| { | ||
| "name": "@chargebee/chargebee-apps-libs", | ||
| "version": "0.0.3", | ||
| "version": "0.0.4", | ||
| "description": "Public library implementations for Chargebee Apps CLI", | ||
@@ -25,3 +25,3 @@ "main": "dist/index.js", | ||
| "dependencies": { | ||
| "@chargebee/chargebee-apps-shared": "0.0.3", | ||
| "@chargebee/chargebee-apps-shared": "0.0.4", | ||
| "dotenv": "^16.3.1" | ||
@@ -28,0 +28,0 @@ }, |
| # Only these three variables are supported. Replace values for local development only. Do not add new vars. | ||
| MKPLC_CB_READ_ONLY_API=REPLACE_WITH_READ_ONLY_API_KEY | ||
| MKPLC_CB_READ_WRITE_API=REPLACE_WITH_READ_WRITE_API_KEY | ||
| MKPLC_SITE_DOMAIN=REPLACE_WITH_SITE_DOMAIN | ||
| CB_APPS_READ_ONLY_API=REPLACE_WITH_READ_ONLY_API_KEY | ||
| CB_APPS_READ_WRITE_API=REPLACE_WITH_READ_WRITE_API_KEY | ||
| CB_APPS_SITE_DOMAIN=REPLACE_WITH_SITE_DOMAIN |
| { | ||
| "name": "<your-app-name>", | ||
| "description": "<your-app-description>", | ||
| "github_url": "<your-github-repo-url>", | ||
| "events": { | ||
@@ -5,0 +6,0 @@ "customer_created": { |
@@ -66,2 +66,3 @@ # Serverless Node.js App Template With iParams | ||
| "description": "A custom app", | ||
| "github_url": "<your-github-repo-url>", | ||
| "events": { | ||
@@ -185,5 +186,5 @@ "customer_created": { | ||
| |----------|-------------| | ||
| | `MKPLC_CB_READ_ONLY_API` | Chargebee read-only API key | | ||
| | `MKPLC_CB_READ_WRITE_API` | Chargebee read-write API key | | ||
| | `MKPLC_SITE_DOMAIN` | Chargebee site domain | | ||
| | `CB_APPS_READ_ONLY_API` | Chargebee read-only API key | | ||
| | `CB_APPS_READ_WRITE_API` | Chargebee read-write API key | | ||
| | `CB_APPS_SITE_DOMAIN` | Chargebee site domain | | ||
@@ -201,5 +202,5 @@ - **Production:** The system provides these values at runtime. You do not configure them in production. | ||
| ```env | ||
| MKPLC_CB_READ_ONLY_API=your_read_only_api_key_here | ||
| MKPLC_CB_READ_WRITE_API=your_read_write_api_key_here | ||
| MKPLC_SITE_DOMAIN=yousite123 | ||
| CB_APPS_READ_ONLY_API=your_read_only_api_key_here | ||
| CB_APPS_READ_WRITE_API=your_read_write_api_key_here | ||
| CB_APPS_SITE_DOMAIN=yousite123 | ||
| ``` | ||
@@ -211,5 +212,5 @@ | ||
| // handler/handler.js – only these three vars are available from process.env | ||
| const readOnlyApiKey = process.env.MKPLC_CB_READ_ONLY_API; | ||
| const readWriteApiKey = process.env.MKPLC_CB_READ_WRITE_API; | ||
| const siteDomain = process.env.MKPLC_SITE_DOMAIN; | ||
| const readOnlyApiKey = process.env.CB_APPS_READ_ONLY_API; | ||
| const readWriteApiKey = process.env.CB_APPS_READ_WRITE_API; | ||
| const siteDomain = process.env.CB_APPS_SITE_DOMAIN; | ||
| ``` | ||
@@ -216,0 +217,0 @@ |
| # Only these three variables are supported. Replace values for local development only. Do not add new vars. | ||
| MKPLC_CB_READ_ONLY_API=REPLACE_WITH_READ_ONLY_API_KEY | ||
| MKPLC_CB_READ_WRITE_API=REPLACE_WITH_READ_WRITE_API_KEY | ||
| MKPLC_SITE_DOMAIN=REPLACE_WITH_SITE_DOMAIN | ||
| CB_APPS_READ_ONLY_API=REPLACE_WITH_READ_ONLY_API_KEY | ||
| CB_APPS_READ_WRITE_API=REPLACE_WITH_READ_WRITE_API_KEY | ||
| CB_APPS_SITE_DOMAIN=REPLACE_WITH_SITE_DOMAIN |
| { | ||
| "name": "<your-app-name>", | ||
| "description": "<your-app-description>", | ||
| "github_url": "<your-github-repo-url>", | ||
| "events": { | ||
@@ -5,0 +6,0 @@ "customer_created": { |
@@ -62,2 +62,3 @@ # Serverless Node.js App Template | ||
| "description": "A custom app", | ||
| "github_url": "<your-github-repo-url>", | ||
| "events": { | ||
@@ -187,5 +188,5 @@ "customer_created": { | ||
| |----------|-------------| | ||
| | `MKPLC_CB_READ_ONLY_API` | Chargebee read-only API key | | ||
| | `MKPLC_CB_READ_WRITE_API` | Chargebee read-write API key | | ||
| | `MKPLC_SITE_DOMAIN` | Chargebee site domain | | ||
| | `CB_APPS_READ_ONLY_API` | Chargebee read-only API key | | ||
| | `CB_APPS_READ_WRITE_API` | Chargebee read-write API key | | ||
| | `CB_APPS_SITE_DOMAIN` | Chargebee site domain | | ||
@@ -202,5 +203,5 @@ - **Production:** The system provides these values at runtime. You do not configure them in production. | ||
| # Replace these with your actual Chargebee API keys | ||
| MKPLC_CB_READ_ONLY_API=your_read_only_api_key_here | ||
| MKPLC_CB_READ_WRITE_API=your_read_write_api_key_here | ||
| MKPLC_SITE_DOMAIN=yousite123 | ||
| CB_APPS_READ_ONLY_API=your_read_only_api_key_here | ||
| CB_APPS_READ_WRITE_API=your_read_write_api_key_here | ||
| CB_APPS_SITE_DOMAIN=yousite123 | ||
| ``` | ||
@@ -217,4 +218,4 @@ | ||
| // Access your API keys | ||
| const readOnlyApiKey = process.env.MKPLC_CB_READ_ONLY_API; | ||
| const readWriteApiKey = process.env.MKPLC_CB_READ_WRITE_API; | ||
| const readOnlyApiKey = process.env.CB_APPS_READ_ONLY_API; | ||
| const readWriteApiKey = process.env.CB_APPS_READ_WRITE_API; | ||
@@ -231,4 +232,4 @@ if (!readOnlyApiKey || !readWriteApiKey) { | ||
| const chargebee = new Chargebee({ | ||
| site: process.env.MKPLC_SITE_DOMAIN, | ||
| apiKey: process.env.MKPLC_CB_READ_ONLY_API | ||
| site: process.env.CB_APPS_SITE_DOMAIN, | ||
| apiKey: process.env.CB_APPS_READ_ONLY_API | ||
| }); | ||
@@ -235,0 +236,0 @@ |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
176290
1.62%51
4.08%3265
1.33%7
16.67%8
14.29%+ Added
- Removed