diff --git a/.easignore b/.easignore
index 64c1237..429f5f9 100644
--- a/.easignore
+++ b/.easignore
@@ -49,7 +49,6 @@ packages/client/ios/build
packages/client/ios/Pods
packages/client/ios/.xcode.env.local
/assets
-google-services.json
/sst.json
/stacks
/scriptable-widget.js
diff --git a/packages/api/src/libs/chrome.js b/packages/api/src/libs/chrome.js
index 0906bd5..09a043d 100644
--- a/packages/api/src/libs/chrome.js
+++ b/packages/api/src/libs/chrome.js
@@ -85,7 +85,7 @@ export const generateScreenshot = async (url, opts) => {
url,
target_url,
duration,
- })
+ }),
);
return {
file: sharp_file,
diff --git a/packages/api/src/libs/shared.js b/packages/api/src/libs/shared.js
index 2c8ef44..010f6d6 100644
--- a/packages/api/src/libs/shared.js
+++ b/packages/api/src/libs/shared.js
@@ -98,7 +98,7 @@ const updateFirebaseData = async (uri, payload = {}) =>
}).catch((error) => {
console.warn(
'Unable update firebase with payload',
- JSON.stringify({ uri, payload, error: error.message })
+ JSON.stringify({ uri, payload, error: error.message }),
);
});
@@ -209,7 +209,7 @@ const getRates = async (base_rates) => {
obj[type] = _.last(rate.stats);
return obj;
},
- {}
+ {},
);
return rates;
};
@@ -219,7 +219,7 @@ const storeJsonObject = async (
key,
json,
bucket = S3_BUCKET,
- is_public = false
+ is_public = false,
) => {
// try {
// https://blog.jonathandion.com/posts/json-gzip-s3/
@@ -289,7 +289,7 @@ const storeRateStats = async (rates) => {
obj[type + '_stats'] = new_stats;
return obj;
},
- {}
+ {},
);
return storePublicJsonObject(RATE_STATS_OBJECT_KEY, base_rates);
};
@@ -306,11 +306,11 @@ const storeHistoricalRatesJsonObject = async (rates) => {
}
// unhandled error
throw error;
- }
+ },
);
Object.entries(rates.rates || {}).forEach(([type, { stats }]) => {
const moment_from = AmbitoDolar.getTimezoneDate(
- _.last(stats)[0]
+ _.last(stats)[0],
).subtract(1, 'year');
const moment_to = AmbitoDolar.getTimezoneDate(_.first(stats)[0]);
// limit base_rates excluding stats
@@ -322,7 +322,7 @@ const storeHistoricalRatesJsonObject = async (rates) => {
moment_to,
'day',
// moment_to exclusion
- '[)'
+ '[)',
);
return include;
})
@@ -349,7 +349,7 @@ const storeHistoricalRatesJsonObject = async (rates) => {
obj[type] = rate;
return obj;
},
- {}
+ {},
);
return Promise.all([
storePublicJsonObject(HISTORICAL_RATES_LEGACY_OBJECT_KEY, legacy_rates),
@@ -361,7 +361,7 @@ const storeHistoricalRatesJsonObject = async (rates) => {
AmbitoDolar.QATAR_TYPE,
// AmbitoDolar.LUXURY_TYPE
// AmbitoDolar.CULTURAL_TYPE
- ])
+ ]),
),
storePublicJsonObject(HISTORICAL_QUOTES_OBJECT_KEY, base_rates),
]);
@@ -387,7 +387,7 @@ const storeRatesJsonObject = async (rates, is_updated) => {
obj[type] = rate;
return obj;
},
- {}
+ {},
);
return Promise.all([
is_updated && storeRateStats(rates.rates),
@@ -437,6 +437,8 @@ const getPathForRate = (type) => {
return 'dolardelujo';
} else if (type === AmbitoDolar.CULTURAL_TYPE) {
return 'dolarcoldplay';
+ /* } else if (type === AmbitoDolar.CCB_TYPE) {
+ return 'dolarcripto'; */
}
return `dolar/${type}`;
};
@@ -477,7 +479,7 @@ const publishMessageToTopic = async (event, payload = {}) => {
JSON.stringify({
event,
payload,
- })
+ }),
);
const params = {
Message: JSON.stringify(payload),
@@ -501,14 +503,14 @@ const publishMessageToTopic = async (event, payload = {}) => {
id,
event,
duration,
- })
+ }),
);
return id;
})
.catch((error) => {
console.warn(
'Unable to publish message to sns topic',
- JSON.stringify({ event, error: error.message })
+ JSON.stringify({ event, error: error.message }),
);
});
};
@@ -537,7 +539,7 @@ const triggerEvent = async (event, payload) => {
JSON.stringify({
event,
payload,
- })
+ }),
);
return AmbitoDolar.fetch(
`https://maker.ifttt.com/trigger/${event}/with/key/${process.env.IFTTT_KEY}`,
@@ -547,7 +549,7 @@ const triggerEvent = async (event, payload) => {
'Content-Type': 'application/json; charset=utf-8',
},
body: JSON.stringify(payload),
- }
+ },
)
.then(() => {
const duration = (Date.now() - start_time) / 1000;
@@ -556,7 +558,7 @@ const triggerEvent = async (event, payload) => {
JSON.stringify({
event,
duration,
- })
+ }),
);
return {
event,
@@ -567,7 +569,7 @@ const triggerEvent = async (event, payload) => {
// ignore error and trace
console.warn(
'Unable to trigger the event',
- JSON.stringify({ event, error: error.message })
+ JSON.stringify({ event, error: error.message }),
);
});
};
@@ -628,9 +630,9 @@ const triggerSocials = async (targets, caption, url, file, story_file) => {
JSON.stringify({
target,
error: error.message,
- })
+ }),
);
- })
+ }),
)
.value();
// remove errors
@@ -656,7 +658,7 @@ const storeImgurFile = async (image) =>
const fetchImage = async (url) =>
AmbitoDolar.fetch(url).then(async (response) =>
- Buffer.from(await response.arrayBuffer())
+ Buffer.from(await response.arrayBuffer()),
);
const wrapHandler = (handler) => {
diff --git a/packages/api/src/libs/social/instagram.js b/packages/api/src/libs/social/instagram.js
index 7f716ca..31631ce 100644
--- a/packages/api/src/libs/social/instagram.js
+++ b/packages/api/src/libs/social/instagram.js
@@ -37,10 +37,10 @@ export const publish = async (file, caption, story_file) => {
(error) => {
console.warn(
'Unable to get instagram session from bucket',
- JSON.stringify({ error: error.message })
+ JSON.stringify({ error: error.message }),
);
// ignore
- }
+ },
);
const current_session = await loadSession(ig, serialized_session);
if (!current_session) {
diff --git a/packages/api/src/libs/social/mastodon.js b/packages/api/src/libs/social/mastodon.js
index 794a8ce..6af803e 100644
--- a/packages/api/src/libs/social/mastodon.js
+++ b/packages/api/src/libs/social/mastodon.js
@@ -1,10 +1,11 @@
-import { login } from 'masto';
+import { createRestAPIClient } from 'masto';
+import { Blob } from 'node:buffer';
// https://github.com/neet/masto.js/blob/main/examples/create-new-status-with-image.ts
export const publish = async (caption, file) => {
try {
const start_time = Date.now();
- const masto = await login({
+ const masto = await createRestAPIClient({
url: process.env.MASTODON_URL,
accessToken: process.env.MASTODON_ACCESS_TOKEN,
...(process.env.SST_STAGE !== 'prod' && {
@@ -13,10 +14,9 @@ export const publish = async (caption, file) => {
});
const attachment =
file &&
- (await masto.v2.mediaAttachments.create({
- // native support of `fetch` on node 18
- // file: new Blob([file]),
- file,
+ (await masto.v2.media.create({
+ file: new Blob([file]),
+ // file: await fetch(image_url).then((res) => res.blob()),
}));
const { id: status_id } = await masto.v1.statuses.create({
status: caption,
diff --git a/packages/api/src/routes/prune-devices.js b/packages/api/src/routes/prune-devices.js
index dfc3557..c216d25 100644
--- a/packages/api/src/routes/prune-devices.js
+++ b/packages/api/src/routes/prune-devices.js
@@ -52,7 +52,7 @@ export const handler = Shared.wrapHandler(async (event) => {
};
const items = await Shared.getAllDataFromDynamoDB(params);
await Promise.all(
- items.map(({ installation_id }) => pruneDevice(installation_id))
+ items.map(({ installation_id }) => pruneDevice(installation_id)),
);
return Shared.serviceResponse(null, 200, {
items: _.map(items, 'installation_id'),
diff --git a/packages/api/src/routes/register-device.js b/packages/api/src/routes/register-device.js
index a0354f0..20e151a 100644
--- a/packages/api/src/routes/register-device.js
+++ b/packages/api/src/routes/register-device.js
@@ -15,7 +15,7 @@ export const handler = Shared.wrapHandler(async (event) => {
JSON.parse(event.body || '{}');
if (!installation_id) {
throw new Error(
- 'Request query parameter is malformed, missing or has an invalid value'
+ 'Request query parameter is malformed, missing or has an invalid value',
);
}
let update_expression = 'ADD app_loads :val ';
@@ -34,7 +34,7 @@ export const handler = Shared.wrapHandler(async (event) => {
last_update: timestamp,
},
// push_token is null on initial registration then undefined
- _.isNil
+ _.isNil,
// _.isUndefined
);
if (payload.push_token) {
@@ -61,7 +61,7 @@ export const handler = Shared.wrapHandler(async (event) => {
ReturnValues: 'ALL_NEW',
};
const { Attributes: data } = await ddbDocClient.send(
- new UpdateCommand(params)
+ new UpdateCommand(params),
);
const { notification_settings: notificationSettings } = data;
const results = {
@@ -84,7 +84,7 @@ export const handler = Shared.wrapHandler(async (event) => {
console.info(
'Registration or interaction for the device completed',
// JSON.stringify(data)
- installation_id
+ installation_id,
);
return Shared.serviceResponse(null, 200, results);
} catch (error) {
diff --git a/packages/api/src/routes/stats.js b/packages/api/src/routes/stats.js
index 165eccd..1e5519c 100644
--- a/packages/api/src/routes/stats.js
+++ b/packages/api/src/routes/stats.js
@@ -7,8 +7,8 @@ export const handler = Shared.wrapHandler(async () => {
try {
const credentials = Buffer.from(
[process.env.AMPLITUDE_API_KEY, process.env.AMPLITUDE_SECRET_KEY].join(
- ':'
- )
+ ':',
+ ),
).toString('base64');
const results = await AmbitoDolar.fetch(
process.env.AMPLITUDE_USAGE_STATS_URL,
@@ -16,7 +16,7 @@ export const handler = Shared.wrapHandler(async () => {
headers: {
Authorization: `Basic ${credentials}`,
},
- }
+ },
).then(async (response) => {
const { data } = await response.json();
const [users, events, conversions] = _.chain(data?.values)
diff --git a/packages/api/src/subscribers/funding-notify.js b/packages/api/src/subscribers/funding-notify.js
index 659c2bb..56179a7 100644
--- a/packages/api/src/subscribers/funding-notify.js
+++ b/packages/api/src/subscribers/funding-notify.js
@@ -8,7 +8,7 @@ export const handler = Shared.wrapHandler(async (event) => {
JSON.stringify({
generate_only,
targets,
- })
+ }),
);
const screenshot_url = Shared.getSocialScreenshotUrl({
type: 'funding',
@@ -33,14 +33,14 @@ export const handler = Shared.wrapHandler(async (event) => {
caption,
image_url,
file,
- story_file
+ story_file,
);
console.info('Completed', JSON.stringify(results));
return results;
} catch (error) {
console.warn(
'Unable to generate the screenshot for notification',
- JSON.stringify({ error: error.message })
+ JSON.stringify({ error: error.message }),
);
}
});
diff --git a/packages/api/src/subscribers/invalidate-receipts.js b/packages/api/src/subscribers/invalidate-receipts.js
index 358461e..36168fb 100644
--- a/packages/api/src/subscribers/invalidate-receipts.js
+++ b/packages/api/src/subscribers/invalidate-receipts.js
@@ -29,14 +29,14 @@ const check = async (items = [], readonly) => {
'Receipts',
JSON.stringify({
amount: receiptIds.length,
- })
+ }),
);
const receiptIdChunks = expo.chunkPushNotificationReceiptIds(receiptIds);
// leave only the records with errors
const invalid_receipts = await Promise.all(
receiptIdChunks.map((chunk) =>
- expo.getPushNotificationReceiptsAsync(chunk)
- )
+ expo.getPushNotificationReceiptsAsync(chunk),
+ ),
)
// merge objects inside array
.then((receiptChunks) => Object.assign({}, ...receiptChunks.flat()))
@@ -57,23 +57,23 @@ const check = async (items = [], readonly) => {
}
return obj;
},
- []
- )
+ [],
+ ),
)
.catch((error) => {
console.error(
'Unable to get receipts',
JSON.stringify({
error: error.message,
- })
+ }),
);
throw error;
});
if (!readonly) {
await Promise.all(
invalid_receipts.map(({ installation_id }) =>
- invalidateDevice(installation_id)
- )
+ invalidateDevice(installation_id),
+ ),
);
}
return {
@@ -95,7 +95,7 @@ export const handler = Shared.wrapHandler(async (event) => {
JSON.stringify({
date_from,
readonly,
- })
+ }),
);
const filter_expression = '#notification_date >= :date_from';
const expression_attribute_values = {
@@ -121,12 +121,12 @@ export const handler = Shared.wrapHandler(async (event) => {
Shared.getTickets(date, type).catch((error) => {
console.warn(
'Unable to get notification tickets from bucket',
- JSON.stringify({ date, type, error: error.message })
+ JSON.stringify({ date, type, error: error.message }),
);
- })
- )
+ }),
+ ),
).then((data) =>
- _.chain(data).flatten().compact().uniqBy('installation_id').value()
+ _.chain(data).flatten().compact().uniqBy('installation_id').value(),
);
const results = await check(tickets, readonly === true);
console.info('Completed', JSON.stringify(results));
diff --git a/packages/api/src/subscribers/notify.js b/packages/api/src/subscribers/notify.js
index 72372a7..6aa0ec2 100644
--- a/packages/api/src/subscribers/notify.js
+++ b/packages/api/src/subscribers/notify.js
@@ -20,8 +20,8 @@ const getChangeMessage = (rate) => {
if (Array.isArray(value)) {
body.push(
`${AmbitoDolar.formatRateCurrency(
- value[0]
- )}–${AmbitoDolar.formatRateCurrency(value[1])}`
+ value[0],
+ )}–${AmbitoDolar.formatRateCurrency(value[1])}`,
);
} else {
body.push(AmbitoDolar.formatRateCurrency(value));
@@ -74,7 +74,7 @@ const getMessagesFromCurrentRate = async (items, type, rates) => {
const messages = items.map(
({ installation_id, app_version, push_token, notification_settings }) => {
const settings = AmbitoDolar.getNotificationSettings(
- notification_settings
+ notification_settings,
)[type];
const rates_for_settings = Object.entries(rates).reduce(
(obj, [type, value]) => {
@@ -93,7 +93,7 @@ const getMessagesFromCurrentRate = async (items, type, rates) => {
}
return obj;
},
- {}
+ {},
);
// remove rates not available in app version
if (Shared.isSemverLt(app_version, MIN_CLIENT_VERSION_FOR_MEP)) {
@@ -127,14 +127,14 @@ const getMessagesFromCurrentRate = async (items, type, rates) => {
},
});
}
- }
+ },
);
// remove messages without body
return _.compact(messages);
} catch (error) {
console.warn(
'Unable to build message for notification',
- JSON.stringify({ type, error: error.message })
+ JSON.stringify({ type, error: error.message }),
);
}
// empty when rates or error
@@ -148,7 +148,7 @@ const checkForSetting = (notification_settings = {}, type) => {
const sendPushNotifications = async (
items = [],
- { message: body_message, type, rates }
+ { message: body_message, type, rates },
) => {
if (body_message) {
type = 'custom';
@@ -159,7 +159,7 @@ const sendPushNotifications = async (
body_message,
type,
rates,
- })
+ }),
);
const tickets = [];
if (items.length > 0) {
@@ -168,7 +168,7 @@ const sendPushNotifications = async (
// leave the most updated devices on top (newest settings first)
.orderBy(
(item) => AmbitoDolar.getTimezoneDate(item.last_update).valueOf(),
- ['desc']
+ ['desc'],
)
// exclude duplicates (removing from below)
.uniqBy('push_token')
@@ -186,32 +186,41 @@ const sendPushNotifications = async (
app_version,
push_token,
},
- })
+ }),
);
} else {
// filter the items that have this type of notification enabled
items = _.filter(items, ({ notification_settings }) =>
- checkForSetting(notification_settings, type)
+ checkForSetting(notification_settings, type),
);
// leave testing device only for new notifications when development
if (process.env.IS_LOCAL && items.length > 1) {
throw new Error(
- 'Only single messages can be sent while running in development mode'
+ 'Only single messages can be sent while running in development mode',
);
}
messages.push(...(await getMessagesFromCurrentRate(items, type, rates)));
}
- console.info(
+ /* console.info(
'Generated messages',
JSON.stringify({
amount: messages.length,
})
- );
+ ); */
const expo_start_time = Date.now();
if (messages.length > 0) {
const expo = Shared.getExpoClient();
// https://github.com/expo/expo-server-sdk-node/blob/master/src/ExpoClient.ts#L20
const chunks = expo.chunkPushNotifications(messages);
+ console.info(
+ 'Generated messages',
+ JSON.stringify({
+ messages: messages.length,
+ chunks: chunks.length,
+ limit: expo.pushNotificationChunkSizeLimit,
+ }),
+ );
+ // FIXME: limit promise all to 500 parallel requests
const failedChunks = [];
// FIXME: how to prevent "504 Gateway Time-out" errors?
// concurrent requests using maxConcurrentRequests opt
@@ -221,7 +230,7 @@ const sendPushNotifications = async (
expo
.sendPushNotificationsAsync(
// remove source from message
- chunk.map((message) => _.omit(message, 'source'))
+ chunk.map((message) => _.omit(message, 'source')),
)
.then((tickets) =>
// same order as input
@@ -233,7 +242,7 @@ const sendPushNotifications = async (
message,
...source,
};
- })
+ }),
)
.catch(() => {
// ignore when error
@@ -245,9 +254,9 @@ const sendPushNotifications = async (
})
); */
failedChunks.push(chunk);
- })
- )
- ).then((ticketChunks) => _.compact(ticketChunks.flat())))
+ }),
+ ),
+ ).then((ticketChunks) => _.compact(ticketChunks.flat()))),
);
const sending_duration = (Date.now() - expo_start_time) / 1000;
console.info(
@@ -259,7 +268,7 @@ const sendPushNotifications = async (
}),
tickets: tickets.length,
duration: sending_duration,
- })
+ }),
);
// save tickets to aws
const notification_date = AmbitoDolar.getTimezoneDate().format();
@@ -274,7 +283,7 @@ const sendPushNotifications = async (
tickets: tickets.length,
duration: sending_duration,
},
- _.isNil
+ _.isNil,
),
};
await Promise.all([
@@ -285,7 +294,7 @@ const sendPushNotifications = async (
'Unable to store notification tickets',
JSON.stringify({
error: error.message,
- })
+ }),
);
});
}
@@ -317,7 +326,7 @@ export const handler = Shared.wrapHandler(async (event) => {
type,
rates,
social,
- })
+ }),
);
let filter_expression =
'attribute_exists(push_token) AND attribute_not_exists(invalidated)';
@@ -345,7 +354,7 @@ export const handler = Shared.wrapHandler(async (event) => {
JSON.stringify({
installation_id,
error: error.message,
- })
+ }),
);
});
if (items && installation_id && message) {
@@ -353,7 +362,7 @@ export const handler = Shared.wrapHandler(async (event) => {
promises.push(
sendPushNotifications(items, {
message,
- })
+ }),
);
} else {
// uses getRates when NOTIFICATION_CLOSE_TYPE
@@ -366,7 +375,7 @@ export const handler = Shared.wrapHandler(async (event) => {
sendPushNotifications(items, {
type,
rates: current_rates,
- })
+ }),
);
}
if (social && !installation_id && !process.env.IS_LOCAL) {
@@ -378,7 +387,7 @@ export const handler = Shared.wrapHandler(async (event) => {
type,
title: AmbitoDolar.getNotificationTitle(type),
caption: getSocialCaption(type, social_rates),
- })
+ }),
);
}
} else {
diff --git a/packages/api/src/subscribers/process.js b/packages/api/src/subscribers/process.js
index fec093a..8b79804 100644
--- a/packages/api/src/subscribers/process.js
+++ b/packages/api/src/subscribers/process.js
@@ -41,7 +41,7 @@ const getRate = (type) => {
// log error and continue processing
console.warn(
'Invalid schema validation on rate',
- JSON.stringify({ type, data, error: error.message })
+ JSON.stringify({ type, data, error: error.message }),
);
} else {
const identity = value.fecha;
@@ -58,7 +58,7 @@ const getRate = (type) => {
JSON.stringify({
type,
duration,
- })
+ }),
);
return result;
}
@@ -67,7 +67,7 @@ const getRate = (type) => {
// log error and continue processing
console.warn(
'Unable to fetch rate',
- JSON.stringify({ type, error: error.message })
+ JSON.stringify({ type, error: error.message }),
);
});
};
@@ -89,7 +89,7 @@ const getCryptoRates = (rates) => {
const schema = Joi.object()
.keys({
..._.mapValues(rates, () =>
- Joi.number().required().custom(numberValidator)
+ Joi.number().required().custom(numberValidator),
),
time: Joi.number().integer().default(Date.now),
})
@@ -99,7 +99,7 @@ const getCryptoRates = (rates) => {
// log error and continue processing
console.warn(
'Invalid schema validation on crypto rates',
- JSON.stringify({ rates, data, error: error.message })
+ JSON.stringify({ rates, data, error: error.message }),
);
} else {
const identity = value.time;
@@ -113,7 +113,7 @@ const getCryptoRates = (rates) => {
JSON.stringify({
rates,
duration,
- })
+ }),
);
return result;
}
@@ -122,7 +122,7 @@ const getCryptoRates = (rates) => {
// log error and continue processing
console.warn(
'Unable to fetch crypto rates',
- JSON.stringify({ rates, error: error.message })
+ JSON.stringify({ rates, error: error.message }),
);
});
};
@@ -140,7 +140,7 @@ const getHistoricalRate = (type, rate, { max = 0, max_date }) => {
};
console.info(
'Historical rate updated',
- JSON.stringify({ type, old: { max, max_date }, new: result.rate })
+ JSON.stringify({ type, old: { max, max_date }, new: result.rate }),
);
return result;
}
@@ -172,7 +172,7 @@ const getNewRates = (rates, new_rates) =>
: rate_last_max;
// calculate from open / close rate and truncate
const rate_change_percent = AmbitoDolar.getNumber(
- (rate_last_max / rate_open - 1) * 100
+ (rate_last_max / rate_open - 1) * 100,
);
const new_rate = [
AmbitoDolar.getTimezoneDate().format(),
@@ -188,7 +188,7 @@ const getNewRates = (rates, new_rates) =>
type,
old: rate,
new: new_rate,
- })
+ }),
);
}
return obj;
@@ -224,7 +224,7 @@ const getBusinessDayRates = (rates, realtime) => {
// ['cclgd30', AmbitoDolar.CCL_TYPE],
// ['mepgd30', AmbitoDolar.MEP_TYPE],
AmbitoDolar.CCB_TYPE,
- ])
+ ]),
);
}
return Promise.all(promises)
@@ -235,8 +235,8 @@ const getBusinessDayRates = (rates, realtime) => {
const getHistoricalRates = (rates, base_rates) =>
Promise.all(
Object.entries(rates).map(([type, rate]) =>
- getHistoricalRate(type, rate, base_rates[type])
- )
+ getHistoricalRate(type, rate, base_rates[type]),
+ ),
).then(getObjectRates);
const notify = (
@@ -244,7 +244,7 @@ const notify = (
rates,
has_rates_from_today,
new_rates,
- has_new_rates
+ has_new_rates,
) => {
const notifications = [];
if (close_day === true) {
@@ -273,12 +273,12 @@ const notify = (
const rate_last = AmbitoDolar.getRateValue(rate);
// truncate decimals
const value_diff = AmbitoDolar.getNumber(
- Math.abs(prev_rate_last - rate_last)
+ Math.abs(prev_rate_last - rate_last),
);
const rate_threshold = Shared.getVariationThreshold(
type,
prev_rate_last,
- rate_last
+ rate_last,
);
console.info(
'Looking for rate variation to notify',
@@ -286,7 +286,7 @@ const notify = (
type,
diff: value_diff,
threshold: rate_threshold,
- })
+ }),
);
if (value_diff !== 0 && value_diff > rate_threshold) {
// variation found
@@ -297,7 +297,7 @@ const notify = (
}
return obj;
},
- {}
+ {},
);
if (!_.isEmpty(variation_rates)) {
// join variations in a single notification
@@ -313,8 +313,8 @@ const notify = (
Shared.triggerNotifyEvent({
type,
rates,
- })
- )
+ }),
+ ),
);
};
@@ -323,14 +323,14 @@ const REALTIME_PROCESSING_INTERVAL = 15;
export const handler = Shared.wrapHandler(async (event) => {
const { notify: trigger_notification, close: close_day } = JSON.parse(
- event.Records[0].Sns.Message
+ event.Records[0].Sns.Message,
);
console.info(
'Message received',
JSON.stringify({
trigger_notification,
close_day,
- })
+ }),
);
// avoid fetch delays
const in_time =
@@ -389,7 +389,7 @@ export const handler = Shared.wrapHandler(async (event) => {
// took historical data in parallel from new rates
const new_historical_rates = await getHistoricalRates(
new_rates,
- base_rates.rates
+ base_rates.rates,
);
// merge new_historical_rates with base_rates
Object.entries(new_historical_rates).forEach(([type, historical_rate]) => {
@@ -417,7 +417,7 @@ export const handler = Shared.wrapHandler(async (event) => {
rates,
has_rates_from_today,
new_rates,
- has_new_rates
+ has_new_rates,
);
}
console.info('Completed', JSON.stringify(new_rates));
diff --git a/packages/api/src/subscribers/social-notify.js b/packages/api/src/subscribers/social-notify.js
index 8d236e4..4d8b6ed 100644
--- a/packages/api/src/subscribers/social-notify.js
+++ b/packages/api/src/subscribers/social-notify.js
@@ -23,7 +23,7 @@ export const handler = Shared.wrapHandler(async (event) => {
caption,
generate_only,
targets,
- })
+ }),
);
let results;
if (
@@ -48,12 +48,12 @@ export const handler = Shared.wrapHandler(async (event) => {
caption,
image_url,
file,
- story_file
+ story_file,
);
} catch (error) {
console.warn(
'Unable to generate the screenshot for notification',
- JSON.stringify({ type, title, error: error.message })
+ JSON.stringify({ type, title, error: error.message }),
);
// send as plain
}
diff --git a/packages/client/App.js b/packages/client/App.js
index 1d9c21f..5976825 100644
--- a/packages/client/App.js
+++ b/packages/client/App.js
@@ -1,6 +1,5 @@
/* eslint-disable import/no-duplicates */
import 'react-native-gesture-handler';
-import 'react-native-reanimated';
import 'expo-dev-client';
import { ActionSheetProvider } from '@expo/react-native-action-sheet';
import {
@@ -48,7 +47,7 @@ if (Platform.OS === 'android') {
ScreenOrientation.lockAsync(
Settings.IS_TABLET
? ScreenOrientation.OrientationLock.LANDSCAPE
- : ScreenOrientation.OrientationLock.PORTRAIT_UP
+ : ScreenOrientation.OrientationLock.PORTRAIT_UP,
).catch(console.warn);
}
diff --git a/packages/client/actions/index.js b/packages/client/actions/index.js
index 8c67227..3a37ba9 100644
--- a/packages/client/actions/index.js
+++ b/packages/client/actions/index.js
@@ -1,3 +1,4 @@
+import Constants from 'expo-constants';
import * as Notifications from 'expo-notifications';
import {
@@ -61,7 +62,7 @@ const doRegisterDevice = (dispatch, state, value = {}) => {
if (__DEV__) {
console.log(
'Update notification settings from remote',
- notificationSettings
+ notificationSettings,
);
}
// update notification settings from server
@@ -77,14 +78,14 @@ const doRegisterDevice = (dispatch, state, value = {}) => {
});
}
return Promise.resolve();
- }
+ },
);
};
const doRegisterDeviceForNotifications = (
{ data: push_token } = {},
dispatch,
- current_state
+ current_state,
) => {
if (push_token) {
return doRegisterDevice(dispatch, current_state, {
@@ -92,11 +93,11 @@ const doRegisterDeviceForNotifications = (
}).then(() => push_token);
}
return Notifications.getExpoPushTokenAsync({
- experienceId: '@outatime/ambito-dolar',
+ projectId: Constants.expoConfig.extra.eas.projectId,
}).then(({ data: push_token }) =>
doRegisterDevice(dispatch, current_state, { push_token }).then(
- () => push_token
- )
+ () => push_token,
+ ),
);
};
@@ -111,7 +112,7 @@ export const registerDeviceForNotifications =
dispatch({
type: NOTIFICATIONS_REGISTER_SUCCESS,
payload: push_token,
- })
+ }),
)
.catch((error) => {
if (__DEV__) {
diff --git a/packages/client/app.config.js b/packages/client/app.config.js
index e69411a..6c26d97 100644
--- a/packages/client/app.config.js
+++ b/packages/client/app.config.js
@@ -1,7 +1,7 @@
import 'dotenv/config';
-const version = '6.7.1';
-const buildNumber = 98;
+const version = '6.8.0';
+const buildNumber = 99;
const LIGHT_SPLASH = {
image: './assets/splash-light.png',
@@ -26,16 +26,14 @@ export default {
name: 'Ámbito Dólar',
slug: 'ambito-dolar',
privacy: 'hidden',
- /* runtimeVersion: {
- policy: 'sdkVersion',
- }, */
+ runtimeVersion: {
+ policy: 'appVersion',
+ },
version,
platforms: ['android', 'ios', 'web'],
githubUrl:
'https://github.com/outaTiME/ambito-dolar/tree/master/packages/client',
userInterfaceStyle: 'automatic',
- // required by modal on iOS
- backgroundColor: '#000000',
icon: './assets/icon.png',
notification: {
icon: './assets/icon.notification.png',
@@ -44,7 +42,7 @@ export default {
// https://github.com/expo/expo/issues/11604#issuecomment-1018355394
androidStatusBar: {
backgroundColor: '#00000000',
- // translucent: false,
+ barStyle: 'dark-content',
},
scheme: 'ambito-dolar',
extra: {
@@ -78,6 +76,7 @@ export default {
},
updates: {
enabled: false,
+ url: 'https://u.expo.dev/88dc0a10-eec5-11e8-bdb0-e9d94f6dfa7d',
},
assetBundlePatterns: ['**/*'],
plugins: [
@@ -94,24 +93,10 @@ export default {
},
],
],
- [
- 'expo-screen-orientation',
- {
- initialOrientation: 'ALL',
- },
- ],
+ // https://www.aronberezkin.com/posts/a-step-by-step-guide-to-writing-your-first-expo-config-plugin
'./plugins/withAndroidSplashScreen.js',
- /* [
- 'expo-build-properties',
- {
- ios: {
- flipper: false,
- },
- },
- ], */
],
splash: LIGHT_SPLASH,
- jsEngine: 'hermes',
ios: {
bundleIdentifier: 'im.outa.AmbitoDolar',
buildNumber: buildNumber.toString(),
@@ -166,17 +151,19 @@ export default {
allowBackup: false,
softwareKeyboardLayoutMode: 'pan',
},
- hooks: {
- postPublish: [
- {
- file: 'sentry-expo/upload-sourcemaps',
- config: {
- organization: 'ambito-dolar',
- project: 'expo',
- // https://github.com/expo/sentry-expo/issues/256#issuecomment-1164017755
- // authToken: false,
+ ...(process.env.SENTRY_AUTH_TOKEN && {
+ hooks: {
+ postPublish: [
+ {
+ file: 'sentry-expo/upload-sourcemaps',
+ config: {
+ organization: 'ambito-dolar',
+ project: 'expo',
+ // https://github.com/expo/sentry-expo/issues/256#issuecomment-1164017755
+ // authToken: false,
+ },
},
- },
- ],
- },
+ ],
+ },
+ }),
};
diff --git a/packages/client/components/ActionButton.js b/packages/client/components/ActionButton.js
index c8755a7..bb8e8db 100644
--- a/packages/client/components/ActionButton.js
+++ b/packages/client/components/ActionButton.js
@@ -59,7 +59,7 @@ export default ({
borderColor: Settings.getStrokeColor(theme),
backgroundColor: Settings.getContentColor(
theme,
- alternativeBackground
+ alternativeBackground,
),
overflow: 'hidden',
},
diff --git a/packages/client/components/AnimatedChartView.js b/packages/client/components/AnimatedChartView.js
index 5af74fe..6f321dc 100644
--- a/packages/client/components/AnimatedChartView.js
+++ b/packages/client/components/AnimatedChartView.js
@@ -95,7 +95,7 @@ export default ({ data, domain, color, selectionIndex, width, height }) => {
x: [0, width],
y: [height, 0],
}),
- [width, height]
+ [width, height],
);
const d = React.useMemo(
() =>
@@ -104,7 +104,7 @@ export default ({ data, domain, color, selectionIndex, width, height }) => {
.x(({ x }) => scale(x, domain.x, range.x))
.y(({ y }) => scale(y, domain.y, range.y))
.curve(d3Shape.curveMonotoneX)(data),
- [data, domain, range]
+ [data, domain, range],
);
const length = useSharedValue(width);
const isLoading = useSharedValue(true);
@@ -132,7 +132,7 @@ export default ({ data, domain, color, selectionIndex, width, height }) => {
// reset selection when last data point
selectionIndex.value = index === data.length - 1 ? null : index;
},
- [data]
+ [data],
);
return (
<>
diff --git a/packages/client/components/AnimatedConfettiView.js b/packages/client/components/AnimatedConfettiView.js
index 4b14b32..8a6d1e0 100644
--- a/packages/client/components/AnimatedConfettiView.js
+++ b/packages/client/components/AnimatedConfettiView.js
@@ -46,7 +46,7 @@ const Confetti = (props) => {
xVel: new Value(Math.random() * xVelMax - xVelMax / 2),
yVel: new Value(Math.random() * yVelMax + yVelMax),
angleVel: new Value(
- (Math.random() * angleVelMax - angleVelMax / 2) * Math.PI
+ (Math.random() * angleVelMax - angleVelMax / 2) * Math.PI,
),
delay: new Value(Math.floor(index / 10) * 0.3),
elasticity: Math.random() * 0.9 + 0.1,
@@ -102,18 +102,18 @@ const Confetti = (props) => {
set(y, add(y, dy)),
set(x, add(x, dx)),
set(angle, add(angle, dAngle)),
- ]
- )
+ ],
+ ),
),
cond(
greaterThan(
x,
- screenWidth - props.itemDimensions.width
+ screenWidth - props.itemDimensions.width,
),
[
set(x, screenWidth - props.itemDimensions.width),
set(xVel, multiply(xVel, -elasticity)),
- ]
+ ],
),
cond(lessThan(x, 0), [
set(x, 0),
@@ -124,13 +124,13 @@ const Confetti = (props) => {
cond(
greaterThan(
y,
- screenHeight + props.itemDimensions.height
+ screenHeight + props.itemDimensions.height,
),
- set(y, -props.itemDimensions.height * 2)
- )
+ set(y, -props.itemDimensions.height * 2),
+ ),
),
],
- [startClock(clock), timeDiff]
+ [startClock(clock), timeDiff],
);
}}
@@ -155,7 +155,7 @@ const Confetti = (props) => {
);
- }
+ },
)}
);
diff --git a/packages/client/components/AnimatedSegmentedControl.js b/packages/client/components/AnimatedSegmentedControl.js
index 7f528b7..22a7396 100644
--- a/packages/client/components/AnimatedSegmentedControl.js
+++ b/packages/client/components/AnimatedSegmentedControl.js
@@ -56,7 +56,7 @@ export default ({
(index) => {
onChange(index);
},
- [onChange]
+ [onChange],
);
useEffect(() => {
tabTranslateValue.value = currentIndex;
@@ -66,7 +66,7 @@ export default ({
const tabTranslateAnimatedStyles = useAnimatedStyle(() => {
const translateX = withSpring(
tabTranslateValue.value * (translateValue * transitionMultiplier),
- DEFAULT_SPRING_CONFIG
+ DEFAULT_SPRING_CONFIG,
);
return {
transform: [{ translateX }],
diff --git a/packages/client/components/AppContainer.js b/packages/client/components/AppContainer.js
index 6d3633e..338dd04 100644
--- a/packages/client/components/AppContainer.js
+++ b/packages/client/components/AppContainer.js
@@ -110,7 +110,7 @@ const useNavigatorScreenOptions = (modal = false) => {
const { theme, fonts } = Helper.useTheme();
const headerBackground = React.useCallback(
() => ,
- []
+ [],
);
return {
headerBackVisible: false,
@@ -211,7 +211,7 @@ const SettingsStackScreen = () => {
name="AdvancedNotifications"
options={({ route: { params }, navigation }) => ({
title: Helper.getScreenTitle(
- AmbitoDolar.getNotificationTitle(params.type)
+ AmbitoDolar.getNotificationTitle(params.type),
),
headerLeft: () => ,
})}
@@ -275,7 +275,7 @@ const MainStackScreen = () => {
const { theme } = Helper.useTheme();
const tabBarBackground = React.useCallback(
() => ,
- []
+ [],
);
return (
{
const uid = Settings.INSTALLATION_ID;
@@ -437,7 +437,7 @@ const AppContainer = ({
lastNotificationResponse.actionIdentifier ===
Notifications.DEFAULT_ACTION_IDENTIFIER
) {
- Amplitude.logEvent('Select notification');
+ Amplitude.track('Select notification');
navigationRef.navigate('RatesTab', {
screen: Settings.INITIAL_ROUTE_NAME,
});
@@ -450,7 +450,7 @@ const AppContainer = ({
}
const type = data?.type;
if (type) {
- Amplitude.logEvent('Quick action', { type });
+ Amplitude.track('Quick action', { type });
navigationRef.navigate(`${type}Tab`, {
screen: type,
params: {
@@ -464,7 +464,7 @@ const AppContainer = ({
initialQuickAction && onQuickAction(initialQuickAction);
const subscription = DeviceEventEmitter.addListener(
'quickActionShortcut',
- onQuickAction
+ onQuickAction,
);
return () => {
subscription.remove();
@@ -491,7 +491,7 @@ const AppContainer = ({
React.useEffect(() => {
Linking.getInitialURL().then(onDeepLink);
const subscription = Linking.addEventListener('url', ({ url }) =>
- onDeepLink(url)
+ onDeepLink(url),
);
return () => subscription.remove();
}, []);
@@ -523,7 +523,7 @@ const AppContainer = ({
border: Settings.getSeparatorColor(theme),
},
}),
- [theme]
+ [theme],
);
const navigatorScreenOptions = useNavigatorScreenOptions();
const statusBarStyle = Helper.getInvertedTheme(theme);
@@ -649,7 +649,7 @@ const withRealtime = (Component) => (props) => {
clearTimeout(timer_id);
});
},
- [dispatch]
+ [dispatch],
);
// UPDATE CHECK
const updatedAt = useSelector((state) => state.rates.updated_at);
@@ -681,7 +681,7 @@ const withRealtime = (Component) => (props) => {
console.log(
'⚡️ Firebase updated',
updated_at,
- updatedAtRef.current
+ updatedAtRef.current,
);
}
if (updated_at !== updatedAtRef.current) {
@@ -728,7 +728,7 @@ const withAppUpdateCheck = (Component) => (props) => {
invalidVersion,
ignoreUpdate,
}),
- shallowEqual
+ shallowEqual,
);
const dispatch = useDispatch();
let shouldIgnoreUpdate = false;
@@ -807,7 +807,7 @@ const withUserActivity = (Component) => (props) => {
version,
appUpdated,
}),
- shallowEqual
+ shallowEqual,
);
const isActiveAppState = useAppState('active');
const dispatch = useDispatch();
@@ -815,7 +815,7 @@ const withUserActivity = (Component) => (props) => {
const alreadyHandlingRef = React.useRef(false);
const [, setAllowNotifications] = Helper.useSharedState(
'allowNotifications',
- false
+ false,
);
React.useEffect(() => {
// only took values from the store when the app state is active or on startup
@@ -857,7 +857,7 @@ const withUserActivity = (Component) => (props) => {
if (__DEV__) {
console.log(
'Device is already registered to receive notifications',
- pushToken
+ pushToken,
);
}
} else {
@@ -885,7 +885,7 @@ const withUserActivity = (Component) => (props) => {
const current_date = DateUtils.get();
const days_from_update = current_date.diff(
appUpdated ?? Date.now(),
- 'days'
+ 'days',
);
// https://www.raywenderlich.com/9009-requesting-app-ratings-and-reviews-tutorial-for-ios
if (
@@ -925,5 +925,5 @@ export default compose(
withAppUpdateCheck,
withAppStatistics,
withUserActivity,
- withContainer(true)
+ withContainer(true),
)(AppContainer);
diff --git a/packages/client/components/AppContainer.web.js b/packages/client/components/AppContainer.web.js
index e7fb406..017cd5d 100644
--- a/packages/client/components/AppContainer.web.js
+++ b/packages/client/components/AppContainer.web.js
@@ -96,11 +96,11 @@ const StatView = ({ title, current, change }) => {
change = parseFloat(change);
const color = React.useMemo(
() => Helper.getChangeColor(change, theme),
- [change, theme]
+ [change, theme],
);
const change_fmt = React.useMemo(
() => AmbitoDolar.getRateChange(change, true),
- [change]
+ [change],
);
return (
@@ -145,131 +145,133 @@ const StatView = ({ title, current, change }) => {
);
};
-const FundingContainer = compose(withStats)(
- ({ title, users, events, conversions }) => {
- const { theme, fonts } = Helper.useTheme();
- const currentMonth = DateUtils.get().format('MMMM YYYY');
- return (
-
+const FundingContainer = compose(withStats)(({
+ title,
+ users,
+ events,
+ conversions,
+}) => {
+ const { theme, fonts } = Helper.useTheme();
+ const currentMonth = DateUtils.get().format('MMMM YYYY');
+ return (
+
+
-
+
+ {title || `Métricas de ${AmbitoDolar.getCapitalized(currentMonth)}`}
+
+
+
+
+
+
+ {false && (
+
+ )}
+
+
+
-
-
+ {false && (
+
- {title ||
- `Métricas de ${AmbitoDolar.getCapitalized(currentMonth)}`}
-
-
-
-
-
-
- {false && (
-
- )}
-
+ )}
-
- {`${Settings.APP_NAME} opera de forma transparente compartiendo sus métricas mensuales con la comunidad.`}
-
- {false && (
-
- )}
-
-
-
+
-
- );
- }
-);
+
+
+ );
+});
const withRates = (Component) => (props) => {
const { theme } = Helper.useTheme();
@@ -319,11 +321,11 @@ const RatesContainer = compose(withRates)(({ title, rates, processedAt }) => {
const { theme, fonts } = Helper.useTheme();
const rateTypes = React.useMemo(
() => Object.keys(rates) /*.slice(0, -1)*/,
- [rates]
+ [rates],
);
const rows = React.useMemo(
() => _.chunk(rateTypes, LAYOUT_RATE_COLUMNS),
- [rateTypes]
+ [rateTypes],
);
const condensed = rows.length > 4;
const getItemView = React.useCallback(
@@ -338,7 +340,7 @@ const RatesContainer = compose(withRates)(({ title, rates, processedAt }) => {
}}
/>
),
- [rates, condensed]
+ [rates, condensed],
);
return (
diff --git a/packages/client/components/CardView.js b/packages/client/components/CardView.js
index 6df4e54..e8457ef 100644
--- a/packages/client/components/CardView.js
+++ b/packages/client/components/CardView.js
@@ -57,7 +57,7 @@ export default ({
),
];
}),
- [children, isModal]
+ [children, isModal],
);
return (
- )
+ ),
);
diff --git a/packages/client/components/FixedFlatList.js b/packages/client/components/FixedFlatList.js
index 216ed38..48a5700 100644
--- a/packages/client/components/FixedFlatList.js
+++ b/packages/client/components/FixedFlatList.js
@@ -129,7 +129,7 @@ const FixedFlatList = ({
);
},
- [theme, data, isModal]
+ [theme, data, isModal],
);
const separatorComponent = React.useCallback(
() => (
@@ -143,15 +143,15 @@ const FixedFlatList = ({
),
- [theme, isModal]
+ [theme, isModal],
);
const headerComponent = React.useCallback(
() => ,
- [ListHeaderComponent, title]
+ [ListHeaderComponent, title],
);
const footerComponent = React.useCallback(
() => ,
- [ListFooterComponent, note]
+ [ListFooterComponent, note],
);
const extraData = React.useMemo(() => Date.now(), [theme, data]);
return (
diff --git a/packages/client/components/RateView.js b/packages/client/components/RateView.js
index c91eb0d..dd54527 100644
--- a/packages/client/components/RateView.js
+++ b/packages/client/components/RateView.js
@@ -160,6 +160,7 @@ const InlineRateDetailView = ({
style={[
fonts.subhead,
{
+ // FIXME: took width from container and center the chart
width: 140,
textAlign: 'right',
color,
@@ -186,23 +187,23 @@ export default ({
const { theme } = Helper.useTheme();
const [timestamp, value, change] = React.useMemo(
() => stats[stats.length - 1],
- [stats]
+ [stats],
);
const color = React.useMemo(
() => Helper.getChangeColor(change, theme),
- [change, theme]
+ [change, theme],
);
const value_fmt = React.useMemo(
() => Helper.getInlineRateValue(value),
- [value]
+ [value],
);
const timestamp_fmt = React.useMemo(
() => DateUtils.humanize(timestamp, 1),
- [timestamp]
+ [timestamp],
);
const change_fmt = React.useMemo(
() => AmbitoDolar.getRateChange(stats[stats.length - 1], true),
- [stats]
+ [stats],
);
const onPress = React.useCallback(() => onSelected(type), [onSelected, type]);
return (
diff --git a/packages/client/components/VictoryMiniRateChartView.js b/packages/client/components/VictoryMiniRateChartView.js
index 5847a5b..69399b0 100644
--- a/packages/client/components/VictoryMiniRateChartView.js
+++ b/packages/client/components/VictoryMiniRateChartView.js
@@ -21,7 +21,7 @@ const VictoryMiniRateChartView = ({
// prevent rendering issues when values are close to 0
y0: -Settings.PADDING * 2,
})),
- [stats]
+ [stats],
);
// data normalization
const sell_rates = React.useMemo(() => data.map(({ y }) => y), [data]);
@@ -34,7 +34,7 @@ const VictoryMiniRateChartView = ({
x: [min_x, max_x],
y: min_y === max_y ? [min_y - 0.1, max_y + 0.1] : [min_y, max_y],
}),
- [min_x, max_x, min_y, max_y]
+ [min_x, max_x, min_y, max_y],
);
const area_style = React.useMemo(
() => ({
@@ -46,7 +46,7 @@ const VictoryMiniRateChartView = ({
fillOpacity: 0.15,
},
}),
- [color]
+ [color],
);
return (
{
selectionIndex.value === null
? stats[stats.length - 1]
: stats[clamp(selectionIndex.value, 0, stats.length - 1)],
- [stats]
+ [stats],
);
const timestamp_props = useAnimatedProps(() => ({
text: selected_stat.value.timestamp,
@@ -145,7 +145,7 @@ const InteractiveRateChartView = ({
bottom: AXIS_OFFSET + axis_font_height_rounded,
left: AXIS_OFFSET + axis_y_width_rounded,
}),
- [axis_y_width_rounded, axis_font_height_rounded]
+ [axis_y_width_rounded, axis_font_height_rounded],
);
const overlay_style = React.useMemo(
() => ({
@@ -159,12 +159,12 @@ const InteractiveRateChartView = ({
height -
(AXIS_OFFSET + axis_font_height_rounded + Settings.PADDING * 2),
}),
- [axis_y_width_rounded, axis_font_height_rounded]
+ [axis_y_width_rounded, axis_font_height_rounded],
);
const axis_x_format = React.useCallback(
// invalid values when animated
(value) => stats[Math.round(value)]?.timestamp_axis,
- [stats]
+ [stats],
);
const axis_x_style = React.useMemo(
() => ({
@@ -191,11 +191,11 @@ const InteractiveRateChartView = ({
fontFamily: processFontFamily(Settings.getFontObject().fontFamily),
},
}),
- [theme]
+ [theme],
);
const axis_y_format = React.useCallback(
(value) => Helper.getCurrency(value),
- []
+ [],
);
const axis_y_style = React.useMemo(
() => ({
@@ -221,11 +221,11 @@ const InteractiveRateChartView = ({
fontFamily: processFontFamily(Settings.getFontObject().fontFamily),
},
}),
- [theme]
+ [theme],
);
const color = React.useMemo(
() => stats[stats.length - 1].change_color,
- [stats]
+ [stats],
);
const transparent_axis_style = React.useMemo(
() => ({
@@ -233,7 +233,7 @@ const InteractiveRateChartView = ({
ticks: { stroke: 'transparent' },
tickLabels: { fill: 'transparent' },
}),
- []
+ [],
);
const area_style = React.useMemo(
() => ({
@@ -245,7 +245,7 @@ const InteractiveRateChartView = ({
fillOpacity: 0.15,
},
}),
- [color]
+ [color],
);
if (!axis_y_width_rounded && !axis_font_height_rounded) {
const fontSize = AXIS_FONT_SIZE;
@@ -328,7 +328,7 @@ const InteractiveRateChartView = ({
fill: Settings.getStrokeColor(theme),
// https://github.com/expo/expo/issues/1959#issuecomment-780198250
fontFamily: processFontFamily(
- Settings.getFontObject().fontFamily
+ Settings.getFontObject().fontFamily,
),
}}
/>
@@ -381,7 +381,7 @@ export default ({ stats }) => {
// prevent rendering issues when values are close to 0
y0: -Settings.PADDING * 2,
})),
- [stats]
+ [stats],
);
// data normalization
const sell_rates = React.useMemo(() => data.map(({ y }) => y), [data]);
@@ -394,7 +394,7 @@ export default ({ stats }) => {
x: [min_x, max_x],
y: min_y === max_y ? [min_y - 0.1, max_y + 0.1] : [min_y, max_y],
}),
- [min_x, max_x, min_y, max_y]
+ [min_x, max_x, min_y, max_y],
);
// add formatted data to stats (required by worklets)
const { theme } = Helper.useTheme();
@@ -411,7 +411,7 @@ export default ({ stats }) => {
change_color: Helper.getChangeColor(stat[2], theme),
}),
})),
- [stats, theme]
+ [stats, theme],
);
// shared
const selection_index = useSharedValue(null);
diff --git a/packages/client/components/withContainer.js b/packages/client/components/withContainer.js
index 2e0f36e..14c18ca 100644
--- a/packages/client/components/withContainer.js
+++ b/packages/client/components/withContainer.js
@@ -10,7 +10,7 @@ export default (alternativeBackground) => (Component) => (props) => {
const background_color = Settings.getBackgroundColor(
theme,
alternativeBackground,
- isModal
+ isModal,
);
const container_style = React.useMemo(
() => ({
@@ -18,7 +18,7 @@ export default (alternativeBackground) => (Component) => (props) => {
justifyContent: 'center',
backgroundColor: background_color,
}),
- [background_color]
+ [background_color],
);
return (
diff --git a/packages/client/components/withScreenshotShareSheet.js b/packages/client/components/withScreenshotShareSheet.js
index 76d6314..290c866 100644
--- a/packages/client/components/withScreenshotShareSheet.js
+++ b/packages/client/components/withScreenshotShareSheet.js
@@ -112,7 +112,7 @@ const withScreenshotShareSheet = (action_opts) => (Component) => (props) => {
initial: false,
}); */
} else if (button_name === share_opt) {
- Amplitude.logEvent('Share rates');
+ Amplitude.track('Share rates');
captureRef(shareViewContainerRef.current, {
result: 'data-uri',
}).then(
@@ -134,13 +134,13 @@ const withScreenshotShareSheet = (action_opts) => (Component) => (props) => {
(error) =>
console.error(
'Unable to generate view snapshot',
- error
- )
+ error,
+ ),
);
} else if (button_name === crash_opt) {
throw new Error('Force application crash');
}
- }
+ },
);
});
}}
@@ -168,7 +168,7 @@ const withScreenshotShareSheet = (action_opts) => (Component) => (props) => {
[
// ignore
],
- { compress: 1, format: ImageManipulator.SaveFormat.PNG }
+ { compress: 1, format: ImageManipulator.SaveFormat.PNG },
);
if (__DEV__) {
console.log('Snapshot for sharing', new_uri);
@@ -199,7 +199,7 @@ const withScreenshotShareSheet = (action_opts) => (Component) => (props) => {
.catch(console.warn);
},
(error) =>
- console.error('Unable to generate the snapshot for sharing', error)
+ console.error('Unable to generate the snapshot for sharing', error),
)
.finally(() => {
// reset
diff --git a/packages/client/config/settings.js b/packages/client/config/settings.js
index bd5ad84..9ad69a5 100644
--- a/packages/client/config/settings.js
+++ b/packages/client/config/settings.js
@@ -1,16 +1,14 @@
-// import * as Application from 'expo-application';
import Constants from 'expo-constants';
-//import * as Updates from 'expo-updates';
+import * as Device from 'expo-device';
import { Dimensions, Platform } from 'react-native';
-import DeviceInfo from 'react-native-device-info';
import { human, iOSColors } from 'react-native-typography';
const PADDING = 16;
const SMALL_PADDING = PADDING / 4;
-const DEVICE_TYPE = DeviceInfo.getDeviceType();
-const IS_TABLET = DEVICE_TYPE === 'Tablet';
-const IS_HANDSET = DEVICE_TYPE === 'Handset';
+const DEVICE_TYPE = Device.deviceType;
+const IS_TABLET = DEVICE_TYPE === Device.DeviceType.TABLET;
+const IS_HANDSET = DEVICE_TYPE === Device.DeviceType.PHONE;
const IS_IPAD = Platform.OS === 'ios' && IS_TABLET;
const HAPTICS_ENABLED = Platform.OS === 'ios';
@@ -47,7 +45,7 @@ const ICON_SIZE = 24;
const SOCIAL_ICON_SIZE = 17;
const APP_IGNORE_UPDATE_EXPIRATION = 30 * 24 * 60 * 60 * 1000; // 30 days
const {
- manifest: {
+ expoConfig: {
name: APP_NAME,
version: APP_VERSION,
revisionId: APP_REVISION_ID,
@@ -66,14 +64,6 @@ const {
},
installationId: INSTALLATION_ID,
} = Constants;
-/* const {
- applicationId: APP_ID,
- applicationName: APP_NAME,
- nativeApplicationVersion: APP_VERSION,
-} = Application; */
-/* const {
- manifest: { revisionId: APP_REVISION_ID },
-} = Updates; */
const APP_COPYRIGHT = `© ${new Date().getFullYear()} ${APP_NAME}`;
const APP_DOMAIN = 'ambito-dolar.app';
const WEBSITE_URL = `https://${APP_DOMAIN}`;
diff --git a/packages/client/eas.json b/packages/client/eas.json
index a2815bd..7eba779 100644
--- a/packages/client/eas.json
+++ b/packages/client/eas.json
@@ -1,17 +1,20 @@
{
"cli": {
- "version": ">= 0.52.0"
+ "version": ">= 4.1.2"
},
"build": {
"fast": {
"ios": {
- "resourceClass": "m-medium"
- }
+ "resourceClass": "m-medium",
+ "image": "latest"
+ },
+ "channel": "fast"
},
"development": {
"extends": "fast",
"developmentClient": true,
- "distribution": "internal"
+ "distribution": "internal",
+ "channel": "development"
},
"preview": {
"extends": "fast",
@@ -26,7 +29,8 @@
"extends": "development",
"ios": {
"simulator": true
- }
+ },
+ "channel": "simulator"
}
},
"submit": {
diff --git a/packages/client/hooks/useColorScheme.js b/packages/client/hooks/useColorScheme.js
index df3975e..513f5f1 100644
--- a/packages/client/hooks/useColorScheme.js
+++ b/packages/client/hooks/useColorScheme.js
@@ -20,7 +20,7 @@ const useColorScheme = () => {
const appearance = useSelector((state) => state.application.appearance);
const colorScheme = _useColorScheme();
const [currentScheme, setCurrentScheme] = React.useState(
- appearance ?? colorScheme
+ appearance ?? colorScheme,
);
const isActiveAppState = useAppState('active');
React.useEffect(() => {
diff --git a/packages/client/ios/Podfile b/packages/client/ios/Podfile
index e077090..b49bfa5 100644
--- a/packages/client/ios/Podfile
+++ b/packages/client/ios/Podfile
@@ -1,11 +1,11 @@
require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking")
require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods")
-require File.join(File.dirname(`node --print "require.resolve('@react-native-community/cli-platform-ios/package.json')"`), "native_modules")
require 'json'
podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {}
ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0'
+ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR']
platform :ios, podfile_properties['ios.deploymentTarget'] || '13.0'
install! 'cocoapods',
@@ -61,8 +61,6 @@ target 'mbitoDlar' do
react_native_post_install(
installer,
config[:reactNativePath],
- # Set `mac_catalyst_enabled` to `true` in order to apply patches
- # necessary for Mac Catalyst builds
:mac_catalyst_enabled => false
)
__apply_Xcode_12_5_M1_post_install_workaround(installer)
diff --git a/packages/client/ios/Podfile.lock b/packages/client/ios/Podfile.lock
index 3d8b584..fd20e9c 100644
--- a/packages/client/ios/Podfile.lock
+++ b/packages/client/ios/Podfile.lock
@@ -1,161 +1,146 @@
PODS:
- - Amplitude (8.16.3):
- - AnalyticsConnector (~> 1.0.0)
- - amplitude-react-native (2.17.2):
- - Amplitude (= 8.16.3)
+ - amplitude-react-native (1.4.4):
- React-Core
- - AnalyticsConnector (1.0.1)
- ASN1Decoder (1.8.0)
- boost (1.76.0)
- DoubleConversion (1.1.6)
- - EASClient (0.5.1):
+ - EASClient (0.6.0):
- ExpoModulesCore
- - EXApplication (5.1.1):
+ - EXApplication (5.3.1):
- ExpoModulesCore
- - EXConstants (14.2.1):
+ - EXConstants (14.4.2):
- ExpoModulesCore
- - EXFileSystem (15.2.2):
+ - EXFileSystem (15.4.4):
- ExpoModulesCore
- - EXFont (11.1.1):
+ - EXFont (11.4.0):
- ExpoModulesCore
- - EXImageLoader (4.1.1):
+ - EXImageLoader (4.3.0):
- ExpoModulesCore
- React-Core
- - EXJSONUtils (0.5.1)
- - EXManifests (0.5.2):
- - EXJSONUtils
- - EXNotifications (0.18.1):
+ - EXJSONUtils (0.7.1)
+ - EXManifests (0.7.2):
- ExpoModulesCore
- - Expo (48.0.20):
+ - EXNotifications (0.20.1):
- ExpoModulesCore
- - expo-dev-client (2.2.1):
+ - Expo (49.0.13):
+ - ExpoModulesCore
+ - expo-dev-client (2.4.11):
- EXManifests
- expo-dev-launcher
- expo-dev-menu
- expo-dev-menu-interface
- EXUpdatesInterface
- - expo-dev-launcher (2.2.1):
+ - expo-dev-launcher (2.4.13):
- EXManifests
- - expo-dev-launcher/Main (= 2.2.1)
+ - expo-dev-launcher/Main (= 2.4.13)
- expo-dev-menu
- expo-dev-menu-interface
- ExpoModulesCore
- EXUpdatesInterface
+ - RCT-Folly (= 2021.07.22.00)
- React-Core
- - expo-dev-launcher/Main (2.2.1):
+ - React-RCTAppDelegate
+ - expo-dev-launcher/Main (2.4.13):
- EXManifests
- expo-dev-launcher/Unsafe
- expo-dev-menu
- expo-dev-menu-interface
- ExpoModulesCore
- EXUpdatesInterface
+ - RCT-Folly (= 2021.07.22.00)
- React-Core
- - expo-dev-launcher/Unsafe (2.2.1):
+ - React-RCTAppDelegate
+ - expo-dev-launcher/Unsafe (2.4.13):
- EXManifests
- expo-dev-menu
- expo-dev-menu-interface
- ExpoModulesCore
- EXUpdatesInterface
+ - RCT-Folly (= 2021.07.22.00)
+ - React-Core
+ - React-RCTAppDelegate
+ - expo-dev-menu (3.2.1):
+ - expo-dev-menu/Main (= 3.2.1)
+ - RCT-Folly (= 2021.07.22.00)
- React-Core
- - expo-dev-menu (2.2.0):
- - expo-dev-menu/Main (= 2.2.0)
- - expo-dev-menu-interface (1.1.1)
- - expo-dev-menu/GestureHandler (2.2.0)
- - expo-dev-menu/Main (2.2.0):
+ - expo-dev-menu-interface (1.3.0)
+ - expo-dev-menu/Main (3.2.1):
- EXManifests
- expo-dev-menu-interface
- expo-dev-menu/Vendored
- ExpoModulesCore
+ - RCT-Folly (= 2021.07.22.00)
- React-Core
- - expo-dev-menu/Reanimated (2.2.0):
- - DoubleConversion
- - FBLazyVector
- - FBReactNativeSpec
- - glog
- - RCT-Folly
- - RCTRequired
- - RCTTypeSafety
- - React-callinvoker
+ - expo-dev-menu/SafeAreaView (3.2.1):
+ - ExpoModulesCore
+ - RCT-Folly (= 2021.07.22.00)
- React-Core
- - React-Core/DevSupport
- - React-Core/RCTWebSocket
- - React-CoreModules
- - React-cxxreact
- - React-jsi
- - React-jsiexecutor
- - React-jsinspector
- - React-RCTActionSheet
- - React-RCTAnimation
- - React-RCTBlob
- - React-RCTImage
- - React-RCTLinking
- - React-RCTNetwork
- - React-RCTSettings
- - React-RCTText
- - React-RCTVibration
- - ReactCommon/turbomodule/core
- - Yoga
- - expo-dev-menu/SafeAreaView (2.2.0)
- - expo-dev-menu/Vendored (2.2.0):
- - expo-dev-menu/GestureHandler
- - expo-dev-menu/Reanimated
+ - expo-dev-menu/Vendored (3.2.1):
- expo-dev-menu/SafeAreaView
- - ExpoBlur (12.3.2):
+ - RCT-Folly (= 2021.07.22.00)
+ - React-Core
+ - ExpoBlur (12.4.1):
- ExpoModulesCore
- - ExpoClipboard (4.1.2):
+ - ExpoClipboard (4.3.1):
- ExpoModulesCore
- - ExpoDevice (5.2.1):
+ - ExpoDevice (5.4.0):
- ExpoModulesCore
- - ExpoHaptics (12.2.1):
+ - ExpoHaptics (12.4.0):
- ExpoModulesCore
- - ExpoImageManipulator (11.1.1):
+ - ExpoImageManipulator (11.3.0):
- EXImageLoader
- ExpoModulesCore
- - ExpoKeepAwake (12.0.1):
+ - ExpoKeepAwake (12.3.0):
- ExpoModulesCore
- - ExpoLocalization (14.1.1):
+ - ExpoLocalization (14.3.0):
- ExpoModulesCore
- - ExpoMailComposer (12.1.1):
+ - ExpoMailComposer (12.3.0):
- ExpoModulesCore
- - ExpoModulesCore (1.2.7):
+ - ExpoModulesCore (1.5.11):
+ - RCT-Folly (= 2021.07.22.00)
- React-Core
+ - React-NativeModulesApple
- React-RCTAppDelegate
- ReactCommon/turbomodule/core
- - ExpoStoreReview (6.2.1):
+ - ExpoScreenOrientation (6.0.5):
- ExpoModulesCore
- - ExpoSystemUI (2.2.1):
+ - RCT-Folly (= 2021.07.22.00)
+ - React-Core
+ - ExpoSharing (11.5.0):
- ExpoModulesCore
- - EXScreenOrientation (5.1.1):
+ - ExpoStoreReview (6.4.0):
- ExpoModulesCore
- - React-Core
- - EXSharing (11.2.2):
+ - ExpoSystemUI (2.4.0):
- ExpoModulesCore
- - EXSplashScreen (0.18.2):
+ - EXSplashScreen (0.20.5):
- ExpoModulesCore
+ - RCT-Folly (= 2021.07.22.00)
- React-Core
- - EXStructuredHeaders (3.1.2)
- - EXUpdates (0.16.4):
+ - EXStructuredHeaders (3.3.0)
+ - EXUpdates (0.18.14):
- ASN1Decoder (~> 1.8)
- EASClient
- EXManifests
- ExpoModulesCore
- EXStructuredHeaders
- EXUpdatesInterface
+ - RCT-Folly (= 2021.07.22.00)
+ - ReachabilitySwift
- React-Core
- - EXUpdatesInterface (0.9.3)
- - FBLazyVector (0.71.8)
- - FBReactNativeSpec (0.71.8):
- - RCT-Folly (= 2021.07.22.00)
- - RCTRequired (= 0.71.8)
- - RCTTypeSafety (= 0.71.8)
- - React-Core (= 0.71.8)
- - React-jsi (= 0.71.8)
- - ReactCommon/turbomodule/core (= 0.71.8)
+ - EXUpdatesInterface (0.10.1)
+ - FBLazyVector (0.72.5)
+ - FBReactNativeSpec (0.72.5):
+ - RCT-Folly (= 2021.07.22.00)
+ - RCTRequired (= 0.72.5)
+ - RCTTypeSafety (= 0.72.5)
+ - React-Core (= 0.72.5)
+ - React-jsi (= 0.72.5)
+ - ReactCommon/turbomodule/core (= 0.72.5)
- fmt (6.2.1)
- glog (0.3.5)
- - hermes-engine (0.71.8):
- - hermes-engine/Pre-built (= 0.71.8)
- - hermes-engine/Pre-built (0.71.8)
+ - hermes-engine (0.72.5):
+ - hermes-engine/Pre-built (= 0.72.5)
+ - hermes-engine/Pre-built (0.72.5)
- libevent (2.1.12)
- RCT-Folly (2021.07.22.00):
- boost
@@ -174,27 +159,30 @@ PODS:
- fmt (~> 6.2.1)
- glog
- libevent
- - RCTRequired (0.71.8)
- - RCTTypeSafety (0.71.8):
- - FBLazyVector (= 0.71.8)
- - RCTRequired (= 0.71.8)
- - React-Core (= 0.71.8)
- - React (0.71.8):
- - React-Core (= 0.71.8)
- - React-Core/DevSupport (= 0.71.8)
- - React-Core/RCTWebSocket (= 0.71.8)
- - React-RCTActionSheet (= 0.71.8)
- - React-RCTAnimation (= 0.71.8)
- - React-RCTBlob (= 0.71.8)
- - React-RCTImage (= 0.71.8)
- - React-RCTLinking (= 0.71.8)
- - React-RCTNetwork (= 0.71.8)
- - React-RCTSettings (= 0.71.8)
- - React-RCTText (= 0.71.8)
- - React-RCTVibration (= 0.71.8)
- - React-callinvoker (0.71.8)
- - React-Codegen (0.71.8):
+ - RCTRequired (0.72.5)
+ - RCTTypeSafety (0.72.5):
+ - FBLazyVector (= 0.72.5)
+ - RCTRequired (= 0.72.5)
+ - React-Core (= 0.72.5)
+ - ReachabilitySwift (5.0.0)
+ - React (0.72.5):
+ - React-Core (= 0.72.5)
+ - React-Core/DevSupport (= 0.72.5)
+ - React-Core/RCTWebSocket (= 0.72.5)
+ - React-RCTActionSheet (= 0.72.5)
+ - React-RCTAnimation (= 0.72.5)
+ - React-RCTBlob (= 0.72.5)
+ - React-RCTImage (= 0.72.5)
+ - React-RCTLinking (= 0.72.5)
+ - React-RCTNetwork (= 0.72.5)
+ - React-RCTSettings (= 0.72.5)
+ - React-RCTText (= 0.72.5)
+ - React-RCTVibration (= 0.72.5)
+ - React-callinvoker (0.72.5)
+ - React-Codegen (0.72.5):
+ - DoubleConversion
- FBReactNativeSpec
+ - glog
- hermes-engine
- RCT-Folly
- RCTRequired
@@ -202,319 +190,392 @@ PODS:
- React-Core
- React-jsi
- React-jsiexecutor
+ - React-NativeModulesApple
+ - React-rncore
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- - React-Core (0.71.8):
+ - React-Core (0.72.5):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-Core/Default (= 0.71.8)
- - React-cxxreact (= 0.71.8)
+ - React-Core/Default (= 0.72.5)
+ - React-cxxreact
- React-hermes
- - React-jsi (= 0.71.8)
- - React-jsiexecutor (= 0.71.8)
- - React-perflogger (= 0.71.8)
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimeexecutor
+ - React-utils
+ - SocketRocket (= 0.6.1)
- Yoga
- - React-Core/CoreModulesHeaders (0.71.8):
+ - React-Core/CoreModulesHeaders (0.72.5):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- - React-cxxreact (= 0.71.8)
+ - React-cxxreact
- React-hermes
- - React-jsi (= 0.71.8)
- - React-jsiexecutor (= 0.71.8)
- - React-perflogger (= 0.71.8)
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimeexecutor
+ - React-utils
+ - SocketRocket (= 0.6.1)
- Yoga
- - React-Core/Default (0.71.8):
+ - React-Core/Default (0.72.5):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-cxxreact (= 0.71.8)
+ - React-cxxreact
- React-hermes
- - React-jsi (= 0.71.8)
- - React-jsiexecutor (= 0.71.8)
- - React-perflogger (= 0.71.8)
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimeexecutor
+ - React-utils
+ - SocketRocket (= 0.6.1)
- Yoga
- - React-Core/DevSupport (0.71.8):
+ - React-Core/DevSupport (0.72.5):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-Core/Default (= 0.71.8)
- - React-Core/RCTWebSocket (= 0.71.8)
- - React-cxxreact (= 0.71.8)
+ - React-Core/Default (= 0.72.5)
+ - React-Core/RCTWebSocket (= 0.72.5)
+ - React-cxxreact
- React-hermes
- - React-jsi (= 0.71.8)
- - React-jsiexecutor (= 0.71.8)
- - React-jsinspector (= 0.71.8)
- - React-perflogger (= 0.71.8)
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector (= 0.72.5)
+ - React-perflogger
+ - React-runtimeexecutor
+ - React-utils
+ - SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTActionSheetHeaders (0.71.8):
+ - React-Core/RCTActionSheetHeaders (0.72.5):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- - React-cxxreact (= 0.71.8)
+ - React-cxxreact
- React-hermes
- - React-jsi (= 0.71.8)
- - React-jsiexecutor (= 0.71.8)
- - React-perflogger (= 0.71.8)
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimeexecutor
+ - React-utils
+ - SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTAnimationHeaders (0.71.8):
+ - React-Core/RCTAnimationHeaders (0.72.5):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- - React-cxxreact (= 0.71.8)
+ - React-cxxreact
- React-hermes
- - React-jsi (= 0.71.8)
- - React-jsiexecutor (= 0.71.8)
- - React-perflogger (= 0.71.8)
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimeexecutor
+ - React-utils
+ - SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTBlobHeaders (0.71.8):
+ - React-Core/RCTBlobHeaders (0.72.5):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- - React-cxxreact (= 0.71.8)
+ - React-cxxreact
- React-hermes
- - React-jsi (= 0.71.8)
- - React-jsiexecutor (= 0.71.8)
- - React-perflogger (= 0.71.8)
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimeexecutor
+ - React-utils
+ - SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTImageHeaders (0.71.8):
+ - React-Core/RCTImageHeaders (0.72.5):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- - React-cxxreact (= 0.71.8)
+ - React-cxxreact
- React-hermes
- - React-jsi (= 0.71.8)
- - React-jsiexecutor (= 0.71.8)
- - React-perflogger (= 0.71.8)
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimeexecutor
+ - React-utils
+ - SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTLinkingHeaders (0.71.8):
+ - React-Core/RCTLinkingHeaders (0.72.5):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- - React-cxxreact (= 0.71.8)
+ - React-cxxreact
- React-hermes
- - React-jsi (= 0.71.8)
- - React-jsiexecutor (= 0.71.8)
- - React-perflogger (= 0.71.8)
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimeexecutor
+ - React-utils
+ - SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTNetworkHeaders (0.71.8):
+ - React-Core/RCTNetworkHeaders (0.72.5):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- - React-cxxreact (= 0.71.8)
+ - React-cxxreact
- React-hermes
- - React-jsi (= 0.71.8)
- - React-jsiexecutor (= 0.71.8)
- - React-perflogger (= 0.71.8)
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimeexecutor
+ - React-utils
+ - SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTSettingsHeaders (0.71.8):
+ - React-Core/RCTSettingsHeaders (0.72.5):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- - React-cxxreact (= 0.71.8)
+ - React-cxxreact
- React-hermes
- - React-jsi (= 0.71.8)
- - React-jsiexecutor (= 0.71.8)
- - React-perflogger (= 0.71.8)
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimeexecutor
+ - React-utils
+ - SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTTextHeaders (0.71.8):
+ - React-Core/RCTTextHeaders (0.72.5):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- - React-cxxreact (= 0.71.8)
+ - React-cxxreact
- React-hermes
- - React-jsi (= 0.71.8)
- - React-jsiexecutor (= 0.71.8)
- - React-perflogger (= 0.71.8)
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimeexecutor
+ - React-utils
+ - SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTVibrationHeaders (0.71.8):
+ - React-Core/RCTVibrationHeaders (0.72.5):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- - React-cxxreact (= 0.71.8)
+ - React-cxxreact
- React-hermes
- - React-jsi (= 0.71.8)
- - React-jsiexecutor (= 0.71.8)
- - React-perflogger (= 0.71.8)
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimeexecutor
+ - React-utils
+ - SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTWebSocket (0.71.8):
+ - React-Core/RCTWebSocket (0.72.5):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-Core/Default (= 0.71.8)
- - React-cxxreact (= 0.71.8)
+ - React-Core/Default (= 0.72.5)
+ - React-cxxreact
- React-hermes
- - React-jsi (= 0.71.8)
- - React-jsiexecutor (= 0.71.8)
- - React-perflogger (= 0.71.8)
+ - React-jsi
+ - React-jsiexecutor
+ - React-perflogger
+ - React-runtimeexecutor
+ - React-utils
+ - SocketRocket (= 0.6.1)
- Yoga
- - React-CoreModules (0.71.8):
+ - React-CoreModules (0.72.5):
- RCT-Folly (= 2021.07.22.00)
- - RCTTypeSafety (= 0.71.8)
- - React-Codegen (= 0.71.8)
- - React-Core/CoreModulesHeaders (= 0.71.8)
- - React-jsi (= 0.71.8)
+ - RCTTypeSafety (= 0.72.5)
+ - React-Codegen (= 0.72.5)
+ - React-Core/CoreModulesHeaders (= 0.72.5)
+ - React-jsi (= 0.72.5)
- React-RCTBlob
- - React-RCTImage (= 0.71.8)
- - ReactCommon/turbomodule/core (= 0.71.8)
- - React-cxxreact (0.71.8):
+ - React-RCTImage (= 0.72.5)
+ - ReactCommon/turbomodule/core (= 0.72.5)
+ - SocketRocket (= 0.6.1)
+ - React-cxxreact (0.72.5):
- boost (= 1.76.0)
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-callinvoker (= 0.71.8)
- - React-jsi (= 0.71.8)
- - React-jsinspector (= 0.71.8)
- - React-logger (= 0.71.8)
- - React-perflogger (= 0.71.8)
- - React-runtimeexecutor (= 0.71.8)
- - React-hermes (0.71.8):
+ - React-callinvoker (= 0.72.5)
+ - React-debug (= 0.72.5)
+ - React-jsi (= 0.72.5)
+ - React-jsinspector (= 0.72.5)
+ - React-logger (= 0.72.5)
+ - React-perflogger (= 0.72.5)
+ - React-runtimeexecutor (= 0.72.5)
+ - React-debug (0.72.5)
+ - React-hermes (0.72.5):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- RCT-Folly/Futures (= 2021.07.22.00)
- - React-cxxreact (= 0.71.8)
+ - React-cxxreact (= 0.72.5)
- React-jsi
- - React-jsiexecutor (= 0.71.8)
- - React-jsinspector (= 0.71.8)
- - React-perflogger (= 0.71.8)
- - React-jsi (0.71.8):
+ - React-jsiexecutor (= 0.72.5)
+ - React-jsinspector (= 0.72.5)
+ - React-perflogger (= 0.72.5)
+ - React-jsi (0.72.5):
- boost (= 1.76.0)
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-jsiexecutor (0.71.8):
+ - React-jsiexecutor (0.72.5):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-cxxreact (= 0.71.8)
- - React-jsi (= 0.71.8)
- - React-perflogger (= 0.71.8)
- - React-jsinspector (0.71.8)
- - React-logger (0.71.8):
+ - React-cxxreact (= 0.72.5)
+ - React-jsi (= 0.72.5)
+ - React-perflogger (= 0.72.5)
+ - React-jsinspector (0.72.5)
+ - React-logger (0.72.5):
- glog
- react-native-animateable-text (0.11.0):
- React-Core
- - react-native-safe-area-context (4.7.1):
+ - react-native-safe-area-context (4.7.2):
- React-Core
- react-native-segmented-control (2.4.2):
- React-Core
- react-native-view-shot (3.7.0):
- React-Core
- - React-perflogger (0.71.8)
- - React-RCTActionSheet (0.71.8):
- - React-Core/RCTActionSheetHeaders (= 0.71.8)
- - React-RCTAnimation (0.71.8):
- - RCT-Folly (= 2021.07.22.00)
- - RCTTypeSafety (= 0.71.8)
- - React-Codegen (= 0.71.8)
- - React-Core/RCTAnimationHeaders (= 0.71.8)
- - React-jsi (= 0.71.8)
- - ReactCommon/turbomodule/core (= 0.71.8)
- - React-RCTAppDelegate (0.71.8):
+ - React-NativeModulesApple (0.72.5):
+ - hermes-engine
+ - React-callinvoker
+ - React-Core
+ - React-cxxreact
+ - React-jsi
+ - React-runtimeexecutor
+ - ReactCommon/turbomodule/bridging
+ - ReactCommon/turbomodule/core
+ - React-perflogger (0.72.5)
+ - React-RCTActionSheet (0.72.5):
+ - React-Core/RCTActionSheetHeaders (= 0.72.5)
+ - React-RCTAnimation (0.72.5):
+ - RCT-Folly (= 2021.07.22.00)
+ - RCTTypeSafety (= 0.72.5)
+ - React-Codegen (= 0.72.5)
+ - React-Core/RCTAnimationHeaders (= 0.72.5)
+ - React-jsi (= 0.72.5)
+ - ReactCommon/turbomodule/core (= 0.72.5)
+ - React-RCTAppDelegate (0.72.5):
- RCT-Folly
- RCTRequired
- RCTTypeSafety
- React-Core
+ - React-CoreModules
+ - React-hermes
+ - React-NativeModulesApple
+ - React-RCTImage
+ - React-RCTNetwork
+ - React-runtimescheduler
- ReactCommon/turbomodule/core
- - React-RCTBlob (0.71.8):
+ - React-RCTBlob (0.72.5):
+ - hermes-engine
+ - RCT-Folly (= 2021.07.22.00)
+ - React-Codegen (= 0.72.5)
+ - React-Core/RCTBlobHeaders (= 0.72.5)
+ - React-Core/RCTWebSocket (= 0.72.5)
+ - React-jsi (= 0.72.5)
+ - React-RCTNetwork (= 0.72.5)
+ - ReactCommon/turbomodule/core (= 0.72.5)
+ - React-RCTImage (0.72.5):
+ - RCT-Folly (= 2021.07.22.00)
+ - RCTTypeSafety (= 0.72.5)
+ - React-Codegen (= 0.72.5)
+ - React-Core/RCTImageHeaders (= 0.72.5)
+ - React-jsi (= 0.72.5)
+ - React-RCTNetwork (= 0.72.5)
+ - ReactCommon/turbomodule/core (= 0.72.5)
+ - React-RCTLinking (0.72.5):
+ - React-Codegen (= 0.72.5)
+ - React-Core/RCTLinkingHeaders (= 0.72.5)
+ - React-jsi (= 0.72.5)
+ - ReactCommon/turbomodule/core (= 0.72.5)
+ - React-RCTNetwork (0.72.5):
+ - RCT-Folly (= 2021.07.22.00)
+ - RCTTypeSafety (= 0.72.5)
+ - React-Codegen (= 0.72.5)
+ - React-Core/RCTNetworkHeaders (= 0.72.5)
+ - React-jsi (= 0.72.5)
+ - ReactCommon/turbomodule/core (= 0.72.5)
+ - React-RCTSettings (0.72.5):
+ - RCT-Folly (= 2021.07.22.00)
+ - RCTTypeSafety (= 0.72.5)
+ - React-Codegen (= 0.72.5)
+ - React-Core/RCTSettingsHeaders (= 0.72.5)
+ - React-jsi (= 0.72.5)
+ - ReactCommon/turbomodule/core (= 0.72.5)
+ - React-RCTText (0.72.5):
+ - React-Core/RCTTextHeaders (= 0.72.5)
+ - React-RCTVibration (0.72.5):
+ - RCT-Folly (= 2021.07.22.00)
+ - React-Codegen (= 0.72.5)
+ - React-Core/RCTVibrationHeaders (= 0.72.5)
+ - React-jsi (= 0.72.5)
+ - ReactCommon/turbomodule/core (= 0.72.5)
+ - React-rncore (0.72.5)
+ - React-runtimeexecutor (0.72.5):
+ - React-jsi (= 0.72.5)
+ - React-runtimescheduler (0.72.5):
+ - glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-Codegen (= 0.71.8)
- - React-Core/RCTBlobHeaders (= 0.71.8)
- - React-Core/RCTWebSocket (= 0.71.8)
- - React-jsi (= 0.71.8)
- - React-RCTNetwork (= 0.71.8)
- - ReactCommon/turbomodule/core (= 0.71.8)
- - React-RCTImage (0.71.8):
- - RCT-Folly (= 2021.07.22.00)
- - RCTTypeSafety (= 0.71.8)
- - React-Codegen (= 0.71.8)
- - React-Core/RCTImageHeaders (= 0.71.8)
- - React-jsi (= 0.71.8)
- - React-RCTNetwork (= 0.71.8)
- - ReactCommon/turbomodule/core (= 0.71.8)
- - React-RCTLinking (0.71.8):
- - React-Codegen (= 0.71.8)
- - React-Core/RCTLinkingHeaders (= 0.71.8)
- - React-jsi (= 0.71.8)
- - ReactCommon/turbomodule/core (= 0.71.8)
- - React-RCTNetwork (0.71.8):
- - RCT-Folly (= 2021.07.22.00)
- - RCTTypeSafety (= 0.71.8)
- - React-Codegen (= 0.71.8)
- - React-Core/RCTNetworkHeaders (= 0.71.8)
- - React-jsi (= 0.71.8)
- - ReactCommon/turbomodule/core (= 0.71.8)
- - React-RCTSettings (0.71.8):
- - RCT-Folly (= 2021.07.22.00)
- - RCTTypeSafety (= 0.71.8)
- - React-Codegen (= 0.71.8)
- - React-Core/RCTSettingsHeaders (= 0.71.8)
- - React-jsi (= 0.71.8)
- - ReactCommon/turbomodule/core (= 0.71.8)
- - React-RCTText (0.71.8):
- - React-Core/RCTTextHeaders (= 0.71.8)
- - React-RCTVibration (0.71.8):
- - RCT-Folly (= 2021.07.22.00)
- - React-Codegen (= 0.71.8)
- - React-Core/RCTVibrationHeaders (= 0.71.8)
- - React-jsi (= 0.71.8)
- - ReactCommon/turbomodule/core (= 0.71.8)
- - React-runtimeexecutor (0.71.8):
- - React-jsi (= 0.71.8)
- - ReactCommon/turbomodule/bridging (0.71.8):
+ - React-callinvoker
+ - React-debug
+ - React-jsi
+ - React-runtimeexecutor
+ - React-utils (0.72.5):
+ - glog
+ - RCT-Folly (= 2021.07.22.00)
+ - React-debug
+ - ReactCommon/turbomodule/bridging (0.72.5):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-callinvoker (= 0.71.8)
- - React-Core (= 0.71.8)
- - React-cxxreact (= 0.71.8)
- - React-jsi (= 0.71.8)
- - React-logger (= 0.71.8)
- - React-perflogger (= 0.71.8)
- - ReactCommon/turbomodule/core (0.71.8):
+ - React-callinvoker (= 0.72.5)
+ - React-cxxreact (= 0.72.5)
+ - React-jsi (= 0.72.5)
+ - React-logger (= 0.72.5)
+ - React-perflogger (= 0.72.5)
+ - ReactCommon/turbomodule/core (0.72.5):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-callinvoker (= 0.71.8)
- - React-Core (= 0.71.8)
- - React-cxxreact (= 0.71.8)
- - React-jsi (= 0.71.8)
- - React-logger (= 0.71.8)
- - React-perflogger (= 0.71.8)
+ - React-callinvoker (= 0.72.5)
+ - React-cxxreact (= 0.72.5)
+ - React-jsi (= 0.72.5)
+ - React-logger (= 0.72.5)
+ - React-perflogger (= 0.72.5)
- ReactNativeWidgetKit (0.2.0):
- ExpoModulesCore
- - RNDeviceInfo (10.8.0):
+ - RNCAsyncStorage (1.19.3):
- React-Core
- - RNFlashList (1.5.0):
+ - RNFlashList (1.6.1):
- React-Core
- - RNGestureHandler (2.12.0):
+ - RNGestureHandler (2.13.1):
- React-Core
- RNQuickAction (0.3.13):
- React
- - RNReanimated (2.17.0):
+ - RNReanimated (3.5.4):
- DoubleConversion
- FBLazyVector
- - FBReactNativeSpec
- glog
+ - hermes-engine
- RCT-Folly
- RCTRequired
- RCTTypeSafety
@@ -524,11 +585,13 @@ PODS:
- React-Core/RCTWebSocket
- React-CoreModules
- React-cxxreact
+ - React-hermes
- React-jsi
- React-jsiexecutor
- React-jsinspector
- React-RCTActionSheet
- React-RCTAnimation
+ - React-RCTAppDelegate
- React-RCTBlob
- React-RCTImage
- React-RCTLinking
@@ -537,19 +600,22 @@ PODS:
- React-RCTText
- ReactCommon/turbomodule/core
- Yoga
- - RNScreens (3.23.0):
+ - RNScreens (3.25.0):
- React-Core
- React-RCTImage
- - RNSentry (4.15.2):
+ - RNSentry (5.5.0):
- React-Core
- - Sentry/HybridSDK (= 7.31.5)
- - RNSVG (13.10.0):
+ - Sentry/HybridSDK (= 8.7.1)
+ - RNSVG (13.14.0):
- React-Core
- - Sentry/HybridSDK (7.31.5)
+ - Sentry/HybridSDK (8.7.1):
+ - SentryPrivate (= 8.7.1)
+ - SentryPrivate (8.7.1)
+ - SocketRocket (0.6.1)
- Yoga (1.14.0)
DEPENDENCIES:
- - "amplitude-react-native (from `../node_modules/@amplitude/react-native`)"
+ - "amplitude-react-native (from `../node_modules/@amplitude/analytics-react-native`)"
- boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`)
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
- EASClient (from `../node_modules/expo-eas-client/ios`)
@@ -575,10 +641,10 @@ DEPENDENCIES:
- ExpoLocalization (from `../node_modules/expo-localization/ios`)
- ExpoMailComposer (from `../node_modules/expo-mail-composer/ios`)
- ExpoModulesCore (from `../node_modules/expo-modules-core`)
+ - ExpoScreenOrientation (from `../node_modules/expo-screen-orientation/ios`)
+ - ExpoSharing (from `../node_modules/expo-sharing/ios`)
- ExpoStoreReview (from `../node_modules/expo-store-review/ios`)
- ExpoSystemUI (from `../node_modules/expo-system-ui/ios`)
- - EXScreenOrientation (from `../node_modules/expo-screen-orientation/ios`)
- - EXSharing (from `../node_modules/expo-sharing/ios`)
- EXSplashScreen (from `../node_modules/expo-splash-screen/ios`)
- EXStructuredHeaders (from `../node_modules/expo-structured-headers/ios`)
- EXUpdates (from `../node_modules/expo-updates/ios`)
@@ -598,6 +664,7 @@ DEPENDENCIES:
- React-Core/RCTWebSocket (from `../node_modules/react-native/`)
- React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
- React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
+ - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`)
- React-hermes (from `../node_modules/react-native/ReactCommon/hermes`)
- React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
- React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
@@ -607,6 +674,7 @@ DEPENDENCIES:
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
- "react-native-segmented-control (from `../node_modules/@react-native-segmented-control/segmented-control`)"
- react-native-view-shot (from `../node_modules/react-native-view-shot`)
+ - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`)
- React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`)
- React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
- React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
@@ -618,10 +686,13 @@ DEPENDENCIES:
- React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
- React-RCTText (from `../node_modules/react-native/Libraries/Text`)
- React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
+ - React-rncore (from `../node_modules/react-native/ReactCommon`)
- React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`)
+ - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`)
+ - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`)
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
- "ReactNativeWidgetKit (from `../node_modules/@calitb/react-native-widgetkit/ios`)"
- - RNDeviceInfo (from `../node_modules/react-native-device-info`)
+ - "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)"
- "RNFlashList (from `../node_modules/@shopify/flash-list`)"
- RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
- RNQuickAction (from `../node_modules/react-native-quick-actions`)
@@ -633,16 +704,17 @@ DEPENDENCIES:
SPEC REPOS:
trunk:
- - Amplitude
- - AnalyticsConnector
- ASN1Decoder
- fmt
- libevent
+ - ReachabilitySwift
- Sentry
+ - SentryPrivate
+ - SocketRocket
EXTERNAL SOURCES:
amplitude-react-native:
- :path: "../node_modules/@amplitude/react-native"
+ :path: "../node_modules/@amplitude/analytics-react-native"
boost:
:podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec"
DoubleConversion:
@@ -693,14 +765,14 @@ EXTERNAL SOURCES:
:path: "../node_modules/expo-mail-composer/ios"
ExpoModulesCore:
:path: "../node_modules/expo-modules-core"
+ ExpoScreenOrientation:
+ :path: "../node_modules/expo-screen-orientation/ios"
+ ExpoSharing:
+ :path: "../node_modules/expo-sharing/ios"
ExpoStoreReview:
:path: "../node_modules/expo-store-review/ios"
ExpoSystemUI:
:path: "../node_modules/expo-system-ui/ios"
- EXScreenOrientation:
- :path: "../node_modules/expo-screen-orientation/ios"
- EXSharing:
- :path: "../node_modules/expo-sharing/ios"
EXSplashScreen:
:path: "../node_modules/expo-splash-screen/ios"
EXStructuredHeaders:
@@ -717,6 +789,7 @@ EXTERNAL SOURCES:
:podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
hermes-engine:
:podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
+ :tag: hermes-2023-08-07-RNv0.72.4-813b2def12bc9df02654b3e3653ae4a68d0572e0
RCT-Folly:
:podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
RCTRequired:
@@ -735,6 +808,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/React/CoreModules"
React-cxxreact:
:path: "../node_modules/react-native/ReactCommon/cxxreact"
+ React-debug:
+ :path: "../node_modules/react-native/ReactCommon/react/debug"
React-hermes:
:path: "../node_modules/react-native/ReactCommon/hermes"
React-jsi:
@@ -753,6 +828,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/@react-native-segmented-control/segmented-control"
react-native-view-shot:
:path: "../node_modules/react-native-view-shot"
+ React-NativeModulesApple:
+ :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios"
React-perflogger:
:path: "../node_modules/react-native/ReactCommon/reactperflogger"
React-RCTActionSheet:
@@ -775,14 +852,20 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/Libraries/Text"
React-RCTVibration:
:path: "../node_modules/react-native/Libraries/Vibration"
+ React-rncore:
+ :path: "../node_modules/react-native/ReactCommon"
React-runtimeexecutor:
:path: "../node_modules/react-native/ReactCommon/runtimeexecutor"
+ React-runtimescheduler:
+ :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler"
+ React-utils:
+ :path: "../node_modules/react-native/ReactCommon/react/utils"
ReactCommon:
:path: "../node_modules/react-native/ReactCommon"
ReactNativeWidgetKit:
:path: "../node_modules/@calitb/react-native-widgetkit/ios"
- RNDeviceInfo:
- :path: "../node_modules/react-native-device-info"
+ RNCAsyncStorage:
+ :path: "../node_modules/@react-native-async-storage/async-storage"
RNFlashList:
:path: "../node_modules/@shopify/flash-list"
RNGestureHandler:
@@ -801,92 +884,98 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/yoga"
SPEC CHECKSUMS:
- Amplitude: 10f20d4436fdcd38ddd5be1da7033fcc21f4143e
- amplitude-react-native: 6e5b9e38c53e11a86f62f874a42cf176e2b82c86
- AnalyticsConnector: eccd7e1cd3dd18e6bd09ac2506e37d4ed43ba3f4
+ amplitude-react-native: 5b57b8384579b538824965ae4cc7978c8c86ab67
ASN1Decoder: 6110fdeacfdb41559b1481457a1645be716610aa
boost: 57d2868c099736d80fcd648bf211b4431e51a558
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
- EASClient: 950674e1098ebc09c4c2cf064a61e42e84d9d4c6
- EXApplication: d8f53a7eee90a870a75656280e8d4b85726ea903
- EXConstants: f348da07e21b23d2b085e270d7b74f282df1a7d9
- EXFileSystem: 844e86ca9b5375486ecc4ef06d3838d5597d895d
- EXFont: 6ea3800df746be7233208d80fe379b8ed74f4272
- EXImageLoader: fd053169a8ee932dd83bf1fe5487a50c26d27c2b
- EXJSONUtils: 48b1e764ac35160e6f54d21ab60d7d9501f3e473
- EXManifests: 500666d48e8dd7ca5a482c9e729e4a7a6c34081b
- EXNotifications: dd628737af60fc8cc62dccebacd326b0fbbc0dcb
- Expo: b7d2843b0a0027d0ce76121a63085764355a16ed
- expo-dev-client: 92b9e487ad6a05a3ad1dda70334729ccaf622bfe
- expo-dev-launcher: 5275974e9f825f70a33bb79301a8ab894179fa94
- expo-dev-menu: f2ea9233cdd8790c20d559eba7352bbf83662d6a
- expo-dev-menu-interface: 6c82ae323c4b8724dead4763ce3ff24a2108bdb1
- ExpoBlur: 545dd91ddcf7f51207d6011a6c4d27db9c9ab95a
- ExpoClipboard: 9b87df0ad145e3aa841614fab6aea54b7a604850
- ExpoDevice: e0bebf68f978b3d353377ce42e73c20c0a070215
- ExpoHaptics: 5156bc5160d8e04c170dd6e645a71154951a2ad9
- ExpoImageManipulator: 85ab87e9641b9d83108f8d603e0418c12fc19e2d
- ExpoKeepAwake: 69f5f627670d62318410392d03e0b5db0f85759a
- ExpoLocalization: f26cd431ad9ea3533c5b08c4fabd879176a794bb
- ExpoMailComposer: 0085b258d00ba40664f7acb40d96042b29a1da7d
- ExpoModulesCore: 653958063a301098b541ae4dfed1ac0b98db607b
- ExpoStoreReview: d057dcca4b9c95f3c9db11bd2e168dab9cba59f3
- ExpoSystemUI: 0be5173ee2a7c01e9abc44f56d879a1eaaa16527
- EXScreenOrientation: 52220f8f2477ed25a37e3b2cdbbaa8635d250256
- EXSharing: 09839ace249f61bfa13c50c6a28256c31d260355
- EXSplashScreen: 0e0a9ba0cf7553094e93213099bd7b42e6e237e9
- EXStructuredHeaders: f3a6d417d5d12ef369fd1a31320d1c188a1b0f4b
- EXUpdates: 603c4dfec2ed9ef323dfbd9c59c946593d4d9a5c
- EXUpdatesInterface: e86394c0770f14eb96386cbb32be83fa6a97e8f9
- FBLazyVector: f637f31eacba90d4fdeff3fa41608b8f361c173b
- FBReactNativeSpec: 0d9a4f4de7ab614c49e98c00aedfd3bfbda33d59
+ EASClient: 49f8ea858204eb4844d9fb386e5fb7920aee2e30
+ EXApplication: 042aa2e3f05258a16962ea1a9914bf288db9c9a1
+ EXConstants: ce5bbea779da8031ac818c36bea41b10e14d04e1
+ EXFileSystem: 2b826a3bf1071a4b80a8457e97124783d1ac860e
+ EXFont: 738c44c390953ebcbab075a4848bfbef025fd9ee
+ EXImageLoader: 34b214f9387e98f3c73989f15d8d5b399c9ab3f7
+ EXJSONUtils: 6802be4282d42b97c51682468ddc1026a06f8276
+ EXManifests: cf66451b11b2c2f6464917528d792759f7fd6ce0
+ EXNotifications: 09394cbd7165f9a4a00a53328aa09bf874bae717
+ Expo: e7d2116b947e2e6fdeb09ee4f2754f819426d1b6
+ expo-dev-client: a97a68508a6104ad99f4b2613fd808cda7a4186c
+ expo-dev-launcher: 7336e6dc8ed51b87225f8a96d787add81a99748c
+ expo-dev-menu: 9542570483a647626570cb4333c80add4cea1254
+ expo-dev-menu-interface: bda969497e73dadc2663c479e0fa726ca79a306e
+ ExpoBlur: a2c90bdfa4ff9f459cdb0f83191bddf020e3e2db
+ ExpoClipboard: 695f274f8e028cd113837f917da40c76850877eb
+ ExpoDevice: 1c1b0c9cad96c292c1de73948649cfd654b2b3c0
+ ExpoHaptics: 360af6898407ee4e8265d30a1a8fb16491a660eb
+ ExpoImageManipulator: 851be0965dd9f78019771b140282f1816dcc25ea
+ ExpoKeepAwake: be4cbd52d9b177cde0fd66daa1913afa3161fc1d
+ ExpoLocalization: be37fdd0b5930c6a49cd307b4542f4b426d6134c
+ ExpoMailComposer: feaebd62095efad901ede864b95406f02bf61681
+ ExpoModulesCore: 51cb2e7ab4c8da14be3f40b66d54c1781002e99d
+ ExpoScreenOrientation: 5d109570b17835fe0cfb822268a8ff087c2112ad
+ ExpoSharing: 825b2b3fc919a2656f75def0069f584bbd6e359a
+ ExpoStoreReview: f154c9fdf3dbd877ca0115757f0b2b6f43dd9db4
+ ExpoSystemUI: fa4854e3226e87f86d3383570264c6e4e90bc782
+ EXSplashScreen: c0e7f2d4a640f3b875808ed0b88575538daf6d82
+ EXStructuredHeaders: 324cc3130571d2696357fafd8be7fd9a0b5fdf6e
+ EXUpdates: 7ec199e551666daa808914cda07566a9661f6985
+ EXUpdatesInterface: 82ed48d417cdcd376c12ca1c2ce390d35500bed6
+ FBLazyVector: 71803c074f6325f10b5ec891c443b6bbabef0ca7
+ FBReactNativeSpec: 448e08a759d29a96e15725ae532445bf4343567c
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b
- hermes-engine: 47986d26692ae75ee7a17ab049caee8864f855de
+ hermes-engine: f6cf92a471053245614d9d8097736f6337d5b86c
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1
- RCTRequired: 8af6a32dfc2b65ec82193c2dee6e1011ff22ac2a
- RCTTypeSafety: bee9dd161c175896c680d47ef1d9eaacf2b587f4
- React: d850475db9ba8006a8b875d79e1e0d6ac8a0f8b6
- React-callinvoker: 6a0c75475ddc17c9ed54e4ff0478074a18fd7ab5
- React-Codegen: 786571642e87add634e7f4d299c85314ec6cc158
- React-Core: 1adfab153f59e4f56e09b97a153089f466d7b8aa
- React-CoreModules: 958d236715415d4ccdd5fa35c516cf0356637393
- React-cxxreact: 2e7a6283807ce8755c3d501735acd400bec3b5cd
- React-hermes: 8102c3112ba32207c3052619be8cfae14bf99d84
- React-jsi: dd29264f041a587e91f994e4be97e86c127742b2
- React-jsiexecutor: 747911ab5921641b4ed7e4900065896597142125
- React-jsinspector: c712f9e3bb9ba4122d6b82b4f906448b8a281580
- React-logger: 342f358b8decfbf8f272367f4eacf4b6154061be
+ RCTRequired: df81ab637d35fac9e6eb94611cfd20f0feb05455
+ RCTTypeSafety: 4636e4a36c7c2df332bda6d59b19b41c443d4287
+ ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825
+ React: e0cc5197a804031a6c53fb38483c3485fcb9d6f3
+ React-callinvoker: 1a635856fe0c3d8b13fccd4ed7e76283b99b0868
+ React-Codegen: 78d61f981cccc68a771a598f71621cb7db14b04c
+ React-Core: 252f8e9ca5a4e91af9b9be58670846d662b1c49f
+ React-CoreModules: f8b9e91fac7bd5d18729ce961a4978c70b5031cc
+ React-cxxreact: 70284b32dcd367439d7dae84d9f72660544181b5
+ React-debug: ee33d7ba43766d9b10b32561527b57ccfbcb6bd1
+ React-hermes: 91f97ea2669dc5847e1f26c243aaad913319c570
+ React-jsi: bd68b7779746014f01ea72d1b738809e132d7f1e
+ React-jsiexecutor: ff70a72027dea5cc7d71cfcc6fad7f599f63987a
+ React-jsinspector: aef73cbd43b70675f572214d10fa438c89bf11ba
+ React-logger: 2e4aee3e11b3ec4fa6cfd8004610bbb3b8d6cca4
react-native-animateable-text: 5f5a6e96f6c075aa943ce52ea7fd3fbb3e56d725
- react-native-safe-area-context: 9697629f7b2cda43cf52169bb7e0767d330648c2
+ react-native-safe-area-context: 7aa8e6d9d0f3100a820efb1a98af68aa747f9284
react-native-segmented-control: 2221962f5073e2e809aa3691e8e410fc10b60578
react-native-view-shot: f5507655f122e6b104888a11130f267a427f0d57
- React-perflogger: d21f182895de9d1b077f8a3cd00011095c8c9100
- React-RCTActionSheet: 0151f83ef92d2a7139bba7dfdbc8066632a6d47b
- React-RCTAnimation: 5ec9c0705bb2297549c120fe6473aa3e4a01e215
- React-RCTAppDelegate: 9895fd1b6d1176d88c4b10ddc169b2e1300c91f0
- React-RCTBlob: f3634eb45b6e7480037655e1ca93d1136ac984dd
- React-RCTImage: 3c12cb32dec49549ae62ed6cba4018db43841ffc
- React-RCTLinking: 310e930ee335ef25481b4a173d9edb64b77895f9
- React-RCTNetwork: b6837841fe88303b0c04c1e3c01992b30f1f5498
- React-RCTSettings: 600d91fe25fa7c16b0ff891304082440f2904b89
- React-RCTText: a0a19f749088280c6def5397ed6211b811e7eef3
- React-RCTVibration: 43ffd976a25f6057a7cf95ea3648ba4e00287f89
- React-runtimeexecutor: 7c51ae9d4b3e9608a2366e39ccaa606aa551b9ed
- ReactCommon: 85c98ab0a509e70bf5ee5d9715cf68dbf495b84c
+ React-NativeModulesApple: 797bc6078d566eef3fb3f74127e6e1d2e945a15f
+ React-perflogger: cd8886513f68e1c135a1e79d20575c6489641597
+ React-RCTActionSheet: 726d2615ca62a77ce3e2c13d87f65379cdc73498
+ React-RCTAnimation: 8f2716b881c37c64858e4ecee0f58bfa57ff9afd
+ React-RCTAppDelegate: d4a213f29e81682f6b9c7d22f62a2ccab6d125ae
+ React-RCTBlob: dfaa933231c3497915bbcc9d98fcff7b6b60582c
+ React-RCTImage: 747e3d7b656a67470f9c234baedb8d41bbc4e745
+ React-RCTLinking: 148332b5b0396b280b05534f7d168e560a3bbd5f
+ React-RCTNetwork: 1d818121a8e678f064de663a6db7aaefc099e53c
+ React-RCTSettings: 4b95d26ebc88bfd3b6535b2d7904914ff88dbfc2
+ React-RCTText: ce4499e4f2d8f85dc4b93ff0559313a016c4f3e2
+ React-RCTVibration: 45372e61b35e96d16893540958d156675afbeb63
+ React-rncore: a79d1cb3d6c01b358a8aa0b31ccc04ab5f0dbebc
+ React-runtimeexecutor: 7e31e2bc6d0ecc83d4ba05eadc98401007abc10c
+ React-runtimescheduler: cc32add98c45c5df18436a6a52a7e1f6edec102c
+ React-utils: 7a9918a1ffdd39aba67835d42386f592ea3f8e76
+ ReactCommon: 91ece8350ebb3dd2be9cef662abd78b6948233c0
ReactNativeWidgetKit: d356de3387427cb3e92e556408460abfb3a207ed
- RNDeviceInfo: 5795b418ed3451ebcaf39384e6cf51f60cb931c9
- RNFlashList: 25b0e092b4470c84db0386d4f5316dc34123bb6d
- RNGestureHandler: dec4645026e7401a0899f2846d864403478ff6a5
+ RNCAsyncStorage: c913ede1fa163a71cea118ed4670bbaaa4b511bb
+ RNFlashList: 236646d48f224a034f35baa0242e1b77db063b1e
+ RNGestureHandler: 38aa38413896620338948fbb5c90579a7b1c3fde
RNQuickAction: 6d404a869dc872cde841ad3147416a670d13fa93
- RNReanimated: f186e85d9f28c9383d05ca39e11dd194f59093ec
- RNScreens: 6a8a3c6b808aa48dca1780df7b73ea524f602c63
- RNSentry: 4ea90ea061624364637e8077d965bf2e50478066
- RNSVG: 80584470ff1ffc7994923ea135a3e5ad825546b9
- Sentry: 4c9babff9034785067c896fd580b1f7de44da020
- Yoga: 065f0b74dba4832d6e328238de46eb72c5de9556
+ RNReanimated: ab2e96c6d5591c3dfbb38a464f54c8d17fb34a87
+ RNScreens: 85d3880b52d34db7b8eeebe2f1a0e807c05e69fa
+ RNSentry: 4fb2cd7d2d6cb94423c24884488206ef881da136
+ RNSVG: d00c8f91c3cbf6d476451313a18f04d220d4f396
+ Sentry: 11776f6a25a128808d793d0d41bb7ad873b5ae4f
+ SentryPrivate: b3c448eacdabe9eab7679a2e0af609c608f91572
+ SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
+ Yoga: 86fed2e4d425ee4c6eab3813ba1791101ee153c6
-PODFILE CHECKSUM: 5f1d4a06a685e0f33185dd8b5422bdc89efbb9bb
+PODFILE CHECKSUM: fe601e112cf436f921e0350582fae764fe5b584c
-COCOAPODS: 1.11.3
+COCOAPODS: 1.12.1
diff --git a/packages/client/ios/Podfile.properties.json b/packages/client/ios/Podfile.properties.json
index b1bd45d..de9f7b7 100644
--- a/packages/client/ios/Podfile.properties.json
+++ b/packages/client/ios/Podfile.properties.json
@@ -1,3 +1,4 @@
{
- "expo.jsEngine": "hermes"
+ "expo.jsEngine": "hermes",
+ "EX_DEV_CLIENT_NETWORK_INSPECTOR": "true"
}
diff --git a/packages/client/ios/RateWidgets/Base.lproj/RateWidgets.intentdefinition b/packages/client/ios/RateWidgets/Base.lproj/RateWidgets.intentdefinition
index cde0ab7..2b7396b 100644
--- a/packages/client/ios/RateWidgets/Base.lproj/RateWidgets.intentdefinition
+++ b/packages/client/ios/RateWidgets/Base.lproj/RateWidgets.intentdefinition
@@ -8,7 +8,7 @@
INEnumDisplayName
Value Type
INEnumDisplayNameID
- oEufjL
+ uhpYzW
INEnumGeneratesHeader
INEnumName
@@ -21,7 +21,7 @@
INEnumValueDisplayName
unknown
INEnumValueDisplayNameID
- nXavPS
+ NJdBrE
INEnumValueName
unknown
@@ -29,7 +29,7 @@
INEnumValueDisplayName
Compra
INEnumValueDisplayNameID
- pfnzhV
+ HlAW7E
INEnumValueIndex
1
INEnumValueName
@@ -39,7 +39,7 @@
INEnumValueDisplayName
Promedio
INEnumValueDisplayNameID
- g8v3kF
+ RVyQ6W
INEnumValueIndex
2
INEnumValueName
@@ -49,7 +49,7 @@
INEnumValueDisplayName
Venta
INEnumValueDisplayNameID
- 7SfjBD
+ p2wzTd
INEnumValueIndex
3
INEnumValueName
@@ -61,7 +61,7 @@
INEnumDisplayName
Change Type
INEnumDisplayNameID
- QLA2l0
+ jzlPZ1
INEnumGeneratesHeader
INEnumName
@@ -74,7 +74,7 @@
INEnumValueDisplayName
unknown
INEnumValueDisplayNameID
- rRY6Y2
+ pUXTON
INEnumValueName
unknown
@@ -82,7 +82,7 @@
INEnumValueDisplayName
Porcentaje
INEnumValueDisplayNameID
- bnMW1j
+ Xl84YZ
INEnumValueIndex
1
INEnumValueName
@@ -92,7 +92,7 @@
INEnumValueDisplayName
Monto
INEnumValueDisplayNameID
- D7E44H
+ a9MRpz
INEnumValueIndex
2
INEnumValueName
@@ -106,11 +106,11 @@
INIntentDefinitionNamespace
88xZPY
INIntentDefinitionSystemVersion
- 22E261
+ 22G74
INIntentDefinitionToolsBuildVersion
- 14E222b
+ 14E300c
INIntentDefinitionToolsVersion
- 14.3
+ 14.3.1
INIntents
@@ -125,7 +125,7 @@
INIntentIneligibleForSuggestions
INIntentLastParameterTag
- 6
+ 4
INIntentName
SelectRateType
INIntentParameters
@@ -136,7 +136,7 @@
INIntentParameterDisplayName
Cotización
INIntentParameterDisplayNameID
- 8HNm8u
+ r4vekZ
INIntentParameterDisplayPriority
1
INIntentParameterName
@@ -159,6 +159,26 @@
INIntentParameterPromptDialogType
Primary
+
+ INIntentParameterPromptDialogCustom
+
+ INIntentParameterPromptDialogFormatString
+ There are ${count} options matching ‘${rateType}’.
+ INIntentParameterPromptDialogFormatStringID
+ UH8942
+ INIntentParameterPromptDialogType
+ DisambiguationIntroduction
+
+
+ INIntentParameterPromptDialogCustom
+
+ INIntentParameterPromptDialogFormatString
+ Just to confirm, you wanted ‘${rateType}’?
+ INIntentParameterPromptDialogFormatStringID
+ OsOaCJ
+ INIntentParameterPromptDialogType
+ Confirmation
+
INIntentParameterSupportsDynamicEnumeration
@@ -173,7 +193,7 @@
INIntentParameterDisplayName
Mostrar
INIntentParameterDisplayNameID
- ATwB6u
+ nYMwvW
INIntentParameterDisplayPriority
2
INIntentParameterEnumType
@@ -207,7 +227,7 @@
INIntentParameterPromptDialogFormatString
There are ${count} options matching ‘${valueType}’.
INIntentParameterPromptDialogFormatStringID
- lYn6uD
+ 67KYjr
INIntentParameterPromptDialogType
DisambiguationIntroduction
@@ -217,7 +237,7 @@
INIntentParameterPromptDialogFormatString
Just to confirm, you wanted ‘${valueType}’?
INIntentParameterPromptDialogFormatStringID
- wDOI0z
+ 5wEMZ9
INIntentParameterPromptDialogType
Confirmation
@@ -259,13 +279,13 @@
INIntentDescription
Seleccionar cotizaciones
INIntentDescriptionID
- awIy14
+ QKKLd7
INIntentEligibleForWidgets
INIntentIneligibleForSuggestions
INIntentLastParameterTag
- 8
+ 5
INIntentName
SelectRateTypes
INIntentParameters
@@ -325,9 +345,9 @@
INIntentParameterConfigurable
INIntentParameterDisplayName
- Cotizaciones
+ Rate Types
INIntentParameterDisplayNameID
- mMMBEY
+ RMvNPo
INIntentParameterDisplayPriority
1
INIntentParameterFixedSizeArray
@@ -352,6 +372,26 @@
INIntentParameterPromptDialogType
Primary
+
+ INIntentParameterPromptDialogCustom
+
+ INIntentParameterPromptDialogFormatString
+ There are ${count} options matching ‘${rateTypes}’.
+ INIntentParameterPromptDialogFormatStringID
+ kkUgcF
+ INIntentParameterPromptDialogType
+ DisambiguationIntroduction
+
+
+ INIntentParameterPromptDialogCustom
+
+ INIntentParameterPromptDialogFormatString
+ Just to confirm, you wanted ‘${rateTypes}’?
+ INIntentParameterPromptDialogFormatStringID
+ jXfZco
+ INIntentParameterPromptDialogType
+ Confirmation
+
INIntentParameterSupportsDynamicEnumeration
@@ -368,7 +408,7 @@
INIntentParameterDisplayName
Mostrar
INIntentParameterDisplayNameID
- 3pxwCJ
+ zoXmTW
INIntentParameterDisplayPriority
2
INIntentParameterEnumType
@@ -402,7 +442,7 @@
INIntentParameterPromptDialogFormatString
There are ${count} options matching ‘${valueType}’.
INIntentParameterPromptDialogFormatStringID
- v6zxOy
+ hp2t3T
INIntentParameterPromptDialogType
DisambiguationIntroduction
@@ -412,13 +452,13 @@
INIntentParameterPromptDialogFormatString
Just to confirm, you wanted ‘${valueType}’?
INIntentParameterPromptDialogFormatStringID
- wcG5ws
+ PxDzsY
INIntentParameterPromptDialogType
Confirmation
INIntentParameterTag
- 6
+ 5
INIntentParameterType
Integer
@@ -442,7 +482,7 @@
INIntentTitle
Select Rate Types
INIntentTitleID
- KJVrGQ
+ JtpQnj
INIntentType
Custom
INIntentVerb
@@ -455,7 +495,7 @@
INTypeDisplayName
Rate Type
INTypeDisplayNameID
- bCcw0O
+ rxevbT
INTypeLastPropertyTag
99
INTypeName
diff --git a/packages/client/ios/RateWidgets/RateWidgets.swift b/packages/client/ios/RateWidgets/RateWidgets.swift
index 56054c0..6d4e294 100644
--- a/packages/client/ios/RateWidgets/RateWidgets.swift
+++ b/packages/client/ios/RateWidgets/RateWidgets.swift
@@ -182,7 +182,6 @@ struct RateWidgetEntryView : View {
let entry: RateProvider.Entry
let fontName = "FiraGO"
// https://developer.apple.com/documentation/uikit/uicolor/ui_element_colors
- let bgColor = Color(UIColor.systemBackground)
let fgColor = Color(UIColor.label)
let fgSecondaryColor = Color(UIColor.secondaryLabel)
var body: some View {
@@ -196,7 +195,6 @@ struct RateWidgetEntryView : View {
VStack {
Text(rate.name)
.font(.custom(fontName, size: 10))
- // .minimumScaleFactor(0.5)
.lineLimit(1)
Text(rate.price)
.font(.custom(fontName, size: 20))
@@ -206,14 +204,11 @@ struct RateWidgetEntryView : View {
if rate.plainChange != nil {
Text((rate.plainChange)!)
.font(.custom(fontName, size: 10))
- // .minimumScaleFactor(0.5)
.lineLimit(1)
}
}
.padding(8)
}
- // .background(bgColor)
- .background(.ultraThinMaterial)
.widgetURL(getWidgetUrl(id: rate.id))
} else {
ZStack {
@@ -223,14 +218,9 @@ struct RateWidgetEntryView : View {
.font(.custom(fontName, size: 14))
.lineLimit(1)
.widgetAccentable()
- /* Image(systemName: "xmark.icloud.fill")
- .font(.custom(fontName, size: 20))
- .widgetAccentable() */
}
.padding(8)
}
- // .background(bgColor)
- .background(.ultraThinMaterial)
.widgetURL(getWidgetUrl())
}
}
@@ -239,64 +229,58 @@ struct RateWidgetEntryView : View {
VStack(alignment: .leading) {
Text(rate.name)
.font(.custom(fontName, size: 20))
- // .fontWeight(.regular)
.foregroundColor(fgColor)
- // .minimumScaleFactor(0.5)
.lineLimit(1)
Spacer()
if rate.change != nil {
Text((rate.change)!)
.font(.custom(fontName, size: 14))
- // .fontWeight(.medium)
.foregroundColor(rate.changeColor!)
- // .minimumScaleFactor(0.5)
.lineLimit(1)
}
Text(rate.price)
.font(.custom(fontName, size: 28))
- // .fontWeight(.semibold)
.foregroundColor(fgColor)
- // .minimumScaleFactor(0.5)
.lineLimit(1)
Spacer().frame(height: 8)
- // (Text("Actualizado ") + Text(entry.date, style: .time))
Text(rate.date)
.font(.custom(fontName, size: 10))
- // .fontWeight(.medium)
.foregroundColor(fgSecondaryColor)
.lineLimit(1)
- // .frame(height: 8, alignment: .bottom)
}
.frame(
maxWidth: .infinity,
maxHeight: .infinity,
alignment: .topLeading
)
- .padding(16)
- .background(bgColor)
.widgetURL(getWidgetUrl(id: rate.id))
} else {
VStack {
Text("Sin cotización disponible")
.font(.custom(fontName, size: 14))
- // .fontWeight(.regular)
.foregroundColor(fgColor)
- // .minimumScaleFactor(0.5)
- // .lineLimit(2)
.multilineTextAlignment(.center)
}
.frame(
maxWidth: .infinity,
maxHeight: .infinity
)
- .padding(16)
- .background(bgColor)
.widgetURL(getWidgetUrl())
}
}
}
}
+extension WidgetConfiguration {
+ func contentMarginsDisabledIfAvailable() -> some WidgetConfiguration {
+ if #available(iOSApplicationExtension 17.0, *) {
+ return self.contentMarginsDisabled()
+ } else {
+ return self
+ }
+ }
+}
+
struct RateWidget: Widget {
let kind: String = "RateWidget"
private var supportedFamilies: [WidgetFamily] {
@@ -310,9 +294,6 @@ struct RateWidget: Widget {
.systemSmall,
]
}
- /* return [
- .systemSmall,
- ] */
}
var body: some WidgetConfiguration {
IntentConfiguration(kind: kind, intent: SelectRateTypeIntent.self, provider: RateProvider()) { entry in
@@ -321,6 +302,7 @@ struct RateWidget: Widget {
.configurationDisplayName("Cotizaciones")
.description("Mantenete al tanto de las cotizaciones durante el transcurso del día.")
.supportedFamilies(supportedFamilies)
+ // .contentMarginsDisabledIfAvailable()
}
}
@@ -351,7 +333,6 @@ struct ListRatesWidgetEntryView : View {
let entry: ListRatesProvider.Entry
let fontName = "FiraGO"
// https://developer.apple.com/documentation/uikit/uicolor/ui_element_colors
- let bgColor = Color(UIColor.systemBackground)
let fgColor = Color(UIColor.label)
let fgSecondaryColor = Color(UIColor.secondaryLabel)
var body: some View {
@@ -364,32 +345,24 @@ struct ListRatesWidgetEntryView : View {
HStack {
Text(rate.name)
.font(.custom(fontName, size: 14))
- // .fontWeight(.regular)
.foregroundColor(fgColor)
- // .minimumScaleFactor(0.5)
.lineLimit(1)
Spacer()
Text(rate.price)
.font(.custom(fontName, size: 14))
- // .fontWeight(.medium)
.foregroundColor(fgColor)
.lineLimit(1)
- // .frame(height: 8, alignment: .bottom)
}
HStack {
Text(rate.date)
.font(.custom(fontName, size: 10))
- // .fontWeight(.regular)
.foregroundColor(fgSecondaryColor)
- // .minimumScaleFactor(0.5)
.lineLimit(1)
Spacer()
if rate.change != nil {
Text(rate.change!)
.font(.custom(fontName, size: 10))
- // .fontWeight(.medium)
.foregroundColor(rate.changeColor)
- // .minimumScaleFactor(0.5)
.lineLimit(1)
}
}
@@ -403,25 +376,18 @@ struct ListRatesWidgetEntryView : View {
maxHeight: .infinity,
alignment: .topLeading
)
- .padding(16)
- .background(bgColor)
.widgetURL(getWidgetUrl())
} else {
VStack {
Text("Sin cotizaciones disponibles")
.font(.custom(fontName, size: 14))
- // .fontWeight(.regular)
.foregroundColor(fgColor)
- // .minimumScaleFactor(0.5)
- // .lineLimit(2)
.multilineTextAlignment(.center)
}
.frame(
maxWidth: .infinity,
maxHeight: .infinity
)
- .padding(16)
- .background(bgColor)
.widgetURL(getWidgetUrl())
}
}
@@ -442,6 +408,7 @@ struct ListRatesWidget: Widget {
.configurationDisplayName("Lista de cotizaciones")
.description("Mantenete al tanto de las cotizaciones durante el transcurso del día.")
.supportedFamilies(supportedFamilies)
+ // .contentMarginsDisabledIfAvailable()
}
}
diff --git a/packages/client/ios/RateWidgets/es-419.lproj/RateWidgets.strings b/packages/client/ios/RateWidgets/es-419.lproj/RateWidgets.strings
index 6be94fd..6401a82 100644
--- a/packages/client/ios/RateWidgets/es-419.lproj/RateWidgets.strings
+++ b/packages/client/ios/RateWidgets/es-419.lproj/RateWidgets.strings
@@ -1,56 +1,64 @@
-"3pxwCJ" = "Mostrar";
+"5wEMZ9-HlAW7E" = "Just to confirm, you wanted ‘Compra’?";
-"7SfjBD" = "Venta";
+"5wEMZ9-RVyQ6W" = "Just to confirm, you wanted ‘Promedio’?";
-"8HNm8u" = "Cotización";
+"5wEMZ9-p2wzTd" = "Just to confirm, you wanted ‘Venta’?";
-"ATwB6u" = "Mostrar";
+"67KYjr-HlAW7E" = "There are ${count} options matching ‘Compra’.";
-"D7E44H" = "Monto";
+"67KYjr-RVyQ6W" = "There are ${count} options matching ‘Promedio’.";
-"KJVrGQ" = "Select Rate Types";
+"67KYjr-p2wzTd" = "There are ${count} options matching ‘Venta’.";
-"QLA2l0" = "Change Type";
+"HlAW7E" = "Compra";
-"awIy14" = "Seleccionar cotizaciones";
+"JtpQnj" = "Select Rate Types";
-"bCcw0O" = "Rate Type";
+"OsOaCJ" = "Just to confirm, you wanted ‘${rateType}’?";
-"bnMW1j" = "Porcentaje";
+"PxDzsY-HlAW7E" = "Just to confirm, you wanted ‘Compra’?";
-"g8v3kF" = "Promedio";
+"PxDzsY-RVyQ6W" = "Just to confirm, you wanted ‘Promedio’?";
-"gpCwrM" = "Select Rate Type";
+"PxDzsY-p2wzTd" = "Just to confirm, you wanted ‘Venta’?";
-"lYn6uD-7SfjBD" = "There are ${count} options matching ‘Venta’.";
+"QKKLd7" = "Seleccionar cotizaciones";
-"lYn6uD-g8v3kF" = "There are ${count} options matching ‘Promedio’.";
+"RMvNPo" = "Rate Types";
-"lYn6uD-pfnzhV" = "There are ${count} options matching ‘Compra’.";
+"RVyQ6W" = "Promedio";
-"mMMBEY" = "Cotizaciones";
+"UH8942" = "There are ${count} options matching ‘${rateType}’.";
-"oEufjL" = "Value Type";
+"Xl84YZ" = "Porcentaje";
-"pfnzhV" = "Compra";
+"a9MRpz" = "Monto";
-"tVvJ9c" = "Seleccionar cotización";
+"gpCwrM" = "Select Rate Type";
+
+"hp2t3T-HlAW7E" = "There are ${count} options matching ‘Compra’.";
-"v6zxOy-7SfjBD" = "There are ${count} options matching ‘Venta’.";
+"hp2t3T-RVyQ6W" = "There are ${count} options matching ‘Promedio’.";
-"v6zxOy-g8v3kF" = "There are ${count} options matching ‘Promedio’.";
+"hp2t3T-p2wzTd" = "There are ${count} options matching ‘Venta’.";
-"v6zxOy-pfnzhV" = "There are ${count} options matching ‘Compra’.";
+"jXfZco" = "Just to confirm, you wanted ‘${rateTypes}’?";
-"wDOI0z-7SfjBD" = "Just to confirm, you wanted ‘Venta’?";
+"jzlPZ1" = "Change Type";
-"wDOI0z-g8v3kF" = "Just to confirm, you wanted ‘Promedio’?";
+"kkUgcF" = "There are ${count} options matching ‘${rateTypes}’.";
-"wDOI0z-pfnzhV" = "Just to confirm, you wanted ‘Compra’?";
+"nYMwvW" = "Mostrar";
-"wcG5ws-7SfjBD" = "Just to confirm, you wanted ‘Venta’?";
+"p2wzTd" = "Venta";
+
+"r4vekZ" = "Cotización";
+
+"rxevbT" = "Rate Type";
+
+"tVvJ9c" = "Seleccionar cotización";
-"wcG5ws-g8v3kF" = "Just to confirm, you wanted ‘Promedio’?";
+"uhpYzW" = "Value Type";
-"wcG5ws-pfnzhV" = "Just to confirm, you wanted ‘Compra’?";
+"zoXmTW" = "Mostrar";
diff --git a/packages/client/ios/mbitoDlar.xcodeproj/project.pbxproj b/packages/client/ios/mbitoDlar.xcodeproj/project.pbxproj
index bc35029..48e23ce 100644
--- a/packages/client/ios/mbitoDlar.xcodeproj/project.pbxproj
+++ b/packages/client/ios/mbitoDlar.xcodeproj/project.pbxproj
@@ -3,60 +3,60 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 46;
+ objectVersion = 54;
objects = {
/* Begin PBXBuildFile section */
13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
- 311E88742E7940028BD04581 /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = F01B3F524842449AB6C27D8A /* noop-file.swift */; };
3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; };
96905EF65AED1B983A6B3ABC /* libPods-mbitoDlar.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-mbitoDlar.a */; };
B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */; };
BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; };
- C2507AD129BAC9CE0018DDCA /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C2507AD029BAC9CE0018DDCA /* WidgetKit.framework */; };
- C2507AD329BAC9CE0018DDCA /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C2507AD229BAC9CE0018DDCA /* SwiftUI.framework */; };
- C2507AD829BAC9CE0018DDCA /* RateWidgets.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2507AD729BAC9CE0018DDCA /* RateWidgets.swift */; };
- C2507ADB29BAC9CF0018DDCA /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C2507ADA29BAC9CF0018DDCA /* Assets.xcassets */; };
- C2507AE129BAC9CF0018DDCA /* RateWidgetsExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = C2507ACF29BAC9CE0018DDCA /* RateWidgetsExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
- C2507AE629BACC500018DDCA /* RateWidgets.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = C2507AE929BACC500018DDCA /* RateWidgets.intentdefinition */; };
- C2507AE729BACC500018DDCA /* RateWidgets.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = C2507AE929BACC500018DDCA /* RateWidgets.intentdefinition */; };
- C2507AED29BACC9C0018DDCA /* FiraGO-Regular-Minimal.otf in Resources */ = {isa = PBXBuildFile; fileRef = C2507AEC29BACC9C0018DDCA /* FiraGO-Regular-Minimal.otf */; };
- C2507AF429BACCFB0018DDCA /* Intents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C2507AF329BACCFB0018DDCA /* Intents.framework */; };
- C2507AF729BACCFB0018DDCA /* IntentHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2507AF629BACCFB0018DDCA /* IntentHandler.swift */; };
- C2507AFB29BACCFB0018DDCA /* RateIntents.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = C2507AF229BACCFB0018DDCA /* RateIntents.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
- C2507AFF29BACD110018DDCA /* RateWidgets.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = C2507AE929BACC500018DDCA /* RateWidgets.intentdefinition */; };
- C2507B0229BACD530018DDCA /* Helper.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2507B0129BACD530018DDCA /* Helper.swift */; };
- C2507B0329BACD530018DDCA /* Helper.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2507B0129BACD530018DDCA /* Helper.swift */; };
+ C21E45B42A7876B700DE33BF /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C21E45B32A7876B700DE33BF /* WidgetKit.framework */; };
+ C21E45B62A7876B700DE33BF /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C21E45B52A7876B700DE33BF /* SwiftUI.framework */; };
+ C21E45BB2A7876B700DE33BF /* RateWidgets.swift in Sources */ = {isa = PBXBuildFile; fileRef = C21E45BA2A7876B700DE33BF /* RateWidgets.swift */; };
+ C21E45BE2A7876B900DE33BF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C21E45BD2A7876B900DE33BF /* Assets.xcassets */; };
+ C21E45C42A7876B900DE33BF /* RateWidgetsExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = C21E45B22A7876B700DE33BF /* RateWidgetsExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
+ C21E45C92A78791100DE33BF /* RateWidgets.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = C21E45CC2A78791100DE33BF /* RateWidgets.intentdefinition */; };
+ C21E45CA2A78791100DE33BF /* RateWidgets.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = C21E45CC2A78791100DE33BF /* RateWidgets.intentdefinition */; };
+ C21E45D12A7879B200DE33BF /* FiraGO-Regular-Minimal.otf in Resources */ = {isa = PBXBuildFile; fileRef = C21E45D02A7879B200DE33BF /* FiraGO-Regular-Minimal.otf */; };
+ C21E45D82A787A2E00DE33BF /* Intents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C21E45D72A787A2E00DE33BF /* Intents.framework */; };
+ C21E45DB2A787A2E00DE33BF /* IntentHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C21E45DA2A787A2E00DE33BF /* IntentHandler.swift */; };
+ C21E45DF2A787A2E00DE33BF /* RateIntents.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = C21E45D62A787A2E00DE33BF /* RateIntents.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
+ C21E45E32A787A4A00DE33BF /* RateWidgets.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = C21E45CC2A78791100DE33BF /* RateWidgets.intentdefinition */; };
+ C21E45E62A787AB600DE33BF /* Helper.swift in Sources */ = {isa = PBXBuildFile; fileRef = C21E45E52A787AB600DE33BF /* Helper.swift */; };
+ C21E45E72A787AB600DE33BF /* Helper.swift in Sources */ = {isa = PBXBuildFile; fileRef = C21E45E52A787AB600DE33BF /* Helper.swift */; };
+ E320CBB8C349412EB326DBC9 /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = 655084A5E5B94E5AA67AB50A /* noop-file.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
- C2507ADF29BAC9CF0018DDCA /* PBXContainerItemProxy */ = {
+ C21E45C22A7876B900DE33BF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = C2507ACE29BAC9CE0018DDCA;
+ remoteGlobalIDString = C21E45B12A7876B700DE33BF;
remoteInfo = RateWidgetsExtension;
};
- C2507AF929BACCFB0018DDCA /* PBXContainerItemProxy */ = {
+ C21E45DD2A787A2E00DE33BF /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
proxyType = 1;
- remoteGlobalIDString = C2507AF129BACCFB0018DDCA;
+ remoteGlobalIDString = C21E45D52A787A2E00DE33BF;
remoteInfo = RateIntents;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
- C2507AE529BAC9CF0018DDCA /* Embed Foundation Extensions */ = {
+ C21E45C82A7876B900DE33BF /* Embed Foundation Extensions */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 13;
files = (
- C2507AFB29BACCFB0018DDCA /* RateIntents.appex in Embed Foundation Extensions */,
- C2507AE129BAC9CF0018DDCA /* RateWidgetsExtension.appex in Embed Foundation Extensions */,
+ C21E45DF2A787A2E00DE33BF /* RateIntents.appex in Embed Foundation Extensions */,
+ C21E45C42A7876B900DE33BF /* RateWidgetsExtension.appex in Embed Foundation Extensions */,
);
name = "Embed Foundation Extensions";
runOnlyForDeploymentPostprocessing = 0;
@@ -64,7 +64,6 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
- 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; };
13B07F961A680F5B00A75B9A /* mbitoDlar.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = mbitoDlar.app; sourceTree = BUILT_PRODUCTS_DIR; };
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = mbitoDlar/AppDelegate.h; sourceTree = ""; };
13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = mbitoDlar/AppDelegate.mm; sourceTree = ""; };
@@ -72,26 +71,27 @@
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mbitoDlar/Info.plist; sourceTree = ""; };
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = mbitoDlar/main.m; sourceTree = ""; };
58EEBF8E8E6FB1BC6CAF49B5 /* libPods-mbitoDlar.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-mbitoDlar.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 655084A5E5B94E5AA67AB50A /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "mbitoDlar/noop-file.swift"; sourceTree = ""; };
6C2E3173556A471DD304B334 /* Pods-mbitoDlar.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-mbitoDlar.debug.xcconfig"; path = "Target Support Files/Pods-mbitoDlar/Pods-mbitoDlar.debug.xcconfig"; sourceTree = ""; };
7A4D352CD337FB3A3BF06240 /* Pods-mbitoDlar.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-mbitoDlar.release.xcconfig"; path = "Target Support Files/Pods-mbitoDlar/Pods-mbitoDlar.release.xcconfig"; sourceTree = ""; };
AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = mbitoDlar/SplashScreen.storyboard; sourceTree = ""; };
BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; };
- C2507ACF29BAC9CE0018DDCA /* RateWidgetsExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = RateWidgetsExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
- C2507AD029BAC9CE0018DDCA /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; };
- C2507AD229BAC9CE0018DDCA /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; };
- C2507AD729BAC9CE0018DDCA /* RateWidgets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RateWidgets.swift; sourceTree = ""; };
- C2507ADA29BAC9CF0018DDCA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
- C2507ADC29BAC9CF0018DDCA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- C2507AE829BACC500018DDCA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.intentdefinition; name = Base; path = Base.lproj/RateWidgets.intentdefinition; sourceTree = ""; };
- C2507AEC29BACC9C0018DDCA /* FiraGO-Regular-Minimal.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "FiraGO-Regular-Minimal.otf"; path = "../../assets/fonts/FiraGO-Regular-Minimal.otf"; sourceTree = ""; };
- C2507AF229BACCFB0018DDCA /* RateIntents.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = RateIntents.appex; sourceTree = BUILT_PRODUCTS_DIR; };
- C2507AF329BACCFB0018DDCA /* Intents.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Intents.framework; path = System/Library/Frameworks/Intents.framework; sourceTree = SDKROOT; };
- C2507AF629BACCFB0018DDCA /* IntentHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntentHandler.swift; sourceTree = ""; };
- C2507AF829BACCFB0018DDCA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- C2507B0129BACD530018DDCA /* Helper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Helper.swift; sourceTree = ""; };
- C295610D29F894430086D346 /* es-419 */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-419"; path = "es-419.lproj/RateWidgets.strings"; sourceTree = ""; };
+ C21E45B22A7876B700DE33BF /* RateWidgetsExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = RateWidgetsExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
+ C21E45B32A7876B700DE33BF /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; };
+ C21E45B52A7876B700DE33BF /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; };
+ C21E45BA2A7876B700DE33BF /* RateWidgets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RateWidgets.swift; sourceTree = ""; };
+ C21E45BD2A7876B900DE33BF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
+ C21E45BF2A7876B900DE33BF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ C21E45CD2A78792400DE33BF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.intentdefinition; name = Base; path = Base.lproj/RateWidgets.intentdefinition; sourceTree = ""; };
+ C21E45CF2A78793300DE33BF /* es-419 */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-419"; path = "es-419.lproj/RateWidgets.strings"; sourceTree = ""; };
+ C21E45D02A7879B200DE33BF /* FiraGO-Regular-Minimal.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "FiraGO-Regular-Minimal.otf"; path = "../../assets/fonts/FiraGO-Regular-Minimal.otf"; sourceTree = ""; };
+ C21E45D62A787A2E00DE33BF /* RateIntents.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = RateIntents.appex; sourceTree = BUILT_PRODUCTS_DIR; };
+ C21E45D72A787A2E00DE33BF /* Intents.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Intents.framework; path = System/Library/Frameworks/Intents.framework; sourceTree = SDKROOT; };
+ C21E45DA2A787A2E00DE33BF /* IntentHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntentHandler.swift; sourceTree = ""; };
+ C21E45DC2A787A2E00DE33BF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ C21E45E52A787AB600DE33BF /* Helper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Helper.swift; sourceTree = ""; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
- F01B3F524842449AB6C27D8A /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "mbitoDlar/noop-file.swift"; sourceTree = ""; };
+ F3D86AC280A943AB944FE020 /* mbitoDlar-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "mbitoDlar-Bridging-Header.h"; path = "mbitoDlar/mbitoDlar-Bridging-Header.h"; sourceTree = ""; };
FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-mbitoDlar/ExpoModulesProvider.swift"; sourceTree = ""; };
/* End PBXFileReference section */
@@ -104,20 +104,20 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
- C2507ACC29BAC9CE0018DDCA /* Frameworks */ = {
+ C21E45AF2A7876B700DE33BF /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- C2507AD329BAC9CE0018DDCA /* SwiftUI.framework in Frameworks */,
- C2507AD129BAC9CE0018DDCA /* WidgetKit.framework in Frameworks */,
+ C21E45B62A7876B700DE33BF /* SwiftUI.framework in Frameworks */,
+ C21E45B42A7876B700DE33BF /* WidgetKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- C2507AEF29BACCFB0018DDCA /* Frameworks */ = {
+ C21E45D32A787A2E00DE33BF /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- C2507AF429BACCFB0018DDCA /* Intents.framework in Frameworks */,
+ C21E45D82A787A2E00DE33BF /* Intents.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -128,14 +128,14 @@
isa = PBXGroup;
children = (
BB2F792B24A3F905000567C9 /* Supporting */,
- 008F07F21AC5B25A0029DE68 /* main.jsbundle */,
13B07FAF1A68108700A75B9A /* AppDelegate.h */,
13B07FB01A68108700A75B9A /* AppDelegate.mm */,
13B07FB51A68108700A75B9A /* Images.xcassets */,
13B07FB61A68108700A75B9A /* Info.plist */,
13B07FB71A68108700A75B9A /* main.m */,
AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */,
- F01B3F524842449AB6C27D8A /* noop-file.swift */,
+ 655084A5E5B94E5AA67AB50A /* noop-file.swift */,
+ F3D86AC280A943AB944FE020 /* mbitoDlar-Bridging-Header.h */,
);
name = mbitoDlar;
sourceTree = "";
@@ -145,9 +145,9 @@
children = (
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
58EEBF8E8E6FB1BC6CAF49B5 /* libPods-mbitoDlar.a */,
- C2507AD029BAC9CE0018DDCA /* WidgetKit.framework */,
- C2507AD229BAC9CE0018DDCA /* SwiftUI.framework */,
- C2507AF329BACCFB0018DDCA /* Intents.framework */,
+ C21E45B32A7876B700DE33BF /* WidgetKit.framework */,
+ C21E45B52A7876B700DE33BF /* SwiftUI.framework */,
+ C21E45D72A787A2E00DE33BF /* Intents.framework */,
);
name = Frameworks;
sourceTree = "";
@@ -164,8 +164,8 @@
children = (
13B07FAE1A68108700A75B9A /* mbitoDlar */,
832341AE1AAA6A7D00B99B32 /* Libraries */,
- C2507AD429BAC9CE0018DDCA /* RateWidgets */,
- C2507AF529BACCFB0018DDCA /* RateIntents */,
+ C21E45B72A7876B700DE33BF /* RateWidgets */,
+ C21E45D92A787A2E00DE33BF /* RateIntents */,
83CBBA001A601CBA00E9B192 /* Products */,
2D16E6871FA4F8E400B85C8A /* Frameworks */,
D65327D7A22EEC0BE12398D9 /* Pods */,
@@ -180,8 +180,8 @@
isa = PBXGroup;
children = (
13B07F961A680F5B00A75B9A /* mbitoDlar.app */,
- C2507ACF29BAC9CE0018DDCA /* RateWidgetsExtension.appex */,
- C2507AF229BACCFB0018DDCA /* RateIntents.appex */,
+ C21E45B22A7876B700DE33BF /* RateWidgetsExtension.appex */,
+ C21E45D62A787A2E00DE33BF /* RateIntents.appex */,
);
name = Products;
sourceTree = "";
@@ -203,32 +203,32 @@
path = mbitoDlar/Supporting;
sourceTree = "";
};
- C2507AD429BAC9CE0018DDCA /* RateWidgets */ = {
+ C21E45B72A7876B700DE33BF /* RateWidgets */ = {
isa = PBXGroup;
children = (
- C2507B0029BACD2F0018DDCA /* Utils */,
- C2507AEC29BACC9C0018DDCA /* FiraGO-Regular-Minimal.otf */,
- C2507AD729BAC9CE0018DDCA /* RateWidgets.swift */,
- C2507AE929BACC500018DDCA /* RateWidgets.intentdefinition */,
- C2507ADA29BAC9CF0018DDCA /* Assets.xcassets */,
- C2507ADC29BAC9CF0018DDCA /* Info.plist */,
+ C21E45E42A787A5E00DE33BF /* Utils */,
+ C21E45D02A7879B200DE33BF /* FiraGO-Regular-Minimal.otf */,
+ C21E45BA2A7876B700DE33BF /* RateWidgets.swift */,
+ C21E45CC2A78791100DE33BF /* RateWidgets.intentdefinition */,
+ C21E45BD2A7876B900DE33BF /* Assets.xcassets */,
+ C21E45BF2A7876B900DE33BF /* Info.plist */,
);
path = RateWidgets;
sourceTree = "";
};
- C2507AF529BACCFB0018DDCA /* RateIntents */ = {
+ C21E45D92A787A2E00DE33BF /* RateIntents */ = {
isa = PBXGroup;
children = (
- C2507AF629BACCFB0018DDCA /* IntentHandler.swift */,
- C2507AF829BACCFB0018DDCA /* Info.plist */,
+ C21E45DA2A787A2E00DE33BF /* IntentHandler.swift */,
+ C21E45DC2A787A2E00DE33BF /* Info.plist */,
);
path = RateIntents;
sourceTree = "";
};
- C2507B0029BACD2F0018DDCA /* Utils */ = {
+ C21E45E42A787A5E00DE33BF /* Utils */ = {
isa = PBXGroup;
children = (
- C2507B0129BACD530018DDCA /* Helper.swift */,
+ C21E45E52A787AB600DE33BF /* Helper.swift */,
);
path = Utils;
sourceTree = "";
@@ -259,33 +259,34 @@
buildPhases = (
08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */,
FD10A7F022414F080027D42C /* Start Packager */,
+ 798AF1F26130F647FE86F0F1 /* [Expo] Configure project */,
13B07F871A680F5B00A75B9A /* Sources */,
13B07F8C1A680F5B00A75B9A /* Frameworks */,
13B07F8E1A680F5B00A75B9A /* Resources */,
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */,
- 8067CBB883904445BF62D5CF /* Upload Debug Symbols to Sentry */,
- 76E18F0776DAC6B0B05C38E3 /* [CP] Embed Pods Frameworks */,
- C2507AE529BAC9CF0018DDCA /* Embed Foundation Extensions */,
+ 1B5255A79C7F4BECA8ACB523 /* Upload Debug Symbols to Sentry */,
+ 0601AEB62AE000833B03E9AD /* [CP] Embed Pods Frameworks */,
+ C21E45C82A7876B900DE33BF /* Embed Foundation Extensions */,
);
buildRules = (
);
dependencies = (
- C2507AE029BAC9CF0018DDCA /* PBXTargetDependency */,
- C2507AFA29BACCFB0018DDCA /* PBXTargetDependency */,
+ C21E45C32A7876B900DE33BF /* PBXTargetDependency */,
+ C21E45DE2A787A2E00DE33BF /* PBXTargetDependency */,
);
name = mbitoDlar;
productName = mbitoDlar;
productReference = 13B07F961A680F5B00A75B9A /* mbitoDlar.app */;
productType = "com.apple.product-type.application";
};
- C2507ACE29BAC9CE0018DDCA /* RateWidgetsExtension */ = {
+ C21E45B12A7876B700DE33BF /* RateWidgetsExtension */ = {
isa = PBXNativeTarget;
- buildConfigurationList = C2507AE229BAC9CF0018DDCA /* Build configuration list for PBXNativeTarget "RateWidgetsExtension" */;
+ buildConfigurationList = C21E45C52A7876B900DE33BF /* Build configuration list for PBXNativeTarget "RateWidgetsExtension" */;
buildPhases = (
- C2507ACB29BAC9CE0018DDCA /* Sources */,
- C2507ACC29BAC9CE0018DDCA /* Frameworks */,
- C2507ACD29BAC9CE0018DDCA /* Resources */,
+ C21E45AE2A7876B700DE33BF /* Sources */,
+ C21E45AF2A7876B700DE33BF /* Frameworks */,
+ C21E45B02A7876B700DE33BF /* Resources */,
);
buildRules = (
);
@@ -293,16 +294,16 @@
);
name = RateWidgetsExtension;
productName = RateWidgetsExtension;
- productReference = C2507ACF29BAC9CE0018DDCA /* RateWidgetsExtension.appex */;
+ productReference = C21E45B22A7876B700DE33BF /* RateWidgetsExtension.appex */;
productType = "com.apple.product-type.app-extension";
};
- C2507AF129BACCFB0018DDCA /* RateIntents */ = {
+ C21E45D52A787A2E00DE33BF /* RateIntents */ = {
isa = PBXNativeTarget;
- buildConfigurationList = C2507AFC29BACCFB0018DDCA /* Build configuration list for PBXNativeTarget "RateIntents" */;
+ buildConfigurationList = C21E45E02A787A2F00DE33BF /* Build configuration list for PBXNativeTarget "RateIntents" */;
buildPhases = (
- C2507AEE29BACCFB0018DDCA /* Sources */,
- C2507AEF29BACCFB0018DDCA /* Frameworks */,
- C2507AF029BACCFB0018DDCA /* Resources */,
+ C21E45D22A787A2E00DE33BF /* Sources */,
+ C21E45D32A787A2E00DE33BF /* Frameworks */,
+ C21E45D42A787A2E00DE33BF /* Resources */,
);
buildRules = (
);
@@ -310,7 +311,7 @@
);
name = RateIntents;
productName = RateIntents;
- productReference = C2507AF229BACCFB0018DDCA /* RateIntents.appex */;
+ productReference = C21E45D62A787A2E00DE33BF /* RateIntents.appex */;
productType = "com.apple.product-type.app-extension";
};
/* End PBXNativeTarget section */
@@ -319,25 +320,23 @@
83CBB9F71A601CBA00E9B192 /* Project object */ = {
isa = PBXProject;
attributes = {
- LastSwiftUpdateCheck = 1420;
+ LastSwiftUpdateCheck = 1430;
LastUpgradeCheck = 1130;
TargetAttributes = {
13B07F861A680F5B00A75B9A = {
LastSwiftMigration = 1250;
};
- C2507ACE29BAC9CE0018DDCA = {
- CreatedOnToolsVersion = 14.2;
- ProvisioningStyle = Automatic;
+ C21E45B12A7876B700DE33BF = {
+ CreatedOnToolsVersion = 14.3.1;
};
- C2507AF129BACCFB0018DDCA = {
- CreatedOnToolsVersion = 14.2;
- ProvisioningStyle = Automatic;
+ C21E45D52A787A2E00DE33BF = {
+ CreatedOnToolsVersion = 14.3.1;
};
};
};
buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "mbitoDlar" */;
compatibilityVersion = "Xcode 3.2";
- developmentRegion = en;
+ developmentRegion = "es-419";
hasScannedForEncodings = 0;
knownRegions = (
en,
@@ -350,8 +349,8 @@
projectRoot = "";
targets = (
13B07F861A680F5B00A75B9A /* mbitoDlar */,
- C2507ACE29BAC9CE0018DDCA /* RateWidgetsExtension */,
- C2507AF129BACCFB0018DDCA /* RateIntents */,
+ C21E45B12A7876B700DE33BF /* RateWidgetsExtension */,
+ C21E45D52A787A2E00DE33BF /* RateIntents */,
);
};
/* End PBXProject section */
@@ -367,16 +366,16 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
- C2507ACD29BAC9CE0018DDCA /* Resources */ = {
+ C21E45B02A7876B700DE33BF /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- C2507AED29BACC9C0018DDCA /* FiraGO-Regular-Minimal.otf in Resources */,
- C2507ADB29BAC9CF0018DDCA /* Assets.xcassets in Resources */,
+ C21E45D12A7879B200DE33BF /* FiraGO-Regular-Minimal.otf in Resources */,
+ C21E45BE2A7876B900DE33BF /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- C2507AF029BACCFB0018DDCA /* Resources */ = {
+ C21E45D42A787A2E00DE33BF /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -398,7 +397,25 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "export SENTRY_PROPERTIES=sentry.properties\nexport EXTRA_PACKAGER_ARGS=\"--sourcemap-output $DERIVED_FILE_DIR/main.jsbundle.map\"\nif [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" $PROJECT_ROOT ios relative | tail -n 1)\"\nfi\n\n`node --print \"require.resolve('@sentry/cli/package.json').slice(0, -13) + '/bin/sentry-cli'\"` react-native xcode --force-foreground `\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n";
+ shellScript = "export SENTRY_PROPERTIES=sentry.properties\nexport EXTRA_PACKAGER_ARGS=\"--sourcemap-output $DERIVED_FILE_DIR/main.jsbundle.map\"\nif [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" \"$PROJECT_ROOT\" ios relative | tail -n 1)\"\nfi\n\nif [[ -z \"$CLI_PATH\" ]]; then\n # Use Expo CLI\n export CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require.resolve('@expo/cli')\")\"\nfi\nif [[ -z \"$BUNDLE_COMMAND\" ]]; then\n # Default Expo CLI command for bundling\n export BUNDLE_COMMAND=\"export:embed\"\nfi\n\n`node --print \"require.resolve('@sentry/cli/package.json').slice(0, -13) + '/bin/sentry-cli'\"` react-native xcode --force-foreground `\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n\n\n`node --print \"require.resolve('@sentry/react-native/package.json').slice(0, -13) + '/scripts/collect-modules.sh'\"`";
+ };
+ 0601AEB62AE000833B03E9AD /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-mbitoDlar/Pods-mbitoDlar-frameworks.sh",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputPaths = (
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-mbitoDlar/Pods-mbitoDlar-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
};
08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
@@ -422,23 +439,38 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
- 76E18F0776DAC6B0B05C38E3 /* [CP] Embed Pods Frameworks */ = {
+ 1B5255A79C7F4BECA8ACB523 /* Upload Debug Symbols to Sentry */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-mbitoDlar/Pods-mbitoDlar-frameworks.sh",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes",
);
- name = "[CP] Embed Pods Frameworks";
+ name = "Upload Debug Symbols to Sentry";
outputPaths = (
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-mbitoDlar/Pods-mbitoDlar-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
+ shellScript = "\nexport SENTRY_PROPERTIES=sentry.properties\n[[ $SENTRY_INCLUDE_NATIVE_SOURCES == \"true\" ]] && INCLUDE_SOURCES_FLAG=\"--include-sources\" || INCLUDE_SOURCES_FLAG=\"\"\n`node --print \"require.resolve('@sentry/cli/package.json').slice(0, -13) + '/bin/sentry-cli'\"` debug-files upload --force-foreground \"$INCLUDE_SOURCES_FLAG\" \"$DWARF_DSYM_FOLDER_PATH\"\n ";
+ };
+ 798AF1F26130F647FE86F0F1 /* [Expo] Configure project */ = {
+ isa = PBXShellScriptBuildPhase;
+ alwaysOutOfDate = 1;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ );
+ name = "[Expo] Configure project";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-mbitoDlar/expo-configure-project.sh\"\n";
};
800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
@@ -447,7 +479,6 @@
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-mbitoDlar/Pods-mbitoDlar-resources.sh",
- "${PODS_ROOT}/Amplitude/Sources/Resources/ComodoRsaDomainValidationCA.der",
"${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/EXUpdates/EXUpdates.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle",
@@ -456,7 +487,6 @@
);
name = "[CP] Copy Pods Resources";
outputPaths = (
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ComodoRsaDomainValidationCA.der",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXUpdates.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle",
@@ -468,20 +498,6 @@
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-mbitoDlar/Pods-mbitoDlar-resources.sh\"\n";
showEnvVarsInLog = 0;
};
- 8067CBB883904445BF62D5CF /* Upload Debug Symbols to Sentry */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "Upload Debug Symbols to Sentry";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "export SENTRY_PROPERTIES=sentry.properties\n`node --print \"require.resolve('@sentry/cli/package.json').slice(0, -13) + '/bin/sentry-cli'\"` upload-dsym --force-foreground";
- };
FD10A7F022414F080027D42C /* Start Packager */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -498,7 +514,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\nexport RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > `$NODE_BINARY --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/.packager.env'\"`\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open `$NODE_BINARY --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/launchPackager.command'\"` || echo \"Can't start packager automatically\"\n fi\nfi\n";
+ shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\nexport RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > `$NODE_BINARY --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/.packager.env'\"`\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open `$NODE_BINARY --print \"require('path').dirname(require.resolve('expo/package.json')) + '/scripts/launchPackager.command'\"` || echo \"Can't start packager automatically\"\n fi\nfi\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
@@ -510,53 +526,53 @@
files = (
13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */,
13B07FC11A68108700A75B9A /* main.m in Sources */,
- C2507AE629BACC500018DDCA /* RateWidgets.intentdefinition in Sources */,
+ C21E45C92A78791100DE33BF /* RateWidgets.intentdefinition in Sources */,
B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */,
- 311E88742E7940028BD04581 /* noop-file.swift in Sources */,
+ E320CBB8C349412EB326DBC9 /* noop-file.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- C2507ACB29BAC9CE0018DDCA /* Sources */ = {
+ C21E45AE2A7876B700DE33BF /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- C2507AE729BACC500018DDCA /* RateWidgets.intentdefinition in Sources */,
- C2507AD829BAC9CE0018DDCA /* RateWidgets.swift in Sources */,
- C2507B0229BACD530018DDCA /* Helper.swift in Sources */,
+ C21E45CA2A78791100DE33BF /* RateWidgets.intentdefinition in Sources */,
+ C21E45BB2A7876B700DE33BF /* RateWidgets.swift in Sources */,
+ C21E45E62A787AB600DE33BF /* Helper.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- C2507AEE29BACCFB0018DDCA /* Sources */ = {
+ C21E45D22A787A2E00DE33BF /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- C2507AFF29BACD110018DDCA /* RateWidgets.intentdefinition in Sources */,
- C2507AF729BACCFB0018DDCA /* IntentHandler.swift in Sources */,
- C2507B0329BACD530018DDCA /* Helper.swift in Sources */,
+ C21E45E32A787A4A00DE33BF /* RateWidgets.intentdefinition in Sources */,
+ C21E45DB2A787A2E00DE33BF /* IntentHandler.swift in Sources */,
+ C21E45E72A787AB600DE33BF /* Helper.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
- C2507AE029BAC9CF0018DDCA /* PBXTargetDependency */ = {
+ C21E45C32A7876B900DE33BF /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
- target = C2507ACE29BAC9CE0018DDCA /* RateWidgetsExtension */;
- targetProxy = C2507ADF29BAC9CF0018DDCA /* PBXContainerItemProxy */;
+ target = C21E45B12A7876B700DE33BF /* RateWidgetsExtension */;
+ targetProxy = C21E45C22A7876B900DE33BF /* PBXContainerItemProxy */;
};
- C2507AFA29BACCFB0018DDCA /* PBXTargetDependency */ = {
+ C21E45DE2A787A2E00DE33BF /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
- target = C2507AF129BACCFB0018DDCA /* RateIntents */;
- targetProxy = C2507AF929BACCFB0018DDCA /* PBXContainerItemProxy */;
+ target = C21E45D52A787A2E00DE33BF /* RateIntents */;
+ targetProxy = C21E45DD2A787A2E00DE33BF /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
- C2507AE929BACC500018DDCA /* RateWidgets.intentdefinition */ = {
+ C21E45CC2A78791100DE33BF /* RateWidgets.intentdefinition */ = {
isa = PBXVariantGroup;
children = (
- C2507AE829BACC500018DDCA /* Base */,
- C295610D29F894430086D346 /* es-419 */,
+ C21E45CD2A78792400DE33BF /* Base */,
+ C21E45CF2A78793300DE33BF /* es-419 */,
);
name = RateWidgets.intentdefinition;
sourceTree = "";
@@ -580,7 +596,10 @@
);
INFOPLIST_FILE = mbitoDlar/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
MARKETING_VERSION = 1.0;
OTHER_LDFLAGS = (
"$(inherited)",
@@ -590,6 +609,7 @@
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
PRODUCT_BUNDLE_IDENTIFIER = im.outa.AmbitoDolar;
PRODUCT_NAME = mbitoDlar;
+ SWIFT_OBJC_BRIDGING_HEADER = "mbitoDlar/mbitoDlar-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -608,7 +628,10 @@
CURRENT_PROJECT_VERSION = 1;
INFOPLIST_FILE = mbitoDlar/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
MARKETING_VERSION = 1.0;
OTHER_LDFLAGS = (
"$(inherited)",
@@ -618,6 +641,7 @@
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = im.outa.AmbitoDolar;
PRODUCT_NAME = mbitoDlar;
+ SWIFT_OBJC_BRIDGING_HEADER = "mbitoDlar/mbitoDlar-Bridging-Header.h";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
@@ -664,6 +688,7 @@
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
+ _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION,
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -673,10 +698,22 @@
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
- LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
+ LD_RUNPATH_SEARCH_PATHS = (
+ /usr/lib/swift,
+ "$(inherited)",
+ );
LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\"";
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
+ OTHER_CFLAGS = "$(inherited)";
+ OTHER_CPLUSPLUSFLAGS = "$(inherited)";
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-Wl",
+ "-ld_classic",
+ " ",
+ "-Wl -ld_classic ",
+ );
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
};
@@ -717,6 +754,10 @@
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "$(inherited)",
+ _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION,
+ );
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
@@ -724,16 +765,28 @@
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
- LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
+ LD_RUNPATH_SEARCH_PATHS = (
+ /usr/lib/swift,
+ "$(inherited)",
+ );
LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\"";
MTL_ENABLE_DEBUG_INFO = NO;
+ OTHER_CFLAGS = "$(inherited)";
+ OTHER_CPLUSPLUSFLAGS = "$(inherited)";
+ OTHER_LDFLAGS = (
+ "$(inherited)",
+ "-Wl",
+ "-ld_classic",
+ " ",
+ "-Wl -ld_classic ",
+ );
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
- C2507AE329BAC9CF0018DDCA /* Debug */ = {
+ C21E45C62A7876B900DE33BF /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
@@ -754,7 +807,11 @@
INFOPLIST_KEY_CFBundleDisplayName = RateWidgets;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@executable_path/../../Frameworks",
+ );
MARKETING_VERSION = 1.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
@@ -770,7 +827,7 @@
};
name = Debug;
};
- C2507AE429BAC9CF0018DDCA /* Release */ = {
+ C21E45C72A7876B900DE33BF /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
@@ -792,21 +849,26 @@
INFOPLIST_KEY_CFBundleDisplayName = RateWidgets;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@executable_path/../../Frameworks",
+ );
MARKETING_VERSION = 1.0;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = im.outa.AmbitoDolar.RateWidgets;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
+ SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_EMIT_LOC_STRINGS = YES;
- SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
- C2507AFD29BACCFB0018DDCA /* Debug */ = {
+ C21E45E12A787A2F00DE33BF /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
@@ -825,7 +887,11 @@
INFOPLIST_KEY_CFBundleDisplayName = RateIntents;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@executable_path/../../Frameworks",
+ );
MARKETING_VERSION = 1.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
@@ -841,7 +907,7 @@
};
name = Debug;
};
- C2507AFE29BACCFB0018DDCA /* Release */ = {
+ C21E45E22A787A2F00DE33BF /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ANALYZER_NONNULL = YES;
@@ -861,15 +927,20 @@
INFOPLIST_KEY_CFBundleDisplayName = RateIntents;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@executable_path/../../Frameworks",
+ );
MARKETING_VERSION = 1.0;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = im.outa.AmbitoDolar.RateIntents;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
+ SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_EMIT_LOC_STRINGS = YES;
- SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
@@ -896,20 +967,20 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- C2507AE229BAC9CF0018DDCA /* Build configuration list for PBXNativeTarget "RateWidgetsExtension" */ = {
+ C21E45C52A7876B900DE33BF /* Build configuration list for PBXNativeTarget "RateWidgetsExtension" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- C2507AE329BAC9CF0018DDCA /* Debug */,
- C2507AE429BAC9CF0018DDCA /* Release */,
+ C21E45C62A7876B900DE33BF /* Debug */,
+ C21E45C72A7876B900DE33BF /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- C2507AFC29BACCFB0018DDCA /* Build configuration list for PBXNativeTarget "RateIntents" */ = {
+ C21E45E02A787A2F00DE33BF /* Build configuration list for PBXNativeTarget "RateIntents" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- C2507AFD29BACCFB0018DDCA /* Debug */,
- C2507AFE29BACCFB0018DDCA /* Release */,
+ C21E45E12A787A2F00DE33BF /* Debug */,
+ C21E45E22A787A2F00DE33BF /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
diff --git a/packages/client/ios/mbitoDlar/AppDelegate.mm b/packages/client/ios/mbitoDlar/AppDelegate.mm
index f6f74ca..d362f27 100644
--- a/packages/client/ios/mbitoDlar/AppDelegate.mm
+++ b/packages/client/ios/mbitoDlar/AppDelegate.mm
@@ -27,22 +27,12 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
- return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
+ return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@".expo/.virtual-metro-entry"];
#else
return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif
}
-/// This method controls whether the `concurrentRoot`feature of React18 is turned on or off.
-///
-/// @see: https://reactjs.org/blog/2022/03/29/react-v18.html
-/// @note: This requires to be rendering on Fabric (i.e. on the New Architecture).
-/// @return: `true` if the `concurrentRoot` feature is enabled. Otherwise, it returns `false`.
-- (BOOL)concurrentRootEnabled
-{
- return true;
-}
-
// Linking API
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options {
return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options];
diff --git a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png b/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png
similarity index 100%
rename from packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png
rename to packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png
diff --git a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@1x.png b/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@1x.png
deleted file mode 100644
index 9246fdd..0000000
Binary files a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@1x.png and /dev/null differ
diff --git a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@2x.png b/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@2x.png
deleted file mode 100644
index c6e65e9..0000000
Binary files a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@2x.png and /dev/null differ
diff --git a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@3x.png b/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@3x.png
deleted file mode 100644
index 3707b18..0000000
Binary files a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@3x.png and /dev/null differ
diff --git a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@1x.png b/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@1x.png
deleted file mode 100644
index 47200b0..0000000
Binary files a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@1x.png and /dev/null differ
diff --git a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@2x.png b/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@2x.png
deleted file mode 100644
index 4a8b0fa..0000000
Binary files a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@2x.png and /dev/null differ
diff --git a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@3x.png b/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@3x.png
deleted file mode 100644
index 86a8f93..0000000
Binary files a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@3x.png and /dev/null differ
diff --git a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@1x.png b/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@1x.png
deleted file mode 100644
index c6e65e9..0000000
Binary files a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@1x.png and /dev/null differ
diff --git a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@2x.png b/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@2x.png
deleted file mode 100644
index 92b3533..0000000
Binary files a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@2x.png and /dev/null differ
diff --git a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@3x.png b/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@3x.png
deleted file mode 100644
index ab78fb9..0000000
Binary files a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@3x.png and /dev/null differ
diff --git a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-60x60@2x.png b/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-60x60@2x.png
deleted file mode 100644
index ab78fb9..0000000
Binary files a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-60x60@2x.png and /dev/null differ
diff --git a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-60x60@3x.png b/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-60x60@3x.png
deleted file mode 100644
index 947cfc7..0000000
Binary files a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-60x60@3x.png and /dev/null differ
diff --git a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@1x.png b/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@1x.png
deleted file mode 100644
index e779fec..0000000
Binary files a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@1x.png and /dev/null differ
diff --git a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@2x.png b/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@2x.png
deleted file mode 100644
index e479520..0000000
Binary files a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@2x.png and /dev/null differ
diff --git a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-83.5x83.5@2x.png b/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-83.5x83.5@2x.png
deleted file mode 100644
index a5fab57..0000000
Binary files a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/App-Icon-83.5x83.5@2x.png and /dev/null differ
diff --git a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/Contents.json b/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/Contents.json
index f920cb0..90d8d4c 100644
--- a/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/Contents.json
+++ b/packages/client/ios/mbitoDlar/Images.xcassets/AppIcon.appiconset/Contents.json
@@ -1,118 +1,10 @@
{
"images": [
{
- "idiom": "iphone",
- "size": "20x20",
- "scale": "2x",
- "filename": "App-Icon-20x20@2x.png"
- },
- {
- "idiom": "iphone",
- "size": "20x20",
- "scale": "3x",
- "filename": "App-Icon-20x20@3x.png"
- },
- {
- "idiom": "iphone",
- "size": "29x29",
- "scale": "1x",
- "filename": "App-Icon-29x29@1x.png"
- },
- {
- "idiom": "iphone",
- "size": "29x29",
- "scale": "2x",
- "filename": "App-Icon-29x29@2x.png"
- },
- {
- "idiom": "iphone",
- "size": "29x29",
- "scale": "3x",
- "filename": "App-Icon-29x29@3x.png"
- },
- {
- "idiom": "iphone",
- "size": "40x40",
- "scale": "2x",
- "filename": "App-Icon-40x40@2x.png"
- },
- {
- "idiom": "iphone",
- "size": "40x40",
- "scale": "3x",
- "filename": "App-Icon-40x40@3x.png"
- },
- {
- "idiom": "iphone",
- "size": "60x60",
- "scale": "2x",
- "filename": "App-Icon-60x60@2x.png"
- },
- {
- "idiom": "iphone",
- "size": "60x60",
- "scale": "3x",
- "filename": "App-Icon-60x60@3x.png"
- },
- {
- "idiom": "ipad",
- "size": "20x20",
- "scale": "1x",
- "filename": "App-Icon-20x20@1x.png"
- },
- {
- "idiom": "ipad",
- "size": "20x20",
- "scale": "2x",
- "filename": "App-Icon-20x20@2x.png"
- },
- {
- "idiom": "ipad",
- "size": "29x29",
- "scale": "1x",
- "filename": "App-Icon-29x29@1x.png"
- },
- {
- "idiom": "ipad",
- "size": "29x29",
- "scale": "2x",
- "filename": "App-Icon-29x29@2x.png"
- },
- {
- "idiom": "ipad",
- "size": "40x40",
- "scale": "1x",
- "filename": "App-Icon-40x40@1x.png"
- },
- {
- "idiom": "ipad",
- "size": "40x40",
- "scale": "2x",
- "filename": "App-Icon-40x40@2x.png"
- },
- {
- "idiom": "ipad",
- "size": "76x76",
- "scale": "1x",
- "filename": "App-Icon-76x76@1x.png"
- },
- {
- "idiom": "ipad",
- "size": "76x76",
- "scale": "2x",
- "filename": "App-Icon-76x76@2x.png"
- },
- {
- "idiom": "ipad",
- "size": "83.5x83.5",
- "scale": "2x",
- "filename": "App-Icon-83.5x83.5@2x.png"
- },
- {
- "idiom": "ios-marketing",
- "size": "1024x1024",
- "scale": "1x",
- "filename": "ItunesArtwork@2x.png"
+ "filename": "App-Icon-1024x1024@1x.png",
+ "idiom": "universal",
+ "platform": "ios",
+ "size": "1024x1024"
}
],
"info": {
diff --git a/packages/client/ios/mbitoDlar/Info.plist b/packages/client/ios/mbitoDlar/Info.plist
index 4fea727..6e501fc 100644
--- a/packages/client/ios/mbitoDlar/Info.plist
+++ b/packages/client/ios/mbitoDlar/Info.plist
@@ -19,7 +19,7 @@
CFBundlePackageType
$(PRODUCT_BUNDLE_PACKAGE_TYPE)
CFBundleShortVersionString
- 6.7.1
+ 6.8.0
CFBundleSignature
????
CFBundleURLTypes
@@ -39,9 +39,7 @@
CFBundleVersion
- 98
- EXDefaultScreenOrientationMask
- UIInterfaceOrientationMaskAll
+ 99
ITSAppUsesNonExemptEncryption
LSApplicationQueriesSchemes
@@ -76,8 +74,6 @@
SelectRateTypeIntent
SelectRateTypesIntent
- RCTRootViewBackgroundColor
- 4278190080
UIApplicationShortcutItems
diff --git a/packages/client/ios/mbitoDlar/Supporting/Expo.plist b/packages/client/ios/mbitoDlar/Supporting/Expo.plist
index c1a8c09..0ed3de9 100644
--- a/packages/client/ios/mbitoDlar/Supporting/Expo.plist
+++ b/packages/client/ios/mbitoDlar/Supporting/Expo.plist
@@ -8,7 +8,9 @@
EXUpdatesLaunchWaitMs
0
- EXUpdatesSDKVersion
- 48.0.0
+ EXUpdatesRuntimeVersion
+ 6.8.0
+ EXUpdatesURL
+ https://u.expo.dev/88dc0a10-eec5-11e8-bdb0-e9d94f6dfa7d
\ No newline at end of file
diff --git a/packages/client/ios/mbitoDlar/mbitoDlar-Bridging-Header.h b/packages/client/ios/mbitoDlar/mbitoDlar-Bridging-Header.h
new file mode 100644
index 0000000..e11d920
--- /dev/null
+++ b/packages/client/ios/mbitoDlar/mbitoDlar-Bridging-Header.h
@@ -0,0 +1,3 @@
+//
+// Use this file to import your target's public headers that you would like to expose to Swift.
+//
diff --git a/packages/client/metro.config.js b/packages/client/metro.config.js
index 2455fe0..685f801 100644
--- a/packages/client/metro.config.js
+++ b/packages/client/metro.config.js
@@ -19,7 +19,9 @@ config.resolver.nodeModulesPaths = [
// 3. Force Metro to resolve (sub)dependencies only from the `nodeModulesPaths`
config.resolver.disableHierarchicalLookup = true;
-// required by sentry and firebase
-// config.resolver.sourceExts.push('cjs');
+config.resolver.sourceExts.push(
+ // https://github.com/fnando/i18n#im-getting-an-error-like-unable-to-resolve-make-plural-from-node-modulesi18n-jsdistimportpluralizationjs
+ 'mjs',
+);
module.exports = config;
diff --git a/packages/client/package.json b/packages/client/package.json
index 45fbbad..f306a50 100644
--- a/packages/client/package.json
+++ b/packages/client/package.json
@@ -3,7 +3,7 @@
"main": "index.js",
"private": true,
"scripts": {
- "start": "expo start --dev-client",
+ "start": "expo start",
"android": "expo run:android",
"ios": "expo run:ios",
"web": "expo start --web",
@@ -11,89 +11,103 @@
},
"dependencies": {
"@ambito-dolar/core": "^3.4.0",
- "@amplitude/react-native": "^2.17.2",
+ "@amplitude/analytics-react-native": "^1.4.4",
"@calitb/react-native-widgetkit": "^0.2.0",
- "@config-plugins/react-native-quick-actions": "^5.0.0",
+ "@config-plugins/react-native-quick-actions": "^6.0.0",
"@expo/react-native-action-sheet": "^4.0.1",
"@expo/vector-icons": "^13.0.0",
+ "@react-native-async-storage/async-storage": "1.19.3",
"@react-native-community/hooks": "^3.0.0",
"@react-native-segmented-control/segmented-control": "2.4.2",
- "@react-navigation/bottom-tabs": "^6.5.8",
- "@react-navigation/elements": "^1.3.18",
- "@react-navigation/native": "^6.1.7",
- "@react-navigation/native-stack": "^6.9.13",
- "@reduxjs/toolkit": "^1.9.5",
- "@sentry/react-native": "4.15.2",
- "@shopify/flash-list": "1.5.0",
+ "@react-navigation/bottom-tabs": "^6.5.9",
+ "@react-navigation/elements": "^1.3.19",
+ "@react-navigation/native": "^6.1.8",
+ "@react-navigation/native-stack": "^6.9.14",
+ "@reduxjs/toolkit": "^1.9.6",
+ "@sentry/react-native": "5.5.0",
+ "@shopify/flash-list": "1.6.1",
"d3-array": "^3.2.4",
"d3-shape": "^3.2.0",
"dotenv": "^16.3.1",
- "expo": "~48.0.20",
- "expo-application": "~5.1.1",
- "expo-asset": "~8.9.2",
- "expo-blur": "~12.3.2",
- "expo-build-properties": "~0.6.0",
- "expo-clipboard": "~4.1.2",
- "expo-constants": "~14.2.1",
- "expo-dev-client": "~2.2.1",
- "expo-device": "~5.2.1",
- "expo-file-system": "~15.2.2",
- "expo-font": "~11.1.1",
- "expo-haptics": "~12.2.1",
- "expo-image-manipulator": "~11.1.1",
- "expo-linking": "~4.0.1",
- "expo-localization": "~14.1.1",
- "expo-mail-composer": "~12.1.1",
- "expo-notifications": "~0.18.1",
- "expo-screen-orientation": "~5.1.1",
- "expo-sharing": "~11.2.2",
- "expo-splash-screen": "~0.18.2",
- "expo-status-bar": "~1.4.4",
- "expo-store-review": "~6.2.1",
- "expo-system-ui": "~2.2.1",
- "expo-updates": "~0.16.4",
- "firebase": "^10.1.0",
- "i18n-js": "^4.3.0",
+ "expo": "^49.0.13",
+ "expo-application": "~5.3.1",
+ "expo-asset": "~8.10.1",
+ "expo-blur": "~12.4.1",
+ "expo-build-properties": "~0.8.3",
+ "expo-clipboard": "~4.3.1",
+ "expo-constants": "~14.4.2",
+ "expo-dev-client": "~2.4.11",
+ "expo-device": "~5.4.0",
+ "expo-file-system": "~15.4.4",
+ "expo-font": "~11.4.0",
+ "expo-haptics": "~12.4.0",
+ "expo-image-manipulator": "~11.3.0",
+ "expo-linking": "~5.0.2",
+ "expo-localization": "~14.3.0",
+ "expo-mail-composer": "~12.3.0",
+ "expo-notifications": "~0.20.1",
+ "expo-screen-orientation": "~6.0.5",
+ "expo-sharing": "~11.5.0",
+ "expo-splash-screen": "~0.20.5",
+ "expo-status-bar": "~1.6.0",
+ "expo-store-review": "~6.4.0",
+ "expo-system-ui": "~2.4.0",
+ "expo-updates": "~0.18.14",
+ "firebase": "^10.4.0",
+ "i18n-js": "^4.3.2",
"immutability-helper": "^3.1.1",
"lodash": "^4.17.21",
"react": "18.2.0",
"react-dom": "18.2.0",
- "react-native": "0.71.8",
+ "react-native": "0.72.5",
"react-native-animateable-text": "^0.11.0",
"react-native-collapsible": "^1.6.1",
- "react-native-device-info": "^10.8.0",
"react-native-draggable-flatlist": "outaTiME/react-native-draggable-flatlist",
- "react-native-gesture-handler": "^2.12.0",
+ "react-native-gesture-handler": "^2.13.1",
"react-native-quick-actions": "^0.3.13",
- "react-native-reanimated": "^2.17.0",
+ "react-native-reanimated": "~3.5.4",
"react-native-redash": "^18.1.0",
- "react-native-root-toast": "^3.4.1",
- "react-native-safe-area-context": "4.7.1",
- "react-native-screens": "~3.23.0",
+ "react-native-root-toast": "^3.5.1",
+ "react-native-safe-area-context": "4.7.2",
+ "react-native-screens": "~3.25.0",
"react-native-segmented-control-tab": "^4.0.0",
- "react-native-svg": "13.10.0",
+ "react-native-svg": "13.14.0",
"react-native-typography": "^1.4.1",
"react-native-view-shot": "3.7.0",
- "react-native-web": "~0.18.12",
- "react-navigation-header-buttons": "^11.0.0",
- "react-redux": "^8.1.1",
+ "react-native-web": "~0.19.9",
+ "react-navigation-header-buttons": "^11.0.1",
+ "react-redux": "^8.1.2",
"redux-persist": "^6.0.0",
"redux-persist-expo-filesystem": "^2.0.0",
"redux-persist-transform-filter": "0.0.22",
"reselect": "^4.1.8",
"semver": "^7.5.4",
- "sentry-expo": "~6.2.2",
- "styled-components": "^6.0.5",
- "swr": "^2.2.0",
+ "sentry-expo": "~7.0.1",
+ "styled-components": "^6.0.8",
+ "swr": "^2.2.4",
"victory": "36.6.11",
"victory-native": "36.6.11"
},
"devDependencies": {
- "@babel/core": "^7.22.9",
- "@expo/webpack-config": "^18.1.2"
+ "@babel/core": "^7.23.0",
+ "@expo/webpack-config": "^19.0.0"
},
- "version": "6.7.1",
+ "version": "6.7.0",
"installConfig": {
"hoistingLimits": "workspaces"
+ },
+ "expo": {
+ "install": {
+ "exclude": [
+ "@react-native-async-storage/async-storage",
+ "@react-native-segmented-control/segmented-control",
+ "@shopify/flash-list",
+ "react-native-gesture-handler",
+ "react-native-reanimated",
+ "react-native-safe-area-context",
+ "react-native-screens",
+ "react-native-svg"
+ ]
+ }
}
}
diff --git a/packages/client/screens/AboutScreen.js b/packages/client/screens/AboutScreen.js
index 8d454a9..4129892 100644
--- a/packages/client/screens/AboutScreen.js
+++ b/packages/client/screens/AboutScreen.js
@@ -2,7 +2,7 @@ import { compose } from '@reduxjs/toolkit';
import React from 'react';
import { View, Text, Linking, Platform } from 'react-native';
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
-import { runOnJS } from 'react-native-reanimated';
+// import { runOnJS } from 'react-native-reanimated';
import AnimatedConfettiView from '../components/AnimatedConfettiView';
import AppIconView from '../components/AppIconView';
@@ -56,7 +56,8 @@ const AboutScreen = ({ headerHeight, tabBarheight, navigation }) => {
const tap = Gesture.Tap()
.numberOfTaps(2)
.onStart(() => {
- runOnJS(setMakeItRain)(true);
+ // FIXME: create new confetti component
+ // runOnJS(setMakeItRain)(true);
});
React.useEffect(() => {
if (makeItRain) {
@@ -74,7 +75,7 @@ const AboutScreen = ({ headerHeight, tabBarheight, navigation }) => {
.then((supported) =>
supported
? Linking.openURL(TWITTER_DEEP_LINK)
- : Linking.openURL(TWITTER_WEB_URL)
+ : Linking.openURL(TWITTER_WEB_URL),
)
.catch(console.warn);
}, []);
@@ -83,7 +84,7 @@ const AboutScreen = ({ headerHeight, tabBarheight, navigation }) => {
.then((supported) =>
supported
? Linking.openURL(TELEGRAM_DEEP_LINK)
- : Linking.openURL(TELEGRAM_WEB_URL)
+ : Linking.openURL(TELEGRAM_WEB_URL),
)
.catch(console.warn);
}, []);
@@ -92,7 +93,7 @@ const AboutScreen = ({ headerHeight, tabBarheight, navigation }) => {
.then((supported) =>
supported
? Linking.openURL(INSTAGRAM_DEEP_LINK)
- : Linking.openURL(INSTAGRAM_WEB_URL)
+ : Linking.openURL(INSTAGRAM_WEB_URL),
)
.catch(console.warn);
}, []);
@@ -101,7 +102,7 @@ const AboutScreen = ({ headerHeight, tabBarheight, navigation }) => {
.then((supported) =>
supported
? Linking.openURL(FACEBOOK_DEEP_LINK)
- : Linking.openURL(FACEBOOK_WEB_URL)
+ : Linking.openURL(FACEBOOK_WEB_URL),
)
.catch(console.warn);
}, []);
@@ -110,7 +111,7 @@ const AboutScreen = ({ headerHeight, tabBarheight, navigation }) => {
.then((supported) =>
supported
? Linking.openURL(REDDIT_DEEP_LINK)
- : Linking.openURL(REDDIT_WEB_URL)
+ : Linking.openURL(REDDIT_WEB_URL),
)
.catch(console.warn);
}, []);
@@ -122,8 +123,8 @@ const AboutScreen = ({ headerHeight, tabBarheight, navigation }) => {
: Linking.canOpenURL(MASTODON_DEEP_LINK).then((supported) =>
supported
? Linking.openURL(MASTODON_DEEP_LINK)
- : Linking.openURL(MASTODON_WEB_URL)
- )
+ : Linking.openURL(MASTODON_WEB_URL),
+ ),
)
.catch(console.warn);
}, []);
@@ -132,7 +133,7 @@ const AboutScreen = ({ headerHeight, tabBarheight, navigation }) => {
.then((supported) =>
supported
? Linking.openURL(GITHUB_DEEP_LINK)
- : Linking.openURL(GITHUB_WEB_URL)
+ : Linking.openURL(GITHUB_WEB_URL),
)
.catch(console.warn);
}, []);
diff --git a/packages/client/screens/AdvancedNotificationsScreen.js b/packages/client/screens/AdvancedNotificationsScreen.js
index 0a1ba65..3dfd904 100644
--- a/packages/client/screens/AdvancedNotificationsScreen.js
+++ b/packages/client/screens/AdvancedNotificationsScreen.js
@@ -22,7 +22,7 @@ const AdvancedNotificationsScreen = ({
}) => {
const dispatch = useDispatch();
const notification_settings = useSelector(
- Helper.getNotificationSettingsSelector
+ Helper.getNotificationSettingsSelector,
);
const onValueChange = React.useCallback(
(type, value) => {
@@ -33,11 +33,11 @@ const AdvancedNotificationsScreen = ({
[type]: value,
},
},
- params.type
+ params.type,
);
dispatch(actions.updateNotificationSettings(settings));
},
- [params, notification_settings]
+ [params, notification_settings],
);
const getItemView = React.useCallback(
(type) => {
@@ -59,7 +59,7 @@ const AdvancedNotificationsScreen = ({
/>
);
},
- [params, notification_settings]
+ [params, notification_settings],
);
return (
{
const selectedAppearance = useSelector(
- (state) => state.application.appearance
+ (state) => state.application.appearance,
);
const dispatch = useDispatch();
return (
@@ -37,8 +37,8 @@ const AppearanceScreen = ({ headerHeight, tabBarheight }) => {
onAction={() => {
dispatch(
actions.changeAppearance(
- appearance === 'system' ? null : appearance
- )
+ appearance === 'system' ? null : appearance,
+ ),
);
}}
/>
diff --git a/packages/client/screens/ConversionScreen.js b/packages/client/screens/ConversionScreen.js
index adf6cdc..1b6c9fd 100644
--- a/packages/client/screens/ConversionScreen.js
+++ b/packages/client/screens/ConversionScreen.js
@@ -64,7 +64,7 @@ const ConversionScreen = ({
text: Helper.formatFloatingPointNumber(number),
});
},
- [numberValue]
+ [numberValue],
);
const onTextInputChangeText = React.useCallback((text) => {
inputTextRef.current?.setNativeProps({
@@ -116,14 +116,14 @@ const ConversionScreen = ({
? numberValue * rate_value
: numberValue / rate_value,
true,
- currencyIndex === 1
+ currencyIndex === 1,
)}
valueStyle={fonts.title}
selectable
/>
);
},
- [rates, typeIndex, theme, currencyIndex, numberValue, fonts]
+ [rates, typeIndex, theme, currencyIndex, numberValue, fonts],
);
useFocusEffect(
React.useCallback(() => {
@@ -139,11 +139,11 @@ const ConversionScreen = ({
}
});
return () => task.cancel();
- }, [navigation, params])
+ }, [navigation, params]),
);
const shoudStretch = React.useMemo(
() => Settings.shoudStretchRates(rateTypes, headerHeight, tabBarheight),
- [rateTypes, headerHeight, tabBarheight]
+ [rateTypes, headerHeight, tabBarheight],
);
return (
<>
@@ -301,5 +301,5 @@ const ConversionScreen = ({
export default compose(
withContainer(),
withDividersOverlay,
- withRates(true)
+ withRates(true),
)(ConversionScreen);
diff --git a/packages/client/screens/CustomizeRatesScreen.js b/packages/client/screens/CustomizeRatesScreen.js
index 353f8f4..31ed496 100644
--- a/packages/client/screens/CustomizeRatesScreen.js
+++ b/packages/client/screens/CustomizeRatesScreen.js
@@ -34,7 +34,7 @@ const CustomizeRatesScreen = ({
excluded_rates,
rate_types,
}),
- shallowEqual
+ shallowEqual,
);
const dispatch = useDispatch();
const rateTypes = React.useMemo(
@@ -42,9 +42,9 @@ const CustomizeRatesScreen = ({
_.intersection(
// use rates when nullish rate_types
rate_types ?? Object.keys(rates),
- Object.keys(rates)
+ Object.keys(rates),
),
- [rates, rate_types]
+ [rates, rate_types],
);
const data = React.useMemo(
() =>
@@ -69,7 +69,7 @@ const CustomizeRatesScreen = ({
);
},
})),
- [rateTypes, excluded_rates]
+ [rateTypes, excluded_rates],
);
const { onLayout, width: screenWidth } = useLayout();
const dragHitSlop = React.useMemo(
@@ -80,7 +80,7 @@ const CustomizeRatesScreen = ({
),
width: Settings.PADDING + Settings.ICON_SIZE + Settings.PADDING,
}),
- [screenWidth]
+ [screenWidth],
);
return (
<>
@@ -156,5 +156,5 @@ const CustomizeRatesScreen = ({
export default compose(
withContainer(),
withDividersOverlay,
- withRates()
+ withRates(),
)(CustomizeRatesScreen);
diff --git a/packages/client/screens/MainScreen.js b/packages/client/screens/MainScreen.js
index 0b2df73..3795e95 100644
--- a/packages/client/screens/MainScreen.js
+++ b/packages/client/screens/MainScreen.js
@@ -64,11 +64,11 @@ const MainScreen = ({
dispatch(actions.registerApplicationRateDetail());
navigation.navigate('RateDetail', { type });
},
- [dispatch]
+ [dispatch],
);
const shoudStretch = React.useMemo(
() => Settings.shoudStretchRates(rateTypes, headerHeight, tabBarheight),
- [rateTypes, headerHeight, tabBarheight]
+ [rateTypes, headerHeight, tabBarheight],
);
const getItemView = React.useCallback(
(type) => (
@@ -82,7 +82,7 @@ const MainScreen = ({
}}
/>
),
- [rates, shoudStretch]
+ [rates, shoudStretch],
);
if (rateTypes.length === 0) {
return (
@@ -129,5 +129,5 @@ export default compose(
withDividersOverlay,
withRates(true),
// withScreenshotShareSheet('Compartir cotizaciones')
- withScreenshotShareSheet([I18n.t('edit')])
+ withScreenshotShareSheet([I18n.t('edit')]),
)(MainScreen);
diff --git a/packages/client/screens/NotificationsScreen.js b/packages/client/screens/NotificationsScreen.js
index 39d2291..be3d063 100644
--- a/packages/client/screens/NotificationsScreen.js
+++ b/packages/client/screens/NotificationsScreen.js
@@ -27,18 +27,18 @@ const NotificationsScreen = ({ headerHeight, tabBarheight, navigation }) => {
const { invertedTheme } = Helper.useTheme();
const dispatch = useDispatch();
const notification_settings = useSelector(
- Helper.getNotificationSettingsSelector
+ Helper.getNotificationSettingsSelector,
);
const onValueChange = React.useCallback(
(value, type) => {
const settings = Helper.getNotificationSettings(
notification_settings,
value,
- type
+ type,
);
dispatch(actions.updateNotificationSettings(settings));
},
- [notification_settings]
+ [notification_settings],
);
const getItemView = React.useCallback(
(type) => (
@@ -59,7 +59,7 @@ const NotificationsScreen = ({ headerHeight, tabBarheight, navigation }) => {
/>
),
- [notification_settings]
+ [notification_settings],
);
const [allowNotifications] = Helper.useSharedState('allowNotifications');
const pushToken = useSelector((state) => state.application.push_token);
@@ -150,5 +150,5 @@ const NotificationsScreen = ({ headerHeight, tabBarheight, navigation }) => {
export default compose(
withContainer(),
- withDividersOverlay
+ withDividersOverlay,
)(NotificationsScreen);
diff --git a/packages/client/screens/RateDetailScreen.js b/packages/client/screens/RateDetailScreen.js
index caa05af..1d368b0 100644
--- a/packages/client/screens/RateDetailScreen.js
+++ b/packages/client/screens/RateDetailScreen.js
@@ -42,7 +42,7 @@ const RateDetailScreen = ({ navigation, rates, route: { params } }) => {
historical_rates,
excluded_rates,
}),
- shallowEqual
+ shallowEqual,
);
const prev_historical_rates = Helper.usePrevious(historical_rates);
const updateHistoricalRates = React.useCallback(() => {
@@ -85,9 +85,9 @@ const RateDetailScreen = ({ navigation, rates, route: { params } }) => {
moment_from,
moment_to,
'day',
- '[]'
- )
- )
+ '[]',
+ ),
+ ),
);
} else {
if (__DEV__) {
@@ -135,18 +135,18 @@ const RateDetailScreen = ({ navigation, rates, route: { params } }) => {
],
{
cancelable: false,
- }
+ },
);
})
.finally(() => {
setLoading(false);
- })
+ }),
);
}
}, [rangeIndex, historical_rates]);
const onRawDetail = React.useCallback(
() => navigation.navigate('RateRawDetail', { type, rangeIndex }),
- [type, rangeIndex]
+ [type, rangeIndex],
);
const onTabPress = React.useCallback((index) => {
setRangeIndex(index);
@@ -245,5 +245,5 @@ export default compose(
withDividersOverlay,
withRates(),
// withScreenshotShareSheet('Compartir cotización')
- withScreenshotShareSheet()
+ withScreenshotShareSheet(),
)(RateDetailScreen);
diff --git a/packages/client/screens/RateOrderScreen.js b/packages/client/screens/RateOrderScreen.js
index 4c63bf1..0275d42 100644
--- a/packages/client/screens/RateOrderScreen.js
+++ b/packages/client/screens/RateOrderScreen.js
@@ -19,7 +19,7 @@ const RateOrderScreen = ({ isModal, headerHeight, tabBarheight }) => {
rate_order,
rate_order_direction,
}),
- shallowEqual
+ shallowEqual,
);
const dispatch = useDispatch();
return (
@@ -46,7 +46,7 @@ const RateOrderScreen = ({ isModal, headerHeight, tabBarheight }) => {
dispatch(actions.changeRateOrder(selection));
}}
/>
- )
+ ),
)}
diff --git a/packages/client/screens/RateRawDetailScreen.js b/packages/client/screens/RateRawDetailScreen.js
index 6c86c2f..f51cbf4 100644
--- a/packages/client/screens/RateRawDetailScreen.js
+++ b/packages/client/screens/RateRawDetailScreen.js
@@ -78,8 +78,8 @@ const RateRawDetailScreen = ({
moment_from,
moment_to,
'day',
- '[]'
- )
+ '[]',
+ ),
);
} else {
if (__DEV__) {
@@ -93,9 +93,9 @@ const RateRawDetailScreen = ({
() =>
DateUtils.formatRange(
chartStats[0][0],
- chartStats[chartStats.length - 1][0]
+ chartStats[chartStats.length - 1][0],
),
- [chartStats]
+ [chartStats],
);
// reverse the order and normalize
const data = React.useMemo(
@@ -113,7 +113,7 @@ const RateRawDetailScreen = ({
/>
),
})),
- [chartStats]
+ [chartStats],
);
return (
{
updatedAt,
appearance,
}),
- shallowEqual
+ shallowEqual,
);
const onPressContact = React.useCallback(() => {
MailComposer.composeAsync({
@@ -59,13 +59,13 @@ const SettingsScreen = ({ headerHeight, tabBarheight, navigation }) => {
const [tick, setTick] = React.useState();
const updatedAtFromNow = React.useMemo(
() => DateUtils.get(updatedAt).calendar(),
- [tick]
+ [tick],
);
const tickCallback = React.useCallback(
(tick) => {
setTick(tick);
},
- [updatedAt]
+ [updatedAt],
);
Helper.useInterval(tickCallback);
return (
diff --git a/packages/client/screens/StatisticsScreen.js b/packages/client/screens/StatisticsScreen.js
index 386c3e9..1fb3df6 100644
--- a/packages/client/screens/StatisticsScreen.js
+++ b/packages/client/screens/StatisticsScreen.js
@@ -44,7 +44,7 @@ const StatisticsScreen = ({ headerHeight, tabBarheight }) => {
downloadedHistoricalRates,
detailedRates,
}),
- shallowEqual
+ shallowEqual,
);
return (
diff --git a/packages/client/screens/UpdateAppScreen.js b/packages/client/screens/UpdateAppScreen.js
index a7097e8..2631de7 100644
--- a/packages/client/screens/UpdateAppScreen.js
+++ b/packages/client/screens/UpdateAppScreen.js
@@ -28,7 +28,7 @@ const UpdateAppScreen = ({ navigation }) => {
console.log('You must confirm the current modal screen');
}
}),
- [navigation, confirmed]
+ [navigation, confirmed],
);
React.useEffect(() => {
if (confirmed === true) {
diff --git a/packages/client/store/index.js b/packages/client/store/index.js
index cc75a12..89738ba 100644
--- a/packages/client/store/index.js
+++ b/packages/client/store/index.js
@@ -19,7 +19,7 @@ import rootReducer from '../reducers';
const saveApplicationSubsetBlacklistFilter = createBlacklistFilter(
'application',
- ['push_token', 'sending_push_token']
+ ['push_token', 'sending_push_token'],
);
const STORE_CONFIG_VERSION = 6.1;
diff --git a/packages/client/utilities/Amplitude.js b/packages/client/utilities/Amplitude.js
index ac52e07..86e5837 100644
--- a/packages/client/utilities/Amplitude.js
+++ b/packages/client/utilities/Amplitude.js
@@ -1,25 +1,12 @@
-import { Amplitude } from '@amplitude/react-native';
+import { init, setUserId, track } from '@amplitude/analytics-react-native';
import Settings from '../config/settings';
-const init = (key) => {
- const instance = Amplitude.getInstance();
- instance.init(key).catch(console.warn);
- // extras here
- return instance;
-};
-
-const instance =
- Settings.IS_PRODUCTION &&
+Settings.IS_PRODUCTION &&
Settings.AMPLITUDE_KEY &&
init(Settings.AMPLITUDE_KEY);
-const setUserId = (id) =>
- instance && instance.setUserId(id).catch(console.warn);
-const logEvent = (type, props) =>
- instance && instance.logEvent(type, props).catch(console.warn);
-
export default {
setUserId,
- logEvent,
+ track,
};
diff --git a/packages/client/utilities/Helper.js b/packages/client/utilities/Helper.js
index 82dd395..508e6e5 100644
--- a/packages/client/utilities/Helper.js
+++ b/packages/client/utilities/Helper.js
@@ -24,7 +24,7 @@ import Settings from '../config/settings';
const getNotificationSettings = (notification_settings, value, type) => {
notification_settings = AmbitoDolar.getNotificationSettings(
- notification_settings
+ notification_settings,
);
let setting =
typeof value === 'boolean'
@@ -42,7 +42,7 @@ const getNotificationSettings = (notification_settings, value, type) => {
const getNotificationSettingsSelector = createSelector(
({ application }) => application.notification_settings,
- (notification_settings) => getNotificationSettings(notification_settings)
+ (notification_settings) => getNotificationSettings(notification_settings),
);
const getJson = (url, opts = {}) => {
@@ -304,7 +304,7 @@ export default {
excluded_rates,
rate_types,
}),
- shallowEqual
+ shallowEqual,
);
return React.useMemo(() => {
const availableRates = this.getAvailableRates(rates);
@@ -314,7 +314,7 @@ export default {
order,
orderDirection,
excludedRates,
- rateTypes
+ rateTypes,
);
}
return availableRates;
@@ -376,7 +376,7 @@ export default {
const context = React.useContext(ThemeContext);
const colorScheme = React.useMemo(
() => context?.colorScheme || 'light',
- [context]
+ [context],
);
const theme = React.useMemo(
() => ({
@@ -399,14 +399,14 @@ export default {
// TODO: add fonts with theme here ??
// getFontObject: (name) => Settings.getFontObject(theme, name),
}),
- [colorScheme]
+ [colorScheme],
);
return theme;
},
useInterval: (callback, { leading = true, delay = 60 * 1000 } = {}) => {
const handler = React.useCallback(
(...args) => callback?.(...args),
- [callback]
+ [callback],
);
React.useEffect(() => {
if (leading === true) {
diff --git a/packages/core/index.js b/packages/core/index.js
index b724408..0355841 100644
--- a/packages/core/index.js
+++ b/packages/core/index.js
@@ -126,7 +126,7 @@ const getNumber = (value, maxDigits = FRACTION_DIGITS) => {
const formatNumber = (
num,
maxDigits = FRACTION_DIGITS,
- forceFractionDigits = true
+ forceFractionDigits = true,
) => {
// truncate to prevent rounding issues
num = getNumber(num, maxDigits);
@@ -282,7 +282,7 @@ const getNotificationSettings = (notification_settings) => {
...type_defaults,
},
},
- notification_settings
+ notification_settings,
);
};
diff --git a/packages/core/test.js b/packages/core/test.js
index 21eb3c8..ef1e502 100644
--- a/packages/core/test.js
+++ b/packages/core/test.js
@@ -9,22 +9,22 @@ test('Dates should use the default timezone', function (t) {
t.is(
date_tz.format(),
// use valueOf to avoid timezone and use local
- AmbitoDolar.getDate(date_tz.valueOf()).utcOffset(utc_offset).format()
+ AmbitoDolar.getDate(date_tz.valueOf()).utcOffset(utc_offset).format(),
);
t.is(
AmbitoDolar.getTimezoneDate('2021-03-08T12:00:00-03:00').format(),
- '2021-03-08T12:00:00-03:00'
+ '2021-03-08T12:00:00-03:00',
);
t.is(
AmbitoDolar.getTimezoneDate(
'2021-03-08T12:00:00-03:00',
undefined,
- true
+ true,
).format(),
- '2021-03-08T00:00:00-03:00'
+ '2021-03-08T00:00:00-03:00',
);
const moment_from = AmbitoDolar.getTimezoneDate(
- '2020-10-23T16:15:08-03:00'
+ '2020-10-23T16:15:08-03:00',
).subtract(1, 'year');
const moment_to = AmbitoDolar.getTimezoneDate('2020-10-15T16:25:06-03:00');
const timestamp = '2019-10-23T00:00:00-03:00';
@@ -35,16 +35,16 @@ test('Dates should use the default timezone', function (t) {
moment_to,
'day',
// moment_to exclusion
- '[)'
- )
+ '[)',
+ ),
);
t.is(
AmbitoDolar.getTimezoneDate('2022-05-13T18:00:39-03:00').unix(),
- 1652475639
+ 1652475639,
);
t.is(
AmbitoDolar.getTimezoneDate(1652475639 * 1000).format(),
- '2022-05-13T18:00:39-03:00'
+ '2022-05-13T18:00:39-03:00',
);
});
diff --git a/packages/website/src/pages/index.js b/packages/website/src/pages/index.js
index 3145adc..a0cdbaa 100644
--- a/packages/website/src/pages/index.js
+++ b/packages/website/src/pages/index.js
@@ -28,7 +28,7 @@ const IndexPage = () => {
window.open(
'https://apps.apple.com/app/id1485120819',
'_blank',
- 'noopener'
+ 'noopener',
);
});
document
@@ -37,7 +37,7 @@ const IndexPage = () => {
window.open(
'https://play.google.com/store/apps/details?id=im.outa.AmbitoDolar',
'_blank',
- 'noopener'
+ 'noopener',
);
});
}, []);
diff --git a/scriptable-widget.js b/scriptable-widget.js
index 9887580..7044db1 100644
--- a/scriptable-widget.js
+++ b/scriptable-widget.js
@@ -52,13 +52,13 @@ const getRateTitle = (type) => {
const FALLBACK_LOCALE = 'es-AR';
const DEVICE_LOCALE = [].concat(
Device.preferredLanguages(),
- FALLBACK_LOCALE
+ FALLBACK_LOCALE,
)[0];
const formatNumber = (
num,
maxDigits = FRACTION_DIGITS,
- forceFractionDigits = true
+ forceFractionDigits = true,
) => {
return num.toLocaleString(DEVICE_LOCALE, {
...(forceFractionDigits === true && {
diff --git a/sst.config.js b/sst.config.js
index 2911983..57ad09c 100644
--- a/sst.config.js
+++ b/sst.config.js
@@ -40,8 +40,13 @@ export default {
TWITTER_APP_SECRET: process.env.TWITTER_APP_SECRET,
TWITTER_ACCESS_TOKEN: process.env.TWITTER_ACCESS_TOKEN,
TWITTER_ACCESS_SECRET: process.env.TWITTER_ACCESS_SECRET,
+ BSKY_USERNAME: process.env.BSKY_USERNAME,
+ BSKY_PASSWORD: process.env.BSKY_PASSWORD,
// https://aws.amazon.com/es/blogs/compute/node-js-18-x-runtime-now-available-in-aws-lambda/
- NODE_OPTIONS: '--no-experimental-fetch',
+ // NODE_OPTIONS: '--no-experimental-fetch',
+ // prevents experimental warnings from buffer.File
+ NODE_OPTIONS: '--no-warnings',
+ // NODE_NO_WARNINGS: 1,
},
runtime: 'nodejs18.x',
tracing: 'disabled',
diff --git a/stacks/MainStack.js b/stacks/MainStack.js
index 9f2b00f..bb9cb39 100644
--- a/stacks/MainStack.js
+++ b/stacks/MainStack.js
@@ -10,22 +10,22 @@ export function MainStack({ stack }) {
const bucket = s3.Bucket.fromBucketName(
stack,
'Bucket',
- process.env.S3_BUCKET
+ process.env.S3_BUCKET,
);
const devicesTable = dynamodb.Table.fromTableName(
stack,
'Devices',
- process.env.DEVICES_TABLE_NAME
+ process.env.DEVICES_TABLE_NAME,
);
const notificationsTable = dynamodb.Table.fromTableName(
stack,
'Notifications',
- process.env.NOTIFICATIONS_TABLE_NAME
+ process.env.NOTIFICATIONS_TABLE_NAME,
);
const certificate = Certificate.fromCertificateArn(
stack,
'ApiCertificate',
- process.env.DOMAIN_CERTIFICATE_ARN
+ process.env.DOMAIN_CERTIFICATE_ARN,
);
// expo web build
const screenshotSite = new StaticSite(stack, 'ScreenshotSite', {