@flaredev/core 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +77 -3
- package/dist/index.js +291 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -413,26 +413,100 @@ declare const isSlug: (value: string) => boolean;
|
|
|
413
413
|
/** "My First Post!" → "my-first-post". */
|
|
414
414
|
declare function slugify(value: string): string;
|
|
415
415
|
|
|
416
|
+
/**
|
|
417
|
+
* Sample data for seeds. Small on purpose: a handful of word lists and a seeded
|
|
418
|
+
* random number generator, so a million rows cost nothing to produce and the same
|
|
419
|
+
* seed always gives the same data.
|
|
420
|
+
*
|
|
421
|
+
* const fake = createFake();
|
|
422
|
+
* fake.fullName(); // "Amina Okello"
|
|
423
|
+
* fake.email(); // "amina.okello4@example.com"
|
|
424
|
+
*/
|
|
425
|
+
interface Fake {
|
|
426
|
+
/** Whole number in [min, max]. */
|
|
427
|
+
int(min: number, max: number): number;
|
|
428
|
+
/** Number in [min, max], rounded to `decimals` places (default 2). */
|
|
429
|
+
float(min: number, max: number, decimals?: number): number;
|
|
430
|
+
/** True with the given probability (default 0.5). */
|
|
431
|
+
bool(chance?: number): boolean;
|
|
432
|
+
pick<T>(items: readonly T[]): T;
|
|
433
|
+
/** Between `min` and `max` distinct items, in the order they appear. */
|
|
434
|
+
some<T>(items: readonly T[], min?: number, max?: number): T[];
|
|
435
|
+
firstName(): string;
|
|
436
|
+
lastName(): string;
|
|
437
|
+
fullName(): string;
|
|
438
|
+
/** A unique address: the counter keeps it unique however many rows are made. */
|
|
439
|
+
email(name?: string): string;
|
|
440
|
+
company(): string;
|
|
441
|
+
jobTitle(): string;
|
|
442
|
+
city(): string;
|
|
443
|
+
/** ISO 3166-1 alpha-2, e.g. "UG". */
|
|
444
|
+
country(): string;
|
|
445
|
+
/** E.164, e.g. "+256772431980". */
|
|
446
|
+
phone(): string;
|
|
447
|
+
domain(): string;
|
|
448
|
+
url(): string;
|
|
449
|
+
slug(text?: string): string;
|
|
450
|
+
color(): string;
|
|
451
|
+
words(count?: number): string;
|
|
452
|
+
sentence(): string;
|
|
453
|
+
paragraph(sentences?: number): string;
|
|
454
|
+
/** "YYYY-MM-DD" within the last `daysBack` days (default 365). */
|
|
455
|
+
date(daysBack?: number): string;
|
|
456
|
+
/** ISO timestamp within the last `daysBack` days (default 365). */
|
|
457
|
+
datetime(daysBack?: number): string;
|
|
458
|
+
/** Milliseconds since the epoch, within the last `daysBack` days. */
|
|
459
|
+
timestamp(daysBack?: number): number;
|
|
460
|
+
uuid(): string;
|
|
461
|
+
/**
|
|
462
|
+
* A ULID: a 26-character id that sorts by the time it was made. Rows seeded with
|
|
463
|
+
* these go in at the end of the primary key's index instead of all over it, which
|
|
464
|
+
* measured 4× quicker than random ids at a few hundred thousand rows.
|
|
465
|
+
*/
|
|
466
|
+
id(): string;
|
|
467
|
+
/** How many values this generator has produced; unique per row. */
|
|
468
|
+
readonly count: number;
|
|
469
|
+
}
|
|
470
|
+
/**
|
|
471
|
+
* A generator of sample values. `seed` makes runs reproducible; leave it out for a
|
|
472
|
+
* different set every time.
|
|
473
|
+
*/
|
|
474
|
+
declare function createFake(seed?: number): Fake;
|
|
475
|
+
/** A shared generator, for seeds that don't need their own. */
|
|
476
|
+
declare const fake: Fake;
|
|
477
|
+
|
|
416
478
|
/**
|
|
417
479
|
* Seed files: `seeds/<name>.seed.ts`, run by `flare seed` against the local D1 database.
|
|
418
480
|
*
|
|
419
481
|
* import { defineSeed } from "@flaredev/core";
|
|
420
482
|
* import { contacts } from "@/db/schema";
|
|
421
483
|
*
|
|
422
|
-
* export default defineSeed(async ({ db }) => {
|
|
484
|
+
* export default defineSeed(async ({ db, insertMany, fake }) => {
|
|
423
485
|
* await db.insert(contacts).values([{ name: "Ada", email: "ada@example.com" }]);
|
|
486
|
+
* await insertMany(contacts, 10_000, () => ({ name: fake.fullName(), email: fake.email() }));
|
|
424
487
|
* });
|
|
425
488
|
*/
|
|
489
|
+
|
|
490
|
+
/**
|
|
491
|
+
* Insert many rows at once. `rows` is either the rows themselves or a function called
|
|
492
|
+
* once per row, which keeps a million rows out of memory. Far quicker than a Drizzle
|
|
493
|
+
* insert of the same size: the values go into the SQL rather than into D1's
|
|
494
|
+
* 100-parameter budget.
|
|
495
|
+
*/
|
|
496
|
+
type InsertMany = <T extends object>(table: unknown, count: number | readonly T[], build?: (index: number) => T) => Promise<number>;
|
|
426
497
|
interface SeedContext {
|
|
427
498
|
/** Drizzle client over the app's schema, bound to the local D1 database. */
|
|
428
499
|
db: any;
|
|
429
500
|
/** All local bindings and variables (D1, R2, .dev.vars). */
|
|
430
501
|
env: Record<string, unknown>;
|
|
431
502
|
log: (message: string) => void;
|
|
503
|
+
insertMany: InsertMany;
|
|
504
|
+
/** Sample values: names, emails, sentences, dates. */
|
|
505
|
+
fake: Fake;
|
|
432
506
|
}
|
|
433
507
|
type Seed = (context: SeedContext) => void | Promise<void>;
|
|
434
508
|
declare function defineSeed(seed: Seed): Seed;
|
|
435
509
|
|
|
436
|
-
declare const FLARE_VERSION = "0.
|
|
510
|
+
declare const FLARE_VERSION = "0.3.0";
|
|
437
511
|
|
|
438
|
-
export { type BelongsToRelation, type Country, CreateInput, FLARE_VERSION, Field, type FormValues, type FormatOptions, type HasManyRelation, type MailMessage, type MailResult, type Mailer, type MailerOptions, PBKDF2_ITERATIONS, type ReadUrlOptions, RelationError, type RelationGraph, Resource, type ResourceRelations, type ResourceValidators, SNIFF_BYTES, SUBSCRIPTION_STATUSES, type Seed, type SeedContext, type Storage, type StorageBucket, type StorageOptions, StoredField, type SubscriptionLike, type SubscriptionState, type SubscriptionStatus, type Tone, type TransactionalEmail, UpdateInput, type UploadUrlOptions, camelCase, checkoutPaid, countries, countryName, createMailer, createObjectKey, createStorage, createValidators, currentPeriodEnd, defineSeed, fieldSchema, fileKeyPrefix, flagEmoji, formValuesToInput, formatPhone, formatValue, grantsAccess, hashPassword, humanize, importSigningKey, initialFormValues, isColor, isCountryCode, isDomain, isLiveSubscription, isPhoneNumber, isSlug, issuesByField, kebabCase, matchesContentType, normalizeDomain, optionLabel, parseMultiValue, pascalCase, pluralize, randomLetters, relationGraph, renderTransactionalEmail, shouldApplySubscription, signToken, slugify, snakeCase, sniffMatches, splitPhone, statusTone, subscriptionPriceId, subscriptionState, toE164, toSubscriptionStatus, verifyPassword, verifyToken, words };
|
|
512
|
+
export { type BelongsToRelation, type Country, CreateInput, FLARE_VERSION, type Fake, Field, type FormValues, type FormatOptions, type HasManyRelation, type InsertMany, type MailMessage, type MailResult, type Mailer, type MailerOptions, PBKDF2_ITERATIONS, type ReadUrlOptions, RelationError, type RelationGraph, Resource, type ResourceRelations, type ResourceValidators, SNIFF_BYTES, SUBSCRIPTION_STATUSES, type Seed, type SeedContext, type Storage, type StorageBucket, type StorageOptions, StoredField, type SubscriptionLike, type SubscriptionState, type SubscriptionStatus, type Tone, type TransactionalEmail, UpdateInput, type UploadUrlOptions, camelCase, checkoutPaid, countries, countryName, createFake, createMailer, createObjectKey, createStorage, createValidators, currentPeriodEnd, defineSeed, fake, fieldSchema, fileKeyPrefix, flagEmoji, formValuesToInput, formatPhone, formatValue, grantsAccess, hashPassword, humanize, importSigningKey, initialFormValues, isColor, isCountryCode, isDomain, isLiveSubscription, isPhoneNumber, isSlug, issuesByField, kebabCase, matchesContentType, normalizeDomain, optionLabel, parseMultiValue, pascalCase, pluralize, randomLetters, relationGraph, renderTransactionalEmail, shouldApplySubscription, signToken, slugify, snakeCase, sniffMatches, splitPhone, statusTone, subscriptionPriceId, subscriptionState, toE164, toSubscriptionStatus, verifyPassword, verifyToken, words };
|
package/dist/index.js
CHANGED
|
@@ -673,8 +673,296 @@ function defineSeed(seed) {
|
|
|
673
673
|
return seed;
|
|
674
674
|
}
|
|
675
675
|
|
|
676
|
+
// src/fake.ts
|
|
677
|
+
var FIRST_NAMES = [
|
|
678
|
+
"Amina",
|
|
679
|
+
"Daniel",
|
|
680
|
+
"Grace",
|
|
681
|
+
"Wei",
|
|
682
|
+
"Sofia",
|
|
683
|
+
"Tendai",
|
|
684
|
+
"Noah",
|
|
685
|
+
"Priya",
|
|
686
|
+
"Lucas",
|
|
687
|
+
"Fatima",
|
|
688
|
+
"Ibrahim",
|
|
689
|
+
"Elena",
|
|
690
|
+
"Kwame",
|
|
691
|
+
"Maya",
|
|
692
|
+
"Hiroshi",
|
|
693
|
+
"Leila",
|
|
694
|
+
"Marcus",
|
|
695
|
+
"Chiara",
|
|
696
|
+
"Omar",
|
|
697
|
+
"Ana",
|
|
698
|
+
"Joseph",
|
|
699
|
+
"Nadia",
|
|
700
|
+
"Thabo",
|
|
701
|
+
"Yuki",
|
|
702
|
+
"Diego",
|
|
703
|
+
"Ruth",
|
|
704
|
+
"Samuel",
|
|
705
|
+
"Zara",
|
|
706
|
+
"Peter",
|
|
707
|
+
"Isabel",
|
|
708
|
+
"Kofi",
|
|
709
|
+
"Mei",
|
|
710
|
+
"Andr\xE9s",
|
|
711
|
+
"Halima",
|
|
712
|
+
"Jonas",
|
|
713
|
+
"Rania",
|
|
714
|
+
"Esther",
|
|
715
|
+
"Viktor",
|
|
716
|
+
"Aisha",
|
|
717
|
+
"Tom\xE1s"
|
|
718
|
+
];
|
|
719
|
+
var LAST_NAMES = [
|
|
720
|
+
"Okello",
|
|
721
|
+
"Silva",
|
|
722
|
+
"Nakamura",
|
|
723
|
+
"Mensah",
|
|
724
|
+
"Okafor",
|
|
725
|
+
"Rossi",
|
|
726
|
+
"Chen",
|
|
727
|
+
"Hassan",
|
|
728
|
+
"M\xFCller",
|
|
729
|
+
"Dubois",
|
|
730
|
+
"Kimani",
|
|
731
|
+
"Patel",
|
|
732
|
+
"Novak",
|
|
733
|
+
"Garcia",
|
|
734
|
+
"Haddad",
|
|
735
|
+
"Andersen",
|
|
736
|
+
"Osei",
|
|
737
|
+
"Reyes",
|
|
738
|
+
"Kowalski",
|
|
739
|
+
"Tadesse",
|
|
740
|
+
"Nguyen",
|
|
741
|
+
"Baptiste",
|
|
742
|
+
"Mwangi",
|
|
743
|
+
"Fernandes",
|
|
744
|
+
"Ivanov",
|
|
745
|
+
"Khan",
|
|
746
|
+
"Lindqvist",
|
|
747
|
+
"Santos",
|
|
748
|
+
"Abebe",
|
|
749
|
+
"Yusuf"
|
|
750
|
+
];
|
|
751
|
+
var COMPANY_HEADS = [
|
|
752
|
+
"North",
|
|
753
|
+
"Blue",
|
|
754
|
+
"Bright",
|
|
755
|
+
"Iron",
|
|
756
|
+
"River",
|
|
757
|
+
"Summit",
|
|
758
|
+
"Atlas",
|
|
759
|
+
"Harbour",
|
|
760
|
+
"Cedar",
|
|
761
|
+
"Copper",
|
|
762
|
+
"Lumen",
|
|
763
|
+
"Orbit",
|
|
764
|
+
"Stone",
|
|
765
|
+
"Vertex",
|
|
766
|
+
"Willow",
|
|
767
|
+
"Zenith",
|
|
768
|
+
"Kestrel",
|
|
769
|
+
"Meridian",
|
|
770
|
+
"Sable",
|
|
771
|
+
"Terra"
|
|
772
|
+
];
|
|
773
|
+
var COMPANY_TAILS = ["Labs", "Works", "Group", "Studio", "Systems", "Partners", "Supply", "Analytics", "Foods", "Logistics"];
|
|
774
|
+
var CITIES = [
|
|
775
|
+
"Kampala",
|
|
776
|
+
"Nairobi",
|
|
777
|
+
"Lagos",
|
|
778
|
+
"Accra",
|
|
779
|
+
"Cairo",
|
|
780
|
+
"Cape Town",
|
|
781
|
+
"Dar es Salaam",
|
|
782
|
+
"Casablanca",
|
|
783
|
+
"London",
|
|
784
|
+
"Berlin",
|
|
785
|
+
"Madrid",
|
|
786
|
+
"Lisbon",
|
|
787
|
+
"Warsaw",
|
|
788
|
+
"Stockholm",
|
|
789
|
+
"Amsterdam",
|
|
790
|
+
"Dublin",
|
|
791
|
+
"New York",
|
|
792
|
+
"Toronto",
|
|
793
|
+
"Chicago",
|
|
794
|
+
"Austin",
|
|
795
|
+
"S\xE3o Paulo",
|
|
796
|
+
"Bogot\xE1",
|
|
797
|
+
"Mexico City",
|
|
798
|
+
"Lima",
|
|
799
|
+
"Mumbai",
|
|
800
|
+
"Singapore",
|
|
801
|
+
"Tokyo",
|
|
802
|
+
"Seoul",
|
|
803
|
+
"Jakarta",
|
|
804
|
+
"Manila",
|
|
805
|
+
"Sydney",
|
|
806
|
+
"Auckland"
|
|
807
|
+
];
|
|
808
|
+
var COUNTRIES = [
|
|
809
|
+
["UG", "256"],
|
|
810
|
+
["KE", "254"],
|
|
811
|
+
["NG", "234"],
|
|
812
|
+
["GH", "233"],
|
|
813
|
+
["ZA", "27"],
|
|
814
|
+
["EG", "20"],
|
|
815
|
+
["US", "1"],
|
|
816
|
+
["CA", "1"],
|
|
817
|
+
["GB", "44"],
|
|
818
|
+
["IE", "353"],
|
|
819
|
+
["DE", "49"],
|
|
820
|
+
["FR", "33"],
|
|
821
|
+
["ES", "34"],
|
|
822
|
+
["PT", "351"],
|
|
823
|
+
["NL", "31"],
|
|
824
|
+
["SE", "46"],
|
|
825
|
+
["PL", "48"],
|
|
826
|
+
["BR", "55"],
|
|
827
|
+
["MX", "52"],
|
|
828
|
+
["IN", "91"],
|
|
829
|
+
["SG", "65"],
|
|
830
|
+
["JP", "81"],
|
|
831
|
+
["AU", "61"],
|
|
832
|
+
["AE", "971"]
|
|
833
|
+
];
|
|
834
|
+
var WORDS = [
|
|
835
|
+
"account",
|
|
836
|
+
"balance",
|
|
837
|
+
"shipment",
|
|
838
|
+
"invoice",
|
|
839
|
+
"review",
|
|
840
|
+
"signal",
|
|
841
|
+
"request",
|
|
842
|
+
"channel",
|
|
843
|
+
"vendor",
|
|
844
|
+
"budget",
|
|
845
|
+
"report",
|
|
846
|
+
"delivery",
|
|
847
|
+
"contract",
|
|
848
|
+
"renewal",
|
|
849
|
+
"forecast",
|
|
850
|
+
"meeting",
|
|
851
|
+
"proposal",
|
|
852
|
+
"discount",
|
|
853
|
+
"refund",
|
|
854
|
+
"ticket",
|
|
855
|
+
"quarter",
|
|
856
|
+
"pipeline",
|
|
857
|
+
"customer",
|
|
858
|
+
"supplier",
|
|
859
|
+
"warehouse",
|
|
860
|
+
"campaign",
|
|
861
|
+
"segment",
|
|
862
|
+
"retention",
|
|
863
|
+
"onboarding",
|
|
864
|
+
"escalation",
|
|
865
|
+
"follow-up",
|
|
866
|
+
"handover",
|
|
867
|
+
"kickoff",
|
|
868
|
+
"milestone",
|
|
869
|
+
"rollout",
|
|
870
|
+
"shortfall",
|
|
871
|
+
"surplus",
|
|
872
|
+
"threshold",
|
|
873
|
+
"variance",
|
|
874
|
+
"workflow"
|
|
875
|
+
];
|
|
876
|
+
var DOMAINS = ["example.com", "example.org", "example.net", "mail.example.com"];
|
|
877
|
+
var TLDS = ["com", "io", "co", "org", "net"];
|
|
878
|
+
var COLORS = ["#f2541d", "#2563eb", "#16a34a", "#d97706", "#7c3aed", "#0891b2", "#db2777", "#4b5563"];
|
|
879
|
+
var DAY_MS = 864e5;
|
|
880
|
+
var CROCKFORD = "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
|
|
881
|
+
function encodeCrockford(value, length) {
|
|
882
|
+
let out = "";
|
|
883
|
+
let rest = value;
|
|
884
|
+
for (let i = 0; i < length; i++) {
|
|
885
|
+
out = CROCKFORD[Number(rest % 32n)] + out;
|
|
886
|
+
rest /= 32n;
|
|
887
|
+
}
|
|
888
|
+
return out;
|
|
889
|
+
}
|
|
890
|
+
function random(seed) {
|
|
891
|
+
let state = seed >>> 0;
|
|
892
|
+
return () => {
|
|
893
|
+
state = state + 1831565813 >>> 0;
|
|
894
|
+
let t = Math.imul(state ^ state >>> 15, 1 | state);
|
|
895
|
+
t = t + Math.imul(t ^ t >>> 7, 61 | t) ^ t;
|
|
896
|
+
return ((t ^ t >>> 14) >>> 0) / 4294967296;
|
|
897
|
+
};
|
|
898
|
+
}
|
|
899
|
+
function createFake(seed = 20260101) {
|
|
900
|
+
const next = random(seed);
|
|
901
|
+
let count = 0;
|
|
902
|
+
const step = () => ++count;
|
|
903
|
+
const tail = BigInt(Math.floor(next() * 2 ** 40)) * 2n ** 40n;
|
|
904
|
+
let counter = 0n;
|
|
905
|
+
const int = (min, max) => min + Math.floor(next() * (max - min + 1));
|
|
906
|
+
const pick = (items) => items[Math.floor(next() * items.length)];
|
|
907
|
+
const slugify2 = (text2) => text2.toLowerCase().normalize("NFKD").replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
908
|
+
const fake2 = {
|
|
909
|
+
int,
|
|
910
|
+
float: (min, max, decimals = 2) => Number((min + next() * (max - min)).toFixed(decimals)),
|
|
911
|
+
bool: (chance = 0.5) => next() < chance,
|
|
912
|
+
pick,
|
|
913
|
+
some(items, min = 1, max = items.length) {
|
|
914
|
+
const wanted = int(Math.min(min, items.length), Math.min(max, items.length));
|
|
915
|
+
const chosen = /* @__PURE__ */ new Set();
|
|
916
|
+
while (chosen.size < wanted) chosen.add(Math.floor(next() * items.length));
|
|
917
|
+
return [...chosen].sort((a, b) => a - b).map((index) => items[index]);
|
|
918
|
+
},
|
|
919
|
+
firstName: () => pick(FIRST_NAMES),
|
|
920
|
+
lastName: () => pick(LAST_NAMES),
|
|
921
|
+
fullName: () => `${pick(FIRST_NAMES)} ${pick(LAST_NAMES)}`,
|
|
922
|
+
email(name) {
|
|
923
|
+
const local = name ? slugify2(name).replace(/-/g, ".") : `${pick(FIRST_NAMES)}.${pick(LAST_NAMES)}`.toLowerCase();
|
|
924
|
+
return `${slugify2(local).replace(/-/g, ".")}${step()}@${pick(DOMAINS)}`;
|
|
925
|
+
},
|
|
926
|
+
company: () => `${pick(COMPANY_HEADS)} ${pick(COMPANY_TAILS)}`,
|
|
927
|
+
jobTitle: () => `${pick(["Head of", "Senior", "Lead", "Regional", "Junior"])} ${pick(["Operations", "Sales", "Support", "Engineering", "Finance", "Logistics"])}`,
|
|
928
|
+
city: () => pick(CITIES),
|
|
929
|
+
country: () => pick(COUNTRIES)[0],
|
|
930
|
+
phone: () => `+${pick(COUNTRIES)[1]}${String(int(7e8, 799999999))}`,
|
|
931
|
+
domain: () => `${slugify2(`${pick(COMPANY_HEADS)}${pick(COMPANY_TAILS)}`)}${step()}.${pick(TLDS)}`,
|
|
932
|
+
url: () => `https://${slugify2(pick(COMPANY_HEADS))}.${pick(TLDS)}/${slugify2(pick(WORDS))}`,
|
|
933
|
+
slug: (text2) => `${slugify2(text2 ?? `${pick(WORDS)}-${pick(WORDS)}`)}-${step()}`,
|
|
934
|
+
color: () => pick(COLORS),
|
|
935
|
+
words: (howMany = 3) => Array.from({ length: howMany }, () => pick(WORDS)).join(" "),
|
|
936
|
+
sentence() {
|
|
937
|
+
const words2 = Array.from({ length: int(5, 12) }, () => pick(WORDS)).join(" ");
|
|
938
|
+
return `${words2[0].toUpperCase()}${words2.slice(1)}.`;
|
|
939
|
+
},
|
|
940
|
+
paragraph(sentences = 3) {
|
|
941
|
+
return Array.from({ length: sentences }, () => fake2.sentence()).join(" ");
|
|
942
|
+
},
|
|
943
|
+
timestamp: (daysBack = 365) => Date.now() - int(0, daysBack) * DAY_MS - int(0, DAY_MS - 1),
|
|
944
|
+
date: (daysBack = 365) => new Date(fake2.timestamp(daysBack)).toISOString().slice(0, 10),
|
|
945
|
+
datetime: (daysBack = 365) => new Date(fake2.timestamp(daysBack)).toISOString(),
|
|
946
|
+
uuid() {
|
|
947
|
+
const hex = "0123456789abcdef";
|
|
948
|
+
let out = "";
|
|
949
|
+
for (let i = 0; i < 32; i++) out += hex[Math.floor(next() * 16)];
|
|
950
|
+
return `${out.slice(0, 8)}-${out.slice(8, 12)}-4${out.slice(13, 16)}-a${out.slice(17, 20)}-${out.slice(20, 32)}`;
|
|
951
|
+
},
|
|
952
|
+
id() {
|
|
953
|
+
counter += 1n;
|
|
954
|
+
return encodeCrockford(BigInt(Date.now()), 10) + encodeCrockford((tail + counter) % 2n ** 80n, 16);
|
|
955
|
+
},
|
|
956
|
+
get count() {
|
|
957
|
+
return count;
|
|
958
|
+
}
|
|
959
|
+
};
|
|
960
|
+
return fake2;
|
|
961
|
+
}
|
|
962
|
+
var fake = createFake();
|
|
963
|
+
|
|
676
964
|
// src/index.ts
|
|
677
|
-
var FLARE_VERSION = "0.
|
|
965
|
+
var FLARE_VERSION = "0.3.0";
|
|
678
966
|
export {
|
|
679
967
|
DEFAULT_FILE_MAX_BYTES,
|
|
680
968
|
FILE_CATEGORIES,
|
|
@@ -694,6 +982,7 @@ export {
|
|
|
694
982
|
columnName,
|
|
695
983
|
countries,
|
|
696
984
|
countryName,
|
|
985
|
+
createFake,
|
|
697
986
|
createMailer,
|
|
698
987
|
createObjectKey,
|
|
699
988
|
createStorage,
|
|
@@ -703,6 +992,7 @@ export {
|
|
|
703
992
|
definePolicy,
|
|
704
993
|
defineResource,
|
|
705
994
|
defineSeed,
|
|
995
|
+
fake,
|
|
706
996
|
field,
|
|
707
997
|
fieldSchema,
|
|
708
998
|
fileKeyPrefix,
|