@frictionless-ts/metadata 1.0.1

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 (312) hide show
  1. package/README.md +3 -0
  2. package/build/assets/dialect-1.0.json +58 -0
  3. package/build/assets/dialect-2.0.json +98 -0
  4. package/build/assets/package-1.0.json +1517 -0
  5. package/build/assets/package-2.0.json +2168 -0
  6. package/build/assets/resource-1.0.json +1353 -0
  7. package/build/assets/resource-2.0.json +1987 -0
  8. package/build/assets/schema-1.0.json +1126 -0
  9. package/build/assets/schema-2.0.json +1715 -0
  10. package/build/descriptor/Descriptor.d.ts +2 -0
  11. package/build/descriptor/Descriptor.js +4 -0
  12. package/build/descriptor/index.d.ts +6 -0
  13. package/build/descriptor/index.js +6 -0
  14. package/build/descriptor/load.d.ts +8 -0
  15. package/build/descriptor/load.js +36 -0
  16. package/build/descriptor/load.spec.d.ts +1 -0
  17. package/build/descriptor/load.spec.js +44 -0
  18. package/build/descriptor/process/parse.d.ts +2 -0
  19. package/build/descriptor/process/parse.js +8 -0
  20. package/build/descriptor/process/stringify.d.ts +2 -0
  21. package/build/descriptor/process/stringify.js +4 -0
  22. package/build/descriptor/save.d.ts +9 -0
  23. package/build/descriptor/save.js +19 -0
  24. package/build/descriptor/save.spec.d.ts +1 -0
  25. package/build/descriptor/save.spec.js +99 -0
  26. package/build/dialect/Dialect.d.ts +89 -0
  27. package/build/dialect/Dialect.js +2 -0
  28. package/build/dialect/assert.d.ts +6 -0
  29. package/build/dialect/assert.js +12 -0
  30. package/build/dialect/assert.spec.d.ts +1 -0
  31. package/build/dialect/assert.spec.js +22 -0
  32. package/build/dialect/convert/fromDescriptor.d.ts +2 -0
  33. package/build/dialect/convert/fromDescriptor.js +20 -0
  34. package/build/dialect/convert/toDescriptor.d.ts +3 -0
  35. package/build/dialect/convert/toDescriptor.js +5 -0
  36. package/build/dialect/index.d.ts +8 -0
  37. package/build/dialect/index.js +8 -0
  38. package/build/dialect/load.d.ts +5 -0
  39. package/build/dialect/load.js +12 -0
  40. package/build/dialect/load.spec.d.ts +1 -0
  41. package/build/dialect/load.spec.js +18 -0
  42. package/build/dialect/resolve.d.ts +2 -0
  43. package/build/dialect/resolve.js +11 -0
  44. package/build/dialect/save.d.ts +9 -0
  45. package/build/dialect/save.js +16 -0
  46. package/build/dialect/save.spec.d.ts +1 -0
  47. package/build/dialect/save.spec.js +52 -0
  48. package/build/dialect/validate.d.ts +10 -0
  49. package/build/dialect/validate.js +25 -0
  50. package/build/dialect/validate.spec.d.ts +1 -0
  51. package/build/dialect/validate.spec.js +28 -0
  52. package/build/error/Bound.d.ts +4 -0
  53. package/build/error/Bound.js +2 -0
  54. package/build/error/Error.d.ts +3 -0
  55. package/build/error/Error.js +2 -0
  56. package/build/error/Unbound.d.ts +6 -0
  57. package/build/error/Unbound.js +2 -0
  58. package/build/error/index.d.ts +16 -0
  59. package/build/error/index.js +2 -0
  60. package/build/error/types/Base.d.ts +3 -0
  61. package/build/error/types/Base.js +2 -0
  62. package/build/error/types/Bytes.d.ts +6 -0
  63. package/build/error/types/Bytes.js +2 -0
  64. package/build/error/types/Cell.d.ts +56 -0
  65. package/build/error/types/Cell.js +2 -0
  66. package/build/error/types/Data.d.ts +5 -0
  67. package/build/error/types/Data.js +2 -0
  68. package/build/error/types/Document.d.ts +7 -0
  69. package/build/error/types/Document.js +2 -0
  70. package/build/error/types/Encoding.d.ts +6 -0
  71. package/build/error/types/Encoding.js +2 -0
  72. package/build/error/types/Field.d.ts +15 -0
  73. package/build/error/types/Field.js +2 -0
  74. package/build/error/types/Fields.d.ts +11 -0
  75. package/build/error/types/Fields.js +2 -0
  76. package/build/error/types/File.d.ts +4 -0
  77. package/build/error/types/File.js +2 -0
  78. package/build/error/types/ForeignKey.d.ts +7 -0
  79. package/build/error/types/ForeignKey.js +2 -0
  80. package/build/error/types/Hash.d.ts +6 -0
  81. package/build/error/types/Hash.js +2 -0
  82. package/build/error/types/Metadata.d.ts +9 -0
  83. package/build/error/types/Metadata.js +2 -0
  84. package/build/error/types/Row.d.ts +9 -0
  85. package/build/error/types/Row.js +2 -0
  86. package/build/error/types/Table.d.ts +6 -0
  87. package/build/error/types/Table.js +2 -0
  88. package/build/field/Field.d.ts +5 -0
  89. package/build/field/Field.js +2 -0
  90. package/build/field/Type.d.ts +2 -0
  91. package/build/field/Type.js +2 -0
  92. package/build/field/convert/fromDescriptor.d.ts +2 -0
  93. package/build/field/convert/fromDescriptor.js +61 -0
  94. package/build/field/convert/fromDescriptor.spec.d.ts +1 -0
  95. package/build/field/convert/fromDescriptor.spec.js +241 -0
  96. package/build/field/convert/toDescriptor.d.ts +3 -0
  97. package/build/field/convert/toDescriptor.js +5 -0
  98. package/build/field/convert/toDescriptor.spec.d.ts +1 -0
  99. package/build/field/convert/toDescriptor.spec.js +291 -0
  100. package/build/field/index.d.ts +5 -0
  101. package/build/field/index.js +3 -0
  102. package/build/field/types/Any.d.ts +20 -0
  103. package/build/field/types/Any.js +2 -0
  104. package/build/field/types/Array.d.ts +32 -0
  105. package/build/field/types/Array.js +2 -0
  106. package/build/field/types/Base.d.ts +60 -0
  107. package/build/field/types/Base.js +2 -0
  108. package/build/field/types/Boolean.d.ts +28 -0
  109. package/build/field/types/Boolean.js +2 -0
  110. package/build/field/types/Date.d.ts +43 -0
  111. package/build/field/types/Date.js +2 -0
  112. package/build/field/types/Datetime.d.ts +43 -0
  113. package/build/field/types/Datetime.js +2 -0
  114. package/build/field/types/Duration.d.ts +28 -0
  115. package/build/field/types/Duration.js +2 -0
  116. package/build/field/types/Geojson.d.ts +30 -0
  117. package/build/field/types/Geojson.js +2 -0
  118. package/build/field/types/Geopoint.d.ts +27 -0
  119. package/build/field/types/Geopoint.js +2 -0
  120. package/build/field/types/Integer.d.ts +57 -0
  121. package/build/field/types/Integer.js +2 -0
  122. package/build/field/types/List.d.ts +36 -0
  123. package/build/field/types/List.js +2 -0
  124. package/build/field/types/Number.d.ts +48 -0
  125. package/build/field/types/Number.js +2 -0
  126. package/build/field/types/Object.d.ts +32 -0
  127. package/build/field/types/Object.js +2 -0
  128. package/build/field/types/String.d.ts +51 -0
  129. package/build/field/types/String.js +2 -0
  130. package/build/field/types/Time.d.ts +43 -0
  131. package/build/field/types/Time.js +2 -0
  132. package/build/field/types/Year.d.ts +36 -0
  133. package/build/field/types/Year.js +2 -0
  134. package/build/field/types/Yearmonth.d.ts +36 -0
  135. package/build/field/types/Yearmonth.js +2 -0
  136. package/build/field/types/index.d.ts +16 -0
  137. package/build/field/types/index.js +17 -0
  138. package/build/index.d.ts +112 -0
  139. package/build/index.js +32 -0
  140. package/build/json/Schema.d.ts +2 -0
  141. package/build/json/Schema.js +2 -0
  142. package/build/json/Value.d.ts +1 -0
  143. package/build/json/Value.js +2 -0
  144. package/build/json/ajv.d.ts +2 -0
  145. package/build/json/ajv.js +10 -0
  146. package/build/json/assert.d.ts +2 -0
  147. package/build/json/assert.js +10 -0
  148. package/build/json/cache.d.ts +2 -0
  149. package/build/json/cache.js +5 -0
  150. package/build/json/index.d.ts +5 -0
  151. package/build/json/index.js +4 -0
  152. package/build/json/inspect/schema.d.ts +4 -0
  153. package/build/json/inspect/schema.js +10 -0
  154. package/build/json/inspect/schema.spec.d.ts +1 -0
  155. package/build/json/inspect/schema.spec.js +132 -0
  156. package/build/json/inspect/value.d.ts +11 -0
  157. package/build/json/inspect/value.js +21 -0
  158. package/build/json/inspect/value.spec.d.ts +1 -0
  159. package/build/json/inspect/value.spec.js +121 -0
  160. package/build/json/load.d.ts +3 -0
  161. package/build/json/load.js +13 -0
  162. package/build/json/resolve.d.ts +2 -0
  163. package/build/json/resolve.js +11 -0
  164. package/build/metadata/Metadata.d.ts +3 -0
  165. package/build/metadata/Metadata.js +2 -0
  166. package/build/metadata/index.d.ts +1 -0
  167. package/build/metadata/index.js +2 -0
  168. package/build/package/Contributor.d.ts +21 -0
  169. package/build/package/Contributor.js +2 -0
  170. package/build/package/Package.d.ts +64 -0
  171. package/build/package/Package.js +2 -0
  172. package/build/package/assert.d.ts +8 -0
  173. package/build/package/assert.js +12 -0
  174. package/build/package/assert.spec.d.ts +1 -0
  175. package/build/package/assert.spec.js +26 -0
  176. package/build/package/convert/fromDescriptor.d.ts +4 -0
  177. package/build/package/convert/fromDescriptor.js +36 -0
  178. package/build/package/convert/toDescriptor.d.ts +5 -0
  179. package/build/package/convert/toDescriptor.js +7 -0
  180. package/build/package/index.d.ts +8 -0
  181. package/build/package/index.js +7 -0
  182. package/build/package/load.d.ts +5 -0
  183. package/build/package/load.js +14 -0
  184. package/build/package/load.spec.d.ts +1 -0
  185. package/build/package/load.spec.js +28 -0
  186. package/build/package/save.d.ts +9 -0
  187. package/build/package/save.js +18 -0
  188. package/build/package/save.spec.d.ts +1 -0
  189. package/build/package/save.spec.js +311 -0
  190. package/build/package/validate.d.ts +12 -0
  191. package/build/package/validate.js +27 -0
  192. package/build/package/validate.spec.d.ts +1 -0
  193. package/build/package/validate.spec.js +41 -0
  194. package/build/path/basepath.d.ts +2 -0
  195. package/build/path/basepath.js +25 -0
  196. package/build/path/basepath.spec.d.ts +1 -0
  197. package/build/path/basepath.spec.js +55 -0
  198. package/build/path/denormalize.d.ts +3 -0
  199. package/build/path/denormalize.js +29 -0
  200. package/build/path/denormalize.spec.d.ts +1 -0
  201. package/build/path/denormalize.spec.js +45 -0
  202. package/build/path/index.d.ts +5 -0
  203. package/build/path/index.js +6 -0
  204. package/build/path/normalize.d.ts +6 -0
  205. package/build/path/normalize.js +54 -0
  206. package/build/path/normalize.spec.d.ts +1 -0
  207. package/build/path/normalize.spec.js +71 -0
  208. package/build/path/path.d.ts +5 -0
  209. package/build/path/path.js +48 -0
  210. package/build/path/path.spec.d.ts +1 -0
  211. package/build/path/path.spec.js +111 -0
  212. package/build/platform/index.d.ts +1 -0
  213. package/build/platform/index.js +2 -0
  214. package/build/platform/node.d.ts +130 -0
  215. package/build/platform/node.js +10 -0
  216. package/build/platform/node.spec.d.ts +1 -0
  217. package/build/platform/node.spec.js +16 -0
  218. package/build/profile/@minify.d.ts +1 -0
  219. package/build/profile/@minify.js +58 -0
  220. package/build/profile/Profile.d.ts +9 -0
  221. package/build/profile/Profile.js +2 -0
  222. package/build/profile/assert.d.ts +6 -0
  223. package/build/profile/assert.js +36 -0
  224. package/build/profile/assert.spec.d.ts +1 -0
  225. package/build/profile/assert.spec.js +115 -0
  226. package/build/profile/index.d.ts +2 -0
  227. package/build/profile/index.js +2 -0
  228. package/build/profile/load.d.ts +4 -0
  229. package/build/profile/load.js +12 -0
  230. package/build/profile/registry.d.ts +2 -0
  231. package/build/profile/registry.js +83 -0
  232. package/build/profile/resolve.d.ts +2 -0
  233. package/build/profile/resolve.js +8 -0
  234. package/build/profile/validate.d.ts +9 -0
  235. package/build/profile/validate.js +12 -0
  236. package/build/report/Report.d.ts +5 -0
  237. package/build/report/Report.js +2 -0
  238. package/build/report/create.d.ts +7 -0
  239. package/build/report/create.js +6 -0
  240. package/build/report/index.d.ts +2 -0
  241. package/build/report/index.js +2 -0
  242. package/build/resource/License.d.ts +18 -0
  243. package/build/resource/License.js +2 -0
  244. package/build/resource/Resource.d.ts +93 -0
  245. package/build/resource/Resource.js +2 -0
  246. package/build/resource/Source.d.ts +17 -0
  247. package/build/resource/Source.js +2 -0
  248. package/build/resource/assert.d.ts +8 -0
  249. package/build/resource/assert.js +12 -0
  250. package/build/resource/assert.spec.d.ts +1 -0
  251. package/build/resource/assert.spec.js +23 -0
  252. package/build/resource/convert/fromDescriptor.d.ts +4 -0
  253. package/build/resource/convert/fromDescriptor.js +69 -0
  254. package/build/resource/convert/toDescriptor.d.ts +5 -0
  255. package/build/resource/convert/toDescriptor.js +36 -0
  256. package/build/resource/helpers.d.ts +2 -0
  257. package/build/resource/helpers.js +6 -0
  258. package/build/resource/index.d.ts +11 -0
  259. package/build/resource/index.js +9 -0
  260. package/build/resource/infer.d.ts +3 -0
  261. package/build/resource/infer.js +35 -0
  262. package/build/resource/infer.spec.d.ts +1 -0
  263. package/build/resource/infer.spec.js +103 -0
  264. package/build/resource/load.d.ts +5 -0
  265. package/build/resource/load.js +14 -0
  266. package/build/resource/load.spec.d.ts +1 -0
  267. package/build/resource/load.spec.js +22 -0
  268. package/build/resource/save.d.ts +9 -0
  269. package/build/resource/save.js +18 -0
  270. package/build/resource/save.spec.d.ts +1 -0
  271. package/build/resource/save.spec.js +170 -0
  272. package/build/resource/validate.d.ts +13 -0
  273. package/build/resource/validate.js +57 -0
  274. package/build/resource/validate.spec.d.ts +1 -0
  275. package/build/resource/validate.spec.js +30 -0
  276. package/build/schema/ForeignKey.d.ts +23 -0
  277. package/build/schema/ForeignKey.js +2 -0
  278. package/build/schema/Schema.d.ts +56 -0
  279. package/build/schema/Schema.js +2 -0
  280. package/build/schema/assert.d.ts +6 -0
  281. package/build/schema/assert.js +12 -0
  282. package/build/schema/assert.spec.d.ts +1 -0
  283. package/build/schema/assert.spec.js +34 -0
  284. package/build/schema/convert/fromDescriptor.d.ts +2 -0
  285. package/build/schema/convert/fromDescriptor.js +70 -0
  286. package/build/schema/convert/fromJsonSchema.d.ts +3 -0
  287. package/build/schema/convert/fromJsonSchema.js +105 -0
  288. package/build/schema/convert/fromJsonSchema.spec.d.ts +1 -0
  289. package/build/schema/convert/fromJsonSchema.spec.js +156 -0
  290. package/build/schema/convert/toDescriptor.d.ts +3 -0
  291. package/build/schema/convert/toDescriptor.js +5 -0
  292. package/build/schema/convert/toJsonSchema.d.ts +3 -0
  293. package/build/schema/convert/toJsonSchema.js +173 -0
  294. package/build/schema/convert/toJsonSchema.spec.d.ts +1 -0
  295. package/build/schema/convert/toJsonSchema.spec.js +403 -0
  296. package/build/schema/index.d.ts +11 -0
  297. package/build/schema/index.js +10 -0
  298. package/build/schema/load.d.ts +5 -0
  299. package/build/schema/load.js +12 -0
  300. package/build/schema/load.spec.d.ts +1 -0
  301. package/build/schema/load.spec.js +55 -0
  302. package/build/schema/resolve.d.ts +2 -0
  303. package/build/schema/resolve.js +11 -0
  304. package/build/schema/save.d.ts +9 -0
  305. package/build/schema/save.js +16 -0
  306. package/build/schema/save.spec.d.ts +1 -0
  307. package/build/schema/save.spec.js +58 -0
  308. package/build/schema/validate.d.ts +10 -0
  309. package/build/schema/validate.js +25 -0
  310. package/build/schema/validate.spec.d.ts +1 -0
  311. package/build/schema/validate.spec.js +41 -0
  312. package/package.json +37 -0
@@ -0,0 +1,16 @@
1
+ import { saveDescriptor } from "../descriptor/index.js";
2
+ import { convertDialectToDescriptor } from "./convert/toDescriptor.js";
3
+ const CURRENT_PROFILE = "https://datapackage.org/profiles/2.0/tabledialect.json";
4
+ /**
5
+ * Save a Dialect to a file path
6
+ * Works in Node.js environments
7
+ */
8
+ export async function saveDialect(dialect, options) {
9
+ const descriptor = convertDialectToDescriptor(dialect);
10
+ descriptor.$schema = descriptor.$schema ?? CURRENT_PROFILE;
11
+ await saveDescriptor(descriptor, {
12
+ path: options.path,
13
+ overwrite: options.overwrite,
14
+ });
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2RpYWxlY3Qvc2F2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFFdkQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFFdEUsTUFBTSxlQUFlLEdBQUcsd0RBQXdELENBQUE7QUFFaEY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBQy9CLE9BQWdCLEVBQ2hCLE9BR0M7SUFFRCxNQUFNLFVBQVUsR0FBRywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN0RCxVQUFVLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLElBQUksZUFBZSxDQUFBO0lBRTFELE1BQU0sY0FBYyxDQUFDLFVBQVUsRUFBRTtRQUMvQixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7UUFDbEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO0tBQzdCLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzYXZlRGVzY3JpcHRvciB9IGZyb20gXCIuLi9kZXNjcmlwdG9yL2luZGV4LnRzXCJcbmltcG9ydCB0eXBlIHsgRGlhbGVjdCB9IGZyb20gXCIuL0RpYWxlY3QudHNcIlxuaW1wb3J0IHsgY29udmVydERpYWxlY3RUb0Rlc2NyaXB0b3IgfSBmcm9tIFwiLi9jb252ZXJ0L3RvRGVzY3JpcHRvci50c1wiXG5cbmNvbnN0IENVUlJFTlRfUFJPRklMRSA9IFwiaHR0cHM6Ly9kYXRhcGFja2FnZS5vcmcvcHJvZmlsZXMvMi4wL3RhYmxlZGlhbGVjdC5qc29uXCJcblxuLyoqXG4gKiBTYXZlIGEgRGlhbGVjdCB0byBhIGZpbGUgcGF0aFxuICogV29ya3MgaW4gTm9kZS5qcyBlbnZpcm9ubWVudHNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNhdmVEaWFsZWN0KFxuICBkaWFsZWN0OiBEaWFsZWN0LFxuICBvcHRpb25zOiB7XG4gICAgcGF0aDogc3RyaW5nXG4gICAgb3ZlcndyaXRlPzogYm9vbGVhblxuICB9LFxuKSB7XG4gIGNvbnN0IGRlc2NyaXB0b3IgPSBjb252ZXJ0RGlhbGVjdFRvRGVzY3JpcHRvcihkaWFsZWN0KVxuICBkZXNjcmlwdG9yLiRzY2hlbWEgPSBkZXNjcmlwdG9yLiRzY2hlbWEgPz8gQ1VSUkVOVF9QUk9GSUxFXG5cbiAgYXdhaXQgc2F2ZURlc2NyaXB0b3IoZGVzY3JpcHRvciwge1xuICAgIHBhdGg6IG9wdGlvbnMucGF0aCxcbiAgICBvdmVyd3JpdGU6IG9wdGlvbnMub3ZlcndyaXRlLFxuICB9KVxufVxuIl19
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,52 @@
1
+ import * as fs from "node:fs/promises";
2
+ import * as path from "node:path";
3
+ import { temporaryDirectory } from "tempy";
4
+ import { afterEach, beforeEach, describe, expect, it } from "vitest";
5
+ import { saveDialect } from "./save.js";
6
+ describe("saveDialect", () => {
7
+ const testDialect = {
8
+ delimiter: ";",
9
+ header: true,
10
+ quoteChar: '"',
11
+ doubleQuote: true,
12
+ };
13
+ let testDir;
14
+ let testPath;
15
+ beforeEach(() => {
16
+ testDir = temporaryDirectory();
17
+ testPath = path.join(testDir, "dialect.json");
18
+ });
19
+ afterEach(async () => {
20
+ try {
21
+ await fs.rm(testDir, { recursive: true, force: true });
22
+ }
23
+ catch (error) {
24
+ if (error instanceof Error && !error.message.includes("ENOENT")) {
25
+ console.error(`Failed to clean up test directory: ${testDir}`, error);
26
+ }
27
+ }
28
+ });
29
+ it("should save a dialect to a file and maintain its structure", async () => {
30
+ await saveDialect(testDialect, { path: testPath });
31
+ const fileExists = await fs
32
+ .stat(testPath)
33
+ .then(() => true)
34
+ .catch(() => false);
35
+ expect(fileExists).toBe(true);
36
+ const content = await fs.readFile(testPath, "utf-8");
37
+ const parsedContent = JSON.parse(content);
38
+ // Remove $schema property for test comparison
39
+ const { $schema, ...dialectWithoutSchema } = parsedContent;
40
+ expect(dialectWithoutSchema).toEqual(testDialect);
41
+ expect($schema).toBe("https://datapackage.org/profiles/2.0/tabledialect.json");
42
+ // Create expected format with $schema for comparison
43
+ const expectedWithSchema = {
44
+ ...testDialect,
45
+ $schema: "https://datapackage.org/profiles/2.0/tabledialect.json",
46
+ };
47
+ // Verify the pretty formatting
48
+ const expectedFormat = JSON.stringify(expectedWithSchema, null, 2);
49
+ expect(content).toEqual(expectedFormat);
50
+ });
51
+ });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vZGlhbGVjdC9zYXZlLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN0QyxPQUFPLEtBQUssSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFFcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUV2QyxRQUFRLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRTtJQUMzQixNQUFNLFdBQVcsR0FBWTtRQUMzQixTQUFTLEVBQUUsR0FBRztRQUNkLE1BQU0sRUFBRSxJQUFJO1FBQ1osU0FBUyxFQUFFLEdBQUc7UUFDZCxXQUFXLEVBQUUsSUFBSTtLQUNsQixDQUFBO0lBRUQsSUFBSSxPQUFlLENBQUE7SUFDbkIsSUFBSSxRQUFnQixDQUFBO0lBRXBCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxPQUFPLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQTtRQUM5QixRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFDL0MsQ0FBQyxDQUFDLENBQUE7SUFFRixTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbkIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFDeEQsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLEtBQUssWUFBWSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUNoRSxPQUFPLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxPQUFPLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUN2RSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLDREQUE0RCxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzFFLE1BQU0sV0FBVyxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBRWxELE1BQU0sVUFBVSxHQUFHLE1BQU0sRUFBRTthQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ2QsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzthQUNoQixLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDckIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUU3QixNQUFNLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQ3BELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFekMsOENBQThDO1FBQzlDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxvQkFBb0IsRUFBRSxHQUFHLGFBQWEsQ0FBQTtRQUMxRCxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDakQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDbEIsd0RBQXdELENBQ3pELENBQUE7UUFFRCxxREFBcUQ7UUFDckQsTUFBTSxrQkFBa0IsR0FBRztZQUN6QixHQUFHLFdBQVc7WUFDZCxPQUFPLEVBQUUsd0RBQXdEO1NBQ2xFLENBQUE7UUFDRCwrQkFBK0I7UUFDL0IsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDbEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUN6QyxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIlxuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCJcbmltcG9ydCB7IHRlbXBvcmFyeURpcmVjdG9yeSB9IGZyb20gXCJ0ZW1weVwiXG5pbXBvcnQgeyBhZnRlckVhY2gsIGJlZm9yZUVhY2gsIGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSBcInZpdGVzdFwiXG5pbXBvcnQgdHlwZSB7IERpYWxlY3QgfSBmcm9tIFwiLi9EaWFsZWN0LnRzXCJcbmltcG9ydCB7IHNhdmVEaWFsZWN0IH0gZnJvbSBcIi4vc2F2ZS50c1wiXG5cbmRlc2NyaWJlKFwic2F2ZURpYWxlY3RcIiwgKCkgPT4ge1xuICBjb25zdCB0ZXN0RGlhbGVjdDogRGlhbGVjdCA9IHtcbiAgICBkZWxpbWl0ZXI6IFwiO1wiLFxuICAgIGhlYWRlcjogdHJ1ZSxcbiAgICBxdW90ZUNoYXI6ICdcIicsXG4gICAgZG91YmxlUXVvdGU6IHRydWUsXG4gIH1cblxuICBsZXQgdGVzdERpcjogc3RyaW5nXG4gIGxldCB0ZXN0UGF0aDogc3RyaW5nXG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgdGVzdERpciA9IHRlbXBvcmFyeURpcmVjdG9yeSgpXG4gICAgdGVzdFBhdGggPSBwYXRoLmpvaW4odGVzdERpciwgXCJkaWFsZWN0Lmpzb25cIilcbiAgfSlcblxuICBhZnRlckVhY2goYXN5bmMgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmcy5ybSh0ZXN0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSlcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgIWVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoXCJFTk9FTlRcIikpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGNsZWFuIHVwIHRlc3QgZGlyZWN0b3J5OiAke3Rlc3REaXJ9YCwgZXJyb3IpXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIGl0KFwic2hvdWxkIHNhdmUgYSBkaWFsZWN0IHRvIGEgZmlsZSBhbmQgbWFpbnRhaW4gaXRzIHN0cnVjdHVyZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgc2F2ZURpYWxlY3QodGVzdERpYWxlY3QsIHsgcGF0aDogdGVzdFBhdGggfSlcblxuICAgIGNvbnN0IGZpbGVFeGlzdHMgPSBhd2FpdCBmc1xuICAgICAgLnN0YXQodGVzdFBhdGgpXG4gICAgICAudGhlbigoKSA9PiB0cnVlKVxuICAgICAgLmNhdGNoKCgpID0+IGZhbHNlKVxuICAgIGV4cGVjdChmaWxlRXhpc3RzKS50b0JlKHRydWUpXG5cbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgZnMucmVhZEZpbGUodGVzdFBhdGgsIFwidXRmLThcIilcbiAgICBjb25zdCBwYXJzZWRDb250ZW50ID0gSlNPTi5wYXJzZShjb250ZW50KVxuXG4gICAgLy8gUmVtb3ZlICRzY2hlbWEgcHJvcGVydHkgZm9yIHRlc3QgY29tcGFyaXNvblxuICAgIGNvbnN0IHsgJHNjaGVtYSwgLi4uZGlhbGVjdFdpdGhvdXRTY2hlbWEgfSA9IHBhcnNlZENvbnRlbnRcbiAgICBleHBlY3QoZGlhbGVjdFdpdGhvdXRTY2hlbWEpLnRvRXF1YWwodGVzdERpYWxlY3QpXG4gICAgZXhwZWN0KCRzY2hlbWEpLnRvQmUoXG4gICAgICBcImh0dHBzOi8vZGF0YXBhY2thZ2Uub3JnL3Byb2ZpbGVzLzIuMC90YWJsZWRpYWxlY3QuanNvblwiLFxuICAgIClcblxuICAgIC8vIENyZWF0ZSBleHBlY3RlZCBmb3JtYXQgd2l0aCAkc2NoZW1hIGZvciBjb21wYXJpc29uXG4gICAgY29uc3QgZXhwZWN0ZWRXaXRoU2NoZW1hID0ge1xuICAgICAgLi4udGVzdERpYWxlY3QsXG4gICAgICAkc2NoZW1hOiBcImh0dHBzOi8vZGF0YXBhY2thZ2Uub3JnL3Byb2ZpbGVzLzIuMC90YWJsZWRpYWxlY3QuanNvblwiLFxuICAgIH1cbiAgICAvLyBWZXJpZnkgdGhlIHByZXR0eSBmb3JtYXR0aW5nXG4gICAgY29uc3QgZXhwZWN0ZWRGb3JtYXQgPSBKU09OLnN0cmluZ2lmeShleHBlY3RlZFdpdGhTY2hlbWEsIG51bGwsIDIpXG4gICAgZXhwZWN0KGNvbnRlbnQpLnRvRXF1YWwoZXhwZWN0ZWRGb3JtYXQpXG4gIH0pXG59KVxuIl19
@@ -0,0 +1,10 @@
1
+ import type { Descriptor } from "../descriptor/index.ts";
2
+ import type { Dialect } from "./Dialect.ts";
3
+ /**
4
+ * Validate a Dialect descriptor (JSON Object) against its profile
5
+ */
6
+ export declare function validateDialect(source: Dialect | Descriptor | string): Promise<{
7
+ dialect: Dialect | undefined;
8
+ errors: import("../index.ts").MetadataError[];
9
+ valid: boolean;
10
+ }>;
@@ -0,0 +1,25 @@
1
+ import { loadDescriptor } from "../descriptor/index.js";
2
+ import { validateDescriptor } from "../profile/index.js";
3
+ import { convertDialectFromDescriptor } from "./convert/fromDescriptor.js";
4
+ const DEFAULT_PROFILE = "https://datapackage.org/profiles/1.0/tabledialect.json";
5
+ /**
6
+ * Validate a Dialect descriptor (JSON Object) against its profile
7
+ */
8
+ export async function validateDialect(source) {
9
+ const descriptor = typeof source === "string"
10
+ ? await loadDescriptor(source)
11
+ : source;
12
+ const profile = typeof descriptor.$schema === "string"
13
+ ? descriptor.$schema
14
+ : DEFAULT_PROFILE;
15
+ const report = await validateDescriptor(descriptor, {
16
+ profile,
17
+ });
18
+ let dialect = undefined;
19
+ if (report.valid) {
20
+ // Validation + normalization = we can cast it
21
+ dialect = convertDialectFromDescriptor(descriptor);
22
+ }
23
+ return { ...report, dialect };
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9kaWFsZWN0L3ZhbGlkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUV4RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUUxRSxNQUFNLGVBQWUsR0FBRyx3REFBd0QsQ0FBQTtBQUVoRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZUFBZSxDQUFDLE1BQXFDO0lBQ3pFLE1BQU0sVUFBVSxHQUNkLE9BQU8sTUFBTSxLQUFLLFFBQVE7UUFDeEIsQ0FBQyxDQUFDLE1BQU0sY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUM5QixDQUFDLENBQUUsTUFBcUIsQ0FBQTtJQUU1QixNQUFNLE9BQU8sR0FDWCxPQUFPLFVBQVUsQ0FBQyxPQUFPLEtBQUssUUFBUTtRQUNwQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU87UUFDcEIsQ0FBQyxDQUFDLGVBQWUsQ0FBQTtJQUVyQixNQUFNLE1BQU0sR0FBRyxNQUFNLGtCQUFrQixDQUFDLFVBQVUsRUFBRTtRQUNsRCxPQUFPO0tBQ1IsQ0FBQyxDQUFBO0lBRUYsSUFBSSxPQUFPLEdBQXdCLFNBQVMsQ0FBQTtJQUM1QyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQiw4Q0FBOEM7UUFDOUMsT0FBTyxHQUFHLDRCQUE0QixDQUFDLFVBQVUsQ0FBWSxDQUFBO0lBQy9ELENBQUM7SUFFRCxPQUFPLEVBQUUsR0FBRyxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUE7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGVzY3JpcHRvciB9IGZyb20gXCIuLi9kZXNjcmlwdG9yL2luZGV4LnRzXCJcbmltcG9ydCB7IGxvYWREZXNjcmlwdG9yIH0gZnJvbSBcIi4uL2Rlc2NyaXB0b3IvaW5kZXgudHNcIlxuaW1wb3J0IHsgdmFsaWRhdGVEZXNjcmlwdG9yIH0gZnJvbSBcIi4uL3Byb2ZpbGUvaW5kZXgudHNcIlxuaW1wb3J0IHR5cGUgeyBEaWFsZWN0IH0gZnJvbSBcIi4vRGlhbGVjdC50c1wiXG5pbXBvcnQgeyBjb252ZXJ0RGlhbGVjdEZyb21EZXNjcmlwdG9yIH0gZnJvbSBcIi4vY29udmVydC9mcm9tRGVzY3JpcHRvci50c1wiXG5cbmNvbnN0IERFRkFVTFRfUFJPRklMRSA9IFwiaHR0cHM6Ly9kYXRhcGFja2FnZS5vcmcvcHJvZmlsZXMvMS4wL3RhYmxlZGlhbGVjdC5qc29uXCJcblxuLyoqXG4gKiBWYWxpZGF0ZSBhIERpYWxlY3QgZGVzY3JpcHRvciAoSlNPTiBPYmplY3QpIGFnYWluc3QgaXRzIHByb2ZpbGVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlRGlhbGVjdChzb3VyY2U6IERpYWxlY3QgfCBEZXNjcmlwdG9yIHwgc3RyaW5nKSB7XG4gIGNvbnN0IGRlc2NyaXB0b3IgPVxuICAgIHR5cGVvZiBzb3VyY2UgPT09IFwic3RyaW5nXCJcbiAgICAgID8gYXdhaXQgbG9hZERlc2NyaXB0b3Ioc291cmNlKVxuICAgICAgOiAoc291cmNlIGFzIERlc2NyaXB0b3IpXG5cbiAgY29uc3QgcHJvZmlsZSA9XG4gICAgdHlwZW9mIGRlc2NyaXB0b3IuJHNjaGVtYSA9PT0gXCJzdHJpbmdcIlxuICAgICAgPyBkZXNjcmlwdG9yLiRzY2hlbWFcbiAgICAgIDogREVGQVVMVF9QUk9GSUxFXG5cbiAgY29uc3QgcmVwb3J0ID0gYXdhaXQgdmFsaWRhdGVEZXNjcmlwdG9yKGRlc2NyaXB0b3IsIHtcbiAgICBwcm9maWxlLFxuICB9KVxuXG4gIGxldCBkaWFsZWN0OiBEaWFsZWN0IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4gIGlmIChyZXBvcnQudmFsaWQpIHtcbiAgICAvLyBWYWxpZGF0aW9uICsgbm9ybWFsaXphdGlvbiA9IHdlIGNhbiBjYXN0IGl0XG4gICAgZGlhbGVjdCA9IGNvbnZlcnREaWFsZWN0RnJvbURlc2NyaXB0b3IoZGVzY3JpcHRvcikgYXMgRGlhbGVjdFxuICB9XG5cbiAgcmV0dXJuIHsgLi4ucmVwb3J0LCBkaWFsZWN0IH1cbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { validateDialect } from "./validate.js";
3
+ describe("validateDialect", () => {
4
+ it("returns valid report for valid dialect", async () => {
5
+ const descriptor = {
6
+ delimiter: ";",
7
+ };
8
+ const report = await validateDialect({
9
+ descriptor,
10
+ });
11
+ expect(report.valid).toBe(true);
12
+ expect(report.errors).toEqual([]);
13
+ });
14
+ it("returns validation errors for invalid dialect", async () => {
15
+ const invalidDialect = {
16
+ delimiter: 1, // Should be a string
17
+ };
18
+ const report = await validateDialect(invalidDialect);
19
+ expect(report.valid).toBe(false);
20
+ expect(report.errors.length).toBeGreaterThan(0);
21
+ const error = report.errors[0];
22
+ expect(error).toBeDefined();
23
+ if (error) {
24
+ expect(error.pointer).toBe("/delimiter");
25
+ }
26
+ });
27
+ });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2RpYWxlY3QvdmFsaWRhdGUuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUvQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO0lBQy9CLEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN0RCxNQUFNLFVBQVUsR0FBRztZQUNqQixTQUFTLEVBQUUsR0FBRztTQUNmLENBQUE7UUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLGVBQWUsQ0FBQztZQUNuQyxVQUFVO1NBQ1gsQ0FBQyxDQUFBO1FBRUYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDL0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDbkMsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsK0NBQStDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDN0QsTUFBTSxjQUFjLEdBQUc7WUFDckIsU0FBUyxFQUFFLENBQUMsRUFBRSxxQkFBcUI7U0FDcEMsQ0FBQTtRQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBRXBELE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUUvQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzlCLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUMzQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDMUMsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gXCJ2aXRlc3RcIlxuaW1wb3J0IHsgdmFsaWRhdGVEaWFsZWN0IH0gZnJvbSBcIi4vdmFsaWRhdGUudHNcIlxuXG5kZXNjcmliZShcInZhbGlkYXRlRGlhbGVjdFwiLCAoKSA9PiB7XG4gIGl0KFwicmV0dXJucyB2YWxpZCByZXBvcnQgZm9yIHZhbGlkIGRpYWxlY3RcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGRlc2NyaXB0b3IgPSB7XG4gICAgICBkZWxpbWl0ZXI6IFwiO1wiLFxuICAgIH1cblxuICAgIGNvbnN0IHJlcG9ydCA9IGF3YWl0IHZhbGlkYXRlRGlhbGVjdCh7XG4gICAgICBkZXNjcmlwdG9yLFxuICAgIH0pXG5cbiAgICBleHBlY3QocmVwb3J0LnZhbGlkKS50b0JlKHRydWUpXG4gICAgZXhwZWN0KHJlcG9ydC5lcnJvcnMpLnRvRXF1YWwoW10pXG4gIH0pXG5cbiAgaXQoXCJyZXR1cm5zIHZhbGlkYXRpb24gZXJyb3JzIGZvciBpbnZhbGlkIGRpYWxlY3RcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGludmFsaWREaWFsZWN0ID0ge1xuICAgICAgZGVsaW1pdGVyOiAxLCAvLyBTaG91bGQgYmUgYSBzdHJpbmdcbiAgICB9XG5cbiAgICBjb25zdCByZXBvcnQgPSBhd2FpdCB2YWxpZGF0ZURpYWxlY3QoaW52YWxpZERpYWxlY3QpXG5cbiAgICBleHBlY3QocmVwb3J0LnZhbGlkKS50b0JlKGZhbHNlKVxuICAgIGV4cGVjdChyZXBvcnQuZXJyb3JzLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKDApXG5cbiAgICBjb25zdCBlcnJvciA9IHJlcG9ydC5lcnJvcnNbMF1cbiAgICBleHBlY3QoZXJyb3IpLnRvQmVEZWZpbmVkKClcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIGV4cGVjdChlcnJvci5wb2ludGVyKS50b0JlKFwiL2RlbGltaXRlclwiKVxuICAgIH1cbiAgfSlcbn0pXG4iXX0=
@@ -0,0 +1,4 @@
1
+ import type { UnboundError } from "./Unbound.ts";
2
+ export type BoundError = UnboundError & {
3
+ resource: string;
4
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm91bmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9lcnJvci9Cb3VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVbmJvdW5kRXJyb3IgfSBmcm9tIFwiLi9VbmJvdW5kLnRzXCJcblxuZXhwb3J0IHR5cGUgQm91bmRFcnJvciA9IFVuYm91bmRFcnJvciAmIHsgcmVzb3VyY2U6IHN0cmluZyB9XG4iXX0=
@@ -0,0 +1,3 @@
1
+ import type { BoundError } from "./Bound.ts";
2
+ import type { UnboundError } from "./Unbound.ts";
3
+ export type FrictionlessError = BoundError | UnboundError;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9lcnJvci9FcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCb3VuZEVycm9yIH0gZnJvbSBcIi4vQm91bmQudHNcIlxuaW1wb3J0IHR5cGUgeyBVbmJvdW5kRXJyb3IgfSBmcm9tIFwiLi9VbmJvdW5kLnRzXCJcblxuZXhwb3J0IHR5cGUgRnJpY3Rpb25sZXNzRXJyb3IgPSBCb3VuZEVycm9yIHwgVW5ib3VuZEVycm9yXG4iXX0=
@@ -0,0 +1,6 @@
1
+ import type { DataError } from "./types/Data.ts";
2
+ import type { DocumentError } from "./types/Document.ts";
3
+ import type { FileError } from "./types/File.ts";
4
+ import type { MetadataError } from "./types/Metadata.ts";
5
+ import type { TableError } from "./types/Table.ts";
6
+ export type UnboundError = MetadataError | DataError | FileError | TableError | DocumentError;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVW5ib3VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2Vycm9yL1VuYm91bmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGF0YUVycm9yIH0gZnJvbSBcIi4vdHlwZXMvRGF0YS50c1wiXG5pbXBvcnQgdHlwZSB7IERvY3VtZW50RXJyb3IgfSBmcm9tIFwiLi90eXBlcy9Eb2N1bWVudC50c1wiXG5pbXBvcnQgdHlwZSB7IEZpbGVFcnJvciB9IGZyb20gXCIuL3R5cGVzL0ZpbGUudHNcIlxuaW1wb3J0IHR5cGUgeyBNZXRhZGF0YUVycm9yIH0gZnJvbSBcIi4vdHlwZXMvTWV0YWRhdGEudHNcIlxuaW1wb3J0IHR5cGUgeyBUYWJsZUVycm9yIH0gZnJvbSBcIi4vdHlwZXMvVGFibGUudHNcIlxuXG5leHBvcnQgdHlwZSBVbmJvdW5kRXJyb3IgPVxuICB8IE1ldGFkYXRhRXJyb3JcbiAgfCBEYXRhRXJyb3JcbiAgfCBGaWxlRXJyb3JcbiAgfCBUYWJsZUVycm9yXG4gIHwgRG9jdW1lbnRFcnJvclxuIl19
@@ -0,0 +1,16 @@
1
+ export type { FrictionlessError } from "./Error.ts";
2
+ export type { BoundError } from "./Bound.ts";
3
+ export type { UnboundError } from "./Unbound.ts";
4
+ export type * from "./types/Bytes.ts";
5
+ export type * from "./types/Cell.ts";
6
+ export type * from "./types/Data.ts";
7
+ export type * from "./types/Document.ts";
8
+ export type * from "./types/Encoding.ts";
9
+ export type * from "./types/Field.ts";
10
+ export type * from "./types/Fields.ts";
11
+ export type * from "./types/File.ts";
12
+ export type * from "./types/ForeignKey.ts";
13
+ export type * from "./types/Hash.ts";
14
+ export type * from "./types/Metadata.ts";
15
+ export type * from "./types/Row.ts";
16
+ export type * from "./types/Table.ts";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9lcnJvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgeyBGcmljdGlvbmxlc3NFcnJvciB9IGZyb20gXCIuL0Vycm9yLnRzXCJcbmV4cG9ydCB0eXBlIHsgQm91bmRFcnJvciB9IGZyb20gXCIuL0JvdW5kLnRzXCJcbmV4cG9ydCB0eXBlIHsgVW5ib3VuZEVycm9yIH0gZnJvbSBcIi4vVW5ib3VuZC50c1wiXG5cbmV4cG9ydCB0eXBlICogZnJvbSBcIi4vdHlwZXMvQnl0ZXMudHNcIlxuZXhwb3J0IHR5cGUgKiBmcm9tIFwiLi90eXBlcy9DZWxsLnRzXCJcbmV4cG9ydCB0eXBlICogZnJvbSBcIi4vdHlwZXMvRGF0YS50c1wiXG5leHBvcnQgdHlwZSAqIGZyb20gXCIuL3R5cGVzL0RvY3VtZW50LnRzXCJcbmV4cG9ydCB0eXBlICogZnJvbSBcIi4vdHlwZXMvRW5jb2RpbmcudHNcIlxuZXhwb3J0IHR5cGUgKiBmcm9tIFwiLi90eXBlcy9GaWVsZC50c1wiXG5leHBvcnQgdHlwZSAqIGZyb20gXCIuL3R5cGVzL0ZpZWxkcy50c1wiXG5leHBvcnQgdHlwZSAqIGZyb20gXCIuL3R5cGVzL0ZpbGUudHNcIlxuZXhwb3J0IHR5cGUgKiBmcm9tIFwiLi90eXBlcy9Gb3JlaWduS2V5LnRzXCJcbmV4cG9ydCB0eXBlICogZnJvbSBcIi4vdHlwZXMvSGFzaC50c1wiXG5leHBvcnQgdHlwZSAqIGZyb20gXCIuL3R5cGVzL01ldGFkYXRhLnRzXCJcbmV4cG9ydCB0eXBlICogZnJvbSBcIi4vdHlwZXMvUm93LnRzXCJcbmV4cG9ydCB0eXBlICogZnJvbSBcIi4vdHlwZXMvVGFibGUudHNcIlxuIl19
@@ -0,0 +1,3 @@
1
+ export interface BaseError {
2
+ type: string;
3
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Vycm9yL3R5cGVzL0Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQmFzZUVycm9yIHtcbiAgdHlwZTogc3RyaW5nXG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ import type { BaseError } from "./Base.ts";
2
+ export interface BytesError extends BaseError {
3
+ type: "file/bytes";
4
+ bytes: number;
5
+ actualBytes: number;
6
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnl0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9lcnJvci90eXBlcy9CeXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCYXNlRXJyb3IgfSBmcm9tIFwiLi9CYXNlLnRzXCJcblxuZXhwb3J0IGludGVyZmFjZSBCeXRlc0Vycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgdHlwZTogXCJmaWxlL2J5dGVzXCJcbiAgYnl0ZXM6IG51bWJlclxuICBhY3R1YWxCeXRlczogbnVtYmVyXG59XG4iXX0=
@@ -0,0 +1,56 @@
1
+ import type { FieldType } from "../../field/index.ts";
2
+ import type { BaseError } from "./Base.ts";
3
+ export type CellError = CellTypeError | CellRequiredError | CellMinimumError | CellMaximumError | CellExclusiveMinimumError | CellExclusiveMaximumError | CellMinLengthError | CellMaxLengthError | CellPatternError | CellUniqueError | CellEnumError | CellJsonSchemaError;
4
+ export interface BaseCellError extends BaseError {
5
+ fieldName: string;
6
+ rowNumber: number;
7
+ cell: string;
8
+ }
9
+ export interface CellTypeError extends BaseCellError {
10
+ type: "cell/type";
11
+ fieldType: FieldType;
12
+ fieldFormat?: string;
13
+ }
14
+ export interface CellRequiredError extends BaseCellError {
15
+ type: "cell/required";
16
+ }
17
+ export interface CellMinimumError extends BaseCellError {
18
+ type: "cell/minimum";
19
+ minimum: string;
20
+ }
21
+ export interface CellMaximumError extends BaseCellError {
22
+ type: "cell/maximum";
23
+ maximum: string;
24
+ }
25
+ export interface CellExclusiveMinimumError extends BaseCellError {
26
+ type: "cell/exclusiveMinimum";
27
+ minimum: string;
28
+ }
29
+ export interface CellExclusiveMaximumError extends BaseCellError {
30
+ type: "cell/exclusiveMaximum";
31
+ maximum: string;
32
+ }
33
+ export interface CellMinLengthError extends BaseCellError {
34
+ type: "cell/minLength";
35
+ minLength: number;
36
+ }
37
+ export interface CellMaxLengthError extends BaseCellError {
38
+ type: "cell/maxLength";
39
+ maxLength: number;
40
+ }
41
+ export interface CellPatternError extends BaseCellError {
42
+ type: "cell/pattern";
43
+ pattern: string;
44
+ }
45
+ export interface CellUniqueError extends BaseCellError {
46
+ type: "cell/unique";
47
+ }
48
+ export interface CellEnumError extends BaseCellError {
49
+ type: "cell/enum";
50
+ enum: string[];
51
+ }
52
+ export interface CellJsonSchemaError extends BaseCellError {
53
+ type: "cell/jsonSchema";
54
+ pointer: string;
55
+ message: string;
56
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2VsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Vycm9yL3R5cGVzL0NlbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmllbGRUeXBlIH0gZnJvbSBcIi4uLy4uL2ZpZWxkL2luZGV4LnRzXCJcbmltcG9ydCB0eXBlIHsgQmFzZUVycm9yIH0gZnJvbSBcIi4vQmFzZS50c1wiXG5cbmV4cG9ydCB0eXBlIENlbGxFcnJvciA9XG4gIHwgQ2VsbFR5cGVFcnJvclxuICB8IENlbGxSZXF1aXJlZEVycm9yXG4gIHwgQ2VsbE1pbmltdW1FcnJvclxuICB8IENlbGxNYXhpbXVtRXJyb3JcbiAgfCBDZWxsRXhjbHVzaXZlTWluaW11bUVycm9yXG4gIHwgQ2VsbEV4Y2x1c2l2ZU1heGltdW1FcnJvclxuICB8IENlbGxNaW5MZW5ndGhFcnJvclxuICB8IENlbGxNYXhMZW5ndGhFcnJvclxuICB8IENlbGxQYXR0ZXJuRXJyb3JcbiAgfCBDZWxsVW5pcXVlRXJyb3JcbiAgfCBDZWxsRW51bUVycm9yXG4gIHwgQ2VsbEpzb25TY2hlbWFFcnJvclxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VDZWxsRXJyb3IgZXh0ZW5kcyBCYXNlRXJyb3Ige1xuICBmaWVsZE5hbWU6IHN0cmluZ1xuICByb3dOdW1iZXI6IG51bWJlclxuICBjZWxsOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZWxsVHlwZUVycm9yIGV4dGVuZHMgQmFzZUNlbGxFcnJvciB7XG4gIHR5cGU6IFwiY2VsbC90eXBlXCJcbiAgZmllbGRUeXBlOiBGaWVsZFR5cGVcbiAgZmllbGRGb3JtYXQ/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZWxsUmVxdWlyZWRFcnJvciBleHRlbmRzIEJhc2VDZWxsRXJyb3Ige1xuICB0eXBlOiBcImNlbGwvcmVxdWlyZWRcIlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENlbGxNaW5pbXVtRXJyb3IgZXh0ZW5kcyBCYXNlQ2VsbEVycm9yIHtcbiAgdHlwZTogXCJjZWxsL21pbmltdW1cIlxuICBtaW5pbXVtOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZWxsTWF4aW11bUVycm9yIGV4dGVuZHMgQmFzZUNlbGxFcnJvciB7XG4gIHR5cGU6IFwiY2VsbC9tYXhpbXVtXCJcbiAgbWF4aW11bTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VsbEV4Y2x1c2l2ZU1pbmltdW1FcnJvciBleHRlbmRzIEJhc2VDZWxsRXJyb3Ige1xuICB0eXBlOiBcImNlbGwvZXhjbHVzaXZlTWluaW11bVwiXG4gIG1pbmltdW06IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENlbGxFeGNsdXNpdmVNYXhpbXVtRXJyb3IgZXh0ZW5kcyBCYXNlQ2VsbEVycm9yIHtcbiAgdHlwZTogXCJjZWxsL2V4Y2x1c2l2ZU1heGltdW1cIlxuICBtYXhpbXVtOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZWxsTWluTGVuZ3RoRXJyb3IgZXh0ZW5kcyBCYXNlQ2VsbEVycm9yIHtcbiAgdHlwZTogXCJjZWxsL21pbkxlbmd0aFwiXG4gIG1pbkxlbmd0aDogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VsbE1heExlbmd0aEVycm9yIGV4dGVuZHMgQmFzZUNlbGxFcnJvciB7XG4gIHR5cGU6IFwiY2VsbC9tYXhMZW5ndGhcIlxuICBtYXhMZW5ndGg6IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENlbGxQYXR0ZXJuRXJyb3IgZXh0ZW5kcyBCYXNlQ2VsbEVycm9yIHtcbiAgdHlwZTogXCJjZWxsL3BhdHRlcm5cIlxuICBwYXR0ZXJuOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZWxsVW5pcXVlRXJyb3IgZXh0ZW5kcyBCYXNlQ2VsbEVycm9yIHtcbiAgdHlwZTogXCJjZWxsL3VuaXF1ZVwiXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VsbEVudW1FcnJvciBleHRlbmRzIEJhc2VDZWxsRXJyb3Ige1xuICB0eXBlOiBcImNlbGwvZW51bVwiXG4gIGVudW06IHN0cmluZ1tdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VsbEpzb25TY2hlbWFFcnJvciBleHRlbmRzIEJhc2VDZWxsRXJyb3Ige1xuICB0eXBlOiBcImNlbGwvanNvblNjaGVtYVwiXG4gIHBvaW50ZXI6IHN0cmluZ1xuICBtZXNzYWdlOiBzdHJpbmdcbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ import type { BaseError } from "./Base.ts";
2
+ export interface DataError extends BaseError {
3
+ type: "data";
4
+ message: string;
5
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Vycm9yL3R5cGVzL0RhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmFzZUVycm9yIH0gZnJvbSBcIi4vQmFzZS50c1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgdHlwZTogXCJkYXRhXCJcbiAgbWVzc2FnZTogc3RyaW5nXG59XG4iXX0=
@@ -0,0 +1,7 @@
1
+ import type { BaseError } from "./Base.ts";
2
+ export type DocumentError = JsonDocumentError;
3
+ export interface JsonDocumentError extends BaseError {
4
+ type: "document/json";
5
+ pointer: string;
6
+ message: string;
7
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRG9jdW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9lcnJvci90eXBlcy9Eb2N1bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCYXNlRXJyb3IgfSBmcm9tIFwiLi9CYXNlLnRzXCJcblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRFcnJvciA9IEpzb25Eb2N1bWVudEVycm9yXG5cbmV4cG9ydCBpbnRlcmZhY2UgSnNvbkRvY3VtZW50RXJyb3IgZXh0ZW5kcyBCYXNlRXJyb3Ige1xuICB0eXBlOiBcImRvY3VtZW50L2pzb25cIlxuICBwb2ludGVyOiBzdHJpbmdcbiAgbWVzc2FnZTogc3RyaW5nXG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ import type { BaseError } from "./Base.ts";
2
+ export interface EncodingError extends BaseError {
3
+ type: "file/encoding";
4
+ encoding: string;
5
+ actualEncoding: string;
6
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5jb2RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9lcnJvci90eXBlcy9FbmNvZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCYXNlRXJyb3IgfSBmcm9tIFwiLi9CYXNlLnRzXCJcblxuZXhwb3J0IGludGVyZmFjZSBFbmNvZGluZ0Vycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgdHlwZTogXCJmaWxlL2VuY29kaW5nXCJcbiAgZW5jb2Rpbmc6IHN0cmluZ1xuICBhY3R1YWxFbmNvZGluZzogc3RyaW5nXG59XG4iXX0=
@@ -0,0 +1,15 @@
1
+ import type { FieldType } from "../../field/index.ts";
2
+ import type { BaseError } from "./Base.ts";
3
+ export type FieldError = FieldNameError | FieldTypeError;
4
+ export interface BaseFieldError extends BaseError {
5
+ fieldName: string;
6
+ }
7
+ export interface FieldNameError extends BaseFieldError {
8
+ type: "field/name";
9
+ actualFieldName: string;
10
+ }
11
+ export interface FieldTypeError extends BaseFieldError {
12
+ type: "field/type";
13
+ fieldType: FieldType;
14
+ actualFieldType: FieldType;
15
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9lcnJvci90eXBlcy9GaWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGaWVsZFR5cGUgfSBmcm9tIFwiLi4vLi4vZmllbGQvaW5kZXgudHNcIlxuaW1wb3J0IHR5cGUgeyBCYXNlRXJyb3IgfSBmcm9tIFwiLi9CYXNlLnRzXCJcblxuZXhwb3J0IHR5cGUgRmllbGRFcnJvciA9IEZpZWxkTmFtZUVycm9yIHwgRmllbGRUeXBlRXJyb3JcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlRmllbGRFcnJvciBleHRlbmRzIEJhc2VFcnJvciB7XG4gIGZpZWxkTmFtZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGROYW1lRXJyb3IgZXh0ZW5kcyBCYXNlRmllbGRFcnJvciB7XG4gIHR5cGU6IFwiZmllbGQvbmFtZVwiXG4gIGFjdHVhbEZpZWxkTmFtZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRUeXBlRXJyb3IgZXh0ZW5kcyBCYXNlRmllbGRFcnJvciB7XG4gIHR5cGU6IFwiZmllbGQvdHlwZVwiXG4gIGZpZWxkVHlwZTogRmllbGRUeXBlXG4gIGFjdHVhbEZpZWxkVHlwZTogRmllbGRUeXBlXG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ import type { BaseError } from "./Base.ts";
2
+ export type FieldsError = FieldsMissingError | FieldsExtraError;
3
+ export interface BaseFieldsError extends BaseError {
4
+ fieldNames: string[];
5
+ }
6
+ export interface FieldsMissingError extends BaseFieldsError {
7
+ type: "fields/missing";
8
+ }
9
+ export interface FieldsExtraError extends BaseFieldsError {
10
+ type: "fields/extra";
11
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXJyb3IvdHlwZXMvRmllbGRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJhc2VFcnJvciB9IGZyb20gXCIuL0Jhc2UudHNcIlxuXG5leHBvcnQgdHlwZSBGaWVsZHNFcnJvciA9IEZpZWxkc01pc3NpbmdFcnJvciB8IEZpZWxkc0V4dHJhRXJyb3JcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlRmllbGRzRXJyb3IgZXh0ZW5kcyBCYXNlRXJyb3Ige1xuICBmaWVsZE5hbWVzOiBzdHJpbmdbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkc01pc3NpbmdFcnJvciBleHRlbmRzIEJhc2VGaWVsZHNFcnJvciB7XG4gIHR5cGU6IFwiZmllbGRzL21pc3NpbmdcIlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkc0V4dHJhRXJyb3IgZXh0ZW5kcyBCYXNlRmllbGRzRXJyb3Ige1xuICB0eXBlOiBcImZpZWxkcy9leHRyYVwiXG59XG4iXX0=
@@ -0,0 +1,4 @@
1
+ import type { BytesError } from "./Bytes.ts";
2
+ import type { EncodingError } from "./Encoding.ts";
3
+ import type { HashError } from "./Hash.ts";
4
+ export type FileError = BytesError | HashError | EncodingError;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Vycm9yL3R5cGVzL0ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQnl0ZXNFcnJvciB9IGZyb20gXCIuL0J5dGVzLnRzXCJcbmltcG9ydCB0eXBlIHsgRW5jb2RpbmdFcnJvciB9IGZyb20gXCIuL0VuY29kaW5nLnRzXCJcbmltcG9ydCB0eXBlIHsgSGFzaEVycm9yIH0gZnJvbSBcIi4vSGFzaC50c1wiXG5cbmV4cG9ydCB0eXBlIEZpbGVFcnJvciA9IEJ5dGVzRXJyb3IgfCBIYXNoRXJyb3IgfCBFbmNvZGluZ0Vycm9yXG4iXX0=
@@ -0,0 +1,7 @@
1
+ import type { ForeignKey } from "../../schema/index.ts";
2
+ import type { BaseError } from "./Base.ts";
3
+ export interface ForeignKeyError extends BaseError {
4
+ type: "foreignKey";
5
+ foreignKey: ForeignKey;
6
+ cells: string[];
7
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9yZWlnbktleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Vycm9yL3R5cGVzL0ZvcmVpZ25LZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRm9yZWlnbktleSB9IGZyb20gXCIuLi8uLi9zY2hlbWEvaW5kZXgudHNcIlxuaW1wb3J0IHR5cGUgeyBCYXNlRXJyb3IgfSBmcm9tIFwiLi9CYXNlLnRzXCJcblxuZXhwb3J0IGludGVyZmFjZSBGb3JlaWduS2V5RXJyb3IgZXh0ZW5kcyBCYXNlRXJyb3Ige1xuICB0eXBlOiBcImZvcmVpZ25LZXlcIlxuICBmb3JlaWduS2V5OiBGb3JlaWduS2V5XG4gIGNlbGxzOiBzdHJpbmdbXVxufVxuIl19
@@ -0,0 +1,6 @@
1
+ import type { BaseError } from "./Base.ts";
2
+ export interface HashError extends BaseError {
3
+ type: "file/hash";
4
+ hash: string;
5
+ actualHash: string;
6
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Vycm9yL3R5cGVzL0hhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmFzZUVycm9yIH0gZnJvbSBcIi4vQmFzZS50c1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFzaEVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgdHlwZTogXCJmaWxlL2hhc2hcIlxuICBoYXNoOiBzdHJpbmdcbiAgYWN0dWFsSGFzaDogc3RyaW5nXG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ import type { BaseError } from "./Base.ts";
2
+ /**
3
+ * A descriptor error
4
+ */
5
+ export interface MetadataError extends BaseError {
6
+ type: "metadata";
7
+ pointer: string;
8
+ message: string;
9
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9lcnJvci90eXBlcy9NZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCYXNlRXJyb3IgfSBmcm9tIFwiLi9CYXNlLnRzXCJcblxuLyoqXG4gKiBBIGRlc2NyaXB0b3IgZXJyb3JcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRhZGF0YUVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgdHlwZTogXCJtZXRhZGF0YVwiXG4gIHBvaW50ZXI6IHN0cmluZ1xuICBtZXNzYWdlOiBzdHJpbmdcbn1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ import type { BaseError } from "./Base.ts";
2
+ export type RowError = RowUniqueError;
3
+ export interface BaseRowError extends BaseError {
4
+ rowNumber: number;
5
+ }
6
+ export interface RowUniqueError extends BaseRowError {
7
+ type: "row/unique";
8
+ fieldNames: string[];
9
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXJyb3IvdHlwZXMvUm93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJhc2VFcnJvciB9IGZyb20gXCIuL0Jhc2UudHNcIlxuXG5leHBvcnQgdHlwZSBSb3dFcnJvciA9IFJvd1VuaXF1ZUVycm9yXG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZVJvd0Vycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgcm93TnVtYmVyOiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb3dVbmlxdWVFcnJvciBleHRlbmRzIEJhc2VSb3dFcnJvciB7XG4gIHR5cGU6IFwicm93L3VuaXF1ZVwiXG4gIGZpZWxkTmFtZXM6IHN0cmluZ1tdXG4gIC8vIFRPRE86IGFkZCBjZWxscz9cbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ import type { CellError } from "./Cell.ts";
2
+ import type { FieldError } from "./Field.ts";
3
+ import type { FieldsError } from "./Fields.ts";
4
+ import type { ForeignKeyError } from "./ForeignKey.ts";
5
+ import type { RowError } from "./Row.ts";
6
+ export type TableError = FieldsError | FieldError | RowError | CellError | ForeignKeyError;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9lcnJvci90eXBlcy9UYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDZWxsRXJyb3IgfSBmcm9tIFwiLi9DZWxsLnRzXCJcbmltcG9ydCB0eXBlIHsgRmllbGRFcnJvciB9IGZyb20gXCIuL0ZpZWxkLnRzXCJcbmltcG9ydCB0eXBlIHsgRmllbGRzRXJyb3IgfSBmcm9tIFwiLi9GaWVsZHMudHNcIlxuaW1wb3J0IHR5cGUgeyBGb3JlaWduS2V5RXJyb3IgfSBmcm9tIFwiLi9Gb3JlaWduS2V5LnRzXCJcbmltcG9ydCB0eXBlIHsgUm93RXJyb3IgfSBmcm9tIFwiLi9Sb3cudHNcIlxuXG5leHBvcnQgdHlwZSBUYWJsZUVycm9yID1cbiAgfCBGaWVsZHNFcnJvclxuICB8IEZpZWxkRXJyb3JcbiAgfCBSb3dFcnJvclxuICB8IENlbGxFcnJvclxuICB8IEZvcmVpZ25LZXlFcnJvclxuIl19
@@ -0,0 +1,5 @@
1
+ import type * as fields from "./types/index.ts";
2
+ /**
3
+ * A Table Schema field
4
+ */
5
+ export type Field = fields.StringField | fields.NumberField | fields.IntegerField | fields.BooleanField | fields.ObjectField | fields.ArrayField | fields.ListField | fields.DateField | fields.TimeField | fields.DatetimeField | fields.YearField | fields.YearmonthField | fields.DurationField | fields.GeopointField | fields.GeojsonField | fields.AnyField;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9maWVsZC9GaWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBmaWVsZHMgZnJvbSBcIi4vdHlwZXMvaW5kZXgudHNcIlxuXG4vKipcbiAqIEEgVGFibGUgU2NoZW1hIGZpZWxkXG4gKi9cbmV4cG9ydCB0eXBlIEZpZWxkID1cbiAgfCBmaWVsZHMuU3RyaW5nRmllbGRcbiAgfCBmaWVsZHMuTnVtYmVyRmllbGRcbiAgfCBmaWVsZHMuSW50ZWdlckZpZWxkXG4gIHwgZmllbGRzLkJvb2xlYW5GaWVsZFxuICB8IGZpZWxkcy5PYmplY3RGaWVsZFxuICB8IGZpZWxkcy5BcnJheUZpZWxkXG4gIHwgZmllbGRzLkxpc3RGaWVsZFxuICB8IGZpZWxkcy5EYXRlRmllbGRcbiAgfCBmaWVsZHMuVGltZUZpZWxkXG4gIHwgZmllbGRzLkRhdGV0aW1lRmllbGRcbiAgfCBmaWVsZHMuWWVhckZpZWxkXG4gIHwgZmllbGRzLlllYXJtb250aEZpZWxkXG4gIHwgZmllbGRzLkR1cmF0aW9uRmllbGRcbiAgfCBmaWVsZHMuR2VvcG9pbnRGaWVsZFxuICB8IGZpZWxkcy5HZW9qc29uRmllbGRcbiAgfCBmaWVsZHMuQW55RmllbGRcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ import type { Field } from "./Field.ts";
2
+ export type FieldType = Exclude<Field["type"], undefined>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2ZpZWxkL1R5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tIFwiLi9GaWVsZC50c1wiXG5cbmV4cG9ydCB0eXBlIEZpZWxkVHlwZSA9IEV4Y2x1ZGU8RmllbGRbXCJ0eXBlXCJdLCB1bmRlZmluZWQ+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ import type { Descriptor } from "../../descriptor/index.ts";
2
+ export declare function convertFieldFromDescriptor(descriptor: Descriptor): Descriptor;
@@ -0,0 +1,61 @@
1
+ export function convertFieldFromDescriptor(descriptor) {
2
+ descriptor = globalThis.structuredClone(descriptor);
3
+ convertFormat(descriptor);
4
+ convertMissingValues(descriptor);
5
+ convertCategories(descriptor);
6
+ convertCategoriesOrdered(descriptor);
7
+ convertJsonschema(descriptor);
8
+ return descriptor;
9
+ }
10
+ function convertFormat(descriptor) {
11
+ const format = descriptor.format;
12
+ if (!format) {
13
+ return;
14
+ }
15
+ if (typeof format === "string") {
16
+ if (format.startsWith("fmt:")) {
17
+ descriptor.format = format.slice(4);
18
+ }
19
+ }
20
+ }
21
+ function convertMissingValues(descriptor) {
22
+ const missingValues = descriptor.missingValues;
23
+ if (!missingValues) {
24
+ return;
25
+ }
26
+ if (!Array.isArray(missingValues)) {
27
+ descriptor.missingValues = undefined;
28
+ console.warn(`Ignoring v2.0 incompatible missingValues: ${missingValues}`);
29
+ }
30
+ }
31
+ function convertCategories(descriptor) {
32
+ const categories = descriptor.categories;
33
+ if (!categories) {
34
+ return;
35
+ }
36
+ if (categories && !Array.isArray(categories)) {
37
+ descriptor.categories = undefined;
38
+ console.warn(`Ignoring v2.0 incompatible categories: ${categories}`);
39
+ }
40
+ }
41
+ function convertCategoriesOrdered(descriptor) {
42
+ const categoriesOrdered = descriptor.categoriesOrdered;
43
+ if (!categoriesOrdered) {
44
+ return;
45
+ }
46
+ if (typeof categoriesOrdered !== "boolean") {
47
+ descriptor.categoriesOrdered = undefined;
48
+ console.warn(`Ignoring v2.0 incompatible categoriesOrdered: ${categoriesOrdered}`);
49
+ }
50
+ }
51
+ function convertJsonschema(descriptor) {
52
+ const jsonschema = descriptor.jsonschema;
53
+ if (!jsonschema) {
54
+ return;
55
+ }
56
+ if (typeof jsonschema !== "object") {
57
+ descriptor.jsonschema = undefined;
58
+ console.warn(`Ignoring v2.0 incompatible jsonschema: ${jsonschema}`);
59
+ }
60
+ }
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbURlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9maWVsZC9jb252ZXJ0L2Zyb21EZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxVQUFzQjtJQUMvRCxVQUFVLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUVuRCxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDekIsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDaEMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDN0Isd0JBQXdCLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDcEMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUE7SUFFN0IsT0FBTyxVQUFVLENBQUE7QUFDbkIsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLFVBQXNCO0lBQzNDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUE7SUFDaEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osT0FBTTtJQUNSLENBQUM7SUFFRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQy9CLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzlCLFVBQVUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNyQyxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLFVBQXNCO0lBQ2xELE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUE7SUFDOUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ25CLE9BQU07SUFDUixDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztRQUNsQyxVQUFVLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQTtRQUNwQyxPQUFPLENBQUMsSUFBSSxDQUFDLDZDQUE2QyxhQUFhLEVBQUUsQ0FBQyxDQUFBO0lBQzVFLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxVQUFzQjtJQUMvQyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFBO0lBQ3hDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixPQUFNO0lBQ1IsQ0FBQztJQUVELElBQUksVUFBVSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQzdDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFBO1FBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMENBQTBDLFVBQVUsRUFBRSxDQUFDLENBQUE7SUFDdEUsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUFDLFVBQXNCO0lBQ3RELE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFBO0lBQ3RELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZCLE9BQU07SUFDUixDQUFDO0lBRUQsSUFBSSxPQUFPLGlCQUFpQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzNDLFVBQVUsQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUE7UUFDeEMsT0FBTyxDQUFDLElBQUksQ0FDVixpREFBaUQsaUJBQWlCLEVBQUUsQ0FDckUsQ0FBQTtJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxVQUFzQjtJQUMvQyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFBO0lBQ3hDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixPQUFNO0lBQ1IsQ0FBQztJQUVELElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDbkMsVUFBVSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUE7UUFDakMsT0FBTyxDQUFDLElBQUksQ0FBQywwQ0FBMEMsVUFBVSxFQUFFLENBQUMsQ0FBQTtJQUN0RSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGVzY3JpcHRvciB9IGZyb20gXCIuLi8uLi9kZXNjcmlwdG9yL2luZGV4LnRzXCJcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRGaWVsZEZyb21EZXNjcmlwdG9yKGRlc2NyaXB0b3I6IERlc2NyaXB0b3IpIHtcbiAgZGVzY3JpcHRvciA9IGdsb2JhbFRoaXMuc3RydWN0dXJlZENsb25lKGRlc2NyaXB0b3IpXG5cbiAgY29udmVydEZvcm1hdChkZXNjcmlwdG9yKVxuICBjb252ZXJ0TWlzc2luZ1ZhbHVlcyhkZXNjcmlwdG9yKVxuICBjb252ZXJ0Q2F0ZWdvcmllcyhkZXNjcmlwdG9yKVxuICBjb252ZXJ0Q2F0ZWdvcmllc09yZGVyZWQoZGVzY3JpcHRvcilcbiAgY29udmVydEpzb25zY2hlbWEoZGVzY3JpcHRvcilcblxuICByZXR1cm4gZGVzY3JpcHRvclxufVxuXG5mdW5jdGlvbiBjb252ZXJ0Rm9ybWF0KGRlc2NyaXB0b3I6IERlc2NyaXB0b3IpIHtcbiAgY29uc3QgZm9ybWF0ID0gZGVzY3JpcHRvci5mb3JtYXRcbiAgaWYgKCFmb3JtYXQpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmICh0eXBlb2YgZm9ybWF0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgaWYgKGZvcm1hdC5zdGFydHNXaXRoKFwiZm10OlwiKSkge1xuICAgICAgZGVzY3JpcHRvci5mb3JtYXQgPSBmb3JtYXQuc2xpY2UoNClcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29udmVydE1pc3NpbmdWYWx1ZXMoZGVzY3JpcHRvcjogRGVzY3JpcHRvcikge1xuICBjb25zdCBtaXNzaW5nVmFsdWVzID0gZGVzY3JpcHRvci5taXNzaW5nVmFsdWVzXG4gIGlmICghbWlzc2luZ1ZhbHVlcykge1xuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKCFBcnJheS5pc0FycmF5KG1pc3NpbmdWYWx1ZXMpKSB7XG4gICAgZGVzY3JpcHRvci5taXNzaW5nVmFsdWVzID0gdW5kZWZpbmVkXG4gICAgY29uc29sZS53YXJuKGBJZ25vcmluZyB2Mi4wIGluY29tcGF0aWJsZSBtaXNzaW5nVmFsdWVzOiAke21pc3NpbmdWYWx1ZXN9YClcbiAgfVxufVxuXG5mdW5jdGlvbiBjb252ZXJ0Q2F0ZWdvcmllcyhkZXNjcmlwdG9yOiBEZXNjcmlwdG9yKSB7XG4gIGNvbnN0IGNhdGVnb3JpZXMgPSBkZXNjcmlwdG9yLmNhdGVnb3JpZXNcbiAgaWYgKCFjYXRlZ29yaWVzKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoY2F0ZWdvcmllcyAmJiAhQXJyYXkuaXNBcnJheShjYXRlZ29yaWVzKSkge1xuICAgIGRlc2NyaXB0b3IuY2F0ZWdvcmllcyA9IHVuZGVmaW5lZFxuICAgIGNvbnNvbGUud2FybihgSWdub3JpbmcgdjIuMCBpbmNvbXBhdGlibGUgY2F0ZWdvcmllczogJHtjYXRlZ29yaWVzfWApXG4gIH1cbn1cblxuZnVuY3Rpb24gY29udmVydENhdGVnb3JpZXNPcmRlcmVkKGRlc2NyaXB0b3I6IERlc2NyaXB0b3IpIHtcbiAgY29uc3QgY2F0ZWdvcmllc09yZGVyZWQgPSBkZXNjcmlwdG9yLmNhdGVnb3JpZXNPcmRlcmVkXG4gIGlmICghY2F0ZWdvcmllc09yZGVyZWQpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmICh0eXBlb2YgY2F0ZWdvcmllc09yZGVyZWQgIT09IFwiYm9vbGVhblwiKSB7XG4gICAgZGVzY3JpcHRvci5jYXRlZ29yaWVzT3JkZXJlZCA9IHVuZGVmaW5lZFxuICAgIGNvbnNvbGUud2FybihcbiAgICAgIGBJZ25vcmluZyB2Mi4wIGluY29tcGF0aWJsZSBjYXRlZ29yaWVzT3JkZXJlZDogJHtjYXRlZ29yaWVzT3JkZXJlZH1gLFxuICAgIClcbiAgfVxufVxuXG5mdW5jdGlvbiBjb252ZXJ0SnNvbnNjaGVtYShkZXNjcmlwdG9yOiBEZXNjcmlwdG9yKSB7XG4gIGNvbnN0IGpzb25zY2hlbWEgPSBkZXNjcmlwdG9yLmpzb25zY2hlbWFcbiAgaWYgKCFqc29uc2NoZW1hKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAodHlwZW9mIGpzb25zY2hlbWEgIT09IFwib2JqZWN0XCIpIHtcbiAgICBkZXNjcmlwdG9yLmpzb25zY2hlbWEgPSB1bmRlZmluZWRcbiAgICBjb25zb2xlLndhcm4oYElnbm9yaW5nIHYyLjAgaW5jb21wYXRpYmxlIGpzb25zY2hlbWE6ICR7anNvbnNjaGVtYX1gKVxuICB9XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ export {};