@lunch-money/developer-docs 2.11.1-preview.1 → 2.11.1-preview.3

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/README.md CHANGED
@@ -1,17 +1,65 @@
1
1
  # @lunch-money/developer-docs
2
2
 
3
- Developer documentation content for Lunch Money APIs.
3
+ Documentation content for the [Lunch Money](https://lunchmoney.app) developer APIs
4
+ the guides, v1/v2 reference docs, images, and doc-routing manifest that power the
5
+ [Lunch Money developer portal](https://lunchmoney.dev).
4
6
 
5
- This package ships the public `developer-docs` repository content directories at the package root:
7
+ Most API consumers want the OpenAPI spec instead: **[`@lunch-money/v2-api-spec`](https://www.npmjs.com/package/@lunch-money/v2-api-spec)**
8
+ is the canonical machine-readable API contract. This package is the human-facing docs
9
+ content, primarily for the docs server that renders the portal.
6
10
 
7
- - `docs/`
8
- - `v1/`
9
- - `v2/`
11
+ ## What's in the package
10
12
 
11
- The package version tracks the newest API version documented by this content. Server consumers should pin this package explicitly and resolve the package root with:
13
+ Shipped verbatim at the package root:
14
+
15
+ - `docs/` — version-independent guides (getting started, pagination, rate limiting, …)
16
+ - `v1/` — v1 API reference markdown
17
+ - `v2/` — v2 guides, images, and a **convenience copy** of the OpenAPI YAML under
18
+ `v2/spec/` (non-canonical; the canonical spec is `@lunch-money/v2-api-spec`)
19
+ - `manifest.json` — doc routes, redirects, and sidebar structure
20
+
21
+ ## Consuming the content
22
+
23
+ Resolve the package root, then read content files relative to it:
12
24
 
13
25
  ```js
26
+ const path = require('path');
27
+ const fs = require('fs');
28
+
14
29
  const docsRoot = path.dirname(require.resolve('@lunch-money/developer-docs/package.json'));
30
+ const intro = fs.readFileSync(path.join(docsRoot, 'docs/getting-started.md'), 'utf8');
15
31
  ```
16
32
 
17
- The OpenAPI YAML under `v2/spec/` is included as a convenience copy because the docs tree is shipped verbatim. The canonical v2 API specification package is `@lunch-money/v2-api-spec`.
33
+ `manifest.json` describes every page the docs server renders:
34
+
35
+ ```jsonc
36
+ {
37
+ "pages": [
38
+ {
39
+ "path": "/amounts-and-balances", // canonical URL
40
+ "file": "docs/amounts-and-balances.md", // path within this package
41
+ "title": "Amounts & Balances",
42
+ "section": "GUIDES", // sidebar grouping
43
+ "type": "markdown", // "markdown" | "html" | "v1-slate"
44
+ "aliases": ["/v2/amounts-and-balances"] // legacy URLs → 301 to path
45
+ }
46
+ ],
47
+ "redirects": [ /* { from, to, status } */ ],
48
+ "sidebar": { "docs": [ /* … */ ], "v1": [ /* … */ ] }
49
+ }
50
+ ```
51
+
52
+ ## Versioning
53
+
54
+ The package version tracks the newest API version this content documents (e.g. `2.11.x`
55
+ documents the v2.11 API). Pin an exact version in server deployments so docs are
56
+ deterministic.
57
+
58
+ ## Contributing
59
+
60
+ Guides, spec, and the routing manifest are edited in the public
61
+ [`developer-docs` repository](https://github.com/lunch-money/developer-docs) — see its
62
+ README for how to add or move a page. This npm package is a published build of that
63
+ content.
64
+
65
+ _ISC licensed._
@@ -2,10 +2,6 @@
2
2
 
3
3
  Welcome to the Lunch Money developer documentation. This site covers the **v2 API** — the current generation of the Lunch Money API — along with guides, a reference for the legacy v1 API, and tools for exploring the API without touching real data.
4
4
 
5
- > [!WARNING]
6
- > Alpha Release
7
- > The v2 API is in open alpha. It is subject to change during this review period and bugs may exist. We strongly encourage using the [mock service](#trying-the-api-without-real-data) or a test budget with sample data as your first step.
8
-
9
5
  ## Getting Started
10
6
 
11
7
  The v2 API is available at:
package/manifest.json ADDED
@@ -0,0 +1,225 @@
1
+ {
2
+ "$comment": "Doc routing manifest (plans/remove_submodule.md, Phase 2). Pages, redirects, and sidebar for all documentation routes. 'file' paths are relative to the @lunch-money/developer-docs package root. Page 'aliases' are 301 redirects to the page path; 'redirects' entries carry their own status.",
3
+ "pages": [
4
+ {
5
+ "path": "/introduction",
6
+ "file": "docs/introduction.md",
7
+ "title": "Introduction",
8
+ "section": "INTRODUCTION",
9
+ "type": "markdown",
10
+ "aliases": ["/v2/introduction"]
11
+ },
12
+ {
13
+ "path": "/getting-started",
14
+ "file": "docs/getting-started.md",
15
+ "title": "Getting Started",
16
+ "section": "GUIDES",
17
+ "type": "markdown",
18
+ "aliases": ["/v2/getting-started"]
19
+ },
20
+ {
21
+ "path": "/pagination",
22
+ "file": "docs/pagination.md",
23
+ "title": "Pagination",
24
+ "section": "GUIDES",
25
+ "type": "markdown",
26
+ "aliases": ["/v2/pagination"]
27
+ },
28
+ {
29
+ "path": "/rate-limits",
30
+ "file": "docs/rate-limiting.md",
31
+ "title": "Rate Limiting",
32
+ "section": "GUIDES",
33
+ "type": "markdown",
34
+ "aliases": ["/v2/rate-limits"]
35
+ },
36
+ {
37
+ "path": "/currencies",
38
+ "file": "docs/currencies.md",
39
+ "title": "Supported Currencies",
40
+ "section": "GUIDES",
41
+ "type": "markdown",
42
+ "aliases": ["/v2/currencies"]
43
+ },
44
+ {
45
+ "path": "/amounts-and-balances",
46
+ "file": "docs/amounts-and-balances.md",
47
+ "title": "Amounts & Balances",
48
+ "section": "GUIDES",
49
+ "type": "markdown",
50
+ "aliases": ["/v2/amounts-and-balances"]
51
+ },
52
+ {
53
+ "path": "/using-with-ai",
54
+ "file": "docs/using-with-ai.md",
55
+ "title": "Using the API with AI",
56
+ "section": "GUIDES",
57
+ "type": "markdown",
58
+ "aliases": ["/v2/using-with-ai"]
59
+ },
60
+ {
61
+ "path": "/v2/overview",
62
+ "file": "v2/docs/intro-to-v2.md",
63
+ "title": "v2 API Overview",
64
+ "section": "REFERENCE",
65
+ "type": "markdown"
66
+ },
67
+ {
68
+ "path": "/v2/changelog",
69
+ "file": "v2/docs/version-history.md",
70
+ "title": "v2 API Changelog",
71
+ "section": "REFERENCE",
72
+ "type": "markdown",
73
+ "aliases": ["/v2/version-history"]
74
+ },
75
+ {
76
+ "path": "/v2/migration-guide",
77
+ "file": "v2/docs/migration-guide.md",
78
+ "title": "Migrating v1 to v2",
79
+ "section": "LEGACY APIs",
80
+ "type": "markdown"
81
+ },
82
+ {
83
+ "path": "/v2/changelog-visual",
84
+ "file": "v2/docs/changelog-visual.html",
85
+ "title": "v2 API Visual Changelog",
86
+ "section": "REFERENCE",
87
+ "type": "html"
88
+ },
89
+ {
90
+ "path": "/v1/changelog",
91
+ "file": "v1/_changelog.md",
92
+ "title": "v1 Changelog",
93
+ "section": "V1 API REFERENCE",
94
+ "type": "v1-slate",
95
+ "aliases": ["/v1/reference/changelog"]
96
+ },
97
+ {
98
+ "path": "/v1/user",
99
+ "file": "v1/_user.md",
100
+ "title": "v1 User",
101
+ "section": "V1 API REFERENCE",
102
+ "type": "v1-slate",
103
+ "aliases": ["/v1/reference/user"]
104
+ },
105
+ {
106
+ "path": "/v1/categories",
107
+ "file": "v1/_categories.md",
108
+ "title": "v1 Categories",
109
+ "section": "V1 API REFERENCE",
110
+ "type": "v1-slate",
111
+ "aliases": ["/v1/reference/categories"]
112
+ },
113
+ {
114
+ "path": "/v1/tags",
115
+ "file": "v1/_tags.md",
116
+ "title": "v1 Tags",
117
+ "section": "V1 API REFERENCE",
118
+ "type": "v1-slate",
119
+ "aliases": ["/v1/reference/tags"]
120
+ },
121
+ {
122
+ "path": "/v1/transactions",
123
+ "file": "v1/_transactions.md",
124
+ "title": "v1 Transactions",
125
+ "section": "V1 API REFERENCE",
126
+ "type": "v1-slate",
127
+ "aliases": ["/v1/reference/transactions"]
128
+ },
129
+ {
130
+ "path": "/v1/recurring-expenses",
131
+ "file": "v1/_recurring_expenses.md",
132
+ "title": "v1 Recurring Expenses",
133
+ "section": "V1 API REFERENCE",
134
+ "type": "v1-slate",
135
+ "aliases": ["/v1/reference/recurring-expenses"]
136
+ },
137
+ {
138
+ "path": "/v1/recurring-items",
139
+ "file": "v1/_recurring_items.md",
140
+ "title": "v1 Recurring Items",
141
+ "section": "V1 API REFERENCE",
142
+ "type": "v1-slate",
143
+ "aliases": ["/v1/reference/recurring-items"]
144
+ },
145
+ {
146
+ "path": "/v1/budget",
147
+ "file": "v1/_budget.md",
148
+ "title": "v1 Budget",
149
+ "section": "V1 API REFERENCE",
150
+ "type": "v1-slate",
151
+ "aliases": ["/v1/reference/budget"]
152
+ },
153
+ {
154
+ "path": "/v1/assets",
155
+ "file": "v1/_assets.md",
156
+ "title": "v1 Assets",
157
+ "section": "V1 API REFERENCE",
158
+ "type": "v1-slate",
159
+ "aliases": ["/v1/reference/assets"]
160
+ },
161
+ {
162
+ "path": "/v1/plaid-accounts",
163
+ "file": "v1/_plaid_accounts.md",
164
+ "title": "v1 Plaid Accounts",
165
+ "section": "V1 API REFERENCE",
166
+ "type": "v1-slate",
167
+ "aliases": ["/v1/reference/plaid-accounts"]
168
+ },
169
+ {
170
+ "path": "/v1/crypto",
171
+ "file": "v1/_crypto.md",
172
+ "title": "v1 Crypto",
173
+ "section": "V1 API REFERENCE",
174
+ "type": "v1-slate",
175
+ "aliases": ["/v1/reference/crypto"]
176
+ }
177
+ ],
178
+ "redirects": [
179
+ { "from": "/", "to": "/introduction", "status": 302 },
180
+ { "from": "/v2", "to": "/introduction", "status": 302 },
181
+ { "from": "/v2/", "to": "/introduction", "status": 302 },
182
+ { "from": "/v1", "to": "/v1/user", "status": 302 },
183
+ { "from": "/v1/docs", "to": "/v1/user", "status": 301 }
184
+ ],
185
+ "sidebar": {
186
+ "docs": [
187
+ { "label": "Introduction", "path": "/introduction" },
188
+ { "section": "GUIDES", "items": [
189
+ { "label": "Getting Started", "path": "/getting-started" },
190
+ { "label": "Amounts & Balances", "path": "/amounts-and-balances" },
191
+ { "label": "Pagination", "path": "/pagination" },
192
+ { "label": "Rate Limiting", "path": "/rate-limits" },
193
+ { "label": "Supported Currencies", "path": "/currencies" },
194
+ { "label": "Using the API with AI", "path": "/using-with-ai" }
195
+ ]},
196
+ { "section": "REFERENCE", "items": [
197
+ { "label": "v2 API Overview", "path": "/v2/overview" },
198
+ { "label": "v2 API Reference", "path": "/v2/docs", "external": true },
199
+ { "label": "v2 API Changelog", "path": "/v2/changelog" }
200
+ ]},
201
+ { "section": "LEGACY APIs", "items": [
202
+ { "label": "Migrating v1 → v2", "path": "/v2/migration-guide" },
203
+ { "label": "v1 API Reference", "path": "/v1/user", "external": true },
204
+ { "label": "v1 API Changelog", "path": "/v1/changelog" },
205
+ { "label": "Legacy v1 docs", "path": "https://v1.lunchmoney.dev/", "external": true }
206
+ ]}
207
+ ],
208
+ "v1": [
209
+ { "section": "V1 API REFERENCE", "items": [
210
+ { "label": "User", "path": "/v1/user" },
211
+ { "label": "Categories", "path": "/v1/categories" },
212
+ { "label": "Tags", "path": "/v1/tags" },
213
+ { "label": "Transactions", "path": "/v1/transactions" },
214
+ { "label": "Recurring Expenses", "path": "/v1/recurring-expenses" },
215
+ { "label": "Recurring Items", "path": "/v1/recurring-items" },
216
+ { "label": "Budget", "path": "/v1/budget" },
217
+ { "label": "Assets", "path": "/v1/assets" },
218
+ { "label": "Plaid Accounts", "path": "/v1/plaid-accounts" },
219
+ { "label": "Crypto", "path": "/v1/crypto" }
220
+ ]},
221
+ { "label": "v1 API Changelog", "path": "/v1/changelog" },
222
+ { "label": "Legacy v1 docs", "path": "https://v1.lunchmoney.dev/", "external": true }
223
+ ]
224
+ }
225
+ }
package/package.json CHANGED
@@ -1,22 +1,25 @@
1
1
  {
2
2
  "name": "@lunch-money/developer-docs",
3
- "version": "2.11.1-preview.1",
3
+ "version": "2.11.1-preview.3",
4
4
  "description": "Developer documentation content for Lunch Money APIs",
5
5
  "exports": {
6
6
  ".": "./package.json",
7
+ "./manifest.json": "./manifest.json",
7
8
  "./package.json": "./package.json"
8
9
  },
9
10
  "files": [
10
11
  "docs",
11
12
  "v1",
12
13
  "v2",
14
+ "manifest.json",
13
15
  "README.md"
14
16
  ],
15
17
  "publishConfig": {
16
18
  "access": "public"
17
19
  },
18
20
  "scripts": {
19
- "prepack": "node scripts/prepack.js",
21
+ "validate:manifest": "node scripts/validate-manifest.js",
22
+ "prepack": "node scripts/validate-manifest.js && node scripts/prepack.js",
20
23
  "postpack": "node scripts/postpack.js"
21
24
  },
22
25
  "keywords": [
@@ -2,17 +2,13 @@ openapi: 3.0.2
2
2
  info:
3
3
  title: Lunch Money API - v2
4
4
  description: |-
5
- Welcome to the Lunch Money v2 API reference. This is the **v2.11.1** spec. It includes previews of the proposed `/crypto` and `/balance_history` endpoints. Only the mock service works with these endpoints.<br><br>
6
- The most recent stable version of the API is v2.9.4 and is available at:
7
- `https://api.lunchmoney.dev/v2`
8
-
9
- ------------------------------------------------------------------------------------------------
5
+ Welcome to the Lunch Money v2 API reference. This is the **v2.11.1** spec.
10
6
 
11
7
  ### Introduction
12
8
 
13
- The API is available at `https://api.lunchmoney.dev/v2`. Get your access token from the [Lunch Money developers page](https://my.lunchmoney.app/developers).
9
+ The API is available at `https://lunchmoney.dev/v2`. Get your access token from the [Lunch Money developers page](https://my.lunchmoney.app/developers).
14
10
 
15
- <span class="red-text"><strong>The v2 API is in open alpha and is still subject to change. Use the mock server or a test budget when getting started.</strong></span>
11
+ API calls can <span class="red-text"><strong>change or delete</strong></span> your data. Any changes you make are <span class="red-text"><strong>permanent</strong></span>, just like they would be if you made changes using the web or mobile app. Please refer to the [Getting Started Guide](https://lunchmoney.dev/v2/getting-started) before using the API.
16
12
 
17
13
  **Static Mock Server**
18
14
 
@@ -20,19 +16,19 @@ info:
20
16
 
21
17
  **Client Libraries & SDKs**
22
18
 
23
- An official TypeScript SDK is available on [NPM](https://www.npmjs.com/package/@lunch-money/v2-api-spec) and [GitHub](https://github.com/lunch-money/lunch-money-js-v2). For Python or other languages, see [lunchmoney-clients](https://github.com/juftin/lunchmoney-clients) or generate a client from this OpenAPI spec.
19
+ An official TypeScript SDK is available on [NPM](https://www.npmjs.com/package/@lunch-money/v2-api-spec) and [GitHub](https://github.com/lunch-money/lunch-money-js-v2). For Python or other languages, see [lunchmoney-clients](https://github.com/juftin/lunchmoney-clients) or generate a client from [this OpenAPI spec](/v2/openapi).
24
20
 
25
21
  **Migrating from v1**
26
22
 
27
- The v2 API is not backwards compatible with v1. See the [Migration Guide](https://alpha.lunchmoney.dev/v2/migration-guide) for details.
23
+ The v2 API is not backwards compatible with v1. See the [Migration Guide](https://lunchmoney.dev/v2/migration-guide) for details.
28
24
 
29
25
  **Useful links**
30
- - [Developer Portal](https://alpha.lunchmoney.dev/v2/introduction)
31
- - [Getting Started Guide](https://alpha.lunchmoney.dev/v2/getting-started)
32
- - [v2 API Overview](https://alpha.lunchmoney.dev/v2/overview)
33
- - [Version History](https://alpha.lunchmoney.dev/v2/version-history)
34
- - [Migration Guide](https://alpha.lunchmoney.dev/v2/migration-guide)
35
- - [Rate Limits](https://alpha.lunchmoney.dev/v2/rate-limits)
26
+ - [Developer Portal](https://lunchmoney.dev/v2/introduction)
27
+ - [Getting Started Guide](https://lunchmoney.dev/v2/getting-started)
28
+ - [v2 API Overview](https://lunchmoney.dev/v2/overview)
29
+ - [Version History](https://lunchmoney.dev/v2/version-history)
30
+ - [Migration Guide](https://lunchmoney.dev/v2/migration-guide)
31
+ - [Rate Limits](https://lunchmoney.dev/v2/rate-limits)
36
32
  termsOfService: https://lunchmoney.dev/#current-status
37
33
  contact:
38
34
  email: devsupport@lunchmoney.app
@@ -44,8 +40,8 @@ info:
44
40
  servers:
45
41
  - url: https://api.lunchmoney.dev/v2
46
42
  description: v2 Lunch Money API Server - changes will affect real data!
47
- # - url: https://mock.lunchmoney.dev/v2
48
- - url: https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/
43
+ # - url: https://lunchmoney.dev/v2
44
+ - url: https://lunchmoney.dev/v2
49
45
  description: Static mock version of the v2 Lunch Money API Server
50
46
 
51
47
  tags:
@@ -2946,7 +2942,7 @@ components:
2946
2942
  currency:
2947
2943
  description: Three-letter lowercase currency code of the transaction
2948
2944
  in ISO 4217 format. Must match one of the [supported
2949
- currencies](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/currencies). If not set
2945
+ currencies](https://lunchmoney.dev/v2/currencies). If not set
2950
2946
  defaults to the user account's primary currency.
2951
2947
  allOf:
2952
2948
  - $ref: "#/components/schemas/currencyEnum"
@@ -9103,19 +9099,19 @@ paths:
9103
9099
  description: Sets the maximum number of transactions to return. If
9104
9100
  more match the filter criteria, the response will include a
9105
9101
  `has_more` attribute set to `true`. See
9106
- [Pagination](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/pagination)
9102
+ [Pagination](https://lunchmoney.dev/v2/pagination)
9107
9103
  - name: offset
9108
9104
  in: query
9109
9105
  schema:
9110
9106
  type: integer
9111
9107
  description: Sets the offset for the records returned. This is
9112
9108
  typically set automatically in the header. See
9113
- [Pagination](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/pagination)
9109
+ [Pagination](https://lunchmoney.dev/v2/pagination)
9114
9110
  responses:
9115
9111
  "200":
9116
9112
  description: Returns an array of transactions. <br><br>The `has_more`
9117
9113
  property is set to `true` if more transactions are available. See
9118
- [Pagination](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/pagination)
9114
+ [Pagination](https://lunchmoney.dev/v2/pagination)
9119
9115
  content:
9120
9116
  application/json:
9121
9117
  schema: