ynabro 2.1.0 → 2.2.0
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/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/onboardingStatus.d.ts +10 -0
- package/dist/tools/onboardingStatus.d.ts.map +1 -0
- package/dist/tools/onboardingStatus.js +30 -0
- package/dist/tools/onboardingStatus.js.map +1 -0
- package/dist/tools/setupYnab.d.ts +1 -0
- package/dist/tools/setupYnab.d.ts.map +1 -1
- package/dist/tools/setupYnab.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { YnabroClient } from "./client/YnabroClient.js";
|
|
2
|
-
export { approveTransaction, getPendingTransactions, getPlanInfo, getRecentTransactions, getSkillState, setupYnab, updateSkillState, type YnabroConfigAdapter, } from "./tools/index.js";
|
|
2
|
+
export { approveTransaction, checkOnboardingStatus, getPendingTransactions, getPlanInfo, getRecentTransactions, getSkillState, type OnboardingStatus, setupYnab, TOKEN_INSTRUCTIONS, updateSkillState, type YnabroConfigAdapter, } from "./tools/index.js";
|
|
3
3
|
export type { YnabPlan, YnabTransaction } from "./types/ynab.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,aAAa,EACb,KAAK,gBAAgB,EACrB,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { YnabroClient } from "./client/YnabroClient.js";
|
|
2
|
-
export { approveTransaction, getPendingTransactions, getPlanInfo, getRecentTransactions, getSkillState, setupYnab, updateSkillState, } from "./tools/index.js";
|
|
2
|
+
export { approveTransaction, checkOnboardingStatus, getPendingTransactions, getPlanInfo, getRecentTransactions, getSkillState, setupYnab, TOKEN_INSTRUCTIONS, updateSkillState, } from "./tools/index.js";
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,aAAa,EAEb,SAAS,EACT,kBAAkB,EAClB,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export { getPendingTransactions } from "./getPendingTransactions.js";
|
|
|
3
3
|
export { getPlanInfo } from "./getPlanInfo.js";
|
|
4
4
|
export { getRecentTransactions } from "./getRecentTransactions.js";
|
|
5
5
|
export { getSkillState } from "./getSkillState.js";
|
|
6
|
+
export { checkOnboardingStatus, type OnboardingStatus, TOKEN_INSTRUCTIONS, } from "./onboardingStatus.js";
|
|
6
7
|
export { setupYnab, type YnabroConfigAdapter } from "./setupYnab.js";
|
|
7
8
|
export { updateSkillState } from "./updateSkillState.js";
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -3,6 +3,7 @@ export { getPendingTransactions } from "./getPendingTransactions.js";
|
|
|
3
3
|
export { getPlanInfo } from "./getPlanInfo.js";
|
|
4
4
|
export { getRecentTransactions } from "./getRecentTransactions.js";
|
|
5
5
|
export { getSkillState } from "./getSkillState.js";
|
|
6
|
+
export { checkOnboardingStatus, TOKEN_INSTRUCTIONS, } from "./onboardingStatus.js";
|
|
6
7
|
export { setupYnab } from "./setupYnab.js";
|
|
7
8
|
export { updateSkillState } from "./updateSkillState.js";
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAA4B,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,qBAAqB,EAErB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAA4B,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { YnabroConfigAdapter } from "./setupYnab.js";
|
|
2
|
+
export interface OnboardingStatus {
|
|
3
|
+
ready: boolean;
|
|
4
|
+
missing: ("token" | "plan")[];
|
|
5
|
+
tokenInstructions: string;
|
|
6
|
+
nextStep?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const TOKEN_INSTRUCTIONS = "To generate a YNAB Personal Access Token:\n1. Go to https://app.ynab.com/settings/developer\n2. Click 'New Token'\n3. Enter your YNAB password\n4. Copy the token (it will only be shown once)";
|
|
9
|
+
export declare function checkOnboardingStatus(adapter: YnabroConfigAdapter): Promise<OnboardingStatus>;
|
|
10
|
+
//# sourceMappingURL=onboardingStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboardingStatus.d.ts","sourceRoot":"","sources":["../../src/tools/onboardingStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,kBAAkB,mMAIgB,CAAC;AAEhD,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CA0B3B"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export const TOKEN_INSTRUCTIONS = `To generate a YNAB Personal Access Token:
|
|
2
|
+
1. Go to https://app.ynab.com/settings/developer
|
|
3
|
+
2. Click 'New Token'
|
|
4
|
+
3. Enter your YNAB password
|
|
5
|
+
4. Copy the token (it will only be shown once)`;
|
|
6
|
+
export async function checkOnboardingStatus(adapter) {
|
|
7
|
+
const [hasToken, planId] = await Promise.all([
|
|
8
|
+
adapter.hasToken(),
|
|
9
|
+
adapter.getDefaultPlanId(),
|
|
10
|
+
]);
|
|
11
|
+
const missing = [];
|
|
12
|
+
if (!hasToken) {
|
|
13
|
+
missing.push("token");
|
|
14
|
+
}
|
|
15
|
+
if (!planId) {
|
|
16
|
+
missing.push("plan");
|
|
17
|
+
}
|
|
18
|
+
const ready = missing.length === 0;
|
|
19
|
+
return {
|
|
20
|
+
ready,
|
|
21
|
+
missing,
|
|
22
|
+
tokenInstructions: TOKEN_INSTRUCTIONS,
|
|
23
|
+
nextStep: ready
|
|
24
|
+
? undefined
|
|
25
|
+
: missing.includes("token")
|
|
26
|
+
? "Please configure your YNAB Personal Access Token."
|
|
27
|
+
: "Please select a default plan.",
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=onboardingStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboardingStatus.js","sourceRoot":"","sources":["../../src/tools/onboardingStatus.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;+CAIa,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAA4B;IAE5B,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3C,OAAO,CAAC,QAAQ,EAAE;QAClB,OAAO,CAAC,gBAAgB,EAAE;KAC3B,CAAC,CAAC;IAEH,MAAM,OAAO,GAAyB,EAAE,CAAC;IACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;IAEnC,OAAO;QACL,KAAK;QACL,OAAO;QACP,iBAAiB,EAAE,kBAAkB;QACrC,QAAQ,EAAE,KAAK;YACb,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACzB,CAAC,CAAC,mDAAmD;gBACrD,CAAC,CAAC,+BAA+B;KACtC,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { YnabroClient } from "../client/YnabroClient.js";
|
|
2
2
|
import type { YnabPlan } from "../types/ynab.js";
|
|
3
3
|
export interface YnabroConfigAdapter {
|
|
4
|
+
hasToken(): Promise<boolean>;
|
|
4
5
|
getDefaultPlanId(): Promise<string | undefined>;
|
|
5
6
|
setDefaultPlanId(planId: string): Promise<void>;
|
|
6
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupYnab.d.ts","sourceRoot":"","sources":["../../src/tools/setupYnab.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAChD,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAED;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,QAAQ,EAAE,EACjB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
|
1
|
+
{"version":3,"file":"setupYnab.d.ts","sourceRoot":"","sources":["../../src/tools/setupYnab.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAChD,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAED;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,QAAQ,EAAE,EACjB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupYnab.js","sourceRoot":"","sources":["../../src/tools/setupYnab.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setupYnab.js","sourceRoot":"","sources":["../../src/tools/setupYnab.ts"],"names":[],"mappings":"AASA;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAqB,EACrB,KAAiB,EACjB,cAAsB,EACtB,OAA4B;IAE5B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC;IAEpE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,YAAY,cAAc,2BAA2B,QAAQ,EAAE,CAChE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;AACjD,CAAC"}
|