diff --git a/package.json b/package.json index 3510d2f..c25d318 100644 --- a/package.json +++ b/package.json @@ -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" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8b38d03..2ac7580 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -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 diff --git a/ts/bunq.classes.account.ts b/ts/bunq.classes.account.ts index 7728f9f..121dff0 100644 --- a/ts/bunq.classes.account.ts +++ b/ts/bunq.classes.account.ts @@ -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; diff --git a/ts/bunq.classes.apicontext.ts b/ts/bunq.classes.apicontext.ts index d497168..c8c06ea 100644 --- a/ts/bunq.classes.apicontext.ts +++ b/ts/bunq.classes.apicontext.ts @@ -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; diff --git a/ts/bunq.classes.attachment.ts b/ts/bunq.classes.attachment.ts index 6984d52..de0174a 100644 --- a/ts/bunq.classes.attachment.ts +++ b/ts/bunq.classes.attachment.ts @@ -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; diff --git a/ts/bunq.classes.card.ts b/ts/bunq.classes.card.ts index 314918c..a257e0c 100644 --- a/ts/bunq.classes.card.ts +++ b/ts/bunq.classes.card.ts @@ -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; diff --git a/ts/bunq.classes.crypto.ts b/ts/bunq.classes.crypto.ts index 7c6917d..fbc9afa 100644 --- a/ts/bunq.classes.crypto.ts +++ b/ts/bunq.classes.crypto.ts @@ -1,4 +1,4 @@ -import * as plugins from './bunq.plugins'; +import * as plugins from './bunq.plugins.js'; export class BunqCrypto { private privateKey: string; diff --git a/ts/bunq.classes.draft.ts b/ts/bunq.classes.draft.ts index e42634b..6995c71 100644 --- a/ts/bunq.classes.draft.ts +++ b/ts/bunq.classes.draft.ts @@ -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; diff --git a/ts/bunq.classes.export.ts b/ts/bunq.classes.export.ts index d483ad0..bfb4934 100644 --- a/ts/bunq.classes.export.ts +++ b/ts/bunq.classes.export.ts @@ -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'; diff --git a/ts/bunq.classes.httpclient.ts b/ts/bunq.classes.httpclient.ts index 5233b6d..ee796e9 100644 --- a/ts/bunq.classes.httpclient.ts +++ b/ts/bunq.classes.httpclient.ts @@ -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; diff --git a/ts/bunq.classes.monetaryaccount.ts b/ts/bunq.classes.monetaryaccount.ts index 27fb48a..5f2ed42 100644 --- a/ts/bunq.classes.monetaryaccount.ts +++ b/ts/bunq.classes.monetaryaccount.ts @@ -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'; diff --git a/ts/bunq.classes.notification.ts b/ts/bunq.classes.notification.ts index 6402fd9..7dd8845 100644 --- a/ts/bunq.classes.notification.ts +++ b/ts/bunq.classes.notification.ts @@ -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; diff --git a/ts/bunq.classes.payment.ts b/ts/bunq.classes.payment.ts index bcf0544..97e0079 100644 --- a/ts/bunq.classes.payment.ts +++ b/ts/bunq.classes.payment.ts @@ -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; diff --git a/ts/bunq.classes.request.ts b/ts/bunq.classes.request.ts index f22c9fd..5e2c17d 100644 --- a/ts/bunq.classes.request.ts +++ b/ts/bunq.classes.request.ts @@ -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; diff --git a/ts/bunq.classes.schedule.ts b/ts/bunq.classes.schedule.ts index 16c5776..5d879ca 100644 --- a/ts/bunq.classes.schedule.ts +++ b/ts/bunq.classes.schedule.ts @@ -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; diff --git a/ts/bunq.classes.session.ts b/ts/bunq.classes.session.ts index 47522c6..ac6e2db 100644 --- a/ts/bunq.classes.session.ts +++ b/ts/bunq.classes.session.ts @@ -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; diff --git a/ts/bunq.classes.transaction.ts b/ts/bunq.classes.transaction.ts index c3881e7..5ce54cc 100644 --- a/ts/bunq.classes.transaction.ts +++ b/ts/bunq.classes.transaction.ts @@ -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) { diff --git a/ts/bunq.classes.user.ts b/ts/bunq.classes.user.ts index 78c0f5c..34b8912 100644 --- a/ts/bunq.classes.user.ts +++ b/ts/bunq.classes.user.ts @@ -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; diff --git a/ts/bunq.classes.webhook.ts b/ts/bunq.classes.webhook.ts index 9768df1..b7e62eb 100644 --- a/ts/bunq.classes.webhook.ts +++ b/ts/bunq.classes.webhook.ts @@ -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 diff --git a/ts/bunq.paths.ts b/ts/bunq.paths.ts index 4c3308a..9f86a8a 100644 --- a/ts/bunq.paths.ts +++ b/ts/bunq.paths.ts @@ -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/'); diff --git a/ts/bunq.plugins.ts b/ts/bunq.plugins.ts index 1d82f23..c43ba34 100644 --- a/ts/bunq.plugins.ts +++ b/ts/bunq.plugins.ts @@ -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 }; diff --git a/ts/index.ts b/ts/index.ts index 63ccddb..9ae9d79 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -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'; diff --git a/tsconfig.json b/tsconfig.json index f98c595..d76da25 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -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" ] -} \ No newline at end of file +}