@chargebee/chargebee-apps-libs 0.0.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/LICENSE +24 -0
- package/README.md +97 -0
- package/SECURITY.md +8 -0
- package/config/README.md +83 -0
- package/config/allowed-modules.json +24 -0
- package/dist/config/config-loader.d.ts +24 -0
- package/dist/config/config-loader.js +95 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +21 -0
- package/dist/libs/port-service.d.ts +18 -0
- package/dist/libs/port-service.js +27 -0
- package/dist/logger/cb-public-logger.d.ts +59 -0
- package/dist/logger/cb-public-logger.js +158 -0
- package/dist/sandbox/public-sandbox-wrapper.d.ts +41 -0
- package/dist/sandbox/public-sandbox-wrapper.js +208 -0
- package/package.json +44 -0
- package/templates/serverless-node-starter-app/.env +4 -0
- package/templates/serverless-node-starter-app/README.md +290 -0
- package/templates/serverless-node-starter-app/handler/handler.js +34 -0
- package/templates/serverless-node-starter-app/jsconfig.json +35 -0
- package/templates/serverless-node-starter-app/manifest.json +15 -0
- package/templates/serverless-node-starter-app/test_data/customer_created.json +51 -0
- package/templates/serverless-node-starter-app/test_data/invoice_generated.json +112 -0
- package/templates/serverless-node-starter-app/test_data/subscription_created.json +173 -0
- package/templates/serverless-node-starter-app/types/types.d.ts +45 -0
- package/templates/serverless-node-starter-app-with-iparams/.env +4 -0
- package/templates/serverless-node-starter-app-with-iparams/README.md +717 -0
- package/templates/serverless-node-starter-app-with-iparams/handler/handler.js +39 -0
- package/templates/serverless-node-starter-app-with-iparams/iparams.json +41 -0
- package/templates/serverless-node-starter-app-with-iparams/iparams.local.json +9 -0
- package/templates/serverless-node-starter-app-with-iparams/jsconfig.json +35 -0
- package/templates/serverless-node-starter-app-with-iparams/manifest.json +15 -0
- package/templates/serverless-node-starter-app-with-iparams/test_data/customer_created.json +51 -0
- package/templates/serverless-node-starter-app-with-iparams/test_data/invoice_generated.json +112 -0
- package/templates/serverless-node-starter-app-with-iparams/test_data/subscription_created.json +173 -0
- package/templates/serverless-node-starter-app-with-iparams/types/types.d.ts +63 -0
- package/ui/README.md +118 -0
- package/ui/web/assets/css/main.css +1121 -0
- package/ui/web/assets/images/Chargebee-logo.png +0 -0
- package/ui/web/assets/js/main.js +61 -0
- package/ui/web/assets/js/modules/api.js +97 -0
- package/ui/web/assets/js/modules/constants.js +33 -0
- package/ui/web/assets/js/modules/editors.js +41 -0
- package/ui/web/assets/js/modules/events.js +195 -0
- package/ui/web/assets/js/modules/form-utils.js +70 -0
- package/ui/web/assets/js/modules/iparams-inputs.js +495 -0
- package/ui/web/assets/js/modules/iparams.js +82 -0
- package/ui/web/assets/js/modules/ui-utils.js +87 -0
- package/ui/web/index.html +164 -0
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Serverless App Tester</title>
|
|
7
|
+
<link rel="stylesheet" href="assets/css/main.css">
|
|
8
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.23.0/ace.js"></script>
|
|
9
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.23.0/mode-json.js"></script>
|
|
10
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.23.0/theme-github.js"></script>
|
|
11
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.23.0/ext-language_tools.js"></script>
|
|
12
|
+
</head>
|
|
13
|
+
<body>
|
|
14
|
+
<div class="container">
|
|
15
|
+
<header>
|
|
16
|
+
<div class="logo-container">
|
|
17
|
+
<img src="assets/images/Chargebee-logo.png" alt="Chargebee Logo" class="chargebee-logo">
|
|
18
|
+
</div>
|
|
19
|
+
<div class="header-content">
|
|
20
|
+
<h1>Serverless App Tester</h1>
|
|
21
|
+
<p>Test your serverless functions with sample event data</p>
|
|
22
|
+
</div>
|
|
23
|
+
</header>
|
|
24
|
+
|
|
25
|
+
<main>
|
|
26
|
+
<div class="main-layout">
|
|
27
|
+
<!-- Developer Guide Section -->
|
|
28
|
+
<div class="developer-guide">
|
|
29
|
+
<div class="guide-header">
|
|
30
|
+
<h3>Developer Guide</h3>
|
|
31
|
+
</div>
|
|
32
|
+
<div class="guide-content">
|
|
33
|
+
<div class="guide-section">
|
|
34
|
+
<h4>Add Support for New Event</h4>
|
|
35
|
+
<p>To add support for a new event type, follow these steps:</p>
|
|
36
|
+
<ol>
|
|
37
|
+
<li><strong>Add Event Mapping:</strong> In <code>manifest.json</code>, add your event type and handler mapping</li>
|
|
38
|
+
<li><strong>Create Handler Function:</strong> In <code>handler.js</code>, implement your handler function</li>
|
|
39
|
+
<li><strong>Add Sample Data:</strong> Create <code><event_type>.json</code> in the <code>test_data/</code> directory</li>
|
|
40
|
+
</ol>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
<div class="guide-section">
|
|
44
|
+
<h4>Testing Your Event Handler Using Sample Data</h4>
|
|
45
|
+
<ol>
|
|
46
|
+
<li>Select an event type from the dropdown (shows all events from manifest.json)</li>
|
|
47
|
+
<li>Sample data will automatically load in the JSON editor</li>
|
|
48
|
+
<li>Modify the JSON data as needed</li>
|
|
49
|
+
<li>Click "Test Data" to test the event</li>
|
|
50
|
+
<li>Check the terminal output for results</li>
|
|
51
|
+
</ol>
|
|
52
|
+
<p><strong>Note:</strong> The status block will only show whether your action succeeded or failed. It will not display the output of your handler function. To view the handler's output, please check your terminal.</p>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
|
|
57
|
+
<!-- Control Panel -->
|
|
58
|
+
<div class="control-panel">
|
|
59
|
+
<!-- Tab Navigation -->
|
|
60
|
+
<div class="tab-navigation">
|
|
61
|
+
<button class="tab-btn active" data-tab="events">Events</button>
|
|
62
|
+
<button class="tab-btn" data-tab="iparams">Iparams</button>
|
|
63
|
+
<button class="tab-btn" data-tab="iparams-inputs">Iparams Inputs</button>
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
<!-- Events Tab Content -->
|
|
67
|
+
<div class="tab-content active" id="events-tab">
|
|
68
|
+
<div class="form-group event-type-section">
|
|
69
|
+
<label for="eventType">Select Event Type:</label>
|
|
70
|
+
<div class="select-dropdown-container">
|
|
71
|
+
<select id="eventType" class="event-dropdown iparam-input">
|
|
72
|
+
<option value="">Choose an event type...</option>
|
|
73
|
+
</select>
|
|
74
|
+
<span class="select-dropdown-arrow"></span>
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
77
|
+
|
|
78
|
+
<div class="form-group json-section">
|
|
79
|
+
<label for="jsonEditor">Event Data (JSON):</label>
|
|
80
|
+
<div id="jsonEditor" class="json-editor"></div>
|
|
81
|
+
</div>
|
|
82
|
+
|
|
83
|
+
<div class="button-group">
|
|
84
|
+
<button id="resetBtn" class="btn btn-secondary">Reset</button>
|
|
85
|
+
<button id="testDataBtn" class="btn btn-success">Test Data</button>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
<!-- Iparams Tab Content -->
|
|
90
|
+
<div class="tab-content" id="iparams-tab">
|
|
91
|
+
<div class="form-group">
|
|
92
|
+
<div class="editor-header">
|
|
93
|
+
<label for="iparamsEditor">DEFINE PARAMETERS (JSON)</label>
|
|
94
|
+
<button id="editIparamsBtn" class="btn btn-primary">Edit</button>
|
|
95
|
+
</div>
|
|
96
|
+
<div id="iparamsEditor" class="json-editor"></div>
|
|
97
|
+
</div>
|
|
98
|
+
<div class="button-group">
|
|
99
|
+
<button id="saveIparamsBtn" class="btn btn-success" style="display: none;">Save Iparams</button>
|
|
100
|
+
<button id="cancelIparamsBtn" class="btn btn-secondary" style="display: none;">Cancel</button>
|
|
101
|
+
</div>
|
|
102
|
+
</div>
|
|
103
|
+
|
|
104
|
+
<!-- Iparams Inputs Tab Content -->
|
|
105
|
+
<div class="tab-content" id="iparams-inputs-tab">
|
|
106
|
+
<div class="form-group">
|
|
107
|
+
<div class="editor-header">
|
|
108
|
+
<label for="iparamsInputsEditor">PARAMETER INPUTS</label>
|
|
109
|
+
<div class="view-toggle">
|
|
110
|
+
<button id="toggleViewBtn" class="btn btn-secondary">Switch to JSON</button>
|
|
111
|
+
<button id="editInputsBtn" class="btn btn-primary">Edit</button>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
<!-- Form View -->
|
|
115
|
+
<div id="iparamsInputsForm" class="iparams-form-view"></div>
|
|
116
|
+
<!-- JSON View -->
|
|
117
|
+
<div id="iparamsInputsEditor" class="json-editor" style="display: none;"></div>
|
|
118
|
+
</div>
|
|
119
|
+
<div class="button-group">
|
|
120
|
+
<button id="saveInputsBtn" class="btn btn-success" style="display: none;">Save Inputs</button>
|
|
121
|
+
<button id="cancelInputsBtn" class="btn btn-secondary" style="display: none;">Cancel</button>
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
125
|
+
|
|
126
|
+
<!-- Status Message Block -->
|
|
127
|
+
<div class="status-block">
|
|
128
|
+
<div class="status-header">
|
|
129
|
+
<h3>Status</h3>
|
|
130
|
+
</div>
|
|
131
|
+
<div class="status-content">
|
|
132
|
+
<span id="statusText">Select an event type and click "Test Data" to test your function</span>
|
|
133
|
+
</div>
|
|
134
|
+
</div>
|
|
135
|
+
</div>
|
|
136
|
+
</main>
|
|
137
|
+
|
|
138
|
+
<!-- Popup Modal -->
|
|
139
|
+
<div id="errorModal" class="modal">
|
|
140
|
+
<div class="modal-content">
|
|
141
|
+
<div class="modal-header">
|
|
142
|
+
<h3>Missing Required Parameters</h3>
|
|
143
|
+
<button class="modal-close" id="closeModal">×</button>
|
|
144
|
+
</div>
|
|
145
|
+
<div class="modal-body">
|
|
146
|
+
<p>The following required parameters are missing:</p>
|
|
147
|
+
<ul id="missingParamsList"></ul>
|
|
148
|
+
<p>Please provide values for these parameters in the <strong>Iparams Inputs</strong> tab or set default values in the <strong>Iparams</strong> tab.</p>
|
|
149
|
+
</div>
|
|
150
|
+
<div class="modal-footer">
|
|
151
|
+
<button class="btn btn-primary" id="goToIparamsBtn">Go to Iparams Inputs</button>
|
|
152
|
+
<button class="btn btn-secondary" id="closeModalBtn">Close</button>
|
|
153
|
+
</div>
|
|
154
|
+
</div>
|
|
155
|
+
</div>
|
|
156
|
+
|
|
157
|
+
<footer>
|
|
158
|
+
<p>© 2025 Chargebee. All rights reserved.</p>
|
|
159
|
+
</footer>
|
|
160
|
+
</div>
|
|
161
|
+
|
|
162
|
+
<script type="module" src="assets/js/main.js"></script>
|
|
163
|
+
</body>
|
|
164
|
+
</html>
|