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

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
@@ -7,6 +7,7 @@ This package ships the public `developer-docs` repository content directories at
7
7
  - `docs/`
8
8
  - `v1/`
9
9
  - `v2/`
10
+ - `manifest.json`
10
11
 
11
12
  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:
12
13
 
@@ -15,3 +16,9 @@ const docsRoot = path.dirname(require.resolve('@lunch-money/developer-docs/packa
15
16
  ```
16
17
 
17
18
  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`.
19
+
20
+ ## Updating Routes and Sidebar
21
+
22
+ The docs server reads `manifest.json` from the package root. When adding or moving a documentation page, update the content file and add a matching manifest entry with `path`, `file`, `title`, `section`, and `type`.
23
+
24
+ Run `npm run pack:docs` from the repository root before publishing. The package validates the manifest during `prepack` and fails if paths collide, aliases are duplicated, or referenced files are missing.
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.2",
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,12 +2,6 @@ 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
- ------------------------------------------------------------------------------------------------
10
-
11
5
  ### Introduction
12
6
 
13
7
  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).
@@ -20,7 +14,7 @@ info:
20
14
 
21
15
  **Client Libraries & SDKs**
22
16
 
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.
17
+ 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
18
 
25
19
  **Migrating from v1**
26
20