@opentabs-dev/opentabs-plugin-ynab 0.0.85 → 0.0.87
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/adapter.iife.js +1315 -545
- package/dist/adapter.iife.js.map +4 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -16
- package/dist/index.js.map +1 -1
- package/dist/tools/create-category-group.d.ts +11 -0
- package/dist/tools/create-category-group.d.ts.map +1 -0
- package/dist/tools/create-category-group.js +37 -0
- package/dist/tools/create-category-group.js.map +1 -0
- package/dist/tools/create-category.d.ts +59 -0
- package/dist/tools/create-category.d.ts.map +1 -0
- package/dist/tools/create-category.js +63 -0
- package/dist/tools/create-category.js.map +1 -0
- package/dist/tools/create-transaction.d.ts +2 -2
- package/dist/tools/create-transaction.d.ts.map +1 -1
- package/dist/tools/create-transaction.js +63 -22
- package/dist/tools/create-transaction.js.map +1 -1
- package/dist/tools/delete-category-group.d.ts +8 -0
- package/dist/tools/delete-category-group.d.ts.map +1 -0
- package/dist/tools/delete-category-group.js +33 -0
- package/dist/tools/delete-category-group.js.map +1 -0
- package/dist/tools/delete-category.d.ts +7 -0
- package/dist/tools/delete-category.d.ts.map +1 -0
- package/dist/tools/delete-category.js +28 -0
- package/dist/tools/delete-category.js.map +1 -0
- package/dist/tools/delete-transaction.d.ts.map +1 -1
- package/dist/tools/delete-transaction.js +22 -7
- package/dist/tools/delete-transaction.js.map +1 -1
- package/dist/tools/get-account.d.ts.map +1 -1
- package/dist/tools/get-account.js +3 -3
- package/dist/tools/get-account.js.map +1 -1
- package/dist/tools/get-month.d.ts +2 -1
- package/dist/tools/get-month.d.ts.map +1 -1
- package/dist/tools/get-month.js +10 -33
- package/dist/tools/get-month.js.map +1 -1
- package/dist/tools/get-plan.d.ts.map +1 -1
- package/dist/tools/get-plan.js +12 -5
- package/dist/tools/get-plan.js.map +1 -1
- package/dist/tools/get-transaction.d.ts +2 -2
- package/dist/tools/get-transaction.d.ts.map +1 -1
- package/dist/tools/get-transaction.js +5 -4
- package/dist/tools/get-transaction.js.map +1 -1
- package/dist/tools/list-accounts.d.ts.map +1 -1
- package/dist/tools/list-accounts.js +4 -4
- package/dist/tools/list-accounts.js.map +1 -1
- package/dist/tools/list-categories.d.ts.map +1 -1
- package/dist/tools/list-categories.js +9 -29
- package/dist/tools/list-categories.js.map +1 -1
- package/dist/tools/list-months.d.ts +1 -1
- package/dist/tools/list-months.d.ts.map +1 -1
- package/dist/tools/list-months.js +5 -14
- package/dist/tools/list-months.js.map +1 -1
- package/dist/tools/list-payees.d.ts.map +1 -1
- package/dist/tools/list-payees.js +3 -3
- package/dist/tools/list-payees.js.map +1 -1
- package/dist/tools/list-scheduled-transactions.d.ts.map +1 -1
- package/dist/tools/list-scheduled-transactions.js +7 -5
- package/dist/tools/list-scheduled-transactions.js.map +1 -1
- package/dist/tools/list-transactions.d.ts +4 -2
- package/dist/tools/list-transactions.d.ts.map +1 -1
- package/dist/tools/list-transactions.js +40 -8
- package/dist/tools/list-transactions.js.map +1 -1
- package/dist/tools/move-category-budget.d.ts +24 -0
- package/dist/tools/move-category-budget.d.ts.map +1 -0
- package/dist/tools/move-category-budget.js +100 -0
- package/dist/tools/move-category-budget.js.map +1 -0
- package/dist/tools/schemas.d.ts +185 -28
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +411 -28
- package/dist/tools/schemas.js.map +1 -1
- package/dist/tools/snooze-category-goal.d.ts +10 -0
- package/dist/tools/snooze-category-goal.d.ts.map +1 -0
- package/dist/tools/snooze-category-goal.js +53 -0
- package/dist/tools/snooze-category-goal.js.map +1 -0
- package/dist/tools/update-category-budget.d.ts.map +1 -1
- package/dist/tools/update-category-budget.js +51 -26
- package/dist/tools/update-category-budget.js.map +1 -1
- package/dist/tools/update-category.d.ts +61 -0
- package/dist/tools/update-category.d.ts.map +1 -0
- package/dist/tools/update-category.js +46 -0
- package/dist/tools/update-category.js.map +1 -0
- package/dist/tools/update-transaction.d.ts +3 -2
- package/dist/tools/update-transaction.d.ts.map +1 -1
- package/dist/tools/update-transaction.js +84 -31
- package/dist/tools/update-transaction.js.map +1 -1
- package/dist/tools.json +965 -43
- package/dist/ynab-api.d.ts +4 -1
- package/dist/ynab-api.d.ts.map +1 -1
- package/dist/ynab-api.js +47 -26
- package/dist/ynab-api.js.map +1 -1
- package/package.json +3 -3
package/dist/ynab-api.d.ts
CHANGED
|
@@ -10,9 +10,12 @@ interface CatalogResponse<T = Record<string, unknown>> {
|
|
|
10
10
|
export declare const isAuthenticated: () => boolean;
|
|
11
11
|
export declare const waitForAuth: () => Promise<boolean>;
|
|
12
12
|
export declare const getPlanId: () => string;
|
|
13
|
+
export declare const getDeviceId: () => string;
|
|
14
|
+
export declare const getUserId: () => string;
|
|
15
|
+
export declare const assertAuthenticated: () => void;
|
|
13
16
|
export declare const catalog: <T = Record<string, unknown>>(operationName: string, requestData?: Record<string, unknown>) => Promise<CatalogResponse<T>>;
|
|
14
17
|
export declare const syncBudget: <T = Record<string, unknown>>(planId: string) => Promise<CatalogResponse<T>>;
|
|
15
|
-
export declare const syncWrite: (planId: string, changedEntities: Record<string, unknown
|
|
18
|
+
export declare const syncWrite: <T = Record<string, unknown>>(planId: string, changedEntities: Record<string, unknown>, serverKnowledge?: number) => Promise<CatalogResponse<T>>;
|
|
16
19
|
export declare const api: <T>(endpoint: string, options?: {
|
|
17
20
|
method?: string;
|
|
18
21
|
body?: Record<string, unknown>;
|
package/dist/ynab-api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ynab-api.d.ts","sourceRoot":"","sources":["../src/ynab-api.ts"],"names":[],"mappings":"AAqBA,UAAU,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACnD,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"ynab-api.d.ts","sourceRoot":"","sources":["../src/ynab-api.ts"],"names":[],"mappings":"AAqBA,UAAU,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACnD,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AA2CD,eAAO,MAAM,eAAe,QAAO,OAA6B,CAAC;AAEjE,eAAO,MAAM,WAAW,QAAO,OAAO,CAAC,OAAO,CAI3C,CAAC;AAEJ,eAAO,MAAM,SAAS,QAAO,MAI5B,CAAC;AAEF,eAAO,MAAM,WAAW,QAAO,MAI9B,CAAC;AAEF,eAAO,MAAM,SAAS,QAAO,MAI5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAO,IAEtC,CAAC;AA4DF,eAAO,MAAM,OAAO,GAAU,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvD,eAAe,MAAM,EACrB,cAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,KACxC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAwB5B,CAAC;AAcF,eAAO,MAAM,UAAU,GAAU,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAWrG,CAAC;AAKL,eAAO,MAAM,SAAS,GAAU,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzD,QAAQ,MAAM,EACd,iBAAiB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,kBAAkB,MAAM,KACvB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAmB5B,CAAC;AAIF,eAAO,MAAM,GAAG,GAAU,CAAC,EACzB,UAAU,MAAM,EAChB,UAAS;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3B,KACL,OAAO,CAAC,CAAC,CA0BX,CAAC"}
|
package/dist/ynab-api.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { clearAuthCache, getAuthCache, getCurrentUrl, getMetaContent, getPageGlobal, parseRetryAfterMs, setAuthCache, ToolError, waitUntil, } from '@opentabs-dev/plugin-sdk';
|
|
2
2
|
// --- Auth extraction ---
|
|
3
3
|
// YNAB uses HttpOnly session cookies for primary auth, plus a session token
|
|
4
4
|
// embedded in a <meta name="session-token"> tag. The internal API requires
|
|
5
5
|
// this token in the X-Session-Token header along with device identification
|
|
6
6
|
// headers. The user ID comes from YNAB_CLIENT_CONSTANTS.USER.
|
|
7
|
+
const NOT_AUTHENTICATED_MESSAGE = 'Not authenticated — please log in to YNAB.';
|
|
7
8
|
const generateDeviceId = () => crypto.randomUUID();
|
|
8
9
|
const extractPlanId = () => {
|
|
9
10
|
const url = getCurrentUrl();
|
|
@@ -38,14 +39,30 @@ export const waitForAuth = () => waitUntil(() => isAuthenticated(), { interval:
|
|
|
38
39
|
export const getPlanId = () => {
|
|
39
40
|
const auth = getAuth();
|
|
40
41
|
if (!auth)
|
|
41
|
-
throw ToolError.auth(
|
|
42
|
+
throw ToolError.auth(NOT_AUTHENTICATED_MESSAGE);
|
|
42
43
|
return auth.planId;
|
|
43
44
|
};
|
|
45
|
+
export const getDeviceId = () => {
|
|
46
|
+
const auth = getAuth();
|
|
47
|
+
if (!auth)
|
|
48
|
+
throw ToolError.auth(NOT_AUTHENTICATED_MESSAGE);
|
|
49
|
+
return auth.deviceId;
|
|
50
|
+
};
|
|
51
|
+
export const getUserId = () => {
|
|
52
|
+
const auth = getAuth();
|
|
53
|
+
if (!auth)
|
|
54
|
+
throw ToolError.auth(NOT_AUTHENTICATED_MESSAGE);
|
|
55
|
+
return auth.userId;
|
|
56
|
+
};
|
|
57
|
+
export const assertAuthenticated = () => {
|
|
58
|
+
if (!getAuth())
|
|
59
|
+
throw ToolError.auth(NOT_AUTHENTICATED_MESSAGE);
|
|
60
|
+
};
|
|
44
61
|
// --- Internal API headers ---
|
|
45
62
|
const getHeaders = () => {
|
|
46
63
|
const auth = getAuth();
|
|
47
64
|
if (!auth)
|
|
48
|
-
throw ToolError.auth(
|
|
65
|
+
throw ToolError.auth(NOT_AUTHENTICATED_MESSAGE);
|
|
49
66
|
// Read app version fresh on every request — never cache it, since YNAB enforces
|
|
50
67
|
// a minimum version via 426 and will reject stale cached values.
|
|
51
68
|
const appVersion = getPageGlobal('YNAB_CLIENT_CONSTANTS.YNAB_APP_VERSION');
|
|
@@ -82,9 +99,17 @@ const handleApiError = async (response, context) => {
|
|
|
82
99
|
throw ToolError.validation(`Validation error: ${context} — ${errorBody}`);
|
|
83
100
|
throw ToolError.internal(`API error (${response.status}): ${context} — ${errorBody}`);
|
|
84
101
|
};
|
|
102
|
+
const handleNetworkError = (err, context) => {
|
|
103
|
+
if (err instanceof DOMException && err.name === 'TimeoutError')
|
|
104
|
+
throw ToolError.timeout(`Request timed out: ${context}`);
|
|
105
|
+
if (err instanceof DOMException && err.name === 'AbortError')
|
|
106
|
+
throw new ToolError('Request was aborted', 'aborted');
|
|
107
|
+
throw new ToolError(`Network error: ${err instanceof Error ? err.message : String(err)}`, 'network_error', {
|
|
108
|
+
category: 'internal',
|
|
109
|
+
retryable: true,
|
|
110
|
+
});
|
|
111
|
+
};
|
|
85
112
|
// --- Catalog API (internal RPC endpoint) ---
|
|
86
|
-
// YNAB's web app uses POST /api/v1/catalog with operation_name + request_data
|
|
87
|
-
// as the primary data access mechanism for budget operations.
|
|
88
113
|
export const catalog = async (operationName, requestData = {}) => {
|
|
89
114
|
const headers = getHeaders();
|
|
90
115
|
headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
|
|
@@ -99,14 +124,7 @@ export const catalog = async (operationName, requestData = {}) => {
|
|
|
99
124
|
});
|
|
100
125
|
}
|
|
101
126
|
catch (err) {
|
|
102
|
-
|
|
103
|
-
throw ToolError.timeout(`Catalog request timed out: ${operationName}`);
|
|
104
|
-
if (err instanceof DOMException && err.name === 'AbortError')
|
|
105
|
-
throw new ToolError('Request was aborted', 'aborted');
|
|
106
|
-
throw new ToolError(`Network error: ${err instanceof Error ? err.message : String(err)}`, 'network_error', {
|
|
107
|
-
category: 'internal',
|
|
108
|
-
retryable: true,
|
|
109
|
-
});
|
|
127
|
+
return handleNetworkError(err, operationName);
|
|
110
128
|
}
|
|
111
129
|
if (!response.ok)
|
|
112
130
|
return handleApiError(response, operationName);
|
|
@@ -119,6 +137,12 @@ export const catalog = async (operationName, requestData = {}) => {
|
|
|
119
137
|
// --- syncBudgetData helper ---
|
|
120
138
|
// YNAB requires sync_type, schema_version, and schema_version_of_knowledge on all
|
|
121
139
|
// syncBudgetData requests (enforced server-side via 426 if omitted).
|
|
140
|
+
//
|
|
141
|
+
// We send sync_type: 'delta' with starting_device_knowledge: 0 to receive a full
|
|
142
|
+
// snapshot of the budget. Counter-intuitively, sync_type: 'bootstrap' returns
|
|
143
|
+
// only the most recent ~1 month of transactions, while delta with zero device
|
|
144
|
+
// knowledge returns the full history (verified with the YNAB UI's own captures).
|
|
145
|
+
// Verified working as of schema version 41.
|
|
122
146
|
const BUDGET_SCHEMA_VERSION = 41;
|
|
123
147
|
export const syncBudget = async (planId) => catalog('syncBudgetData', {
|
|
124
148
|
budget_version_id: planId,
|
|
@@ -132,16 +156,20 @@ export const syncBudget = async (planId) => catalog('syncBudgetData', {
|
|
|
132
156
|
changed_entities: {},
|
|
133
157
|
});
|
|
134
158
|
// Write operations require the current server_knowledge to succeed.
|
|
135
|
-
//
|
|
136
|
-
export const syncWrite = async (planId, changedEntities) => {
|
|
137
|
-
const
|
|
138
|
-
|
|
159
|
+
// Pass serverKnowledge from a prior syncBudget call to avoid a redundant read.
|
|
160
|
+
export const syncWrite = async (planId, changedEntities, serverKnowledge) => {
|
|
161
|
+
const knowledge = serverKnowledge ?? (await syncBudget(planId)).current_server_knowledge ?? 0;
|
|
162
|
+
// ending_device_knowledge is the local change counter — YNAB's UI increments
|
|
163
|
+
// it across the session, but since we don't persist any state we send 1 to
|
|
164
|
+
// signal "one new change since 0". The server only enforces monotonic
|
|
165
|
+
// increase relative to its own knowledge, not the client counter, so a
|
|
166
|
+
// constant 1 is what YNAB tolerates from us in practice.
|
|
139
167
|
return catalog('syncBudgetData', {
|
|
140
168
|
budget_version_id: planId,
|
|
141
169
|
sync_type: 'delta',
|
|
142
170
|
starting_device_knowledge: 0,
|
|
143
171
|
ending_device_knowledge: 1,
|
|
144
|
-
device_knowledge_of_server:
|
|
172
|
+
device_knowledge_of_server: knowledge,
|
|
145
173
|
calculated_entities_included: false,
|
|
146
174
|
schema_version: BUDGET_SCHEMA_VERSION,
|
|
147
175
|
schema_version_of_knowledge: BUDGET_SCHEMA_VERSION,
|
|
@@ -167,14 +195,7 @@ export const api = async (endpoint, options = {}) => {
|
|
|
167
195
|
});
|
|
168
196
|
}
|
|
169
197
|
catch (err) {
|
|
170
|
-
|
|
171
|
-
throw ToolError.timeout(`API request timed out: ${endpoint}`);
|
|
172
|
-
if (err instanceof DOMException && err.name === 'AbortError')
|
|
173
|
-
throw new ToolError('Request was aborted', 'aborted');
|
|
174
|
-
throw new ToolError(`Network error: ${err instanceof Error ? err.message : String(err)}`, 'network_error', {
|
|
175
|
-
category: 'internal',
|
|
176
|
-
retryable: true,
|
|
177
|
-
});
|
|
198
|
+
return handleNetworkError(err, endpoint);
|
|
178
199
|
}
|
|
179
200
|
if (!response.ok)
|
|
180
201
|
return handleApiError(response, endpoint);
|
package/dist/ynab-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ynab-api.js","sourceRoot":"","sources":["../src/ynab-api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"ynab-api.js","sourceRoot":"","sources":["../src/ynab-api.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
-
"version": "0.0.
|
|
7
|
+
"version": "0.0.87",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"main": "dist/adapter.iife.js",
|
|
10
10
|
"keywords": [
|
|
@@ -50,10 +50,10 @@
|
|
|
50
50
|
"zod": "^4.0.0"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@opentabs-dev/plugin-sdk": "^0.0.
|
|
53
|
+
"@opentabs-dev/plugin-sdk": "^0.0.91"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@opentabs-dev/plugin-tools": "^0.0.
|
|
56
|
+
"@opentabs-dev/plugin-tools": "^0.0.91",
|
|
57
57
|
"@biomejs/biome": "2.4.6",
|
|
58
58
|
"jiti": "^2.6.1",
|
|
59
59
|
"typescript": "^5.9.3",
|