@wix/bex-core 2.333.0 → 2.337.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 (175) hide show
  1. package/dist/cjs/assets/locale/messages_ar.json +10 -2
  2. package/dist/cjs/assets/locale/messages_bg.json +10 -2
  3. package/dist/cjs/assets/locale/messages_ca.json +10 -2
  4. package/dist/cjs/assets/locale/messages_cs.json +8 -0
  5. package/dist/cjs/assets/locale/messages_da.json +8 -0
  6. package/dist/cjs/assets/locale/messages_de.json +8 -0
  7. package/dist/cjs/assets/locale/messages_el.json +10 -2
  8. package/dist/cjs/assets/locale/messages_en.json +10 -2
  9. package/dist/cjs/assets/locale/messages_es.json +8 -0
  10. package/dist/cjs/assets/locale/messages_fi.json +10 -2
  11. package/dist/cjs/assets/locale/messages_fr.json +8 -0
  12. package/dist/cjs/assets/locale/messages_he.json +10 -2
  13. package/dist/cjs/assets/locale/messages_hi.json +8 -0
  14. package/dist/cjs/assets/locale/messages_hu.json +10 -2
  15. package/dist/cjs/assets/locale/messages_id.json +8 -0
  16. package/dist/cjs/assets/locale/messages_it.json +8 -0
  17. package/dist/cjs/assets/locale/messages_ja.json +8 -0
  18. package/dist/cjs/assets/locale/messages_ko.json +8 -0
  19. package/dist/cjs/assets/locale/messages_lt.json +10 -2
  20. package/dist/cjs/assets/locale/messages_ms.json +10 -2
  21. package/dist/cjs/assets/locale/messages_nl.json +8 -0
  22. package/dist/cjs/assets/locale/messages_no.json +8 -0
  23. package/dist/cjs/assets/locale/messages_pl.json +8 -0
  24. package/dist/cjs/assets/locale/messages_pt.json +8 -0
  25. package/dist/cjs/assets/locale/messages_ro.json +10 -2
  26. package/dist/cjs/assets/locale/messages_ru.json +8 -0
  27. package/dist/cjs/assets/locale/messages_sk.json +10 -2
  28. package/dist/cjs/assets/locale/messages_sl.json +10 -2
  29. package/dist/cjs/assets/locale/messages_sv.json +8 -0
  30. package/dist/cjs/assets/locale/messages_th.json +8 -0
  31. package/dist/cjs/assets/locale/messages_tl.json +10 -2
  32. package/dist/cjs/assets/locale/messages_tr.json +8 -0
  33. package/dist/cjs/assets/locale/messages_uk.json +8 -0
  34. package/dist/cjs/assets/locale/messages_vi.json +8 -0
  35. package/dist/cjs/assets/locale/messages_zh.json +8 -0
  36. package/dist/cjs/assets/locale/version_file +1 -1
  37. package/dist/cjs/hooks/index.js +6 -0
  38. package/dist/cjs/hooks/index.js.map +1 -1
  39. package/dist/cjs/hooks/useImport.js +4 -0
  40. package/dist/cjs/hooks/useImport.js.map +1 -1
  41. package/dist/cjs/hooks/useSchemaSource.js +11 -0
  42. package/dist/cjs/hooks/useSchemaSource.js.map +1 -0
  43. package/dist/cjs/index.js +11 -2
  44. package/dist/cjs/index.js.map +1 -1
  45. package/dist/cjs/services/translations.js.map +1 -1
  46. package/dist/cjs/state/ImportState/ImportState.js +104 -15
  47. package/dist/cjs/state/ImportState/ImportState.js.map +1 -1
  48. package/dist/cjs/state/ImportState/__tests__/ImportState.engine.spec.js +32 -3
  49. package/dist/cjs/state/ImportState/__tests__/ImportState.engine.spec.js.map +1 -1
  50. package/dist/cjs/state/ImportState/__tests__/buildImportConfig.spec.js +156 -0
  51. package/dist/cjs/state/ImportState/__tests__/buildImportConfig.spec.js.map +1 -0
  52. package/dist/cjs/state/ImportState/detectFieldType.js +20 -2
  53. package/dist/cjs/state/ImportState/detectFieldType.js.map +1 -1
  54. package/dist/cjs/state/SourceState.js +150 -0
  55. package/dist/cjs/state/SourceState.js.map +1 -0
  56. package/dist/cjs/state/index.js +7 -0
  57. package/dist/cjs/state/index.js.map +1 -1
  58. package/dist/cjs/testkit/createInMemorySchemaSource.js +14 -8
  59. package/dist/cjs/testkit/createInMemorySchemaSource.js.map +1 -1
  60. package/dist/cjs/testkit/hubJobImportMocks.js +14 -4
  61. package/dist/cjs/testkit/hubJobImportMocks.js.map +1 -1
  62. package/dist/cjs/types/Field.js.map +1 -1
  63. package/dist/cjs/types/FieldTypeDefinition.js +79 -0
  64. package/dist/cjs/types/FieldTypeDefinition.js.map +1 -0
  65. package/dist/cjs/types/FieldsSource.js.map +1 -1
  66. package/dist/cjs/types/Schema.js.map +1 -1
  67. package/dist/cjs/types/SchemaSource.js +41 -20
  68. package/dist/cjs/types/SchemaSource.js.map +1 -1
  69. package/dist/cjs/types/__tests__/defineSchemaSource.fieldTypes.spec.js +78 -0
  70. package/dist/cjs/types/__tests__/defineSchemaSource.fieldTypes.spec.js.map +1 -0
  71. package/dist/esm/assets/locale/messages_ar.json +10 -2
  72. package/dist/esm/assets/locale/messages_bg.json +10 -2
  73. package/dist/esm/assets/locale/messages_ca.json +10 -2
  74. package/dist/esm/assets/locale/messages_cs.json +8 -0
  75. package/dist/esm/assets/locale/messages_da.json +8 -0
  76. package/dist/esm/assets/locale/messages_de.json +8 -0
  77. package/dist/esm/assets/locale/messages_el.json +10 -2
  78. package/dist/esm/assets/locale/messages_en.json +10 -2
  79. package/dist/esm/assets/locale/messages_es.json +8 -0
  80. package/dist/esm/assets/locale/messages_fi.json +10 -2
  81. package/dist/esm/assets/locale/messages_fr.json +8 -0
  82. package/dist/esm/assets/locale/messages_he.json +10 -2
  83. package/dist/esm/assets/locale/messages_hi.json +8 -0
  84. package/dist/esm/assets/locale/messages_hu.json +10 -2
  85. package/dist/esm/assets/locale/messages_id.json +8 -0
  86. package/dist/esm/assets/locale/messages_it.json +8 -0
  87. package/dist/esm/assets/locale/messages_ja.json +8 -0
  88. package/dist/esm/assets/locale/messages_ko.json +8 -0
  89. package/dist/esm/assets/locale/messages_lt.json +10 -2
  90. package/dist/esm/assets/locale/messages_ms.json +10 -2
  91. package/dist/esm/assets/locale/messages_nl.json +8 -0
  92. package/dist/esm/assets/locale/messages_no.json +8 -0
  93. package/dist/esm/assets/locale/messages_pl.json +8 -0
  94. package/dist/esm/assets/locale/messages_pt.json +8 -0
  95. package/dist/esm/assets/locale/messages_ro.json +10 -2
  96. package/dist/esm/assets/locale/messages_ru.json +8 -0
  97. package/dist/esm/assets/locale/messages_sk.json +10 -2
  98. package/dist/esm/assets/locale/messages_sl.json +10 -2
  99. package/dist/esm/assets/locale/messages_sv.json +8 -0
  100. package/dist/esm/assets/locale/messages_th.json +8 -0
  101. package/dist/esm/assets/locale/messages_tl.json +10 -2
  102. package/dist/esm/assets/locale/messages_tr.json +8 -0
  103. package/dist/esm/assets/locale/messages_uk.json +8 -0
  104. package/dist/esm/assets/locale/messages_vi.json +8 -0
  105. package/dist/esm/assets/locale/messages_zh.json +8 -0
  106. package/dist/esm/assets/locale/version_file +1 -1
  107. package/dist/esm/hooks/index.js +1 -0
  108. package/dist/esm/hooks/index.js.map +1 -1
  109. package/dist/esm/hooks/useImport.js +3 -1
  110. package/dist/esm/hooks/useImport.js.map +1 -1
  111. package/dist/esm/hooks/useSchemaSource.js +7 -0
  112. package/dist/esm/hooks/useSchemaSource.js.map +1 -0
  113. package/dist/esm/index.js +2 -1
  114. package/dist/esm/index.js.map +1 -1
  115. package/dist/esm/state/ImportState/ImportState.js +67 -7
  116. package/dist/esm/state/ImportState/ImportState.js.map +1 -1
  117. package/dist/esm/state/ImportState/__tests__/ImportState.engine.spec.js +32 -4
  118. package/dist/esm/state/ImportState/__tests__/ImportState.engine.spec.js.map +1 -1
  119. package/dist/esm/state/ImportState/__tests__/buildImportConfig.spec.js +100 -0
  120. package/dist/esm/state/ImportState/__tests__/buildImportConfig.spec.js.map +1 -0
  121. package/dist/esm/state/ImportState/detectFieldType.js +15 -15
  122. package/dist/esm/state/ImportState/detectFieldType.js.map +1 -1
  123. package/dist/esm/state/SourceState.js +131 -0
  124. package/dist/esm/state/SourceState.js.map +1 -0
  125. package/dist/esm/state/index.js +1 -0
  126. package/dist/esm/state/index.js.map +1 -1
  127. package/dist/esm/testkit/createInMemorySchemaSource.js +9 -7
  128. package/dist/esm/testkit/createInMemorySchemaSource.js.map +1 -1
  129. package/dist/esm/testkit/hubJobImportMocks.js +14 -4
  130. package/dist/esm/testkit/hubJobImportMocks.js.map +1 -1
  131. package/dist/esm/types/FieldTypeDefinition.js +16 -0
  132. package/dist/esm/types/FieldTypeDefinition.js.map +1 -0
  133. package/dist/esm/types/SchemaSource.js +33 -14
  134. package/dist/esm/types/SchemaSource.js.map +1 -1
  135. package/dist/esm/types/__tests__/defineSchemaSource.fieldTypes.spec.js +51 -0
  136. package/dist/esm/types/__tests__/defineSchemaSource.fieldTypes.spec.js.map +1 -0
  137. package/dist/types/hooks/index.d.ts +1 -0
  138. package/dist/types/hooks/index.d.ts.map +1 -1
  139. package/dist/types/hooks/useImport.d.ts +9 -3
  140. package/dist/types/hooks/useImport.d.ts.map +1 -1
  141. package/dist/types/hooks/useSchemaSource.d.ts +4 -0
  142. package/dist/types/hooks/useSchemaSource.d.ts.map +1 -0
  143. package/dist/types/index.d.ts +4 -3
  144. package/dist/types/index.d.ts.map +1 -1
  145. package/dist/types/services/translations.d.ts +1 -1
  146. package/dist/types/services/translations.d.ts.map +1 -1
  147. package/dist/types/state/ImportState/ImportState.d.ts +53 -14
  148. package/dist/types/state/ImportState/ImportState.d.ts.map +1 -1
  149. package/dist/types/state/ImportState/__tests__/buildImportConfig.spec.d.ts +2 -0
  150. package/dist/types/state/ImportState/__tests__/buildImportConfig.spec.d.ts.map +1 -0
  151. package/dist/types/state/ImportState/detectFieldType.d.ts +3 -0
  152. package/dist/types/state/ImportState/detectFieldType.d.ts.map +1 -1
  153. package/dist/types/state/SourceState.d.ts +39 -0
  154. package/dist/types/state/SourceState.d.ts.map +1 -0
  155. package/dist/types/state/index.d.ts +1 -0
  156. package/dist/types/state/index.d.ts.map +1 -1
  157. package/dist/types/testkit/WixPatternsContainer.driver.d.ts +2 -0
  158. package/dist/types/testkit/WixPatternsContainer.driver.d.ts.map +1 -1
  159. package/dist/types/testkit/createInMemorySchemaSource.d.ts +12 -7
  160. package/dist/types/testkit/createInMemorySchemaSource.d.ts.map +1 -1
  161. package/dist/types/testkit/hubJobImportMocks.d.ts +8 -0
  162. package/dist/types/testkit/hubJobImportMocks.d.ts.map +1 -1
  163. package/dist/types/types/Field.d.ts +6 -1
  164. package/dist/types/types/Field.d.ts.map +1 -1
  165. package/dist/types/types/FieldTypeDefinition.d.ts +253 -0
  166. package/dist/types/types/FieldTypeDefinition.d.ts.map +1 -0
  167. package/dist/types/types/FieldsSource.d.ts +29 -1
  168. package/dist/types/types/FieldsSource.d.ts.map +1 -1
  169. package/dist/types/types/Schema.d.ts +10 -6
  170. package/dist/types/types/Schema.d.ts.map +1 -1
  171. package/dist/types/types/SchemaSource.d.ts +44 -10
  172. package/dist/types/types/SchemaSource.d.ts.map +1 -1
  173. package/dist/types/types/__tests__/defineSchemaSource.fieldTypes.spec.d.ts +2 -0
  174. package/dist/types/types/__tests__/defineSchemaSource.fieldTypes.spec.d.ts.map +1 -0
  175. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"names":["TYPE_SAMPLE_SIZE","exports","MAJORITY","NUMBER_RE","SLASH_DATE_RE","ISO_DATE_RE","WEBSITE_PROTOCOLS","EMAIL_PROTOCOL","PHONE_PROTOCOLS","RELATIVE_PREFIXES","PHONE_RE","EMAIL_RE","startsWithAny","value","prefixes","some","prefix","startsWith","isValidWebsiteUrl","parsed","URL","includes","protocol","isEmailUrl","test","slice","length","isPhoneUrl","isUrl","isDate","Number","isNaN","Date","getTime","swapped","replace","detectValueType","lower","toLowerCase","NEW_FIELD_TYPE_TO_DATA_EXTENSION","text","number","date","boolean","url","image","video","document","audio","toDataExtensionFieldType","type","detectColumnType","values","detectValue","samples","counts","Map","forEach","set","get","best","bestCount","count"],"sources":["../../../../src/state/ImportState/detectFieldType.ts"],"sourcesContent":["// Field-type detection for new fields created during CSV import (CAIRO-4131).\n//\n// Ported from cm-import (`wix-data-client/cm-import`):\n// - per-cell rules from `src/field-configuration/detectFieldConfig.js`\n// (`detectPrimitiveType`) and `src/types/validators/{number,url}.js`\n// - the column-level majority vote from\n// `src/field-configuration/guessFieldConfigFromSamples.js`\n//\n// This module owns the shared `NewFieldType` vocabulary and the primitive\n// detector (number / date / boolean / url, else text). Media detection (image /\n// video / document / audio) lives in `@wix/patterns-fields` — it needs the media\n// URI parser, which core must not depend on — and is injected into `ImportState`\n// via `detectColumnType` (see `ImportStateProps`). `detectColumnType` here takes\n// the per-value detector as a parameter so the fields detector reuses this\n// sampling/majority logic instead of re-implementing it.\n\n// All field types a new column can be detected as. The primitive detector below\n// only ever returns the first five; image/video/document/audio come from the\n// injected fields detector.\nexport type NewFieldType =\n | 'text'\n | 'number'\n | 'date'\n | 'boolean'\n | 'url'\n | 'image'\n | 'video'\n | 'document'\n | 'audio';\n\n// Infers a column's field type from its values. Injected into `ImportState`.\nexport type DetectColumnType = (values: string[]) => NewFieldType;\n\n// Infers a single cell's field type.\nexport type DetectValueType = (value: string) => NewFieldType;\n\n// Column-detection sampling: look at the first `TYPE_SAMPLE_SIZE` values and\n// require a >= `MAJORITY` share to agree on a non-text type. We use the same 2/3\n// vote as cm-import but a **larger sample** — cm-import's `constants.sampleSize`\n// is 6; we deliberately sample more so the inference is steadier on messy\n// columns. Exported so callers pass only the head of a column to\n// `detectColumnType` instead of copying it whole.\nexport const TYPE_SAMPLE_SIZE = 50;\nconst MAJORITY = 2 / 3;\n\n// cm-import `validators/number.js` `validateString`.\nconst NUMBER_RE = /^[+-]?(?:\\d+\\.?\\d*)?$/;\n\n// cm-import `detectFieldConfig.js` date patterns.\nconst SLASH_DATE_RE = /^\\d{1,2}\\/\\d{1,2}\\/\\d{4}(?: \\d{1,2}:\\d{1,2})?$/;\nconst ISO_DATE_RE = /\\d{4}-\\d{2}-\\d{2}/;\n\n// Approximates cm-import `validators/url.js` (website / email / phone / relative\n// links). cm-import delegates structural validation to `@wix/santa-core-utils`\n// `isValidUrl`/`isValidEmail`, which aren't available here — so website URLs are\n// validated with the platform `URL` parser instead (rejects empty/whitespace/\n// malformed authorities). It's still an approximation: `URL` accepts some\n// odd-but-parseable hosts santa would reject.\nconst WEBSITE_PROTOCOLS = ['http:', 'https:', 'ftp:'];\nconst EMAIL_PROTOCOL = 'mailto:';\nconst PHONE_PROTOCOLS = ['sms:', 'tel:'];\nconst RELATIVE_PREFIXES = ['/', '#', '?'];\nconst PHONE_RE = /^[\\s\\d()+\\-/_]+$/;\nconst EMAIL_RE = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\nconst startsWithAny = (value: string, prefixes: readonly string[]): boolean =>\n prefixes.some((prefix) => value.startsWith(prefix));\n\nconst isValidWebsiteUrl = (value: string): boolean => {\n let parsed: URL;\n try {\n parsed = new URL(value);\n } catch {\n return false;\n }\n return WEBSITE_PROTOCOLS.includes(parsed.protocol);\n};\n\nconst isEmailUrl = (value: string): boolean =>\n value.startsWith(EMAIL_PROTOCOL) &&\n EMAIL_RE.test(value.slice(EMAIL_PROTOCOL.length));\n\nconst isPhoneUrl = (value: string): boolean =>\n PHONE_PROTOCOLS.some(\n (protocol) =>\n value.startsWith(protocol) && PHONE_RE.test(value.slice(protocol.length)),\n );\n\nconst isUrl = (value: string): boolean =>\n isValidWebsiteUrl(value) ||\n isEmailUrl(value) ||\n isPhoneUrl(value) ||\n startsWithAny(value, RELATIVE_PREFIXES);\n\nconst isDate = (value: string): boolean => {\n if (SLASH_DATE_RE.test(value)) {\n if (!Number.isNaN(new Date(value).getTime())) {\n return true;\n }\n // cm-import also accepts dd/mm/yyyy by swapping day and month.\n const swapped = value.replace(/(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})/, '$2/$1/$3');\n if (!Number.isNaN(new Date(swapped).getTime())) {\n return true;\n }\n }\n return ISO_DATE_RE.test(value) && !Number.isNaN(new Date(value).getTime());\n};\n\n/**\n * Infer the field type of a single CSV cell, in cm-import's order:\n * empty → number → boolean → date → url, else text.\n */\nexport function detectValueType(value: string): NewFieldType {\n if (value === '') {\n return 'text';\n }\n if (NUMBER_RE.test(value)) {\n return 'number';\n }\n const lower = value.toLowerCase();\n if (lower === 'true' || lower === 'false') {\n return 'boolean';\n }\n if (isDate(value)) {\n return 'date';\n }\n if (isUrl(value)) {\n return 'url';\n }\n return 'text';\n}\n\n// Default DataExtension `CustomFieldType` id for a detected `NewFieldType`, used\n// to seed a new DataExtension field before the user edits it (they can then pick\n// a finer type — e.g. decimal, longText — in the editor). DataExtension has no\n// media types, so image/video/audio fall back to `shortText`; a document column\n// maps to `files`. See the DataExtension creatable-type list in\n// `dataExtensionFieldManagement`.\nconst NEW_FIELD_TYPE_TO_DATA_EXTENSION: Record<NewFieldType, string> = {\n text: 'shortText',\n number: 'integer',\n date: 'date',\n boolean: 'checkbox',\n url: 'url',\n image: 'shortText',\n video: 'shortText',\n document: 'files',\n audio: 'shortText',\n};\n\n/** Default DataExtension field-type id for a detected `NewFieldType`. */\nexport const toDataExtensionFieldType = (type: NewFieldType): string =>\n NEW_FIELD_TYPE_TO_DATA_EXTENSION[type];\n\n/**\n * Infer a column's field type from its first values: the most common detected\n * type, but only when it covers at least two-thirds of the samples (otherwise\n * `text`). Same majority-vote algorithm as cm-import\n * `guessFieldConfigFromSamples`, with a larger sample (see `TYPE_SAMPLE_SIZE`).\n *\n * `detectValue` defaults to the primitive {@link detectValueType}; the fields\n * detector passes a media-aware variant so it reuses this sampling/majority\n * logic.\n */\nexport function detectColumnType(\n values: string[],\n detectValue: DetectValueType = detectValueType,\n): NewFieldType {\n const samples = values.slice(0, TYPE_SAMPLE_SIZE);\n if (samples.length === 0) {\n return 'text';\n }\n\n const counts = new Map<NewFieldType, number>();\n samples.forEach((value) => {\n const type = detectValue(value);\n counts.set(type, (counts.get(type) ?? 0) + 1);\n });\n\n let best: NewFieldType = 'text';\n let bestCount = 0;\n counts.forEach((count, type) => {\n if (count > bestCount) {\n best = type;\n bestCount = count;\n }\n });\n\n return bestCount >= samples.length * MAJORITY ? best : 'text';\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["TYPE_SAMPLE_SIZE","exports","MAJORITY","NUMBER_RE","SLASH_DATE_RE","ISO_DATE_RE","WEBSITE_PROTOCOLS","EMAIL_PROTOCOL","PHONE_PROTOCOLS","RELATIVE_PREFIXES","PHONE_RE","EMAIL_RE","startsWithAny","value","prefixes","some","prefix","startsWith","isValidWebsiteUrl","parsed","URL","includes","protocol","isEmailUrl","test","slice","length","isPhoneUrl","isUrl","isDate","Number","isNaN","Date","getTime","swapped","replace","detectValueType","lower","toLowerCase","NEW_FIELD_TYPE_TO_DATA_EXTENSION","text","number","date","boolean","url","image","video","document","audio","toDataExtensionFieldType","type","NEW_FIELD_TYPE_TO_PATTERNS","toPatternsFieldType","detectColumnType","values","detectValue","samples","counts","Map","forEach","set","get","best","bestCount","count"],"sources":["../../../../src/state/ImportState/detectFieldType.ts"],"sourcesContent":["import type { PatternsFieldType } from '../../types/Field';\n\n// Field-type detection for new fields created during CSV import (CAIRO-4131).\n//\n// Ported from cm-import (`wix-data-client/cm-import`):\n// - per-cell rules from `src/field-configuration/detectFieldConfig.js`\n// (`detectPrimitiveType`) and `src/types/validators/{number,url}.js`\n// - the column-level majority vote from\n// `src/field-configuration/guessFieldConfigFromSamples.js`\n//\n// This module owns the shared `NewFieldType` vocabulary and the primitive\n// detector (number / date / boolean / url, else text). Media detection (image /\n// video / document / audio) lives in `@wix/patterns-fields` — it needs the media\n// URI parser, which core must not depend on — and is injected into `ImportState`\n// via `detectColumnType` (see `ImportStateProps`). `detectColumnType` here takes\n// the per-value detector as a parameter so the fields detector reuses this\n// sampling/majority logic instead of re-implementing it.\n\n// All field types a new column can be detected as. The primitive detector below\n// only ever returns the first five; image/video/document/audio come from the\n// injected fields detector.\nexport type NewFieldType =\n | 'text'\n | 'number'\n | 'date'\n | 'boolean'\n | 'url'\n | 'image'\n | 'video'\n | 'document'\n | 'audio';\n\n// Infers a column's field type from its values. Injected into `ImportState`.\nexport type DetectColumnType = (values: string[]) => NewFieldType;\n\n// Infers a single cell's field type.\nexport type DetectValueType = (value: string) => NewFieldType;\n\n// Column-detection sampling: look at the first `TYPE_SAMPLE_SIZE` values and\n// require a >= `MAJORITY` share to agree on a non-text type. We use the same 2/3\n// vote as cm-import but a **larger sample** — cm-import's `constants.sampleSize`\n// is 6; we deliberately sample more so the inference is steadier on messy\n// columns. Exported so callers pass only the head of a column to\n// `detectColumnType` instead of copying it whole.\nexport const TYPE_SAMPLE_SIZE = 50;\nconst MAJORITY = 2 / 3;\n\n// cm-import `validators/number.js` `validateString`.\nconst NUMBER_RE = /^[+-]?(?:\\d+\\.?\\d*)?$/;\n\n// cm-import `detectFieldConfig.js` date patterns.\nconst SLASH_DATE_RE = /^\\d{1,2}\\/\\d{1,2}\\/\\d{4}(?: \\d{1,2}:\\d{1,2})?$/;\nconst ISO_DATE_RE = /\\d{4}-\\d{2}-\\d{2}/;\n\n// Approximates cm-import `validators/url.js` (website / email / phone / relative\n// links). cm-import delegates structural validation to `@wix/santa-core-utils`\n// `isValidUrl`/`isValidEmail`, which aren't available here — so website URLs are\n// validated with the platform `URL` parser instead (rejects empty/whitespace/\n// malformed authorities). It's still an approximation: `URL` accepts some\n// odd-but-parseable hosts santa would reject.\nconst WEBSITE_PROTOCOLS = ['http:', 'https:', 'ftp:'];\nconst EMAIL_PROTOCOL = 'mailto:';\nconst PHONE_PROTOCOLS = ['sms:', 'tel:'];\nconst RELATIVE_PREFIXES = ['/', '#', '?'];\nconst PHONE_RE = /^[\\s\\d()+\\-/_]+$/;\nconst EMAIL_RE = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\nconst startsWithAny = (value: string, prefixes: readonly string[]): boolean =>\n prefixes.some((prefix) => value.startsWith(prefix));\n\nconst isValidWebsiteUrl = (value: string): boolean => {\n let parsed: URL;\n try {\n parsed = new URL(value);\n } catch {\n return false;\n }\n return WEBSITE_PROTOCOLS.includes(parsed.protocol);\n};\n\nconst isEmailUrl = (value: string): boolean =>\n value.startsWith(EMAIL_PROTOCOL) &&\n EMAIL_RE.test(value.slice(EMAIL_PROTOCOL.length));\n\nconst isPhoneUrl = (value: string): boolean =>\n PHONE_PROTOCOLS.some(\n (protocol) =>\n value.startsWith(protocol) && PHONE_RE.test(value.slice(protocol.length)),\n );\n\nconst isUrl = (value: string): boolean =>\n isValidWebsiteUrl(value) ||\n isEmailUrl(value) ||\n isPhoneUrl(value) ||\n startsWithAny(value, RELATIVE_PREFIXES);\n\nconst isDate = (value: string): boolean => {\n if (SLASH_DATE_RE.test(value)) {\n if (!Number.isNaN(new Date(value).getTime())) {\n return true;\n }\n // cm-import also accepts dd/mm/yyyy by swapping day and month.\n const swapped = value.replace(/(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})/, '$2/$1/$3');\n if (!Number.isNaN(new Date(swapped).getTime())) {\n return true;\n }\n }\n return ISO_DATE_RE.test(value) && !Number.isNaN(new Date(value).getTime());\n};\n\n/**\n * Infer the field type of a single CSV cell, in cm-import's order:\n * empty → number → boolean → date → url, else text.\n */\nexport function detectValueType(value: string): NewFieldType {\n if (value === '') {\n return 'text';\n }\n if (NUMBER_RE.test(value)) {\n return 'number';\n }\n const lower = value.toLowerCase();\n if (lower === 'true' || lower === 'false') {\n return 'boolean';\n }\n if (isDate(value)) {\n return 'date';\n }\n if (isUrl(value)) {\n return 'url';\n }\n return 'text';\n}\n\n// Default DataExtension `CustomFieldType` id for a detected `NewFieldType`, used\n// to seed a new DataExtension field before the user edits it (they can then pick\n// a finer type — e.g. decimal, longText — in the editor). DataExtension has no\n// media types, so image/video/audio fall back to `shortText`; a document column\n// maps to `files`. See the DataExtension creatable-type list in\n// `dataExtensionFieldManagement`.\nconst NEW_FIELD_TYPE_TO_DATA_EXTENSION: Record<NewFieldType, string> = {\n text: 'shortText',\n number: 'integer',\n date: 'date',\n boolean: 'checkbox',\n url: 'url',\n image: 'shortText',\n video: 'shortText',\n document: 'files',\n audio: 'shortText',\n};\n\n/** Default DataExtension field-type id for a detected `NewFieldType`. */\nexport const toDataExtensionFieldType = (type: NewFieldType): string =>\n NEW_FIELD_TYPE_TO_DATA_EXTENSION[type];\n\n// Maps the import flow's `NewFieldType` (lowercase, data-driven detection) to the\n// schema's `PatternsFieldType` (uppercase) used by `Field` / the field editor.\nconst NEW_FIELD_TYPE_TO_PATTERNS: Record<NewFieldType, PatternsFieldType> = {\n text: 'SHORT_TEXT',\n number: 'NUMBER',\n date: 'DATE',\n boolean: 'BOOLEAN',\n url: 'URL',\n image: 'IMAGE',\n video: 'VIDEO',\n document: 'DOCUMENT',\n audio: 'AUDIO',\n};\n\n/** Schema `PatternsFieldType` for a detected `NewFieldType`. */\nexport const toPatternsFieldType = (type: NewFieldType): PatternsFieldType =>\n NEW_FIELD_TYPE_TO_PATTERNS[type];\n\n/**\n * Infer a column's field type from its first values: the most common detected\n * type, but only when it covers at least two-thirds of the samples (otherwise\n * `text`). Same majority-vote algorithm as cm-import\n * `guessFieldConfigFromSamples`, with a larger sample (see `TYPE_SAMPLE_SIZE`).\n *\n * `detectValue` defaults to the primitive {@link detectValueType}; the fields\n * detector passes a media-aware variant so it reuses this sampling/majority\n * logic.\n */\nexport function detectColumnType(\n values: string[],\n detectValue: DetectValueType = detectValueType,\n): NewFieldType {\n const samples = values.slice(0, TYPE_SAMPLE_SIZE);\n if (samples.length === 0) {\n return 'text';\n }\n\n const counts = new Map<NewFieldType, number>();\n samples.forEach((value) => {\n const type = detectValue(value);\n counts.set(type, (counts.get(type) ?? 0) + 1);\n });\n\n let best: NewFieldType = 'text';\n let bestCount = 0;\n counts.forEach((count, type) => {\n if (count > bestCount) {\n best = type;\n bestCount = count;\n }\n });\n\n return bestCount >= samples.length * MAJORITY ? best : 'text';\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.SourceState = void 0;
6
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ var _mobx = require("mobx");
8
+ var _TaskState = require("./TaskState");
9
+ /**
10
+ * Holds a source's loaded schema, page-neutral: loads it once, exposes its
11
+ * fields, and runs the source's field mutations with toasts and retry. Page
12
+ * adapters (collection page, entity page) read from it.
13
+ */
14
+ class SourceState {
15
+ constructor(params) {
16
+ (0, _defineProperty2.default)(this, "container", void 0);
17
+ (0, _defineProperty2.default)(this, "source", void 0);
18
+ (0, _defineProperty2.default)(this, "makePrimaryTask", new _TaskState.TaskState());
19
+ (0, _defineProperty2.default)(this, "duplicateTask", new _TaskState.TaskState());
20
+ (0, _defineProperty2.default)(this, "duplicateWithContentTask", new _TaskState.TaskState());
21
+ (0, _defineProperty2.default)(this, "loadedSchema", undefined);
22
+ /** Loads the schema. The consuming page adapter runs this, tracks its status,
23
+ * and shows a retry toast on failure. */
24
+ (0, _defineProperty2.default)(this, "load", async () => {
25
+ const loaded = await this.source.loadSchema();
26
+ (0, _mobx.runInAction)(() => {
27
+ this.loadedSchema = loaded;
28
+ });
29
+ });
30
+ (0, _defineProperty2.default)(this, "makePrimary", fieldId => {
31
+ var _this$fieldActions;
32
+ const run = (_this$fieldActions = this.fieldActions) == null ? void 0 : _this$fieldActions.makePrimary;
33
+ if (!run) {
34
+ return;
35
+ }
36
+ void this.runFieldMutation(this.makePrimaryTask, () => run(fieldId), {
37
+ successMessage: 'Primary field updated',
38
+ successBi: 'cairo-field-action-make-primary-success',
39
+ errorMessage: "Couldn't update primary field",
40
+ errorBi: 'cairo-field-action-make-primary-error'
41
+ }, () => this.makePrimary(fieldId));
42
+ });
43
+ (0, _defineProperty2.default)(this, "duplicateField", fieldId => {
44
+ var _this$fieldActions2;
45
+ const run = (_this$fieldActions2 = this.fieldActions) == null ? void 0 : _this$fieldActions2.duplicateField;
46
+ if (!run) {
47
+ return;
48
+ }
49
+ void this.runFieldMutation(this.duplicateTask, () => run(fieldId), {
50
+ successMessage: 'Field duplicated',
51
+ successBi: 'cairo-field-action-duplicate-success',
52
+ errorMessage: "Couldn't duplicate field",
53
+ errorBi: 'cairo-field-action-duplicate-error'
54
+ }, () => this.duplicateField(fieldId));
55
+ });
56
+ (0, _defineProperty2.default)(this, "duplicateFieldWithContent", fieldId => {
57
+ var _this$fieldActions3;
58
+ const run = (_this$fieldActions3 = this.fieldActions) == null ? void 0 : _this$fieldActions3.duplicateFieldWithContent;
59
+ if (!run) {
60
+ return;
61
+ }
62
+ void this.runFieldMutation(this.duplicateWithContentTask, () => run(fieldId), {
63
+ successMessage: 'Field duplicated with content',
64
+ successBi: 'cairo-field-action-duplicate-with-content-success',
65
+ errorMessage: "Couldn't duplicate field with content",
66
+ errorBi: 'cairo-field-action-duplicate-with-content-error'
67
+ }, () => this.duplicateFieldWithContent(fieldId));
68
+ });
69
+ // makePrimary/duplicate return the updated fields map (like add/edit/delete),
70
+ // so merge it locally — same path as the modal actions, no full re-fetch.
71
+ // Toasts + loading mirror the field-management actions, so the header and the
72
+ // side panel report the same outcome.
73
+ (0, _defineProperty2.default)(this, "runFieldMutation", async (task, run, toasts, retry) => {
74
+ if (task.status.isLoading) {
75
+ return;
76
+ }
77
+ await task.run(async () => {
78
+ const fields = await run();
79
+ (0, _mobx.runInAction)(() => this.mergeFields(fields));
80
+ });
81
+ if (task.status.isSuccess) {
82
+ this.notify({
83
+ type: 'SUCCESS',
84
+ message: toasts.successMessage,
85
+ biName: toasts.successBi
86
+ });
87
+ } else if (task.status.isError) {
88
+ this.notify({
89
+ type: 'ERROR',
90
+ message: toasts.errorMessage,
91
+ biName: toasts.errorBi,
92
+ action: {
93
+ text: 'Try again',
94
+ onClick: retry,
95
+ removeToastOnClick: true
96
+ }
97
+ });
98
+ }
99
+ });
100
+ (0, _defineProperty2.default)(this, "currentToastRemove", void 0);
101
+ // Shared by the source's field mutations (make-primary / duplicate / delete) to
102
+ // surface a toast; deduped against the previous one.
103
+ (0, _defineProperty2.default)(this, "notify", config => {
104
+ var _this$currentToastRem;
105
+ const show = this.container.showToast;
106
+ if (!show) {
107
+ return;
108
+ }
109
+ (_this$currentToastRem = this.currentToastRemove) == null || _this$currentToastRem.call(this);
110
+ this.currentToastRemove = show(config).remove;
111
+ });
112
+ this.container = params.container;
113
+ this.source = params.source;
114
+ (0, _mobx.makeObservable)(this, {
115
+ loadedSchema: _mobx.observable.ref,
116
+ schema: _mobx.computed,
117
+ fields: _mobx.computed,
118
+ mergeFields: _mobx.action
119
+ });
120
+ }
121
+ get schema() {
122
+ var _this$loadedSchema;
123
+ return (_this$loadedSchema = this.loadedSchema) == null ? void 0 : _this$loadedSchema.schema;
124
+ }
125
+ get fieldActions() {
126
+ var _this$loadedSchema2;
127
+ return (_this$loadedSchema2 = this.loadedSchema) == null ? void 0 : _this$loadedSchema2.fieldActions;
128
+ }
129
+ get fields() {
130
+ var _this$schema;
131
+ const fields = ((_this$schema = this.schema) == null ? void 0 : _this$schema.fields) ?? {};
132
+ return Object.values(fields).filter(f => Boolean(f));
133
+ }
134
+ /** Replaces the loaded schema's fields with the map returned by a mutation. */
135
+ mergeFields(fields) {
136
+ const current = this.loadedSchema;
137
+ if (!current) {
138
+ return;
139
+ }
140
+ this.loadedSchema = {
141
+ ...current,
142
+ schema: {
143
+ ...current.schema,
144
+ fields
145
+ }
146
+ };
147
+ }
148
+ }
149
+ exports.SourceState = SourceState;
150
+ //# sourceMappingURL=SourceState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_mobx","require","_TaskState","SourceState","constructor","params","_defineProperty2","default","TaskState","undefined","loaded","source","loadSchema","runInAction","loadedSchema","fieldId","_this$fieldActions","run","fieldActions","makePrimary","runFieldMutation","makePrimaryTask","successMessage","successBi","errorMessage","errorBi","_this$fieldActions2","duplicateField","duplicateTask","_this$fieldActions3","duplicateFieldWithContent","duplicateWithContentTask","task","toasts","retry","status","isLoading","fields","mergeFields","isSuccess","notify","type","message","biName","isError","action","text","onClick","removeToastOnClick","config","_this$currentToastRem","show","container","showToast","currentToastRemove","call","remove","makeObservable","observable","ref","schema","computed","_this$loadedSchema","_this$loadedSchema2","_this$schema","Object","values","filter","f","Boolean","current","exports"],"sources":["../../../src/state/SourceState.ts"],"sourcesContent":["import {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport type { Field } from '../types/Field';\nimport type { LoadedSchema, Schema } from '../types/Schema';\nimport type { SchemaSource } from '../types/SchemaSource';\nimport type { RemoveToast, ToastConfig } from '../model/toast';\nimport { TaskState } from './TaskState';\nimport type { WixPatternsContainer } from './WixPatternsContainer';\n\nexport interface SourceStateParams<T> {\n container: WixPatternsContainer;\n source: SchemaSource<T>;\n}\n\n/**\n * Holds a source's loaded schema, page-neutral: loads it once, exposes its\n * fields, and runs the source's field mutations with toasts and retry. Page\n * adapters (collection page, entity page) read from it.\n */\nexport class SourceState<T = Record<string, unknown>> {\n readonly container: WixPatternsContainer;\n readonly source: SchemaSource<T>;\n readonly makePrimaryTask = new TaskState();\n readonly duplicateTask = new TaskState();\n readonly duplicateWithContentTask = new TaskState();\n\n loadedSchema?: LoadedSchema<T> = undefined;\n\n constructor(params: SourceStateParams<T>) {\n this.container = params.container;\n this.source = params.source;\n\n makeObservable(this, {\n loadedSchema: observable.ref,\n schema: computed,\n fields: computed,\n mergeFields: action,\n });\n }\n\n get schema(): Schema | undefined {\n return this.loadedSchema?.schema;\n }\n\n get fieldActions() {\n return this.loadedSchema?.fieldActions;\n }\n\n get fields(): Field[] {\n const fields = this.schema?.fields ?? {};\n return Object.values(fields).filter((f): f is Field => Boolean(f));\n }\n\n /** Loads the schema. The consuming page adapter runs this, tracks its status,\n * and shows a retry toast on failure. */\n load = async (): Promise<void> => {\n const loaded = await this.source.loadSchema();\n runInAction(() => {\n this.loadedSchema = loaded;\n });\n };\n\n /** Replaces the loaded schema's fields with the map returned by a mutation. */\n mergeFields(fields: Schema['fields']) {\n const current = this.loadedSchema;\n if (!current) {\n return;\n }\n this.loadedSchema = {\n ...current,\n schema: { ...current.schema, fields },\n };\n }\n\n makePrimary = (fieldId: string): void => {\n const run = this.fieldActions?.makePrimary;\n if (!run) {\n return;\n }\n void this.runFieldMutation(\n this.makePrimaryTask,\n () => run(fieldId),\n {\n successMessage: 'Primary field updated',\n successBi: 'cairo-field-action-make-primary-success',\n errorMessage: \"Couldn't update primary field\",\n errorBi: 'cairo-field-action-make-primary-error',\n },\n () => this.makePrimary(fieldId),\n );\n };\n\n duplicateField = (fieldId: string): void => {\n const run = this.fieldActions?.duplicateField;\n if (!run) {\n return;\n }\n void this.runFieldMutation(\n this.duplicateTask,\n () => run(fieldId),\n {\n successMessage: 'Field duplicated',\n successBi: 'cairo-field-action-duplicate-success',\n errorMessage: \"Couldn't duplicate field\",\n errorBi: 'cairo-field-action-duplicate-error',\n },\n () => this.duplicateField(fieldId),\n );\n };\n\n duplicateFieldWithContent = (fieldId: string): void => {\n const run = this.fieldActions?.duplicateFieldWithContent;\n if (!run) {\n return;\n }\n void this.runFieldMutation(\n this.duplicateWithContentTask,\n () => run(fieldId),\n {\n successMessage: 'Field duplicated with content',\n successBi: 'cairo-field-action-duplicate-with-content-success',\n errorMessage: \"Couldn't duplicate field with content\",\n errorBi: 'cairo-field-action-duplicate-with-content-error',\n },\n () => this.duplicateFieldWithContent(fieldId),\n );\n };\n\n // makePrimary/duplicate return the updated fields map (like add/edit/delete),\n // so merge it locally — same path as the modal actions, no full re-fetch.\n // Toasts + loading mirror the field-management actions, so the header and the\n // side panel report the same outcome.\n private runFieldMutation = async (\n task: TaskState<unknown>,\n run: () => Promise<Schema['fields']>,\n toasts: {\n successMessage: string;\n successBi: string;\n errorMessage: string;\n errorBi: string;\n },\n retry: () => void,\n ) => {\n if (task.status.isLoading) {\n return;\n }\n await task.run(async () => {\n const fields = await run();\n runInAction(() => this.mergeFields(fields));\n });\n if (task.status.isSuccess) {\n this.notify({\n type: 'SUCCESS',\n message: toasts.successMessage,\n biName: toasts.successBi,\n });\n } else if (task.status.isError) {\n this.notify({\n type: 'ERROR',\n message: toasts.errorMessage,\n biName: toasts.errorBi,\n action: {\n text: 'Try again',\n onClick: retry,\n removeToastOnClick: true,\n },\n });\n }\n };\n\n private currentToastRemove: RemoveToast | undefined;\n\n // Shared by the source's field mutations (make-primary / duplicate / delete) to\n // surface a toast; deduped against the previous one.\n notify = (config: ToastConfig) => {\n const show = this.container.showToast;\n if (!show) {\n return;\n }\n this.currentToastRemove?.();\n this.currentToastRemove = show(config).remove;\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -124,6 +124,13 @@ Object.keys(_TaskState).forEach(function (key) {
124
124
  if (key in exports && exports[key] === _TaskState[key]) return;
125
125
  exports[key] = _TaskState[key];
126
126
  });
127
+ var _SourceState = require("./SourceState");
128
+ Object.keys(_SourceState).forEach(function (key) {
129
+ if (key === "default" || key === "__esModule") return;
130
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
131
+ if (key in exports && exports[key] === _SourceState[key]) return;
132
+ exports[key] = _SourceState[key];
133
+ });
127
134
  var _WixPatternsContainer = require("./WixPatternsContainer");
128
135
  Object.keys(_WixPatternsContainer).forEach(function (key) {
129
136
  if (key === "default" || key === "__esModule") return;
@@ -1 +1 @@
1
- {"version":3,"names":["_QueryState","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","_SelectState","_QueryResultState","_CollectionState","_CollectionBIReporter","_ToggleState","_ModalState","_ArrayFilterState","_StringFilterState","_CustomFilterState","_RangeFilterState","_OperatorFilterState","_PromiseState","_PromisesState","_PickerState","_PaginationMode","_TaskState","_WixPatternsContainer","_ValueBox","_BulkSelectState","_OptimisticActions","_CollectionOptimisticActions","_CollectionOptimisticExecutor","EventuallyUpdated","_CollectionOptimisticSequenceExecutor","_QueryResultSimulation","_OnlineState","_ConditionalModalState","_TransitionState","_buildWixPatternsContainer","_warmUpPickerStandalone","_ExportState","_ImportState","_DataExtensionState","_CustomFieldModalState","_CollectionPageState","_PageState","_FormPageState","_WidgetsFormState","_SelectionStatus","_SelectionStatusWixPatternsPreset","_SidePanelState","_MultiCollectionSupport","_BulkActionModalState","_TextOverflowState","_resizeObserverCompat","_QueryPendingState","_mutationObserverCompat","_FedopsReporter","_CustomFieldsViewWidgetState","_SetupWidgetState","_ArchiveFieldModalState","_DeleteFieldModalState","_onItemsCreated","_TagsState","_SortState","_AppsState","_CollectionDatasetSyncState"],"sources":["../../../src/state/index.ts"],"sourcesContent":["export * from './QueryState';\nexport * from './QueryState';\nexport * from './SelectState';\nexport * from './QueryResultState';\nexport * from './CollectionState';\nexport * from './CollectionBIReporter';\nexport * from './ToggleState';\nexport * from './ModalState';\nexport * from './ArrayFilterState';\nexport * from './StringFilterState';\nexport * from './CustomFilterState';\nexport * from './RangeFilterState';\nexport * from './OperatorFilterState';\nexport * from './PromiseState';\nexport * from './PromisesState';\nexport * from './PickerState';\nexport * from './PaginationMode';\nexport * from './TaskState';\nexport * from './WixPatternsContainer';\nexport * from './ValueBox';\nexport * from './BulkSelectState';\nexport * from './OptimisticActions';\nexport * from './CollectionOptimisticActions';\nexport { EventuallyUpdated } from './CollectionOptimisticExecutor';\nexport * from './CollectionOptimisticSequenceExecutor';\nexport * from './QueryResultSimulation';\nexport * from './OnlineState';\nexport * from './ConditionalModalState';\nexport * from './TransitionState';\nexport * from './buildWixPatternsContainer';\nexport * from './warmUpPickerStandalone';\nexport * from './ExportState';\nexport * from './ImportState';\nexport * from './DataExtensionState';\nexport * from './CustomFieldModalState';\nexport * from './CollectionPageState';\nexport * from './PageState';\nexport * from './FormPageState';\nexport * from './WidgetsFormState';\nexport * from './SelectionStatus';\nexport * from './SelectionStatusWixPatternsPreset';\nexport * from './SidePanelState';\nexport * from './MultiCollectionSupport';\nexport * from './BulkActionModalState';\nexport * from './TextOverflowState';\nexport * from './resizeObserverCompat';\nexport * from './QueryPendingState';\nexport * from './mutationObserverCompat';\nexport * from './FedopsReporter';\nexport * from './CustomFieldsViewWidgetState';\nexport * from './SetupWidgetState';\nexport * from './ArchiveFieldModalState';\nexport * from './DeleteFieldModalState';\nexport * from './onItemsCreated';\nexport * from './TagsState';\nexport * from './SortState';\nexport * from './AppsState';\nexport * from './CollectionDatasetSync/CollectionDatasetSyncState';\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_QueryState","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","_SelectState","_QueryResultState","_CollectionState","_CollectionBIReporter","_ToggleState","_ModalState","_ArrayFilterState","_StringFilterState","_CustomFilterState","_RangeFilterState","_OperatorFilterState","_PromiseState","_PromisesState","_PickerState","_PaginationMode","_TaskState","_SourceState","_WixPatternsContainer","_ValueBox","_BulkSelectState","_OptimisticActions","_CollectionOptimisticActions","_CollectionOptimisticExecutor","EventuallyUpdated","_CollectionOptimisticSequenceExecutor","_QueryResultSimulation","_OnlineState","_ConditionalModalState","_TransitionState","_buildWixPatternsContainer","_warmUpPickerStandalone","_ExportState","_ImportState","_DataExtensionState","_CustomFieldModalState","_CollectionPageState","_PageState","_FormPageState","_WidgetsFormState","_SelectionStatus","_SelectionStatusWixPatternsPreset","_SidePanelState","_MultiCollectionSupport","_BulkActionModalState","_TextOverflowState","_resizeObserverCompat","_QueryPendingState","_mutationObserverCompat","_FedopsReporter","_CustomFieldsViewWidgetState","_SetupWidgetState","_ArchiveFieldModalState","_DeleteFieldModalState","_onItemsCreated","_TagsState","_SortState","_AppsState","_CollectionDatasetSyncState"],"sources":["../../../src/state/index.ts"],"sourcesContent":["export * from './QueryState';\nexport * from './QueryState';\nexport * from './SelectState';\nexport * from './QueryResultState';\nexport * from './CollectionState';\nexport * from './CollectionBIReporter';\nexport * from './ToggleState';\nexport * from './ModalState';\nexport * from './ArrayFilterState';\nexport * from './StringFilterState';\nexport * from './CustomFilterState';\nexport * from './RangeFilterState';\nexport * from './OperatorFilterState';\nexport * from './PromiseState';\nexport * from './PromisesState';\nexport * from './PickerState';\nexport * from './PaginationMode';\nexport * from './TaskState';\nexport * from './SourceState';\nexport * from './WixPatternsContainer';\nexport * from './ValueBox';\nexport * from './BulkSelectState';\nexport * from './OptimisticActions';\nexport * from './CollectionOptimisticActions';\nexport { EventuallyUpdated } from './CollectionOptimisticExecutor';\nexport * from './CollectionOptimisticSequenceExecutor';\nexport * from './QueryResultSimulation';\nexport * from './OnlineState';\nexport * from './ConditionalModalState';\nexport * from './TransitionState';\nexport * from './buildWixPatternsContainer';\nexport * from './warmUpPickerStandalone';\nexport * from './ExportState';\nexport * from './ImportState';\nexport * from './DataExtensionState';\nexport * from './CustomFieldModalState';\nexport * from './CollectionPageState';\nexport * from './PageState';\nexport * from './FormPageState';\nexport * from './WidgetsFormState';\nexport * from './SelectionStatus';\nexport * from './SelectionStatusWixPatternsPreset';\nexport * from './SidePanelState';\nexport * from './MultiCollectionSupport';\nexport * from './BulkActionModalState';\nexport * from './TextOverflowState';\nexport * from './resizeObserverCompat';\nexport * from './QueryPendingState';\nexport * from './mutationObserverCompat';\nexport * from './FedopsReporter';\nexport * from './CustomFieldsViewWidgetState';\nexport * from './SetupWidgetState';\nexport * from './ArchiveFieldModalState';\nexport * from './DeleteFieldModalState';\nexport * from './onItemsCreated';\nexport * from './TagsState';\nexport * from './SortState';\nexport * from './AppsState';\nexport * from './CollectionDatasetSync/CollectionDatasetSyncState';\n"],"mappings":"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","ignoreList":[]}
@@ -22,14 +22,14 @@ const DEFAULT_CREATABLE_FIELD_TYPES = [{
22
22
  }];
23
23
  /**
24
24
  * Builds a real `SchemaSource<T>` backed by in-memory state — no data source (no
25
- * `@wix/data`, no network). Its `collectionConfig.fetchData` serves the seeded
26
- * `items`, and its `fieldActions` mutate the in-memory schema and return the
27
- * updated fields map, so the create-new-field import flow works end to end (the
28
- * created column surfaces via the schema-source merge).
25
+ * `@wix/data`, no network). Its backend `find` serves the seeded `items`, and
26
+ * its `fieldActions` mutate the in-memory schema and return the updated fields
27
+ * map, so the create-new-field import flow works end to end (the created column
28
+ * surfaces via the schema-source merge).
29
29
  *
30
30
  * Returns `{ source, backend }`. Pass `source` anywhere a `SchemaSource` is
31
- * accepted — `<Table fieldsSource={...} />`, `useSchemaImport(...)`, or
32
- * `...collectionConfig` into the collection hook. Use `backend` to read or
31
+ * accepted — a `@wix/patterns/schema` collection hook, or `<Table
32
+ * fieldsSource={...} />` (which the import reads from). Use `backend` to read or
33
33
  * assert on the in-memory rows directly.
34
34
  */
35
35
  function createInMemorySchemaSource(config) {
@@ -41,7 +41,9 @@ function createInMemorySchemaSource(config) {
41
41
  schemaPermissions = ALL_PERMISSIONS,
42
42
  itemPermissions,
43
43
  creatableFieldTypes = DEFAULT_CREATABLE_FIELD_TYPES,
44
- supportsPii = false
44
+ fieldTypes,
45
+ supportsPii = false,
46
+ references
45
47
  } = config;
46
48
 
47
49
  // Mutable in-memory state shared by the backend, schema, and field actions.
@@ -176,7 +178,11 @@ function createInMemorySchemaSource(config) {
176
178
  collectionId,
177
179
  loadSchema,
178
180
  creatableFieldTypes,
179
- supportsPii
181
+ fieldTypes,
182
+ supportsPii,
183
+ ...(references && {
184
+ references
185
+ })
180
186
  });
181
187
  return {
182
188
  source,
@@ -1 +1 @@
1
- {"version":3,"names":["_SchemaSource","require","_InMemoryBackend","ALL_PERMISSIONS","createField","updateField","deleteField","DEFAULT_CREATABLE_FIELD_TYPES","patternsType","createInMemorySchemaSource","config","_config$fields$","collectionId","idField","displayField","fields","id","schemaPermissions","itemPermissions","creatableFieldTypes","supportsPii","forEach","field","schema","keyOf","item","String","fieldsSnapshot","seed","items","backend","InMemoryBackend","paginationMode","total","length","createOne","index","itemKey","collectionBackend","find","query","offset","fetchDataSync","hasNext","get","entityId","Error","create","entity","created","map","set","update","delete","bulkDelete","entityIds","bulkInsert","entities","succeeded","failed","fieldActions","addField","addFields","newFields","editField","fieldId","updates","current","Reflect","deleteProperty","renameField","newName","displayName","makePrimary","loadSchema","source","defineSchemaSource"],"sources":["../../../src/testkit/createInMemorySchemaSource.ts"],"sourcesContent":["import {\n defineSchemaSource,\n type CreatableFieldType,\n type SchemaSource,\n} from '../types/SchemaSource';\nimport type {\n CollectionBackend,\n FieldActions,\n ItemPermissions,\n LoadedSchema,\n Schema,\n SchemaPermissions,\n} from '../types/Schema';\nimport type { Field } from '../types/Field';\nimport type { OffsetQuery } from '../hooks/paginationModeConfig';\nimport { InMemoryBackend } from '../InMemoryBackend';\n\nconst ALL_PERMISSIONS: SchemaPermissions = {\n createField: true,\n updateField: true,\n deleteField: true,\n};\n\n// The types the add/edit modal offers by default (the ones @wix/data can create).\nconst DEFAULT_CREATABLE_FIELD_TYPES: CreatableFieldType[] = [\n { patternsType: 'SHORT_TEXT' },\n { patternsType: 'NUMBER' },\n { patternsType: 'BOOLEAN' },\n { patternsType: 'DATE' },\n];\n\nexport interface InMemorySchemaSource<T> {\n /** The `SchemaSource<T>` to pass anywhere a schema source is accepted. */\n source: SchemaSource<T>;\n /** The in-memory backend holding the rows — read or mutate them directly. */\n backend: InMemoryBackend<T>;\n}\n\nexport interface InMemorySchemaSourceConfig<T> {\n collectionId: string;\n /** The collection's fields (keyed internally by `field.id`). */\n fields: Field[];\n /** Seed rows the backend serves via `find`/`get`. */\n items?: T[];\n /** Defaults to the first field's id, else `idField`. */\n displayField?: string;\n /** Defaults to `_id`. */\n idField?: string;\n /** Defaults to all-true (add/edit/delete allowed). */\n schemaPermissions?: SchemaPermissions;\n itemPermissions?: ItemPermissions;\n /** Types the add-field modal offers. Defaults to text/number/boolean/date. */\n creatableFieldTypes?: CreatableFieldType[];\n supportsPii?: boolean;\n}\n\n/**\n * Builds a real `SchemaSource<T>` backed by in-memory state — no data source (no\n * `@wix/data`, no network). Its `collectionConfig.fetchData` serves the seeded\n * `items`, and its `fieldActions` mutate the in-memory schema and return the\n * updated fields map, so the create-new-field import flow works end to end (the\n * created column surfaces via the schema-source merge).\n *\n * Returns `{ source, backend }`. Pass `source` anywhere a `SchemaSource` is\n * accepted — `<Table fieldsSource={...} />`, `useSchemaImport(...)`, or\n * `...collectionConfig` into the collection hook. Use `backend` to read or\n * assert on the in-memory rows directly.\n */\nexport function createInMemorySchemaSource<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(config: InMemorySchemaSourceConfig<T>): InMemorySchemaSource<T> {\n const {\n collectionId,\n idField = '_id',\n displayField = config.fields[0]?.id ?? idField,\n schemaPermissions = ALL_PERMISSIONS,\n itemPermissions,\n creatableFieldTypes = DEFAULT_CREATABLE_FIELD_TYPES,\n supportsPii = false,\n } = config;\n\n // Mutable in-memory state shared by the backend, schema, and field actions.\n const fields: Schema['fields'] = {};\n config.fields.forEach((field) => {\n fields[field.id] = field;\n });\n\n const schema: Schema = {\n id: collectionId,\n fields,\n displayField,\n idField,\n schemaPermissions,\n ...(itemPermissions && { itemPermissions }),\n };\n\n const keyOf = (item: T): string =>\n String((item as Record<string, unknown>)[idField] ?? '');\n // A fresh copy each mutation, so the schema-source merge sees a new map.\n const fieldsSnapshot = (): Schema['fields'] => ({ ...fields });\n\n // The shared `InMemoryBackend` holds the rows and runs the query logic\n // (ordering, filtering, pagination). The `collectionBackend` below adapts it\n // to the source-neutral contract. Mutations write straight to `backend.map`\n // and reads use the synchronous surface, so operations resolve without the\n // util's simulated async delay (which relies on timers the test suite freezes).\n const seed = config.items ?? [];\n const backend = new InMemoryBackend<T>({\n paginationMode: 'offset',\n total: seed.length,\n createOne: (index) => seed[index],\n itemKey: keyOf,\n });\n\n const collectionBackend: CollectionBackend<T> = {\n paginationMode: 'offset',\n find: async (query: OffsetQuery) => {\n const offset = query.offset ?? 0;\n const { items, total = 0 } = backend.fetchDataSync(query);\n return { items, total, hasNext: offset + items.length < total };\n },\n get: async (entityId) => {\n const item = backend.get(entityId);\n if (!item) {\n throw new Error(`Item \"${entityId}\" not found`);\n }\n return item;\n },\n create: async (entity) => {\n const created = { ...entity } as T;\n backend.map.set(keyOf(created), created);\n return created;\n },\n update: async (entity) => {\n backend.map.set(keyOf(entity), entity);\n return entity;\n },\n delete: async (entityId) => {\n backend.map.delete(entityId);\n },\n bulkDelete: async (entityIds) => {\n entityIds.forEach((entityId) => backend.map.delete(entityId));\n },\n bulkInsert: async (entities) => {\n entities.forEach((entity) => {\n const created = { ...entity } as T;\n backend.map.set(keyOf(created), created);\n });\n return { succeeded: entities.length, failed: 0 };\n },\n };\n\n const fieldActions: FieldActions = {\n addField: async (field) => {\n fields[field.id] = field;\n return fieldsSnapshot();\n },\n addFields: async (newFields) => {\n newFields.forEach((field) => {\n fields[field.id] = field;\n });\n return fieldsSnapshot();\n },\n editField: async (fieldId, updates) => {\n const current = fields[fieldId];\n if (current) {\n fields[fieldId] = { ...current, ...updates } as Field;\n }\n return fieldsSnapshot();\n },\n deleteField: async (fieldId) => {\n Reflect.deleteProperty(fields, fieldId);\n return fieldsSnapshot();\n },\n renameField: async (fieldId, newName) => {\n const current = fields[fieldId];\n if (current) {\n fields[fieldId] = { ...current, displayName: newName } as Field;\n }\n },\n makePrimary: async (fieldId) => {\n schema.displayField = fieldId;\n return fieldsSnapshot();\n },\n };\n\n const loadSchema = async (): Promise<LoadedSchema<T>> => ({\n schema,\n backend: collectionBackend,\n fieldActions,\n });\n\n const source = defineSchemaSource<T>({\n collectionId,\n loadSchema,\n creatableFieldTypes,\n supportsPii,\n });\n\n return { source, backend };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_SchemaSource","require","_InMemoryBackend","ALL_PERMISSIONS","createField","updateField","deleteField","DEFAULT_CREATABLE_FIELD_TYPES","patternsType","createInMemorySchemaSource","config","_config$fields$","collectionId","idField","displayField","fields","id","schemaPermissions","itemPermissions","creatableFieldTypes","fieldTypes","supportsPii","references","forEach","field","schema","keyOf","item","String","fieldsSnapshot","seed","items","backend","InMemoryBackend","paginationMode","total","length","createOne","index","itemKey","collectionBackend","find","query","offset","fetchDataSync","hasNext","get","entityId","Error","create","entity","created","map","set","update","delete","bulkDelete","entityIds","bulkInsert","entities","succeeded","failed","fieldActions","addField","addFields","newFields","editField","fieldId","updates","current","Reflect","deleteProperty","renameField","newName","displayName","makePrimary","loadSchema","source","defineSchemaSource"],"sources":["../../../src/testkit/createInMemorySchemaSource.ts"],"sourcesContent":["import {\n defineSchemaSource,\n type CreatableFieldType,\n type SchemaSource,\n} from '../types/SchemaSource';\nimport type {\n CollectionBackend,\n FieldActions,\n ItemPermissions,\n LoadedSchema,\n Schema,\n SchemaPermissions,\n} from '../types/Schema';\nimport type { Field } from '../types/Field';\nimport type { FieldTypeDefinition } from '../types/FieldTypeDefinition';\nimport type { OffsetQuery } from '../hooks/paginationModeConfig';\nimport { InMemoryBackend } from '../InMemoryBackend';\n\nconst ALL_PERMISSIONS: SchemaPermissions = {\n createField: true,\n updateField: true,\n deleteField: true,\n};\n\n// The types the add/edit modal offers by default (the ones @wix/data can create).\nconst DEFAULT_CREATABLE_FIELD_TYPES: CreatableFieldType[] = [\n { patternsType: 'SHORT_TEXT' },\n { patternsType: 'NUMBER' },\n { patternsType: 'BOOLEAN' },\n { patternsType: 'DATE' },\n];\n\nexport interface InMemorySchemaSource<T> {\n /** The source to pass anywhere a schema source is accepted. */\n source: SchemaSource<T>;\n /** The in-memory backend holding the rows — read or mutate them directly. */\n backend: InMemoryBackend<T>;\n}\n\nexport interface InMemorySchemaSourceConfig<T> {\n collectionId: string;\n /** The collection's fields (keyed internally by `field.id`). */\n fields: Field[];\n /** Seed rows the backend serves via `find`/`get`. */\n items?: T[];\n /** Defaults to the first field's id, else `idField`. */\n displayField?: string;\n /** Defaults to `_id`. */\n idField?: string;\n /** Defaults to all-true (add/edit/delete allowed). */\n schemaPermissions?: SchemaPermissions;\n itemPermissions?: ItemPermissions;\n /** Types the add-field modal offers. Defaults to text/number/boolean/date. */\n creatableFieldTypes?: CreatableFieldType[];\n /** Consumer-defined field types, resolved by fields with `type: 'CUSTOM'`. */\n fieldTypes?: FieldTypeDefinition[];\n supportsPii?: boolean;\n /** Sources for referenced collections, keyed by referenced collection id. */\n references?: Record<string, SchemaSource<any>>;\n}\n\n/**\n * Builds a real `SchemaSource<T>` backed by in-memory state — no data source (no\n * `@wix/data`, no network). Its backend `find` serves the seeded `items`, and\n * its `fieldActions` mutate the in-memory schema and return the updated fields\n * map, so the create-new-field import flow works end to end (the created column\n * surfaces via the schema-source merge).\n *\n * Returns `{ source, backend }`. Pass `source` anywhere a `SchemaSource` is\n * accepted — a `@wix/patterns/schema` collection hook, or `<Table\n * fieldsSource={...} />` (which the import reads from). Use `backend` to read or\n * assert on the in-memory rows directly.\n */\nexport function createInMemorySchemaSource<\n T extends Record<string, unknown> = Record<string, unknown>,\n>(config: InMemorySchemaSourceConfig<T>): InMemorySchemaSource<T> {\n const {\n collectionId,\n idField = '_id',\n displayField = config.fields[0]?.id ?? idField,\n schemaPermissions = ALL_PERMISSIONS,\n itemPermissions,\n creatableFieldTypes = DEFAULT_CREATABLE_FIELD_TYPES,\n fieldTypes,\n supportsPii = false,\n references,\n } = config;\n\n // Mutable in-memory state shared by the backend, schema, and field actions.\n const fields: Schema['fields'] = {};\n config.fields.forEach((field) => {\n fields[field.id] = field;\n });\n\n const schema: Schema = {\n id: collectionId,\n fields,\n displayField,\n idField,\n schemaPermissions,\n ...(itemPermissions && { itemPermissions }),\n };\n\n const keyOf = (item: T): string =>\n String((item as Record<string, unknown>)[idField] ?? '');\n // A fresh copy each mutation, so the schema-source merge sees a new map.\n const fieldsSnapshot = (): Schema['fields'] => ({ ...fields });\n\n // The shared `InMemoryBackend` holds the rows and runs the query logic\n // (ordering, filtering, pagination). The `collectionBackend` below adapts it\n // to the source-neutral contract. Mutations write straight to `backend.map`\n // and reads use the synchronous surface, so operations resolve without the\n // util's simulated async delay (which relies on timers the test suite freezes).\n const seed = config.items ?? [];\n const backend = new InMemoryBackend<T>({\n paginationMode: 'offset',\n total: seed.length,\n createOne: (index) => seed[index],\n itemKey: keyOf,\n });\n\n const collectionBackend: CollectionBackend<T> = {\n paginationMode: 'offset',\n find: async (query: OffsetQuery) => {\n const offset = query.offset ?? 0;\n const { items, total = 0 } = backend.fetchDataSync(query);\n return { items, total, hasNext: offset + items.length < total };\n },\n get: async (entityId) => {\n const item = backend.get(entityId);\n if (!item) {\n throw new Error(`Item \"${entityId}\" not found`);\n }\n return item;\n },\n create: async (entity) => {\n const created = { ...entity } as T;\n backend.map.set(keyOf(created), created);\n return created;\n },\n update: async (entity) => {\n backend.map.set(keyOf(entity), entity);\n return entity;\n },\n delete: async (entityId) => {\n backend.map.delete(entityId);\n },\n bulkDelete: async (entityIds) => {\n entityIds.forEach((entityId) => backend.map.delete(entityId));\n },\n bulkInsert: async (entities) => {\n entities.forEach((entity) => {\n const created = { ...entity } as T;\n backend.map.set(keyOf(created), created);\n });\n return { succeeded: entities.length, failed: 0 };\n },\n };\n\n const fieldActions: FieldActions = {\n addField: async (field) => {\n fields[field.id] = field;\n return fieldsSnapshot();\n },\n addFields: async (newFields) => {\n newFields.forEach((field) => {\n fields[field.id] = field;\n });\n return fieldsSnapshot();\n },\n editField: async (fieldId, updates) => {\n const current = fields[fieldId];\n if (current) {\n fields[fieldId] = { ...current, ...updates } as Field;\n }\n return fieldsSnapshot();\n },\n deleteField: async (fieldId) => {\n Reflect.deleteProperty(fields, fieldId);\n return fieldsSnapshot();\n },\n renameField: async (fieldId, newName) => {\n const current = fields[fieldId];\n if (current) {\n fields[fieldId] = { ...current, displayName: newName } as Field;\n }\n },\n makePrimary: async (fieldId) => {\n schema.displayField = fieldId;\n return fieldsSnapshot();\n },\n };\n\n const loadSchema = async (): Promise<LoadedSchema<T>> => ({\n schema,\n backend: collectionBackend,\n fieldActions,\n });\n\n const source = defineSchemaSource<T>({\n collectionId,\n loadSchema,\n creatableFieldTypes,\n fieldTypes,\n supportsPii,\n ...(references && { references }),\n });\n\n return { source, backend };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -24,6 +24,12 @@ function hubJobImportMocks(whenRequest, when) {
24
24
  created: 0,
25
25
  /** existing items updated (subset of `succeeded`), for the summary step */
26
26
  updated: 0,
27
+ /**
28
+ * When true, the terminal job omits `itemsSuccessfulInfo` entirely — the
29
+ * created/updated breakdown some jobs (and older servers) don't report, in
30
+ * which case only the total `itemsSuccessful` is available.
31
+ */
32
+ noBreakdown: false,
27
33
  /** number of IN_PROGRESS polls before the job goes terminal */
28
34
  inProgressPolls: 0,
29
35
  /** csvRows indices reported as failed via movement logs */
@@ -46,10 +52,12 @@ function hubJobImportMocks(whenRequest, when) {
46
52
  total: total(),
47
53
  itemsSuccessful: state.succeeded,
48
54
  itemsRejected: state.failed,
49
- itemsSuccessfulInfo: {
50
- itemsCreated: state.created,
51
- itemsUpdated: state.updated
52
- }
55
+ ...(!state.noBreakdown && {
56
+ itemsSuccessfulInfo: {
57
+ itemsCreated: state.created,
58
+ itemsUpdated: state.updated
59
+ }
60
+ })
53
61
  },
54
62
  ...(state.outcome === 'failed' && {
55
63
  error: {
@@ -71,6 +79,7 @@ function hubJobImportMocks(whenRequest, when) {
71
79
  state.failed = counts.failed ?? 0;
72
80
  state.updated = counts.updated ?? 0;
73
81
  state.created = counts.created ?? state.succeeded - state.updated;
82
+ state.noBreakdown = counts.noBreakdown ?? false;
74
83
  },
75
84
  /** Make the job report IN_PROGRESS for `n` polls before going terminal. */
76
85
  setInProgressPolls(n) {
@@ -111,6 +120,7 @@ function hubJobImportMocks(whenRequest, when) {
111
120
  state.failed = 0;
112
121
  state.created = 0;
113
122
  state.updated = 0;
123
+ state.noBreakdown = false;
114
124
  state.inProgressPolls = 0;
115
125
  state.failedRowIndices = [];
116
126
  state.uploadedBody = undefined;
@@ -1 +1 @@
1
- {"version":3,"names":["_http","require","_types","UPLOAD_BASE","UPLOAD_PATH","FILE_ID","JOB_ID","hubJobImportMocks","whenRequest","when","state","outcome","succeeded","failed","created","updated","inProgressPolls","failedRowIndices","uploadedBody","undefined","submittedRequest","submittedJobId","terminatedJobIds","pollCounts","Map","terminalStatus","JobStatus","FAILED","PARTIALLY_SUCCESSFUL","COMPLETED","total","terminalJob","id","status","progress","current","itemsSuccessful","itemsRejected","itemsSuccessfulInfo","itemsCreated","itemsUpdated","error","code","description","setOutcome","counts","setInProgressPolls","n","setFailedRowIndices","indices","getUploadedCsv","body","blob","text","arrayBuffer","TextDecoder","decode","Promise","resolve","reject","reader","FileReader","onload","String","result","onerror","readAsText","reset","clear","mocks","createFileUploadUrl","reply","uploadUrl","fileId","persist","put","data","submitJob","payload","set","job","INITIALIZING","getJob","seen","get","jobId","IN_PROGRESS","terminateJob","push","listMovementLogs","logs","map","index","sourceItemId","failure","pagingMetadata","hasNext"],"sources":["../../../src/testkit/hubJobImportMocks.ts"],"sourcesContent":["import {\n createFileUploadUrl,\n submitJob,\n getJob,\n terminateJob,\n listMovementLogs,\n} from '@wix/bex-utils/@wix/ambassador-hub-v1-job/http';\nimport {\n JobStatus,\n type DataMovementJob,\n type SubmitJobRequest,\n} from '@wix/bex-utils/@wix/ambassador-hub-v1-job/types';\n\nconst UPLOAD_BASE = 'https://import-upload.test';\nconst UPLOAD_PATH = '/file';\nconst FILE_ID = 'file-1';\nconst JOB_ID = 'job-1';\n\nexport type ImportJobOutcome = 'completed' | 'partial' | 'failed';\n\n/**\n * Test mocks for the data-hub Hub Job import lifecycle, mirroring\n * `exportServiceMocks`. Auto-included in the test container's httpClient\n * scenarios so every import test drives a fake server. Behavior is controllable\n * per test via `setOutcome` / `setInProgressPolls`, and the uploaded (aligned)\n * CSV + the submitted job request are captured for assertions.\n */\nexport function hubJobImportMocks(\n whenRequest: typeof import('@wix/http-client-testkit/client').whenRequest,\n when: typeof import('@wix/http-client-testkit/client').when,\n) {\n const state = {\n outcome: 'completed' as ImportJobOutcome,\n succeeded: 0,\n failed: 0,\n /** new items created (subset of `succeeded`), for the summary step */\n created: 0,\n /** existing items updated (subset of `succeeded`), for the summary step */\n updated: 0,\n /** number of IN_PROGRESS polls before the job goes terminal */\n inProgressPolls: 0,\n /** csvRows indices reported as failed via movement logs */\n failedRowIndices: [] as number[],\n /** the raw body PUT to the signed upload URL (the aligned CSV File) */\n uploadedBody: undefined as unknown,\n /** the SubmitJobRequest payload */\n submittedRequest: undefined as SubmitJobRequest | undefined,\n submittedJobId: undefined as string | undefined,\n terminatedJobIds: [] as string[],\n };\n\n const pollCounts = new Map<string, number>();\n\n const terminalStatus = (): JobStatus =>\n state.outcome === 'failed'\n ? JobStatus.FAILED\n : state.outcome === 'partial'\n ? JobStatus.PARTIALLY_SUCCESSFUL\n : JobStatus.COMPLETED;\n\n const total = () => state.succeeded + state.failed;\n\n const terminalJob = (id: string): DataMovementJob => ({\n id,\n status: terminalStatus(),\n progress: {\n current: total(),\n total: total(),\n itemsSuccessful: state.succeeded,\n itemsRejected: state.failed,\n itemsSuccessfulInfo: {\n itemsCreated: state.created,\n itemsUpdated: state.updated,\n },\n },\n ...(state.outcome === 'failed' && {\n error: { code: 'import_failed', description: 'Import job failed' },\n }),\n });\n\n return {\n state,\n\n /**\n * Set the job's terminal outcome and its counts. `created`/`updated` are the\n * split of `succeeded` reported to the summary step; when omitted they\n * default so `created` covers all successes (older jobs report neither).\n */\n setOutcome(\n outcome: ImportJobOutcome,\n counts: {\n succeeded?: number;\n failed?: number;\n created?: number;\n updated?: number;\n } = {},\n ) {\n state.outcome = outcome;\n state.succeeded = counts.succeeded ?? 0;\n state.failed = counts.failed ?? 0;\n state.updated = counts.updated ?? 0;\n state.created = counts.created ?? state.succeeded - state.updated;\n },\n\n /** Make the job report IN_PROGRESS for `n` polls before going terminal. */\n setInProgressPolls(n: number) {\n state.inProgressPolls = n;\n },\n\n /** Row indices `listMovementLogs` reports as failed (sourceItemId). */\n setFailedRowIndices(indices: number[]) {\n state.failedRowIndices = indices;\n },\n\n /** The aligned CSV uploaded to the signed URL, as text. */\n async getUploadedCsv(): Promise<string> {\n const body = state.uploadedBody;\n if (body == null) {\n return '';\n }\n if (typeof body === 'string') {\n return body;\n }\n const blob = body as Blob;\n // jsdom's File implements neither text() nor arrayBuffer() here, so fall\n // back to FileReader.\n if (typeof blob.text === 'function') {\n return blob.text();\n }\n if (typeof blob.arrayBuffer === 'function') {\n return new TextDecoder().decode(await blob.arrayBuffer());\n }\n return new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => resolve(String(reader.result));\n reader.onerror = () => reject(reader.error);\n reader.readAsText(blob);\n });\n },\n\n reset() {\n state.outcome = 'completed';\n state.succeeded = 0;\n state.failed = 0;\n state.created = 0;\n state.updated = 0;\n state.inProgressPolls = 0;\n state.failedRowIndices = [];\n state.uploadedBody = undefined;\n state.submittedRequest = undefined;\n state.submittedJobId = undefined;\n state.terminatedJobIds = [];\n pollCounts.clear();\n },\n\n mocks: [\n whenRequest(createFileUploadUrl)\n .reply(200, {\n uploadUrl: `${UPLOAD_BASE}${UPLOAD_PATH}`,\n fileId: FILE_ID,\n })\n .persist(),\n\n when(UPLOAD_BASE)\n .put(UPLOAD_PATH)\n .reply(200, (data: unknown) => {\n state.uploadedBody = data;\n return {};\n })\n .persist(),\n\n whenRequest(submitJob)\n .reply(200, (payload: SubmitJobRequest) => {\n state.submittedRequest = payload;\n state.submittedJobId = JOB_ID;\n pollCounts.set(JOB_ID, 0);\n return {\n job: {\n id: JOB_ID,\n status: JobStatus.INITIALIZING,\n progress: { current: 0, total: total() },\n },\n };\n })\n .persist(),\n\n whenRequest(getJob)\n .reply(200, (payload: { jobId: string }) => {\n const seen = pollCounts.get(payload.jobId) ?? 0;\n pollCounts.set(payload.jobId, seen + 1);\n\n if (seen < state.inProgressPolls) {\n // No `total` here so ImportState keeps its initial CSV-row total;\n // `current` is 0-based so the first poll reports nothing processed.\n return {\n job: {\n id: payload.jobId,\n status: JobStatus.IN_PROGRESS,\n progress: {\n current: seen,\n itemsSuccessful: seen,\n itemsRejected: 0,\n },\n },\n };\n }\n\n return { job: terminalJob(payload.jobId) };\n })\n .persist(),\n\n whenRequest(terminateJob)\n .reply(200, (payload: { jobId: string }) => {\n state.terminatedJobIds.push(payload.jobId);\n return {};\n })\n .persist(),\n\n whenRequest(listMovementLogs)\n .reply(200, () => ({\n // data-hub formats a CSV item's sourceItemId as \"row N\", where N is\n // the 1-based file line (header is line 1) — so csvRows[i] is \"row i+2\".\n logs: state.failedRowIndices.map((index) => ({\n sourceItemId: `row ${index + 2}`,\n failure: { code: 'row_failed', description: 'Invalid row' },\n })),\n pagingMetadata: { hasNext: false },\n }))\n .persist(),\n ] as import('@wix/http-client-testkit').AnyScenario[],\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_http","require","_types","UPLOAD_BASE","UPLOAD_PATH","FILE_ID","JOB_ID","hubJobImportMocks","whenRequest","when","state","outcome","succeeded","failed","created","updated","noBreakdown","inProgressPolls","failedRowIndices","uploadedBody","undefined","submittedRequest","submittedJobId","terminatedJobIds","pollCounts","Map","terminalStatus","JobStatus","FAILED","PARTIALLY_SUCCESSFUL","COMPLETED","total","terminalJob","id","status","progress","current","itemsSuccessful","itemsRejected","itemsSuccessfulInfo","itemsCreated","itemsUpdated","error","code","description","setOutcome","counts","setInProgressPolls","n","setFailedRowIndices","indices","getUploadedCsv","body","blob","text","arrayBuffer","TextDecoder","decode","Promise","resolve","reject","reader","FileReader","onload","String","result","onerror","readAsText","reset","clear","mocks","createFileUploadUrl","reply","uploadUrl","fileId","persist","put","data","submitJob","payload","set","job","INITIALIZING","getJob","seen","get","jobId","IN_PROGRESS","terminateJob","push","listMovementLogs","logs","map","index","sourceItemId","failure","pagingMetadata","hasNext"],"sources":["../../../src/testkit/hubJobImportMocks.ts"],"sourcesContent":["import {\n createFileUploadUrl,\n submitJob,\n getJob,\n terminateJob,\n listMovementLogs,\n} from '@wix/bex-utils/@wix/ambassador-hub-v1-job/http';\nimport {\n JobStatus,\n type DataMovementJob,\n type SubmitJobRequest,\n} from '@wix/bex-utils/@wix/ambassador-hub-v1-job/types';\n\nconst UPLOAD_BASE = 'https://import-upload.test';\nconst UPLOAD_PATH = '/file';\nconst FILE_ID = 'file-1';\nconst JOB_ID = 'job-1';\n\nexport type ImportJobOutcome = 'completed' | 'partial' | 'failed';\n\n/**\n * Test mocks for the data-hub Hub Job import lifecycle, mirroring\n * `exportServiceMocks`. Auto-included in the test container's httpClient\n * scenarios so every import test drives a fake server. Behavior is controllable\n * per test via `setOutcome` / `setInProgressPolls`, and the uploaded (aligned)\n * CSV + the submitted job request are captured for assertions.\n */\nexport function hubJobImportMocks(\n whenRequest: typeof import('@wix/http-client-testkit/client').whenRequest,\n when: typeof import('@wix/http-client-testkit/client').when,\n) {\n const state = {\n outcome: 'completed' as ImportJobOutcome,\n succeeded: 0,\n failed: 0,\n /** new items created (subset of `succeeded`), for the summary step */\n created: 0,\n /** existing items updated (subset of `succeeded`), for the summary step */\n updated: 0,\n /**\n * When true, the terminal job omits `itemsSuccessfulInfo` entirely — the\n * created/updated breakdown some jobs (and older servers) don't report, in\n * which case only the total `itemsSuccessful` is available.\n */\n noBreakdown: false,\n /** number of IN_PROGRESS polls before the job goes terminal */\n inProgressPolls: 0,\n /** csvRows indices reported as failed via movement logs */\n failedRowIndices: [] as number[],\n /** the raw body PUT to the signed upload URL (the aligned CSV File) */\n uploadedBody: undefined as unknown,\n /** the SubmitJobRequest payload */\n submittedRequest: undefined as SubmitJobRequest | undefined,\n submittedJobId: undefined as string | undefined,\n terminatedJobIds: [] as string[],\n };\n\n const pollCounts = new Map<string, number>();\n\n const terminalStatus = (): JobStatus =>\n state.outcome === 'failed'\n ? JobStatus.FAILED\n : state.outcome === 'partial'\n ? JobStatus.PARTIALLY_SUCCESSFUL\n : JobStatus.COMPLETED;\n\n const total = () => state.succeeded + state.failed;\n\n const terminalJob = (id: string): DataMovementJob => ({\n id,\n status: terminalStatus(),\n progress: {\n current: total(),\n total: total(),\n itemsSuccessful: state.succeeded,\n itemsRejected: state.failed,\n ...(!state.noBreakdown && {\n itemsSuccessfulInfo: {\n itemsCreated: state.created,\n itemsUpdated: state.updated,\n },\n }),\n },\n ...(state.outcome === 'failed' && {\n error: { code: 'import_failed', description: 'Import job failed' },\n }),\n });\n\n return {\n state,\n\n /**\n * Set the job's terminal outcome and its counts. `created`/`updated` are the\n * split of `succeeded` reported to the summary step; when omitted they\n * default so `created` covers all successes (older jobs report neither).\n */\n setOutcome(\n outcome: ImportJobOutcome,\n counts: {\n succeeded?: number;\n failed?: number;\n created?: number;\n updated?: number;\n /** Omit the created/updated breakdown from the job (see `noBreakdown`). */\n noBreakdown?: boolean;\n } = {},\n ) {\n state.outcome = outcome;\n state.succeeded = counts.succeeded ?? 0;\n state.failed = counts.failed ?? 0;\n state.updated = counts.updated ?? 0;\n state.created = counts.created ?? state.succeeded - state.updated;\n state.noBreakdown = counts.noBreakdown ?? false;\n },\n\n /** Make the job report IN_PROGRESS for `n` polls before going terminal. */\n setInProgressPolls(n: number) {\n state.inProgressPolls = n;\n },\n\n /** Row indices `listMovementLogs` reports as failed (sourceItemId). */\n setFailedRowIndices(indices: number[]) {\n state.failedRowIndices = indices;\n },\n\n /** The aligned CSV uploaded to the signed URL, as text. */\n async getUploadedCsv(): Promise<string> {\n const body = state.uploadedBody;\n if (body == null) {\n return '';\n }\n if (typeof body === 'string') {\n return body;\n }\n const blob = body as Blob;\n // jsdom's File implements neither text() nor arrayBuffer() here, so fall\n // back to FileReader.\n if (typeof blob.text === 'function') {\n return blob.text();\n }\n if (typeof blob.arrayBuffer === 'function') {\n return new TextDecoder().decode(await blob.arrayBuffer());\n }\n return new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => resolve(String(reader.result));\n reader.onerror = () => reject(reader.error);\n reader.readAsText(blob);\n });\n },\n\n reset() {\n state.outcome = 'completed';\n state.succeeded = 0;\n state.failed = 0;\n state.created = 0;\n state.updated = 0;\n state.noBreakdown = false;\n state.inProgressPolls = 0;\n state.failedRowIndices = [];\n state.uploadedBody = undefined;\n state.submittedRequest = undefined;\n state.submittedJobId = undefined;\n state.terminatedJobIds = [];\n pollCounts.clear();\n },\n\n mocks: [\n whenRequest(createFileUploadUrl)\n .reply(200, {\n uploadUrl: `${UPLOAD_BASE}${UPLOAD_PATH}`,\n fileId: FILE_ID,\n })\n .persist(),\n\n when(UPLOAD_BASE)\n .put(UPLOAD_PATH)\n .reply(200, (data: unknown) => {\n state.uploadedBody = data;\n return {};\n })\n .persist(),\n\n whenRequest(submitJob)\n .reply(200, (payload: SubmitJobRequest) => {\n state.submittedRequest = payload;\n state.submittedJobId = JOB_ID;\n pollCounts.set(JOB_ID, 0);\n return {\n job: {\n id: JOB_ID,\n status: JobStatus.INITIALIZING,\n progress: { current: 0, total: total() },\n },\n };\n })\n .persist(),\n\n whenRequest(getJob)\n .reply(200, (payload: { jobId: string }) => {\n const seen = pollCounts.get(payload.jobId) ?? 0;\n pollCounts.set(payload.jobId, seen + 1);\n\n if (seen < state.inProgressPolls) {\n // No `total` here so ImportState keeps its initial CSV-row total;\n // `current` is 0-based so the first poll reports nothing processed.\n return {\n job: {\n id: payload.jobId,\n status: JobStatus.IN_PROGRESS,\n progress: {\n current: seen,\n itemsSuccessful: seen,\n itemsRejected: 0,\n },\n },\n };\n }\n\n return { job: terminalJob(payload.jobId) };\n })\n .persist(),\n\n whenRequest(terminateJob)\n .reply(200, (payload: { jobId: string }) => {\n state.terminatedJobIds.push(payload.jobId);\n return {};\n })\n .persist(),\n\n whenRequest(listMovementLogs)\n .reply(200, () => ({\n // data-hub formats a CSV item's sourceItemId as \"row N\", where N is\n // the 1-based file line (header is line 1) — so csvRows[i] is \"row i+2\".\n logs: state.failedRowIndices.map((index) => ({\n sourceItemId: `row ${index + 2}`,\n failure: { code: 'row_failed', description: 'Invalid row' },\n })),\n pagingMetadata: { hasNext: false },\n }))\n .persist(),\n ] as import('@wix/http-client-testkit').AnyScenario[],\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/types/Field.ts"],"sourcesContent":["export type PatternsFieldType =\n | 'SHORT_TEXT'\n | 'LONG_TEXT'\n | 'NUMBER'\n | 'BOOLEAN'\n | 'DATE'\n | 'DATETIME'\n | 'TIME'\n | 'URL'\n | 'ARRAY'\n | 'REFERENCE'\n | 'MULTI_REFERENCE'\n | 'OBJECT'\n | 'IMAGE'\n | 'VIDEO'\n | 'MEDIA_GALLERY'\n | 'ADDRESS'\n | 'RICH_TEXT'\n | 'DOCUMENT'\n | 'RICH_CONTENT'\n | 'MULTI_DOCUMENT'\n | 'EMAIL'\n | 'AUDIO'\n | 'COLOR'\n | 'UNKNOWN';\n\nexport type QueryOperator =\n | 'CONTAINS'\n | 'ENDS_WITH'\n | 'EQ'\n | 'EXISTS'\n | 'GT'\n | 'GTE'\n | 'HAS_ALL'\n | 'HAS_SOME'\n | 'LT'\n | 'LTE'\n | 'NE'\n | 'STARTS_WITH'\n | 'URLIZED';\n\nexport interface NumberRange {\n min?: number;\n max?: number;\n}\n\nexport interface StringLengthRange {\n minLength?: number;\n maxLength?: number;\n}\n\ninterface BaseField {\n id: string;\n displayName: string;\n isPii?: boolean;\n helpText?: string;\n /** Whether this is a system-managed field (not user-created). */\n isSystem?: boolean;\n /** Whether this is the collection's primary display field. */\n isPrimary?: boolean;\n validation?: {\n numberRange?: NumberRange;\n stringLengthRange?: StringLengthRange;\n required: boolean;\n };\n capabilities?: {\n supportedQueryOperators: QueryOperator[];\n sortable: boolean;\n };\n}\n\nexport interface BaseReferenceField extends BaseField {\n referenceMetadata: {\n referencedCollectionId: string;\n };\n}\n\nexport interface ReferenceField extends BaseReferenceField {\n type: 'REFERENCE';\n}\n\nexport interface MultiReferenceField extends BaseReferenceField {\n type: 'MULTI_REFERENCE';\n}\n\nexport interface NonReferenceField extends BaseField {\n type: Exclude<PatternsFieldType, 'REFERENCE' | 'MULTI_REFERENCE'>;\n}\n\nexport type Field = ReferenceField | MultiReferenceField | NonReferenceField;\nexport type FieldSpec = Omit<Field, 'id'>;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["../../../src/types/Field.ts"],"sourcesContent":["export type PatternsFieldType =\n | 'SHORT_TEXT'\n | 'LONG_TEXT'\n | 'NUMBER'\n | 'BOOLEAN'\n | 'DATE'\n | 'DATETIME'\n | 'TIME'\n | 'URL'\n | 'ARRAY'\n | 'REFERENCE'\n | 'MULTI_REFERENCE'\n | 'OBJECT'\n | 'IMAGE'\n | 'VIDEO'\n | 'MEDIA_GALLERY'\n | 'ADDRESS'\n | 'RICH_TEXT'\n | 'DOCUMENT'\n | 'RICH_CONTENT'\n | 'MULTI_DOCUMENT'\n | 'EMAIL'\n | 'AUDIO'\n | 'COLOR'\n | 'CUSTOM'\n | 'UNKNOWN';\n\nexport type QueryOperator =\n | 'CONTAINS'\n | 'ENDS_WITH'\n | 'EQ'\n | 'EXISTS'\n | 'GT'\n | 'GTE'\n | 'HAS_ALL'\n | 'HAS_SOME'\n | 'LT'\n | 'LTE'\n | 'NE'\n | 'STARTS_WITH'\n | 'URLIZED';\n\nexport interface NumberRange {\n min?: number;\n max?: number;\n}\n\nexport interface StringLengthRange {\n minLength?: number;\n maxLength?: number;\n}\n\ninterface BaseField {\n id: string;\n displayName: string;\n isPii?: boolean;\n helpText?: string;\n /** Whether this is a system-managed field (not user-created). */\n isSystem?: boolean;\n /** The group this field belongs to, when the source groups its fields.\n * Absent ⇒ ungrouped. */\n group?: string;\n /** Whether this is the collection's primary display field. */\n isPrimary?: boolean;\n validation?: {\n numberRange?: NumberRange;\n stringLengthRange?: StringLengthRange;\n required: boolean;\n };\n capabilities?: {\n supportedQueryOperators: QueryOperator[];\n sortable: boolean;\n };\n}\n\nexport interface BaseReferenceField extends BaseField {\n referenceMetadata: {\n referencedCollectionId: string;\n };\n}\n\nexport interface ReferenceField extends BaseReferenceField {\n type: 'REFERENCE';\n}\n\nexport interface MultiReferenceField extends BaseReferenceField {\n type: 'MULTI_REFERENCE';\n}\n\nexport interface NonReferenceField extends BaseField {\n type: Exclude<PatternsFieldType, 'REFERENCE' | 'MULTI_REFERENCE'>;\n /** Present iff `type` is 'CUSTOM'; keys a field type definition registered on the source. */\n customType?: string;\n}\n\nexport type Field = ReferenceField | MultiReferenceField | NonReferenceField;\nexport type FieldSpec = Omit<Field, 'id'>;\n"],"mappings":"","ignoreList":[]}