@comapeo/core 4.4.0 → 5.0.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.
Files changed (72) hide show
  1. package/dist/blob-store/downloader.d.ts +5 -2
  2. package/dist/blob-store/downloader.d.ts.map +1 -1
  3. package/dist/constants.d.ts +0 -1
  4. package/dist/constants.d.ts.map +1 -1
  5. package/dist/datatype/index.d.ts +1 -1
  6. package/dist/datatype/index.d.ts.map +1 -1
  7. package/dist/discovery/local-discovery.d.ts.map +1 -1
  8. package/dist/import-categories.d.ts +19 -0
  9. package/dist/import-categories.d.ts.map +1 -0
  10. package/dist/intl/iso639.d.ts +4 -0
  11. package/dist/intl/iso639.d.ts.map +1 -0
  12. package/dist/intl/parse-bcp-47.d.ts +22 -0
  13. package/dist/intl/parse-bcp-47.d.ts.map +1 -0
  14. package/dist/invite/invite-api.d.ts.map +1 -1
  15. package/dist/lib/drizzle-helpers.d.ts +19 -1
  16. package/dist/lib/drizzle-helpers.d.ts.map +1 -1
  17. package/dist/mapeo-manager.d.ts +15 -9
  18. package/dist/mapeo-manager.d.ts.map +1 -1
  19. package/dist/mapeo-project.d.ts +4968 -3017
  20. package/dist/mapeo-project.d.ts.map +1 -1
  21. package/dist/schema/client.d.ts +246 -232
  22. package/dist/schema/client.d.ts.map +1 -1
  23. package/dist/schema/comapeo-to-drizzle.d.ts +65 -0
  24. package/dist/schema/comapeo-to-drizzle.d.ts.map +1 -0
  25. package/dist/schema/json-schema-to-drizzle.d.ts +18 -0
  26. package/dist/schema/json-schema-to-drizzle.d.ts.map +1 -0
  27. package/dist/schema/project.d.ts +2711 -1835
  28. package/dist/schema/project.d.ts.map +1 -1
  29. package/dist/schema/types.d.ts +73 -66
  30. package/dist/schema/types.d.ts.map +1 -1
  31. package/dist/translation-api.d.ts +111 -189
  32. package/dist/translation-api.d.ts.map +1 -1
  33. package/dist/utils.d.ts +10 -0
  34. package/dist/utils.d.ts.map +1 -1
  35. package/drizzle/client/0004_glorious_shape.sql +1 -0
  36. package/drizzle/client/meta/0000_snapshot.json +13 -9
  37. package/drizzle/client/meta/0001_snapshot.json +13 -9
  38. package/drizzle/client/meta/0002_snapshot.json +13 -9
  39. package/drizzle/client/meta/0003_snapshot.json +13 -9
  40. package/drizzle/client/meta/0004_snapshot.json +239 -0
  41. package/drizzle/client/meta/_journal.json +7 -0
  42. package/drizzle/project/meta/0000_snapshot.json +43 -24
  43. package/drizzle/project/meta/0001_snapshot.json +47 -26
  44. package/drizzle/project/meta/0002_snapshot.json +47 -26
  45. package/package.json +16 -8
  46. package/src/constants.js +0 -3
  47. package/src/datatype/index.js +8 -5
  48. package/src/discovery/local-discovery.js +3 -2
  49. package/src/import-categories.js +364 -0
  50. package/src/index-writer/index.js +1 -1
  51. package/src/intl/iso639.js +8118 -0
  52. package/src/intl/parse-bcp-47.js +91 -0
  53. package/src/invite/invite-api.js +2 -0
  54. package/src/lib/drizzle-helpers.js +70 -18
  55. package/src/mapeo-manager.js +138 -88
  56. package/src/mapeo-project.js +56 -218
  57. package/src/roles.js +1 -1
  58. package/src/schema/client.js +22 -28
  59. package/src/schema/comapeo-to-drizzle.js +57 -0
  60. package/src/schema/{schema-to-drizzle.js → json-schema-to-drizzle.js} +25 -25
  61. package/src/schema/project.js +24 -37
  62. package/src/schema/types.ts +138 -99
  63. package/src/translation-api.js +64 -12
  64. package/src/utils.js +13 -0
  65. package/dist/config-import.d.ts +0 -74
  66. package/dist/config-import.d.ts.map +0 -1
  67. package/dist/schema/schema-to-drizzle.d.ts +0 -20
  68. package/dist/schema/schema-to-drizzle.d.ts.map +0 -1
  69. package/dist/schema/utils.d.ts +0 -55
  70. package/dist/schema/utils.d.ts.map +0 -1
  71. package/src/config-import.js +0 -603
  72. package/src/schema/utils.js +0 -51
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @import { JsonSchemaToDrizzleSqliteTable } from './types.js'
3
+ * @import { SQLiteTextJsonBuilder } from 'drizzle-orm/sqlite-core'
4
+ * @import { $Type } from 'drizzle-orm'
5
+ * @import { MapeoDocMap } from '../types.js'
6
+ */
7
+ /**
8
+ * @typedef {typeof import('@comapeo/schema').dereferencedDocSchemas} ComapeoSchemaMap
9
+ * @typedef {{ forks: $Type<SQLiteTextJsonBuilder, string[]> }} AdditionalColumns
10
+ */
11
+ /**
12
+ * @template {ComapeoSchemaMap[keyof ComapeoSchemaMap]} TSchema
13
+ * @param {TSchema} schema
14
+ * @returns {JsonSchemaToDrizzleSqliteTable<
15
+ * MapeoDocMap[TSchema['properties']['schemaName']['const']],
16
+ * TSchema,
17
+ * TSchema['properties']['schemaName']['const'],
18
+ * AdditionalColumns,
19
+ * 'docId'
20
+ * >}
21
+ */
22
+ export function comapeoSchemaToDrizzleTable<TSchema extends ComapeoSchemaMap[keyof ComapeoSchemaMap]>(schema: TSchema): JsonSchemaToDrizzleSqliteTable<MapeoDocMap[TSchema["properties"]["schemaName"]["const"]], TSchema, TSchema["properties"]["schemaName"]["const"], AdditionalColumns, "docId">;
23
+ /**
24
+ * Table for storing backlinks, used for indexing. There needs to be one for
25
+ * each indexed document type, with a specific name `<datatype>_backlink`
26
+ *
27
+ * @param {import('@comapeo/schema').MapeoDoc['schemaName']} schemaName
28
+ */
29
+ export function backlinkTable(schemaName: import("@comapeo/schema").MapeoDoc["schemaName"]): import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
30
+ name: string;
31
+ schema: undefined;
32
+ columns: {
33
+ versionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
34
+ name: string;
35
+ tableName: string;
36
+ dataType: "string";
37
+ data: string;
38
+ driverParam: string;
39
+ notNull: true;
40
+ hasDefault: false;
41
+ isPrimaryKey: true;
42
+ isAutoincrement: false;
43
+ hasRuntimeDefault: false;
44
+ enumValues: [string, ...string[]];
45
+ baseColumn: never;
46
+ identity: undefined;
47
+ generated: undefined;
48
+ }, {}>;
49
+ };
50
+ dialect: "sqlite";
51
+ }>;
52
+ /**
53
+ * @param {string} tableName
54
+ */
55
+ export function getBacklinkTableName(tableName: string): string;
56
+ export const BACKLINK_TABLE_POSTFIX: "_backlink";
57
+ export type ComapeoSchemaMap = typeof import("@comapeo/schema").dereferencedDocSchemas;
58
+ export type AdditionalColumns = {
59
+ forks: $Type<SQLiteTextJsonBuilder, string[]>;
60
+ };
61
+ import type { MapeoDocMap } from '../types.js';
62
+ import type { JsonSchemaToDrizzleSqliteTable } from './types.js';
63
+ import type { SQLiteTextJsonBuilder } from 'drizzle-orm/sqlite-core';
64
+ import type { $Type } from 'drizzle-orm';
65
+ //# sourceMappingURL=comapeo-to-drizzle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comapeo-to-drizzle.d.ts","sourceRoot":"","sources":["../../src/schema/comapeo-to-drizzle.js"],"names":[],"mappings":"AAKA;;;;;GAKG;AAEH;;;GAGG;AAEH;;;;;;;;;;GAUG;AACH,4CAVwD,OAAO,SAAjD,gBAAgB,CAAC,MAAM,gBAAgB,CAAE,UAC5C,OAAO,GACL,+BACR,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,EACzD,OAAO,EACP,OAAO,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAC5C,iBAAiB,EACrB,OAAW,CACR,CAWH;AAED;;;;;GAKG;AACH,0CAFW,OAAO,iBAAiB,EAAE,QAAQ,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;GAM1D;AAED;;GAEG;AACH,gDAFW,MAAM,UAIhB;AArDD,iDAAiD;+BAUpC,cAAc,iBAAiB,EAAE,sBAAsB;gCACvD;IAAE,KAAK,EAAE,MAAM,qBAAqB,EAAE,MAAM,EAAE,CAAC,CAAA;CAAE;iCAL9B,aAAa;oDAHM,YAAY;2CACrB,yBAAyB;2BACzC,aAAa"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @template {{ [ K in keyof TSchema['properties'] ]?: any }} TObjectType
3
+ * @template {import('./types.js').JSONSchema7Object} TSchema
4
+ * @template {string} TTableName
5
+ * @template {Record<string, import('drizzle-orm').ColumnBuilderBase>} TColumnsMap
6
+ * @template {keyof TSchema['properties']} TPrimaryKey
7
+ * @param {TTableName} tableName
8
+ * @param {TSchema} schema
9
+ * @param {object} [opts]
10
+ * @param {TColumnsMap} [opts.additionalColumns]
11
+ * @param {TPrimaryKey} [opts.primaryKey] - Column name to use as primary key, if not specified in schema
12
+ * @returns {import('./types.js').JsonSchemaToDrizzleSqliteTable<TObjectType, TSchema, TTableName, TColumnsMap, TPrimaryKey>}
13
+ */
14
+ export function jsonSchemaToDrizzleSqliteTable<TObjectType extends { [K in keyof TSchema["properties"]]?: any; }, TSchema extends import("./types.js").JSONSchema7Object, TTableName extends string, TColumnsMap extends Record<string, import("drizzle-orm").ColumnBuilderBase>, TPrimaryKey extends keyof TSchema["properties"]>(tableName: TTableName, schema: TSchema, { additionalColumns, primaryKey }?: {
15
+ additionalColumns?: TColumnsMap | undefined;
16
+ primaryKey?: TPrimaryKey | undefined;
17
+ } | undefined): import("./types.js").JsonSchemaToDrizzleSqliteTable<TObjectType, TSchema, TTableName, TColumnsMap, TPrimaryKey>;
18
+ //# sourceMappingURL=json-schema-to-drizzle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-schema-to-drizzle.d.ts","sourceRoot":"","sources":["../../src/schema/json-schema-to-drizzle.js"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AACH,+CAZ8D,WAAW,SAA5D,GAAK,CAAgC,IAA3B,MAAM,OAAO,CAAC,YAAY,CAAC,CAAE,CAAC,EAAE,GAAG,GAAG,EACP,OAAO,SAAhD,OAAQ,YAAY,EAAE,iBAAkB,EAC/B,UAAU,SAAnB,MAAQ,EACkD,WAAW,SAApE,MAAM,CAAC,MAAM,EAAE,OAAO,aAAa,EAAE,iBAAiB,CAAE,EAC3B,WAAW,SAAzC,MAAO,OAAO,CAAC,YAAY,CAAE,aAC/B,UAAU,UACV,OAAO;;;gBAIL,OAAO,YAAY,EAAE,8BAA8B,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC,CA6D3H"}