c4r-aggregator-client 1.0.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.
Files changed (271) hide show
  1. package/.idea/misc.xml +6 -0
  2. package/.idea/modules.xml +8 -0
  3. package/.idea/ts.iml +9 -0
  4. package/.idea/vcs.xml +6 -0
  5. package/.openapi-generator/FILES +91 -0
  6. package/.openapi-generator/VERSION +1 -0
  7. package/.openapi-generator-ignore +23 -0
  8. package/README.md +174 -0
  9. package/dist/apis/AdminApi.d.ts +187 -0
  10. package/dist/apis/AdminApi.js +515 -0
  11. package/dist/apis/CatalogApi.d.ts +84 -0
  12. package/dist/apis/CatalogApi.js +191 -0
  13. package/dist/apis/MeetingsApi.d.ts +98 -0
  14. package/dist/apis/MeetingsApi.js +235 -0
  15. package/dist/apis/SourcesApi.d.ts +35 -0
  16. package/dist/apis/SourcesApi.js +73 -0
  17. package/dist/apis/index.d.ts +4 -0
  18. package/dist/apis/index.js +22 -0
  19. package/dist/esm/apis/AdminApi.d.ts +187 -0
  20. package/dist/esm/apis/AdminApi.js +511 -0
  21. package/dist/esm/apis/CatalogApi.d.ts +84 -0
  22. package/dist/esm/apis/CatalogApi.js +187 -0
  23. package/dist/esm/apis/MeetingsApi.d.ts +98 -0
  24. package/dist/esm/apis/MeetingsApi.js +231 -0
  25. package/dist/esm/apis/SourcesApi.d.ts +35 -0
  26. package/dist/esm/apis/SourcesApi.js +69 -0
  27. package/dist/esm/apis/index.d.ts +4 -0
  28. package/dist/esm/apis/index.js +6 -0
  29. package/dist/esm/index.d.ts +3 -0
  30. package/dist/esm/index.js +5 -0
  31. package/dist/esm/models/AdminSource.d.ts +190 -0
  32. package/dist/esm/models/AdminSource.js +112 -0
  33. package/dist/esm/models/AuthError.d.ts +32 -0
  34. package/dist/esm/models/AuthError.js +41 -0
  35. package/dist/esm/models/CreateSourceRequest.d.ts +76 -0
  36. package/dist/esm/models/CreateSourceRequest.js +64 -0
  37. package/dist/esm/models/CreateSourceResponse.d.ts +45 -0
  38. package/dist/esm/models/CreateSourceResponse.js +46 -0
  39. package/dist/esm/models/DedupCounters.d.ts +86 -0
  40. package/dist/esm/models/DedupCounters.js +59 -0
  41. package/dist/esm/models/DedupStats.d.ts +65 -0
  42. package/dist/esm/models/DedupStats.js +54 -0
  43. package/dist/esm/models/DedupStatsLatestRun.d.ts +60 -0
  44. package/dist/esm/models/DedupStatsLatestRun.js +56 -0
  45. package/dist/esm/models/DedupStatsRecentRunsInner.d.ts +45 -0
  46. package/dist/esm/models/DedupStatsRecentRunsInner.js +46 -0
  47. package/dist/esm/models/FeedValidationError.d.ts +54 -0
  48. package/dist/esm/models/FeedValidationError.js +54 -0
  49. package/dist/esm/models/IngestRun.d.ts +107 -0
  50. package/dist/esm/models/IngestRun.js +71 -0
  51. package/dist/esm/models/MapFeature.d.ts +46 -0
  52. package/dist/esm/models/MapFeature.js +47 -0
  53. package/dist/esm/models/MapFeatureCollection.d.ts +45 -0
  54. package/dist/esm/models/MapFeatureCollection.js +46 -0
  55. package/dist/esm/models/MapFeatureGeometry.d.ts +38 -0
  56. package/dist/esm/models/MapFeatureGeometry.js +43 -0
  57. package/dist/esm/models/MapFeatureProperties.d.ts +69 -0
  58. package/dist/esm/models/MapFeatureProperties.js +54 -0
  59. package/dist/esm/models/MapMeeting.d.ts +50 -0
  60. package/dist/esm/models/MapMeeting.js +47 -0
  61. package/dist/esm/models/Meeting.d.ts +272 -0
  62. package/dist/esm/models/Meeting.js +131 -0
  63. package/dist/esm/models/MeetingPage.d.ts +47 -0
  64. package/dist/esm/models/MeetingPage.js +48 -0
  65. package/dist/esm/models/MeetingPageLinks.d.ts +50 -0
  66. package/dist/esm/models/MeetingPageLinks.js +47 -0
  67. package/dist/esm/models/MeetingPageMeta.d.ts +50 -0
  68. package/dist/esm/models/MeetingPageMeta.js +47 -0
  69. package/dist/esm/models/MeetingType.d.ts +56 -0
  70. package/dist/esm/models/MeetingType.js +49 -0
  71. package/dist/esm/models/MeetingsFilterError.d.ts +44 -0
  72. package/dist/esm/models/MeetingsFilterError.js +45 -0
  73. package/dist/esm/models/Program.d.ts +44 -0
  74. package/dist/esm/models/Program.js +45 -0
  75. package/dist/esm/models/PublicSource.d.ts +113 -0
  76. package/dist/esm/models/PublicSource.js +80 -0
  77. package/dist/esm/models/SourceEnvelope.d.ts +33 -0
  78. package/dist/esm/models/SourceEnvelope.js +42 -0
  79. package/dist/esm/models/SourceRefreshResponse.d.ts +39 -0
  80. package/dist/esm/models/SourceRefreshResponse.js +44 -0
  81. package/dist/esm/models/Stats.d.ts +86 -0
  82. package/dist/esm/models/Stats.js +63 -0
  83. package/dist/esm/models/StatsGroups.d.ts +32 -0
  84. package/dist/esm/models/StatsGroups.js +41 -0
  85. package/dist/esm/models/StatsLocations.d.ts +38 -0
  86. package/dist/esm/models/StatsLocations.js +43 -0
  87. package/dist/esm/models/StatsMeetingTypes.d.ts +32 -0
  88. package/dist/esm/models/StatsMeetingTypes.js +41 -0
  89. package/dist/esm/models/StatsMeetings.d.ts +68 -0
  90. package/dist/esm/models/StatsMeetings.js +51 -0
  91. package/dist/esm/models/StatsProgramsBreakdownInner.d.ts +62 -0
  92. package/dist/esm/models/StatsProgramsBreakdownInner.js +51 -0
  93. package/dist/esm/models/StatsSources.d.ts +47 -0
  94. package/dist/esm/models/StatsSources.js +46 -0
  95. package/dist/esm/models/StatsSourcesTopByMeetingCountInner.d.ts +44 -0
  96. package/dist/esm/models/StatsSourcesTopByMeetingCountInner.js +45 -0
  97. package/dist/esm/models/StoreSourceValidationError.d.ts +23 -0
  98. package/dist/esm/models/StoreSourceValidationError.js +51 -0
  99. package/dist/esm/models/UpdateSourceRequest.d.ts +70 -0
  100. package/dist/esm/models/UpdateSourceRequest.js +58 -0
  101. package/dist/esm/models/ValidationError.d.ts +40 -0
  102. package/dist/esm/models/ValidationError.js +43 -0
  103. package/dist/esm/models/index.d.ts +36 -0
  104. package/dist/esm/models/index.js +38 -0
  105. package/dist/esm/runtime.d.ts +184 -0
  106. package/dist/esm/runtime.js +349 -0
  107. package/dist/index.d.ts +3 -0
  108. package/dist/index.js +21 -0
  109. package/dist/models/AdminSource.d.ts +190 -0
  110. package/dist/models/AdminSource.js +120 -0
  111. package/dist/models/AuthError.d.ts +32 -0
  112. package/dist/models/AuthError.js +48 -0
  113. package/dist/models/CreateSourceRequest.d.ts +76 -0
  114. package/dist/models/CreateSourceRequest.js +72 -0
  115. package/dist/models/CreateSourceResponse.d.ts +45 -0
  116. package/dist/models/CreateSourceResponse.js +53 -0
  117. package/dist/models/DedupCounters.d.ts +86 -0
  118. package/dist/models/DedupCounters.js +66 -0
  119. package/dist/models/DedupStats.d.ts +65 -0
  120. package/dist/models/DedupStats.js +61 -0
  121. package/dist/models/DedupStatsLatestRun.d.ts +60 -0
  122. package/dist/models/DedupStatsLatestRun.js +64 -0
  123. package/dist/models/DedupStatsRecentRunsInner.d.ts +45 -0
  124. package/dist/models/DedupStatsRecentRunsInner.js +53 -0
  125. package/dist/models/FeedValidationError.d.ts +54 -0
  126. package/dist/models/FeedValidationError.js +62 -0
  127. package/dist/models/IngestRun.d.ts +107 -0
  128. package/dist/models/IngestRun.js +79 -0
  129. package/dist/models/MapFeature.d.ts +46 -0
  130. package/dist/models/MapFeature.js +54 -0
  131. package/dist/models/MapFeatureCollection.d.ts +45 -0
  132. package/dist/models/MapFeatureCollection.js +53 -0
  133. package/dist/models/MapFeatureGeometry.d.ts +38 -0
  134. package/dist/models/MapFeatureGeometry.js +50 -0
  135. package/dist/models/MapFeatureProperties.d.ts +69 -0
  136. package/dist/models/MapFeatureProperties.js +61 -0
  137. package/dist/models/MapMeeting.d.ts +50 -0
  138. package/dist/models/MapMeeting.js +54 -0
  139. package/dist/models/Meeting.d.ts +272 -0
  140. package/dist/models/Meeting.js +139 -0
  141. package/dist/models/MeetingPage.d.ts +47 -0
  142. package/dist/models/MeetingPage.js +55 -0
  143. package/dist/models/MeetingPageLinks.d.ts +50 -0
  144. package/dist/models/MeetingPageLinks.js +54 -0
  145. package/dist/models/MeetingPageMeta.d.ts +50 -0
  146. package/dist/models/MeetingPageMeta.js +54 -0
  147. package/dist/models/MeetingType.d.ts +56 -0
  148. package/dist/models/MeetingType.js +56 -0
  149. package/dist/models/MeetingsFilterError.d.ts +44 -0
  150. package/dist/models/MeetingsFilterError.js +52 -0
  151. package/dist/models/Program.d.ts +44 -0
  152. package/dist/models/Program.js +52 -0
  153. package/dist/models/PublicSource.d.ts +113 -0
  154. package/dist/models/PublicSource.js +88 -0
  155. package/dist/models/SourceEnvelope.d.ts +33 -0
  156. package/dist/models/SourceEnvelope.js +49 -0
  157. package/dist/models/SourceRefreshResponse.d.ts +39 -0
  158. package/dist/models/SourceRefreshResponse.js +51 -0
  159. package/dist/models/Stats.d.ts +86 -0
  160. package/dist/models/Stats.js +70 -0
  161. package/dist/models/StatsGroups.d.ts +32 -0
  162. package/dist/models/StatsGroups.js +48 -0
  163. package/dist/models/StatsLocations.d.ts +38 -0
  164. package/dist/models/StatsLocations.js +50 -0
  165. package/dist/models/StatsMeetingTypes.d.ts +32 -0
  166. package/dist/models/StatsMeetingTypes.js +48 -0
  167. package/dist/models/StatsMeetings.d.ts +68 -0
  168. package/dist/models/StatsMeetings.js +58 -0
  169. package/dist/models/StatsProgramsBreakdownInner.d.ts +62 -0
  170. package/dist/models/StatsProgramsBreakdownInner.js +58 -0
  171. package/dist/models/StatsSources.d.ts +47 -0
  172. package/dist/models/StatsSources.js +53 -0
  173. package/dist/models/StatsSourcesTopByMeetingCountInner.d.ts +44 -0
  174. package/dist/models/StatsSourcesTopByMeetingCountInner.js +52 -0
  175. package/dist/models/StoreSourceValidationError.d.ts +23 -0
  176. package/dist/models/StoreSourceValidationError.js +57 -0
  177. package/dist/models/UpdateSourceRequest.d.ts +70 -0
  178. package/dist/models/UpdateSourceRequest.js +66 -0
  179. package/dist/models/ValidationError.d.ts +40 -0
  180. package/dist/models/ValidationError.js +50 -0
  181. package/dist/models/index.d.ts +36 -0
  182. package/dist/models/index.js +54 -0
  183. package/dist/runtime.d.ts +184 -0
  184. package/dist/runtime.js +365 -0
  185. package/docs/AdminApi.md +734 -0
  186. package/docs/AdminSource.md +77 -0
  187. package/docs/AuthError.md +34 -0
  188. package/docs/CatalogApi.md +270 -0
  189. package/docs/CreateSourceRequest.md +46 -0
  190. package/docs/CreateSourceResponse.md +38 -0
  191. package/docs/DedupCounters.md +53 -0
  192. package/docs/DedupStats.md +45 -0
  193. package/docs/DedupStatsLatestRun.md +41 -0
  194. package/docs/DedupStatsRecentRunsInner.md +39 -0
  195. package/docs/FeedValidationError.md +39 -0
  196. package/docs/IngestRun.md +57 -0
  197. package/docs/MapFeature.md +39 -0
  198. package/docs/MapFeatureCollection.md +39 -0
  199. package/docs/MapFeatureGeometry.md +37 -0
  200. package/docs/MapFeatureProperties.md +47 -0
  201. package/docs/MapMeeting.md +41 -0
  202. package/docs/Meeting.md +109 -0
  203. package/docs/MeetingPage.md +39 -0
  204. package/docs/MeetingPageLinks.md +41 -0
  205. package/docs/MeetingPageMeta.md +41 -0
  206. package/docs/MeetingType.md +42 -0
  207. package/docs/MeetingsApi.md +323 -0
  208. package/docs/MeetingsFilterError.md +39 -0
  209. package/docs/Program.md +38 -0
  210. package/docs/PublicSource.md +55 -0
  211. package/docs/SourceEnvelope.md +35 -0
  212. package/docs/SourceRefreshResponse.md +37 -0
  213. package/docs/SourcesApi.md +76 -0
  214. package/docs/Stats.md +51 -0
  215. package/docs/StatsGroups.md +35 -0
  216. package/docs/StatsLocations.md +37 -0
  217. package/docs/StatsMeetingTypes.md +35 -0
  218. package/docs/StatsMeetings.md +45 -0
  219. package/docs/StatsProgramsBreakdownInner.md +45 -0
  220. package/docs/StatsSources.md +39 -0
  221. package/docs/StatsSourcesTopByMeetingCountInner.md +39 -0
  222. package/docs/StoreSourceValidationError.md +41 -0
  223. package/docs/UpdateSourceRequest.md +44 -0
  224. package/docs/ValidationError.md +36 -0
  225. package/package.json +21 -0
  226. package/src/apis/AdminApi.ts +659 -0
  227. package/src/apis/CatalogApi.ts +220 -0
  228. package/src/apis/MeetingsApi.ts +305 -0
  229. package/src/apis/SourcesApi.ts +74 -0
  230. package/src/apis/index.ts +6 -0
  231. package/src/index.ts +5 -0
  232. package/src/models/AdminSource.ts +270 -0
  233. package/src/models/AuthError.ts +65 -0
  234. package/src/models/CreateSourceRequest.ts +126 -0
  235. package/src/models/CreateSourceResponse.ts +89 -0
  236. package/src/models/DedupCounters.ts +137 -0
  237. package/src/models/DedupStats.ts +127 -0
  238. package/src/models/DedupStatsLatestRun.ts +109 -0
  239. package/src/models/DedupStatsRecentRunsInner.ts +89 -0
  240. package/src/models/FeedValidationError.ts +94 -0
  241. package/src/models/IngestRun.ts +165 -0
  242. package/src/models/MapFeature.ts +96 -0
  243. package/src/models/MapFeatureCollection.ts +89 -0
  244. package/src/models/MapFeatureGeometry.ts +73 -0
  245. package/src/models/MapFeatureProperties.ts +121 -0
  246. package/src/models/MapMeeting.ts +89 -0
  247. package/src/models/Meeting.ts +383 -0
  248. package/src/models/MeetingPage.ts +103 -0
  249. package/src/models/MeetingPageLinks.ts +89 -0
  250. package/src/models/MeetingPageMeta.ts +89 -0
  251. package/src/models/MeetingType.ts +97 -0
  252. package/src/models/MeetingsFilterError.ts +81 -0
  253. package/src/models/Program.ts +81 -0
  254. package/src/models/PublicSource.ts +170 -0
  255. package/src/models/SourceEnvelope.ts +73 -0
  256. package/src/models/SourceRefreshResponse.ts +81 -0
  257. package/src/models/Stats.ts +172 -0
  258. package/src/models/StatsGroups.ts +65 -0
  259. package/src/models/StatsLocations.ts +73 -0
  260. package/src/models/StatsMeetingTypes.ts +65 -0
  261. package/src/models/StatsMeetings.ts +105 -0
  262. package/src/models/StatsProgramsBreakdownInner.ts +105 -0
  263. package/src/models/StatsSources.ts +89 -0
  264. package/src/models/StatsSourcesTopByMeetingCountInner.ts +81 -0
  265. package/src/models/StoreSourceValidationError.ts +76 -0
  266. package/src/models/UpdateSourceRequest.ts +116 -0
  267. package/src/models/ValidationError.ts +73 -0
  268. package/src/models/index.ts +38 -0
  269. package/src/runtime.ts +449 -0
  270. package/tsconfig.esm.json +7 -0
  271. package/tsconfig.json +16 -0
@@ -0,0 +1,190 @@
1
+ /**
2
+ * C4R Aggregator API
3
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * Full admin view of a source, including failure state, backoff, and all entity metadata.
14
+ * @export
15
+ * @interface AdminSource
16
+ */
17
+ export interface AdminSource {
18
+ /**
19
+ *
20
+ * @type {number}
21
+ * @memberof AdminSource
22
+ */
23
+ id?: number;
24
+ /**
25
+ *
26
+ * @type {string}
27
+ * @memberof AdminSource
28
+ */
29
+ program?: string;
30
+ /**
31
+ *
32
+ * @type {string}
33
+ * @memberof AdminSource
34
+ */
35
+ name?: string;
36
+ /**
37
+ *
38
+ * @type {string}
39
+ * @memberof AdminSource
40
+ */
41
+ feedUrl?: string;
42
+ /**
43
+ *
44
+ * @type {AdminSourceFeedKindEnum}
45
+ * @memberof AdminSource
46
+ */
47
+ feedKind?: AdminSourceFeedKindEnum;
48
+ /**
49
+ *
50
+ * @type {AdminSourceStateEnum}
51
+ * @memberof AdminSource
52
+ */
53
+ state?: AdminSourceStateEnum;
54
+ /**
55
+ *
56
+ * @type {number}
57
+ * @memberof AdminSource
58
+ */
59
+ fetchIntervalMinutes?: number;
60
+ /**
61
+ *
62
+ * @type {Date}
63
+ * @memberof AdminSource
64
+ */
65
+ lastFetchedAt?: Date | null;
66
+ /**
67
+ *
68
+ * @type {Date}
69
+ * @memberof AdminSource
70
+ */
71
+ lastSuccessAt?: Date | null;
72
+ /**
73
+ *
74
+ * @type {string}
75
+ * @memberof AdminSource
76
+ */
77
+ lastError?: string | null;
78
+ /**
79
+ *
80
+ * @type {AdminSourceLastErrorTypeEnum}
81
+ * @memberof AdminSource
82
+ */
83
+ lastErrorType?: AdminSourceLastErrorTypeEnum | null;
84
+ /**
85
+ *
86
+ * @type {number}
87
+ * @memberof AdminSource
88
+ */
89
+ consecutiveFailures?: number;
90
+ /**
91
+ *
92
+ * @type {Date}
93
+ * @memberof AdminSource
94
+ */
95
+ nextFetchAt?: Date | null;
96
+ /**
97
+ *
98
+ * @type {number}
99
+ * @memberof AdminSource
100
+ */
101
+ lastSuccessfulMeetingCount?: number | null;
102
+ /**
103
+ *
104
+ * @type {number}
105
+ * @memberof AdminSource
106
+ */
107
+ daysSinceLastSuccess?: number | null;
108
+ /**
109
+ *
110
+ * @type {Date}
111
+ * @memberof AdminSource
112
+ */
113
+ pausedAt?: Date | null;
114
+ /**
115
+ *
116
+ * @type {Date}
117
+ * @memberof AdminSource
118
+ */
119
+ dormantAt?: Date | null;
120
+ /**
121
+ *
122
+ * @type {Date}
123
+ * @memberof AdminSource
124
+ */
125
+ deletedAt?: Date | null;
126
+ /**
127
+ *
128
+ * @type {string}
129
+ * @memberof AdminSource
130
+ */
131
+ entity?: string | null;
132
+ /**
133
+ *
134
+ * @type {string}
135
+ * @memberof AdminSource
136
+ */
137
+ entityEmail?: string | null;
138
+ /**
139
+ *
140
+ * @type {string}
141
+ * @memberof AdminSource
142
+ */
143
+ entityUrl?: string | null;
144
+ /**
145
+ *
146
+ * @type {string}
147
+ * @memberof AdminSource
148
+ */
149
+ notificationWebhookUrl?: string | null;
150
+ }
151
+ /**
152
+ * @export
153
+ */
154
+ export declare const AdminSourceFeedKindEnum: {
155
+ readonly TsmlJson: "tsml_json";
156
+ readonly GoogleSheet: "google_sheet";
157
+ };
158
+ export type AdminSourceFeedKindEnum = typeof AdminSourceFeedKindEnum[keyof typeof AdminSourceFeedKindEnum];
159
+ /**
160
+ * @export
161
+ */
162
+ export declare const AdminSourceStateEnum: {
163
+ readonly Pending: "pending";
164
+ readonly Active: "active";
165
+ readonly Degraded: "degraded";
166
+ readonly Failing: "failing";
167
+ readonly Dormant: "dormant";
168
+ readonly Paused: "paused";
169
+ readonly Deleted: "deleted";
170
+ };
171
+ export type AdminSourceStateEnum = typeof AdminSourceStateEnum[keyof typeof AdminSourceStateEnum];
172
+ /**
173
+ * @export
174
+ */
175
+ export declare const AdminSourceLastErrorTypeEnum: {
176
+ readonly Network: "network";
177
+ readonly Http: "http";
178
+ readonly Parse: "parse";
179
+ readonly Empty: "empty";
180
+ readonly Suspicious: "suspicious";
181
+ };
182
+ export type AdminSourceLastErrorTypeEnum = typeof AdminSourceLastErrorTypeEnum[keyof typeof AdminSourceLastErrorTypeEnum];
183
+ /**
184
+ * Check if a given object implements the AdminSource interface.
185
+ */
186
+ export declare function instanceOfAdminSource(value: object): value is AdminSource;
187
+ export declare function AdminSourceFromJSON(json: any): AdminSource;
188
+ export declare function AdminSourceFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdminSource;
189
+ export declare function AdminSourceToJSON(json: any): AdminSource;
190
+ export declare function AdminSourceToJSONTyped(value?: AdminSource | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * C4R Aggregator API
6
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
7
+ *
8
+ * The version of the OpenAPI document: 1.0.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.AdminSourceLastErrorTypeEnum = exports.AdminSourceStateEnum = exports.AdminSourceFeedKindEnum = void 0;
17
+ exports.instanceOfAdminSource = instanceOfAdminSource;
18
+ exports.AdminSourceFromJSON = AdminSourceFromJSON;
19
+ exports.AdminSourceFromJSONTyped = AdminSourceFromJSONTyped;
20
+ exports.AdminSourceToJSON = AdminSourceToJSON;
21
+ exports.AdminSourceToJSONTyped = AdminSourceToJSONTyped;
22
+ /**
23
+ * @export
24
+ */
25
+ exports.AdminSourceFeedKindEnum = {
26
+ TsmlJson: 'tsml_json',
27
+ GoogleSheet: 'google_sheet'
28
+ };
29
+ /**
30
+ * @export
31
+ */
32
+ exports.AdminSourceStateEnum = {
33
+ Pending: 'pending',
34
+ Active: 'active',
35
+ Degraded: 'degraded',
36
+ Failing: 'failing',
37
+ Dormant: 'dormant',
38
+ Paused: 'paused',
39
+ Deleted: 'deleted'
40
+ };
41
+ /**
42
+ * @export
43
+ */
44
+ exports.AdminSourceLastErrorTypeEnum = {
45
+ Network: 'network',
46
+ Http: 'http',
47
+ Parse: 'parse',
48
+ Empty: 'empty',
49
+ Suspicious: 'suspicious'
50
+ };
51
+ /**
52
+ * Check if a given object implements the AdminSource interface.
53
+ */
54
+ function instanceOfAdminSource(value) {
55
+ return true;
56
+ }
57
+ function AdminSourceFromJSON(json) {
58
+ return AdminSourceFromJSONTyped(json, false);
59
+ }
60
+ function AdminSourceFromJSONTyped(json, ignoreDiscriminator) {
61
+ if (json == null) {
62
+ return json;
63
+ }
64
+ return {
65
+ 'id': json['id'] == null ? undefined : json['id'],
66
+ 'program': json['program'] == null ? undefined : json['program'],
67
+ 'name': json['name'] == null ? undefined : json['name'],
68
+ 'feedUrl': json['feed_url'] == null ? undefined : json['feed_url'],
69
+ 'feedKind': json['feed_kind'] == null ? undefined : json['feed_kind'],
70
+ 'state': json['state'] == null ? undefined : json['state'],
71
+ 'fetchIntervalMinutes': json['fetch_interval_minutes'] == null ? undefined : json['fetch_interval_minutes'],
72
+ 'lastFetchedAt': json['last_fetched_at'] == null ? undefined : (new Date(json['last_fetched_at'])),
73
+ 'lastSuccessAt': json['last_success_at'] == null ? undefined : (new Date(json['last_success_at'])),
74
+ 'lastError': json['last_error'] == null ? undefined : json['last_error'],
75
+ 'lastErrorType': json['last_error_type'] == null ? undefined : json['last_error_type'],
76
+ 'consecutiveFailures': json['consecutive_failures'] == null ? undefined : json['consecutive_failures'],
77
+ 'nextFetchAt': json['next_fetch_at'] == null ? undefined : (new Date(json['next_fetch_at'])),
78
+ 'lastSuccessfulMeetingCount': json['last_successful_meeting_count'] == null ? undefined : json['last_successful_meeting_count'],
79
+ 'daysSinceLastSuccess': json['days_since_last_success'] == null ? undefined : json['days_since_last_success'],
80
+ 'pausedAt': json['paused_at'] == null ? undefined : (new Date(json['paused_at'])),
81
+ 'dormantAt': json['dormant_at'] == null ? undefined : (new Date(json['dormant_at'])),
82
+ 'deletedAt': json['deleted_at'] == null ? undefined : (new Date(json['deleted_at'])),
83
+ 'entity': json['entity'] == null ? undefined : json['entity'],
84
+ 'entityEmail': json['entity_email'] == null ? undefined : json['entity_email'],
85
+ 'entityUrl': json['entity_url'] == null ? undefined : json['entity_url'],
86
+ 'notificationWebhookUrl': json['notification_webhook_url'] == null ? undefined : json['notification_webhook_url'],
87
+ };
88
+ }
89
+ function AdminSourceToJSON(json) {
90
+ return AdminSourceToJSONTyped(json, false);
91
+ }
92
+ function AdminSourceToJSONTyped(value, ignoreDiscriminator = false) {
93
+ if (value == null) {
94
+ return value;
95
+ }
96
+ return {
97
+ 'id': value['id'],
98
+ 'program': value['program'],
99
+ 'name': value['name'],
100
+ 'feed_url': value['feedUrl'],
101
+ 'feed_kind': value['feedKind'],
102
+ 'state': value['state'],
103
+ 'fetch_interval_minutes': value['fetchIntervalMinutes'],
104
+ 'last_fetched_at': value['lastFetchedAt'] == null ? value['lastFetchedAt'] : value['lastFetchedAt'].toISOString(),
105
+ 'last_success_at': value['lastSuccessAt'] == null ? value['lastSuccessAt'] : value['lastSuccessAt'].toISOString(),
106
+ 'last_error': value['lastError'],
107
+ 'last_error_type': value['lastErrorType'],
108
+ 'consecutive_failures': value['consecutiveFailures'],
109
+ 'next_fetch_at': value['nextFetchAt'] == null ? value['nextFetchAt'] : value['nextFetchAt'].toISOString(),
110
+ 'last_successful_meeting_count': value['lastSuccessfulMeetingCount'],
111
+ 'days_since_last_success': value['daysSinceLastSuccess'],
112
+ 'paused_at': value['pausedAt'] == null ? value['pausedAt'] : value['pausedAt'].toISOString(),
113
+ 'dormant_at': value['dormantAt'] == null ? value['dormantAt'] : value['dormantAt'].toISOString(),
114
+ 'deleted_at': value['deletedAt'] == null ? value['deletedAt'] : value['deletedAt'].toISOString(),
115
+ 'entity': value['entity'],
116
+ 'entity_email': value['entityEmail'],
117
+ 'entity_url': value['entityUrl'],
118
+ 'notification_webhook_url': value['notificationWebhookUrl'],
119
+ };
120
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * C4R Aggregator API
3
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ *
14
+ * @export
15
+ * @interface AuthError
16
+ */
17
+ export interface AuthError {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof AuthError
22
+ */
23
+ message?: string;
24
+ }
25
+ /**
26
+ * Check if a given object implements the AuthError interface.
27
+ */
28
+ export declare function instanceOfAuthError(value: object): value is AuthError;
29
+ export declare function AuthErrorFromJSON(json: any): AuthError;
30
+ export declare function AuthErrorFromJSONTyped(json: any, ignoreDiscriminator: boolean): AuthError;
31
+ export declare function AuthErrorToJSON(json: any): AuthError;
32
+ export declare function AuthErrorToJSONTyped(value?: AuthError | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * C4R Aggregator API
6
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
7
+ *
8
+ * The version of the OpenAPI document: 1.0.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.instanceOfAuthError = instanceOfAuthError;
17
+ exports.AuthErrorFromJSON = AuthErrorFromJSON;
18
+ exports.AuthErrorFromJSONTyped = AuthErrorFromJSONTyped;
19
+ exports.AuthErrorToJSON = AuthErrorToJSON;
20
+ exports.AuthErrorToJSONTyped = AuthErrorToJSONTyped;
21
+ /**
22
+ * Check if a given object implements the AuthError interface.
23
+ */
24
+ function instanceOfAuthError(value) {
25
+ return true;
26
+ }
27
+ function AuthErrorFromJSON(json) {
28
+ return AuthErrorFromJSONTyped(json, false);
29
+ }
30
+ function AuthErrorFromJSONTyped(json, ignoreDiscriminator) {
31
+ if (json == null) {
32
+ return json;
33
+ }
34
+ return {
35
+ 'message': json['message'] == null ? undefined : json['message'],
36
+ };
37
+ }
38
+ function AuthErrorToJSON(json) {
39
+ return AuthErrorToJSONTyped(json, false);
40
+ }
41
+ function AuthErrorToJSONTyped(value, ignoreDiscriminator = false) {
42
+ if (value == null) {
43
+ return value;
44
+ }
45
+ return {
46
+ 'message': value['message'],
47
+ };
48
+ }
@@ -0,0 +1,76 @@
1
+ /**
2
+ * C4R Aggregator API
3
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ *
14
+ * @export
15
+ * @interface CreateSourceRequest
16
+ */
17
+ export interface CreateSourceRequest {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof CreateSourceRequest
22
+ */
23
+ feedUrl: string;
24
+ /**
25
+ *
26
+ * @type {string}
27
+ * @memberof CreateSourceRequest
28
+ */
29
+ program: string;
30
+ /**
31
+ * `tsml_json` (default) fetches an upstream Meeting Guide JSON feed. `google_sheet` reads a public Google Sheet backing a tsml-ui front-end (the `data-src` on `<div id="tsml-ui">`); the sheet is fetched via the anonymous gviz CSV export. `google_sheet` sources are forced to run no more than once per day.
32
+ * @type {CreateSourceRequestFeedKindEnum}
33
+ * @memberof CreateSourceRequest
34
+ */
35
+ feedKind?: CreateSourceRequestFeedKindEnum;
36
+ /**
37
+ *
38
+ * @type {string}
39
+ * @memberof CreateSourceRequest
40
+ */
41
+ name?: string | null;
42
+ /**
43
+ * Appended as `?key=…` on each fetch
44
+ * @type {string}
45
+ * @memberof CreateSourceRequest
46
+ */
47
+ sharingKey?: string | null;
48
+ /**
49
+ *
50
+ * @type {number}
51
+ * @memberof CreateSourceRequest
52
+ */
53
+ fetchIntervalMinutes?: number;
54
+ /**
55
+ *
56
+ * @type {string}
57
+ * @memberof CreateSourceRequest
58
+ */
59
+ notificationWebhookUrl?: string | null;
60
+ }
61
+ /**
62
+ * @export
63
+ */
64
+ export declare const CreateSourceRequestFeedKindEnum: {
65
+ readonly TsmlJson: "tsml_json";
66
+ readonly GoogleSheet: "google_sheet";
67
+ };
68
+ export type CreateSourceRequestFeedKindEnum = typeof CreateSourceRequestFeedKindEnum[keyof typeof CreateSourceRequestFeedKindEnum];
69
+ /**
70
+ * Check if a given object implements the CreateSourceRequest interface.
71
+ */
72
+ export declare function instanceOfCreateSourceRequest(value: object): value is CreateSourceRequest;
73
+ export declare function CreateSourceRequestFromJSON(json: any): CreateSourceRequest;
74
+ export declare function CreateSourceRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateSourceRequest;
75
+ export declare function CreateSourceRequestToJSON(json: any): CreateSourceRequest;
76
+ export declare function CreateSourceRequestToJSONTyped(value?: CreateSourceRequest | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * C4R Aggregator API
6
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
7
+ *
8
+ * The version of the OpenAPI document: 1.0.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.CreateSourceRequestFeedKindEnum = void 0;
17
+ exports.instanceOfCreateSourceRequest = instanceOfCreateSourceRequest;
18
+ exports.CreateSourceRequestFromJSON = CreateSourceRequestFromJSON;
19
+ exports.CreateSourceRequestFromJSONTyped = CreateSourceRequestFromJSONTyped;
20
+ exports.CreateSourceRequestToJSON = CreateSourceRequestToJSON;
21
+ exports.CreateSourceRequestToJSONTyped = CreateSourceRequestToJSONTyped;
22
+ /**
23
+ * @export
24
+ */
25
+ exports.CreateSourceRequestFeedKindEnum = {
26
+ TsmlJson: 'tsml_json',
27
+ GoogleSheet: 'google_sheet'
28
+ };
29
+ /**
30
+ * Check if a given object implements the CreateSourceRequest interface.
31
+ */
32
+ function instanceOfCreateSourceRequest(value) {
33
+ if ((!('feedUrl' in value) && !('feed_url' in value)) || (value['feedUrl'] === undefined && value['feed_url'] === undefined))
34
+ return false;
35
+ if (!('program' in value) || value['program'] === undefined)
36
+ return false;
37
+ return true;
38
+ }
39
+ function CreateSourceRequestFromJSON(json) {
40
+ return CreateSourceRequestFromJSONTyped(json, false);
41
+ }
42
+ function CreateSourceRequestFromJSONTyped(json, ignoreDiscriminator) {
43
+ if (json == null) {
44
+ return json;
45
+ }
46
+ return {
47
+ 'feedUrl': json['feed_url'],
48
+ 'program': json['program'],
49
+ 'feedKind': json['feed_kind'] == null ? undefined : json['feed_kind'],
50
+ 'name': json['name'] == null ? undefined : json['name'],
51
+ 'sharingKey': json['sharing_key'] == null ? undefined : json['sharing_key'],
52
+ 'fetchIntervalMinutes': json['fetch_interval_minutes'] == null ? undefined : json['fetch_interval_minutes'],
53
+ 'notificationWebhookUrl': json['notification_webhook_url'] == null ? undefined : json['notification_webhook_url'],
54
+ };
55
+ }
56
+ function CreateSourceRequestToJSON(json) {
57
+ return CreateSourceRequestToJSONTyped(json, false);
58
+ }
59
+ function CreateSourceRequestToJSONTyped(value, ignoreDiscriminator = false) {
60
+ if (value == null) {
61
+ return value;
62
+ }
63
+ return {
64
+ 'feed_url': value['feedUrl'],
65
+ 'program': value['program'],
66
+ 'feed_kind': value['feedKind'],
67
+ 'name': value['name'],
68
+ 'sharing_key': value['sharingKey'],
69
+ 'fetch_interval_minutes': value['fetchIntervalMinutes'],
70
+ 'notification_webhook_url': value['notificationWebhookUrl'],
71
+ };
72
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * C4R Aggregator API
3
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { AdminSource } from './AdminSource';
13
+ /**
14
+ *
15
+ * @export
16
+ * @interface CreateSourceResponse
17
+ */
18
+ export interface CreateSourceResponse {
19
+ /**
20
+ *
21
+ * @type {AdminSource}
22
+ * @memberof CreateSourceResponse
23
+ */
24
+ source?: AdminSource;
25
+ /**
26
+ *
27
+ * @type {number}
28
+ * @memberof CreateSourceResponse
29
+ */
30
+ totalMeetingsFound?: number;
31
+ /**
32
+ * Up to 10 raw upstream rows from the validated feed
33
+ * @type {Array<object>}
34
+ * @memberof CreateSourceResponse
35
+ */
36
+ sampleMeetings?: Array<object>;
37
+ }
38
+ /**
39
+ * Check if a given object implements the CreateSourceResponse interface.
40
+ */
41
+ export declare function instanceOfCreateSourceResponse(value: object): value is CreateSourceResponse;
42
+ export declare function CreateSourceResponseFromJSON(json: any): CreateSourceResponse;
43
+ export declare function CreateSourceResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateSourceResponse;
44
+ export declare function CreateSourceResponseToJSON(json: any): CreateSourceResponse;
45
+ export declare function CreateSourceResponseToJSONTyped(value?: CreateSourceResponse | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * C4R Aggregator API
6
+ * Aggregator for public [12-Step Meeting List](https://wordpress.org/plugins/12-step-meeting-list/) WordPress feeds. Ingests registered sources on a schedule, normalizes duplicates across feeds, and exposes a unified read API whose responses follow the [Meeting Guide API spec](https://github.com/code4recovery/spec) for drop-in client compatibility. - **Public endpoints** return Meeting Guide-shape data. `/meetings` requires at least one filter (bounding box, radius, region, source, program, day, or type) and is cursor-paginated. - **Per-source and per-region feeds** return bare JSON arrays — safe drop-in replacements for the upstream TSML endpoint. - **Admin endpoints** under `/admin/_*` require a Sanctum bearer token.
7
+ *
8
+ * The version of the OpenAPI document: 1.0.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.instanceOfCreateSourceResponse = instanceOfCreateSourceResponse;
17
+ exports.CreateSourceResponseFromJSON = CreateSourceResponseFromJSON;
18
+ exports.CreateSourceResponseFromJSONTyped = CreateSourceResponseFromJSONTyped;
19
+ exports.CreateSourceResponseToJSON = CreateSourceResponseToJSON;
20
+ exports.CreateSourceResponseToJSONTyped = CreateSourceResponseToJSONTyped;
21
+ const AdminSource_1 = require("./AdminSource");
22
+ /**
23
+ * Check if a given object implements the CreateSourceResponse interface.
24
+ */
25
+ function instanceOfCreateSourceResponse(value) {
26
+ return true;
27
+ }
28
+ function CreateSourceResponseFromJSON(json) {
29
+ return CreateSourceResponseFromJSONTyped(json, false);
30
+ }
31
+ function CreateSourceResponseFromJSONTyped(json, ignoreDiscriminator) {
32
+ if (json == null) {
33
+ return json;
34
+ }
35
+ return {
36
+ 'source': json['source'] == null ? undefined : (0, AdminSource_1.AdminSourceFromJSON)(json['source']),
37
+ 'totalMeetingsFound': json['total_meetings_found'] == null ? undefined : json['total_meetings_found'],
38
+ 'sampleMeetings': json['sample_meetings'] == null ? undefined : json['sample_meetings'],
39
+ };
40
+ }
41
+ function CreateSourceResponseToJSON(json) {
42
+ return CreateSourceResponseToJSONTyped(json, false);
43
+ }
44
+ function CreateSourceResponseToJSONTyped(value, ignoreDiscriminator = false) {
45
+ if (value == null) {
46
+ return value;
47
+ }
48
+ return {
49
+ 'source': (0, AdminSource_1.AdminSourceToJSON)(value['source']),
50
+ 'total_meetings_found': value['totalMeetingsFound'],
51
+ 'sample_meetings': value['sampleMeetings'],
52
+ };
53
+ }