@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.
@@ -1,16 +1,15 @@
1
1
  - commits:
2
- - subject: Update Node.js to v24
3
- hash: f6acd9d07f0be65828ee26525c31a1137cc34cdb
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: balena-renovate[bot]
8
+ author: Pagan Gazzard
10
9
  nested: []
11
10
  version: 23.2.17
12
11
  title: ""
13
- date: 2026-01-12T19:07:10.398Z
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
@@ -7,7 +7,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
7
7
  # v23.2.17
8
8
  ## (2026-01-12)
9
9
 
10
- * Update Node.js to v24 [balena-renovate[bot]]
10
+ * Improve typing of `setup` functions [Pagan Gazzard]
11
11
 
12
12
  # v23.2.16
13
13
  ## (2026-01-12)
package/Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- FROM node:24-alpine as runner
1
+ FROM node:20-alpine as runner
2
2
 
3
3
  WORKDIR /usr/src/pine
4
4
 
@@ -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,GAAwB,EAAE,EAAE;IAC5E,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QACvD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAE5B,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAEnE,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YACrC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,eAAe,CAAO,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YAC7C,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QAE/C,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAClC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAC7C,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC3C,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC9B,OAAO;YACR,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACzB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;QACJ,CAAC,CAAkC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAEtD,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC5B,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpB,IAAI,KAAK,EAAE,CAAC;oBACX,IAAI,CAAC,KAAK,CAAC,CAAC;oBACZ,OAAO;gBACR,CAAC;gBACD,IAAI,EAAE,CAAC;YACR,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC;IACH,CAAC;SAAM,CAAC;QACP,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,YAAY,GAAQ,IAAI,CAAC;QAC7B,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC3B,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACxB,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;YACzB,CAAC;YACD,IAAI,EAAE,CAAC;QACR,CAAC,CAAC,CAAC;QAEH,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAClC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBACjE,IAAI,IAAI,EAAE,CAAC;oBACV,QAAQ,GAAG,IAAI,CAAC;oBAChB,YAAY,GAAG,IAAI,CAAC;gBACrB,CAAC;gBACD,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC5B,OAAO,GAAG,CAAC,IAAI,CAAC;YAChB,QAAQ,GAAG,KAAK,CAAC;YACjB,YAAY,GAAG,IAAI,CAAC;YACpB,IAAI,EAAE,CAAC;QACR,CAAC,CAAC;IACH,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAwB;IAC1C,MAAM,EAAE;QACP;YACC,gBAAgB,EAAE,EAAE,KAAK,EAAE;SAC3B;KACD;CACD,CAAC"}
1
+ {"version":3,"file":"passport-pinejs.js","sourceRoot":"","sources":["../../src/passport-pinejs/passport-pinejs.ts"],"names":[],"mappings":"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"}
@@ -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 function setup(): void;
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;
@@ -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 function setup() {
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');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tasks/index.ts"],"names":[],"mappings":"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"}
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-renovate-node-24-x-f6acd9d07f0be65828ee26525c31a1137cc34cdb-1",
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:07:11.425Z"
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: Express.Application) => {
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());
@@ -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
- export function setup(): void {
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(