Add additional missing BUSL license headers (#871)

* Exclude Android from license headers

* fixes

* fix formatting

* fix command

* fix license space

* updates

* fix headers

* updates

* new line formatting
This commit is contained in:
Justin Hernandez
2025-08-10 16:53:53 -07:00
committed by GitHub
parent d8b2f60c57
commit aa359654eb
37 changed files with 158 additions and 101 deletions

View File

@@ -1,3 +1,5 @@
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
@@ -26,9 +28,6 @@ module.exports = {
'web/dist/',
'.tamagui/*',
'*.js.map',
'*.d.ts',
'metro.config.cjs',
'docs/examples/',
'tests/e2e/',
],
settings: {
@@ -169,6 +168,14 @@ module.exports = {
'@typescript-eslint/indent': 'off',
},
overrides: [
{
files: ['docs/examples/**/*.ts'],
rules: {
'@typescript-eslint/no-unused-vars': 'off',
'no-unused-vars': 'off',
'import/no-unresolved': 'off',
},
},
{
// Disable export sorting for files with dependency issues
files: [
@@ -212,7 +219,6 @@ module.exports = {
sourceType: 'script',
},
rules: {
'header/header': 'off',
'@typescript-eslint/no-var-requires': 'off',
'no-undef': 'off',
},

View File

@@ -1,3 +1,5 @@
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
module.exports = {
presets: ['module:@react-native/babel-preset'],
plugins: [

View File

@@ -11,8 +11,9 @@ declare module '*.jpeg' {
}
declare module '*.svg' {
import React from 'react';
import { SvgProps } from 'react-native-svg';
import type React from 'react';
import type { SvgProps } from 'react-native-svg';
const content: React.FC<SvgProps>;
export default content;
}

View File

@@ -1,8 +1,10 @@
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
// Granular import example: Circuit utilities only
// This will tree-shake out passport parsing, certificate parsing, etc.
import { generateCircuitInputsDSC } from '@selfxyz/common/utils/circuits';
import type { PassportData } from '@selfxyz/common/types/passport';
import { generateCircuitInputsDSC } from '@selfxyz/common/utils/circuits';
export function exampleCircuitUsage(passportData: PassportData) {
// Only circuit-related utilities are bundled

View File

@@ -1,3 +1,5 @@
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
// Level 2 Granular Import Example - Optimal Tree Shaking
// This demonstrates the new file-based imports for maximum optimization
@@ -6,12 +8,10 @@ import {
API_URL,
PASSPORT_ATTESTATION_ID,
} from '@selfxyz/common/constants/core';
// Import only hash utilities (no bytes, trees, circuits, etc.)
import { hash } from '@selfxyz/common/utils/hash';
// Import only passport types (no app types, certificate types, etc.)
import type { PassportData } from '@selfxyz/common/types/passport';
// Import only hash utilities (no bytes, trees, circuits, etc.)
import { hash } from '@selfxyz/common/utils/hash';
export function optimalLevel2Example(data: PassportData) {
// This will result in the smallest possible bundle

View File

@@ -1,3 +1,5 @@
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
/**
* LEVEL 3 MIGRATION GUIDE - Function-Level Granular Imports
*
@@ -25,55 +27,24 @@
// ============================================================================
// ✅ Hash Functions - Import only what you need
import { hash } from '@selfxyz/common/utils/hash/sha'; // ~3KB instead of 15KB
import { flexiblePoseidon } from '@selfxyz/common/utils/hash/poseidon'; // ~2KB instead of 15KB
import type { CertificateData } from '@selfxyz/common/types/certificates';
// ✅ Types - Import specific type categories
import type { PassportData } from '@selfxyz/common/types/passport'; // Types are tree-shaken automatically
import { identifyCurve } from '@selfxyz/common/utils/certificates/curveUtils'; // ~3KB instead of 20KB
import { initElliptic } from '@selfxyz/common/utils/certificates/ellipticInit'; // ~2KB instead of 20KB
// No need to import disclose or OFAC inputs if not used
// ✅ Certificate Functions - Import specific parsing operations
import { parseCertificateSimple } from '@selfxyz/common/utils/certificates/parseSimple'; // ~5KB instead of 20KB
// No need to import custom hash functions if not used
// ✅ Circuit Functions - Import specific circuit generators
import { generateCircuitInputsDSC } from '@selfxyz/common/utils/circuits/dscInputs'; // ~8KB instead of 25KB
import { generateCircuitInputsRegister } from '@selfxyz/common/utils/circuits/registerInputs'; // ~7KB instead of 25KB
// No need to import disclose or OFAC inputs if not used
// ✅ Certificate Functions - Import specific parsing operations
import { parseCertificateSimple } from '@selfxyz/common/utils/certificates/parseSimple'; // ~5KB instead of 20KB
import { initElliptic } from '@selfxyz/common/utils/certificates/ellipticInit'; // ~2KB instead of 20KB
import { identifyCurve } from '@selfxyz/common/utils/certificates/curveUtils'; // ~3KB instead of 20KB
import { flexiblePoseidon } from '@selfxyz/common/utils/hash/poseidon'; // ~2KB instead of 15KB
import { hash } from '@selfxyz/common/utils/hash/sha'; // ~3KB instead of 15KB
// ✅ Passport Functions - Import specific operations
import { generateCommitment } from '@selfxyz/common/utils/passports/commitment'; // ~3KB instead of 15KB
import { initPassportDataParsing } from '@selfxyz/common/utils/passports/core'; // ~4KB instead of 15KB
import { getPassportSignatureInfos } from '@selfxyz/common/utils/passports/signature'; // ~5KB instead of 15KB
// ✅ Types - Import specific type categories
import type { PassportData } from '@selfxyz/common/types/passport'; // Types are tree-shaken automatically
import type { CertificateData } from '@selfxyz/common/types/certificates';
// ============================================================================
// MIGRATION EXAMPLES BY USE CASE
// ============================================================================
/**
* USE CASE 1: Frontend App - Only needs basic hash and passport parsing
* Bundle size reduction: ~60KB → ~15KB (75% smaller!)
*/
export function frontendOptimalImports() {
// Only import what this specific frontend component needs
// import { hash } from '@selfxyz/common/utils/hash/sha';
// import { initPassportDataParsing } from '@selfxyz/common/utils/passports/core';
// import type { PassportData } from '@selfxyz/common/types/passport';
// Your component code here...
}
/**
* USE CASE 2: Circuit Worker - Only needs circuit generation
* Bundle size reduction: ~45KB → ~8KB (82% smaller!)
*/
export function circuitWorkerOptimalImports() {
// Only import the specific circuit generator needed
// import { generateCircuitInputsDSC } from '@selfxyz/common/utils/circuits/dscInputs';
// import { flexiblePoseidon } from '@selfxyz/common/utils/hash/poseidon';
// Your circuit generation code here...
}
import { getPassportSignatureInfos } from '@selfxyz/common/utils/passports/signature';
/**
* USE CASE 3: Certificate Parser - Only needs certificate operations
@@ -87,6 +58,33 @@ export function certificateParserOptimalImports() {
// Your certificate parsing code here...
}
// ~5KB instead of 15KB
/**
* USE CASE 2: Circuit Worker - Only needs circuit generation
* Bundle size reduction: ~45KB → ~8KB (82% smaller!)
*/
export function circuitWorkerOptimalImports() {
// Only import the specific circuit generator needed
// import { generateCircuitInputsDSC } from '@selfxyz/common/utils/circuits/dscInputs';
// import { flexiblePoseidon } from '@selfxyz/common/utils/hash/poseidon';
// Your circuit generation code here...
}
// ============================================================================
// MIGRATION EXAMPLES BY USE CASE
// ============================================================================
/**
* USE CASE 1: Frontend App - Only needs basic hash and passport parsing
* Bundle size reduction: ~60KB → ~15KB (75% smaller!)
*/
export function frontendOptimalImports() {
// Only import what this specific frontend component needs
// import { hash } from '@selfxyz/common/utils/hash/sha';
// import { initPassportDataParsing } from '@selfxyz/common/utils/passports/core';
// import type { PassportData } from '@selfxyz/common/types/passport';
// Your component code here...
}
/**
* USE CASE 4: Testing/Mock Data - Only needs mock generation
* Bundle size reduction: ~30KB → ~5KB (83% smaller!)

View File

@@ -1,29 +1,26 @@
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
// Level 3 Function-Based Import Example - Maximum Tree Shaking
// This demonstrates the new function-level imports for ultimate optimization
// ✅ Uses clean re-exports (safe, no regression risk)
// ✅ LEVEL 3: Import only specific hash functions (not entire hash module)
import { hash } from '@selfxyz/common/utils/hash/sha';
import { flexiblePoseidon } from '@selfxyz/common/utils/hash/poseidon';
// ✅ LEVEL 3: Import only specific circuit generator (not entire circuits module)
import { generateCircuitInputsDSC } from '@selfxyz/common/utils/circuits/dscInputs';
// ✅ LEVEL 3: Import only specific passport functions (not entire passports module)
import { generateCommitment } from '@selfxyz/common/utils/passports/commitment';
import { initPassportDataParsing } from '@selfxyz/common/utils/passports/core';
// ✅ LEVEL 3: Import only specific certificate parsing (not entire certificates module)
import { parseCertificateSimple } from '@selfxyz/common/utils/certificate_parsing/parseSimple';
// Import only core constants (same as Level 2)
import {
API_URL,
PASSPORT_ATTESTATION_ID,
} from '@selfxyz/common/constants/constants';
// Import only passport types (same as Level 2)
import type { PassportData } from '@selfxyz/common/types/passport';
// ✅ LEVEL 3: Import only specific certificate parsing (not entire certificates module)
import { parseCertificateSimple } from '@selfxyz/common/utils/certificate_parsing/parseSimple';
// ✅ LEVEL 3: Import only specific circuit generator (not entire circuits module)
import { generateCircuitInputsDSC } from '@selfxyz/common/utils/circuits/dscInputs';
import { flexiblePoseidon } from '@selfxyz/common/utils/hash/poseidon';
import { hash } from '@selfxyz/common/utils/hash/sha';
// ✅ LEVEL 3: Import only specific passport functions (not entire passports module)
import { generateCommitment } from '@selfxyz/common/utils/passports/commitment';
import { initPassportDataParsing } from '@selfxyz/common/utils/passports/core';
export function optimalLevel3Example(data: PassportData, secret: string) {
// This will result in the smallest possible bundle

View File

@@ -1,4 +1,5 @@
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
export const DEFAULT_DOB = undefined;
export const DEFAULT_DOE = undefined;

View File

@@ -1,4 +1,5 @@
# SPDX-License-Identifier: BUSL-1.1
require "bundler/setup"
require "fastlane"
require "tempfile"

View File

@@ -1,3 +1,5 @@
# SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
module Fastlane
module Helpers
module Android

View File

@@ -1,3 +1,5 @@
# SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
module Fastlane
module Helpers
module Common

View File

@@ -1,3 +1,5 @@
# SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
module Fastlane
module Helpers
module IOS
@@ -8,7 +10,7 @@ module Fastlane
latest = Fastlane::Actions::LatestTestflightBuildNumberAction.run(
api_key: api_key,
app_identifier: ENV["IOS_APP_IDENTIFIER"],
platform: "ios"
platform: "ios",
)
project = Xcodeproj::Project.open(xcodeproj)
@@ -64,13 +66,13 @@ module Fastlane
latest = Fastlane::Actions::LatestTestflightBuildNumberAction.run(
api_key: api_key,
app_identifier: ENV["IOS_APP_IDENTIFIER"],
platform: "ios"
platform: "ios",
)
new_number = latest + 1
Fastlane::Actions::IncrementBuildNumberAction.run(
build_number: new_number,
xcodeproj: xcodeproj
xcodeproj: xcodeproj,
)
report_success("Incremented build number to #{new_number} (previous #{latest})")
new_number

View File

@@ -1,3 +1,5 @@
# SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
module Fastlane
module Helpers
module Slack

View File

@@ -1,19 +1,20 @@
# SPDX-License-Identifier: BUSL-1.1
require 'json'
require 'time'
require "json"
require "time"
module Fastlane
module Helpers
module VersionManager
extend self
VERSION_FILE_PATH = File.expand_path('../../version.json', __dir__)
VERSION_FILE_PATH = File.expand_path("../../version.json", __dir__)
def read_version_file
unless File.exist?(VERSION_FILE_PATH)
UI.user_error!("version.json not found at #{VERSION_FILE_PATH}")
end
JSON.parse(File.read(VERSION_FILE_PATH))
rescue JSON::ParserError => e
UI.user_error!("Failed to parse version.json: #{e.message}")
@@ -28,49 +29,49 @@ module Fastlane
def get_current_version
# Version comes from package.json, not version.json
package_json_path = File.expand_path('../../package.json', __dir__)
package_json_path = File.expand_path("../../package.json", __dir__)
package_data = JSON.parse(File.read(package_json_path))
package_data['version']
package_data["version"]
end
def get_ios_build_number
data = read_version_file
data['ios']['build']
data["ios"]["build"]
end
def get_android_build_number
data = read_version_file
data['android']['build']
data["android"]["build"]
end
def bump_ios_build_number
data = read_version_file
current = data['ios']['build']
data['ios']['build'] = current + 1
current = data["ios"]["build"]
data["ios"]["build"] = current + 1
write_version_file(data)
UI.success("iOS build number bumped from #{current} to #{data['ios']['build']}")
data['ios']['build']
UI.success("iOS build number bumped from #{current} to #{data["ios"]["build"]}")
data["ios"]["build"]
end
def bump_android_build_number
data = read_version_file
current = data['android']['build']
data['android']['build'] = current + 1
current = data["android"]["build"]
data["android"]["build"] = current + 1
write_version_file(data)
UI.success("Android build number bumped from #{current} to #{data['android']['build']}")
data['android']['build']
UI.success("Android build number bumped from #{current} to #{data["android"]["build"]}")
data["android"]["build"]
end
def update_deployment_timestamp(platform)
unless %w[ios android].include?(platform)
UI.user_error!("Invalid platform: #{platform}. Must be 'ios' or 'android'")
end
data = read_version_file
timestamp = Time.now.utc.iso8601
data[platform]['lastDeployed'] = timestamp
data[platform]["lastDeployed"] = timestamp
write_version_file(data)
UI.success("Updated #{platform} deployment timestamp")
end
@@ -78,17 +79,17 @@ module Fastlane
def sync_build_numbers_to_native
data = read_version_file
version = get_current_version
UI.message("Version #{version} (from package.json)")
UI.message("iOS build: #{data['ios']['build']}")
UI.message("Android build: #{data['android']['build']}")
UI.message("iOS build: #{data["ios"]["build"]}")
UI.message("Android build: #{data["android"]["build"]}")
# Return the build numbers for use in Fastlane
{
ios: data['ios']['build'],
android: data['android']['build']
ios: data["ios"]["build"],
android: data["android"]["build"],
}
end
end
end
end
end

View File

@@ -1,3 +1,5 @@
# SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
require "minitest/autorun"
require "json"
require "tmpdir"

View File

@@ -1,3 +1,5 @@
# SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
require "minitest/autorun"
require_relative "../helpers"

View File

@@ -1,3 +1,5 @@
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
module.exports = {
preset: 'react-native',
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],

View File

@@ -1,5 +1,8 @@
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
const path = require('node:path');
const defaultConfig = getDefaultConfig(__dirname);
const { assetExts, sourceExts } = defaultConfig.resolver;

View File

@@ -54,7 +54,7 @@
"tag:release": "node scripts/tag.cjs release",
"tag:remove": "node scripts/tag.cjs remove",
"test": "jest --passWithNoTests && node --test scripts/tests/*.cjs",
"test:build": "yarn build:deps && yarn types && yarn analyze:bundle:ios && yarn test",
"test:build": "yarn build:deps && yarn types && node ./scripts/bundle-analyze-ci.cjs ios && yarn test",
"test:coverage": "jest --coverage --passWithNoTests",
"test:coverage:ci": "jest --coverage --passWithNoTests --ci --coverageReporters=lcov --coverageReporters=text --coverageReporters=json",
"test:e2e:android": "cd android && ./gradlew assembleDebug && cd .. && maestro test tests/e2e/launch.android.flow.yaml",

View File

@@ -1,3 +1,5 @@
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
module.exports = {
project: {
ios: {},

View File

@@ -1,4 +1,5 @@
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
const path = require('node:path');
const { Project, SyntaxKind } = require('ts-morph');

View File

@@ -1,4 +1,6 @@
#!/usr/bin/env node
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
const { execSync } = require('child_process');
const fs = require('fs');
const path = require('path');

View File

@@ -1,4 +1,6 @@
#!/usr/bin/env node
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
const { execSync } = require('child_process');
const fs = require('fs');
const os = require('os');

View File

@@ -1,4 +1,5 @@
#!/usr/bin/env node
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
const fs = require('fs');
const path = require('path');

View File

@@ -1,4 +1,6 @@
#!/bin/bash
# SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
# Reset Xcode project after local fastlane builds
set -euo pipefail

View File

@@ -1,4 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
# Simple changelog generator that creates release notes from git history
# Usage: ./generate-changelog.sh [from_tag] [to_tag]

View File

@@ -1,4 +1,5 @@
#!/bin/bash
# SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
# Simple release script for manual version bumping and tagging
# Usage: ./release.sh [major|minor|patch]

View File

@@ -1,4 +1,6 @@
#!/bin/bash
# SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
# Unified Local E2E Testing Script
# Run this from the app directory

View File

@@ -1,4 +1,6 @@
#!/usr/bin/env node
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
const { execSync } = require('child_process');
const fs = require('fs');
const path = require('path');

View File

@@ -1,4 +1,6 @@
#!/usr/bin/env node
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
const { describe, it, beforeEach } = require('node:test');
const assert = require('node:assert');
const path = require('node:path');

View File

@@ -1,4 +1,6 @@
#!/usr/bin/env node
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
const { execSync } = require('child_process');
const fs = require('fs');
const path = require('path');

View File

@@ -1,3 +1,5 @@
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
const fs = require('fs');
const path = require('path');
const os = require('os');

View File

@@ -1,3 +1,5 @@
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
const { describe, it } = require('node:test');
const assert = require('node:assert');
const child_process = require('child_process');

View File

@@ -1,4 +1,6 @@
#!/usr/bin/env node
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
const { describe, it } = require('node:test');
const assert = require('node:assert');
const path = require('path');

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env node
// SPDX-License-Identifier: BUSL-1.1
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
const fs = require('fs');
const path = require('path');

View File

@@ -1,3 +1,5 @@
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
declare module '*.png' {
const content: any;
export default content;

View File

@@ -1,6 +1,9 @@
// SPDX-License-Identifier: BUSL-1.1; Copyright (c) 2025 Social Connect Labs, Inc.; Licensed under BUSL-1.1 (see LICENSE); Apache-2.0 from 2029-06-11
declare module '*.svg' {
import React from 'react';
import { SvgProps } from 'react-native-svg';
import type React from 'react';
import type { SvgProps } from 'react-native-svg';
const content: React.FC<SvgProps>;
export default content;
}