@meadow-studio/platform 0.0.0-stage → 0.1.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 (79) hide show
  1. package/MeadowPlatform.podspec +17 -0
  2. package/Package.swift +23 -0
  3. package/README.md +147 -2
  4. package/android/build.gradle +42 -0
  5. package/android/src/main/AndroidManifest.xml +1 -0
  6. package/android/src/main/java/app/meadow/platform/MeadowAppRatingPlugin.java +38 -0
  7. package/dist/cli/commands.d.ts +74 -0
  8. package/dist/cli/commands.d.ts.map +1 -0
  9. package/dist/cli/commands.js +1062 -0
  10. package/dist/cli/commands.js.map +1 -0
  11. package/dist/cli/config.d.ts +123 -0
  12. package/dist/cli/config.d.ts.map +1 -0
  13. package/dist/cli/config.js +428 -0
  14. package/dist/cli/config.js.map +1 -0
  15. package/dist/cli/meadow.d.ts +8 -0
  16. package/dist/cli/meadow.d.ts.map +1 -0
  17. package/dist/cli/meadow.js +463 -0
  18. package/dist/cli/meadow.js.map +1 -0
  19. package/dist/cli/recipes.d.ts +10 -0
  20. package/dist/cli/recipes.d.ts.map +1 -0
  21. package/dist/cli/recipes.js +575 -0
  22. package/dist/cli/recipes.js.map +1 -0
  23. package/dist/cli/sync.d.ts +14 -0
  24. package/dist/cli/sync.d.ts.map +1 -0
  25. package/dist/cli/sync.js +310 -0
  26. package/dist/cli/sync.js.map +1 -0
  27. package/dist/cli/templates.d.ts +27 -0
  28. package/dist/cli/templates.d.ts.map +1 -0
  29. package/dist/cli/templates.js +1246 -0
  30. package/dist/cli/templates.js.map +1 -0
  31. package/dist/cli/website.d.ts +5 -0
  32. package/dist/cli/website.d.ts.map +1 -0
  33. package/dist/cli/website.js +262 -0
  34. package/dist/cli/website.js.map +1 -0
  35. package/dist/index.d.ts +5 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +5 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/notifications.d.ts +119 -0
  40. package/dist/notifications.d.ts.map +1 -0
  41. package/dist/notifications.js +320 -0
  42. package/dist/notifications.js.map +1 -0
  43. package/dist/platform.d.ts +163 -0
  44. package/dist/platform.d.ts.map +1 -0
  45. package/dist/platform.js +623 -0
  46. package/dist/platform.js.map +1 -0
  47. package/dist/purchases.d.ts +88 -0
  48. package/dist/purchases.d.ts.map +1 -0
  49. package/dist/purchases.js +296 -0
  50. package/dist/purchases.js.map +1 -0
  51. package/dist/ui/app-build.component.d.ts +18 -0
  52. package/dist/ui/app-build.component.d.ts.map +1 -0
  53. package/dist/ui/app-build.component.js +56 -0
  54. package/dist/ui/app-build.component.js.map +1 -0
  55. package/dist/ui/app-build.model.d.ts +11 -0
  56. package/dist/ui/app-build.model.d.ts.map +1 -0
  57. package/dist/ui/app-build.model.js +18 -0
  58. package/dist/ui/app-build.model.js.map +1 -0
  59. package/dist/ui/app-links.component.d.ts +14 -0
  60. package/dist/ui/app-links.component.d.ts.map +1 -0
  61. package/dist/ui/app-links.component.js +77 -0
  62. package/dist/ui/app-links.component.js.map +1 -0
  63. package/dist/ui/app-links.model.d.ts +18 -0
  64. package/dist/ui/app-links.model.d.ts.map +1 -0
  65. package/dist/ui/app-links.model.js +17 -0
  66. package/dist/ui/app-links.model.js.map +1 -0
  67. package/dist/ui/index.d.ts +5 -0
  68. package/dist/ui/index.d.ts.map +1 -0
  69. package/dist/ui/index.js +5 -0
  70. package/dist/ui/index.js.map +1 -0
  71. package/docs/CLI.md +376 -0
  72. package/docs/PLATFORM_GUIDE.md +422 -0
  73. package/docs/POC_FINDINGS.md +218 -0
  74. package/docs/PROJECT_BRIEF.md +501 -0
  75. package/docs/RELEASING.md +49 -0
  76. package/docs/V0.1_PATH.md +310 -0
  77. package/ios/Sources/MeadowPlatformPlugin/MeadowAppRatingPlugin.swift +39 -0
  78. package/package.json +89 -4
  79. package/schema/meadow-config.schema.json +250 -0
@@ -0,0 +1,250 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://meadow.app/schemas/meadow-config.schema.json",
4
+ "title": "Meadow application configuration",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "version",
9
+ "app",
10
+ "links",
11
+ "store",
12
+ "services",
13
+ "environments",
14
+ "analytics",
15
+ "ci",
16
+ "release"
17
+ ],
18
+ "properties": {
19
+ "$schema": { "type": "string" },
20
+ "version": { "const": 2 },
21
+ "app": {
22
+ "type": "object",
23
+ "additionalProperties": false,
24
+ "required": [
25
+ "name",
26
+ "slug",
27
+ "description",
28
+ "identifiers",
29
+ "platforms",
30
+ "orientation",
31
+ "devices"
32
+ ],
33
+ "properties": {
34
+ "name": { "type": "string", "minLength": 1 },
35
+ "slug": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$" },
36
+ "description": { "type": "string" },
37
+ "identifiers": {
38
+ "type": "object",
39
+ "additionalProperties": false,
40
+ "required": ["ios", "android"],
41
+ "properties": {
42
+ "ios": { "$ref": "#/$defs/applicationId" },
43
+ "android": { "$ref": "#/$defs/applicationId" }
44
+ }
45
+ },
46
+ "platforms": {
47
+ "type": "array",
48
+ "minItems": 1,
49
+ "uniqueItems": true,
50
+ "items": { "enum": ["ios", "android"] }
51
+ },
52
+ "orientation": { "enum": ["any", "portrait", "landscape"] },
53
+ "devices": {
54
+ "type": "array",
55
+ "minItems": 1,
56
+ "uniqueItems": true,
57
+ "items": { "enum": ["phone", "tablet"] }
58
+ }
59
+ }
60
+ },
61
+ "links": {
62
+ "type": "object",
63
+ "additionalProperties": false,
64
+ "properties": {
65
+ "supportEmail": { "type": "string" },
66
+ "supportUrl": { "$ref": "#/$defs/url" },
67
+ "privacyUrl": { "$ref": "#/$defs/url" },
68
+ "termsUrl": { "$ref": "#/$defs/url" },
69
+ "websiteUrl": { "$ref": "#/$defs/url" }
70
+ }
71
+ },
72
+ "store": {
73
+ "type": "object",
74
+ "additionalProperties": false,
75
+ "properties": {
76
+ "appleAppId": { "type": "string", "minLength": 1 },
77
+ "appStoreUrl": { "$ref": "#/$defs/url" },
78
+ "playStoreUrl": { "$ref": "#/$defs/url" }
79
+ }
80
+ },
81
+ "services": {
82
+ "type": "object",
83
+ "additionalProperties": false,
84
+ "required": ["firebase", "revenuecat", "supabase", "localData", "notifications"],
85
+ "properties": {
86
+ "firebase": {
87
+ "type": "object",
88
+ "additionalProperties": false,
89
+ "required": ["enabled", "configured", "analyticsConsent", "crashlyticsConsent"],
90
+ "properties": {
91
+ "enabled": { "type": "boolean" },
92
+ "configured": { "type": "boolean" },
93
+ "analyticsConsent": { "const": "explicit" },
94
+ "crashlyticsConsent": { "const": "explicit" }
95
+ }
96
+ },
97
+ "revenuecat": {
98
+ "type": "object",
99
+ "additionalProperties": false,
100
+ "required": ["enabled", "configured", "mode", "productIds"],
101
+ "properties": {
102
+ "enabled": { "type": "boolean" },
103
+ "configured": { "type": "boolean" },
104
+ "mode": {
105
+ "enum": ["none", "subscription", "lifetime", "subscription-and-lifetime"]
106
+ },
107
+ "entitlementId": { "type": "string" },
108
+ "offeringId": { "type": "string" },
109
+ "productIds": {
110
+ "type": "array",
111
+ "uniqueItems": true,
112
+ "items": { "type": "string", "minLength": 1 }
113
+ }
114
+ }
115
+ },
116
+ "supabase": {
117
+ "type": "object",
118
+ "additionalProperties": false,
119
+ "required": [
120
+ "enabled",
121
+ "configured",
122
+ "auth",
123
+ "storage",
124
+ "urlVariable",
125
+ "publishableKeyVariable"
126
+ ],
127
+ "properties": {
128
+ "enabled": { "type": "boolean" },
129
+ "configured": { "type": "boolean" },
130
+ "auth": { "enum": ["none", "email-otp"] },
131
+ "storage": { "type": "boolean" },
132
+ "projectRef": { "type": "string", "minLength": 1 },
133
+ "urlVariable": { "$ref": "#/$defs/environmentVariable" },
134
+ "publishableKeyVariable": { "$ref": "#/$defs/environmentVariable" }
135
+ }
136
+ },
137
+ "localData": {
138
+ "type": "object",
139
+ "additionalProperties": false,
140
+ "required": ["enabled", "configured", "databaseVersion"],
141
+ "properties": {
142
+ "enabled": { "type": "boolean" },
143
+ "configured": { "type": "boolean" },
144
+ "databaseVersion": { "type": "integer", "minimum": 0 }
145
+ }
146
+ },
147
+ "notifications": {
148
+ "type": "object",
149
+ "additionalProperties": false,
150
+ "required": ["enabled", "configured"],
151
+ "properties": {
152
+ "enabled": { "type": "boolean" },
153
+ "configured": { "type": "boolean" }
154
+ }
155
+ }
156
+ }
157
+ },
158
+ "environments": {
159
+ "type": "object",
160
+ "additionalProperties": false,
161
+ "required": ["development", "test", "production"],
162
+ "properties": {
163
+ "development": { "$ref": "#/$defs/environment" },
164
+ "test": { "$ref": "#/$defs/environment" },
165
+ "production": { "$ref": "#/$defs/environment" }
166
+ }
167
+ },
168
+ "analytics": {
169
+ "type": "object",
170
+ "additionalProperties": false,
171
+ "required": ["events"],
172
+ "properties": {
173
+ "events": {
174
+ "type": "object",
175
+ "propertyNames": { "pattern": "^[a-z][a-z0-9_]{0,39}$" },
176
+ "additionalProperties": { "$ref": "#/$defs/analyticsEvent" }
177
+ }
178
+ }
179
+ },
180
+ "ci": {
181
+ "type": "object",
182
+ "additionalProperties": false,
183
+ "required": ["provider", "visualViewports"],
184
+ "properties": {
185
+ "provider": { "const": "github" },
186
+ "visualViewports": {
187
+ "type": "array",
188
+ "minItems": 1,
189
+ "uniqueItems": true,
190
+ "items": { "enum": ["phone", "tablet"] }
191
+ }
192
+ }
193
+ },
194
+ "release": {
195
+ "type": "object",
196
+ "additionalProperties": false,
197
+ "required": ["version", "build", "channel"],
198
+ "properties": {
199
+ "version": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$" },
200
+ "build": { "type": "integer", "minimum": 1 },
201
+ "channel": { "enum": ["development", "test", "production"] }
202
+ }
203
+ }
204
+ },
205
+ "$defs": {
206
+ "applicationId": {
207
+ "type": "string",
208
+ "pattern": "^[A-Za-z][A-Za-z0-9_]*(?:\\.[A-Za-z][A-Za-z0-9_]*)+$"
209
+ },
210
+ "url": { "type": "string", "format": "uri", "pattern": "^https?://" },
211
+ "environmentVariable": { "type": "string", "pattern": "^[A-Z][A-Z0-9_]*$" },
212
+ "environment": {
213
+ "type": "object",
214
+ "additionalProperties": false,
215
+ "required": ["runtime", "analytics", "crashlytics"],
216
+ "properties": {
217
+ "runtime": { "enum": ["development", "device", "production"] },
218
+ "analytics": { "type": "boolean" },
219
+ "crashlytics": { "type": "boolean" }
220
+ }
221
+ },
222
+ "analyticsEvent": {
223
+ "type": "object",
224
+ "additionalProperties": false,
225
+ "required": ["properties"],
226
+ "properties": {
227
+ "properties": {
228
+ "type": "object",
229
+ "propertyNames": { "pattern": "^[a-z][a-z0-9_]{0,39}$" },
230
+ "additionalProperties": { "$ref": "#/$defs/analyticsProperty" }
231
+ }
232
+ }
233
+ },
234
+ "analyticsProperty": {
235
+ "type": "object",
236
+ "additionalProperties": false,
237
+ "required": ["type", "required"],
238
+ "properties": {
239
+ "type": { "enum": ["string", "number", "integer", "boolean"] },
240
+ "required": { "type": "boolean" },
241
+ "values": {
242
+ "type": "array",
243
+ "minItems": 1,
244
+ "uniqueItems": true,
245
+ "items": { "type": "string", "minLength": 1 }
246
+ }
247
+ }
248
+ }
249
+ }
250
+ }