@marcoappio/marco-config 4.0.9 → 4.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/appwrite/appwrite.d.ts +1215 -1017
  2. package/dist/appwrite/appwrite.d.ts.map +1 -1
  3. package/dist/appwrite/appwrite.js +11 -375
  4. package/dist/appwrite/appwrite.test.js +75 -1
  5. package/dist/appwrite/commands.d.ts +167 -124
  6. package/dist/appwrite/commands.d.ts.map +1 -1
  7. package/dist/appwrite/commands.js +70 -68
  8. package/dist/appwrite/commands.test.js +30 -17
  9. package/dist/appwrite/functions.d.ts +122 -122
  10. package/dist/appwrite/index.d.ts +2 -2
  11. package/dist/appwrite/index.d.ts.map +1 -1
  12. package/dist/appwrite/index.js +2 -2
  13. package/dist/appwrite/tableContract/identity.d.ts +442 -0
  14. package/dist/appwrite/tableContract/identity.d.ts.map +1 -0
  15. package/dist/appwrite/tableContract/identity.js +158 -0
  16. package/dist/appwrite/tableContract/index.d.ts +2194 -0
  17. package/dist/appwrite/tableContract/index.d.ts.map +1 -0
  18. package/dist/appwrite/tableContract/index.js +77 -0
  19. package/dist/appwrite/tableContract/index.test.d.ts +2 -0
  20. package/dist/appwrite/tableContract/index.test.d.ts.map +1 -0
  21. package/dist/appwrite/tableContract/index.test.js +48 -0
  22. package/dist/appwrite/tableContract/mailbox.d.ts +622 -0
  23. package/dist/appwrite/tableContract/mailbox.d.ts.map +1 -0
  24. package/dist/appwrite/tableContract/mailbox.js +191 -0
  25. package/dist/appwrite/tableContract/operational.d.ts +522 -0
  26. package/dist/appwrite/tableContract/operational.d.ts.map +1 -0
  27. package/dist/appwrite/tableContract/operational.js +191 -0
  28. package/dist/appwrite/tableContract/shared.d.ts +145 -0
  29. package/dist/appwrite/tableContract/shared.d.ts.map +1 -0
  30. package/dist/appwrite/tableContract/shared.js +89 -0
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +1 -1
  34. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/appwrite/tableContract/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import * as v from 'valibot';
2
+ import { identityTableInputs } from './identity';
3
+ import { mailboxTableInputs } from './mailbox';
4
+ import { operationalTableInputs } from './operational';
5
+ import { appwriteIds, appwriteRowIdSchema, identifierSchema, timestampSchema, } from './shared';
6
+ export * from './shared';
7
+ const appwriteTableInputs = {
8
+ ...identityTableInputs,
9
+ ...mailboxTableInputs,
10
+ ...operationalTableInputs,
11
+ };
12
+ const materialiseTable = (table) => {
13
+ const columns = Object.entries(table.fields).flatMap(([key, field]) => {
14
+ if ('relatedTable' in field.definition) {
15
+ return [];
16
+ }
17
+ return [{ key, ...field.definition }];
18
+ });
19
+ const relationships = Object.entries(table.fields).flatMap(([key, field]) => {
20
+ if ('relatedTable' in field.definition) {
21
+ return [
22
+ {
23
+ key,
24
+ onDelete: field.definition.onDelete,
25
+ relatedTableId: appwriteIds.tables[field.definition.relatedTable],
26
+ type: field.definition.type,
27
+ },
28
+ ];
29
+ }
30
+ return [];
31
+ });
32
+ return {
33
+ columns,
34
+ id: table.id,
35
+ indexes: table.indexes,
36
+ key: table.key,
37
+ name: table.name,
38
+ relationships,
39
+ };
40
+ };
41
+ const wireMetadata = (tableId, wirePermissions) => ({
42
+ $createdAt: timestampSchema,
43
+ $databaseId: v.literal(appwriteIds.database),
44
+ $id: appwriteRowIdSchema,
45
+ $permissions: wirePermissions === 'empty' ? v.pipe(v.array(v.string()), v.length(0)) : v.array(v.string()),
46
+ $sequence: identifierSchema,
47
+ $tableId: v.literal(tableId),
48
+ $updatedAt: timestampSchema,
49
+ });
50
+ function createDataSchema(fields, dataCheck) {
51
+ const schema = v.object(fields);
52
+ if (dataCheck) {
53
+ return v.pipe(schema, v.check(input => dataCheck(input)));
54
+ }
55
+ return schema;
56
+ }
57
+ const createRowSchema = (fields, tableId, wirePermissions) => v.strictObject({ ...wireMetadata(tableId, wirePermissions), ...fields });
58
+ export function defineAppwriteTables(tables) {
59
+ const createDataSchemaForTable = (fields, dataCheck) => {
60
+ if (dataCheck) {
61
+ return createDataSchema(fields, dataCheck);
62
+ }
63
+ return createDataSchema(fields);
64
+ };
65
+ const dataSchemas = Object.fromEntries(Object.entries(tables).map(([tableKey, table]) => [tableKey, createDataSchemaForTable(table.fields, table.dataCheck)]));
66
+ const rowSchemas = Object.fromEntries(Object.entries(tables).map(([tableKey, table]) => [tableKey, createRowSchema(table.fields, table.id, table.wirePermissions)]));
67
+ const tableDefinitions = Object.fromEntries(Object.entries(tables).map(([tableKey, table]) => [tableKey, materialiseTable(table)]));
68
+ return {
69
+ dataSchemas,
70
+ rowSchemas,
71
+ tables: tableDefinitions,
72
+ };
73
+ }
74
+ export const appwriteTableContract = defineAppwriteTables(appwriteTableInputs);
75
+ export const appwriteTables = appwriteTableContract.tables;
76
+ export const appwriteDataSchemas = appwriteTableContract.dataSchemas;
77
+ export const appwriteRowSchemas = appwriteTableContract.rowSchemas;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/appwrite/tableContract/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
1
+ import { describe, expect, it } from 'bun:test';
2
+ import * as v from 'valibot';
3
+ import { identityTableInputs } from './identity';
4
+ import { defineAppwriteTables } from './index';
5
+ import { mailboxTableInputs } from './mailbox';
6
+ import { operationalTableInputs } from './operational';
7
+ const tableInputs = {
8
+ ...identityTableInputs,
9
+ ...mailboxTableInputs,
10
+ ...operationalTableInputs,
11
+ };
12
+ const validAccount = {
13
+ colour: '#000000',
14
+ credential: null,
15
+ displayName: null,
16
+ initialSyncCompletedAt: null,
17
+ lastErrorCode: null,
18
+ lastSuccessfulSyncAt: null,
19
+ mailboxSyncState: null,
20
+ mailProcessedCount: 0,
21
+ mailTotalCount: 0,
22
+ pollShardAssignmentId: null,
23
+ pollShardId: null,
24
+ primaryAlias: 'test-alias-id-1',
25
+ primaryEmail: 'test-account-1@example.com',
26
+ profile: 'test-user-id-1',
27
+ profileAssignmentKey: 'test-user-id-1',
28
+ provider: 'GMAIL',
29
+ state: 'CONNECTED',
30
+ };
31
+ describe('defineAppwriteTables', () => {
32
+ it('applies each supplied table data check to its generated data schema', () => {
33
+ const contract = defineAppwriteTables({
34
+ ...tableInputs,
35
+ accounts: {
36
+ ...tableInputs.accounts,
37
+ dataCheck: () => false,
38
+ },
39
+ });
40
+ expect(v.safeParse(contract.dataSchemas.accounts, validAccount).success).toBe(false);
41
+ });
42
+ it('generates each schema and definition from the supplied table inputs', () => {
43
+ const contract = defineAppwriteTables(tableInputs);
44
+ expect(Object.keys(contract.dataSchemas).sort()).toEqual(Object.keys(tableInputs).sort());
45
+ expect(Object.keys(contract.rowSchemas).sort()).toEqual(Object.keys(tableInputs).sort());
46
+ expect(Object.keys(contract.tables).sort()).toEqual(Object.keys(tableInputs).sort());
47
+ });
48
+ });