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,107 @@
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
+ * A single fetch attempt against a source
14
+ * @export
15
+ * @interface IngestRun
16
+ */
17
+ export interface IngestRun {
18
+ /**
19
+ *
20
+ * @type {number}
21
+ * @memberof IngestRun
22
+ */
23
+ id?: number;
24
+ /**
25
+ *
26
+ * @type {number}
27
+ * @memberof IngestRun
28
+ */
29
+ sourceId?: number;
30
+ /**
31
+ *
32
+ * @type {Date}
33
+ * @memberof IngestRun
34
+ */
35
+ startedAt?: Date;
36
+ /**
37
+ *
38
+ * @type {Date}
39
+ * @memberof IngestRun
40
+ */
41
+ finishedAt?: Date | null;
42
+ /**
43
+ *
44
+ * @type {IngestRunStatusEnum}
45
+ * @memberof IngestRun
46
+ */
47
+ status?: IngestRunStatusEnum;
48
+ /**
49
+ *
50
+ * @type {boolean}
51
+ * @memberof IngestRun
52
+ */
53
+ wasSuspicious?: boolean;
54
+ /**
55
+ *
56
+ * @type {string}
57
+ * @memberof IngestRun
58
+ */
59
+ errorType?: string | null;
60
+ /**
61
+ *
62
+ * @type {string}
63
+ * @memberof IngestRun
64
+ */
65
+ errorMessage?: string | null;
66
+ /**
67
+ *
68
+ * @type {number}
69
+ * @memberof IngestRun
70
+ */
71
+ seen?: number;
72
+ /**
73
+ *
74
+ * @type {number}
75
+ * @memberof IngestRun
76
+ */
77
+ created?: number;
78
+ /**
79
+ *
80
+ * @type {number}
81
+ * @memberof IngestRun
82
+ */
83
+ updated?: number;
84
+ /**
85
+ *
86
+ * @type {number}
87
+ * @memberof IngestRun
88
+ */
89
+ removed?: number;
90
+ }
91
+ /**
92
+ * @export
93
+ */
94
+ export declare const IngestRunStatusEnum: {
95
+ readonly Success: "success";
96
+ readonly Failed: "failed";
97
+ readonly Suspicious: "suspicious";
98
+ };
99
+ export type IngestRunStatusEnum = typeof IngestRunStatusEnum[keyof typeof IngestRunStatusEnum];
100
+ /**
101
+ * Check if a given object implements the IngestRun interface.
102
+ */
103
+ export declare function instanceOfIngestRun(value: object): value is IngestRun;
104
+ export declare function IngestRunFromJSON(json: any): IngestRun;
105
+ export declare function IngestRunFromJSONTyped(json: any, ignoreDiscriminator: boolean): IngestRun;
106
+ export declare function IngestRunToJSON(json: any): IngestRun;
107
+ export declare function IngestRunToJSONTyped(value?: IngestRun | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,71 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * C4R Aggregator API
5
+ * 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.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * @export
16
+ */
17
+ export const IngestRunStatusEnum = {
18
+ Success: 'success',
19
+ Failed: 'failed',
20
+ Suspicious: 'suspicious'
21
+ };
22
+ /**
23
+ * Check if a given object implements the IngestRun interface.
24
+ */
25
+ export function instanceOfIngestRun(value) {
26
+ return true;
27
+ }
28
+ export function IngestRunFromJSON(json) {
29
+ return IngestRunFromJSONTyped(json, false);
30
+ }
31
+ export function IngestRunFromJSONTyped(json, ignoreDiscriminator) {
32
+ if (json == null) {
33
+ return json;
34
+ }
35
+ return {
36
+ 'id': json['id'] == null ? undefined : json['id'],
37
+ 'sourceId': json['source_id'] == null ? undefined : json['source_id'],
38
+ 'startedAt': json['started_at'] == null ? undefined : (new Date(json['started_at'])),
39
+ 'finishedAt': json['finished_at'] == null ? undefined : (new Date(json['finished_at'])),
40
+ 'status': json['status'] == null ? undefined : json['status'],
41
+ 'wasSuspicious': json['was_suspicious'] == null ? undefined : json['was_suspicious'],
42
+ 'errorType': json['error_type'] == null ? undefined : json['error_type'],
43
+ 'errorMessage': json['error_message'] == null ? undefined : json['error_message'],
44
+ 'seen': json['seen'] == null ? undefined : json['seen'],
45
+ 'created': json['created'] == null ? undefined : json['created'],
46
+ 'updated': json['updated'] == null ? undefined : json['updated'],
47
+ 'removed': json['removed'] == null ? undefined : json['removed'],
48
+ };
49
+ }
50
+ export function IngestRunToJSON(json) {
51
+ return IngestRunToJSONTyped(json, false);
52
+ }
53
+ export function IngestRunToJSONTyped(value, ignoreDiscriminator = false) {
54
+ if (value == null) {
55
+ return value;
56
+ }
57
+ return {
58
+ 'id': value['id'],
59
+ 'source_id': value['sourceId'],
60
+ 'started_at': value['startedAt'] == null ? value['startedAt'] : value['startedAt'].toISOString(),
61
+ 'finished_at': value['finishedAt'] == null ? value['finishedAt'] : value['finishedAt'].toISOString(),
62
+ 'status': value['status'],
63
+ 'was_suspicious': value['wasSuspicious'],
64
+ 'error_type': value['errorType'],
65
+ 'error_message': value['errorMessage'],
66
+ 'seen': value['seen'],
67
+ 'created': value['created'],
68
+ 'updated': value['updated'],
69
+ 'removed': value['removed'],
70
+ };
71
+ }
@@ -0,0 +1,46 @@
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 { MapFeatureGeometry } from './MapFeatureGeometry';
13
+ import type { MapFeatureProperties } from './MapFeatureProperties';
14
+ /**
15
+ * GeoJSON Feature: one per geocoded location with the list of active meetings at that location.
16
+ * @export
17
+ * @interface MapFeature
18
+ */
19
+ export interface MapFeature {
20
+ /**
21
+ *
22
+ * @type {string}
23
+ * @memberof MapFeature
24
+ */
25
+ type?: string;
26
+ /**
27
+ *
28
+ * @type {MapFeatureGeometry}
29
+ * @memberof MapFeature
30
+ */
31
+ geometry?: MapFeatureGeometry;
32
+ /**
33
+ *
34
+ * @type {MapFeatureProperties}
35
+ * @memberof MapFeature
36
+ */
37
+ properties?: MapFeatureProperties;
38
+ }
39
+ /**
40
+ * Check if a given object implements the MapFeature interface.
41
+ */
42
+ export declare function instanceOfMapFeature(value: object): value is MapFeature;
43
+ export declare function MapFeatureFromJSON(json: any): MapFeature;
44
+ export declare function MapFeatureFromJSONTyped(json: any, ignoreDiscriminator: boolean): MapFeature;
45
+ export declare function MapFeatureToJSON(json: any): MapFeature;
46
+ export declare function MapFeatureToJSONTyped(value?: MapFeature | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,47 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * C4R Aggregator API
5
+ * 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.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ import { MapFeatureGeometryFromJSON, MapFeatureGeometryToJSON, } from './MapFeatureGeometry';
15
+ import { MapFeaturePropertiesFromJSON, MapFeaturePropertiesToJSON, } from './MapFeatureProperties';
16
+ /**
17
+ * Check if a given object implements the MapFeature interface.
18
+ */
19
+ export function instanceOfMapFeature(value) {
20
+ return true;
21
+ }
22
+ export function MapFeatureFromJSON(json) {
23
+ return MapFeatureFromJSONTyped(json, false);
24
+ }
25
+ export function MapFeatureFromJSONTyped(json, ignoreDiscriminator) {
26
+ if (json == null) {
27
+ return json;
28
+ }
29
+ return {
30
+ 'type': json['type'] == null ? undefined : json['type'],
31
+ 'geometry': json['geometry'] == null ? undefined : MapFeatureGeometryFromJSON(json['geometry']),
32
+ 'properties': json['properties'] == null ? undefined : MapFeaturePropertiesFromJSON(json['properties']),
33
+ };
34
+ }
35
+ export function MapFeatureToJSON(json) {
36
+ return MapFeatureToJSONTyped(json, false);
37
+ }
38
+ export function MapFeatureToJSONTyped(value, ignoreDiscriminator = false) {
39
+ if (value == null) {
40
+ return value;
41
+ }
42
+ return {
43
+ 'type': value['type'],
44
+ 'geometry': MapFeatureGeometryToJSON(value['geometry']),
45
+ 'properties': MapFeaturePropertiesToJSON(value['properties']),
46
+ };
47
+ }
@@ -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 { MapFeature } from './MapFeature';
13
+ /**
14
+ * GeoJSON FeatureCollection of all geocoded locations with at least one active meeting. Cached 5 minutes.
15
+ * @export
16
+ * @interface MapFeatureCollection
17
+ */
18
+ export interface MapFeatureCollection {
19
+ /**
20
+ *
21
+ * @type {string}
22
+ * @memberof MapFeatureCollection
23
+ */
24
+ type?: string;
25
+ /**
26
+ *
27
+ * @type {Date}
28
+ * @memberof MapFeatureCollection
29
+ */
30
+ generatedAt?: Date;
31
+ /**
32
+ *
33
+ * @type {Array<MapFeature>}
34
+ * @memberof MapFeatureCollection
35
+ */
36
+ features?: Array<MapFeature>;
37
+ }
38
+ /**
39
+ * Check if a given object implements the MapFeatureCollection interface.
40
+ */
41
+ export declare function instanceOfMapFeatureCollection(value: object): value is MapFeatureCollection;
42
+ export declare function MapFeatureCollectionFromJSON(json: any): MapFeatureCollection;
43
+ export declare function MapFeatureCollectionFromJSONTyped(json: any, ignoreDiscriminator: boolean): MapFeatureCollection;
44
+ export declare function MapFeatureCollectionToJSON(json: any): MapFeatureCollection;
45
+ export declare function MapFeatureCollectionToJSONTyped(value?: MapFeatureCollection | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,46 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * C4R Aggregator API
5
+ * 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.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ import { MapFeatureFromJSON, MapFeatureToJSON, } from './MapFeature';
15
+ /**
16
+ * Check if a given object implements the MapFeatureCollection interface.
17
+ */
18
+ export function instanceOfMapFeatureCollection(value) {
19
+ return true;
20
+ }
21
+ export function MapFeatureCollectionFromJSON(json) {
22
+ return MapFeatureCollectionFromJSONTyped(json, false);
23
+ }
24
+ export function MapFeatureCollectionFromJSONTyped(json, ignoreDiscriminator) {
25
+ if (json == null) {
26
+ return json;
27
+ }
28
+ return {
29
+ 'type': json['type'] == null ? undefined : json['type'],
30
+ 'generatedAt': json['generated_at'] == null ? undefined : (new Date(json['generated_at'])),
31
+ 'features': json['features'] == null ? undefined : (json['features'].map(MapFeatureFromJSON)),
32
+ };
33
+ }
34
+ export function MapFeatureCollectionToJSON(json) {
35
+ return MapFeatureCollectionToJSONTyped(json, false);
36
+ }
37
+ export function MapFeatureCollectionToJSONTyped(value, ignoreDiscriminator = false) {
38
+ if (value == null) {
39
+ return value;
40
+ }
41
+ return {
42
+ 'type': value['type'],
43
+ 'generated_at': value['generatedAt'] == null ? value['generatedAt'] : value['generatedAt'].toISOString(),
44
+ 'features': value['features'] == null ? undefined : (value['features'].map(MapFeatureToJSON)),
45
+ };
46
+ }
@@ -0,0 +1,38 @@
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
+ * GeoJSON point geometry for a MapFeature.
14
+ * @export
15
+ * @interface MapFeatureGeometry
16
+ */
17
+ export interface MapFeatureGeometry {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof MapFeatureGeometry
22
+ */
23
+ type?: string;
24
+ /**
25
+ * [longitude, latitude] — GeoJSON order.
26
+ * @type {Array<number>}
27
+ * @memberof MapFeatureGeometry
28
+ */
29
+ coordinates?: Array<number>;
30
+ }
31
+ /**
32
+ * Check if a given object implements the MapFeatureGeometry interface.
33
+ */
34
+ export declare function instanceOfMapFeatureGeometry(value: object): value is MapFeatureGeometry;
35
+ export declare function MapFeatureGeometryFromJSON(json: any): MapFeatureGeometry;
36
+ export declare function MapFeatureGeometryFromJSONTyped(json: any, ignoreDiscriminator: boolean): MapFeatureGeometry;
37
+ export declare function MapFeatureGeometryToJSON(json: any): MapFeatureGeometry;
38
+ export declare function MapFeatureGeometryToJSONTyped(value?: MapFeatureGeometry | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,43 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * C4R Aggregator API
5
+ * 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.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * Check if a given object implements the MapFeatureGeometry interface.
16
+ */
17
+ export function instanceOfMapFeatureGeometry(value) {
18
+ return true;
19
+ }
20
+ export function MapFeatureGeometryFromJSON(json) {
21
+ return MapFeatureGeometryFromJSONTyped(json, false);
22
+ }
23
+ export function MapFeatureGeometryFromJSONTyped(json, ignoreDiscriminator) {
24
+ if (json == null) {
25
+ return json;
26
+ }
27
+ return {
28
+ 'type': json['type'] == null ? undefined : json['type'],
29
+ 'coordinates': json['coordinates'] == null ? undefined : json['coordinates'],
30
+ };
31
+ }
32
+ export function MapFeatureGeometryToJSON(json) {
33
+ return MapFeatureGeometryToJSONTyped(json, false);
34
+ }
35
+ export function MapFeatureGeometryToJSONTyped(value, ignoreDiscriminator = false) {
36
+ if (value == null) {
37
+ return value;
38
+ }
39
+ return {
40
+ 'type': value['type'],
41
+ 'coordinates': value['coordinates'],
42
+ };
43
+ }
@@ -0,0 +1,69 @@
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 { MapMeeting } from './MapMeeting';
13
+ /**
14
+ * Per-location properties on a MapFeature — name/city/state plus the list of active meetings there.
15
+ * @export
16
+ * @interface MapFeatureProperties
17
+ */
18
+ export interface MapFeatureProperties {
19
+ /**
20
+ * Location id.
21
+ * @type {number}
22
+ * @memberof MapFeatureProperties
23
+ */
24
+ id?: number;
25
+ /**
26
+ *
27
+ * @type {string}
28
+ * @memberof MapFeatureProperties
29
+ */
30
+ name?: string | null;
31
+ /**
32
+ *
33
+ * @type {string}
34
+ * @memberof MapFeatureProperties
35
+ */
36
+ city?: string | null;
37
+ /**
38
+ *
39
+ * @type {string}
40
+ * @memberof MapFeatureProperties
41
+ */
42
+ state?: string | null;
43
+ /**
44
+ *
45
+ * @type {number}
46
+ * @memberof MapFeatureProperties
47
+ */
48
+ meetingCount?: number;
49
+ /**
50
+ * Sorted unique program codes hosted at this location — clients can use this to overlay/toggle per-program views without scanning the meetings list.
51
+ * @type {Array<string>}
52
+ * @memberof MapFeatureProperties
53
+ */
54
+ programs?: Array<string>;
55
+ /**
56
+ *
57
+ * @type {Array<MapMeeting>}
58
+ * @memberof MapFeatureProperties
59
+ */
60
+ meetings?: Array<MapMeeting>;
61
+ }
62
+ /**
63
+ * Check if a given object implements the MapFeatureProperties interface.
64
+ */
65
+ export declare function instanceOfMapFeatureProperties(value: object): value is MapFeatureProperties;
66
+ export declare function MapFeaturePropertiesFromJSON(json: any): MapFeatureProperties;
67
+ export declare function MapFeaturePropertiesFromJSONTyped(json: any, ignoreDiscriminator: boolean): MapFeatureProperties;
68
+ export declare function MapFeaturePropertiesToJSON(json: any): MapFeatureProperties;
69
+ export declare function MapFeaturePropertiesToJSONTyped(value?: MapFeatureProperties | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,54 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * C4R Aggregator API
5
+ * 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.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ import { MapMeetingFromJSON, MapMeetingToJSON, } from './MapMeeting';
15
+ /**
16
+ * Check if a given object implements the MapFeatureProperties interface.
17
+ */
18
+ export function instanceOfMapFeatureProperties(value) {
19
+ return true;
20
+ }
21
+ export function MapFeaturePropertiesFromJSON(json) {
22
+ return MapFeaturePropertiesFromJSONTyped(json, false);
23
+ }
24
+ export function MapFeaturePropertiesFromJSONTyped(json, ignoreDiscriminator) {
25
+ if (json == null) {
26
+ return json;
27
+ }
28
+ return {
29
+ 'id': json['id'] == null ? undefined : json['id'],
30
+ 'name': json['name'] == null ? undefined : json['name'],
31
+ 'city': json['city'] == null ? undefined : json['city'],
32
+ 'state': json['state'] == null ? undefined : json['state'],
33
+ 'meetingCount': json['meeting_count'] == null ? undefined : json['meeting_count'],
34
+ 'programs': json['programs'] == null ? undefined : json['programs'],
35
+ 'meetings': json['meetings'] == null ? undefined : (json['meetings'].map(MapMeetingFromJSON)),
36
+ };
37
+ }
38
+ export function MapFeaturePropertiesToJSON(json) {
39
+ return MapFeaturePropertiesToJSONTyped(json, false);
40
+ }
41
+ export function MapFeaturePropertiesToJSONTyped(value, ignoreDiscriminator = false) {
42
+ if (value == null) {
43
+ return value;
44
+ }
45
+ return {
46
+ 'id': value['id'],
47
+ 'name': value['name'],
48
+ 'city': value['city'],
49
+ 'state': value['state'],
50
+ 'meeting_count': value['meetingCount'],
51
+ 'programs': value['programs'],
52
+ 'meetings': value['meetings'] == null ? undefined : (value['meetings'].map(MapMeetingToJSON)),
53
+ };
54
+ }
@@ -0,0 +1,50 @@
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
+ * Minimal meeting shape embedded in a MapFeature.properties.meetings array.
14
+ * @export
15
+ * @interface MapMeeting
16
+ */
17
+ export interface MapMeeting {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof MapMeeting
22
+ */
23
+ name?: string | null;
24
+ /**
25
+ *
26
+ * @type {number}
27
+ * @memberof MapMeeting
28
+ */
29
+ day?: number | null;
30
+ /**
31
+ *
32
+ * @type {string}
33
+ * @memberof MapMeeting
34
+ */
35
+ time?: string | null;
36
+ /**
37
+ *
38
+ * @type {string}
39
+ * @memberof MapMeeting
40
+ */
41
+ program?: string;
42
+ }
43
+ /**
44
+ * Check if a given object implements the MapMeeting interface.
45
+ */
46
+ export declare function instanceOfMapMeeting(value: object): value is MapMeeting;
47
+ export declare function MapMeetingFromJSON(json: any): MapMeeting;
48
+ export declare function MapMeetingFromJSONTyped(json: any, ignoreDiscriminator: boolean): MapMeeting;
49
+ export declare function MapMeetingToJSON(json: any): MapMeeting;
50
+ export declare function MapMeetingToJSONTyped(value?: MapMeeting | null, ignoreDiscriminator?: boolean): any;