@major-tech/resource-client 0.2.3 → 0.2.4

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.
@@ -27,13 +27,35 @@ const __dirname = path.dirname(__filename);
27
27
  // User's project root (where the command is run from)
28
28
  const projectRoot = process.cwd();
29
29
  const resourcesConfigPath = path.join(projectRoot, 'resources.json');
30
- const clientsDir = path.join(projectRoot, 'src', 'clients');
30
+
31
+ function getClientsDir() {
32
+ const srcDir = path.join(projectRoot, 'src');
33
+ if (fs.existsSync(srcDir)) {
34
+ return path.join(srcDir, 'clients');
35
+ }
36
+ return path.join(projectRoot, 'clients');
37
+ }
31
38
 
32
39
  /**
33
40
  * Client template
34
41
  */
35
- function clientTemplate(data) {
36
- return `import { ${data.clientClass} } from '@major-tech/resource-client';
42
+ function clientTemplate(data, framework) {
43
+ const isNextJs = framework === 'nextjs';
44
+
45
+ const imports = [
46
+ `import { ${data.clientClass} } from '@major-tech/resource-client';`,
47
+ isNextJs ? `import { headers } from 'next/headers';` : ''
48
+ ].filter(Boolean).join('\n');
49
+
50
+ const getHeadersConfig = isNextJs ? `
51
+ getHeaders: async () => {
52
+ const h = await headers();
53
+ return {
54
+ 'x-major-user-jwt': h.get('x-major-user-jwt') || '',
55
+ };
56
+ },` : '';
57
+
58
+ return `${imports}
37
59
 
38
60
  /**
39
61
  * ${data.description}
@@ -45,8 +67,8 @@ function clientTemplate(data) {
45
67
  * DO NOT EDIT - Auto-generated by @major-tech/resource-client
46
68
  */
47
69
 
48
- const BASE_URL = import.meta.env.MAJOR_API_BASE_URL || 'https://api.prod.major.build';
49
- const MAJOR_JWT_TOKEN = import.meta.env.MAJOR_JWT_TOKEN;
70
+ const BASE_URL = ${isNextJs ? 'process.env.MAJOR_API_BASE_URL' : 'import.meta.env.MAJOR_API_BASE_URL'} || 'https://api.prod.major.build';
71
+ const MAJOR_JWT_TOKEN = ${isNextJs ? 'process.env.MAJOR_JWT_TOKEN' : 'import.meta.env.MAJOR_JWT_TOKEN'};
50
72
 
51
73
  class ${data.clientName}Singleton {
52
74
  private static instance: ${data.clientClass} | null = null;
@@ -58,7 +80,7 @@ class ${data.clientName}Singleton {
58
80
  majorJwtToken: MAJOR_JWT_TOKEN,
59
81
  applicationId: '${data.applicationId}',
60
82
  resourceId: '${data.resourceId}',
61
- fetch: (...args) => fetch(...args),
83
+ fetch: (...args) => fetch(...args),${getHeadersConfig}
62
84
  });
63
85
  }
64
86
  return ${data.clientName}Singleton.instance;
@@ -127,7 +149,7 @@ function getClientClass(type) {
127
149
  return typeMap[type] || 'PostgresResourceClient';
128
150
  }
129
151
 
130
- function generateClientFile(resource) {
152
+ function generateClientFile(resource, framework) {
131
153
  const clientName = toCamelCase(resource.name) + 'Client';
132
154
  const clientClass = getClientClass(resource.type);
133
155
 
@@ -138,7 +160,7 @@ function generateClientFile(resource) {
138
160
  resourceId: resource.id,
139
161
  applicationId: resource.applicationId,
140
162
  clientName,
141
- });
163
+ }, framework);
142
164
  }
143
165
 
144
166
  function generateIndexFile(resources) {
@@ -155,7 +177,7 @@ function generateIndexFile(resources) {
155
177
  return indexTemplate({ exports });
156
178
  }
157
179
 
158
- function addResource(resourceId, name, type, description, applicationId) {
180
+ function addResource(resourceId, name, type, description, applicationId, framework) {
159
181
  const validTypes = ['database-postgresql', 'database-dynamodb', 'api-hubspot', 'api-custom', 'storage-s3'];
160
182
  if (!validTypes.includes(type)) {
161
183
  console.error(`❌ Invalid type: ${type}`);
@@ -192,13 +214,13 @@ function addResource(resourceId, name, type, description, applicationId) {
192
214
  console.log(` Type: ${type}`);
193
215
  console.log(` ID: ${resourceId}`);
194
216
 
195
- regenerateClients(resources);
217
+ regenerateClients(resources, framework);
196
218
  }
197
219
 
198
220
  /**
199
221
  * Remove a resource by name
200
222
  */
201
- function removeResource(name) {
223
+ function removeResource(name, framework) {
202
224
  const resources = loadResources();
203
225
  const index = resources.findIndex(r => r.name === name);
204
226
 
@@ -213,7 +235,7 @@ function removeResource(name) {
213
235
  console.log(`✅ Removed resource: ${removed.name}`);
214
236
  console.log(` ID: ${removed.id}`);
215
237
 
216
- regenerateClients(resources);
238
+ regenerateClients(resources, framework);
217
239
  }
218
240
 
219
241
  /**
@@ -239,7 +261,9 @@ function listResources() {
239
261
  /**
240
262
  * Regenerate all client files
241
263
  */
242
- function regenerateClients(resources) {
264
+ function regenerateClients(resources, framework) {
265
+ const clientsDir = getClientsDir();
266
+
243
267
  // Ensure clients directory exists
244
268
  if (!fs.existsSync(clientsDir)) {
245
269
  fs.mkdirSync(clientsDir, { recursive: true });
@@ -255,7 +279,7 @@ function regenerateClients(resources) {
255
279
  resources.forEach(resource => {
256
280
  const fileName = toCamelCase(resource.name) + '.ts';
257
281
  const filePath = path.join(clientsDir, fileName);
258
- const code = generateClientFile(resource);
282
+ const code = generateClientFile(resource, framework);
259
283
  fs.writeFileSync(filePath, code, 'utf-8');
260
284
  });
261
285
 
@@ -265,6 +289,9 @@ function regenerateClients(resources) {
265
289
  fs.writeFileSync(indexPath, indexCode, 'utf-8');
266
290
 
267
291
  console.log(`✅ Generated ${resources.length} client(s) in ${clientsDir}`);
292
+ if (framework) {
293
+ console.log(` Framework: ${framework}`);
294
+ }
268
295
  }
269
296
 
270
297
  /**
@@ -274,10 +301,19 @@ function main() {
274
301
  const args = process.argv.slice(2);
275
302
  const command = args[0];
276
303
 
304
+ // Extract --framework flag
305
+ const frameworkIndex = args.indexOf('--framework');
306
+ let framework = undefined;
307
+ if (frameworkIndex !== -1 && args[frameworkIndex + 1]) {
308
+ framework = args[frameworkIndex + 1];
309
+ // Remove --framework and its value from args
310
+ args.splice(frameworkIndex, 2);
311
+ }
312
+
277
313
  if (!command) {
278
314
  console.log('Usage:');
279
- console.log(' npx @major-tech/resource-client add <resource_id> <name> <type> <description> <application_id>');
280
- console.log(' npx @major-tech/resource-client remove <name>');
315
+ console.log(' npx @major-tech/resource-client add <resource_id> <name> <type> <description> <application_id> [--framework <nextjs|vite>]');
316
+ console.log(' npx @major-tech/resource-client remove <name> [--framework <nextjs|vite>]');
281
317
  console.log(' npx @major-tech/resource-client list');
282
318
  console.log('\nTypes: database-postgresql | database-dynamodb | api-hubspot | api-custom | storage-s3');
283
319
  return;
@@ -288,10 +324,10 @@ function main() {
288
324
  const [, resourceId, name, type, description, applicationId] = args;
289
325
  if (!resourceId || !name || !type || !description || !applicationId) {
290
326
  console.error('❌ Missing arguments');
291
- console.log('Usage: add <resource_id> <name> <type> <description> <application_id>');
327
+ console.log('Usage: add <resource_id> <name> <type> <description> <application_id> [--framework <nextjs|vite>]');
292
328
  process.exit(1);
293
329
  }
294
- addResource(resourceId, name, type, description, applicationId);
330
+ addResource(resourceId, name, type, description, applicationId, framework);
295
331
  break;
296
332
  }
297
333
 
@@ -301,7 +337,7 @@ function main() {
301
337
  console.error('❌ Missing name');
302
338
  process.exit(1);
303
339
  }
304
- removeResource(name);
340
+ removeResource(name, framework);
305
341
  break;
306
342
  }
307
343
 
@@ -309,13 +345,7 @@ function main() {
309
345
  listResources();
310
346
  break;
311
347
  }
312
-
313
- case 'regenerate': {
314
- const resources = loadResources();
315
- regenerateClients(resources);
316
- break;
317
- }
318
-
348
+
319
349
  default: {
320
350
  console.error(`❌ Unknown command: ${command}`);
321
351
  process.exit(1);
package/dist/base.cjs CHANGED
@@ -34,7 +34,8 @@ class BaseResourceClient {
34
34
  majorJwtToken: config.majorJwtToken,
35
35
  applicationId: config.applicationId,
36
36
  resourceId: config.resourceId,
37
- fetch: config.fetch || globalThis.fetch
37
+ fetch: config.fetch || globalThis.fetch,
38
+ getHeaders: config.getHeaders
38
39
  };
39
40
  }
40
41
  async invokeRaw(payload, invocationKey) {
@@ -43,12 +44,16 @@ class BaseResourceClient {
43
44
  payload,
44
45
  invocationKey
45
46
  };
46
- const headers = {
47
+ let headers = {
47
48
  "Content-Type": "application/json"
48
49
  };
49
50
  if (this.config.majorJwtToken) {
50
51
  headers["x-major-jwt"] = this.config.majorJwtToken;
51
52
  }
53
+ if (this.config.getHeaders) {
54
+ const extraHeaders = await this.config.getHeaders();
55
+ headers = { ...headers, ...extraHeaders };
56
+ }
52
57
  try {
53
58
  const response = await this.config.fetch(url, {
54
59
  method: "POST",
package/dist/base.cjs.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/base.ts"],
4
- "sourcesContent": ["import type {\n ResourceInvokePayload,\n InvokeResponse,\n InvokeRequest,\n} from \"./schemas\";\nimport { ResourceInvokeError } from \"./errors\";\n\nexport interface BaseClientConfig {\n baseUrl: string;\n majorJwtToken?: string;\n applicationId: string;\n resourceId: string;\n fetch?: typeof fetch;\n}\n\nexport abstract class BaseResourceClient {\n protected readonly config: {\n baseUrl: string;\n majorJwtToken?: string;\n applicationId: string;\n resourceId: string;\n fetch: typeof fetch;\n };\n\n constructor(config: BaseClientConfig) {\n this.config = {\n baseUrl: config.baseUrl.replace(/\\/$/, \"\"),\n majorJwtToken: config.majorJwtToken,\n applicationId: config.applicationId,\n resourceId: config.resourceId,\n fetch: config.fetch || globalThis.fetch,\n };\n }\n\n protected async invokeRaw(\n payload: ResourceInvokePayload,\n invocationKey: string,\n ): Promise<InvokeResponse> {\n const url = `${this.config.baseUrl}/internal/apps/v1/${this.config.applicationId}/resource/${this.config.resourceId}/invoke`;\n \n const body: InvokeRequest = {\n payload,\n invocationKey,\n };\n\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n };\n\n if (this.config.majorJwtToken) {\n headers[\"x-major-jwt\"] = this.config.majorJwtToken;\n }\n\n try {\n const response = await this.config.fetch(url, {\n method: \"POST\",\n headers,\n credentials: \"include\",\n body: JSON.stringify(body),\n });\n\n const data = await response.json();\n return data as InvokeResponse;\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new ResourceInvokeError(`Failed to invoke resource: ${message}`);\n }\n }\n}\n\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAKA;;;;;AAAA,oBAAoC;AAU9B,MAAgB,mBAAkB;EAVxC,OAUwC;;;EACnB;EAQnB,YAAY,QAAwB;AAClC,SAAK,SAAS;MACZ,SAAS,OAAO,QAAQ,QAAQ,OAAO,EAAE;MACzC,eAAe,OAAO;MACtB,eAAe,OAAO;MACtB,YAAY,OAAO;MACnB,OAAO,OAAO,SAAS,WAAW;;EAEtC;EAEU,MAAM,UACd,SACA,eAAqB;AAErB,UAAM,MAAM,GAAG,KAAK,OAAO,OAAO,qBAAqB,KAAK,OAAO,aAAa,aAAa,KAAK,OAAO,UAAU;AAEnH,UAAM,OAAsB;MAC1B;MACA;;AAGF,UAAM,UAAkC;MACtC,gBAAgB;;AAGlB,QAAI,KAAK,OAAO,eAAe;AAC7B,cAAQ,aAAa,IAAI,KAAK,OAAO;IACvC;AAEA,QAAI;AACF,YAAM,WAAW,MAAM,KAAK,OAAO,MAAM,KAAK;QAC5C,QAAQ;QACR;QACA,aAAa;QACb,MAAM,KAAK,UAAU,IAAI;OAC1B;AAED,YAAM,OAAO,MAAM,SAAS,KAAI;AAChC,aAAO;IACT,SAAS,OAAO;AACd,YAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AACrE,YAAM,IAAI,kCAAoB,8BAA8B,OAAO,EAAE;IACvE;EACF;;",
4
+ "sourcesContent": ["import type {\n ResourceInvokePayload,\n InvokeResponse,\n InvokeRequest,\n} from \"./schemas\";\nimport { ResourceInvokeError } from \"./errors\";\n\nexport interface BaseClientConfig {\n baseUrl: string;\n majorJwtToken?: string;\n applicationId: string;\n resourceId: string;\n fetch?: typeof fetch;\n /**\n * Optional function to get additional headers (e.g. for auth)\n * Useful for Next.js Server Components where headers() must be called dynamically\n */\n getHeaders?: () => Promise<Record<string, string>> | Record<string, string>;\n}\n\nexport abstract class BaseResourceClient {\n protected readonly config: {\n baseUrl: string;\n majorJwtToken?: string;\n applicationId: string;\n resourceId: string;\n fetch: typeof fetch;\n getHeaders?: () => Promise<Record<string, string>> | Record<string, string>;\n };\n\n constructor(config: BaseClientConfig) {\n this.config = {\n baseUrl: config.baseUrl.replace(/\\/$/, \"\"),\n majorJwtToken: config.majorJwtToken,\n applicationId: config.applicationId,\n resourceId: config.resourceId,\n fetch: config.fetch || globalThis.fetch,\n getHeaders: config.getHeaders,\n };\n }\n\n protected async invokeRaw(\n payload: ResourceInvokePayload,\n invocationKey: string,\n ): Promise<InvokeResponse> {\n const url = `${this.config.baseUrl}/internal/apps/v1/${this.config.applicationId}/resource/${this.config.resourceId}/invoke`;\n \n const body: InvokeRequest = {\n payload,\n invocationKey,\n };\n\n let headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n };\n\n if (this.config.majorJwtToken) {\n headers[\"x-major-jwt\"] = this.config.majorJwtToken;\n }\n\n if (this.config.getHeaders) {\n const extraHeaders = await this.config.getHeaders();\n headers = { ...headers, ...extraHeaders };\n }\n\n try {\n const response = await this.config.fetch(url, {\n method: \"POST\",\n headers,\n credentials: \"include\",\n body: JSON.stringify(body),\n });\n\n const data = await response.json();\n return data as InvokeResponse;\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new ResourceInvokeError(`Failed to invoke resource: ${message}`);\n }\n }\n}\n\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAKA;;;;;AAAA,oBAAoC;AAe9B,MAAgB,mBAAkB;EAfxC,OAewC;;;EACnB;EASnB,YAAY,QAAwB;AAClC,SAAK,SAAS;MACZ,SAAS,OAAO,QAAQ,QAAQ,OAAO,EAAE;MACzC,eAAe,OAAO;MACtB,eAAe,OAAO;MACtB,YAAY,OAAO;MACnB,OAAO,OAAO,SAAS,WAAW;MAClC,YAAY,OAAO;;EAEvB;EAEU,MAAM,UACd,SACA,eAAqB;AAErB,UAAM,MAAM,GAAG,KAAK,OAAO,OAAO,qBAAqB,KAAK,OAAO,aAAa,aAAa,KAAK,OAAO,UAAU;AAEnH,UAAM,OAAsB;MAC1B;MACA;;AAGF,QAAI,UAAkC;MACpC,gBAAgB;;AAGlB,QAAI,KAAK,OAAO,eAAe;AAC7B,cAAQ,aAAa,IAAI,KAAK,OAAO;IACvC;AAEA,QAAI,KAAK,OAAO,YAAY;AAC1B,YAAM,eAAe,MAAM,KAAK,OAAO,WAAU;AACjD,gBAAU,EAAE,GAAG,SAAS,GAAG,aAAY;IACzC;AAEA,QAAI;AACF,YAAM,WAAW,MAAM,KAAK,OAAO,MAAM,KAAK;QAC5C,QAAQ;QACR;QACA,aAAa;QACb,MAAM,KAAK,UAAU,IAAI;OAC1B;AAED,YAAM,OAAO,MAAM,SAAS,KAAI;AAChC,aAAO;IACT,SAAS,OAAO;AACd,YAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AACrE,YAAM,IAAI,kCAAoB,8BAA8B,OAAO,EAAE;IACvE;EACF;;",
6
6
  "names": []
7
7
  }
package/dist/base.d.ts CHANGED
@@ -5,6 +5,11 @@ export interface BaseClientConfig {
5
5
  applicationId: string;
6
6
  resourceId: string;
7
7
  fetch?: typeof fetch;
8
+ /**
9
+ * Optional function to get additional headers (e.g. for auth)
10
+ * Useful for Next.js Server Components where headers() must be called dynamically
11
+ */
12
+ getHeaders?: () => Promise<Record<string, string>> | Record<string, string>;
8
13
  }
9
14
  export declare abstract class BaseResourceClient {
10
15
  protected readonly config: {
@@ -13,6 +18,7 @@ export declare abstract class BaseResourceClient {
13
18
  applicationId: string;
14
19
  resourceId: string;
15
20
  fetch: typeof fetch;
21
+ getHeaders?: () => Promise<Record<string, string>> | Record<string, string>;
16
22
  };
17
23
  constructor(config: BaseClientConfig);
18
24
  protected invokeRaw(payload: ResourceInvokePayload, invocationKey: string): Promise<InvokeResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EAEf,MAAM,WAAW,CAAC;AAGnB,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,8BAAsB,kBAAkB;IACtC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,OAAO,KAAK,CAAC;KACrB,CAAC;gBAEU,MAAM,EAAE,gBAAgB;cAUpB,SAAS,CACvB,OAAO,EAAE,qBAAqB,EAC9B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,CAAC;CA+B3B"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EAEf,MAAM,WAAW,CAAC;AAGnB,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7E;AAED,8BAAsB,kBAAkB;IACtC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,OAAO,KAAK,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC7E,CAAC;gBAEU,MAAM,EAAE,gBAAgB;cAWpB,SAAS,CACvB,OAAO,EAAE,qBAAqB,EAC9B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,CAAC;CAoC3B"}
package/dist/base.js CHANGED
@@ -8,6 +8,7 @@ export class BaseResourceClient {
8
8
  applicationId: config.applicationId,
9
9
  resourceId: config.resourceId,
10
10
  fetch: config.fetch || globalThis.fetch,
11
+ getHeaders: config.getHeaders,
11
12
  };
12
13
  }
13
14
  async invokeRaw(payload, invocationKey) {
@@ -16,12 +17,16 @@ export class BaseResourceClient {
16
17
  payload,
17
18
  invocationKey,
18
19
  };
19
- const headers = {
20
+ let headers = {
20
21
  "Content-Type": "application/json",
21
22
  };
22
23
  if (this.config.majorJwtToken) {
23
24
  headers["x-major-jwt"] = this.config.majorJwtToken;
24
25
  }
26
+ if (this.config.getHeaders) {
27
+ const extraHeaders = await this.config.getHeaders();
28
+ headers = { ...headers, ...extraHeaders };
29
+ }
25
30
  try {
26
31
  const response = await this.config.fetch(url, {
27
32
  method: "POST",
package/dist/base.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAU/C,MAAM,OAAgB,kBAAkB;IACnB,MAAM,CAMvB;IAEF,YAAY,MAAwB;QAClC,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YAC1C,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK;SACxC,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,SAAS,CACvB,OAA8B,EAC9B,aAAqB;QAErB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,qBAAqB,IAAI,CAAC,MAAM,CAAC,aAAa,aAAa,IAAI,CAAC,MAAM,CAAC,UAAU,SAAS,CAAC;QAE7H,MAAM,IAAI,GAAkB;YAC1B,OAAO;YACP,aAAa;SACd,CAAC;QAEF,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;SACnC,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC9B,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QACrD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC5C,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3B,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,IAAsB,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,IAAI,mBAAmB,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAe/C,MAAM,OAAgB,kBAAkB;IACnB,MAAM,CAOvB;IAEF,YAAY,MAAwB;QAClC,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YAC1C,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK;YACvC,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,SAAS,CACvB,OAA8B,EAC9B,aAAqB;QAErB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,qBAAqB,IAAI,CAAC,MAAM,CAAC,aAAa,aAAa,IAAI,CAAC,MAAM,CAAC,UAAU,SAAS,CAAC;QAE7H,MAAM,IAAI,GAAkB;YAC1B,OAAO;YACP,aAAa;SACd,CAAC;QAEF,IAAI,OAAO,GAA2B;YACpC,cAAc,EAAE,kBAAkB;SACnC,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC9B,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QACrD,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACpD,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC5C,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3B,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,IAAsB,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,IAAI,mBAAmB,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@major-tech/resource-client",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "TypeScript client library for invoking Major resources (PostgreSQL, Custom APIs, HubSpot, S3)",
5
5
  "type": "module",
6
6
  "sideEffects": false,