@milkinteractive/react-native-age-range 1.0.6 → 1.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.
- package/ios/StoreAgeSignalsNativeModules.swift +11 -46
- package/lib/commonjs/index.js +31 -6
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +31 -6
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +37 -6
|
@@ -178,7 +178,7 @@ public class StoreAgeSignalsNativeModulesSwift: NSObject {
|
|
|
178
178
|
reject: @escaping RCTPromiseRejectBlock
|
|
179
179
|
) {
|
|
180
180
|
#if compiler(>=6.0) && canImport(PermissionKit)
|
|
181
|
-
if #available(iOS 26.
|
|
181
|
+
if #available(iOS 26.2, *) {
|
|
182
182
|
Task { @MainActor in
|
|
183
183
|
do {
|
|
184
184
|
guard let viewController = self.topViewController() else {
|
|
@@ -186,10 +186,10 @@ public class StoreAgeSignalsNativeModulesSwift: NSObject {
|
|
|
186
186
|
return
|
|
187
187
|
}
|
|
188
188
|
|
|
189
|
-
var topic = SignificantAppUpdateTopic()
|
|
189
|
+
var topic = SignificantAppUpdateTopic(description: "App update requires approval")
|
|
190
190
|
var question = PermissionQuestion(significantAppUpdateTopic: topic)
|
|
191
191
|
|
|
192
|
-
try await AskCenter.
|
|
192
|
+
try await AskCenter.shared.ask(question, in: viewController)
|
|
193
193
|
|
|
194
194
|
// If we get here without error, the request was shown successfully
|
|
195
195
|
// The actual approval status is delivered asynchronously via updates
|
|
@@ -233,8 +233,8 @@ public class StoreAgeSignalsNativeModulesSwift: NSObject {
|
|
|
233
233
|
return
|
|
234
234
|
}
|
|
235
235
|
|
|
236
|
-
// Parse contacts from JS
|
|
237
|
-
var
|
|
236
|
+
// Parse contacts from JS into CommunicationHandles
|
|
237
|
+
var handlesList: [CommunicationHandle] = []
|
|
238
238
|
for contact in contacts {
|
|
239
239
|
guard let contactDict = contact as? [String: Any],
|
|
240
240
|
let handleValue = contactDict["handle"] as? String,
|
|
@@ -246,57 +246,22 @@ public class StoreAgeSignalsNativeModulesSwift: NSObject {
|
|
|
246
246
|
switch handleKindStr {
|
|
247
247
|
case "phoneNumber":
|
|
248
248
|
handleKind = .phoneNumber
|
|
249
|
-
case "
|
|
250
|
-
handleKind = .
|
|
249
|
+
case "emailAddress":
|
|
250
|
+
handleKind = .emailAddress
|
|
251
251
|
default:
|
|
252
252
|
handleKind = .custom
|
|
253
253
|
}
|
|
254
254
|
|
|
255
255
|
let handle = CommunicationHandle(value: handleValue, kind: handleKind)
|
|
256
|
-
|
|
257
|
-
// Optional display name
|
|
258
|
-
var nameComponents: PersonNameComponents? = nil
|
|
259
|
-
if let displayName = contactDict["displayName"] as? String {
|
|
260
|
-
var components = PersonNameComponents()
|
|
261
|
-
components.nickname = displayName
|
|
262
|
-
nameComponents = components
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
let personInfo = PersonInformation(handle: handle, nameComponents: nameComponents)
|
|
266
|
-
personInfoList.append(personInfo)
|
|
256
|
+
handlesList.append(handle)
|
|
267
257
|
}
|
|
268
258
|
|
|
269
|
-
guard !
|
|
259
|
+
guard !handlesList.isEmpty else {
|
|
270
260
|
reject("ERR_IOS_COMM_PERMISSION", "No valid contacts provided", nil)
|
|
271
261
|
return
|
|
272
262
|
}
|
|
273
263
|
|
|
274
|
-
|
|
275
|
-
var communicationActions: Set<CommunicationTopic.Action> = []
|
|
276
|
-
for action in actions {
|
|
277
|
-
if let actionStr = action as? String {
|
|
278
|
-
switch actionStr {
|
|
279
|
-
case "message":
|
|
280
|
-
communicationActions.insert(.message)
|
|
281
|
-
case "call":
|
|
282
|
-
communicationActions.insert(.call)
|
|
283
|
-
case "video":
|
|
284
|
-
communicationActions.insert(.video)
|
|
285
|
-
default:
|
|
286
|
-
break
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
// Default to message if no actions specified
|
|
292
|
-
if communicationActions.isEmpty {
|
|
293
|
-
communicationActions.insert(.message)
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
var topic = CommunicationTopic(personInformation: personInfoList)
|
|
297
|
-
topic.actions = communicationActions
|
|
298
|
-
|
|
299
|
-
var question = PermissionQuestion(communicationTopic: topic)
|
|
264
|
+
let question = PermissionQuestion(handles: handlesList)
|
|
300
265
|
|
|
301
266
|
try await CommunicationLimits.current.ask(question, in: viewController)
|
|
302
267
|
|
|
@@ -349,7 +314,7 @@ public class StoreAgeSignalsNativeModulesSwift: NSObject {
|
|
|
349
314
|
case "phoneNumber":
|
|
350
315
|
handleKind = .phoneNumber
|
|
351
316
|
case "email":
|
|
352
|
-
handleKind = .
|
|
317
|
+
handleKind = .custom
|
|
353
318
|
default:
|
|
354
319
|
handleKind = .custom
|
|
355
320
|
}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -107,7 +107,7 @@ function getAndroidPlayAgeRangeStatus(config) {
|
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
// Minimum iOS version required for DeclaredAgeRange API
|
|
110
|
-
const IOS_MIN_VERSION_DECLARED_AGE_RANGE = 26;
|
|
110
|
+
const IOS_MIN_VERSION_DECLARED_AGE_RANGE = 26.0;
|
|
111
111
|
|
|
112
112
|
/**
|
|
113
113
|
* Requests age range declaration from iOS Declared Age Range API.
|
|
@@ -130,7 +130,7 @@ function requestIOSDeclaredAgeRange(firstThresholdAge, secondThresholdAge, third
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
// Early return for iOS versions below 26 to prevent native bridge errors
|
|
133
|
-
const iosVersion =
|
|
133
|
+
const iosVersion = parseFloat(String(_reactNative.Platform.Version));
|
|
134
134
|
if (iosVersion < IOS_MIN_VERSION_DECLARED_AGE_RANGE) {
|
|
135
135
|
return Promise.resolve({
|
|
136
136
|
status: null,
|
|
@@ -145,7 +145,7 @@ function requestIOSDeclaredAgeRange(firstThresholdAge, secondThresholdAge, third
|
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
// Minimum iOS version required for isEligibleForAgeFeatures API
|
|
148
|
-
const IOS_MIN_VERSION_ELIGIBLE_CHECK = 26;
|
|
148
|
+
const IOS_MIN_VERSION_ELIGIBLE_CHECK = 26.2;
|
|
149
149
|
|
|
150
150
|
/**
|
|
151
151
|
* Checks if the current user is eligible for age verification features on iOS.
|
|
@@ -163,7 +163,7 @@ function isIOSEligibleForAgeFeatures() {
|
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
// Early return for iOS versions below 26 to prevent native bridge errors
|
|
166
|
-
const iosVersion =
|
|
166
|
+
const iosVersion = parseFloat(String(_reactNative.Platform.Version));
|
|
167
167
|
if (iosVersion < IOS_MIN_VERSION_ELIGIBLE_CHECK) {
|
|
168
168
|
return Promise.resolve({
|
|
169
169
|
isEligible: false,
|
|
@@ -190,7 +190,10 @@ function isAndroidEligibleForAgeFeatures() {
|
|
|
190
190
|
return StoreAgeSignalsNativeModules.isEligibleForAgeFeatures();
|
|
191
191
|
}
|
|
192
192
|
|
|
193
|
-
// ========== PERMISSIONKIT FUNCTIONS (iOS 26+) ==========
|
|
193
|
+
// ========== PERMISSIONKIT FUNCTIONS (iOS 26.2+) ==========
|
|
194
|
+
|
|
195
|
+
// Minimum iOS version required for PermissionKit APIs
|
|
196
|
+
const IOS_MIN_VERSION_PERMISSIONKIT = 26.2;
|
|
194
197
|
|
|
195
198
|
/**
|
|
196
199
|
* Requests parental approval for significant app changes (iOS PermissionKit).
|
|
@@ -202,7 +205,7 @@ function isAndroidEligibleForAgeFeatures() {
|
|
|
202
205
|
* The parent/guardian will receive a notification via Messages.
|
|
203
206
|
*
|
|
204
207
|
* @platform ios
|
|
205
|
-
* @requires iOS 26.
|
|
208
|
+
* @requires iOS 26.2+
|
|
206
209
|
* @returns Promise<SignificantChangeResult> - Contains status ('pending', 'approved', 'denied') and error
|
|
207
210
|
*
|
|
208
211
|
* @example
|
|
@@ -216,6 +219,7 @@ function isAndroidEligibleForAgeFeatures() {
|
|
|
216
219
|
* }
|
|
217
220
|
* ```
|
|
218
221
|
*/
|
|
222
|
+
|
|
219
223
|
function requestIOSSignificantChangeApproval() {
|
|
220
224
|
if (_reactNative.Platform.OS !== 'ios') {
|
|
221
225
|
return Promise.resolve({
|
|
@@ -223,6 +227,13 @@ function requestIOSSignificantChangeApproval() {
|
|
|
223
227
|
error: 'This method is only available on iOS'
|
|
224
228
|
});
|
|
225
229
|
}
|
|
230
|
+
const iosVersion = parseFloat(String(_reactNative.Platform.Version));
|
|
231
|
+
if (iosVersion < IOS_MIN_VERSION_PERMISSIONKIT) {
|
|
232
|
+
return Promise.resolve({
|
|
233
|
+
status: null,
|
|
234
|
+
error: `Requires iOS ${IOS_MIN_VERSION_PERMISSIONKIT}+. Current version: iOS ${iosVersion}`
|
|
235
|
+
});
|
|
236
|
+
}
|
|
226
237
|
return StoreAgeSignalsNativeModules.requestSignificantChangeApproval();
|
|
227
238
|
}
|
|
228
239
|
|
|
@@ -259,6 +270,13 @@ function requestIOSCommunicationPermission(contacts, actions) {
|
|
|
259
270
|
error: 'This method is only available on iOS'
|
|
260
271
|
});
|
|
261
272
|
}
|
|
273
|
+
const iosVersion = parseFloat(String(_reactNative.Platform.Version));
|
|
274
|
+
if (iosVersion < IOS_MIN_VERSION_PERMISSIONKIT) {
|
|
275
|
+
return Promise.resolve({
|
|
276
|
+
granted: false,
|
|
277
|
+
error: `Requires iOS ${IOS_MIN_VERSION_PERMISSIONKIT}+. Current version: iOS ${iosVersion}`
|
|
278
|
+
});
|
|
279
|
+
}
|
|
262
280
|
return StoreAgeSignalsNativeModules.requestCommunicationPermission(contacts, actions || ['message']);
|
|
263
281
|
}
|
|
264
282
|
|
|
@@ -297,6 +315,13 @@ function getIOSKnownCommunicationHandles(handles) {
|
|
|
297
315
|
error: 'This method is only available on iOS'
|
|
298
316
|
});
|
|
299
317
|
}
|
|
318
|
+
const iosVersion = parseFloat(String(_reactNative.Platform.Version));
|
|
319
|
+
if (iosVersion < IOS_MIN_VERSION_PERMISSIONKIT) {
|
|
320
|
+
return Promise.resolve({
|
|
321
|
+
knownHandles: [],
|
|
322
|
+
error: `Requires iOS ${IOS_MIN_VERSION_PERMISSIONKIT}+. Current version: iOS ${iosVersion}`
|
|
323
|
+
});
|
|
324
|
+
}
|
|
300
325
|
return StoreAgeSignalsNativeModules.getKnownCommunicationHandles(handles);
|
|
301
326
|
}
|
|
302
327
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","StoreAgeSignalsNativeModules","NativeModules","Proxy","get","Error","getAndroidPlayAgeRangeStatus","config","OS","Promise","resolve","installId","userStatus","error","IOS_MIN_VERSION_DECLARED_AGE_RANGE","requestIOSDeclaredAgeRange","firstThresholdAge","secondThresholdAge","thirdThresholdAge","status","lowerBound","upperBound","ageRangeDeclaration","parentalControls","iosVersion","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","StoreAgeSignalsNativeModules","NativeModules","Proxy","get","Error","getAndroidPlayAgeRangeStatus","config","OS","Promise","resolve","installId","userStatus","error","IOS_MIN_VERSION_DECLARED_AGE_RANGE","requestIOSDeclaredAgeRange","firstThresholdAge","secondThresholdAge","thirdThresholdAge","status","lowerBound","upperBound","ageRangeDeclaration","parentalControls","iosVersion","parseFloat","String","Version","IOS_MIN_VERSION_ELIGIBLE_CHECK","isIOSEligibleForAgeFeatures","isEligible","isEligibleForAgeFeatures","isAndroidEligibleForAgeFeatures","IOS_MIN_VERSION_PERMISSIONKIT","requestIOSSignificantChangeApproval","requestSignificantChangeApproval","requestIOSCommunicationPermission","contacts","actions","granted","requestCommunicationPermission","getIOSKnownCommunicationHandles","handles","knownHandles","getKnownCommunicationHandles"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -97,7 +97,7 @@ export function getAndroidPlayAgeRangeStatus(config) {
|
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
// Minimum iOS version required for DeclaredAgeRange API
|
|
100
|
-
const IOS_MIN_VERSION_DECLARED_AGE_RANGE = 26;
|
|
100
|
+
const IOS_MIN_VERSION_DECLARED_AGE_RANGE = 26.0;
|
|
101
101
|
|
|
102
102
|
/**
|
|
103
103
|
* Requests age range declaration from iOS Declared Age Range API.
|
|
@@ -120,7 +120,7 @@ export function requestIOSDeclaredAgeRange(firstThresholdAge, secondThresholdAge
|
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
// Early return for iOS versions below 26 to prevent native bridge errors
|
|
123
|
-
const iosVersion =
|
|
123
|
+
const iosVersion = parseFloat(String(Platform.Version));
|
|
124
124
|
if (iosVersion < IOS_MIN_VERSION_DECLARED_AGE_RANGE) {
|
|
125
125
|
return Promise.resolve({
|
|
126
126
|
status: null,
|
|
@@ -135,7 +135,7 @@ export function requestIOSDeclaredAgeRange(firstThresholdAge, secondThresholdAge
|
|
|
135
135
|
}
|
|
136
136
|
|
|
137
137
|
// Minimum iOS version required for isEligibleForAgeFeatures API
|
|
138
|
-
const IOS_MIN_VERSION_ELIGIBLE_CHECK = 26;
|
|
138
|
+
const IOS_MIN_VERSION_ELIGIBLE_CHECK = 26.2;
|
|
139
139
|
|
|
140
140
|
/**
|
|
141
141
|
* Checks if the current user is eligible for age verification features on iOS.
|
|
@@ -153,7 +153,7 @@ export function isIOSEligibleForAgeFeatures() {
|
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
// Early return for iOS versions below 26 to prevent native bridge errors
|
|
156
|
-
const iosVersion =
|
|
156
|
+
const iosVersion = parseFloat(String(Platform.Version));
|
|
157
157
|
if (iosVersion < IOS_MIN_VERSION_ELIGIBLE_CHECK) {
|
|
158
158
|
return Promise.resolve({
|
|
159
159
|
isEligible: false,
|
|
@@ -180,7 +180,10 @@ export function isAndroidEligibleForAgeFeatures() {
|
|
|
180
180
|
return StoreAgeSignalsNativeModules.isEligibleForAgeFeatures();
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
// ========== PERMISSIONKIT FUNCTIONS (iOS 26+) ==========
|
|
183
|
+
// ========== PERMISSIONKIT FUNCTIONS (iOS 26.2+) ==========
|
|
184
|
+
|
|
185
|
+
// Minimum iOS version required for PermissionKit APIs
|
|
186
|
+
const IOS_MIN_VERSION_PERMISSIONKIT = 26.2;
|
|
184
187
|
|
|
185
188
|
/**
|
|
186
189
|
* Requests parental approval for significant app changes (iOS PermissionKit).
|
|
@@ -192,7 +195,7 @@ export function isAndroidEligibleForAgeFeatures() {
|
|
|
192
195
|
* The parent/guardian will receive a notification via Messages.
|
|
193
196
|
*
|
|
194
197
|
* @platform ios
|
|
195
|
-
* @requires iOS 26.
|
|
198
|
+
* @requires iOS 26.2+
|
|
196
199
|
* @returns Promise<SignificantChangeResult> - Contains status ('pending', 'approved', 'denied') and error
|
|
197
200
|
*
|
|
198
201
|
* @example
|
|
@@ -206,6 +209,7 @@ export function isAndroidEligibleForAgeFeatures() {
|
|
|
206
209
|
* }
|
|
207
210
|
* ```
|
|
208
211
|
*/
|
|
212
|
+
|
|
209
213
|
export function requestIOSSignificantChangeApproval() {
|
|
210
214
|
if (Platform.OS !== 'ios') {
|
|
211
215
|
return Promise.resolve({
|
|
@@ -213,6 +217,13 @@ export function requestIOSSignificantChangeApproval() {
|
|
|
213
217
|
error: 'This method is only available on iOS'
|
|
214
218
|
});
|
|
215
219
|
}
|
|
220
|
+
const iosVersion = parseFloat(String(Platform.Version));
|
|
221
|
+
if (iosVersion < IOS_MIN_VERSION_PERMISSIONKIT) {
|
|
222
|
+
return Promise.resolve({
|
|
223
|
+
status: null,
|
|
224
|
+
error: `Requires iOS ${IOS_MIN_VERSION_PERMISSIONKIT}+. Current version: iOS ${iosVersion}`
|
|
225
|
+
});
|
|
226
|
+
}
|
|
216
227
|
return StoreAgeSignalsNativeModules.requestSignificantChangeApproval();
|
|
217
228
|
}
|
|
218
229
|
|
|
@@ -249,6 +260,13 @@ export function requestIOSCommunicationPermission(contacts, actions) {
|
|
|
249
260
|
error: 'This method is only available on iOS'
|
|
250
261
|
});
|
|
251
262
|
}
|
|
263
|
+
const iosVersion = parseFloat(String(Platform.Version));
|
|
264
|
+
if (iosVersion < IOS_MIN_VERSION_PERMISSIONKIT) {
|
|
265
|
+
return Promise.resolve({
|
|
266
|
+
granted: false,
|
|
267
|
+
error: `Requires iOS ${IOS_MIN_VERSION_PERMISSIONKIT}+. Current version: iOS ${iosVersion}`
|
|
268
|
+
});
|
|
269
|
+
}
|
|
252
270
|
return StoreAgeSignalsNativeModules.requestCommunicationPermission(contacts, actions || ['message']);
|
|
253
271
|
}
|
|
254
272
|
|
|
@@ -287,6 +305,13 @@ export function getIOSKnownCommunicationHandles(handles) {
|
|
|
287
305
|
error: 'This method is only available on iOS'
|
|
288
306
|
});
|
|
289
307
|
}
|
|
308
|
+
const iosVersion = parseFloat(String(Platform.Version));
|
|
309
|
+
if (iosVersion < IOS_MIN_VERSION_PERMISSIONKIT) {
|
|
310
|
+
return Promise.resolve({
|
|
311
|
+
knownHandles: [],
|
|
312
|
+
error: `Requires iOS ${IOS_MIN_VERSION_PERMISSIONKIT}+. Current version: iOS ${iosVersion}`
|
|
313
|
+
});
|
|
314
|
+
}
|
|
290
315
|
return StoreAgeSignalsNativeModules.getKnownCommunicationHandles(handles);
|
|
291
316
|
}
|
|
292
317
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","StoreAgeSignalsNativeModules","Proxy","get","Error","getAndroidPlayAgeRangeStatus","config","OS","Promise","resolve","installId","userStatus","error","IOS_MIN_VERSION_DECLARED_AGE_RANGE","requestIOSDeclaredAgeRange","firstThresholdAge","secondThresholdAge","thirdThresholdAge","status","lowerBound","upperBound","ageRangeDeclaration","parentalControls","iosVersion","
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","StoreAgeSignalsNativeModules","Proxy","get","Error","getAndroidPlayAgeRangeStatus","config","OS","Promise","resolve","installId","userStatus","error","IOS_MIN_VERSION_DECLARED_AGE_RANGE","requestIOSDeclaredAgeRange","firstThresholdAge","secondThresholdAge","thirdThresholdAge","status","lowerBound","upperBound","ageRangeDeclaration","parentalControls","iosVersion","parseFloat","String","Version","IOS_MIN_VERSION_ELIGIBLE_CHECK","isIOSEligibleForAgeFeatures","isEligible","isEligibleForAgeFeatures","isAndroidEligibleForAgeFeatures","IOS_MIN_VERSION_PERMISSIONKIT","requestIOSSignificantChangeApproval","requestSignificantChangeApproval","requestIOSCommunicationPermission","contacts","actions","granted","requestCommunicationPermission","getIOSKnownCommunicationHandles","handles","knownHandles","getKnownCommunicationHandles"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -201,7 +201,7 @@ export declare function isAndroidEligibleForAgeFeatures(): Promise<DeclaredAgeEl
|
|
|
201
201
|
* The parent/guardian will receive a notification via Messages.
|
|
202
202
|
*
|
|
203
203
|
* @platform ios
|
|
204
|
-
* @requires iOS 26.
|
|
204
|
+
* @requires iOS 26.2+
|
|
205
205
|
* @returns Promise<SignificantChangeResult> - Contains status ('pending', 'approved', 'denied') and error
|
|
206
206
|
*
|
|
207
207
|
* @example
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAqBA;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GACzB,UAAU,GACV,WAAW,GACX,4BAA4B,GAC5B,2BAA2B,GAC3B,SAAS,CAAC;AAEd,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACrC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAID;;;;;;;;;;GAUG;AACH,MAAM,MAAM,uBAAuB,GAC/B,cAAc,GACd,kBAAkB,GAClB,sBAAsB,GACtB,8BAA8B,GAC9B,qBAAqB,GACrB,6BAA6B,GAC7B,gBAAgB,GAChB,wBAAwB,GACxB,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gEAAgE;IAChE,oCAAoC,CAAC,EAAE,OAAO,CAAC;CAChD;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC;IACtC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACrD;;OAEG;IACH,gBAAgB,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC/C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAGD,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAID;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,uBAAuB,CAAC;IAChC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,UAAU,EAAE,uBAAuB,CAAC;IACpC,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CAWnC;AAKD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,iBAAiB,EAAE,MAAM,EACzB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,sBAAsB,CAAC,CA8BjC;AAKD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CAAC,4BAA4B,CAAC,CAkBnF;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,IAAI,OAAO,CAAC,4BAA4B,CAAC,CAQvF;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milkinteractive/react-native-age-range",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "A React Native Native Module (Legacy Architecture) that provides access to store-level age signals, including Android Play Age Range and iOS Declared Age, to assist with state-level age verification compliance (e.g., Texas).",
|
|
5
5
|
"source": "./src/index.tsx",
|
|
6
6
|
"main": "./lib/commonjs/index.js",
|
package/src/index.tsx
CHANGED
|
@@ -235,7 +235,7 @@ export function getAndroidPlayAgeRangeStatus(
|
|
|
235
235
|
}
|
|
236
236
|
|
|
237
237
|
// Minimum iOS version required for DeclaredAgeRange API
|
|
238
|
-
const IOS_MIN_VERSION_DECLARED_AGE_RANGE = 26;
|
|
238
|
+
const IOS_MIN_VERSION_DECLARED_AGE_RANGE = 26.0;
|
|
239
239
|
|
|
240
240
|
/**
|
|
241
241
|
* Requests age range declaration from iOS Declared Age Range API.
|
|
@@ -262,7 +262,7 @@ export function requestIOSDeclaredAgeRange(
|
|
|
262
262
|
}
|
|
263
263
|
|
|
264
264
|
// Early return for iOS versions below 26 to prevent native bridge errors
|
|
265
|
-
const iosVersion =
|
|
265
|
+
const iosVersion = parseFloat(String(Platform.Version));
|
|
266
266
|
if (iosVersion < IOS_MIN_VERSION_DECLARED_AGE_RANGE) {
|
|
267
267
|
return Promise.resolve({
|
|
268
268
|
status: null,
|
|
@@ -282,7 +282,7 @@ export function requestIOSDeclaredAgeRange(
|
|
|
282
282
|
}
|
|
283
283
|
|
|
284
284
|
// Minimum iOS version required for isEligibleForAgeFeatures API
|
|
285
|
-
const IOS_MIN_VERSION_ELIGIBLE_CHECK = 26;
|
|
285
|
+
const IOS_MIN_VERSION_ELIGIBLE_CHECK = 26.2;
|
|
286
286
|
|
|
287
287
|
/**
|
|
288
288
|
* Checks if the current user is eligible for age verification features on iOS.
|
|
@@ -300,7 +300,7 @@ export function isIOSEligibleForAgeFeatures(): Promise<DeclaredAgeEligibilityRes
|
|
|
300
300
|
}
|
|
301
301
|
|
|
302
302
|
// Early return for iOS versions below 26 to prevent native bridge errors
|
|
303
|
-
const iosVersion =
|
|
303
|
+
const iosVersion = parseFloat(String(Platform.Version));
|
|
304
304
|
if (iosVersion < IOS_MIN_VERSION_ELIGIBLE_CHECK) {
|
|
305
305
|
return Promise.resolve({
|
|
306
306
|
isEligible: false,
|
|
@@ -328,7 +328,10 @@ export function isAndroidEligibleForAgeFeatures(): Promise<DeclaredAgeEligibilit
|
|
|
328
328
|
return StoreAgeSignalsNativeModules.isEligibleForAgeFeatures();
|
|
329
329
|
}
|
|
330
330
|
|
|
331
|
-
// ========== PERMISSIONKIT FUNCTIONS (iOS 26+) ==========
|
|
331
|
+
// ========== PERMISSIONKIT FUNCTIONS (iOS 26.2+) ==========
|
|
332
|
+
|
|
333
|
+
// Minimum iOS version required for PermissionKit APIs
|
|
334
|
+
const IOS_MIN_VERSION_PERMISSIONKIT = 26.2;
|
|
332
335
|
|
|
333
336
|
/**
|
|
334
337
|
* Requests parental approval for significant app changes (iOS PermissionKit).
|
|
@@ -340,7 +343,7 @@ export function isAndroidEligibleForAgeFeatures(): Promise<DeclaredAgeEligibilit
|
|
|
340
343
|
* The parent/guardian will receive a notification via Messages.
|
|
341
344
|
*
|
|
342
345
|
* @platform ios
|
|
343
|
-
* @requires iOS 26.
|
|
346
|
+
* @requires iOS 26.2+
|
|
344
347
|
* @returns Promise<SignificantChangeResult> - Contains status ('pending', 'approved', 'denied') and error
|
|
345
348
|
*
|
|
346
349
|
* @example
|
|
@@ -354,6 +357,7 @@ export function isAndroidEligibleForAgeFeatures(): Promise<DeclaredAgeEligibilit
|
|
|
354
357
|
* }
|
|
355
358
|
* ```
|
|
356
359
|
*/
|
|
360
|
+
|
|
357
361
|
export function requestIOSSignificantChangeApproval(): Promise<SignificantChangeResult> {
|
|
358
362
|
if (Platform.OS !== 'ios') {
|
|
359
363
|
return Promise.resolve({
|
|
@@ -361,6 +365,15 @@ export function requestIOSSignificantChangeApproval(): Promise<SignificantChange
|
|
|
361
365
|
error: 'This method is only available on iOS',
|
|
362
366
|
});
|
|
363
367
|
}
|
|
368
|
+
|
|
369
|
+
const iosVersion = parseFloat(String(Platform.Version));
|
|
370
|
+
if (iosVersion < IOS_MIN_VERSION_PERMISSIONKIT) {
|
|
371
|
+
return Promise.resolve({
|
|
372
|
+
status: null,
|
|
373
|
+
error: `Requires iOS ${IOS_MIN_VERSION_PERMISSIONKIT}+. Current version: iOS ${iosVersion}`,
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
|
|
364
377
|
return StoreAgeSignalsNativeModules.requestSignificantChangeApproval();
|
|
365
378
|
}
|
|
366
379
|
|
|
@@ -400,6 +413,15 @@ export function requestIOSCommunicationPermission(
|
|
|
400
413
|
error: 'This method is only available on iOS',
|
|
401
414
|
});
|
|
402
415
|
}
|
|
416
|
+
|
|
417
|
+
const iosVersion = parseFloat(String(Platform.Version));
|
|
418
|
+
if (iosVersion < IOS_MIN_VERSION_PERMISSIONKIT) {
|
|
419
|
+
return Promise.resolve({
|
|
420
|
+
granted: false,
|
|
421
|
+
error: `Requires iOS ${IOS_MIN_VERSION_PERMISSIONKIT}+. Current version: iOS ${iosVersion}`,
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
|
|
403
425
|
return StoreAgeSignalsNativeModules.requestCommunicationPermission(
|
|
404
426
|
contacts,
|
|
405
427
|
actions || ['message']
|
|
@@ -443,5 +465,14 @@ export function getIOSKnownCommunicationHandles(
|
|
|
443
465
|
error: 'This method is only available on iOS',
|
|
444
466
|
});
|
|
445
467
|
}
|
|
468
|
+
|
|
469
|
+
const iosVersion = parseFloat(String(Platform.Version));
|
|
470
|
+
if (iosVersion < IOS_MIN_VERSION_PERMISSIONKIT) {
|
|
471
|
+
return Promise.resolve({
|
|
472
|
+
knownHandles: [],
|
|
473
|
+
error: `Requires iOS ${IOS_MIN_VERSION_PERMISSIONKIT}+. Current version: iOS ${iosVersion}`,
|
|
474
|
+
});
|
|
475
|
+
}
|
|
476
|
+
|
|
446
477
|
return StoreAgeSignalsNativeModules.getKnownCommunicationHandles(handles);
|
|
447
478
|
}
|