clawdlets 0.2.4 → 0.3.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 (113) hide show
  1. package/dist/main.mjs +556 -1004
  2. package/node_modules/@clawdlets/core/dist/lib/context.d.ts +21 -0
  3. package/node_modules/@clawdlets/core/dist/lib/context.d.ts.map +1 -0
  4. package/node_modules/@clawdlets/core/dist/lib/context.js +19 -0
  5. package/node_modules/@clawdlets/core/dist/lib/context.js.map +1 -0
  6. package/node_modules/@clawdlets/core/dist/lib/host-resolve.d.ts +6 -0
  7. package/node_modules/@clawdlets/core/dist/lib/host-resolve.d.ts.map +1 -0
  8. package/node_modules/@clawdlets/core/dist/lib/host-resolve.js +20 -0
  9. package/node_modules/@clawdlets/core/dist/lib/host-resolve.js.map +1 -0
  10. package/node_modules/@clawdlets/core/dist/repo-layout.d.ts +1 -0
  11. package/node_modules/@clawdlets/core/dist/repo-layout.d.ts.map +1 -1
  12. package/node_modules/@clawdlets/core/dist/repo-layout.js +2 -0
  13. package/node_modules/@clawdlets/core/dist/repo-layout.js.map +1 -1
  14. package/node_modules/@clawdlets/core/package.json +1 -3
  15. package/package.json +3 -6
  16. package/node_modules/@clawdlets/clf-queue/dist/client.d.ts +0 -21
  17. package/node_modules/@clawdlets/clf-queue/dist/client.d.ts.map +0 -1
  18. package/node_modules/@clawdlets/clf-queue/dist/client.js +0 -132
  19. package/node_modules/@clawdlets/clf-queue/dist/client.js.map +0 -1
  20. package/node_modules/@clawdlets/clf-queue/dist/index.d.ts +0 -9
  21. package/node_modules/@clawdlets/clf-queue/dist/index.d.ts.map +0 -1
  22. package/node_modules/@clawdlets/clf-queue/dist/index.js +0 -5
  23. package/node_modules/@clawdlets/clf-queue/dist/index.js.map +0 -1
  24. package/node_modules/@clawdlets/clf-queue/dist/jobs.d.ts +0 -32
  25. package/node_modules/@clawdlets/clf-queue/dist/jobs.d.ts.map +0 -1
  26. package/node_modules/@clawdlets/clf-queue/dist/jobs.js +0 -24
  27. package/node_modules/@clawdlets/clf-queue/dist/jobs.js.map +0 -1
  28. package/node_modules/@clawdlets/clf-queue/dist/protocol.d.ts +0 -118
  29. package/node_modules/@clawdlets/clf-queue/dist/protocol.d.ts.map +0 -1
  30. package/node_modules/@clawdlets/clf-queue/dist/protocol.js +0 -46
  31. package/node_modules/@clawdlets/clf-queue/dist/protocol.js.map +0 -1
  32. package/node_modules/@clawdlets/clf-queue/dist/queue/bootstrap-tokens.d.ts +0 -3
  33. package/node_modules/@clawdlets/clf-queue/dist/queue/bootstrap-tokens.d.ts.map +0 -1
  34. package/node_modules/@clawdlets/clf-queue/dist/queue/bootstrap-tokens.js +0 -112
  35. package/node_modules/@clawdlets/clf-queue/dist/queue/bootstrap-tokens.js.map +0 -1
  36. package/node_modules/@clawdlets/clf-queue/dist/queue/jobs.d.ts +0 -3
  37. package/node_modules/@clawdlets/clf-queue/dist/queue/jobs.d.ts.map +0 -1
  38. package/node_modules/@clawdlets/clf-queue/dist/queue/jobs.js +0 -313
  39. package/node_modules/@clawdlets/clf-queue/dist/queue/jobs.js.map +0 -1
  40. package/node_modules/@clawdlets/clf-queue/dist/queue/migrate.d.ts +0 -2
  41. package/node_modules/@clawdlets/clf-queue/dist/queue/migrate.d.ts.map +0 -1
  42. package/node_modules/@clawdlets/clf-queue/dist/queue/migrate.js +0 -74
  43. package/node_modules/@clawdlets/clf-queue/dist/queue/migrate.js.map +0 -1
  44. package/node_modules/@clawdlets/clf-queue/dist/queue/open.d.ts +0 -3
  45. package/node_modules/@clawdlets/clf-queue/dist/queue/open.d.ts.map +0 -1
  46. package/node_modules/@clawdlets/clf-queue/dist/queue/open.js +0 -27
  47. package/node_modules/@clawdlets/clf-queue/dist/queue/open.js.map +0 -1
  48. package/node_modules/@clawdlets/clf-queue/dist/queue/types.d.ts +0 -113
  49. package/node_modules/@clawdlets/clf-queue/dist/queue/types.d.ts.map +0 -1
  50. package/node_modules/@clawdlets/clf-queue/dist/queue/types.js +0 -2
  51. package/node_modules/@clawdlets/clf-queue/dist/queue/types.js.map +0 -1
  52. package/node_modules/@clawdlets/clf-queue/dist/queue/util.d.ts +0 -10
  53. package/node_modules/@clawdlets/clf-queue/dist/queue/util.d.ts.map +0 -1
  54. package/node_modules/@clawdlets/clf-queue/dist/queue/util.js +0 -30
  55. package/node_modules/@clawdlets/clf-queue/dist/queue/util.js.map +0 -1
  56. package/node_modules/@clawdlets/clf-queue/dist/queue.d.ts +0 -3
  57. package/node_modules/@clawdlets/clf-queue/dist/queue.d.ts.map +0 -1
  58. package/node_modules/@clawdlets/clf-queue/dist/queue.js +0 -2
  59. package/node_modules/@clawdlets/clf-queue/dist/queue.js.map +0 -1
  60. package/node_modules/@clawdlets/clf-queue/package.json +0 -36
  61. package/node_modules/@clawdlets/core/dist/lib/cattle-state.d.ts +0 -25
  62. package/node_modules/@clawdlets/core/dist/lib/cattle-state.d.ts.map +0 -1
  63. package/node_modules/@clawdlets/core/dist/lib/cattle-state.js +0 -136
  64. package/node_modules/@clawdlets/core/dist/lib/cattle-state.js.map +0 -1
  65. package/node_modules/better-sqlite3/LICENSE +0 -21
  66. package/node_modules/better-sqlite3/README.md +0 -99
  67. package/node_modules/better-sqlite3/binding.gyp +0 -38
  68. package/node_modules/better-sqlite3/deps/common.gypi +0 -68
  69. package/node_modules/better-sqlite3/deps/copy.js +0 -31
  70. package/node_modules/better-sqlite3/deps/defines.gypi +0 -41
  71. package/node_modules/better-sqlite3/deps/download.sh +0 -122
  72. package/node_modules/better-sqlite3/deps/patches/1208.patch +0 -15
  73. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +0 -265969
  74. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +0 -13968
  75. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +0 -730
  76. package/node_modules/better-sqlite3/deps/sqlite3.gyp +0 -80
  77. package/node_modules/better-sqlite3/deps/test_extension.c +0 -21
  78. package/node_modules/better-sqlite3/lib/database.js +0 -90
  79. package/node_modules/better-sqlite3/lib/index.js +0 -3
  80. package/node_modules/better-sqlite3/lib/methods/aggregate.js +0 -43
  81. package/node_modules/better-sqlite3/lib/methods/backup.js +0 -67
  82. package/node_modules/better-sqlite3/lib/methods/function.js +0 -31
  83. package/node_modules/better-sqlite3/lib/methods/inspect.js +0 -7
  84. package/node_modules/better-sqlite3/lib/methods/pragma.js +0 -12
  85. package/node_modules/better-sqlite3/lib/methods/serialize.js +0 -16
  86. package/node_modules/better-sqlite3/lib/methods/table.js +0 -189
  87. package/node_modules/better-sqlite3/lib/methods/transaction.js +0 -78
  88. package/node_modules/better-sqlite3/lib/methods/wrappers.js +0 -54
  89. package/node_modules/better-sqlite3/lib/sqlite-error.js +0 -20
  90. package/node_modules/better-sqlite3/lib/util.js +0 -12
  91. package/node_modules/better-sqlite3/package.json +0 -59
  92. package/node_modules/better-sqlite3/src/addon.cpp +0 -47
  93. package/node_modules/better-sqlite3/src/better_sqlite3.cpp +0 -74
  94. package/node_modules/better-sqlite3/src/objects/backup.cpp +0 -120
  95. package/node_modules/better-sqlite3/src/objects/backup.hpp +0 -36
  96. package/node_modules/better-sqlite3/src/objects/database.cpp +0 -417
  97. package/node_modules/better-sqlite3/src/objects/database.hpp +0 -103
  98. package/node_modules/better-sqlite3/src/objects/statement-iterator.cpp +0 -113
  99. package/node_modules/better-sqlite3/src/objects/statement-iterator.hpp +0 -50
  100. package/node_modules/better-sqlite3/src/objects/statement.cpp +0 -383
  101. package/node_modules/better-sqlite3/src/objects/statement.hpp +0 -58
  102. package/node_modules/better-sqlite3/src/util/bind-map.cpp +0 -73
  103. package/node_modules/better-sqlite3/src/util/binder.cpp +0 -193
  104. package/node_modules/better-sqlite3/src/util/constants.cpp +0 -172
  105. package/node_modules/better-sqlite3/src/util/custom-aggregate.cpp +0 -121
  106. package/node_modules/better-sqlite3/src/util/custom-function.cpp +0 -59
  107. package/node_modules/better-sqlite3/src/util/custom-table.cpp +0 -409
  108. package/node_modules/better-sqlite3/src/util/data-converter.cpp +0 -17
  109. package/node_modules/better-sqlite3/src/util/data.cpp +0 -194
  110. package/node_modules/better-sqlite3/src/util/helpers.cpp +0 -109
  111. package/node_modules/better-sqlite3/src/util/macros.cpp +0 -70
  112. package/node_modules/better-sqlite3/src/util/query-macros.cpp +0 -71
  113. package/node_modules/better-sqlite3/src/util/row-builder.cpp +0 -49
@@ -1,172 +0,0 @@
1
- class CS {
2
- public:
3
-
4
- v8::Local<v8::String> Code(v8::Isolate* isolate, int code) {
5
- auto element = codes.find(code);
6
- if (element != codes.end()) return element->second.Get(isolate);
7
- return StringFromUtf8(isolate, (std::string("UNKNOWN_SQLITE_ERROR_") + std::to_string(code)).c_str(), -1);
8
- }
9
-
10
- explicit CS(v8::Isolate* isolate) {
11
- SetString(isolate, database, "database");
12
- SetString(isolate, reader, "reader");
13
- SetString(isolate, source, "source");
14
- SetString(isolate, memory, "memory");
15
- SetString(isolate, readonly, "readonly");
16
- SetString(isolate, name, "name");
17
- SetString(isolate, next, "next");
18
- SetString(isolate, length, "length");
19
- SetString(isolate, done, "done");
20
- SetString(isolate, value, "value");
21
- SetString(isolate, changes, "changes");
22
- SetString(isolate, lastInsertRowid, "lastInsertRowid");
23
- SetString(isolate, statement, "statement");
24
- SetString(isolate, column, "column");
25
- SetString(isolate, table, "table");
26
- SetString(isolate, type, "type");
27
- SetString(isolate, totalPages, "totalPages");
28
- SetString(isolate, remainingPages, "remainingPages");
29
-
30
- SetCode(isolate, SQLITE_OK, "SQLITE_OK");
31
- SetCode(isolate, SQLITE_ERROR, "SQLITE_ERROR");
32
- SetCode(isolate, SQLITE_INTERNAL, "SQLITE_INTERNAL");
33
- SetCode(isolate, SQLITE_PERM, "SQLITE_PERM");
34
- SetCode(isolate, SQLITE_ABORT, "SQLITE_ABORT");
35
- SetCode(isolate, SQLITE_BUSY, "SQLITE_BUSY");
36
- SetCode(isolate, SQLITE_LOCKED, "SQLITE_LOCKED");
37
- SetCode(isolate, SQLITE_NOMEM, "SQLITE_NOMEM");
38
- SetCode(isolate, SQLITE_READONLY, "SQLITE_READONLY");
39
- SetCode(isolate, SQLITE_INTERRUPT, "SQLITE_INTERRUPT");
40
- SetCode(isolate, SQLITE_IOERR, "SQLITE_IOERR");
41
- SetCode(isolate, SQLITE_CORRUPT, "SQLITE_CORRUPT");
42
- SetCode(isolate, SQLITE_NOTFOUND, "SQLITE_NOTFOUND");
43
- SetCode(isolate, SQLITE_FULL, "SQLITE_FULL");
44
- SetCode(isolate, SQLITE_CANTOPEN, "SQLITE_CANTOPEN");
45
- SetCode(isolate, SQLITE_PROTOCOL, "SQLITE_PROTOCOL");
46
- SetCode(isolate, SQLITE_EMPTY, "SQLITE_EMPTY");
47
- SetCode(isolate, SQLITE_SCHEMA, "SQLITE_SCHEMA");
48
- SetCode(isolate, SQLITE_TOOBIG, "SQLITE_TOOBIG");
49
- SetCode(isolate, SQLITE_CONSTRAINT, "SQLITE_CONSTRAINT");
50
- SetCode(isolate, SQLITE_MISMATCH, "SQLITE_MISMATCH");
51
- SetCode(isolate, SQLITE_MISUSE, "SQLITE_MISUSE");
52
- SetCode(isolate, SQLITE_NOLFS, "SQLITE_NOLFS");
53
- SetCode(isolate, SQLITE_AUTH, "SQLITE_AUTH");
54
- SetCode(isolate, SQLITE_FORMAT, "SQLITE_FORMAT");
55
- SetCode(isolate, SQLITE_RANGE, "SQLITE_RANGE");
56
- SetCode(isolate, SQLITE_NOTADB, "SQLITE_NOTADB");
57
- SetCode(isolate, SQLITE_NOTICE, "SQLITE_NOTICE");
58
- SetCode(isolate, SQLITE_WARNING, "SQLITE_WARNING");
59
- SetCode(isolate, SQLITE_ROW, "SQLITE_ROW");
60
- SetCode(isolate, SQLITE_DONE, "SQLITE_DONE");
61
-
62
- SetCode(isolate, SQLITE_ERROR_MISSING_COLLSEQ, "SQLITE_ERROR_MISSING_COLLSEQ");
63
- SetCode(isolate, SQLITE_ERROR_RETRY, "SQLITE_ERROR_RETRY");
64
- SetCode(isolate, SQLITE_ERROR_SNAPSHOT, "SQLITE_ERROR_SNAPSHOT");
65
- SetCode(isolate, SQLITE_IOERR_READ, "SQLITE_IOERR_READ");
66
- SetCode(isolate, SQLITE_IOERR_SHORT_READ, "SQLITE_IOERR_SHORT_READ");
67
- SetCode(isolate, SQLITE_IOERR_WRITE, "SQLITE_IOERR_WRITE");
68
- SetCode(isolate, SQLITE_IOERR_FSYNC, "SQLITE_IOERR_FSYNC");
69
- SetCode(isolate, SQLITE_IOERR_DIR_FSYNC, "SQLITE_IOERR_DIR_FSYNC");
70
- SetCode(isolate, SQLITE_IOERR_TRUNCATE, "SQLITE_IOERR_TRUNCATE");
71
- SetCode(isolate, SQLITE_IOERR_FSTAT, "SQLITE_IOERR_FSTAT");
72
- SetCode(isolate, SQLITE_IOERR_UNLOCK, "SQLITE_IOERR_UNLOCK");
73
- SetCode(isolate, SQLITE_IOERR_RDLOCK, "SQLITE_IOERR_RDLOCK");
74
- SetCode(isolate, SQLITE_IOERR_DELETE, "SQLITE_IOERR_DELETE");
75
- SetCode(isolate, SQLITE_IOERR_BLOCKED, "SQLITE_IOERR_BLOCKED");
76
- SetCode(isolate, SQLITE_IOERR_NOMEM, "SQLITE_IOERR_NOMEM");
77
- SetCode(isolate, SQLITE_IOERR_ACCESS, "SQLITE_IOERR_ACCESS");
78
- SetCode(isolate, SQLITE_IOERR_CHECKRESERVEDLOCK, "SQLITE_IOERR_CHECKRESERVEDLOCK");
79
- SetCode(isolate, SQLITE_IOERR_LOCK, "SQLITE_IOERR_LOCK");
80
- SetCode(isolate, SQLITE_IOERR_CLOSE, "SQLITE_IOERR_CLOSE");
81
- SetCode(isolate, SQLITE_IOERR_DIR_CLOSE, "SQLITE_IOERR_DIR_CLOSE");
82
- SetCode(isolate, SQLITE_IOERR_SHMOPEN, "SQLITE_IOERR_SHMOPEN");
83
- SetCode(isolate, SQLITE_IOERR_SHMSIZE, "SQLITE_IOERR_SHMSIZE");
84
- SetCode(isolate, SQLITE_IOERR_SHMLOCK, "SQLITE_IOERR_SHMLOCK");
85
- SetCode(isolate, SQLITE_IOERR_SHMMAP, "SQLITE_IOERR_SHMMAP");
86
- SetCode(isolate, SQLITE_IOERR_SEEK, "SQLITE_IOERR_SEEK");
87
- SetCode(isolate, SQLITE_IOERR_DELETE_NOENT, "SQLITE_IOERR_DELETE_NOENT");
88
- SetCode(isolate, SQLITE_IOERR_MMAP, "SQLITE_IOERR_MMAP");
89
- SetCode(isolate, SQLITE_IOERR_GETTEMPPATH, "SQLITE_IOERR_GETTEMPPATH");
90
- SetCode(isolate, SQLITE_IOERR_CONVPATH, "SQLITE_IOERR_CONVPATH");
91
- SetCode(isolate, SQLITE_IOERR_VNODE, "SQLITE_IOERR_VNODE");
92
- SetCode(isolate, SQLITE_IOERR_AUTH, "SQLITE_IOERR_AUTH");
93
- SetCode(isolate, SQLITE_IOERR_BEGIN_ATOMIC, "SQLITE_IOERR_BEGIN_ATOMIC");
94
- SetCode(isolate, SQLITE_IOERR_COMMIT_ATOMIC, "SQLITE_IOERR_COMMIT_ATOMIC");
95
- SetCode(isolate, SQLITE_IOERR_ROLLBACK_ATOMIC, "SQLITE_IOERR_ROLLBACK_ATOMIC");
96
- SetCode(isolate, SQLITE_IOERR_DATA, "SQLITE_IOERR_DATA");
97
- SetCode(isolate, SQLITE_IOERR_CORRUPTFS, "SQLITE_IOERR_CORRUPTFS");
98
- SetCode(isolate, SQLITE_IOERR_IN_PAGE, "SQLITE_IOERR_IN_PAGE");
99
- SetCode(isolate, SQLITE_LOCKED_SHAREDCACHE, "SQLITE_LOCKED_SHAREDCACHE");
100
- SetCode(isolate, SQLITE_LOCKED_VTAB, "SQLITE_LOCKED_VTAB");
101
- SetCode(isolate, SQLITE_BUSY_RECOVERY, "SQLITE_BUSY_RECOVERY");
102
- SetCode(isolate, SQLITE_BUSY_SNAPSHOT, "SQLITE_BUSY_SNAPSHOT");
103
- SetCode(isolate, SQLITE_CANTOPEN_NOTEMPDIR, "SQLITE_CANTOPEN_NOTEMPDIR");
104
- SetCode(isolate, SQLITE_CANTOPEN_ISDIR, "SQLITE_CANTOPEN_ISDIR");
105
- SetCode(isolate, SQLITE_CANTOPEN_FULLPATH, "SQLITE_CANTOPEN_FULLPATH");
106
- SetCode(isolate, SQLITE_CANTOPEN_CONVPATH, "SQLITE_CANTOPEN_CONVPATH");
107
- SetCode(isolate, SQLITE_CANTOPEN_DIRTYWAL, "SQLITE_CANTOPEN_DIRTYWAL");
108
- SetCode(isolate, SQLITE_CANTOPEN_SYMLINK, "SQLITE_CANTOPEN_SYMLINK");
109
- SetCode(isolate, SQLITE_CORRUPT_VTAB, "SQLITE_CORRUPT_VTAB");
110
- SetCode(isolate, SQLITE_CORRUPT_SEQUENCE, "SQLITE_CORRUPT_SEQUENCE");
111
- SetCode(isolate, SQLITE_CORRUPT_INDEX, "SQLITE_CORRUPT_INDEX");
112
- SetCode(isolate, SQLITE_READONLY_RECOVERY, "SQLITE_READONLY_RECOVERY");
113
- SetCode(isolate, SQLITE_READONLY_CANTLOCK, "SQLITE_READONLY_CANTLOCK");
114
- SetCode(isolate, SQLITE_READONLY_ROLLBACK, "SQLITE_READONLY_ROLLBACK");
115
- SetCode(isolate, SQLITE_READONLY_DBMOVED, "SQLITE_READONLY_DBMOVED");
116
- SetCode(isolate, SQLITE_READONLY_CANTINIT, "SQLITE_READONLY_CANTINIT");
117
- SetCode(isolate, SQLITE_READONLY_DIRECTORY, "SQLITE_READONLY_DIRECTORY");
118
- SetCode(isolate, SQLITE_ABORT_ROLLBACK, "SQLITE_ABORT_ROLLBACK");
119
- SetCode(isolate, SQLITE_CONSTRAINT_CHECK, "SQLITE_CONSTRAINT_CHECK");
120
- SetCode(isolate, SQLITE_CONSTRAINT_COMMITHOOK, "SQLITE_CONSTRAINT_COMMITHOOK");
121
- SetCode(isolate, SQLITE_CONSTRAINT_FOREIGNKEY, "SQLITE_CONSTRAINT_FOREIGNKEY");
122
- SetCode(isolate, SQLITE_CONSTRAINT_FUNCTION, "SQLITE_CONSTRAINT_FUNCTION");
123
- SetCode(isolate, SQLITE_CONSTRAINT_NOTNULL, "SQLITE_CONSTRAINT_NOTNULL");
124
- SetCode(isolate, SQLITE_CONSTRAINT_PRIMARYKEY, "SQLITE_CONSTRAINT_PRIMARYKEY");
125
- SetCode(isolate, SQLITE_CONSTRAINT_TRIGGER, "SQLITE_CONSTRAINT_TRIGGER");
126
- SetCode(isolate, SQLITE_CONSTRAINT_UNIQUE, "SQLITE_CONSTRAINT_UNIQUE");
127
- SetCode(isolate, SQLITE_CONSTRAINT_VTAB, "SQLITE_CONSTRAINT_VTAB");
128
- SetCode(isolate, SQLITE_CONSTRAINT_ROWID, "SQLITE_CONSTRAINT_ROWID");
129
- SetCode(isolate, SQLITE_CONSTRAINT_PINNED, "SQLITE_CONSTRAINT_PINNED");
130
- SetCode(isolate, SQLITE_CONSTRAINT_DATATYPE, "SQLITE_CONSTRAINT_DATATYPE");
131
- SetCode(isolate, SQLITE_NOTICE_RECOVER_WAL, "SQLITE_NOTICE_RECOVER_WAL");
132
- SetCode(isolate, SQLITE_NOTICE_RECOVER_ROLLBACK, "SQLITE_NOTICE_RECOVER_ROLLBACK");
133
- SetCode(isolate, SQLITE_NOTICE_RBU, "SQLITE_NOTICE_RBU");
134
- SetCode(isolate, SQLITE_WARNING_AUTOINDEX, "SQLITE_WARNING_AUTOINDEX");
135
- SetCode(isolate, SQLITE_AUTH_USER, "SQLITE_AUTH_USER");
136
- SetCode(isolate, SQLITE_OK_LOAD_PERMANENTLY, "SQLITE_OK_LOAD_PERMANENTLY");
137
- SetCode(isolate, SQLITE_OK_SYMLINK, "SQLITE_OK_SYMLINK");
138
- }
139
-
140
- v8::Global<v8::String> database;
141
- v8::Global<v8::String> reader;
142
- v8::Global<v8::String> source;
143
- v8::Global<v8::String> memory;
144
- v8::Global<v8::String> readonly;
145
- v8::Global<v8::String> name;
146
- v8::Global<v8::String> next;
147
- v8::Global<v8::String> length;
148
- v8::Global<v8::String> done;
149
- v8::Global<v8::String> value;
150
- v8::Global<v8::String> changes;
151
- v8::Global<v8::String> lastInsertRowid;
152
- v8::Global<v8::String> statement;
153
- v8::Global<v8::String> column;
154
- v8::Global<v8::String> table;
155
- v8::Global<v8::String> type;
156
- v8::Global<v8::String> totalPages;
157
- v8::Global<v8::String> remainingPages;
158
-
159
- private:
160
-
161
- static void SetString(v8::Isolate* isolate, v8::Global<v8::String>& constant, const char* str) {
162
- constant.Reset(isolate, InternalizedFromLatin1(isolate, str));
163
- }
164
-
165
- void SetCode(v8::Isolate* isolate, int code, const char* str) {
166
- codes.emplace(std::piecewise_construct,
167
- std::forward_as_tuple(code),
168
- std::forward_as_tuple(isolate, InternalizedFromLatin1(isolate, str)));
169
- }
170
-
171
- std::unordered_map<int, v8::Global<v8::String> > codes;
172
- };
@@ -1,121 +0,0 @@
1
- class CustomAggregate : public CustomFunction {
2
- public:
3
-
4
- explicit CustomAggregate(
5
- v8::Isolate* isolate,
6
- Database* db,
7
- const char* name,
8
- v8::Local<v8::Value> start,
9
- v8::Local<v8::Function> step,
10
- v8::Local<v8::Value> inverse,
11
- v8::Local<v8::Value> result,
12
- bool safe_ints
13
- ) :
14
- CustomFunction(isolate, db, name, step, safe_ints),
15
- invoke_result(result->IsFunction()),
16
- invoke_start(start->IsFunction()),
17
- inverse(isolate, inverse->IsFunction() ? inverse.As<v8::Function>() : v8::Local<v8::Function>()),
18
- result(isolate, result->IsFunction() ? result.As<v8::Function>() : v8::Local<v8::Function>()),
19
- start(isolate, start) {}
20
-
21
- static void xStep(sqlite3_context* invocation, int argc, sqlite3_value** argv) {
22
- xStepBase(invocation, argc, argv, &CustomAggregate::fn);
23
- }
24
-
25
- static void xInverse(sqlite3_context* invocation, int argc, sqlite3_value** argv) {
26
- xStepBase(invocation, argc, argv, &CustomAggregate::inverse);
27
- }
28
-
29
- static void xValue(sqlite3_context* invocation) {
30
- xValueBase(invocation, false);
31
- }
32
-
33
- static void xFinal(sqlite3_context* invocation) {
34
- xValueBase(invocation, true);
35
- }
36
-
37
- private:
38
-
39
- static inline void xStepBase(sqlite3_context* invocation, int argc, sqlite3_value** argv, const v8::Global<v8::Function> CustomAggregate::*ptrtm) {
40
- AGGREGATE_START();
41
-
42
- v8::Local<v8::Value> args_fast[5];
43
- v8::Local<v8::Value>* args = argc <= 4 ? args_fast : ALLOC_ARRAY<v8::Local<v8::Value>>(argc + 1);
44
- args[0] = acc->value.Get(isolate);
45
- if (argc != 0) Data::GetArgumentsJS(isolate, args + 1, argv, argc, self->safe_ints);
46
-
47
- v8::MaybeLocal<v8::Value> maybeReturnValue = (self->*ptrtm).Get(isolate)->Call(OnlyContext, v8::Undefined(isolate), argc + 1, args);
48
- if (args != args_fast) delete[] args;
49
-
50
- if (maybeReturnValue.IsEmpty()) {
51
- self->PropagateJSError(invocation);
52
- } else {
53
- v8::Local<v8::Value> returnValue = maybeReturnValue.ToLocalChecked();
54
- if (!returnValue->IsUndefined()) acc->value.Reset(isolate, returnValue);
55
- }
56
- }
57
-
58
- static inline void xValueBase(sqlite3_context* invocation, bool is_final) {
59
- AGGREGATE_START();
60
-
61
- if (!is_final) {
62
- acc->is_window = true;
63
- } else if (acc->is_window) {
64
- DestroyAccumulator(invocation);
65
- return;
66
- }
67
-
68
- v8::Local<v8::Value> result = acc->value.Get(isolate);
69
- if (self->invoke_result) {
70
- v8::MaybeLocal<v8::Value> maybeResult = self->result.Get(isolate)->Call(OnlyContext, v8::Undefined(isolate), 1, &result);
71
- if (maybeResult.IsEmpty()) {
72
- self->PropagateJSError(invocation);
73
- return;
74
- }
75
- result = maybeResult.ToLocalChecked();
76
- }
77
-
78
- Data::ResultValueFromJS(isolate, invocation, result, self);
79
- if (is_final) DestroyAccumulator(invocation);
80
- }
81
-
82
- struct Accumulator { public:
83
- v8::Global<v8::Value> value;
84
- bool initialized;
85
- bool is_window;
86
- };
87
-
88
- Accumulator* GetAccumulator(sqlite3_context* invocation) {
89
- Accumulator* acc = static_cast<Accumulator*>(sqlite3_aggregate_context(invocation, sizeof(Accumulator)));
90
- if (!acc->initialized) {
91
- assert(acc->value.IsEmpty());
92
- acc->initialized = true;
93
- if (invoke_start) {
94
- v8::MaybeLocal<v8::Value> maybeSeed = start.Get(isolate).As<v8::Function>()->Call(OnlyContext, v8::Undefined(isolate), 0, NULL);
95
- if (maybeSeed.IsEmpty()) PropagateJSError(invocation);
96
- else acc->value.Reset(isolate, maybeSeed.ToLocalChecked());
97
- } else {
98
- assert(!start.IsEmpty());
99
- acc->value.Reset(isolate, start);
100
- }
101
- }
102
- return acc;
103
- }
104
-
105
- static void DestroyAccumulator(sqlite3_context* invocation) {
106
- Accumulator* acc = static_cast<Accumulator*>(sqlite3_aggregate_context(invocation, sizeof(Accumulator)));
107
- assert(acc->initialized);
108
- acc->value.Reset();
109
- }
110
-
111
- void PropagateJSError(sqlite3_context* invocation) {
112
- DestroyAccumulator(invocation);
113
- CustomFunction::PropagateJSError(invocation);
114
- }
115
-
116
- const bool invoke_result;
117
- const bool invoke_start;
118
- const v8::Global<v8::Function> inverse;
119
- const v8::Global<v8::Function> result;
120
- const v8::Global<v8::Value> start;
121
- };
@@ -1,59 +0,0 @@
1
- class CustomFunction : protected DataConverter {
2
- public:
3
-
4
- explicit CustomFunction(
5
- v8::Isolate* isolate,
6
- Database* db,
7
- const char* name,
8
- v8::Local<v8::Function> fn,
9
- bool safe_ints
10
- ) :
11
- name(name),
12
- db(db),
13
- isolate(isolate),
14
- fn(isolate, fn),
15
- safe_ints(safe_ints) {}
16
-
17
- virtual ~CustomFunction() {}
18
-
19
- static void xDestroy(void* self) {
20
- delete static_cast<CustomFunction*>(self);
21
- }
22
-
23
- static void xFunc(sqlite3_context* invocation, int argc, sqlite3_value** argv) {
24
- FUNCTION_START();
25
-
26
- v8::Local<v8::Value> args_fast[4];
27
- v8::Local<v8::Value>* args = NULL;
28
- if (argc != 0) {
29
- args = argc <= 4 ? args_fast : ALLOC_ARRAY<v8::Local<v8::Value>>(argc);
30
- Data::GetArgumentsJS(isolate, args, argv, argc, self->safe_ints);
31
- }
32
-
33
- v8::MaybeLocal<v8::Value> maybeReturnValue = self->fn.Get(isolate)->Call(OnlyContext, v8::Undefined(isolate), argc, args);
34
- if (args != args_fast) delete[] args;
35
-
36
- if (maybeReturnValue.IsEmpty()) self->PropagateJSError(invocation);
37
- else Data::ResultValueFromJS(isolate, invocation, maybeReturnValue.ToLocalChecked(), self);
38
- }
39
-
40
- protected:
41
-
42
- void PropagateJSError(sqlite3_context* invocation) {
43
- assert(db->GetState()->was_js_error == false);
44
- db->GetState()->was_js_error = true;
45
- sqlite3_result_error(invocation, "", 0);
46
- }
47
-
48
- std::string GetDataErrorPrefix() {
49
- return std::string("User-defined function ") + name + "() returned";
50
- }
51
-
52
- private:
53
- const std::string name;
54
- Database* const db;
55
- protected:
56
- v8::Isolate* const isolate;
57
- const v8::Global<v8::Function> fn;
58
- const bool safe_ints;
59
- };