@columnus/shared 0.1.47

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 (206) hide show
  1. package/LICENSE +21 -0
  2. package/dist/apiProfile.d.ts +1072 -0
  3. package/dist/apiProfile.js +4210 -0
  4. package/dist/apiProfile.js.map +1 -0
  5. package/dist/apiProfileSlug.d.ts +11 -0
  6. package/dist/apiProfileSlug.js +39 -0
  7. package/dist/apiProfileSlug.js.map +1 -0
  8. package/dist/apiToken.d.ts +6 -0
  9. package/dist/apiToken.js +35 -0
  10. package/dist/apiToken.js.map +1 -0
  11. package/dist/betterAuthSession.d.ts +8 -0
  12. package/dist/betterAuthSession.js +57 -0
  13. package/dist/betterAuthSession.js.map +1 -0
  14. package/dist/bffHost.d.ts +36 -0
  15. package/dist/bffHost.js +74 -0
  16. package/dist/bffHost.js.map +1 -0
  17. package/dist/bffProtocol.d.ts +1357 -0
  18. package/dist/bffProtocol.js +4362 -0
  19. package/dist/bffProtocol.js.map +1 -0
  20. package/dist/bffRedact.d.ts +30 -0
  21. package/dist/bffRedact.js +55 -0
  22. package/dist/bffRedact.js.map +1 -0
  23. package/dist/ciPreviewEnv.d.ts +49 -0
  24. package/dist/ciPreviewEnv.js +143 -0
  25. package/dist/ciPreviewEnv.js.map +1 -0
  26. package/dist/clipboardTransfer.d.ts +25 -0
  27. package/dist/clipboardTransfer.js +4862 -0
  28. package/dist/clipboardTransfer.js.map +1 -0
  29. package/dist/convexSiteUrl.d.ts +73 -0
  30. package/dist/convexSiteUrl.js +137 -0
  31. package/dist/convexSiteUrl.js.map +1 -0
  32. package/dist/csv.d.ts +54 -0
  33. package/dist/csv.js +5499 -0
  34. package/dist/csv.js.map +1 -0
  35. package/dist/dataTransfer.d.ts +21 -0
  36. package/dist/dataTransfer.js +74 -0
  37. package/dist/dataTransfer.js.map +1 -0
  38. package/dist/dateValues.d.ts +18 -0
  39. package/dist/dateValues.js +73 -0
  40. package/dist/dateValues.js.map +1 -0
  41. package/dist/deployOutput.d.ts +3 -0
  42. package/dist/deployOutput.js +23 -0
  43. package/dist/deployOutput.js.map +1 -0
  44. package/dist/displayLabel.d.ts +13 -0
  45. package/dist/displayLabel.js +4342 -0
  46. package/dist/displayLabel.js.map +1 -0
  47. package/dist/displayTemplateGenerator.d.ts +11 -0
  48. package/dist/displayTemplateGenerator.js +98 -0
  49. package/dist/displayTemplateGenerator.js.map +1 -0
  50. package/dist/displayTypes.d.ts +10 -0
  51. package/dist/displayTypes.js +3 -0
  52. package/dist/displayTypes.js.map +1 -0
  53. package/dist/dotenv.d.ts +8 -0
  54. package/dist/dotenv.js +61 -0
  55. package/dist/dotenv.js.map +1 -0
  56. package/dist/erdLayout.d.ts +27 -0
  57. package/dist/erdLayout.js +78 -0
  58. package/dist/erdLayout.js.map +1 -0
  59. package/dist/fieldTypeFormat.d.ts +5 -0
  60. package/dist/fieldTypeFormat.js +63 -0
  61. package/dist/fieldTypeFormat.js.map +1 -0
  62. package/dist/fieldTypeMeta.d.ts +50 -0
  63. package/dist/fieldTypeMeta.js +84 -0
  64. package/dist/fieldTypeMeta.js.map +1 -0
  65. package/dist/fieldValueEqual.d.ts +4 -0
  66. package/dist/fieldValueEqual.js +58 -0
  67. package/dist/fieldValueEqual.js.map +1 -0
  68. package/dist/importMatch.d.ts +80 -0
  69. package/dist/importMatch.js +5643 -0
  70. package/dist/importMatch.js.map +1 -0
  71. package/dist/index.d.ts +58 -0
  72. package/dist/index.js +10647 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/inferIdentifier.d.ts +18 -0
  75. package/dist/inferIdentifier.js +49 -0
  76. package/dist/inferIdentifier.js.map +1 -0
  77. package/dist/keyboard.d.ts +16 -0
  78. package/dist/keyboard.js +71 -0
  79. package/dist/keyboard.js.map +1 -0
  80. package/dist/manifestDeploy.d.ts +27 -0
  81. package/dist/manifestDeploy.js +16 -0
  82. package/dist/manifestDeploy.js.map +1 -0
  83. package/dist/manifestHash.d.ts +11 -0
  84. package/dist/manifestHash.js +35 -0
  85. package/dist/manifestHash.js.map +1 -0
  86. package/dist/previewDeployName.d.ts +26 -0
  87. package/dist/previewDeployName.js +77 -0
  88. package/dist/previewDeployName.js.map +1 -0
  89. package/dist/proposePolicy.d.ts +17 -0
  90. package/dist/proposePolicy.js +33 -0
  91. package/dist/proposePolicy.js.map +1 -0
  92. package/dist/queryBetween.d.ts +20 -0
  93. package/dist/queryBetween.js +28 -0
  94. package/dist/queryBetween.js.map +1 -0
  95. package/dist/queryExecution.d.ts +5 -0
  96. package/dist/queryExecution.js +58 -0
  97. package/dist/queryExecution.js.map +1 -0
  98. package/dist/queryFieldOps.d.ts +66 -0
  99. package/dist/queryFieldOps.js +138 -0
  100. package/dist/queryFieldOps.js.map +1 -0
  101. package/dist/queryMerge.d.ts +29 -0
  102. package/dist/queryMerge.js +4277 -0
  103. package/dist/queryMerge.js.map +1 -0
  104. package/dist/queryPlan.d.ts +97 -0
  105. package/dist/queryPlan.js +4564 -0
  106. package/dist/queryPlan.js.map +1 -0
  107. package/dist/queryStudio.d.ts +25 -0
  108. package/dist/queryStudio.js +4658 -0
  109. package/dist/queryStudio.js.map +1 -0
  110. package/dist/queryTypes.d.ts +402 -0
  111. package/dist/queryTypes.js +4239 -0
  112. package/dist/queryTypes.js.map +1 -0
  113. package/dist/queryValidators.d.ts +99 -0
  114. package/dist/queryValidators.js +76 -0
  115. package/dist/queryValidators.js.map +1 -0
  116. package/dist/readApiQuery.d.ts +10 -0
  117. package/dist/readApiQuery.js +24 -0
  118. package/dist/readApiQuery.js.map +1 -0
  119. package/dist/recordTableColumns.d.ts +21 -0
  120. package/dist/recordTableColumns.js +4469 -0
  121. package/dist/recordTableColumns.js.map +1 -0
  122. package/dist/refDisplayRequests.d.ts +17 -0
  123. package/dist/refDisplayRequests.js +4877 -0
  124. package/dist/refDisplayRequests.js.map +1 -0
  125. package/dist/refGraph.d.ts +23 -0
  126. package/dist/refGraph.js +102 -0
  127. package/dist/refGraph.js.map +1 -0
  128. package/dist/refsRecompute.d.ts +8 -0
  129. package/dist/refsRecompute.js +12 -0
  130. package/dist/refsRecompute.js.map +1 -0
  131. package/dist/richDoc.d.ts +67 -0
  132. package/dist/richDoc.js +4408 -0
  133. package/dist/richDoc.js.map +1 -0
  134. package/dist/schemaGenerator.d.ts +31 -0
  135. package/dist/schemaGenerator.js +198 -0
  136. package/dist/schemaGenerator.js.map +1 -0
  137. package/dist/schemaShrink.d.ts +74 -0
  138. package/dist/schemaShrink.js +132 -0
  139. package/dist/schemaShrink.js.map +1 -0
  140. package/dist/schemaShrinkValidators.d.ts +72 -0
  141. package/dist/schemaShrinkValidators.js +31 -0
  142. package/dist/schemaShrinkValidators.js.map +1 -0
  143. package/dist/schemaTypes.d.ts +454 -0
  144. package/dist/schemaTypes.js +4557 -0
  145. package/dist/schemaTypes.js.map +1 -0
  146. package/dist/share.d.ts +8 -0
  147. package/dist/share.js +4755 -0
  148. package/dist/share.js.map +1 -0
  149. package/dist/shareApiBridge.d.ts +18 -0
  150. package/dist/shareApiBridge.js +4283 -0
  151. package/dist/shareApiBridge.js.map +1 -0
  152. package/dist/shareGuestPolicy.d.ts +14 -0
  153. package/dist/shareGuestPolicy.js +90 -0
  154. package/dist/shareGuestPolicy.js.map +1 -0
  155. package/dist/shareProposal.d.ts +113 -0
  156. package/dist/shareProposal.js +4810 -0
  157. package/dist/shareProposal.js.map +1 -0
  158. package/dist/shareProposalDiff.d.ts +13 -0
  159. package/dist/shareProposalDiff.js +91 -0
  160. package/dist/shareProposalDiff.js.map +1 -0
  161. package/dist/shareScopes.d.ts +14 -0
  162. package/dist/shareScopes.js +223 -0
  163. package/dist/shareScopes.js.map +1 -0
  164. package/dist/shareTokenCrypto.d.ts +9 -0
  165. package/dist/shareTokenCrypto.js +87 -0
  166. package/dist/shareTokenCrypto.js.map +1 -0
  167. package/dist/shareTokens.d.ts +6 -0
  168. package/dist/shareTokens.js +26 -0
  169. package/dist/shareTokens.js.map +1 -0
  170. package/dist/shareTypes.d.ts +107 -0
  171. package/dist/shareTypes.js +3 -0
  172. package/dist/shareTypes.js.map +1 -0
  173. package/dist/shareValidators.d.ts +168 -0
  174. package/dist/shareValidators.js +124 -0
  175. package/dist/shareValidators.js.map +1 -0
  176. package/dist/shareWizard.d.ts +14 -0
  177. package/dist/shareWizard.js +200 -0
  178. package/dist/shareWizard.js.map +1 -0
  179. package/dist/spaceBundle.d.ts +67 -0
  180. package/dist/spaceBundle.js +4664 -0
  181. package/dist/spaceBundle.js.map +1 -0
  182. package/dist/storageFieldValues.d.ts +10 -0
  183. package/dist/storageFieldValues.js +4421 -0
  184. package/dist/storageFieldValues.js.map +1 -0
  185. package/dist/studioBoot.d.ts +49 -0
  186. package/dist/studioBoot.js +167 -0
  187. package/dist/studioBoot.js.map +1 -0
  188. package/dist/syncClampMembership.d.ts +22 -0
  189. package/dist/syncClampMembership.js +74 -0
  190. package/dist/syncClampMembership.js.map +1 -0
  191. package/dist/tenantHosts.d.ts +30 -0
  192. package/dist/tenantHosts.js +60 -0
  193. package/dist/tenantHosts.js.map +1 -0
  194. package/dist/tenantSecretsCrypto.d.ts +31 -0
  195. package/dist/tenantSecretsCrypto.js +145 -0
  196. package/dist/tenantSecretsCrypto.js.map +1 -0
  197. package/dist/useDebouncedCommit.d.ts +11 -0
  198. package/dist/useDebouncedCommit.js +34 -0
  199. package/dist/useDebouncedCommit.js.map +1 -0
  200. package/dist/useDebouncedValue.d.ts +1 -0
  201. package/dist/useDebouncedValue.js +15 -0
  202. package/dist/useDebouncedValue.js.map +1 -0
  203. package/dist/useModifierHeld.d.ts +2 -0
  204. package/dist/useModifierHeld.js +28 -0
  205. package/dist/useModifierHeld.js.map +1 -0
  206. package/package.json +36 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/fieldValueEqual.ts"],"names":[],"mappings":"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","file":"fieldValueEqual.js","sourcesContent":["// Compare Convex field values for pending-edit diffing. Uses the same\n// JSON normalization as csv export so bigint/bytes compare consistently.\n\nfunction bytesToBase64(bytes: Uint8Array): string {\n let s = \"\";\n for (const b of bytes) s += String.fromCharCode(b);\n return btoa(s);\n}\n\nfunction jsonReplacer(_key: string, value: unknown): unknown {\n if (typeof value === \"bigint\") return `${value.toString()}n`;\n if (value instanceof Uint8Array) return { __bytes__: bytesToBase64(value) };\n return value;\n}\n\nfunction normalizeForCompare(value: unknown): unknown {\n if (value === undefined || value === null) return undefined;\n return value;\n}\n\nfunction stableJsonEqual(a: unknown, b: unknown): boolean {\n try {\n return JSON.stringify(a, jsonReplacer) === JSON.stringify(b, jsonReplacer);\n } catch {\n return false;\n }\n}\n\n/** True when two stored field values are equivalent (missing ≡ undefined). */\nexport function fieldValuesEqual(a: unknown, b: unknown): boolean {\n const na = normalizeForCompare(a);\n const nb = normalizeForCompare(b);\n if (Object.is(na, nb)) return true;\n if (na === undefined && nb === undefined) return true;\n\n const ta = typeof na;\n const tb = typeof nb;\n if (ta !== tb) {\n // bigint stored as string in some editors vs bigint on server\n if (ta === \"bigint\" && tb === \"string\") {\n const naBig = na as bigint;\n const nbStr = nb as string;\n return `${naBig.toString()}n` === nbStr || naBig.toString() === nbStr.replace(/n$/, \"\");\n }\n if (ta === \"string\" && tb === \"bigint\") {\n const naStr = na as string;\n const nbBig = nb as bigint;\n return `${nbBig.toString()}n` === naStr || nbBig.toString() === naStr.replace(/n$/, \"\");\n }\n return false;\n }\n\n if (ta === \"object\" && na !== null && nb !== null) {\n return stableJsonEqual(na, nb);\n }\n\n return false;\n}\n\n/** Drop patch keys whose values match the server row baseline. */\nexport function filterChangedPatchFields(\n patch: Record<string, unknown>,\n baseline: Record<string, unknown> | undefined,\n): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(patch)) {\n if (!fieldValuesEqual(value, baseline?.[key])) out[key] = value;\n }\n return out;\n}\n"]}
@@ -0,0 +1,80 @@
1
+ import type { DisplayIdLookup } from "./csv.ts";
2
+ import { type ImportRow, type ParseResult } from "./csv.ts";
3
+ import type { FieldType, Table } from "./schemaTypes.ts";
4
+ export type ImportMatchKey = {
5
+ kind: "_id";
6
+ tableName: string;
7
+ } | {
8
+ kind: "scalar";
9
+ fieldName: string;
10
+ fieldType: FieldType;
11
+ } | {
12
+ kind: "id";
13
+ fieldName: string;
14
+ refTable: string;
15
+ } | {
16
+ kind: "idArray";
17
+ fieldName: string;
18
+ refTable: string;
19
+ };
20
+ export type ImportStagingRow = ImportRow & {
21
+ /** Synthetic grid row id (`import-row-{rowNum}`). */
22
+ stagingId: string;
23
+ };
24
+ declare const MATCH_ERROR_KEY = "_match";
25
+ export declare function importStagingId(rowNum: number): string;
26
+ export declare function csvHasIdColumn(parsed: ParseResult): boolean;
27
+ export declare function matchColumnsForTable(table: Table): ImportMatchColumn[];
28
+ export type ImportMatchColumn = {
29
+ kind: "scalar";
30
+ fieldName: string;
31
+ fieldType: FieldType;
32
+ label: string;
33
+ } | {
34
+ kind: "id";
35
+ fieldName: string;
36
+ refTable: string;
37
+ label: string;
38
+ } | {
39
+ kind: "idArray";
40
+ fieldName: string;
41
+ refTable: string;
42
+ label: string;
43
+ };
44
+ export declare function defaultMatchColumn(table: Table): ImportMatchColumn | null;
45
+ export declare function matchKeyFromColumn(col: ImportMatchColumn, _tableName: string): ImportMatchKey;
46
+ export declare function patchMergeImportRow(existing: Record<string, unknown>, csvDoc: Record<string, unknown>, table: Table): Record<string, unknown>;
47
+ export declare function normalizeMatchKeyFromValue(value: unknown, matchKey: ImportMatchKey, displayLookup: DisplayIdLookup): string;
48
+ export declare function normalizeMatchKeyFromCsvRow(rawRow: Record<string, string>, matchKey: ImportMatchKey, displayLookup: DisplayIdLookup): string | null;
49
+ export declare function collectMatchDisplayIdRefs(_table: Table, existingRows: Record<string, unknown>[], csvRows: Record<string, string>[], matchKey: ImportMatchKey): Map<string, Set<string>>;
50
+ export declare function resolveImportMatches(args: {
51
+ table: Table;
52
+ parsed: ParseResult;
53
+ existingRows: Record<string, unknown>[];
54
+ matchKey: ImportMatchKey;
55
+ displayLookup: DisplayIdLookup;
56
+ }): ImportStagingRow[];
57
+ export declare function stagingRowsToGridRows(staging: ImportStagingRow[]): Record<string, unknown>[];
58
+ export declare function mergeStagingPendingEdits(staging: ImportStagingRow[], pendingEdits: Map<string, Record<string, unknown>>): ImportStagingRow[];
59
+ /** Recompute insert/replace mode and match errors after grid edits to match fields. */
60
+ export declare function reconcileStagingMatchState(args: {
61
+ staging: ImportStagingRow[];
62
+ existingRows: Record<string, unknown>[];
63
+ matchKey: ImportMatchKey;
64
+ displayLookup: DisplayIdLookup;
65
+ parsed: ParseResult;
66
+ table: Table;
67
+ }): ImportStagingRow[];
68
+ /** Merge staging + pending edits, reconcile match mode, and revalidate for commit. */
69
+ export declare function buildImportCommitRows(args: {
70
+ stagingRows: ImportStagingRow[];
71
+ pendingEdits: Map<string, Record<string, unknown>>;
72
+ table: Table;
73
+ parsed: ParseResult | null;
74
+ matchKey: ImportMatchKey | null;
75
+ existingRows: Record<string, unknown>[] | null;
76
+ displayLookup: DisplayIdLookup;
77
+ }): ImportStagingRow[];
78
+ export declare function revalidateStagingRow(row: ImportStagingRow, table: Table): ImportStagingRow;
79
+ export declare function stagingRowToImportRow(row: ImportStagingRow): ImportRow;
80
+ export { MATCH_ERROR_KEY };