@milaboratories/pframes-rs-node 1.0.57 → 1.0.63

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 (40) hide show
  1. package/README.md +17 -5
  2. package/export/addon-def.ts +0 -1
  3. package/export/dump.ts +13 -14
  4. package/export/export.ts +10 -10
  5. package/export/index.ts +2 -1
  6. package/export/wrapper.ts +143 -132
  7. package/export_dist/addon-def.d.ts +1 -1
  8. package/export_dist/addon-def.d.ts.map +1 -1
  9. package/export_dist/addon.cjs +24 -0
  10. package/export_dist/addon.cjs.map +1 -0
  11. package/export_dist/addon.d.ts +1 -1
  12. package/export_dist/addon.js +21 -0
  13. package/export_dist/addon.js.map +1 -0
  14. package/export_dist/dump.cjs +133 -0
  15. package/export_dist/dump.cjs.map +1 -0
  16. package/export_dist/dump.d.ts +1 -1
  17. package/export_dist/dump.d.ts.map +1 -1
  18. package/export_dist/dump.js +125 -0
  19. package/export_dist/dump.js.map +1 -0
  20. package/export_dist/export.cjs +15 -0
  21. package/export_dist/export.cjs.map +1 -0
  22. package/export_dist/export.d.ts +2 -6
  23. package/export_dist/export.d.ts.map +1 -1
  24. package/export_dist/export.js +13 -0
  25. package/export_dist/export.js.map +1 -0
  26. package/export_dist/index.cjs +13 -0
  27. package/export_dist/index.cjs.map +1 -0
  28. package/export_dist/index.d.ts +2 -1
  29. package/export_dist/index.d.ts.map +1 -1
  30. package/export_dist/index.js +2 -21
  31. package/export_dist/index.js.map +1 -1
  32. package/export_dist/wrapper.cjs +511 -0
  33. package/export_dist/wrapper.cjs.map +1 -0
  34. package/export_dist/wrapper.d.ts +32 -10
  35. package/export_dist/wrapper.d.ts.map +1 -1
  36. package/export_dist/wrapper.js +508 -0
  37. package/export_dist/wrapper.js.map +1 -0
  38. package/package.json +34 -33
  39. package/export_dist/index.mjs +0 -765
  40. package/export_dist/index.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { PColumnInfo, PColumnSpec, PObjectId, PTableColumnId, PTableColumnSpec, PTableRecordFilter, PTableShape, PTableSorting, PTableVector, TableRange, UniqueValuesRequest, UniqueValuesResponse } from '@milaboratories/pl-model-common';
2
- import { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
2
+ import type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
3
3
  export type FrameId = string & {
4
4
  __brand: 'FrameId';
5
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"addon-def.d.ts","sourceRoot":"","sources":["../export/addon-def.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"addon-def.d.ts","sourceRoot":"","sources":["../export/addon-def.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ var node_module = require('node:module');
4
+ var path = require('node:path');
5
+ var node_url = require('node:url');
6
+ var gyp = require('@mapbox/node-pre-gyp');
7
+
8
+ var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
9
+ const nodeFileUrl = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('addon.cjs', document.baseURI).href));
10
+ const nodeDirname = path.dirname(node_url.fileURLToPath(nodeFileUrl));
11
+ const nodeRequire = node_module.createRequire(nodeFileUrl);
12
+ const { find: findAddon } = gyp;
13
+ // Pre-gyp reads binary section from package.json and constructs a path to addon
14
+ // https://github.com/mapbox/node-pre-gyp/blob/a541932680034f5de9e7365ef8d9a0d7a11cc1a9/lib/package.js#L35
15
+ // Require calls dlopen under the hood
16
+ // https://nodejs.org/api/process.html#processdlopenmodule-filename-flags
17
+ // DLOpen then searches for napi_register_module_v1 in addon export table
18
+ // https://github.com/search?q=repo%3Anodejs%2Fnode%20NAPI_MODULE_INITIALIZER&type=code
19
+ // And neon exports napi_register_module_v1 from #[neon::main]
20
+ // https://github.com/neon-bindings/neon/blob/b1728fa21e968ccde9611ac9955cf6d638be16e6/crates/neon/src/context/internal.rs#L76
21
+ const AddonSymbol = nodeRequire(findAddon(path.resolve(nodeDirname, '../package.json')));
22
+
23
+ exports.AddonSymbol = AddonSymbol;
24
+ //# sourceMappingURL=addon.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addon.cjs","sources":["../export/addon.ts"],"sourcesContent":["import { createRequire } from 'node:module';\nimport { dirname, resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport gyp from '@mapbox/node-pre-gyp';\nimport type { AddonSymbol } from './addon-def';\n\nconst nodeFileUrl = import.meta.url;\nconst nodeDirname = dirname(fileURLToPath(nodeFileUrl));\nconst nodeRequire = createRequire(nodeFileUrl);\n\nconst { find: findAddon } = gyp;\n\n// Pre-gyp reads binary section from package.json and constructs a path to addon\n// https://github.com/mapbox/node-pre-gyp/blob/a541932680034f5de9e7365ef8d9a0d7a11cc1a9/lib/package.js#L35\n// Require calls dlopen under the hood\n// https://nodejs.org/api/process.html#processdlopenmodule-filename-flags\n// DLOpen then searches for napi_register_module_v1 in addon export table\n// https://github.com/search?q=repo%3Anodejs%2Fnode%20NAPI_MODULE_INITIALIZER&type=code\n// And neon exports napi_register_module_v1 from #[neon::main]\n// https://github.com/neon-bindings/neon/blob/b1728fa21e968ccde9611ac9955cf6d638be16e6/crates/neon/src/context/internal.rs#L76\nconst AddonSymbol = nodeRequire(\n findAddon(resolve(nodeDirname, '../package.json'))\n) as AddonSymbol;\n\nexport { AddonSymbol };\n"],"names":["dirname","fileURLToPath","createRequire","resolve"],"mappings":";;;;;;;;AAMA,MAAM,WAAW,GAAG,2PAAe;AACnC,MAAM,WAAW,GAAGA,YAAO,CAACC,sBAAa,CAAC,WAAW,CAAC,CAAC;AACvD,MAAM,WAAW,GAAGC,yBAAa,CAAC,WAAW,CAAC;AAE9C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,GAAG;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,GAAG,WAAW,CAC7B,SAAS,CAACC,YAAO,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;;;;"}
@@ -1,4 +1,4 @@
1
- import { AddonSymbol } from './addon-def';
1
+ import type { AddonSymbol } from './addon-def';
2
2
  declare const AddonSymbol: AddonSymbol;
3
3
  export { AddonSymbol };
4
4
  //# sourceMappingURL=addon.d.ts.map
@@ -0,0 +1,21 @@
1
+ import { createRequire } from 'node:module';
2
+ import { dirname, resolve } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import gyp from '@mapbox/node-pre-gyp';
5
+
6
+ const nodeFileUrl = import.meta.url;
7
+ const nodeDirname = dirname(fileURLToPath(nodeFileUrl));
8
+ const nodeRequire = createRequire(nodeFileUrl);
9
+ const { find: findAddon } = gyp;
10
+ // Pre-gyp reads binary section from package.json and constructs a path to addon
11
+ // https://github.com/mapbox/node-pre-gyp/blob/a541932680034f5de9e7365ef8d9a0d7a11cc1a9/lib/package.js#L35
12
+ // Require calls dlopen under the hood
13
+ // https://nodejs.org/api/process.html#processdlopenmodule-filename-flags
14
+ // DLOpen then searches for napi_register_module_v1 in addon export table
15
+ // https://github.com/search?q=repo%3Anodejs%2Fnode%20NAPI_MODULE_INITIALIZER&type=code
16
+ // And neon exports napi_register_module_v1 from #[neon::main]
17
+ // https://github.com/neon-bindings/neon/blob/b1728fa21e968ccde9611ac9955cf6d638be16e6/crates/neon/src/context/internal.rs#L76
18
+ const AddonSymbol = nodeRequire(findAddon(resolve(nodeDirname, '../package.json')));
19
+
20
+ export { AddonSymbol };
21
+ //# sourceMappingURL=addon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addon.js","sources":["../export/addon.ts"],"sourcesContent":["import { createRequire } from 'node:module';\nimport { dirname, resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport gyp from '@mapbox/node-pre-gyp';\nimport type { AddonSymbol } from './addon-def';\n\nconst nodeFileUrl = import.meta.url;\nconst nodeDirname = dirname(fileURLToPath(nodeFileUrl));\nconst nodeRequire = createRequire(nodeFileUrl);\n\nconst { find: findAddon } = gyp;\n\n// Pre-gyp reads binary section from package.json and constructs a path to addon\n// https://github.com/mapbox/node-pre-gyp/blob/a541932680034f5de9e7365ef8d9a0d7a11cc1a9/lib/package.js#L35\n// Require calls dlopen under the hood\n// https://nodejs.org/api/process.html#processdlopenmodule-filename-flags\n// DLOpen then searches for napi_register_module_v1 in addon export table\n// https://github.com/search?q=repo%3Anodejs%2Fnode%20NAPI_MODULE_INITIALIZER&type=code\n// And neon exports napi_register_module_v1 from #[neon::main]\n// https://github.com/neon-bindings/neon/blob/b1728fa21e968ccde9611ac9955cf6d638be16e6/crates/neon/src/context/internal.rs#L76\nconst AddonSymbol = nodeRequire(\n findAddon(resolve(nodeDirname, '../package.json'))\n) as AddonSymbol;\n\nexport { AddonSymbol };\n"],"names":[],"mappings":";;;;;AAMA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;AACnC,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AACvD,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;AAE9C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,GAAG;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,GAAG,WAAW,CAC7B,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;;;;"}
@@ -0,0 +1,133 @@
1
+ 'use strict';
2
+
3
+ var node_crypto = require('node:crypto');
4
+ var node_fs = require('node:fs');
5
+ var path = require('node:path');
6
+ var node_stream = require('node:stream');
7
+ var promises = require('node:stream/promises');
8
+
9
+ function fileExists(path) {
10
+ return node_fs.promises
11
+ .access(path)
12
+ .then(() => true)
13
+ .catch(() => false);
14
+ }
15
+ async function ensureDirExists(fileOrDir) {
16
+ if (!(await fileExists(fileOrDir))) {
17
+ await node_fs.promises.mkdir(fileOrDir, { recursive: true });
18
+ }
19
+ }
20
+ async function writeFile(filePath, data) {
21
+ const tempPath = `${filePath}.tmp`;
22
+ if (await fileExists(tempPath)) {
23
+ await node_fs.promises.rm(tempPath, { recursive: true });
24
+ }
25
+ const buffer = typeof data === 'string' ? Buffer.from(data, 'utf8') : data;
26
+ const source = node_stream.Readable.from(buffer);
27
+ const destination = node_fs.createWriteStream(tempPath, { flags: 'wx' });
28
+ await promises.pipeline(source, destination);
29
+ await node_fs.promises.rename(tempPath, filePath);
30
+ }
31
+ function hashColumnId(columnId) {
32
+ return node_crypto.createHash('sha256').update(columnId).digest('hex');
33
+ }
34
+ function hashTableColumnId(tableId) {
35
+ if (tableId.type === 'column') {
36
+ return {
37
+ ...tableId,
38
+ id: hashColumnId(tableId.id)
39
+ };
40
+ }
41
+ return tableId;
42
+ }
43
+ function hashFilterColumnId(filter) {
44
+ return {
45
+ ...filter,
46
+ column: hashTableColumnId(filter.column)
47
+ };
48
+ }
49
+ function hashUniqueValuesRequestColumnId(request) {
50
+ return {
51
+ ...request,
52
+ columnId: hashColumnId(request.columnId),
53
+ filters: request.filters.map(hashFilterColumnId)
54
+ };
55
+ }
56
+ function hashSortingColumnId(sorting) {
57
+ return {
58
+ ...sorting,
59
+ column: hashTableColumnId(sorting.column)
60
+ };
61
+ }
62
+ function hashJoinEntryColumnId(entry) {
63
+ const type = entry.type;
64
+ switch (type) {
65
+ case 'column':
66
+ return {
67
+ ...entry,
68
+ columnId: hashColumnId(entry.columnId)
69
+ };
70
+ case 'slicedColumn':
71
+ return {
72
+ ...entry,
73
+ columnId: hashColumnId(entry.columnId),
74
+ newId: hashColumnId(entry.newId)
75
+ };
76
+ case 'inlineColumn':
77
+ return {
78
+ ...entry,
79
+ newId: hashColumnId(entry.newId)
80
+ };
81
+ case 'inner':
82
+ return {
83
+ ...entry,
84
+ entries: entry.entries.map(hashJoinEntryColumnId)
85
+ };
86
+ case 'full':
87
+ return {
88
+ ...entry,
89
+ entries: entry.entries.map(hashJoinEntryColumnId)
90
+ };
91
+ case 'outer':
92
+ return {
93
+ ...entry,
94
+ primary: hashJoinEntryColumnId(entry.primary),
95
+ secondary: entry.secondary.map(hashJoinEntryColumnId)
96
+ };
97
+ default:
98
+ throw new Error(`Unsupported join entry type: ${type}`);
99
+ }
100
+ }
101
+ function hashCreateTableRequestColumnId(request) {
102
+ return {
103
+ ...request,
104
+ src: hashJoinEntryColumnId(request.src),
105
+ filters: request.filters.map(hashFilterColumnId)
106
+ };
107
+ }
108
+ async function dump(relativePath, data, logger) {
109
+ if (!process.env.MI_DUMP_PFRAMES_RS)
110
+ return;
111
+ try {
112
+ const relativeUri = relativePath.map((part) => encodeURIComponent(part));
113
+ const fileDir = path.join(process.env.MI_DUMP_PFRAMES_RS, ...relativeUri.slice(0, -1));
114
+ await ensureDirExists(fileDir);
115
+ const filePath = path.join(process.env.MI_DUMP_PFRAMES_RS, ...relativeUri);
116
+ const fileData = ArrayBuffer.isView(data)
117
+ ? data
118
+ : JSON.stringify(data, null, 2);
119
+ await writeFile(filePath, fileData);
120
+ }
121
+ catch (error) {
122
+ logger?.('warn', `error while dumping PFrames data: ${error}`);
123
+ }
124
+ }
125
+
126
+ exports.dump = dump;
127
+ exports.hashColumnId = hashColumnId;
128
+ exports.hashCreateTableRequestColumnId = hashCreateTableRequestColumnId;
129
+ exports.hashFilterColumnId = hashFilterColumnId;
130
+ exports.hashSortingColumnId = hashSortingColumnId;
131
+ exports.hashTableColumnId = hashTableColumnId;
132
+ exports.hashUniqueValuesRequestColumnId = hashUniqueValuesRequestColumnId;
133
+ //# sourceMappingURL=dump.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dump.cjs","sources":["../export/dump.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport { createWriteStream, promises as fs } from 'node:fs';\nimport path from 'node:path';\nimport { Readable } from 'node:stream';\nimport { pipeline } from 'node:stream/promises';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport {\n PObjectId,\n PTableColumnId,\n PTableRecordFilter,\n PTableSorting,\n UniqueValuesRequest\n} from '@milaboratories/pl-model-common';\n\nfunction fileExists(path: string): Promise<boolean> {\n return fs\n .access(path)\n .then(() => true)\n .catch(() => false);\n}\n\nasync function ensureDirExists(fileOrDir: string): Promise<void> {\n if (!(await fileExists(fileOrDir))) {\n await fs.mkdir(fileOrDir, { recursive: true });\n }\n}\n\nasync function writeFile(\n filePath: string,\n data: string | Uint8Array\n): Promise<void> {\n const tempPath = `${filePath}.tmp`;\n if (await fileExists(tempPath)) {\n await fs.rm(tempPath, { recursive: true });\n }\n\n const buffer = typeof data === 'string' ? Buffer.from(data, 'utf8') : data;\n const source = Readable.from(buffer);\n const destination = createWriteStream(tempPath, { flags: 'wx' });\n await pipeline(source, destination);\n\n await fs.rename(tempPath, filePath);\n}\n\nexport function hashColumnId(columnId: PObjectId): PObjectId {\n return createHash('sha256').update(columnId).digest('hex') as PObjectId;\n}\n\nexport function hashTableColumnId(tableId: PTableColumnId): PTableColumnId {\n if (tableId.type === 'column') {\n return {\n ...tableId,\n id: hashColumnId(tableId.id)\n };\n }\n return tableId;\n}\n\nexport function hashFilterColumnId(\n filter: PTableRecordFilter\n): PTableRecordFilter {\n return {\n ...filter,\n column: hashTableColumnId(filter.column)\n };\n}\n\nexport function hashUniqueValuesRequestColumnId(\n request: UniqueValuesRequest\n): UniqueValuesRequest {\n return {\n ...request,\n columnId: hashColumnId(request.columnId),\n filters: request.filters.map(hashFilterColumnId)\n };\n}\n\nexport function hashSortingColumnId(sorting: PTableSorting): PTableSorting {\n return {\n ...sorting,\n column: hashTableColumnId(sorting.column)\n };\n}\n\nfunction hashJoinEntryColumnId(\n entry: PFrameInternal.JoinEntryV3\n): PFrameInternal.JoinEntryV3 {\n const type = entry.type;\n switch (type) {\n case 'column':\n return {\n ...entry,\n columnId: hashColumnId(entry.columnId)\n };\n case 'slicedColumn':\n return {\n ...entry,\n columnId: hashColumnId(entry.columnId),\n newId: hashColumnId(entry.newId)\n };\n case 'inlineColumn':\n return {\n ...entry,\n newId: hashColumnId(entry.newId)\n };\n case 'inner':\n return {\n ...entry,\n entries: entry.entries.map(hashJoinEntryColumnId)\n };\n case 'full':\n return {\n ...entry,\n entries: entry.entries.map(hashJoinEntryColumnId)\n };\n case 'outer':\n return {\n ...entry,\n primary: hashJoinEntryColumnId(entry.primary),\n secondary: entry.secondary.map(hashJoinEntryColumnId)\n };\n default:\n throw new Error(`Unsupported join entry type: ${type}`);\n }\n}\n\nexport function hashCreateTableRequestColumnId(\n request: PFrameInternal.CreateTableRequestV3\n): PFrameInternal.CreateTableRequestV3 {\n return {\n ...request,\n src: hashJoinEntryColumnId(request.src),\n filters: request.filters.map(hashFilterColumnId)\n };\n}\n\nexport async function dump(\n relativePath: string[],\n data: { [key: string]: Object } | Uint8Array,\n logger?: PFrameInternal.Logger\n): Promise<void> {\n if (!process.env.MI_DUMP_PFRAMES_RS) return;\n try {\n const relativeUri = relativePath.map((part) => encodeURIComponent(part));\n const fileDir = path.join(\n process.env.MI_DUMP_PFRAMES_RS,\n ...relativeUri.slice(0, -1)\n );\n await ensureDirExists(fileDir);\n\n const filePath = path.join(process.env.MI_DUMP_PFRAMES_RS, ...relativeUri);\n const fileData = ArrayBuffer.isView(data)\n ? (data as Uint8Array)\n : JSON.stringify(data, null, 2);\n await writeFile(filePath, fileData);\n } catch (error: unknown) {\n logger?.('warn', `error while dumping PFrames data: ${error}`);\n }\n}\n"],"names":["fs","Readable","createWriteStream","pipeline","createHash"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
1
+ import type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
2
2
  import { PObjectId, PTableColumnId, PTableRecordFilter, PTableSorting, UniqueValuesRequest } from '@milaboratories/pl-model-common';
3
3
  export declare function hashColumnId(columnId: PObjectId): PObjectId;
4
4
  export declare function hashTableColumnId(tableId: PTableColumnId): PTableColumnId;
@@ -1 +1 @@
1
- {"version":3,"file":"dump.d.ts","sourceRoot":"","sources":["../export/dump.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EACL,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAkCzC,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,CAE3D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAQzE;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,GACzB,kBAAkB,CAKpB;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,mBAAmB,GAC3B,mBAAmB,CAMrB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAKzE;AA4CD,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,cAAc,CAAC,oBAAoB,GAC3C,cAAc,CAAC,oBAAoB,CAMrC;AAED,wBAAsB,IAAI,CACxB,YAAY,EAAE,MAAM,EAAE,EACtB,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GAAG,UAAU,EAC5C,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,GAC7B,OAAO,CAAC,IAAI,CAAC,CAkBf"}
1
+ {"version":3,"file":"dump.d.ts","sourceRoot":"","sources":["../export/dump.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EACL,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAgCzC,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,CAE3D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAQzE;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,GACzB,kBAAkB,CAKpB;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,mBAAmB,GAC3B,mBAAmB,CAMrB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAKzE;AA4CD,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,cAAc,CAAC,oBAAoB,GAC3C,cAAc,CAAC,oBAAoB,CAMrC;AAED,wBAAsB,IAAI,CACxB,YAAY,EAAE,MAAM,EAAE,EACtB,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GAAG,UAAU,EAC5C,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,GAC7B,OAAO,CAAC,IAAI,CAAC,CAkBf"}
@@ -0,0 +1,125 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { promises, createWriteStream } from 'node:fs';
3
+ import path from 'node:path';
4
+ import { Readable } from 'node:stream';
5
+ import { pipeline } from 'node:stream/promises';
6
+
7
+ function fileExists(path) {
8
+ return promises
9
+ .access(path)
10
+ .then(() => true)
11
+ .catch(() => false);
12
+ }
13
+ async function ensureDirExists(fileOrDir) {
14
+ if (!(await fileExists(fileOrDir))) {
15
+ await promises.mkdir(fileOrDir, { recursive: true });
16
+ }
17
+ }
18
+ async function writeFile(filePath, data) {
19
+ const tempPath = `${filePath}.tmp`;
20
+ if (await fileExists(tempPath)) {
21
+ await promises.rm(tempPath, { recursive: true });
22
+ }
23
+ const buffer = typeof data === 'string' ? Buffer.from(data, 'utf8') : data;
24
+ const source = Readable.from(buffer);
25
+ const destination = createWriteStream(tempPath, { flags: 'wx' });
26
+ await pipeline(source, destination);
27
+ await promises.rename(tempPath, filePath);
28
+ }
29
+ function hashColumnId(columnId) {
30
+ return createHash('sha256').update(columnId).digest('hex');
31
+ }
32
+ function hashTableColumnId(tableId) {
33
+ if (tableId.type === 'column') {
34
+ return {
35
+ ...tableId,
36
+ id: hashColumnId(tableId.id)
37
+ };
38
+ }
39
+ return tableId;
40
+ }
41
+ function hashFilterColumnId(filter) {
42
+ return {
43
+ ...filter,
44
+ column: hashTableColumnId(filter.column)
45
+ };
46
+ }
47
+ function hashUniqueValuesRequestColumnId(request) {
48
+ return {
49
+ ...request,
50
+ columnId: hashColumnId(request.columnId),
51
+ filters: request.filters.map(hashFilterColumnId)
52
+ };
53
+ }
54
+ function hashSortingColumnId(sorting) {
55
+ return {
56
+ ...sorting,
57
+ column: hashTableColumnId(sorting.column)
58
+ };
59
+ }
60
+ function hashJoinEntryColumnId(entry) {
61
+ const type = entry.type;
62
+ switch (type) {
63
+ case 'column':
64
+ return {
65
+ ...entry,
66
+ columnId: hashColumnId(entry.columnId)
67
+ };
68
+ case 'slicedColumn':
69
+ return {
70
+ ...entry,
71
+ columnId: hashColumnId(entry.columnId),
72
+ newId: hashColumnId(entry.newId)
73
+ };
74
+ case 'inlineColumn':
75
+ return {
76
+ ...entry,
77
+ newId: hashColumnId(entry.newId)
78
+ };
79
+ case 'inner':
80
+ return {
81
+ ...entry,
82
+ entries: entry.entries.map(hashJoinEntryColumnId)
83
+ };
84
+ case 'full':
85
+ return {
86
+ ...entry,
87
+ entries: entry.entries.map(hashJoinEntryColumnId)
88
+ };
89
+ case 'outer':
90
+ return {
91
+ ...entry,
92
+ primary: hashJoinEntryColumnId(entry.primary),
93
+ secondary: entry.secondary.map(hashJoinEntryColumnId)
94
+ };
95
+ default:
96
+ throw new Error(`Unsupported join entry type: ${type}`);
97
+ }
98
+ }
99
+ function hashCreateTableRequestColumnId(request) {
100
+ return {
101
+ ...request,
102
+ src: hashJoinEntryColumnId(request.src),
103
+ filters: request.filters.map(hashFilterColumnId)
104
+ };
105
+ }
106
+ async function dump(relativePath, data, logger) {
107
+ if (!process.env.MI_DUMP_PFRAMES_RS)
108
+ return;
109
+ try {
110
+ const relativeUri = relativePath.map((part) => encodeURIComponent(part));
111
+ const fileDir = path.join(process.env.MI_DUMP_PFRAMES_RS, ...relativeUri.slice(0, -1));
112
+ await ensureDirExists(fileDir);
113
+ const filePath = path.join(process.env.MI_DUMP_PFRAMES_RS, ...relativeUri);
114
+ const fileData = ArrayBuffer.isView(data)
115
+ ? data
116
+ : JSON.stringify(data, null, 2);
117
+ await writeFile(filePath, fileData);
118
+ }
119
+ catch (error) {
120
+ logger?.('warn', `error while dumping PFrames data: ${error}`);
121
+ }
122
+ }
123
+
124
+ export { dump, hashColumnId, hashCreateTableRequestColumnId, hashFilterColumnId, hashSortingColumnId, hashTableColumnId, hashUniqueValuesRequestColumnId };
125
+ //# sourceMappingURL=dump.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dump.js","sources":["../export/dump.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport { createWriteStream, promises as fs } from 'node:fs';\nimport path from 'node:path';\nimport { Readable } from 'node:stream';\nimport { pipeline } from 'node:stream/promises';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport {\n PObjectId,\n PTableColumnId,\n PTableRecordFilter,\n PTableSorting,\n UniqueValuesRequest\n} from '@milaboratories/pl-model-common';\n\nfunction fileExists(path: string): Promise<boolean> {\n return fs\n .access(path)\n .then(() => true)\n .catch(() => false);\n}\n\nasync function ensureDirExists(fileOrDir: string): Promise<void> {\n if (!(await fileExists(fileOrDir))) {\n await fs.mkdir(fileOrDir, { recursive: true });\n }\n}\n\nasync function writeFile(\n filePath: string,\n data: string | Uint8Array\n): Promise<void> {\n const tempPath = `${filePath}.tmp`;\n if (await fileExists(tempPath)) {\n await fs.rm(tempPath, { recursive: true });\n }\n\n const buffer = typeof data === 'string' ? Buffer.from(data, 'utf8') : data;\n const source = Readable.from(buffer);\n const destination = createWriteStream(tempPath, { flags: 'wx' });\n await pipeline(source, destination);\n\n await fs.rename(tempPath, filePath);\n}\n\nexport function hashColumnId(columnId: PObjectId): PObjectId {\n return createHash('sha256').update(columnId).digest('hex') as PObjectId;\n}\n\nexport function hashTableColumnId(tableId: PTableColumnId): PTableColumnId {\n if (tableId.type === 'column') {\n return {\n ...tableId,\n id: hashColumnId(tableId.id)\n };\n }\n return tableId;\n}\n\nexport function hashFilterColumnId(\n filter: PTableRecordFilter\n): PTableRecordFilter {\n return {\n ...filter,\n column: hashTableColumnId(filter.column)\n };\n}\n\nexport function hashUniqueValuesRequestColumnId(\n request: UniqueValuesRequest\n): UniqueValuesRequest {\n return {\n ...request,\n columnId: hashColumnId(request.columnId),\n filters: request.filters.map(hashFilterColumnId)\n };\n}\n\nexport function hashSortingColumnId(sorting: PTableSorting): PTableSorting {\n return {\n ...sorting,\n column: hashTableColumnId(sorting.column)\n };\n}\n\nfunction hashJoinEntryColumnId(\n entry: PFrameInternal.JoinEntryV3\n): PFrameInternal.JoinEntryV3 {\n const type = entry.type;\n switch (type) {\n case 'column':\n return {\n ...entry,\n columnId: hashColumnId(entry.columnId)\n };\n case 'slicedColumn':\n return {\n ...entry,\n columnId: hashColumnId(entry.columnId),\n newId: hashColumnId(entry.newId)\n };\n case 'inlineColumn':\n return {\n ...entry,\n newId: hashColumnId(entry.newId)\n };\n case 'inner':\n return {\n ...entry,\n entries: entry.entries.map(hashJoinEntryColumnId)\n };\n case 'full':\n return {\n ...entry,\n entries: entry.entries.map(hashJoinEntryColumnId)\n };\n case 'outer':\n return {\n ...entry,\n primary: hashJoinEntryColumnId(entry.primary),\n secondary: entry.secondary.map(hashJoinEntryColumnId)\n };\n default:\n throw new Error(`Unsupported join entry type: ${type}`);\n }\n}\n\nexport function hashCreateTableRequestColumnId(\n request: PFrameInternal.CreateTableRequestV3\n): PFrameInternal.CreateTableRequestV3 {\n return {\n ...request,\n src: hashJoinEntryColumnId(request.src),\n filters: request.filters.map(hashFilterColumnId)\n };\n}\n\nexport async function dump(\n relativePath: string[],\n data: { [key: string]: Object } | Uint8Array,\n logger?: PFrameInternal.Logger\n): Promise<void> {\n if (!process.env.MI_DUMP_PFRAMES_RS) return;\n try {\n const relativeUri = relativePath.map((part) => encodeURIComponent(part));\n const fileDir = path.join(\n process.env.MI_DUMP_PFRAMES_RS,\n ...relativeUri.slice(0, -1)\n );\n await ensureDirExists(fileDir);\n\n const filePath = path.join(process.env.MI_DUMP_PFRAMES_RS, ...relativeUri);\n const fileData = ArrayBuffer.isView(data)\n ? (data as Uint8Array)\n : JSON.stringify(data, null, 2);\n await writeFile(filePath, fileData);\n } catch (error: unknown) {\n logger?.('warn', `error while dumping PFrames data: ${error}`);\n }\n}\n"],"names":["fs"],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var wrapper = require('./wrapper.cjs');
4
+
5
+ const PFrameFactory = {
6
+ createPFrame: (options) => {
7
+ return new wrapper.PFrame(options);
8
+ },
9
+ pprofDump: async () => {
10
+ return await wrapper.pprofDump();
11
+ }
12
+ };
13
+
14
+ exports.PFrameFactory = PFrameFactory;
15
+ //# sourceMappingURL=export.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.cjs","sources":["../export/export.ts"],"sourcesContent":["import type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport { PFrame, pprofDump } from './wrapper';\n\nexport const PFrameFactory: PFrameInternal.PFrameFactory = {\n createPFrame: (\n options: PFrameInternal.PFrameOptions\n ): PFrameInternal.PFrameV10 => {\n return new PFrame(options);\n },\n pprofDump: async (): Promise<Uint8Array> => {\n return await pprofDump();\n }\n};\n"],"names":["PFrame","pprofDump"],"mappings":";;;;AAGO,MAAM,aAAa,GAAiC;AACzD,IAAA,YAAY,EAAE,CACZ,OAAqC,KACT;AAC5B,QAAA,OAAO,IAAIA,cAAM,CAAC,OAAO,CAAC;IAC5B,CAAC;IACD,SAAS,EAAE,YAAgC;QACzC,OAAO,MAAMC,iBAAS,EAAE;IAC1B;;;;;"}
@@ -1,7 +1,3 @@
1
- import { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
2
- export type PFrame = {
3
- new (spillPath: string, logger?: PFrameInternal.Logger): PFrameInternal.PFrameV9;
4
- pprofDump: () => Promise<Uint8Array>;
5
- };
6
- export declare const PFrame: PFrame;
1
+ import type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
2
+ export declare const PFrameFactory: PFrameInternal.PFrameFactory;
7
3
  //# sourceMappingURL=export.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../export/export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAG5E,MAAM,MAAM,MAAM,GAAG;IACnB,KACE,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,GAC7B,cAAc,CAAC,QAAQ,CAAC;IAE3B,SAAS,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,MAAmB,CAAC"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../export/export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAG5E,eAAO,MAAM,aAAa,EAAE,cAAc,CAAC,aAS1C,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { pprofDump, PFrame } from './wrapper.js';
2
+
3
+ const PFrameFactory = {
4
+ createPFrame: (options) => {
5
+ return new PFrame(options);
6
+ },
7
+ pprofDump: async () => {
8
+ return await pprofDump();
9
+ }
10
+ };
11
+
12
+ export { PFrameFactory };
13
+ //# sourceMappingURL=export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sources":["../export/export.ts"],"sourcesContent":["import type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\nimport { PFrame, pprofDump } from './wrapper';\n\nexport const PFrameFactory: PFrameInternal.PFrameFactory = {\n createPFrame: (\n options: PFrameInternal.PFrameOptions\n ): PFrameInternal.PFrameV10 => {\n return new PFrame(options);\n },\n pprofDump: async (): Promise<Uint8Array> => {\n return await pprofDump();\n }\n};\n"],"names":[],"mappings":";;AAGO,MAAM,aAAa,GAAiC;AACzD,IAAA,YAAY,EAAE,CACZ,OAAqC,KACT;AAC5B,QAAA,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;IAC5B,CAAC;IACD,SAAS,EAAE,YAAgC;QACzC,OAAO,MAAM,SAAS,EAAE;IAC1B;;;;;"}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var _export = require('./export.cjs');
4
+ var pframesRsServ = require('@milaboratories/pframes-rs-serv');
5
+
6
+
7
+
8
+ exports.PFrameFactory = _export.PFrameFactory;
9
+ Object.defineProperty(exports, "HttpHelpers", {
10
+ enumerable: true,
11
+ get: function () { return pframesRsServ.HttpHelpers; }
12
+ });
13
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -1,2 +1,3 @@
1
- export { PFrame } from './export';
1
+ export { PFrameFactory } from './export';
2
+ export { HttpHelpers } from '@milaboratories/pframes-rs-serv';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../export/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../export/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC"}
@@ -1,22 +1,3 @@
1
- "use strict";var I=Object.defineProperty;var j=(a,r,e)=>r in a?I(a,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[r]=e;var P=(a,r,e)=>j(a,typeof r!="symbol"?r+"":r,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("humanize-duration"),m=require("ulid"),s=require("@milaboratories/pl-model-common"),M=require("node:module"),q=require("node:path"),A=require("node:url"),U=require("@mapbox/node-pre-gyp"),R=require("node:crypto"),p=require("node:fs"),S=require("node:stream");var F=typeof document<"u"?document.currentScript:null;const E=typeof document>"u"?require("url").pathToFileURL(__filename).href:F&&F.tagName.toUpperCase()==="SCRIPT"&&F.src||new URL("index.js",document.baseURI).href,J=q.dirname(A.fileURLToPath(E)),N=M.createRequire(E),{find:O}=U,d=N(O(q.resolve(J,"../package.json")));async function C(a){try{return await p.promises.access(a),!0}catch{return!1}}async function k(a){await C(a)||await p.promises.mkdir(a,{recursive:!0})}async function v(a,r){const e=`${a}.tmp`;await C(e)&&await p.promises.rm(e,{recursive:!0});const t=typeof r=="string"?Buffer.from(r,"utf8"):r,i=S.Readable.from(t),n=p.createWriteStream(e,{flags:"wx"});await S.Readable.toWeb(i).pipeTo(S.Writable.toWeb(n)),await p.promises.rename(e,a)}function $(a){return R.createHash("sha256").update(a).digest("hex")}function b(a){return a.type==="column"?{...a,id:$(a.id)}:a}function D(a){return{...a,column:b(a.column)}}function _(a){return{...a,columnId:$(a.columnId),filters:a.filters.map(D)}}function B(a){return{...a,column:b(a.column)}}function w(a){const r=a.type;switch(r){case"column":return{...a,columnId:$(a.columnId)};case"slicedColumn":return{...a,columnId:$(a.columnId),newId:$(a.newId)};case"inlineColumn":return{...a,newId:$(a.newId)};case"inner":return{...a,entries:a.entries.map(w)};case"full":return{...a,entries:a.entries.map(w)};case"outer":return{...a,primary:w(a.primary),secondary:a.secondary.map(w)};default:throw new Error(`Unsupported join entry type: ${r}`)}}function V(a){return{...a,src:w(a.src),filters:a.filters.map(D)}}async function l(a,r,e){if(process.env.MI_DUMP_PFRAMES_RS)try{const t=a.map(u=>encodeURIComponent(u)),i=q.join(process.env.MI_DUMP_PFRAMES_RS,...t.slice(0,-1));await k(i);const n=q.join(process.env.MI_DUMP_PFRAMES_RS,...t),o=ArrayBuffer.isView(r)?r:JSON.stringify(r,null,2);await v(n,o)}catch(t){e==null||e("warn",`error while dumping PFrames data: ${t}`)}}let x=class{constructor(r,e){P(this,"id",m.ulid());P(this,"frame");var t;this.logger=e,l([`${this.id}`,`${this.id}.json`],{timeStamp:Date.now(),requestType:"create"},this.logger);try{this.frame=d.pFrameCreate(r,e),(t=this.logger)==null||t.call(this,"info",`PFrame ${this.id} created`)}catch(i){throw new s.PFrameError(`PFrame ${this.id} creation failed, logger: ${e==null?void 0:e.toString()}, error:
2
- ${s.ensureError(i).message}`)}}static async pprofDump(){try{return await d.pprofDump()}catch(r){throw new s.PFrameError(`PFrame pprofDump failed, error:
3
- ${s.ensureError(r).message}`)}}addColumnSpec(r,e){const t=m.ulid();l([`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"addColumnSpec",requestData:{columnId:$(r),columnSpec:e}},this.logger),l([`${this.id}`,"data",`${$(r)}.spec`],{...e},this.logger);try{return d.pFrameAddColumnSpec(this.frame,r,e)}catch(i){throw new s.PFrameError(`PFrame ${this.id} addColumnSpec request ${t} failed, columnId: ${JSON.stringify(r)}, columnSpec: ${JSON.stringify(e)}, error:
4
- ${s.ensureError(i).message}`)}}setDataSource(r){const e=m.ulid();l([`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"setDataSource"},this.logger);const t={preloadBlob:async i=>{var u,h;const n=m.ulid();l([`${this.id}`,`${n}.json`],{timeStamp:Date.now(),requestType:"preloadBlob",requestData:{blobIds:i}},this.logger),(u=this.logger)==null||u.call(this,"info",`PFrame ${this.id} preloadBlob started, blobIds: ${JSON.stringify(i)}`);const o=performance.now();try{return await r.preloadBlob(i)}finally{const c=performance.now();(h=this.logger)==null||h.call(this,"info",`PFrame ${this.id} preloadBlob finished, took ${f(Math.round(c-o))} (${i.length} blobs)`)}},resolveBlobContent:async i=>{var u;const n=m.ulid();l([`${this.id}`,`${n}.json`],{timeStamp:Date.now(),requestType:"resolveBlobContent",requestData:{blobId:i}},this.logger);const o=await r.resolveBlobContent(i);return(u=this.logger)==null||u.call(this,"info",`PFrame ${this.id} resolved blob ${i}`),l([`${this.id}`,"data",`${i}`],o,this.logger),o}};try{return d.pFrameSetDataSource(this.frame,t)}catch(i){throw new s.PFrameError(`PFrame ${this.id} setDataSource request ${e} failed, dataSource: ${r.toString()}, error:
5
- ${s.ensureError(i).message}`)}}setColumnData(r,e,t){var n;const i=m.ulid();l([`${this.id}`,`${i}.json`],{timeStamp:Date.now(),requestType:"setColumnData",requestData:{columnId:$(r),dataInfo:e}},this.logger),l([`${this.id}`,"data",`${$(r)}.datainfo`],{...e},this.logger);try{return(n=t==null?void 0:t.signal)==null||n.throwIfAborted(),d.pFrameSetColumnData(this.frame,r,e,t==null?void 0:t.signal)}catch(o){throw new s.PFrameError(`PFrame ${this.id} setColumnData request ${i} failed, columnId: ${JSON.stringify(r)}, dataInfo: ${JSON.stringify(e)}, error:
6
- ${s.ensureError(o).message}`)}}dispose(){var e;const r=m.ulid();l([`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"dispose"},this.logger);try{d.pFrameDispose(this.frame),(e=this.logger)==null||e.call(this,"info",`PFrame ${this.id} disposed`)}catch(t){throw new s.PFrameError(`PFrame ${this.id} dispose request ${r} failed, error:
7
- ${s.ensureError(t).message}`)}}[Symbol.dispose](){this.dispose()}async findColumns(r){var i;const e=m.ulid();l([`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"findColumns",requestData:r},this.logger);const t=performance.now();try{return await d.pFrameFindColumns(this.frame,r)}catch(n){throw new s.PFrameError(`PFrame ${this.id} findColumns request ${e} failed, request: ${JSON.stringify(r)}, error:
8
- ${s.ensureError(n).message}`)}finally{const n=performance.now();(i=this.logger)==null||i.call(this,"info",`PFrame ${this.id} findColumns request ${e} took ${f(Math.round(n-t))}`)}}async deleteColumn(r){var i;const e=m.ulid();l([`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"deleteColumn",requestData:r},this.logger);const t=performance.now();try{return await d.pFrameDeleteColumn(this.frame,r)}catch(n){throw new s.PFrameError(`PFrame ${this.id} deleteColumn request ${e} failed, request: ${JSON.stringify(r)}, error:
9
- ${s.ensureError(n).message}`)}finally{const n=performance.now();(i=this.logger)==null||i.call(this,"info",`PFrame ${this.id} deleteColumn request ${e} took ${f(Math.round(n-t))}`)}}async getColumnSpec(r){var i;const e=m.ulid();l([`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"getColumnSpec",requestData:{columnId:$(r)}},this.logger);const t=performance.now();try{return await d.pFrameGetColumnSpec(this.frame,r)}catch(n){throw new s.PFrameError(`PFrame ${this.id} getColumnSpec request ${e} failed, columnId: ${JSON.stringify(r)}, error:
10
- ${s.ensureError(n).message}`)}finally{const n=performance.now();(i=this.logger)==null||i.call(this,"info",`PFrame ${this.id} getColumnSpec request ${e} took ${f(Math.round(n-t))}`)}}async listColumns(){var t;const r=m.ulid();l([`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"listColumns"},this.logger);const e=performance.now();try{return await d.pFrameListColumns(this.frame)}catch(i){throw new s.PFrameError(`PFrame ${this.id} listColumns request ${r} failed, error:
11
- ${s.ensureError(i).message}`)}finally{const i=performance.now();(t=this.logger)==null||t.call(this,"info",`PFrame ${this.id} listColumns request ${r} took ${f(Math.round(i-e))}`)}}createTable(r){var n;const e=m.ulid(),t={timeStamp:Date.now(),requestType:"createTable",requestData:V(r)};l([`${this.id}`,`${e}.json`],t,this.logger),l([`${this.id}`,`${e}`,`${e}.json`],t,this.logger);const i=performance.now();try{const o=d.pFrameCreateTable(this.frame,e,r);return new y(this,e,o)}catch(o){throw new s.PFrameError(`PFrame ${this.id} createTable request ${e} failed, request: ${JSON.stringify(r)}, error:
12
- ${s.ensureError(o).message}`)}finally{const o=performance.now();(n=this.logger)==null||n.call(this,"info",`PFrame ${this.id} createTable request ${e} took ${f(Math.round(o-i))}`)}}async getUniqueValues(r,e){var n,o,u;const t=m.ulid();l([`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"getUniqueValues",requestData:_(r)},this.logger),(n=this.logger)==null||n.call(this,"info",`PFrame ${this.id} getUniqueValues request ${t} started`);const i=performance.now();try{return(o=e==null?void 0:e.signal)==null||o.throwIfAborted(),await d.pFrameGetUniqueValues(this.frame,t,r,e==null?void 0:e.signal)}catch(h){throw s.isAbortError(h)?new s.AbortError(`PFrame ${this.id} getUniqueValues request ${t} cancelled`):new s.PFrameError(`PFrame ${this.id} getUniqueValues request ${t} failed, request: ${JSON.stringify(r)}, error:
13
- ${s.ensureError(h).message}`)}finally{const h=performance.now();(u=this.logger)==null||u.call(this,"info",`PFrame ${this.id} getUniqueValues request ${t} finished, took ${f(Math.round(h-i))}`)}}};class y{constructor(r,e,t){var i,n;this.frame=r,this.id=e,this.table=t,(n=(i=this.frame).logger)==null||n.call(i,"info",`PTable ${this.id} created`)}getSpec(){const r=m.ulid();l([`${this.frame.id}`,`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"getSpec"},this.frame.logger);try{return d.pTableGetSpec(this.table)}catch(e){throw new s.PFrameError(`PTable ${this.id} getSpec request ${r} failed, error:
14
- ${s.ensureError(e).message}`)}}getColumnIndices(r){const e=m.ulid();l([`${this.frame.id}`,`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"getColumnIndices",requestData:{columnIds:r.map(b)}},this.frame.logger);try{return d.pTableGetColumnIndices(this.table,r)}catch(t){throw new s.PFrameError(`PTable ${this.id} getColumnIndices request ${e} failed, columnIds: ${JSON.stringify(r)}, error:
15
- ${s.ensureError(t).message}`)}}async getFootprint(r){var i,n,o,u,h;const e=m.ulid();l([`${this.frame.id}`,`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"getFootprint"},this.frame.logger),(n=(i=this.frame).logger)==null||n.call(i,"info",`PTable ${this.id} getFootprint request ${e} started`);const t=performance.now();try{return(o=r==null?void 0:r.signal)==null||o.throwIfAborted(),await d.pTableGetFootprint(this.table,(r==null?void 0:r.withPredecessors)??!1,r==null?void 0:r.signal)}catch(c){throw s.isAbortError(c)?new s.AbortError(`PTable ${this.id} getFootprint request ${e} cancelled`):new s.PFrameError(`PTable ${this.id} getFootprint request ${e} failed, error:
16
- ${s.ensureError(c).message}`)}finally{const c=performance.now();(h=(u=this.frame).logger)==null||h.call(u,"info",`PTable ${this.id} getFootprint request ${e} finished, took ${f(Math.round(c-t))}`)}}async getShape(r){var i,n,o,u,h;const e=m.ulid();l([`${this.frame.id}`,`${this.id}`,`${e}.json`],{timeStamp:Date.now(),requestType:"getShape"},this.frame.logger),(n=(i=this.frame).logger)==null||n.call(i,"info",`PTable ${this.id} getShape request ${e} started`);const t=performance.now();try{return(o=r==null?void 0:r.signal)==null||o.throwIfAborted(),await d.pTableGetShape(this.table,r==null?void 0:r.signal)}catch(c){throw s.isAbortError(c)?new s.AbortError(`PTable ${this.id} getShape request ${e} cancelled`):new s.PFrameError(`PTable ${this.id} getShape request ${e} failed, error:
17
- ${s.ensureError(c).message}`)}finally{const c=performance.now();(h=(u=this.frame).logger)==null||h.call(u,"info",`PTable ${this.id} getShape request ${e} finished, took ${f(Math.round(c-t))}`)}}async getData(r,e){var o,u,h,c,T;const t=m.ulid();l([`${this.frame.id}`,`${this.id}`,`${t}.json`],{timeStamp:Date.now(),requestType:"getData",requestData:{columnIndices:r,range:(e==null?void 0:e.range)??null}},this.frame.logger),(u=(o=this.frame).logger)==null||u.call(o,"info",`PTable ${this.id} getData request ${t} started`);let i=0;const n=performance.now();try{(h=e==null?void 0:e.signal)==null||h.throwIfAborted();const g=await d.pTableGetData(this.table,t,r,e==null?void 0:e.range,e==null?void 0:e.signal);return i=g[0].data.length,g}catch(g){throw s.isAbortError(g)?new s.AbortError(`PTable ${this.id} getData request ${t} cancelled`):new s.PFrameError(`PTable ${this.id} getData request ${t} failed, columnIndices: ${JSON.stringify(r)}, range: ${e!=null&&e.range?JSON.stringify(e.range):void 0}, error:
18
- ${s.ensureError(g).message}`)}finally{const g=performance.now();(T=(c=this.frame).logger)==null||T.call(c,"info",`PTable ${this.id} getData request ${t} finished, took ${f(Math.round(g-n))} (${i} rows)`)}}filter(r){var n,o;const e=m.ulid(),t={timeStamp:Date.now(),table:this.id,requestType:"filter",requestData:{filters:r.map(D)}};l([`${this.frame.id}`,`${e}.json`],t,this.frame.logger),l([`${this.frame.id}`,`${e}`,`${e}.json`],t,this.frame.logger);const i=performance.now();try{const u=d.pTableFilter(this.table,e,r);return new y(this.frame,e,u)}catch(u){throw new s.PFrameError(`PTable ${this.id} filter request ${e} failed, request: ${JSON.stringify(r)}, error:
19
- ${s.ensureError(u).message}`)}finally{const u=performance.now();(o=(n=this.frame).logger)==null||o.call(n,"info",`PTable ${this.id} filter request ${e} took ${f(Math.round(u-i))}`)}}sort(r){var n,o;const e=m.ulid(),t={timeStamp:Date.now(),table:this.id,requestType:"sort",requestData:r.map(B)};l([`${this.frame.id}`,`${e}.json`],t,this.frame.logger),l([`${this.frame.id}`,`${e}`,`${e}.json`],t,this.frame.logger);const i=performance.now();try{const u=d.pTableSort(this.table,e,r);return new y(this.frame,e,u)}catch(u){throw new s.PFrameError(`PTable ${this.id} sort request ${e} failed, request: ${JSON.stringify(r)}, error:
20
- ${s.ensureError(u).message}`)}finally{const u=performance.now();(o=(n=this.frame).logger)==null||o.call(n,"info",`PTable ${this.id} sort request ${e} took ${f(Math.round(u-i))}`)}}dispose(){var e,t;const r=m.ulid();l([`${this.frame.id}`,`${this.id}`,`${r}.json`],{timeStamp:Date.now(),requestType:"dispose"},this.frame.logger);try{d.pTableDispose(this.table),(t=(e=this.frame).logger)==null||t.call(e,"info",`PTable ${this.id} disposed`)}catch(i){throw new s.PFrameError(`PTable ${this.id} dispose request ${r} failed, error:
21
- ${s.ensureError(i).message}`)}}[Symbol.dispose](){this.dispose()}}const G=x;exports.PFrame=G;
1
+ export { PFrameFactory } from './export.js';
2
+ export { HttpHelpers } from '@milaboratories/pframes-rs-serv';
22
3
  //# sourceMappingURL=index.js.map