This commit is contained in:
Juergen Kunz
2025-07-18 10:43:39 +00:00
parent bf98296772
commit 596efa3f06
23 changed files with 93 additions and 102 deletions

View File

@@ -3,8 +3,10 @@
"version": "2.0.0",
"private": false,
"description": "A full-featured TypeScript/JavaScript client for the bunq API",
"main": "dist_ts/index.js",
"typings": "dist_ts/index.d.ts",
"type": "module",
"exports": {
".": "./dist_ts/index.js"
},
"author": "Lossless GmbH",
"license": "MIT",
"scripts": {
@@ -22,6 +24,7 @@
"dependencies": {
"@push.rocks/smartcrypto": "^2.0.4",
"@push.rocks/smartfile": "^11.2.5",
"@push.rocks/smartpath": "^5.0.18",
"@push.rocks/smartpromise": "^4.2.3",
"@push.rocks/smartrequest": "^2.0.21",
"@push.rocks/smarttime": "^4.0.54"

3
pnpm-lock.yaml generated
View File

@@ -14,6 +14,9 @@ importers:
'@push.rocks/smartfile':
specifier: ^11.2.5
version: 11.2.5
'@push.rocks/smartpath':
specifier: ^5.0.18
version: 5.0.18
'@push.rocks/smartpromise':
specifier: ^4.2.3
version: 4.2.3

View File

@@ -1,8 +1,8 @@
import * as plugins from './bunq.plugins';
import { BunqApiContext } from './bunq.classes.apicontext';
import { BunqMonetaryAccount } from './bunq.classes.monetaryaccount';
import { BunqUser } from './bunq.classes.user';
import { IBunqSessionServerResponse } from './bunq.interfaces';
import * as plugins from './bunq.plugins.js';
import { BunqApiContext } from './bunq.classes.apicontext.js';
import { BunqMonetaryAccount } from './bunq.classes.monetaryaccount.js';
import { BunqUser } from './bunq.classes.user.js';
import { IBunqSessionServerResponse } from './bunq.interfaces.js';
export interface IBunqConstructorOptions {
deviceName: string;

View File

@@ -1,8 +1,8 @@
import * as plugins from './bunq.plugins';
import * as paths from './bunq.paths';
import { BunqCrypto } from './bunq.classes.crypto';
import { BunqSession } from './bunq.classes.session';
import { IBunqApiContext } from './bunq.interfaces';
import * as plugins from './bunq.plugins.js';
import * as paths from './bunq.paths.js';
import { BunqCrypto } from './bunq.classes.crypto.js';
import { BunqSession } from './bunq.classes.session.js';
import { IBunqApiContext } from './bunq.interfaces.js';
export interface IBunqApiContextOptions {
apiKey: string;

View File

@@ -1,5 +1,5 @@
import * as plugins from './bunq.plugins';
import { BunqAccount } from './bunq.classes.account';
import * as plugins from './bunq.plugins.js';
import { BunqAccount } from './bunq.classes.account.js';
export class BunqAttachment {
private bunqAccount: BunqAccount;

View File

@@ -1,6 +1,6 @@
import * as plugins from './bunq.plugins';
import { BunqAccount } from './bunq.classes.account';
import { IBunqCard, IBunqAmount } from './bunq.interfaces';
import * as plugins from './bunq.plugins.js';
import { BunqAccount } from './bunq.classes.account.js';
import { IBunqCard, IBunqAmount } from './bunq.interfaces.js';
export class BunqCard {
private bunqAccount: BunqAccount;

View File

@@ -1,4 +1,4 @@
import * as plugins from './bunq.plugins';
import * as plugins from './bunq.plugins.js';
export class BunqCrypto {
private privateKey: string;

View File

@@ -1,12 +1,12 @@
import * as plugins from './bunq.plugins';
import { BunqAccount } from './bunq.classes.account';
import { BunqMonetaryAccount } from './bunq.classes.monetaryaccount';
import * as plugins from './bunq.plugins.js';
import { BunqAccount } from './bunq.classes.account.js';
import { BunqMonetaryAccount } from './bunq.classes.monetaryaccount.js';
import {
IBunqPaymentRequest,
IBunqAmount,
IBunqAlias,
IBunqPaginationOptions
} from './bunq.interfaces';
} from './bunq.interfaces.js';
export class BunqDraftPayment {
private bunqAccount: BunqAccount;

View File

@@ -1,6 +1,6 @@
import * as plugins from './bunq.plugins';
import { BunqAccount } from './bunq.classes.account';
import { BunqMonetaryAccount } from './bunq.classes.monetaryaccount';
import * as plugins from './bunq.plugins.js';
import { BunqAccount } from './bunq.classes.account.js';
import { BunqMonetaryAccount } from './bunq.classes.monetaryaccount.js';
export type TExportFormat = 'CSV' | 'PDF' | 'MT940';

View File

@@ -1,10 +1,10 @@
import * as plugins from './bunq.plugins';
import { BunqCrypto } from './bunq.classes.crypto';
import * as plugins from './bunq.plugins.js';
import { BunqCrypto } from './bunq.classes.crypto.js';
import {
IBunqApiContext,
IBunqError,
IBunqRequestOptions
} from './bunq.interfaces';
} from './bunq.interfaces.js';
export class BunqHttpClient {
private crypto: BunqCrypto;

View File

@@ -1,8 +1,8 @@
import * as plugins from './bunq.plugins';
import { BunqAccount } from './bunq.classes.account';
import { BunqTransaction } from './bunq.classes.transaction';
import { BunqPayment } from './bunq.classes.payment';
import { IBunqPaginationOptions, IBunqMonetaryAccountBank } from './bunq.interfaces';
import * as plugins from './bunq.plugins.js';
import { BunqAccount } from './bunq.classes.account.js';
import { BunqTransaction } from './bunq.classes.transaction.js';
import { BunqPayment } from './bunq.classes.payment.js';
import { IBunqPaginationOptions, IBunqMonetaryAccountBank } from './bunq.interfaces.js';
export type TAccountType = 'joint' | 'savings' | 'bank';

View File

@@ -1,6 +1,6 @@
import * as plugins from './bunq.plugins';
import { BunqAccount } from './bunq.classes.account';
import { IBunqNotificationFilter } from './bunq.interfaces';
import * as plugins from './bunq.plugins.js';
import { BunqAccount } from './bunq.classes.account.js';
import { IBunqNotificationFilter } from './bunq.interfaces.js';
export class BunqNotification {
private bunqAccount: BunqAccount;

View File

@@ -1,13 +1,13 @@
import * as plugins from './bunq.plugins';
import { BunqAccount } from './bunq.classes.account';
import { BunqMonetaryAccount } from './bunq.classes.monetaryaccount';
import * as plugins from './bunq.plugins.js';
import { BunqAccount } from './bunq.classes.account.js';
import { BunqMonetaryAccount } from './bunq.classes.monetaryaccount.js';
import {
IBunqPaymentRequest,
IBunqPayment,
IBunqAmount,
IBunqAlias,
IBunqPaginationOptions
} from './bunq.interfaces';
} from './bunq.interfaces.js';
export class BunqPayment {
private bunqAccount: BunqAccount;

View File

@@ -1,12 +1,12 @@
import * as plugins from './bunq.plugins';
import { BunqAccount } from './bunq.classes.account';
import { BunqMonetaryAccount } from './bunq.classes.monetaryaccount';
import * as plugins from './bunq.plugins.js';
import { BunqAccount } from './bunq.classes.account.js';
import { BunqMonetaryAccount } from './bunq.classes.monetaryaccount.js';
import {
IBunqRequestInquiry,
IBunqAmount,
IBunqAlias,
IBunqPaginationOptions
} from './bunq.interfaces';
} from './bunq.interfaces.js';
export class BunqRequestInquiry {
private bunqAccount: BunqAccount;

View File

@@ -1,12 +1,12 @@
import * as plugins from './bunq.plugins';
import { BunqAccount } from './bunq.classes.account';
import { BunqMonetaryAccount } from './bunq.classes.monetaryaccount';
import * as plugins from './bunq.plugins.js';
import { BunqAccount } from './bunq.classes.account.js';
import { BunqMonetaryAccount } from './bunq.classes.monetaryaccount.js';
import {
IBunqScheduledPaymentRequest,
IBunqAmount,
IBunqAlias,
IBunqPaginationOptions
} from './bunq.interfaces';
} from './bunq.interfaces.js';
export interface IScheduleOptions {
timeStart: string;

View File

@@ -1,12 +1,12 @@
import * as plugins from './bunq.plugins';
import { BunqHttpClient } from './bunq.classes.httpclient';
import { BunqCrypto } from './bunq.classes.crypto';
import * as plugins from './bunq.plugins.js';
import { BunqHttpClient } from './bunq.classes.httpclient.js';
import { BunqCrypto } from './bunq.classes.crypto.js';
import {
IBunqApiContext,
IBunqInstallationResponse,
IBunqDeviceServerResponse,
IBunqSessionServerResponse
} from './bunq.interfaces';
} from './bunq.interfaces.js';
export class BunqSession {
private httpClient: BunqHttpClient;

View File

@@ -1,5 +1,5 @@
import * as plugins from './bunq.plugins';
import { BunqMonetaryAccount } from './bunq.classes.monetaryaccount';
import * as plugins from './bunq.plugins.js';
import { BunqMonetaryAccount } from './bunq.classes.monetaryaccount.js';
export class BunqTransaction {
public static fromApiObject(monetaryAccountRefArg: BunqMonetaryAccount, apiObjectArg: any) {

View File

@@ -1,6 +1,6 @@
import * as plugins from './bunq.plugins';
import { BunqApiContext } from './bunq.classes.apicontext';
import { IBunqUser } from './bunq.interfaces';
import * as plugins from './bunq.plugins.js';
import { BunqApiContext } from './bunq.classes.apicontext.js';
import { IBunqUser } from './bunq.interfaces.js';
export class BunqUser {
private apiContext: BunqApiContext;

View File

@@ -1,7 +1,7 @@
import * as plugins from './bunq.plugins';
import { BunqAccount } from './bunq.classes.account';
import { BunqNotification, BunqWebhookHandler } from './bunq.classes.notification';
import { BunqCrypto } from './bunq.classes.crypto';
import * as plugins from './bunq.plugins.js';
import { BunqAccount } from './bunq.classes.account.js';
import { BunqNotification, BunqWebhookHandler } from './bunq.classes.notification.js';
import { BunqCrypto } from './bunq.classes.crypto.js';
/**
* Webhook server for receiving bunq notifications

View File

@@ -1,4 +1,4 @@
import * as plugins from './bunq.plugins';
import * as plugins from './bunq.plugins.js';
export const packageDir = plugins.path.join(__dirname, '../');
export const nogitDir = plugins.path.join(packageDir, './.nogit/');

View File

@@ -7,8 +7,9 @@ export { path, crypto };
// @pushrocks scope
import * as smartcrypto from '@push.rocks/smartcrypto';
import * as smartfile from '@push.rocks/smartfile';
import * as smartpath from '@push.rocks/smartpath';
import * as smartpromise from '@push.rocks/smartpromise';
import * as smartrequest from '@push.rocks/smartrequest';
import * as smarttime from '@push.rocks/smarttime';
export { smartcrypto, smartfile, smartpromise, smartrequest, smarttime };
export { smartcrypto, smartfile, smartpath, smartpromise, smartrequest, smarttime };

View File

@@ -1,27 +1,27 @@
// Core classes
export * from './bunq.classes.account';
export * from './bunq.classes.apicontext';
export * from './bunq.classes.crypto';
export * from './bunq.classes.httpclient';
export * from './bunq.classes.session';
export * from './bunq.classes.account.js';
export * from './bunq.classes.apicontext.js';
export * from './bunq.classes.crypto.js';
export * from './bunq.classes.httpclient.js';
export * from './bunq.classes.session.js';
// Account and transaction classes
export * from './bunq.classes.monetaryaccount';
export * from './bunq.classes.transaction';
export * from './bunq.classes.user';
export * from './bunq.classes.monetaryaccount.js';
export * from './bunq.classes.transaction.js';
export * from './bunq.classes.user.js';
// Payment and financial classes
export * from './bunq.classes.payment';
export * from './bunq.classes.card';
export * from './bunq.classes.request';
export * from './bunq.classes.schedule';
export * from './bunq.classes.draft';
export * from './bunq.classes.payment.js';
export * from './bunq.classes.card.js';
export * from './bunq.classes.request.js';
export * from './bunq.classes.schedule.js';
export * from './bunq.classes.draft.js';
// Utility classes
export * from './bunq.classes.attachment';
export * from './bunq.classes.export';
export * from './bunq.classes.notification';
export * from './bunq.classes.webhook';
export * from './bunq.classes.attachment.js';
export * from './bunq.classes.export.js';
export * from './bunq.classes.notification.js';
export * from './bunq.classes.webhook.js';
// Interfaces and types
export * from './bunq.interfaces';
export * from './bunq.interfaces.js';

View File

@@ -1,31 +1,15 @@
{
"compilerOptions": {
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"useDefineForClassFields": false,
"target": "ES2020",
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"lib": ["ES2020"],
"declaration": true,
"declarationDir": "./dist_ts",
"outDir": "./dist_ts",
"rootDir": "./ts",
"strict": true,
"verbatimModuleSyntax": false,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"allowSyntheticDefaultImports": true,
"noImplicitAny": true,
"strictNullChecks": true
"verbatimModuleSyntax": true
},
"include": [
"./ts/**/*"
],
"exclude": [
"./node_modules",
"./dist",
"./dist_ts"
"dist_*/**/*.d.ts"
]
}