@balena/pinejs 23.2.17-build-renovate-node-24-x-f6acd9d07f0be65828ee26525c31a1137cc34cdb-1 → 23.2.17-build-improve-typing-cafc6429d2ed7bfc11c9c0cdfbaf2c1a0075d9bd-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.versionbot/CHANGELOG.yml +5 -6
- package/CHANGELOG.md +1 -1
- package/Dockerfile +1 -1
- package/out/passport-pinejs/passport-pinejs.js.map +1 -1
- package/out/tasks/index.d.ts +2 -2
- package/out/tasks/index.js +35 -35
- package/out/tasks/index.js.map +1 -1
- package/package.json +2 -2
- package/src/passport-pinejs/passport-pinejs.ts +1 -1
- package/src/tasks/index.ts +38 -37
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
- commits:
|
|
2
|
-
- subject:
|
|
3
|
-
hash:
|
|
4
|
-
body:
|
|
5
|
-
Update node from 20.19.6 to 24.12.0
|
|
2
|
+
- subject: Improve typing of `setup` functions
|
|
3
|
+
hash: cafc6429d2ed7bfc11c9c0cdfbaf2c1a0075d9bd
|
|
4
|
+
body: ""
|
|
6
5
|
footer:
|
|
7
6
|
Change-type: patch
|
|
8
7
|
change-type: patch
|
|
9
|
-
author:
|
|
8
|
+
author: Pagan Gazzard
|
|
10
9
|
nested: []
|
|
11
10
|
version: 23.2.17
|
|
12
11
|
title: ""
|
|
13
|
-
date: 2026-01-12T19:
|
|
12
|
+
date: 2026-01-12T19:27:20.119Z
|
|
14
13
|
- commits:
|
|
15
14
|
- subject: Avoid trying to set up tasks twice
|
|
16
15
|
hash: cf256f4610aeb0d6720790f9fab8845d3d86e0c5
|
package/CHANGELOG.md
CHANGED
package/Dockerfile
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passport-pinejs.js","sourceRoot":"","sources":["../../src/passport-pinejs/passport-pinejs.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,WAAW,MAAM,4BAA4B,CAAC;AAG1D,MAAM,CAAC,IAAI,KAQgB,CAAC;AAG5B,MAAM,CAAC,IAAI,MAA8B,CAAC;AAE1C,MAAM,CAAC,MAAM,aAAa,GAAiC,KAAK,EAC/D,QAAQ,EACR,QAAQ,EACR,IAA4C,EAC3C,EAAE;IACH,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACR,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,KAAK,GAA+B,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"passport-pinejs.js","sourceRoot":"","sources":["../../src/passport-pinejs/passport-pinejs.ts"],"names":[],"mappings":"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"}
|
package/out/tasks/index.d.ts
CHANGED
|
@@ -12,9 +12,9 @@ declare module '../sbvr-api/sbvr-utils.js' {
|
|
|
12
12
|
[apiRoot]: PinejsClient<TasksModel>;
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
export declare const config: ConfigLoader.Config;
|
|
16
15
|
export declare let worker: Worker | null;
|
|
17
16
|
export declare function canExecuteTasks(): boolean;
|
|
18
|
-
export declare
|
|
17
|
+
export declare const setup: ConfigLoader.SetupFunction;
|
|
18
|
+
export declare const config: ConfigLoader.Config;
|
|
19
19
|
export declare function addTaskHandler(name: string, fn: TaskHandler<NonNullable<Task['Read']['is_executed_with__parameter_set']>>['fn'], schema?: undefined): void;
|
|
20
20
|
export declare function addTaskHandler<T extends Schema>(name: string, fn: TaskHandler<FromSchema<NonNullable<T>>>['fn'], schema: T): void;
|
package/out/tasks/index.js
CHANGED
|
@@ -14,44 +14,11 @@ CREATE INDEX IF NOT EXISTS idx_task_poll ON task USING btree (
|
|
|
14
14
|
"id" ASC
|
|
15
15
|
) WHERE status = 'queued';
|
|
16
16
|
`;
|
|
17
|
-
export const config = {
|
|
18
|
-
models: [
|
|
19
|
-
{
|
|
20
|
-
modelName: apiRoot,
|
|
21
|
-
apiRoot,
|
|
22
|
-
modelText,
|
|
23
|
-
customServerCode: { setup },
|
|
24
|
-
initSql,
|
|
25
|
-
migrations: {
|
|
26
|
-
'22.0.0-timestamps': async (tx, { db }) => {
|
|
27
|
-
switch (db.engine) {
|
|
28
|
-
case 'postgres':
|
|
29
|
-
await tx.executeSql('DROP INDEX IF EXISTS idx_task_poll;');
|
|
30
|
-
await tx.executeSql(`\
|
|
31
|
-
ALTER TABLE "task"
|
|
32
|
-
ALTER COLUMN "created at" SET DATA TYPE TIMESTAMPTZ USING "created at"::TIMESTAMPTZ,
|
|
33
|
-
ALTER COLUMN "modified at" SET DATA TYPE TIMESTAMPTZ USING "modified at"::TIMESTAMPTZ,
|
|
34
|
-
ALTER COLUMN "ended on-time" SET DATA TYPE TIMESTAMPTZ USING "ended on-time"::TIMESTAMPTZ,
|
|
35
|
-
ALTER COLUMN "is scheduled to execute on-time" SET DATA TYPE TIMESTAMPTZ USING "is scheduled to execute on-time"::TIMESTAMPTZ,
|
|
36
|
-
ALTER COLUMN "started on-time" SET DATA TYPE TIMESTAMPTZ USING "started on-time"::TIMESTAMPTZ;`);
|
|
37
|
-
await tx.executeSql(`\
|
|
38
|
-
CREATE INDEX IF NOT EXISTS idx_task_poll ON task USING btree (
|
|
39
|
-
"is executed by-handler",
|
|
40
|
-
"is scheduled to execute on-time" ASC,
|
|
41
|
-
"id" ASC
|
|
42
|
-
) WHERE status = 'queued';`);
|
|
43
|
-
break;
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
],
|
|
49
|
-
};
|
|
50
17
|
export let worker = null;
|
|
51
18
|
export function canExecuteTasks() {
|
|
52
19
|
return sbvrUtils.db.engine === 'postgres' && tasksEnv.queueConcurrency > 0;
|
|
53
20
|
}
|
|
54
|
-
export
|
|
21
|
+
export const setup = () => {
|
|
55
22
|
if (sbvrUtils.db.engine !== 'postgres') {
|
|
56
23
|
console.warn('Skipping task setup as database not supported');
|
|
57
24
|
return;
|
|
@@ -106,7 +73,40 @@ export function setup() {
|
|
|
106
73
|
},
|
|
107
74
|
});
|
|
108
75
|
addPineTaskHandlers();
|
|
109
|
-
}
|
|
76
|
+
};
|
|
77
|
+
export const config = {
|
|
78
|
+
models: [
|
|
79
|
+
{
|
|
80
|
+
modelName: apiRoot,
|
|
81
|
+
apiRoot,
|
|
82
|
+
modelText,
|
|
83
|
+
customServerCode: { setup },
|
|
84
|
+
initSql,
|
|
85
|
+
migrations: {
|
|
86
|
+
'22.0.0-timestamps': async (tx, { db }) => {
|
|
87
|
+
switch (db.engine) {
|
|
88
|
+
case 'postgres':
|
|
89
|
+
await tx.executeSql('DROP INDEX IF EXISTS idx_task_poll;');
|
|
90
|
+
await tx.executeSql(`\
|
|
91
|
+
ALTER TABLE "task"
|
|
92
|
+
ALTER COLUMN "created at" SET DATA TYPE TIMESTAMPTZ USING "created at"::TIMESTAMPTZ,
|
|
93
|
+
ALTER COLUMN "modified at" SET DATA TYPE TIMESTAMPTZ USING "modified at"::TIMESTAMPTZ,
|
|
94
|
+
ALTER COLUMN "ended on-time" SET DATA TYPE TIMESTAMPTZ USING "ended on-time"::TIMESTAMPTZ,
|
|
95
|
+
ALTER COLUMN "is scheduled to execute on-time" SET DATA TYPE TIMESTAMPTZ USING "is scheduled to execute on-time"::TIMESTAMPTZ,
|
|
96
|
+
ALTER COLUMN "started on-time" SET DATA TYPE TIMESTAMPTZ USING "started on-time"::TIMESTAMPTZ;`);
|
|
97
|
+
await tx.executeSql(`\
|
|
98
|
+
CREATE INDEX IF NOT EXISTS idx_task_poll ON task USING btree (
|
|
99
|
+
"is executed by-handler",
|
|
100
|
+
"is scheduled to execute on-time" ASC,
|
|
101
|
+
"id" ASC
|
|
102
|
+
) WHERE status = 'queued';`);
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
],
|
|
109
|
+
};
|
|
110
110
|
export function addTaskHandler(name, fn, schema) {
|
|
111
111
|
if (worker == null) {
|
|
112
112
|
throw new Error('Database does not support tasks');
|
package/out/tasks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAItD,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAGhE,MAAM,OAAO,GAAG;;;;;;CAMf,CAAC;AAQF,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@balena/pinejs",
|
|
3
|
-
"version": "23.2.17-build-
|
|
3
|
+
"version": "23.2.17-build-improve-typing-cafc6429d2ed7bfc11c9c0cdfbaf2c1a0075d9bd-1",
|
|
4
4
|
"main": "out/server-glue/module.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": "git@github.com:balena-io/pinejs.git",
|
|
@@ -148,6 +148,6 @@
|
|
|
148
148
|
"recursive": true
|
|
149
149
|
},
|
|
150
150
|
"versionist": {
|
|
151
|
-
"publishedAt": "2026-01-12T19:
|
|
151
|
+
"publishedAt": "2026-01-12T19:27:21.118Z"
|
|
152
152
|
}
|
|
153
153
|
}
|
|
@@ -33,7 +33,7 @@ export const checkPassword: PassportLocal.VerifyFunction = async (
|
|
|
33
33
|
}
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
-
const setup: ConfigLoader.SetupFunction = async (app
|
|
36
|
+
const setup: ConfigLoader.SetupFunction = async (app) => {
|
|
37
37
|
if (!process.browser) {
|
|
38
38
|
const { default: passport } = await import('passport');
|
|
39
39
|
app.use(passport.initialize());
|
package/src/tasks/index.ts
CHANGED
|
@@ -32,48 +32,14 @@ declare module '../sbvr-api/sbvr-utils.js' {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
export const config: ConfigLoader.Config = {
|
|
36
|
-
models: [
|
|
37
|
-
{
|
|
38
|
-
modelName: apiRoot,
|
|
39
|
-
apiRoot,
|
|
40
|
-
modelText,
|
|
41
|
-
customServerCode: { setup },
|
|
42
|
-
initSql,
|
|
43
|
-
migrations: {
|
|
44
|
-
'22.0.0-timestamps': async (tx, { db }) => {
|
|
45
|
-
switch (db.engine) {
|
|
46
|
-
// No need to migrate anything other than postgres
|
|
47
|
-
case 'postgres':
|
|
48
|
-
await tx.executeSql('DROP INDEX IF EXISTS idx_task_poll;');
|
|
49
|
-
await tx.executeSql(`\
|
|
50
|
-
ALTER TABLE "task"
|
|
51
|
-
ALTER COLUMN "created at" SET DATA TYPE TIMESTAMPTZ USING "created at"::TIMESTAMPTZ,
|
|
52
|
-
ALTER COLUMN "modified at" SET DATA TYPE TIMESTAMPTZ USING "modified at"::TIMESTAMPTZ,
|
|
53
|
-
ALTER COLUMN "ended on-time" SET DATA TYPE TIMESTAMPTZ USING "ended on-time"::TIMESTAMPTZ,
|
|
54
|
-
ALTER COLUMN "is scheduled to execute on-time" SET DATA TYPE TIMESTAMPTZ USING "is scheduled to execute on-time"::TIMESTAMPTZ,
|
|
55
|
-
ALTER COLUMN "started on-time" SET DATA TYPE TIMESTAMPTZ USING "started on-time"::TIMESTAMPTZ;`);
|
|
56
|
-
await tx.executeSql(`\
|
|
57
|
-
CREATE INDEX IF NOT EXISTS idx_task_poll ON task USING btree (
|
|
58
|
-
"is executed by-handler",
|
|
59
|
-
"is scheduled to execute on-time" ASC,
|
|
60
|
-
"id" ASC
|
|
61
|
-
) WHERE status = 'queued';`);
|
|
62
|
-
break;
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
},
|
|
66
|
-
},
|
|
67
|
-
],
|
|
68
|
-
};
|
|
69
|
-
|
|
70
35
|
export let worker: Worker | null = null;
|
|
71
36
|
|
|
72
37
|
export function canExecuteTasks() {
|
|
73
38
|
return sbvrUtils.db.engine === 'postgres' && tasksEnv.queueConcurrency > 0;
|
|
74
39
|
}
|
|
75
40
|
|
|
76
|
-
|
|
41
|
+
// TODO-Major: stop exporting this
|
|
42
|
+
export const setup: ConfigLoader.SetupFunction = () => {
|
|
77
43
|
// Async task functionality is only supported on Postgres
|
|
78
44
|
if (sbvrUtils.db.engine !== 'postgres') {
|
|
79
45
|
console.warn('Skipping task setup as database not supported');
|
|
@@ -161,7 +127,42 @@ export function setup(): void {
|
|
|
161
127
|
});
|
|
162
128
|
|
|
163
129
|
addPineTaskHandlers();
|
|
164
|
-
}
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
export const config: ConfigLoader.Config = {
|
|
133
|
+
models: [
|
|
134
|
+
{
|
|
135
|
+
modelName: apiRoot,
|
|
136
|
+
apiRoot,
|
|
137
|
+
modelText,
|
|
138
|
+
customServerCode: { setup },
|
|
139
|
+
initSql,
|
|
140
|
+
migrations: {
|
|
141
|
+
'22.0.0-timestamps': async (tx, { db }) => {
|
|
142
|
+
switch (db.engine) {
|
|
143
|
+
// No need to migrate anything other than postgres
|
|
144
|
+
case 'postgres':
|
|
145
|
+
await tx.executeSql('DROP INDEX IF EXISTS idx_task_poll;');
|
|
146
|
+
await tx.executeSql(`\
|
|
147
|
+
ALTER TABLE "task"
|
|
148
|
+
ALTER COLUMN "created at" SET DATA TYPE TIMESTAMPTZ USING "created at"::TIMESTAMPTZ,
|
|
149
|
+
ALTER COLUMN "modified at" SET DATA TYPE TIMESTAMPTZ USING "modified at"::TIMESTAMPTZ,
|
|
150
|
+
ALTER COLUMN "ended on-time" SET DATA TYPE TIMESTAMPTZ USING "ended on-time"::TIMESTAMPTZ,
|
|
151
|
+
ALTER COLUMN "is scheduled to execute on-time" SET DATA TYPE TIMESTAMPTZ USING "is scheduled to execute on-time"::TIMESTAMPTZ,
|
|
152
|
+
ALTER COLUMN "started on-time" SET DATA TYPE TIMESTAMPTZ USING "started on-time"::TIMESTAMPTZ;`);
|
|
153
|
+
await tx.executeSql(`\
|
|
154
|
+
CREATE INDEX IF NOT EXISTS idx_task_poll ON task USING btree (
|
|
155
|
+
"is executed by-handler",
|
|
156
|
+
"is scheduled to execute on-time" ASC,
|
|
157
|
+
"id" ASC
|
|
158
|
+
) WHERE status = 'queued';`);
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
],
|
|
165
|
+
};
|
|
165
166
|
|
|
166
167
|
// Register a task handler
|
|
167
168
|
export function addTaskHandler(
|