ifct2017 2.0.14 → 2.1.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 (111) hide show
  1. package/LICENSE +661 -21
  2. package/README.md +1019 -71
  3. package/abbreviations/index.csv +78 -0
  4. package/abbreviations/index.d.ts +39 -0
  5. package/abbreviations/index.js +103 -0
  6. package/abbreviations/index.txt +12 -0
  7. package/about/build.ts +31 -0
  8. package/about/index.d.ts +47 -0
  9. package/about/index.js +110 -0
  10. package/about/index.txt +174 -0
  11. package/build.ts +115 -0
  12. package/carbohydrates/index.csv +8 -0
  13. package/carbohydrates/index.d.ts +42 -0
  14. package/carbohydrates/index.js +112 -0
  15. package/carbohydrates/index.txt +14 -0
  16. package/codes/index.csv +2904 -0
  17. package/codes/index.d.ts +36 -0
  18. package/codes/index.js +102 -0
  19. package/codes/index.txt +12 -0
  20. package/columndescriptions/build.ts +22 -0
  21. package/columndescriptions/index.csv +215 -0
  22. package/columndescriptions/index.d.ts +44 -0
  23. package/columndescriptions/index.js +119 -0
  24. package/columns/build.ts +23 -0
  25. package/columns/index.csv +215 -0
  26. package/columns/index.d.ts +39 -0
  27. package/columns/index.js +111 -0
  28. package/columns/index.txt +71 -0
  29. package/compositingcentres/index.csv +7 -0
  30. package/compositingcentres/index.d.ts +35 -0
  31. package/compositingcentres/index.js +103 -0
  32. package/compositingcentres/index.txt +13 -0
  33. package/compositions/build.ts +212 -0
  34. package/compositions/index.csv +543 -0
  35. package/compositions/index.d.ts +254 -0
  36. package/compositions/index.js +204 -0
  37. package/compositionstats/build.ts +103 -0
  38. package/compositionstats/index.csv +4 -0
  39. package/compositionstats/index.d.ts +31 -0
  40. package/compositionstats/index.js +97 -0
  41. package/contents/index.csv +21 -0
  42. package/contents/index.d.ts +39 -0
  43. package/contents/index.js +102 -0
  44. package/contents/index.txt +13 -0
  45. package/deno.lock +67 -0
  46. package/descriptions/index.csv +543 -0
  47. package/descriptions/index.d.ts +45 -0
  48. package/descriptions/index.js +124 -0
  49. package/descriptions/index.txt +15 -0
  50. package/energies/index.csv +6 -0
  51. package/energies/index.d.ts +34 -0
  52. package/energies/index.js +101 -0
  53. package/energies/index.txt +13 -0
  54. package/frequencydistribution/index.csv +10 -0
  55. package/frequencydistribution/index.d.ts +36 -0
  56. package/frequencydistribution/index.js +90 -0
  57. package/frequencydistribution/index.txt +14 -0
  58. package/groups/index.csv +21 -0
  59. package/groups/index.d.ts +46 -0
  60. package/groups/index.js +118 -0
  61. package/groups/index.txt +14 -0
  62. package/hierarchy/asset.csv +215 -0
  63. package/hierarchy/asset.txt +70 -0
  64. package/hierarchy/build.ts +73 -0
  65. package/hierarchy/index.csv +215 -0
  66. package/hierarchy/index.d.ts +39 -0
  67. package/hierarchy/index.js +100 -0
  68. package/hierarchy/index.txt +14 -0
  69. package/index.d.ts +24 -28
  70. package/index.js +28 -39
  71. package/index.test.ts +717 -0
  72. package/intakes/build.ts +28 -0
  73. package/intakes/index.csv +42 -0
  74. package/intakes/index.d.ts +66 -0
  75. package/intakes/index.js +113 -0
  76. package/intakes/index.txt +20 -0
  77. package/jonesfactors/index.csv +15 -0
  78. package/jonesfactors/index.d.ts +35 -0
  79. package/jonesfactors/index.js +105 -0
  80. package/jonesfactors/index.txt +12 -0
  81. package/languages/index.csv +22 -0
  82. package/languages/index.d.ts +39 -0
  83. package/languages/index.js +103 -0
  84. package/languages/index.txt +12 -0
  85. package/methods/build.ts +101 -0
  86. package/methods/index.csv +37 -0
  87. package/methods/index.d.ts +39 -0
  88. package/methods/index.js +196 -0
  89. package/methods/index.txt +13 -0
  90. package/package.json +15 -63
  91. package/regions/index.csv +7 -0
  92. package/regions/index.d.ts +36 -0
  93. package/regions/index.js +100 -0
  94. package/regions/index.txt +12 -0
  95. package/representations/build.ts +133 -0
  96. package/representations/index.csv +215 -0
  97. package/representations/index.d.ts +36 -0
  98. package/representations/index.js +91 -0
  99. package/retentionfactors/groups.csv +21 -0
  100. package/retentionfactors/index.csv +215 -0
  101. package/samplingunits/index.csv +36 -0
  102. package/samplingunits/index.d.ts +39 -0
  103. package/samplingunits/index.js +110 -0
  104. package/samplingunits/index.txt +14 -0
  105. package/yieldfactors/index.csv +543 -0
  106. package/yieldfactors/index.d.ts +57 -0
  107. package/yieldfactors/index.js +158 -0
  108. package/yieldfactors/index.txt +294 -0
  109. package/corpus.js +0 -6
  110. package/corpus.min.js +0 -1
  111. package/pictures.d.ts +0 -41
@@ -0,0 +1,39 @@
1
+ import { type SetupTableOptions } from "@nodef/extra-sql";
2
+ /** Tree-like hierarchy of a nutrient. */ export interface Hierarchy {
3
+ /** Column code. */ code: string;
4
+ /** List of Parent columns, space separated. */ parents: string;
5
+ /** List of Ancestor columns, space separated. */ ancestry: string;
6
+ /** List of Child columns, space separated. */ children: string;
7
+ }
8
+ /**
9
+ * Load the hierarchy corpus from the file.
10
+ * @returns hierarchy corpus
11
+ */ export declare function loadHierarchy(): Promise<Map<string, Hierarchy>>;
12
+ /**
13
+ * Get the path to the hierarchy CSV file.
14
+ * @returns CSV file URL
15
+ */ export declare function hierarchyCsv(): string;
16
+ /**
17
+ * Obtain SQL command to create and populate the hierarchy table.
18
+ * @param tab table name
19
+ * @param opt options for the table
20
+ * @returns CREATE TABLE, INSERT, CREATE VIEW, CREATE INDEX statements
21
+ */ export declare function hierarchySql(tab?: string, opt?: SetupTableOptions): Promise<string>;
22
+ /**
23
+ * Find matching hierarchy of a column:code/name/tags query.
24
+ * @param txt column:code/name/tags query
25
+ * @returns `{code, parents, ancestry, children}` if found, else null
26
+ * @example
27
+ * ```javascript
28
+ * ifct2017.hierarchy('soluble oxalic acid');
29
+ * ifct2017.hierarchy('Soluble Oxalic Acid');
30
+ * // → { parents: 'oxalt', ancestry: 'oxalt orgac', children: '' }
31
+ *
32
+ * ifct2017.hierarchy('what is hierarchy of total saturated fat?');
33
+ * ifct2017.hierarchy('who are children of total saturated fat?');
34
+ * // → { parents: 'fatce',
35
+ * // → ancestry: 'fatce',
36
+ * // → children:
37
+ * // → 'f4d0 f6d0 f8d0 f10d0 f11d0 f12d0 f14d0 f15d0 f16d0 f18d0 f20d0 f22d0 f24d0' }
38
+ * ```
39
+ */ export declare function hierarchy(txt: string): Hierarchy | null;
@@ -0,0 +1,100 @@
1
+ // Copyright (C) 2025-26 Subhajit Sahu
2
+ // SPDX-License-Identifier: AGPL-3.0-or-later
3
+ // See LICENSE for full terms
4
+ import * as csv from "@std/csv";
5
+ import lunr from "lunr"; // @deno-types="npm:@types/lunr@2.3.7"
6
+ import { setupTable } from "@nodef/extra-sql";
7
+ import { loadColumns, columns } from "../columns/index.js";
8
+ //#endregion
9
+ //#region GLOBALS
10
+ let corpus = null;
11
+ //#endregion
12
+ //#region FUNCTIONS
13
+ /**
14
+ * Load the hierarchy corpus from CSV file.
15
+ * @param file CSV file path
16
+ * @returns hierarchy corpus
17
+ */ async function loadFromCsv(file) {
18
+ const map = new Map();
19
+ const data = await (await fetch(file)).text();
20
+ const records = csv.parse(data, {
21
+ skipFirstRow: true,
22
+ comment: "#"
23
+ });
24
+ for (const r of records)map.set(r.code, r);
25
+ return map;
26
+ }
27
+ /**
28
+ * Setup the lunr index for the hierarchy corpus.
29
+ * @returns lunr index
30
+ */ function setupIndex(corpus) {
31
+ return lunr(function() {
32
+ this.ref('sno');
33
+ this.field('sno');
34
+ this.field('state');
35
+ // this.pipeline.remove(lunr.stopWordFilter);
36
+ for (const r of corpus.values())this.add(r);
37
+ });
38
+ }
39
+ /**
40
+ * Load the hierarchy corpus from the file.
41
+ * @returns hierarchy corpus
42
+ */ export async function loadHierarchy() {
43
+ if (corpus) return corpus;
44
+ const p = loadColumns();
45
+ corpus = await loadFromCsv(hierarchyCsv());
46
+ await p;
47
+ return corpus;
48
+ }
49
+ /**
50
+ * Get the path to the hierarchy CSV file.
51
+ * @returns CSV file URL
52
+ */ export function hierarchyCsv() {
53
+ return import.meta.resolve('./index.csv');
54
+ }
55
+ /**
56
+ * Obtain SQL command to create and populate the hierarchy table.
57
+ * @param tab table name
58
+ * @param opt options for the table
59
+ * @returns CREATE TABLE, INSERT, CREATE VIEW, CREATE INDEX statements
60
+ */ export async function hierarchySql(tab = "hierarchy", opt = {}) {
61
+ return setupTable(tab, {
62
+ code: "TEXT",
63
+ parents: "TEXT",
64
+ ancestry: "TEST",
65
+ children: "TEXT"
66
+ }, (await loadHierarchy()).values(), Object.assign({
67
+ pk: "code",
68
+ index: true,
69
+ tsvector: {
70
+ code: "A",
71
+ parents: "B",
72
+ ancestry: "C",
73
+ children: "B"
74
+ }
75
+ }, opt));
76
+ }
77
+ /**
78
+ * Find matching hierarchy of a column:code/name/tags query.
79
+ * @param txt column:code/name/tags query
80
+ * @returns `{code, parents, ancestry, children}` if found, else null
81
+ * @example
82
+ * ```javascript
83
+ * ifct2017.hierarchy('soluble oxalic acid');
84
+ * ifct2017.hierarchy('Soluble Oxalic Acid');
85
+ * // → { parents: 'oxalt', ancestry: 'oxalt orgac', children: '' }
86
+ *
87
+ * ifct2017.hierarchy('what is hierarchy of total saturated fat?');
88
+ * ifct2017.hierarchy('who are children of total saturated fat?');
89
+ * // → { parents: 'fatce',
90
+ * // → ancestry: 'fatce',
91
+ * // → children:
92
+ * // → 'f4d0 f6d0 f8d0 f10d0 f11d0 f12d0 f14d0 f15d0 f16d0 f18d0 f20d0 f22d0 f24d0' }
93
+ * ```
94
+ */ export function hierarchy(txt) {
95
+ if (corpus == null) return null;
96
+ const cs = columns(txt);
97
+ if (!cs.length) return null;
98
+ return corpus.get(cs[0].code) || null;
99
+ } //#endregion
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9pZmN0MjAxNy9pZmN0MjAxNy9oaWVyYXJjaHkvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChDKSAyMDI1LTI2IFN1Ymhhaml0IFNhaHVcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vci1sYXRlclxuLy8gU2VlIExJQ0VOU0UgZm9yIGZ1bGwgdGVybXNcbmltcG9ydCAqIGFzIGNzdiAgZnJvbSBcIkBzdGQvY3N2XCI7XG5pbXBvcnQgbHVuciBmcm9tIFwibHVuclwiOyAgLy8gQGRlbm8tdHlwZXM9XCJucG06QHR5cGVzL2x1bnJAMi4zLjdcIlxuaW1wb3J0IHt0eXBlIFJvd0RhdGEsIHR5cGUgU2V0dXBUYWJsZU9wdGlvbnMsIHNldHVwVGFibGV9IGZyb20gXCJAbm9kZWYvZXh0cmEtc3FsXCI7XG5pbXBvcnQge2xvYWRDb2x1bW5zLCBjb2x1bW5zfSBmcm9tIFwiLi4vY29sdW1ucy9pbmRleC5qc1wiO1xuXG5cblxuXG4vLyNyZWdpb24gVFlQRVNcbi8qKiBUcmVlLWxpa2UgaGllcmFyY2h5IG9mIGEgbnV0cmllbnQuICovXG5leHBvcnQgaW50ZXJmYWNlIEhpZXJhcmNoeSB7XG4gIC8qKiBDb2x1bW4gY29kZS4gKi9cbiAgY29kZTogc3RyaW5nLFxuICAvKiogTGlzdCBvZiBQYXJlbnQgY29sdW1ucywgc3BhY2Ugc2VwYXJhdGVkLiAqL1xuICBwYXJlbnRzOiBzdHJpbmcsXG4gIC8qKiBMaXN0IG9mIEFuY2VzdG9yIGNvbHVtbnMsIHNwYWNlIHNlcGFyYXRlZC4gKi9cbiAgYW5jZXN0cnk6IHN0cmluZyxcbiAgLyoqIExpc3Qgb2YgQ2hpbGQgY29sdW1ucywgc3BhY2Ugc2VwYXJhdGVkLiAqL1xuICBjaGlsZHJlbjogc3RyaW5nLFxufTtcbi8vI2VuZHJlZ2lvblxuXG5cblxuXG4vLyNyZWdpb24gR0xPQkFMU1xubGV0IGNvcnB1czogTWFwPHN0cmluZywgSGllcmFyY2h5PiB8IG51bGwgPSBudWxsO1xuLy8jZW5kcmVnaW9uXG5cblxuXG5cbi8vI3JlZ2lvbiBGVU5DVElPTlNcbi8qKlxuICogTG9hZCB0aGUgaGllcmFyY2h5IGNvcnB1cyBmcm9tIENTViBmaWxlLlxuICogQHBhcmFtIGZpbGUgQ1NWIGZpbGUgcGF0aFxuICogQHJldHVybnMgaGllcmFyY2h5IGNvcnB1c1xuICovXG5hc3luYyBmdW5jdGlvbiBsb2FkRnJvbUNzdihmaWxlOiBzdHJpbmcpIHtcbiAgY29uc3QgbWFwICA9IG5ldyBNYXA8c3RyaW5nLCBIaWVyYXJjaHk+KCk7XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCAoYXdhaXQgZmV0Y2goZmlsZSkpLnRleHQoKTtcbiAgY29uc3QgcmVjb3JkcyA9IGNzdi5wYXJzZShkYXRhLCB7c2tpcEZpcnN0Um93OiB0cnVlLCBjb21tZW50OiBcIiNcIn0pO1xuICBmb3IgKGNvbnN0IHIgb2YgcmVjb3JkcylcbiAgICBtYXAuc2V0KHIuY29kZSwgciBhcyB1bmtub3duIGFzIEhpZXJhcmNoeSk7XG4gIHJldHVybiBtYXA7XG59XG5cblxuLyoqXG4gKiBTZXR1cCB0aGUgbHVuciBpbmRleCBmb3IgdGhlIGhpZXJhcmNoeSBjb3JwdXMuXG4gKiBAcmV0dXJucyBsdW5yIGluZGV4XG4gKi9cbmZ1bmN0aW9uIHNldHVwSW5kZXgoY29ycHVzOiBNYXA8c3RyaW5nLCBIaWVyYXJjaHk+KSB7XG4gIHJldHVybiBsdW5yKGZ1bmN0aW9uKHRoaXM6IGx1bnIuQnVpbGRlcikge1xuICAgIHRoaXMucmVmKCdzbm8nKTtcbiAgICB0aGlzLmZpZWxkKCdzbm8nKTtcbiAgICB0aGlzLmZpZWxkKCdzdGF0ZScpO1xuICAgIC8vIHRoaXMucGlwZWxpbmUucmVtb3ZlKGx1bnIuc3RvcFdvcmRGaWx0ZXIpO1xuICAgIGZvciAoY29uc3QgciBvZiBjb3JwdXMudmFsdWVzKCkpXG4gICAgICB0aGlzLmFkZChyKTtcbiAgfSk7XG59XG5cblxuLyoqXG4gKiBMb2FkIHRoZSBoaWVyYXJjaHkgY29ycHVzIGZyb20gdGhlIGZpbGUuXG4gKiBAcmV0dXJucyBoaWVyYXJjaHkgY29ycHVzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkSGllcmFyY2h5KCk6IFByb21pc2U8TWFwPHN0cmluZywgSGllcmFyY2h5Pj4ge1xuICBpZiAoY29ycHVzKSByZXR1cm4gY29ycHVzO1xuICBjb25zdCBwID0gbG9hZENvbHVtbnMoKTtcbiAgY29ycHVzID0gYXdhaXQgbG9hZEZyb21Dc3YoaGllcmFyY2h5Q3N2KCkpOyBhd2FpdCBwO1xuICByZXR1cm4gY29ycHVzO1xufVxuXG5cbi8qKlxuICogR2V0IHRoZSBwYXRoIHRvIHRoZSBoaWVyYXJjaHkgQ1NWIGZpbGUuXG4gKiBAcmV0dXJucyBDU1YgZmlsZSBVUkxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhpZXJhcmNoeUNzdigpOiBzdHJpbmcge1xuICByZXR1cm4gaW1wb3J0Lm1ldGEucmVzb2x2ZSgnLi9pbmRleC5jc3YnKTtcbn1cblxuXG4vKipcbiAqIE9idGFpbiBTUUwgY29tbWFuZCB0byBjcmVhdGUgYW5kIHBvcHVsYXRlIHRoZSBoaWVyYXJjaHkgdGFibGUuXG4gKiBAcGFyYW0gdGFiIHRhYmxlIG5hbWVcbiAqIEBwYXJhbSBvcHQgb3B0aW9ucyBmb3IgdGhlIHRhYmxlXG4gKiBAcmV0dXJucyBDUkVBVEUgVEFCTEUsIElOU0VSVCwgQ1JFQVRFIFZJRVcsIENSRUFURSBJTkRFWCBzdGF0ZW1lbnRzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoaWVyYXJjaHlTcWwodGFiOiBzdHJpbmc9XCJoaWVyYXJjaHlcIiwgb3B0OiBTZXR1cFRhYmxlT3B0aW9ucz17fSk6IFByb21pc2U8c3RyaW5nPiB7XG4gIHJldHVybiBzZXR1cFRhYmxlKHRhYiwge2NvZGU6IFwiVEVYVFwiLCBwYXJlbnRzOiBcIlRFWFRcIiwgYW5jZXN0cnk6IFwiVEVTVFwiLCBjaGlsZHJlbjogXCJURVhUXCJ9LFxuICAgIChhd2FpdCBsb2FkSGllcmFyY2h5KCkpLnZhbHVlcygpIGFzIEl0ZXJhYmxlPFJvd0RhdGE+LFxuICAgIE9iamVjdC5hc3NpZ24oe3BrOiBcImNvZGVcIiwgaW5kZXg6IHRydWUsIHRzdmVjdG9yOiB7Y29kZTogXCJBXCIsIHBhcmVudHM6IFwiQlwiLCBhbmNlc3RyeTogXCJDXCIsIGNoaWxkcmVuOiBcIkJcIn19LCBvcHQpKTtcbn1cblxuXG4vKipcbiAqIEZpbmQgbWF0Y2hpbmcgaGllcmFyY2h5IG9mIGEgY29sdW1uOmNvZGUvbmFtZS90YWdzIHF1ZXJ5LlxuICogQHBhcmFtIHR4dCBjb2x1bW46Y29kZS9uYW1lL3RhZ3MgcXVlcnlcbiAqIEByZXR1cm5zIGB7Y29kZSwgcGFyZW50cywgYW5jZXN0cnksIGNoaWxkcmVufWAgaWYgZm91bmQsIGVsc2UgbnVsbFxuICogQGV4YW1wbGVcbiAqIGBgYGphdmFzY3JpcHRcbiAqIGlmY3QyMDE3LmhpZXJhcmNoeSgnc29sdWJsZSBveGFsaWMgYWNpZCcpO1xuICogaWZjdDIwMTcuaGllcmFyY2h5KCdTb2x1YmxlIE94YWxpYyBBY2lkJyk7XG4gKiAvLyDihpIgeyBwYXJlbnRzOiAnb3hhbHQnLCBhbmNlc3RyeTogJ294YWx0IG9yZ2FjJywgY2hpbGRyZW46ICcnIH1cbiAqXG4gKiBpZmN0MjAxNy5oaWVyYXJjaHkoJ3doYXQgaXMgaGllcmFyY2h5IG9mIHRvdGFsIHNhdHVyYXRlZCBmYXQ/Jyk7XG4gKiBpZmN0MjAxNy5oaWVyYXJjaHkoJ3dobyBhcmUgY2hpbGRyZW4gb2YgdG90YWwgc2F0dXJhdGVkIGZhdD8nKTtcbiAqIC8vIOKGkiB7IHBhcmVudHM6ICdmYXRjZScsXG4gKiAvLyDihpIgICBhbmNlc3RyeTogJ2ZhdGNlJyxcbiAqIC8vIOKGkiAgIGNoaWxkcmVuOlxuICogLy8g4oaSICAgICdmNGQwIGY2ZDAgZjhkMCBmMTBkMCBmMTFkMCBmMTJkMCBmMTRkMCBmMTVkMCBmMTZkMCBmMThkMCBmMjBkMCBmMjJkMCBmMjRkMCcgfVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoaWVyYXJjaHkodHh0OiBzdHJpbmcpOiBIaWVyYXJjaHkgfCBudWxsIHtcbiAgaWYgKGNvcnB1cyA9PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgY29uc3QgY3MgPSBjb2x1bW5zKHR4dCk7XG4gIGlmICghY3MubGVuZ3RoKSByZXR1cm4gbnVsbDtcbiAgcmV0dXJuIGNvcnB1cy5nZXQoY3NbMF0uY29kZSkgfHwgbnVsbDtcbn1cbi8vI2VuZHJlZ2lvblxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNDQUFzQztBQUN0Qyw2Q0FBNkM7QUFDN0MsNkJBQTZCO0FBQzdCLFlBQVksU0FBVSxXQUFXO0FBQ2pDLE9BQU8sVUFBVSxPQUFPLENBQUUsc0NBQXNDO0FBQ2hFLFNBQThDLFVBQVUsUUFBTyxtQkFBbUI7QUFDbEYsU0FBUSxXQUFXLEVBQUUsT0FBTyxRQUFPLHNCQUFzQjtBQWlCekQsWUFBWTtBQUtaLGlCQUFpQjtBQUNqQixJQUFJLFNBQXdDO0FBQzVDLFlBQVk7QUFLWixtQkFBbUI7QUFDbkI7Ozs7Q0FJQyxHQUNELGVBQWUsWUFBWSxJQUFZO0VBQ3JDLE1BQU0sTUFBTyxJQUFJO0VBQ2pCLE1BQU0sT0FBTyxNQUFNLENBQUMsTUFBTSxNQUFNLEtBQUssRUFBRSxJQUFJO0VBQzNDLE1BQU0sVUFBVSxJQUFJLEtBQUssQ0FBQyxNQUFNO0lBQUMsY0FBYztJQUFNLFNBQVM7RUFBRztFQUNqRSxLQUFLLE1BQU0sS0FBSyxRQUNkLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFO0VBQ2xCLE9BQU87QUFDVDtBQUdBOzs7Q0FHQyxHQUNELFNBQVMsV0FBVyxNQUE4QjtFQUNoRCxPQUFPLEtBQUs7SUFDVixJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNYLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDWCw2Q0FBNkM7SUFDN0MsS0FBSyxNQUFNLEtBQUssT0FBTyxNQUFNLEdBQzNCLElBQUksQ0FBQyxHQUFHLENBQUM7RUFDYjtBQUNGO0FBR0E7OztDQUdDLEdBQ0QsT0FBTyxlQUFlO0VBQ3BCLElBQUksUUFBUSxPQUFPO0VBQ25CLE1BQU0sSUFBSTtFQUNWLFNBQVMsTUFBTSxZQUFZO0VBQWlCLE1BQU07RUFDbEQsT0FBTztBQUNUO0FBR0E7OztDQUdDLEdBQ0QsT0FBTyxTQUFTO0VBQ2QsT0FBTyxZQUFZLE9BQU8sQ0FBQztBQUM3QjtBQUdBOzs7OztDQUtDLEdBQ0QsT0FBTyxlQUFlLGFBQWEsTUFBWSxXQUFXLEVBQUUsTUFBdUIsQ0FBQyxDQUFDO0VBQ25GLE9BQU8sV0FBVyxLQUFLO0lBQUMsTUFBTTtJQUFRLFNBQVM7SUFBUSxVQUFVO0lBQVEsVUFBVTtFQUFNLEdBQ3ZGLENBQUMsTUFBTSxlQUFlLEVBQUUsTUFBTSxJQUM5QixPQUFPLE1BQU0sQ0FBQztJQUFDLElBQUk7SUFBUSxPQUFPO0lBQU0sVUFBVTtNQUFDLE1BQU07TUFBSyxTQUFTO01BQUssVUFBVTtNQUFLLFVBQVU7SUFBRztFQUFDLEdBQUc7QUFDaEg7QUFHQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FpQkMsR0FDRCxPQUFPLFNBQVMsVUFBVSxHQUFXO0VBQ25DLElBQUksVUFBVSxNQUFNLE9BQU87RUFDM0IsTUFBTSxLQUFLLFFBQVE7RUFDbkIsSUFBSSxDQUFDLEdBQUcsTUFBTSxFQUFFLE9BQU87RUFDdkIsT0FBTyxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSztBQUNuQyxFQUNBLFlBQVkifQ==
@@ -0,0 +1,14 @@
1
+ Indian Food Composition Tables 2017
2
+ T. Longvah, R. Ananthan, K. Bhaskarachary and K. Venkaiah
3
+
4
+ Copyright © 2017 by National Institute of Nutrition
5
+ Indian Council of Medical Research
6
+ Department of Health Research Ministry of Health and Family Welfare, Government of India
7
+ Jamai Osmania (PO), Hyderabad – 500 007
8
+ Telangana, India Phone: +91 40 27197334, Fax: +91 40 27000339, Email: nin@ap.nic.in
9
+
10
+ HIERARCHY
11
+ - Column Code
12
+ - List of Parent columns
13
+ - List of Ancestor columns
14
+ - List of Child columns
package/index.d.ts CHANGED
@@ -1,28 +1,24 @@
1
- import * as abbreviations from '@ifct2017/abbreviations';
2
- import * as about from '@ifct2017/about';
3
- import * as carbohydrates from '@ifct2017/carbohydrates';
4
- import * as codes from '@ifct2017/codes';
5
- import * as columns from '@ifct2017/columns';
6
- import * as compositingCentres from '@ifct2017/compositingcentres';
7
- import * as compositions from '@ifct2017/compositions';
8
- import * as contents from '@ifct2017/contents';
9
- import * as descriptions from '@ifct2017/descriptions';
10
- import * as energies from '@ifct2017/energies';
11
- import * as frequencyDistribution from '@ifct2017/frequencydistribution';
12
- import * as groups from '@ifct2017/groups';
13
- import * as hierarchy from '@ifct2017/hierarchy';
14
- import * as intakes from '@ifct2017/intakes';
15
- import * as jonesFactors from '@ifct2017/jonesfactors';
16
- import * as languages from '@ifct2017/languages';
17
- import * as methods from '@ifct2017/methods';
18
- import * as nutrients from '@ifct2017/nutrients';
19
- import * as regions from '@ifct2017/regions';
20
- import * as representations from '@ifct2017/representations';
21
- import * as samplingUnits from '@ifct2017/samplingunits';
22
- import * as pictures from './pictures';
23
- export {
24
- abbreviations, about, carbohydrates, codes, columns, compositingCentres,
25
- compositions, contents, descriptions, energies, frequencyDistribution,
26
- groups, hierarchy, intakes, jonesFactors, languages, methods, nutrients,
27
- pictures, regions, representations, samplingUnits
28
- };
1
+ export * from "./abbreviations/index.js";
2
+ export * from "./about/index.js";
3
+ export * from "./carbohydrates/index.js";
4
+ export * from "./codes/index.js";
5
+ export * from "./columns/index.js";
6
+ export * from "./compositingcentres/index.js";
7
+ export * from "./compositions/index.js";
8
+ export * from "./compositionstats/index.js";
9
+ export * from "./contents/index.js";
10
+ export * from "./descriptions/index.js";
11
+ export * from "./energies/index.js";
12
+ export * from "./frequencydistribution/index.js";
13
+ export * from "./groups/index.js";
14
+ export * from "./hierarchy/index.js";
15
+ export * from "./intakes/index.js";
16
+ export * from "./jonesfactors/index.js";
17
+ export * from "./languages/index.js";
18
+ export * from "./methods/index.js";
19
+ export * from "./groups/index.js";
20
+ export * from "./regions/index.js";
21
+ export * from "./representations/index.js";
22
+ export * from "./samplingunits/index.js";
23
+ export * from "./yieldfactors/index.js";
24
+ export * from "./columndescriptions/index.js";
package/index.js CHANGED
@@ -1,39 +1,28 @@
1
- function pictures(code) {
2
- return null;
3
- }
4
-
5
- function unpkg(code) {
6
- if(code[0]>='M' && code[0]<'P') return null;
7
- return `https://unpkg.com/@ifct2017/pictures/assets/${code}.jpeg`;
8
- }
9
-
10
- function jsdelivr(code) {
11
- if(code[0]>='M' && code[0]<'P') return null;
12
- return `https://cdn.jsdelivr.net/npm/@ifct2017/pictures/assets/${code}.jpeg`;
13
- }
14
-
15
-
16
- exports.abbreviations = require('@ifct2017/abbreviations');
17
- exports.about = require('@ifct2017/about');
18
- exports.carbohydrates = require('@ifct2017/carbohydrates');
19
- exports.codes = require('@ifct2017/codes');
20
- exports.columns = require('@ifct2017/columns');
21
- exports.compositingCentres = require('@ifct2017/compositingcentres');
22
- exports.compositions = require('@ifct2017/compositions');
23
- exports.contents = require('@ifct2017/contents');
24
- exports.descriptions = require('@ifct2017/descriptions');
25
- exports.energies = require('@ifct2017/energies');
26
- exports.frequencyDistribution = require('@ifct2017/frequencydistribution');
27
- exports.groups = require('@ifct2017/groups');
28
- exports.hierarchy = require('@ifct2017/hierarchy');
29
- exports.intakes = require('@ifct2017/intakes');
30
- exports.jonesFactors = require('@ifct2017/jonesfactors');
31
- exports.languages = require('@ifct2017/languages');
32
- exports.methods = require('@ifct2017/methods');
33
- exports.nutrients = require('@ifct2017/nutrients');
34
- exports.regions = require('@ifct2017/regions');
35
- exports.representations = require('@ifct2017/representations');
36
- exports.samplingUnits = require('@ifct2017/samplingunits');
37
- pictures.unpkg = unpkg;
38
- pictures.jsdelivr = jsdelivr;
39
- exports.pictures = pictures;
1
+ // Copyright (C) 2025-26 Subhajit Sahu
2
+ // SPDX-License-Identifier: AGPL-3.0-or-later
3
+ // See LICENSE for full terms
4
+ export * from "./abbreviations/index.js";
5
+ export * from "./about/index.js";
6
+ export * from "./carbohydrates/index.js";
7
+ export * from "./codes/index.js";
8
+ export * from "./columns/index.js";
9
+ export * from "./compositingcentres/index.js";
10
+ export * from "./compositions/index.js";
11
+ export * from "./compositionstats/index.js";
12
+ export * from "./contents/index.js";
13
+ export * from "./descriptions/index.js";
14
+ export * from "./energies/index.js";
15
+ export * from "./frequencydistribution/index.js";
16
+ export * from "./groups/index.js";
17
+ export * from "./hierarchy/index.js";
18
+ export * from "./intakes/index.js";
19
+ export * from "./jonesfactors/index.js";
20
+ export * from "./languages/index.js";
21
+ export * from "./methods/index.js";
22
+ export * from "./groups/index.js";
23
+ export * from "./regions/index.js";
24
+ export * from "./representations/index.js";
25
+ export * from "./samplingunits/index.js";
26
+ export * from "./yieldfactors/index.js";
27
+ export * from "./columndescriptions/index.js";
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9pZmN0MjAxNy9pZmN0MjAxNy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKEMpIDIwMjUtMjYgU3ViaGFqaXQgU2FodVxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9yLWxhdGVyXG4vLyBTZWUgTElDRU5TRSBmb3IgZnVsbCB0ZXJtc1xuZXhwb3J0ICogZnJvbSBcIi4vYWJicmV2aWF0aW9ucy9pbmRleC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vYWJvdXQvaW5kZXguanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NhcmJvaHlkcmF0ZXMvaW5kZXguanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvZGVzL2luZGV4LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb2x1bW5zL2luZGV4LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb3NpdGluZ2NlbnRyZXMvaW5kZXguanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvc2l0aW9ucy9pbmRleC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9zaXRpb25zdGF0cy9pbmRleC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29udGVudHMvaW5kZXguanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Rlc2NyaXB0aW9ucy9pbmRleC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW5lcmdpZXMvaW5kZXguanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ZyZXF1ZW5jeWRpc3RyaWJ1dGlvbi9pbmRleC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ3JvdXBzL2luZGV4LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9oaWVyYXJjaHkvaW5kZXguanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ludGFrZXMvaW5kZXguanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2pvbmVzZmFjdG9ycy9pbmRleC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGFuZ3VhZ2VzL2luZGV4LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tZXRob2RzL2luZGV4LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ncm91cHMvaW5kZXguanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JlZ2lvbnMvaW5kZXguanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JlcHJlc2VudGF0aW9ucy9pbmRleC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2FtcGxpbmd1bml0cy9pbmRleC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4veWllbGRmYWN0b3JzL2luZGV4LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb2x1bW5kZXNjcmlwdGlvbnMvaW5kZXguanNcIjtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzQ0FBc0M7QUFDdEMsNkNBQTZDO0FBQzdDLDZCQUE2QjtBQUM3QixjQUFjLDJCQUEyQjtBQUN6QyxjQUFjLG1CQUFtQjtBQUNqQyxjQUFjLDJCQUEyQjtBQUN6QyxjQUFjLG1CQUFtQjtBQUNqQyxjQUFjLHFCQUFxQjtBQUNuQyxjQUFjLGdDQUFnQztBQUM5QyxjQUFjLDBCQUEwQjtBQUN4QyxjQUFjLDhCQUE4QjtBQUM1QyxjQUFjLHNCQUFzQjtBQUNwQyxjQUFjLDBCQUEwQjtBQUN4QyxjQUFjLHNCQUFzQjtBQUNwQyxjQUFjLG1DQUFtQztBQUNqRCxjQUFjLG9CQUFvQjtBQUNsQyxjQUFjLHVCQUF1QjtBQUNyQyxjQUFjLHFCQUFxQjtBQUNuQyxjQUFjLDBCQUEwQjtBQUN4QyxjQUFjLHVCQUF1QjtBQUNyQyxjQUFjLHFCQUFxQjtBQUNuQyxjQUFjLG9CQUFvQjtBQUNsQyxjQUFjLHFCQUFxQjtBQUNuQyxjQUFjLDZCQUE2QjtBQUMzQyxjQUFjLDJCQUEyQjtBQUN6QyxjQUFjLDBCQUEwQjtBQUN4QyxjQUFjLGdDQUFnQyJ9