@drttix/drt-sdk 0.6.1 → 0.6.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.
Files changed (85) hide show
  1. package/azure-pipelines.yml +71 -0
  2. package/demo/test.html +240 -0
  3. package/dist/cjs/src/functions/sdkConfig.d.ts +55 -0
  4. package/dist/cjs/src/functions/sdkConfig.js +111 -0
  5. package/dist/cjs/src/generated/portal/core/OpenAPI.js +1 -1
  6. package/dist/cjs/src/generated/portal/index.d.ts +1 -1
  7. package/dist/cjs/src/generated/portal/models/BlockedSeatDetailResponseDto.d.ts +10 -0
  8. package/dist/cjs/src/generated/portal/models/BlockedSeatDetailResponseDto.js +2 -0
  9. package/dist/cjs/src/generated/portal/services/FeaturesBlockedSeatsService.d.ts +3 -3
  10. package/dist/cjs/src/generated/portal/services/FeaturesBlockedSeatsService.js +1 -1
  11. package/dist/cjs/src/generated/portal/types.d.ts +1 -1
  12. package/dist/esm/index.js +7 -7
  13. package/dist/esm/src/definitions/portal.js +30 -30
  14. package/dist/esm/src/definitions/scanner.js +4 -4
  15. package/dist/esm/src/definitions/shopper.js +13 -13
  16. package/dist/esm/src/functions/sdkConfig.d.ts +55 -0
  17. package/dist/esm/src/functions/sdkConfig.js +103 -0
  18. package/dist/esm/src/functions/setBaseURL.js +3 -3
  19. package/dist/esm/src/generated/portal/core/OpenAPI.js +1 -1
  20. package/dist/esm/src/generated/portal/core/request.js +2 -2
  21. package/dist/esm/src/generated/portal/index.d.ts +1 -1
  22. package/dist/esm/src/generated/portal/index.js +32 -32
  23. package/dist/esm/src/generated/portal/models/BlockedSeatDetailResponseDto.d.ts +10 -0
  24. package/dist/esm/src/generated/portal/models/BlockedSeatDetailResponseDto.js +1 -0
  25. package/dist/esm/src/generated/portal/services/AccountService.js +2 -2
  26. package/dist/esm/src/generated/portal/services/AccountingService.js +2 -2
  27. package/dist/esm/src/generated/portal/services/AppService.js +2 -2
  28. package/dist/esm/src/generated/portal/services/AuthService.js +2 -2
  29. package/dist/esm/src/generated/portal/services/ClientToolsGeneratedEmailsService.js +2 -2
  30. package/dist/esm/src/generated/portal/services/ClientToolsParentLetterService.js +2 -2
  31. package/dist/esm/src/generated/portal/services/ClientToolsPatronDatabaseService.js +2 -2
  32. package/dist/esm/src/generated/portal/services/ClientToolsSeatAssignmentToolService.js +2 -2
  33. package/dist/esm/src/generated/portal/services/ClientToolsStripeOnboardingService.js +2 -2
  34. package/dist/esm/src/generated/portal/services/ClientToolsThemeBuilderService.js +2 -2
  35. package/dist/esm/src/generated/portal/services/ClientToolsThemesLibraryService.js +2 -2
  36. package/dist/esm/src/generated/portal/services/ClientToolsTicketScanningService.js +2 -2
  37. package/dist/esm/src/generated/portal/services/ClientToolsTicketingLinkService.js +2 -2
  38. package/dist/esm/src/generated/portal/services/ClientToolsUnapprovedOrdersService.js +2 -2
  39. package/dist/esm/src/generated/portal/services/ClientToolsWaitlistService.js +2 -2
  40. package/dist/esm/src/generated/portal/services/DashboardService.js +2 -2
  41. package/dist/esm/src/generated/portal/services/FeaturesBlockedSeatsService.d.ts +3 -3
  42. package/dist/esm/src/generated/portal/services/FeaturesBlockedSeatsService.js +3 -3
  43. package/dist/esm/src/generated/portal/services/FeaturesCheckoutQuestionsService.js +2 -2
  44. package/dist/esm/src/generated/portal/services/FeaturesDiscountsService.js +2 -2
  45. package/dist/esm/src/generated/portal/services/FeaturesDonationsService.js +2 -2
  46. package/dist/esm/src/generated/portal/services/FeaturesGiftCardsService.js +2 -2
  47. package/dist/esm/src/generated/portal/services/FeaturesGoldenTicketsService.js +2 -2
  48. package/dist/esm/src/generated/portal/services/FeaturesLandingPageService.js +2 -2
  49. package/dist/esm/src/generated/portal/services/FeaturesPriorityService.js +2 -2
  50. package/dist/esm/src/generated/portal/services/FeaturesProductsService.js +2 -2
  51. package/dist/esm/src/generated/portal/services/OrderLookupService.js +2 -2
  52. package/dist/esm/src/generated/portal/services/ReportsService.js +2 -2
  53. package/dist/esm/src/generated/portal/services/SettingsService.js +2 -2
  54. package/dist/esm/src/generated/portal/services/ShowsService.js +2 -2
  55. package/dist/esm/src/generated/portal/types.d.ts +1 -1
  56. package/dist/esm/src/generated/scanner/core/request.js +2 -2
  57. package/dist/esm/src/generated/scanner/index.js +6 -6
  58. package/dist/esm/src/generated/scanner/services/DatabaseService.js +2 -2
  59. package/dist/esm/src/generated/scanner/services/OrdersService.js +2 -2
  60. package/dist/esm/src/generated/scanner/services/ScanningService.js +2 -2
  61. package/dist/esm/src/generated/shopper/core/request.js +2 -2
  62. package/dist/esm/src/generated/shopper/index.js +15 -15
  63. package/dist/esm/src/generated/shopper/services/AccountService.js +2 -2
  64. package/dist/esm/src/generated/shopper/services/CartService.js +2 -2
  65. package/dist/esm/src/generated/shopper/services/CheckoutService.js +2 -2
  66. package/dist/esm/src/generated/shopper/services/CodeService.js +2 -2
  67. package/dist/esm/src/generated/shopper/services/DonationService.js +2 -2
  68. package/dist/esm/src/generated/shopper/services/EventService.js +2 -2
  69. package/dist/esm/src/generated/shopper/services/GiftCardService.js +2 -2
  70. package/dist/esm/src/generated/shopper/services/OrderService.js +2 -2
  71. package/dist/esm/src/generated/shopper/services/PaymentService.js +2 -2
  72. package/dist/esm/src/generated/shopper/services/ProductService.js +2 -2
  73. package/dist/esm/src/generated/shopper/services/SeatService.js +2 -2
  74. package/dist/esm/src/generated/shopper/services/SessionService.js +2 -2
  75. package/dist/esm/src/scripts/build-all.js +3 -3
  76. package/dist/esm/src/scripts/generate-definition.js +4 -4
  77. package/package.json +2 -2
  78. package/scripts/fix-import-extensions.mjs +36 -7
  79. package/src/functions/sdkConfig.ts +132 -0
  80. package/src/generated/portal/core/OpenAPI.ts +1 -1
  81. package/src/generated/portal/index.ts +1 -1
  82. package/src/generated/portal/models/{BlockedSeatDetail.ts → BlockedSeatDetailResponseDto.ts} +2 -1
  83. package/src/generated/portal/services/FeaturesBlockedSeatsService.ts +3 -3
  84. package/src/generated/portal/types.ts +1 -1
  85. package/test.ts +2 -0
@@ -14,7 +14,7 @@ export type { AutoDiscounts } from './models/AutoDiscounts';
14
14
  export type { AvaliableSeats } from './models/AvaliableSeats';
15
15
  export type { BankDetails } from './models/BankDetails';
16
16
  export type { BlockChartSeatRequestDto } from './models/BlockChartSeatRequestDto';
17
- export type { BlockedSeatDetail } from './models/BlockedSeatDetail';
17
+ export type { BlockedSeatDetailResponseDto } from './models/BlockedSeatDetailResponseDto';
18
18
  export type { BlockGeneralSeatResponseDto } from './models/BlockGeneralSeatResponseDto';
19
19
  export type { BlockGeneralSeatsRequestDto } from './models/BlockGeneralSeatsRequestDto';
20
20
  export type { BlockSeatsRequestDto } from './models/BlockSeatsRequestDto';
@@ -2,8 +2,8 @@
2
2
  /* istanbul ignore file */
3
3
  /* tslint:disable */
4
4
  /* eslint-disable */
5
- import { ApiError } from './ApiError';
6
- import { CancelablePromise } from './CancelablePromise';
5
+ import { ApiError } from './ApiError.js';
6
+ import { CancelablePromise } from './CancelablePromise.js';
7
7
  export const isDefined = (value) => {
8
8
  return value !== undefined && value !== null;
9
9
  };
@@ -2,9 +2,9 @@
2
2
  /* istanbul ignore file */
3
3
  /* tslint:disable */
4
4
  /* eslint-disable */
5
- export { ApiError } from './core/ApiError';
6
- export { CancelablePromise, CancelError } from './core/CancelablePromise';
7
- export { OpenAPI } from './core/OpenAPI';
8
- export { DatabaseService } from './services/DatabaseService';
9
- export { OrdersService } from './services/OrdersService';
10
- export { ScanningService } from './services/ScanningService';
5
+ export { ApiError } from './core/ApiError.js';
6
+ export { CancelablePromise, CancelError } from './core/CancelablePromise.js';
7
+ export { OpenAPI } from './core/OpenAPI.js';
8
+ export { DatabaseService } from './services/DatabaseService.js';
9
+ export { OrdersService } from './services/OrdersService.js';
10
+ export { ScanningService } from './services/ScanningService.js';
@@ -1,5 +1,5 @@
1
- import { OpenAPI } from '../core/OpenAPI';
2
- import { request as __request } from '../core/request';
1
+ import { OpenAPI } from '../core/OpenAPI.js';
2
+ import { request as __request } from '../core/request.js';
3
3
  export class DatabaseService {
4
4
  /**
5
5
  * Used to download the ticket database for an event
@@ -1,5 +1,5 @@
1
- import { OpenAPI } from '../core/OpenAPI';
2
- import { request as __request } from '../core/request';
1
+ import { OpenAPI } from '../core/OpenAPI.js';
2
+ import { request as __request } from '../core/request.js';
3
3
  export class OrdersService {
4
4
  /**
5
5
  * Used to lookup orders given a show code and phone number
@@ -1,5 +1,5 @@
1
- import { OpenAPI } from '../core/OpenAPI';
2
- import { request as __request } from '../core/request';
1
+ import { OpenAPI } from '../core/OpenAPI.js';
2
+ import { request as __request } from '../core/request.js';
3
3
  export class ScanningService {
4
4
  /**
5
5
  * Used to check if the server is healthy
@@ -2,8 +2,8 @@
2
2
  /* istanbul ignore file */
3
3
  /* tslint:disable */
4
4
  /* eslint-disable */
5
- import { ApiError } from "./ApiError";
6
- import { CancelablePromise } from "./CancelablePromise";
5
+ import { ApiError } from "./ApiError.js";
6
+ import { CancelablePromise } from "./CancelablePromise.js";
7
7
  export const isDefined = (value) => {
8
8
  return value !== undefined && value !== null;
9
9
  };
@@ -2,18 +2,18 @@
2
2
  /* istanbul ignore file */
3
3
  /* tslint:disable */
4
4
  /* eslint-disable */
5
- export { ApiError } from './core/ApiError';
6
- export { CancelablePromise, CancelError } from './core/CancelablePromise';
7
- export { OpenAPI } from './core/OpenAPI';
8
- export { AccountService } from './services/AccountService';
9
- export { CartService } from './services/CartService';
10
- export { CheckoutService } from './services/CheckoutService';
11
- export { CodeService } from './services/CodeService';
12
- export { DonationService } from './services/DonationService';
13
- export { EventService } from './services/EventService';
14
- export { GiftCardService } from './services/GiftCardService';
15
- export { OrderService } from './services/OrderService';
16
- export { PaymentService } from './services/PaymentService';
17
- export { ProductService } from './services/ProductService';
18
- export { SeatService } from './services/SeatService';
19
- export { SessionService } from './services/SessionService';
5
+ export { ApiError } from './core/ApiError.js';
6
+ export { CancelablePromise, CancelError } from './core/CancelablePromise.js';
7
+ export { OpenAPI } from './core/OpenAPI.js';
8
+ export { AccountService } from './services/AccountService.js';
9
+ export { CartService } from './services/CartService.js';
10
+ export { CheckoutService } from './services/CheckoutService.js';
11
+ export { CodeService } from './services/CodeService.js';
12
+ export { DonationService } from './services/DonationService.js';
13
+ export { EventService } from './services/EventService.js';
14
+ export { GiftCardService } from './services/GiftCardService.js';
15
+ export { OrderService } from './services/OrderService.js';
16
+ export { PaymentService } from './services/PaymentService.js';
17
+ export { ProductService } from './services/ProductService.js';
18
+ export { SeatService } from './services/SeatService.js';
19
+ export { SessionService } from './services/SessionService.js';
@@ -1,5 +1,5 @@
1
- import { OpenAPI } from '../core/OpenAPI';
2
- import { request as __request } from '../core/request';
1
+ import { OpenAPI } from '../core/OpenAPI.js';
2
+ import { request as __request } from '../core/request.js';
3
3
  export class AccountService {
4
4
  /**
5
5
  * Get the site theme
@@ -1,5 +1,5 @@
1
- import { OpenAPI } from '../core/OpenAPI';
2
- import { request as __request } from '../core/request';
1
+ import { OpenAPI } from '../core/OpenAPI.js';
2
+ import { request as __request } from '../core/request.js';
3
3
  export class CartService {
4
4
  /**
5
5
  * Get Cart
@@ -1,5 +1,5 @@
1
- import { OpenAPI } from '../core/OpenAPI';
2
- import { request as __request } from '../core/request';
1
+ import { OpenAPI } from '../core/OpenAPI.js';
2
+ import { request as __request } from '../core/request.js';
3
3
  export class CheckoutService {
4
4
  /**
5
5
  * Get checkout page data
@@ -1,5 +1,5 @@
1
- import { OpenAPI } from '../core/OpenAPI';
2
- import { request as __request } from '../core/request';
1
+ import { OpenAPI } from '../core/OpenAPI.js';
2
+ import { request as __request } from '../core/request.js';
3
3
  export class CodeService {
4
4
  /**
5
5
  * Request access to an event
@@ -1,5 +1,5 @@
1
- import { OpenAPI } from '../core/OpenAPI';
2
- import { request as __request } from '../core/request';
1
+ import { OpenAPI } from '../core/OpenAPI.js';
2
+ import { request as __request } from '../core/request.js';
3
3
  export class DonationService {
4
4
  /**
5
5
  * Get all donations for a shopper
@@ -1,5 +1,5 @@
1
- import { OpenAPI } from '../core/OpenAPI';
2
- import { request as __request } from '../core/request';
1
+ import { OpenAPI } from '../core/OpenAPI.js';
2
+ import { request as __request } from '../core/request.js';
3
3
  export class EventService {
4
4
  /**
5
5
  * Get all events for a shopper
@@ -1,5 +1,5 @@
1
- import { OpenAPI } from '../core/OpenAPI';
2
- import { request as __request } from '../core/request';
1
+ import { OpenAPI } from '../core/OpenAPI.js';
2
+ import { request as __request } from '../core/request.js';
3
3
  export class GiftCardService {
4
4
  /**
5
5
  * Look up a gift card by code and PIN
@@ -1,5 +1,5 @@
1
- import { OpenAPI } from '../core/OpenAPI';
2
- import { request as __request } from '../core/request';
1
+ import { OpenAPI } from '../core/OpenAPI.js';
2
+ import { request as __request } from '../core/request.js';
3
3
  export class OrderService {
4
4
  /**
5
5
  * Get order receipt by guid
@@ -1,5 +1,5 @@
1
- import { OpenAPI } from '../core/OpenAPI';
2
- import { request as __request } from '../core/request';
1
+ import { OpenAPI } from '../core/OpenAPI.js';
2
+ import { request as __request } from '../core/request.js';
3
3
  export class PaymentService {
4
4
  /**
5
5
  * Summarize payment
@@ -1,5 +1,5 @@
1
- import { OpenAPI } from '../core/OpenAPI';
2
- import { request as __request } from '../core/request';
1
+ import { OpenAPI } from '../core/OpenAPI.js';
2
+ import { request as __request } from '../core/request.js';
3
3
  export class ProductService {
4
4
  /**
5
5
  * Get all products
@@ -1,5 +1,5 @@
1
- import { OpenAPI } from '../core/OpenAPI';
2
- import { request as __request } from '../core/request';
1
+ import { OpenAPI } from '../core/OpenAPI.js';
2
+ import { request as __request } from '../core/request.js';
3
3
  export class SeatService {
4
4
  /**
5
5
  * Health check endpoint
@@ -1,5 +1,5 @@
1
- import { OpenAPI } from '../core/OpenAPI';
2
- import { request as __request } from '../core/request';
1
+ import { OpenAPI } from '../core/OpenAPI.js';
2
+ import { request as __request } from '../core/request.js';
3
3
  export class SessionService {
4
4
  /**
5
5
  * Get Session information
@@ -62,15 +62,15 @@ lines.push('// AUTO-GENERATED FILE – DO NOT EDIT');
62
62
  lines.push('');
63
63
  for (const spec of specs) {
64
64
  const name = spec.name.toLowerCase();
65
- lines.push(`import { ${name} } from "./src/definitions/${name}";`);
65
+ lines.push(`import { ${name} } from "./src/definitions/${name}.js";`);
66
66
  }
67
- lines.push(`import { setBaseUrlsOnce } from "./src/functions/setBaseURL";`);
67
+ lines.push(`import { setBaseUrlsOnce } from "./src/functions/setBaseURL.js";`);
68
68
  lines.push('');
69
69
  // Re-export type namespaces for easy access
70
70
  for (const spec of specs) {
71
71
  const name = spec.name.toLowerCase();
72
72
  const typesNamespace = name.charAt(0).toUpperCase() + name.slice(1) + 'Types';
73
- lines.push(`export { ${typesNamespace} } from "./src/definitions/${name}";`);
73
+ lines.push(`export { ${typesNamespace} } from "./src/definitions/${name}.js";`);
74
74
  }
75
75
  lines.push('');
76
76
  lines.push('export const DRT = {');
@@ -31,7 +31,7 @@ const typeExports = typeLines
31
31
  .map((line) => {
32
32
  const match = line.match(/export type { (\w+) } from '\.\/models\/(\w+)'/);
33
33
  if (match) {
34
- return `export type { ${match[1]} } from './models/${match[2]}';`;
34
+ return `export type { ${match[1]} } from './models/${match[2]}.js';`;
35
35
  }
36
36
  return null;
37
37
  })
@@ -42,12 +42,12 @@ typesOutput += `// Re-export all types as a namespace\n\n`;
42
42
  typesOutput += typeExports.join('\n') + '\n';
43
43
  fs.writeFileSync(GENERATED_TYPES, typesOutput);
44
44
  console.log(`✅ Wrote types to: ${GENERATED_TYPES}`);
45
- const imports = services.map((service) => `import { ${service} } from "../generated/${serviceName}";`);
45
+ const imports = services.map((service) => `import { ${service} } from "../generated/${serviceName}.js";`);
46
46
  const objectName = serviceName.toLowerCase();
47
47
  const typesNamespace = serviceName.charAt(0).toUpperCase() + serviceName.slice(1) + 'Types';
48
48
  let output = `// AUTO-GENERATED FILE – DO NOT EDIT\n\n`;
49
49
  if (services.length === 1) {
50
- output += `import { ${services[0]} } from "../generated/${serviceName}";\n\n`;
50
+ output += `import { ${services[0]} } from "../generated/${serviceName}.js";\n\n`;
51
51
  output += `export const ${objectName} = ${services[0]};\n\n`;
52
52
  }
53
53
  else {
@@ -60,6 +60,6 @@ else {
60
60
  }
61
61
  // Add type namespace re-export
62
62
  output += `// Re-export all types as a namespace\n`;
63
- output += `export * as ${typesNamespace} from "../generated/${serviceName}/types";\n`;
63
+ output += `export * as ${typesNamespace} from "../generated/${serviceName}/types.js";\n`;
64
64
  fs.writeFileSync(OUTPUT_FILE, output);
65
65
  console.log(`✅ Wrote ${serviceName} definition to: ${OUTPUT_FILE}`);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@drttix/drt-sdk",
3
3
  "description": "DRT SDK",
4
- "version": "0.6.1",
4
+ "version": "0.6.4",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
7
7
  "types": "dist/esm/index.d.ts",
@@ -16,7 +16,7 @@
16
16
  "registry": "https://registry.npmjs.org/"
17
17
  },
18
18
  "scripts": {
19
- "build": "npx tsc --project tsconfig.esm.json && npx tsc --project tsconfig.cjs.json",
19
+ "build": "npx tsc --project tsconfig.esm.json && npx tsc --project tsconfig.cjs.json && node scripts/fix-import-extensions.mjs",
20
20
  "generate": "npx tsx src/scripts/build-all.ts",
21
21
  "prepublishOnly": "npx tsx src/scripts/check-version-not-published.ts && npm run build"
22
22
  },
@@ -18,6 +18,15 @@ function hasExt(p) {
18
18
  return EXT_WHITELIST.some((ext) => p.endsWith(ext));
19
19
  }
20
20
 
21
+ async function isDirectory(p) {
22
+ try {
23
+ const stat = await fs.stat(p);
24
+ return stat.isDirectory();
25
+ } catch {
26
+ return false;
27
+ }
28
+ }
29
+
21
30
  async function walk(dir) {
22
31
  const entries = await fs.readdir(dir, { withFileTypes: true });
23
32
  for (const e of entries) {
@@ -31,15 +40,31 @@ async function fixFile(file) {
31
40
  let src = await fs.readFile(file, 'utf8');
32
41
  const regex = /(["'])(\.\.?\/[^"']*?)(["'])/g;
33
42
  let changed = false;
34
- src = src.replace(regex, (m, q1, spec, q3) => {
43
+ const matches = [...src.matchAll(regex)];
44
+
45
+ for (const match of matches) {
46
+ const [full, q1, spec, q3] = match;
35
47
  // ignore absolute URLs and imports that already have extensions
36
- if (/^https?:\/\//.test(spec) || /^\//.test(spec))
37
- return `${q1}${spec}${q3}`;
38
- if (hasExt(spec)) return `${q1}${spec}${q3}`;
39
- // append .js
48
+ if (/^https?:\/\//.test(spec) || /^\//.test(spec)) continue;
49
+ if (hasExt(spec)) continue;
50
+
51
+ // Resolve the path relative to the file's directory
52
+ const fileDir = path.dirname(file);
53
+ const resolvedPath = path.resolve(fileDir, spec);
54
+
55
+ let newSpec;
56
+ if (await isDirectory(resolvedPath)) {
57
+ // It's a directory, append /index.js
58
+ newSpec = `${spec}/index.js`;
59
+ } else {
60
+ // It's a file, append .js
61
+ newSpec = `${spec}.js`;
62
+ }
63
+
64
+ src = src.replace(full, `${q1}${newSpec}${q3}`);
40
65
  changed = true;
41
- return `${q1}${spec}.js${q3}`;
42
- });
66
+ }
67
+
43
68
  if (changed) {
44
69
  await fs.writeFile(file, src, 'utf8');
45
70
  console.log('Patched', path.relative(process.cwd(), file));
@@ -48,6 +73,10 @@ async function fixFile(file) {
48
73
 
49
74
  async function main() {
50
75
  try {
76
+ // Also fix the root index.js
77
+ const rootIndex = path.resolve(process.cwd(), 'dist/esm/index.js');
78
+ await fixFile(rootIndex);
79
+
51
80
  await walk(root);
52
81
  console.log('Done.');
53
82
  } catch (err) {
@@ -0,0 +1,132 @@
1
+ // SDK Configuration - allows initializing credentials once
2
+ import { OpenAPI as ShopperAPI } from '../generated/shopper/core/OpenAPI';
3
+ import { OpenAPI as ScannerAPI } from '../generated/scanner/core/OpenAPI';
4
+ import { OpenAPI as PortalAPI } from '../generated/portal/core/OpenAPI';
5
+
6
+ export interface SDKConfig {
7
+ shopperGuid: string;
8
+ accountId: string;
9
+ apiKey: string;
10
+ }
11
+
12
+ let isInitialized = false;
13
+ let currentConfig: SDKConfig | null = null;
14
+
15
+ /**
16
+ * Initialize the DRT SDK with credentials.
17
+ * Once initialized, these credentials will be automatically included
18
+ * in all API requests as headers.
19
+ *
20
+ * @param config - The SDK configuration containing shopperGuid, accountId, and apiKey
21
+ *
22
+ * @example
23
+ * ```javascript
24
+ * import { DRT } from '@drttix/drt-sdk';
25
+ *
26
+ * // Initialize once
27
+ * DRT.init({
28
+ * shopperGuid: 'your-shopper-guid',
29
+ * accountId: 'your-account-id',
30
+ * apiKey: 'your-api-key'
31
+ * });
32
+ *
33
+ * // Now make calls without passing credentials
34
+ * const theme = await DRT.shopper.account.getTheme();
35
+ * ```
36
+ */
37
+ export function init(config: SDKConfig): void {
38
+ if (!config.shopperGuid || !config.accountId || !config.apiKey) {
39
+ throw new Error(
40
+ 'DRT SDK init requires shopperGuid, accountId, and apiKey',
41
+ );
42
+ }
43
+
44
+ currentConfig = config;
45
+
46
+ const headers = {
47
+ shopperguid: config.shopperGuid,
48
+ accountid: config.accountId,
49
+ apikey: config.apiKey,
50
+ };
51
+
52
+ // Set headers on all API clients
53
+ ShopperAPI.HEADERS = headers;
54
+ ScannerAPI.HEADERS = headers;
55
+ PortalAPI.HEADERS = headers;
56
+
57
+ isInitialized = true;
58
+ }
59
+
60
+ /**
61
+ * Check if the SDK has been initialized with credentials.
62
+ */
63
+ export function isReady(): boolean {
64
+ return isInitialized;
65
+ }
66
+
67
+ /**
68
+ * Get the current SDK configuration (if initialized).
69
+ */
70
+ export function getConfig(): SDKConfig | null {
71
+ return currentConfig;
72
+ }
73
+
74
+ /**
75
+ * Reset the SDK configuration.
76
+ */
77
+ export function reset(): void {
78
+ currentConfig = null;
79
+ isInitialized = false;
80
+ ShopperAPI.HEADERS = undefined;
81
+ ScannerAPI.HEADERS = undefined;
82
+ PortalAPI.HEADERS = undefined;
83
+ }
84
+
85
+ /**
86
+ * Get credentials from config, throwing if not initialized.
87
+ * Used internally by wrapped services.
88
+ */
89
+ export function getCredentials(): {
90
+ shopperGuid: string;
91
+ accountId: string;
92
+ apiKey: string;
93
+ } {
94
+ if (!currentConfig) {
95
+ throw new Error('DRT SDK not initialized. Call DRT.init() first.');
96
+ }
97
+ return {
98
+ shopperGuid: currentConfig.shopperGuid,
99
+ accountId: currentConfig.accountId,
100
+ apiKey: currentConfig.apiKey,
101
+ };
102
+ }
103
+
104
+ /**
105
+ * Creates a proxy that auto-injects credentials for service methods.
106
+ * Methods that take (shopperguid, accountid, apikey, ...rest) as first 3 params
107
+ * will have those auto-filled from the SDK config.
108
+ */
109
+ export function createAutoCredentialsProxy<T extends object>(service: T): T {
110
+ return new Proxy(service, {
111
+ get(target, prop) {
112
+ const value = (target as any)[prop];
113
+ if (typeof value === 'function') {
114
+ return (...args: any[]) => {
115
+ // If SDK is initialized, prepend credentials
116
+ if (isInitialized && currentConfig) {
117
+ return value.call(
118
+ target,
119
+ currentConfig.shopperGuid,
120
+ currentConfig.accountId,
121
+ currentConfig.apiKey,
122
+ ...args,
123
+ );
124
+ }
125
+ // Otherwise call with original args
126
+ return value.apply(target, args);
127
+ };
128
+ }
129
+ return value;
130
+ },
131
+ });
132
+ }
@@ -21,7 +21,7 @@ export type OpenAPIConfig = {
21
21
 
22
22
  export const OpenAPI: OpenAPIConfig = {
23
23
  BASE: '',
24
- VERSION: '20260318.2',
24
+ VERSION: '20260320.1',
25
25
  WITH_CREDENTIALS: false,
26
26
  CREDENTIALS: 'include',
27
27
  TOKEN: undefined,
@@ -23,7 +23,7 @@ export type { AutoDiscounts } from './models/AutoDiscounts';
23
23
  export type { AvaliableSeats } from './models/AvaliableSeats';
24
24
  export type { BankDetails } from './models/BankDetails';
25
25
  export type { BlockChartSeatRequestDto } from './models/BlockChartSeatRequestDto';
26
- export type { BlockedSeatDetail } from './models/BlockedSeatDetail';
26
+ export type { BlockedSeatDetailResponseDto } from './models/BlockedSeatDetailResponseDto';
27
27
  export type { BlockGeneralSeatResponseDto } from './models/BlockGeneralSeatResponseDto';
28
28
  export type { BlockGeneralSeatsRequestDto } from './models/BlockGeneralSeatsRequestDto';
29
29
  export type { BlockSeatsRequestDto } from './models/BlockSeatsRequestDto';
@@ -2,11 +2,12 @@
2
2
  /* istanbul ignore file */
3
3
  /* tslint:disable */
4
4
  /* eslint-disable */
5
- export type BlockedSeatDetail = {
5
+ export type BlockedSeatDetailResponseDto = {
6
6
  designation: Record<string, any>;
7
7
  section: string;
8
8
  row: string;
9
9
  seat: number;
10
+ showId: number;
10
11
  showName: string;
11
12
  isGeneralSeating: number;
12
13
  tierId: Record<string, any>;
@@ -4,7 +4,7 @@
4
4
  /* eslint-disable */
5
5
  import type { AssignSeatsRequestDto } from '../models/AssignSeatsRequestDto';
6
6
  import type { BlockChartSeatRequestDto } from '../models/BlockChartSeatRequestDto';
7
- import type { BlockedSeatDetail } from '../models/BlockedSeatDetail';
7
+ import type { BlockedSeatDetailResponseDto } from '../models/BlockedSeatDetailResponseDto';
8
8
  import type { BlockGeneralSeatResponseDto } from '../models/BlockGeneralSeatResponseDto';
9
9
  import type { BlockGeneralSeatsRequestDto } from '../models/BlockGeneralSeatsRequestDto';
10
10
  import type { BlockSeatsRequestDto } from '../models/BlockSeatsRequestDto';
@@ -114,10 +114,10 @@ export class FeaturesBlockedSeatsService {
114
114
  /**
115
115
  * Fetch the selected seats
116
116
  * Fetch the selected seats
117
- * @returns BlockedSeatDetail Selected seats fetched successfully
117
+ * @returns BlockedSeatDetailResponseDto Selected seats fetched successfully
118
118
  * @throws ApiError
119
119
  */
120
- public static getSelectedSeats(): CancelablePromise<Array<BlockedSeatDetail>> {
120
+ public static getSelectedSeats(): CancelablePromise<Array<BlockedSeatDetailResponseDto>> {
121
121
  return __request(OpenAPI, {
122
122
  method: 'GET',
123
123
  url: '/features/blocked-seats/selected-seats',
@@ -17,7 +17,7 @@ export type { AutoDiscounts } from './models/AutoDiscounts';
17
17
  export type { AvaliableSeats } from './models/AvaliableSeats';
18
18
  export type { BankDetails } from './models/BankDetails';
19
19
  export type { BlockChartSeatRequestDto } from './models/BlockChartSeatRequestDto';
20
- export type { BlockedSeatDetail } from './models/BlockedSeatDetail';
20
+ export type { BlockedSeatDetailResponseDto } from './models/BlockedSeatDetailResponseDto';
21
21
  export type { BlockGeneralSeatResponseDto } from './models/BlockGeneralSeatResponseDto';
22
22
  export type { BlockGeneralSeatsRequestDto } from './models/BlockGeneralSeatsRequestDto';
23
23
  export type { BlockSeatsRequestDto } from './models/BlockSeatsRequestDto';
package/test.ts CHANGED
@@ -17,6 +17,8 @@ const printCart = (cart: ShopperTypes.Cart) => {
17
17
  const account = '508';
18
18
  const apiKey = 'xxx-xxx';
19
19
 
20
+ await DRT.shopper.product.getProducts(shopperGuid, account, apiKey);
21
+
20
22
  const root = await DRT.shopper.account.getRoot(
21
23
  shopperGuid,
22
24
  account,